Changeset 2471073
- Timestamp:
- 02/08/2021 08:00:32 PM (5 years ago)
- Location:
- content-visibility
- Files:
-
- 6 added
- 20 edited
- 1 copied
-
tags/0.1.7 (copied) (copied from content-visibility/trunk)
-
tags/0.1.7/build/index.asset.php (modified) (1 diff)
-
tags/0.1.7/build/index.css (modified) (1 diff)
-
tags/0.1.7/build/index.css.map (modified) (1 diff)
-
tags/0.1.7/build/index.js (modified) (13 diffs)
-
tags/0.1.7/build/index.js.map (modified) (1 diff)
-
tags/0.1.7/content-visibility.php (modified) (1 diff)
-
tags/0.1.7/includes/content-visibility.php (modified) (1 diff)
-
tags/0.1.7/includes/editor/class-editor.php (modified) (2 diffs)
-
tags/0.1.7/includes/public/class-public-rules.php (modified) (2 diffs)
-
tags/0.1.7/includes/public/content-visibility-public.css (added)
-
tags/0.1.7/includes/public/special-page (added)
-
tags/0.1.7/includes/public/special-page/rule-logic-special-page.php (added)
-
tags/0.1.7/readme.txt (modified) (4 diffs)
-
trunk/build/index.asset.php (modified) (1 diff)
-
trunk/build/index.css (modified) (1 diff)
-
trunk/build/index.css.map (modified) (1 diff)
-
trunk/build/index.js (modified) (13 diffs)
-
trunk/build/index.js.map (modified) (1 diff)
-
trunk/content-visibility.php (modified) (1 diff)
-
trunk/includes/content-visibility.php (modified) (1 diff)
-
trunk/includes/editor/class-editor.php (modified) (2 diffs)
-
trunk/includes/public/class-public-rules.php (modified) (2 diffs)
-
trunk/includes/public/content-visibility-public.css (added)
-
trunk/includes/public/special-page (added)
-
trunk/includes/public/special-page/rule-logic-special-page.php (added)
-
trunk/readme.txt (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
content-visibility/tags/0.1.7/build/index.asset.php
r2450785 r2471073 1 <?php return array('dependencies' => array(' wp-blockEditor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '73805e04464a42880c999de34c92cf2b');1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '0447464b24d62159bb7ca40696afd5f3'); -
content-visibility/tags/0.1.7/build/index.css
r2450785 r2471073 135 135 width: 100%; } 136 136 137 /* 138 Multi-select component 139 ---------------------- 140 */ 141 .content-visibility-multi-select { 142 width: 100%; 143 margin: 1rem 0 0 0; } 144 145 /* 146 Remove horizontal scrolling, artifact of weird padding on main component. 147 */ 148 .content-visibility-multi-select .panel-content { 149 overflow-x: hidden; } 150 151 /* 152 Ensure each of the items fill the dropdown and have space to make more readable. 153 */ 154 .content-visibility-multi-select-item { 155 width: 100%; } 156 157 .content-visibility-multi-select .select-panel label { 158 max-width: none; 159 margin-right: 0; 160 padding: 0.7rem 0.7rem 0; } 161 162 /* 163 Don't need background colour change on hover, not WordPress-y. 164 */ 165 .content-visibility-multi-select .select-panel label:hover, 166 .content-visibility-multi-select .select-panel label:focus, 167 .content-visibility-multi-select .select-panel label.selected { 168 background: transparent; } 169 170 /* 171 Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top. 172 */ 173 .content-visibility-multi-select .select-panel ul { 174 padding: 0.7rem 0; } 175 176 .content-visibility-multi-select input[type="checkbox"] { 177 margin-right: 0.5rem; } 178 179 /* 180 Make each item a bit more uniform, ensures horiz alignment with icons. 181 */ 182 .item-renderer.content-visibility-multi-select-item > span { 183 height: 20px; 184 display: inline-block; } 185 186 /* 187 Give the search input some breathing room. 188 */ 189 .content-visibility-multi-select .select-panel > div { 190 margin-top: 0.25rem; 191 padding: 0 0.25rem; } 192 193 /* 194 Make the icons a little less harsh 195 */ 196 .content-visibility-multi-select .content-visibility-multi-select-item .dashicon { 197 opacity: 0.5; } 198 199 /* 200 Popover content toggle buttons. Make sure they can handle long values as someone may 201 select multiple options. Give max-width to ensure the button's icon is inline. 202 min-width ensures the initial button's value doesn't wrap (i.e. when it's short) 203 */ 204 .components-button.is-secondary.content-visibility-special-page-inserter-toggle { 205 white-space: break-spaces; 206 max-width: 85%; 207 min-width: 190px; 208 font-size: 12px; 209 line-height: 1.6; } 210 211 /* 212 If someone has selected special pages, then we make it less like a link. 213 */ 214 .components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items { 215 text-decoration: none; 216 line-height: 1.6; 217 text-transform: capitalize; } 218 219 /* 220 The 'Set Selected' button 221 */ 222 .components-button.content-visibility-submit-special-pages { 223 margin-top: 1rem; 224 margin-bottom: 1rem; } 225 226 /* 227 Special Page Help Toggle 228 */ 229 .content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small { 230 font-size: 12px; 231 margin-top: 1rem; } 232 233 .content-visibility-special-page-help-instructions-popover .components-popover__content { 234 padding: 1rem; 235 width: 23rem; 236 height: 30rem !important; } 237 238 .content-visibility-control-panel .special-page-help-instructions-button { 239 text-align: right; 240 margin-top: 1rem; 241 margin-bottom: 0; } 242 243 .content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle { 244 margin-left: 0; 245 margin-right: 0; 246 padding-left: 3px; } 247 248 .content-visibility-control-panel .special-page-help-instructions-button .dashicon { 249 position: relative; 250 top: 3px; 251 color: #007cba; } 252 253 .content-visibility-submit-special-pages-button-container { 254 text-align: right; 255 margin-top: 0; } 256 257 /* 258 Special Page Help Popover 259 */ 260 .content-visibility-special-page-help-instructions-popover span { 261 color: black; 262 font-weight: 600; } 263 264 /* Special Page Close Button */ 265 .content-visibility-close-popover { 266 position: absolute; 267 top: -2rem; 268 right: -1rem; } 269 270 /* 271 Special Page Panel 272 */ 273 /* Make sure each inserter is its own row */ 274 .components-panel__row.content-visibility-page-inserter-panel-row { 275 flex-direction: column; } 276 277 .content-visibility-special-page-inserter { 278 margin-top: 1rem; } 279 280 /* Align the icon for each inserter a little neater */ 281 .content-visibility-special-page-inserter .dashicon { 282 position: relative; 283 top: 4px; 284 opacity: 0.6; } 285 137 286 138 287 /*# sourceMappingURL=index.css.map*/ -
content-visibility/tags/0.1.7/build/index.css.map
r2450785 r2471073 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,oWAAoW,EAAE;;AAExW;EACE,cAAc;EACd,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,ofAAof,EAAE;;AAExf;;CAEC;AACD;EACE,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,WAAW;EACX,WAAW,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 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>'); }\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 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>'); }\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"],"sourceRoot":""}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,oWAAoW,EAAE;;AAExW;EACE,cAAc;EACd,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,ofAAof,EAAE;;AAExf;;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,EAAE;;AAEpB;;CAEC;AACD;EACE,qBAAqB;EACrB,gBAAgB;EAChB,0BAA0B,EAAE;;AAE9B;;CAEC;AACD;EACE,gBAAgB;EAChB,mBAAmB,EAAE;;AAEvB;;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 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>'); }\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 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>'); }\n\n/*\n Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n margin: 1rem 0 0;\n font-size: 12px;\n font-style: normal;\n color: #757575;\n clear: both;\n float: none;\n width: 100%; }\n\n/*\n Multi-select component\n ---------------------- \n*/\n.content-visibility-multi-select {\n width: 100%;\n margin: 1rem 0 0 0; }\n\n/*\n Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n overflow-x: hidden; }\n\n/*\n Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n max-width: none;\n margin-right: 0;\n padding: 0.7rem 0.7rem 0; }\n\n/*\n Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n background: transparent; }\n\n/*\n Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n margin-right: 0.5rem; }\n\n/*\n Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n height: 20px;\n display: inline-block; }\n\n/*\n Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n margin-top: 0.25rem;\n padding: 0 0.25rem; }\n\n/*\n Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n opacity: 0.5; }\n\n/*\n Popover content toggle buttons. Make sure they can handle long values as someone may\n select multiple options. Give max-width to ensure the button's icon is inline.\n min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n white-space: break-spaces;\n max-width: 85%;\n min-width: 190px;\n font-size: 12px;\n line-height: 1.6; }\n\n/*\n If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n text-decoration: none;\n line-height: 1.6;\n text-transform: capitalize; }\n\n/*\n The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n margin-top: 1rem;\n margin-bottom: 1rem; }\n\n/*\n Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n font-size: 12px;\n margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n padding: 1rem;\n width: 23rem;\n height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n text-align: right;\n margin-top: 1rem;\n margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n margin-left: 0;\n margin-right: 0;\n padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n position: relative;\n top: 3px;\n color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n text-align: right;\n margin-top: 0; }\n\n/*\n Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n color: black;\n font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n position: absolute;\n top: -2rem;\n right: -1rem; }\n\n/*\n Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n position: relative;\n top: 4px;\n opacity: 0.6; }\n"],"sourceRoot":""} -
content-visibility/tags/0.1.7/build/index.js
r2450785 r2471073 1 (window["webpackJsonp "] = window["webpackJsonp"] || []).push([["style-index"],{1 (window["webpackJsonp_content_visibility"] = window["webpackJsonp_content_visibility"] || []).push([["style-index"],{ 2 2 3 3 /***/ "./src/style.scss": … … 155 155 /******/ __webpack_require__.p = ""; 156 156 /******/ 157 /******/ var jsonpArray = window["webpackJsonp "] = window["webpackJsonp"] || [];157 /******/ var jsonpArray = window["webpackJsonp_content_visibility"] = window["webpackJsonp_content_visibility"] || []; 158 158 /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); 159 159 /******/ jsonpArray.push = webpackJsonpCallback; … … 223 223 224 224 module.exports = _extends; 225 226 /***/ }), 227 228 /***/ "./node_modules/@babel/runtime/helpers/typeof.js": 229 /*!*******************************************************!*\ 230 !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! 231 \*******************************************************/ 232 /*! no static exports found */ 233 /***/ (function(module, exports) { 234 235 function _typeof(obj) { 236 "@babel/helpers - typeof"; 237 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); 249 } 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 \***************************************************/ 259 /*! exports provided: css, extractCss, glob, keyframes, setup, styled */ 260 /***/ (function(module, __webpack_exports__, __webpack_require__) { 261 262 "use strict"; 263 __webpack_require__.r(__webpack_exports__); 264 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return i; }); 265 /* 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}} 271 225 272 226 273 /***/ }), … … 2111 2158 2112 2159 module.exports = stubFalse; 2160 2161 2162 /***/ }), 2163 2164 /***/ "./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js": 2165 /*!********************************************************************************************!*\ 2166 !*** ./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js ***! 2167 \********************************************************************************************/ 2168 /*! exports provided: default, Dropdown, SelectItem, SelectPanel */ 2169 /***/ (function(module, __webpack_exports__, __webpack_require__) { 2170 2171 "use strict"; 2172 __webpack_require__.r(__webpack_exports__); 2173 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return Dropdown; }); 2174 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectItem", function() { return SelectItem; }); 2175 /* 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"); 2177 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); 2178 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); 2179 2180 2181 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]; 2187 } 2188 2189 clearTimeout(timeout); 2190 timeout = setTimeout(function () { 2191 func.apply(null, args); 2192 }, wait); 2193 }; 2194 }; 2195 2196 /** 2197 * Filters React Select options and sorts by similarity to a search filter. 2198 * Handles partial matches, eg. searching for "Waberg High" will find "Raoul 2199 * Wallenberg Traditional High School". Case insensitive. Ignores 2200 * non-alphanumeric characters. 2201 * 2202 * @param options An unfiltered list of Options. 2203 * @param? filter A string to compare against Option labels. 2204 * @param? substitutions Strings with multiple spellings or variations that we 2205 * expect to match, eg. accented characters or abbreviated words. 2206 * 2207 * @return A filtered and sorted array of Options. 2208 */ 2209 function filterOptions(options, filter, substitutions) { 2210 // If the filter is blank, return the full list of Options. 2211 if (!filter) { 2212 return options; 2213 } 2214 2215 var cleanFilter = cleanUpText(filter, substitutions); 2216 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 2222 // 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 2229 // 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 }); 2239 } 2240 /** 2241 * Scores the similarity between two strings by returning the length of the 2242 * longest common subsequence. Intended for comparing strings of different 2243 * lengths; eg. when matching a typeahead search input with a school name. 2244 2245 * Meant for use in an instant search box where results are being fetched 2246 * as a user is typing. 2247 * 2248 * @param a The longer string (though, we flip them if it's shorter). 2249 * @param b The shorter string, eg. a typeahead search input. 2250 * 2251 * @return The length of the longest common subsequence. Higher scores indicate 2252 * closer matches. 2253 */ 2254 2255 function typeaheadSimilarity(a, b) { 2256 var aLength = a.length; 2257 var bLength = b.length; 2258 var table = []; 2259 2260 if (!aLength || !bLength) { 2261 return 0; 2262 } // Ensure `a` isn't shorter than `b`. 2263 2264 2265 if (aLength < bLength) { 2266 var _ref2 = [b, a]; 2267 a = _ref2[0]; 2268 b = _ref2[1]; 2269 } // Early exit if `a` includes `b`; these will be scored higher than any 2270 // other options with the same `b` (filter string), with a preference for 2271 // shorter `a` strings (option labels). 2272 2273 2274 if (a.indexOf(b) !== -1) { 2275 return bLength + 1 / aLength; 2276 } // Initialize the table axes: 2277 // 2278 // 0 0 0 0 ... bLength 2279 // 0 2280 // 0 2281 // 2282 // ... 2283 // 2284 // aLength 2285 // 2286 2287 2288 for (var x = 0; x <= aLength; ++x) { 2289 table[x] = [0]; 2290 } 2291 2292 for (var y = 0; y <= bLength; ++y) { 2293 table[0][y] = 0; 2294 } // Populate the rest of the table with a dynamic programming algorithm. 2295 2296 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]); 2300 } 2301 } 2302 2303 return table[aLength][bLength]; 2304 } 2305 /** 2306 * Apply string substitutions, remove non-alphanumeric characters, and convert 2307 * all letters to uppercase. 2308 * 2309 * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'. 2310 * 2311 * @param input An unsanitized input string. 2312 * @param substitutions Strings with multiple spellings or variations that we 2313 * expect to match, for example accented characters or abbreviated 2314 * words. 2315 * 2316 * @return The sanitized text. 2317 */ 2318 2319 function cleanUpText(input, substitutions) { 2320 if (!input) { 2321 return ""; 2322 } // Uppercase and remove all non-alphanumeric, non-accented characters. 2323 // Also remove underscores. 2324 2325 2326 input = input.toUpperCase().replace(/((?=[^\u00E0-\u00FC])\W)|_/g, ""); 2327 2328 if (!substitutions) { 2329 return input; 2330 } 2331 2332 var safeSubstitutions = substitutions; // For Flow. 2333 // Replace all strings in `safeSubstitutions` with their standardized 2334 // counterparts. 2335 2336 return Object.keys(safeSubstitutions).reduce(function (output, substitution) { 2337 var unsubbed = new RegExp(substitution, "g"); 2338 return output.replace(unsubbed, safeSubstitutions[substitution]); 2339 }, input); 2340 } 2341 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"])({ 2376 "& input,& span": { 2377 verticalAlign: "middle", 2378 margin: 0 2379 }, 2380 span: { 2381 display: "inline-block", 2382 paddingLeft: "5px" 2383 }, 2384 "&.disabled": { 2385 opacity: 0.5 2386 } 2387 }); 2388 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 }; 2404 2405 /** 2406 * This component represents an individual item in the multi-select drop-down 2407 */ 2408 var ItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2409 boxSizing: "border-box", 2410 cursor: "pointer", 2411 display: "block", 2412 padding: "var(--rmsc-p)", 2413 outline: 0, 2414 "&:hover,&:focus": { 2415 background: "var(--rmsc-hover)" 2416 }, 2417 "&.selected": { 2418 background: "var(--rmsc-selected)" 2419 } 2420 }); 2421 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 () { 2434 updateFocus(); // eslint-disable-next-line 2435 }, [focused]); 2436 2437 var toggleChecked = function toggleChecked() { 2438 onSelectionChanged(!checked); 2439 }; 2440 2441 var handleClick = function handleClick(e) { 2442 toggleChecked(); 2443 onClick(e); 2444 }; 2445 2446 var updateFocus = function updateFocus() { 2447 if (focused && !disabled && itemRef) { 2448 itemRef.current.focus(); 2449 } 2450 }; 2451 2452 var handleKeyDown = function handleKeyDown(e) { 2453 switch (e.which) { 2454 case 13: // Enter 2455 2456 case 32: 2457 // Space 2458 toggleChecked(); 2459 break; 2460 2461 default: 2462 return; 2463 } 2464 2465 e.preventDefault(); 2466 }; 2467 2468 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("label", { 2469 className: ItemContainer + " select-item " + (checked && "selected"), 2470 role: "option", 2471 "aria-selected": checked, 2472 tabIndex: tabIndex, 2473 ref: itemRef, 2474 onKeyDown: handleKeyDown 2475 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ItemRenderer, { 2476 option: option, 2477 checked: checked, 2478 onClick: handleClick, 2479 disabled: disabled 2480 })); 2481 }; 2482 2483 /** 2484 * This component represents an unadorned list of SelectItem (s). 2485 */ 2486 var SelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2487 margin: 0, 2488 paddingLeft: 0, 2489 li: { 2490 listStyle: "none", 2491 margin: 0 2492 } 2493 }); 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) { 2506 if (disabled) { 2507 return; 2508 } 2509 2510 onChange(checked ? [].concat(value, [option]) : value.filter(function (o) { 2511 return o.value !== option.value; 2512 })); 2513 }; 2514 2515 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("ul", { 2516 className: SelectListUl 2517 }, options.map(function (o, i) { 2518 var tabIndex = i + skipIndex; 2519 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("li", { 2520 key: o.hasOwnProperty("key") ? o.key : i 2521 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, { 2522 focused: focusIndex === tabIndex, 2523 tabIndex: tabIndex, 2524 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 }, 2534 itemRenderer: ItemRenderer, 2535 disabled: o.disabled || disabled 2536 })); 2537 })); 2538 }; 2539 2540 /** 2541 * This component represents the entire panel which gets dropped down when the 2542 * user selects the component. It encapsulates the search filter, the 2543 * Select-all item, and the list of options. 2544 */ 2545 var FocusType; 2546 2547 (function (FocusType) { 2548 FocusType[FocusType["SEARCH"] = -1] = "SEARCH"; 2549 FocusType[FocusType["NONE"] = 1] = "NONE"; 2550 })(FocusType || (FocusType = {})); 2551 2552 var SelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2553 width: "100%", 2554 position: "relative", 2555 borderBottom: "1px solid var(--rmsc-border)", 2556 input: { 2557 height: "var(--rmsc-h)", 2558 padding: "0 var(--rmsc-p)", 2559 width: "100%", 2560 outline: 0, 2561 border: 0 2562 } 2563 }); 2564 var SearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2565 cursor: "pointer", 2566 position: "absolute", 2567 top: 0, 2568 right: 0, 2569 bottom: 0, 2570 background: "none", 2571 border: 0, 2572 padding: "0 calc(var(--rmsc-p)/2)", 2573 "[hidden]": { 2574 display: "none" 2575 } 2576 }); 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), 2609 value: "" 2610 }; 2611 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 }); 2618 2619 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 }); 2628 } 2629 2630 return value.filter(function (o) { 2631 return !filteredValues.includes(o.value); 2632 }); 2633 }; 2634 2635 var selectAllChanged = function selectAllChanged(checked) { 2636 var newOptions = selectAllValues(checked); 2637 onChange(newOptions); 2638 }; 2639 2640 var handleSearchChange = function handleSearchChange(e) { 2641 debouncedSearch(e.target.value); 2642 setSearchText(e.target.value); 2643 setFocusIndex(FocusType.SEARCH); 2644 }; 2645 2646 var handleClear = function handleClear() { 2647 setSearchTextForFilter(""); 2648 setSearchText(""); 2649 }; 2650 2651 var handleItemClicked = function handleItemClicked(index) { 2652 return setFocusIndex(index); 2653 }; 2654 2655 var handleKeyDown = function handleKeyDown(e) { 2656 switch (e.which) { 2657 case 38: 2658 // Up Arrow 2659 if (e.altKey) { 2660 return; 2661 } 2662 2663 updateFocus(-1); 2664 break; 2665 2666 case 40: 2667 // Down Arrow 2668 if (e.altKey) { 2669 return; 2670 } 2671 2672 updateFocus(1); 2673 break; 2674 2675 default: 2676 return; 2677 } 2678 2679 e.stopPropagation(); 2680 e.preventDefault(); 2681 }; 2682 2683 var handleSearchFocus = function handleSearchFocus() { 2684 setFocusIndex(FocusType.SEARCH); 2685 }; 2686 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; 2693 newFocus = Math.max(1, newFocus); 2694 newFocus = Math.min(newFocus, options.length + 1); 2695 setFocusIndex(newFocus); 2696 }; 2697 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 2711 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2712 className: "select-panel", 2713 role: "listbox", 2714 onKeyDown: handleKeyDown 2715 }, !disableSearch && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2716 className: SelectSearchContainer 2717 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { 2718 autoFocus: focusSearchOnOpen, 2719 placeholder: getString("search", overrideStrings), 2720 type: "text", 2721 "aria-describedby": getString("search", overrideStrings), 2722 onKeyDown: function onKeyDown(e) { 2723 return e.stopPropagation(); 2724 }, 2725 onChange: handleSearchChange, 2726 onFocus: handleSearchFocus, 2727 value: searchText 2728 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", { 2729 type: "button", 2730 className: SearchClearButton + " search-clear-button", 2731 hidden: !searchText, 2732 onClick: handleClear, 2733 "aria-label": getString("clearSearch", overrideStrings) 2734 }, ClearIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, { 2735 focused: focusIndex === 1, 2736 tabIndex: 1, 2737 checked: isAllOptionSelected, 2738 option: selectAllOption, 2739 onSelectionChanged: selectAllChanged, 2740 onClick: function onClick() { 2741 return handleItemClicked(0); 2742 }, 2743 itemRenderer: ItemRenderer, 2744 disabled: disabled 2745 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, Object.assign({}, props, { 2746 options: filteredOptions(), 2747 focusIndex: focusIndex, 2748 onClick: function onClick(_e, index) { 2749 return handleItemClicked(index); 2750 }, 2751 ItemRenderer: ItemRenderer, 2752 disabled: disabled 2753 }))); 2754 }; 2755 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"])({ 2771 animation: "rotate 2s linear infinite", 2772 "& .path": { 2773 stroke: "var(--rmsc-border)", 2774 strokeWidth: "4px", 2775 strokeLinecap: "round", 2776 animation: "dash 1.5s ease-in-out infinite" 2777 }, 2778 "@keyframes rotate": { 2779 "100%": { 2780 transform: "rotate(360deg)" 2781 } 2782 }, 2783 "@keyframes dash": { 2784 "0%": { 2785 strokeDasharray: "1,150", 2786 strokeDashoffset: 0 2787 }, 2788 "50%": { 2789 strokeDasharray: "90,150", 2790 strokeDashoffset: "-35" 2791 }, 2792 "100%": { 2793 strokeDasharray: "90,150", 2794 strokeDashoffset: "-124" 2795 } 2796 } 2797 }); 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", { 2808 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 } 2824 2825 /** 2826 * A generic dropdown component. It takes the children of the component 2827 * and hosts it in the component. When the component is selected, it 2828 * drops-down the contentComponent and applies the contentProps. 2829 */ 2830 var PanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2831 position: "absolute", 2832 zIndex: 1, 2833 top: "100%", 2834 width: "100%", 2835 paddingTop: "8px", 2836 ".panel-content": { 2837 maxHeight: "300px", 2838 overflowY: "auto", 2839 borderRadius: "var(--rmsc-radius)", 2840 background: "var(--rmsc-bg)", 2841 boxShadow: "0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)" 2842 } 2843 }); 2844 var DropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2845 position: "relative", 2846 outline: 0, 2847 backgroundColor: "var(--rmsc-bg)", 2848 border: "1px solid var(--rmsc-border)", 2849 borderRadius: "var(--rmsc-radius)", 2850 "&:focus-within": { 2851 boxShadow: "var(--rmsc-main) 0 0 0 1px", 2852 borderColor: "var(--rmsc-main)" 2853 } 2854 }); 2855 var DropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2856 position: "relative", 2857 padding: "0 var(--rmsc-p)", 2858 display: "flex", 2859 alignItems: "center", 2860 width: "100%", 2861 height: "var(--rmsc-h)", 2862 cursor: "default", 2863 outline: 0, 2864 ".dropdown-heading-value": { 2865 overflow: "hidden", 2866 textOverflow: "ellipsis", 2867 whiteSpace: "nowrap", 2868 flex: 1 2869 } 2870 }); 2871 var ClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2872 cursor: "pointer", 2873 background: "none", 2874 border: 0, 2875 padding: 0, 2876 display: "flex" 2877 }); 2878 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 () { 2910 onMenuToggle && onMenuToggle(expanded); 2911 }, [expanded]); 2912 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () { 2913 if (defaultIsOpen === undefined && typeof isOpen === "boolean") { 2914 setIsInternalExpand(false); 2915 setExpanded(isOpen); 2916 } 2917 }, [isOpen]); 2918 2919 var handleKeyDown = function handleKeyDown(e) { 2920 var _wrapper$current; 2921 2922 if (isInternalExpand) { 2923 switch (e.which) { 2924 case 27: // Escape 2925 2926 case 38: 2927 // Up Arrow 2928 setExpanded(false); 2929 wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus(); 2930 break; 2931 2932 case 32: // Space 2933 2934 case 13: // Enter Key 2935 2936 case 40: 2937 // Down Arrow 2938 setExpanded(true); 2939 break; 2940 2941 default: 2942 return; 2943 } 2944 } 2945 2946 e.preventDefault(); 2947 }; 2948 2949 var handleHover = function handleHover(iexpanded) { 2950 isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded); 2951 }; 2952 2953 var handleFocus = function handleFocus() { 2954 return !hasFocus && setHasFocus(true); 2955 }; 2956 2957 var handleBlur = function handleBlur(e) { 2958 if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) { 2959 setHasFocus(false); 2960 setExpanded(false); 2961 } 2962 }; 2963 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() { 2973 isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded); 2974 }; 2975 2976 var handleClearSelected = function handleClearSelected(e) { 2977 e.stopPropagation(); 2978 contentProps["onChange"]([]); 2979 isInternalExpand && setExpanded(false); 2980 }; 2981 2982 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2983 tabIndex: 0, 2984 className: DropdownContainer + " dropdown-container", 2985 "aria-labelledby": labelledBy, 2986 "aria-expanded": expanded, 2987 "aria-readonly": true, 2988 "aria-disabled": disabled, 2989 ref: wrapper, 2990 onKeyDown: handleKeyDown, 2991 onFocus: handleFocus, 2992 onBlur: handleBlur, 2993 onMouseEnter: handleMouseEnter, 2994 onMouseLeave: handleMouseLeave 2995 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2996 className: DropdownHeading + " dropdown-heading", 2997 onClick: toggleExpanded 2998 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2999 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", { 3001 type: "button", 3002 className: ClearSelectedButton + " clear-selected-button", 3003 onClick: handleClearSelected, 3004 "aria-label": getString("clearSelected", contentProps["overrideStrings"]) 3005 }, ClearSelectedIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null)), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(FinalArrow, { 3006 expanded: expanded 3007 })), expanded && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3008 className: PanelContainer + " dropdown-content" 3009 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3010 className: "panel-content" 3011 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ContentComponent, Object.assign({}, contentProps))))); 3012 }; 3013 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"])({ 3035 "--rmscMain": "#4285f4", 3036 "--rmscHover": "#f1f3f5", 3037 "--rmscSelected": "#e2e6ea", 3038 "--rmscBorder": "#ccc", 3039 "--rmscGray": "#aaa", 3040 "--rmscBg": "#fff", 3041 "--rmscP": "10px", 3042 "--rmscRadius": "4px", 3043 "--rmscH": "38px", 3044 "*": { 3045 boxSizing: "border-box", 3046 transition: "all 0.2s ease" 3047 }, 3048 ".gray": { 3049 color: "var(--rmsc-gray)" 3050 } 3051 }); 3052 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 }; 3117 3118 /* harmony default export */ __webpack_exports__["default"] = (MultiSelect); 3119 3120 //# sourceMappingURL=react-multi-select-component.esm.js.map 2113 3121 2114 3122 … … 2608 3616 Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_4__["registerPlugin"])('content-visibility-01-user-authentication-fill', { 2609 3617 render: BlockVisibilityUserAuthenitcationFill 3618 }); 3619 3620 /***/ }), 3621 3622 /***/ "./src/controls/multiselect/content-visibility-multiselect.js": 3623 /*!********************************************************************!*\ 3624 !*** ./src/controls/multiselect/content-visibility-multiselect.js ***! 3625 \********************************************************************/ 3626 /*! exports provided: ContentVisibilityMultiSelect */ 3627 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3628 3629 "use strict"; 3630 __webpack_require__.r(__webpack_exports__); 3631 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContentVisibilityMultiSelect", function() { return ContentVisibilityMultiSelect; }); 3632 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 3633 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 3634 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 3635 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 3636 /* harmony import */ var react_multi_select_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-multi-select-component */ "./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js"); 3637 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 3638 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_3__); 3639 3640 3641 3642 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; } 3643 3644 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; } 3645 3646 3647 3648 /** 3649 * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component 3650 * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme. 3651 * 3652 * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent. 3653 * 3654 * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like: 3655 * 3656 * ``` 3657 * <ContentVisibilityMultiSelect data={ fruits } labelledBy="Select Page Type" props={ props } onChange={ onChange } /> 3658 * ``` 3659 * 3660 * the `onChange` function can look like this: 3661 * 3662 * ``` 3663 * const onChange = ( option ) => { 3664 * // Set the state and props. 3665 * setState( { option } ); 3666 * props.setAttributes( { 3667 * contentVisibilityRules: { 3668 * ...props.attributes.contentVisibilityRules, 3669 * specialPage: { 3670 * ...props.attributes.contentVisibilityRules.specialPage, 3671 * pages: option 3672 * } 3673 * }, 3674 * } ); 3675 * 3676 * } 3677 * ``` 3678 * 3679 * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent) 3680 */ 3681 3682 var ContentVisibilityMultiSelect = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_3__["withState"])({ 3683 option: [] 3684 })(function (_ref) { 3685 var option = _ref.option, 3686 setState = _ref.setState, 3687 props = _ref.props, 3688 data = _ref.data, 3689 labelledBy = _ref.labelledBy, 3690 type = _ref.type; 3691 3692 /** 3693 * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for 3694 * this instance of the component. 3695 * 3696 * @param {array} option current value of what is selected. 3697 */ 3698 var onChange = function onChange(option) { 3699 // Set the state and props. 3700 setState({ 3701 option: option 3702 }); 3703 props.setAttributes({ 3704 contentVisibilityRules: _objectSpread(_objectSpread({}, props.attributes.contentVisibilityRules), {}, { 3705 specialPage: _objectSpread(_objectSpread({}, props.attributes.contentVisibilityRules.specialPage), {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()({}, type, option)) 3706 }) 3707 }); 3708 }; 3709 3710 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 3711 className: "content-visibility-multi-select" 3712 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(react_multi_select_component__WEBPACK_IMPORTED_MODULE_2__["default"], { 3713 options: data, 3714 value: props.attributes.contentVisibilityRules.specialPage[type] || option, 3715 onChange: onChange, 3716 labelledBy: labelledBy, 3717 ItemRenderer: function ItemRenderer(_ref2) { 3718 var checked = _ref2.checked, 3719 option = _ref2.option, 3720 onClick = _ref2.onClick, 3721 disabled = _ref2.disabled; 3722 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 3723 className: "item-renderer content-visibility-multi-select-item ".concat(disabled && "disabled") 3724 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("input", { 3725 type: "checkbox", 3726 onChange: onClick, 3727 checked: checked, 3728 tabIndex: -1, 3729 disabled: disabled 3730 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", null, option.icon || "", " ", option.label)); 3731 } // isOpen={ true } 3732 3733 })); 2610 3734 }); 2611 3735 … … 2668 3792 /***/ }), 2669 3793 3794 /***/ "./src/controls/special-page/content-visibility-page-page-inserter.js": 3795 /*!****************************************************************************!*\ 3796 !*** ./src/controls/special-page/content-visibility-page-page-inserter.js ***! 3797 \****************************************************************************/ 3798 /*! exports provided: default */ 3799 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3800 3801 "use strict"; 3802 __webpack_require__.r(__webpack_exports__); 3803 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 3804 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 3805 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 3806 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 3807 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 3808 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 3809 /* harmony import */ var _helpers_get_pages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-pages */ "./src/helpers/get-pages.js"); 3810 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 3811 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 3812 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 3813 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 3814 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 3815 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 var PagePageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 3826 isVisible: false 3827 })(function (_ref) { 3828 var isVisible = _ref.isVisible, 3829 setState = _ref.setState, 3830 props = _ref.props; 3831 3832 /** 3833 * Our data, passed from PHP and manipulated to be useful here in JS. 3834 */ 3835 var data = Object(_helpers_get_pages__WEBPACK_IMPORTED_MODULE_3__["default"])(); 3836 /** 3837 * This controls the key used where the data is stored. 3838 */ 3839 3840 var type = 'pages'; 3841 /** 3842 * Helps with the content of the inserter button. 3843 */ 3844 3845 var niceName = { 3846 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Page', 'content-visibility'), 3847 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Pages', 'content-visibility') 3848 }; 3849 /** 3850 * Toggle the visible state. Detemines whether the popup is open or not. 3851 */ 3852 3853 var toggleVisible = function toggleVisible() { 3854 setState(function (state) { 3855 return { 3856 isVisible: !state.isVisible 3857 }; 3858 }); 3859 }; 3860 3861 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 3862 className: "content-visibility-special-page-inserter" 3863 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 3864 icon: "networking", 3865 iconSize: "12" 3866 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 3867 isSecondary: true, 3868 isSmall: true, 3869 isLink: true, 3870 onClick: toggleVisible, 3871 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 3872 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select specific pages', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 3873 position: "middle left", 3874 className: "content-visibility-special-page-help-instructions-popover", 3875 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 3876 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select Pages', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 3877 className: "content-visibility-help-text" 3878 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the pages upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 3879 data: data, 3880 labelledBy: "Select Page", 3881 props: props, 3882 type: type 3883 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 3884 className: "content-visibility-submit-special-pages-button-container" 3885 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 3886 isPrimary: true, 3887 className: "content-visibility-submit-special-pages", 3888 onClick: toggleVisible 3889 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 3890 icon: "editor-help", 3891 iconSize: "12" 3892 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Help', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])("Selecting one or more pages from this list will mean that this block will only be ".concat(props.attributes.contentVisibility, " on those pages. If you want this block to be ").concat(props.attributes.contentVisibility, " on ALL pages, please use the 'Special Pages' option and select 'Any Page'"), 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 3893 className: "content-visibility-close-popover", 3894 icon: "no", 3895 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 3896 onClick: toggleVisible 3897 })))); 3898 }); 3899 /* harmony default export */ __webpack_exports__["default"] = (PagePageInserter); 3900 3901 /***/ }), 3902 3903 /***/ "./src/controls/special-page/content-visibility-post-page-inserter.js": 3904 /*!****************************************************************************!*\ 3905 !*** ./src/controls/special-page/content-visibility-post-page-inserter.js ***! 3906 \****************************************************************************/ 3907 /*! exports provided: default */ 3908 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3909 3910 "use strict"; 3911 __webpack_require__.r(__webpack_exports__); 3912 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 3913 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 3914 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 3915 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 3916 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 3917 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 3918 /* harmony import */ var _helpers_get_posts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-posts */ "./src/helpers/get-posts.js"); 3919 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 3920 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 3921 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 3922 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 3923 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 3924 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 var PostPageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 3935 isVisible: false 3936 })(function (_ref) { 3937 var isVisible = _ref.isVisible, 3938 setState = _ref.setState, 3939 props = _ref.props; 3940 3941 /** 3942 * Our data, passed from PHP and manipulated to be useful here in JS. 3943 */ 3944 var data = Object(_helpers_get_posts__WEBPACK_IMPORTED_MODULE_3__["default"])(); 3945 /** 3946 * This controls the key used where the data is stored. 3947 */ 3948 3949 var type = 'posts'; 3950 /** 3951 * Helps with the content of the inserter button. 3952 */ 3953 3954 var niceName = { 3955 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Post', 'content-visibility'), 3956 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Posts', 'content-visibility') 3957 }; 3958 /** 3959 * Toggle the visible state. Detemines whether the popup is open or not. 3960 */ 3961 3962 var toggleVisible = function toggleVisible() { 3963 setState(function (state) { 3964 return { 3965 isVisible: !state.isVisible 3966 }; 3967 }); 3968 }; 3969 3970 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 3971 className: "content-visibility-special-page-inserter" 3972 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 3973 icon: "admin-post", 3974 iconSize: "12" 3975 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 3976 isSecondary: true, 3977 isSmall: true, 3978 isLink: true, 3979 onClick: toggleVisible, 3980 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 3981 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select specific posts', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 3982 position: "middle left", 3983 className: "content-visibility-special-page-help-instructions-popover", 3984 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 3985 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select Posts', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 3986 className: "content-visibility-help-text" 3987 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the posts upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 3988 data: data, 3989 labelledBy: "Select Page", 3990 props: props, 3991 type: type 3992 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 3993 className: "content-visibility-submit-special-pages-button-container" 3994 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 3995 isPrimary: true, 3996 className: "content-visibility-submit-special-pages", 3997 onClick: toggleVisible 3998 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 3999 icon: "editor-help", 4000 iconSize: "12" 4001 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Help', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])("Selecting one or more posts from this list will mean that this block will only be ".concat(props.attributes.contentVisibility, " on those posts. If you want this block to be ").concat(props.attributes.contentVisibility, " on ALL posts, please use the 'Special Pages' option and select 'Any Post'"), 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 4002 className: "content-visibility-close-popover", 4003 icon: "no", 4004 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 4005 onClick: toggleVisible 4006 })))); 4007 }); 4008 /* harmony default export */ __webpack_exports__["default"] = (PostPageInserter); 4009 4010 /***/ }), 4011 2670 4012 /***/ "./src/controls/special-page/content-visibility-special-page-controls.js": 2671 4013 /*!*******************************************************************************!*\ … … 2729 4071 }); 2730 4072 }); 2731 } // Only load the Widgets-related controls on the widgets screen 2732 2733 2734 if ('appearance_page_gutenberg-widgets' === ContentVisibility.screen ) {4073 } // Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug. 4074 4075 4076 if ('appearance_page_gutenberg-widgets' === ContentVisibility.screen || '1' === ContentVisibility.local) { 2735 4077 // Add our component to the Slot provided by BlockVisibilityControls 2736 4078 Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_4__["registerPlugin"])('content-visibility-04-special-page-fill', { … … 2738 4080 }); 2739 4081 } 4082 4083 /***/ }), 4084 4085 /***/ "./src/controls/special-page/content-visibility-special-page-page-inserter.js": 4086 /*!************************************************************************************!*\ 4087 !*** ./src/controls/special-page/content-visibility-special-page-page-inserter.js ***! 4088 \************************************************************************************/ 4089 /*! exports provided: default */ 4090 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4091 4092 "use strict"; 4093 __webpack_require__.r(__webpack_exports__); 4094 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 4095 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 4096 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 4097 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 4098 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 4099 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 4100 /* harmony import */ var _helpers_get_special_pages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-special-pages */ "./src/helpers/get-special-pages.js"); 4101 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 4102 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4103 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 4104 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 4105 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 4106 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 var SpecialPagePageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 4117 isVisible: false 4118 })(function (_ref) { 4119 var isVisible = _ref.isVisible, 4120 setState = _ref.setState, 4121 props = _ref.props; 4122 4123 /** 4124 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages 4125 * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown. 4126 */ 4127 var specialPages = Object(_helpers_get_special_pages__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4128 /** 4129 * This controls the key used where the data is stored. 4130 */ 4131 4132 var type = 'specialPages'; 4133 /** 4134 * Helps with the content of the inserter button. 4135 */ 4136 4137 var niceName = { 4138 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Page', 'content-visibility'), 4139 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Pages', 'content-visibility') 4140 }; 4141 /** 4142 * Toggle the visible state. Detemines whether the popup is open or not. 4143 */ 4144 4145 var toggleVisible = function toggleVisible() { 4146 setState(function (state) { 4147 return { 4148 isVisible: !state.isVisible 4149 }; 4150 }); 4151 }; 4152 4153 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4154 className: "content-visibility-special-page-inserter" 4155 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4156 icon: "text-page", 4157 iconSize: "12" 4158 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4159 isSecondary: true, 4160 isSmall: true, 4161 isLink: true, 4162 onClick: toggleVisible, 4163 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 4164 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select special pages', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 4165 position: "middle left", 4166 className: "content-visibility-special-page-help-instructions-popover", 4167 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 4168 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Insert Special Pages', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4169 className: "content-visibility-help-text" 4170 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the special pages upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 4171 data: specialPages, 4172 labelledBy: "Select Page Type", 4173 props: props, 4174 type: type 4175 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4176 className: "content-visibility-submit-special-pages-button-container" 4177 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4178 isPrimary: true, 4179 className: "content-visibility-submit-special-pages", 4180 onClick: toggleVisible 4181 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4182 icon: "editor-help", 4183 iconSize: "12" 4184 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('What are Special Pages?', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('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')), specialPages.map(function (specialPage) { 4185 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("span", null, specialPage.label), ": ", specialPage.notes); 4186 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 4187 className: "content-visibility-close-popover", 4188 icon: "no", 4189 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 4190 onClick: toggleVisible 4191 })))); 4192 }); 4193 /* harmony default export */ __webpack_exports__["default"] = (SpecialPagePageInserter); 2740 4194 2741 4195 /***/ }), … … 2759 4213 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 2760 4214 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); 2761 2762 2763 2764 // import { ContentVisibilityUserAuthenticationRadioControl } from './block-visibility-user-authentication-radio-control'; 4215 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); 4216 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__); 4217 /* harmony import */ var _content_visibility_special_page_page_inserter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./content-visibility-special-page-page-inserter */ "./src/controls/special-page/content-visibility-special-page-page-inserter.js"); 4218 /* harmony import */ var _content_visibility_page_page_inserter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./content-visibility-page-page-inserter */ "./src/controls/special-page/content-visibility-page-page-inserter.js"); 4219 /* harmony import */ var _content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./content-visibility-post-page-inserter */ "./src/controls/special-page/content-visibility-post-page-inserter.js"); 4220 4221 4222 4223 4224 4225 4226 2765 4227 2766 4228 var ContentVisibilitySpecialPagePanelBodyControl = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 2767 option: ''4229 option: [] 2768 4230 })(function (_ref) { 2769 4231 var option = _ref.option, … … 2774 4236 initialOpen: false, 2775 4237 className: "content-visibility-control-panel block-visibility-special-page-controls" 2776 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, "This does not function properly yet due to a core Gutenberg bug."), props.attributes.contentVisibility && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 2777 class: "special-page-help-intro content-visibility-help-text" 2778 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Select which types of pages this block will be ' + props.attributes.contentVisibility + '. Special pages include a search results page, a date or category archive, or the 404 not found page amongst others.', 'content-visibility-special-page')))); 2779 }); 4238 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], { 4239 className: "content-visibility-page-inserter-panel-row" 4240 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_page_inserter__WEBPACK_IMPORTED_MODULE_5__["default"], { 4241 props: props 4242 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_page_page_inserter__WEBPACK_IMPORTED_MODULE_6__["default"], { 4243 props: props 4244 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__["default"], { 4245 props: props 4246 })), props.attributes.contentVisibility && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4247 className: "special-page-help-intro content-visibility-help-text" 4248 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility'))); 4249 }); // Register our visibility rule in the main rules object. 4250 4251 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__["addFilter"])('contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule); 4252 4253 function registerSpecialPageVisibilityRule(defaultRules) { 4254 defaultRules.specialPage = { 4255 pages: [], 4256 specialPages: [], 4257 posts: [] 4258 }; 4259 return defaultRules; 4260 } 2780 4261 2781 4262 /***/ }), … … 2907 4388 /***/ }), 2908 4389 4390 /***/ "./src/helpers/get-pages.js": 4391 /*!**********************************!*\ 4392 !*** ./src/helpers/get-pages.js ***! 4393 \**********************************/ 4394 /*! exports provided: default */ 4395 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4396 4397 "use strict"; 4398 __webpack_require__.r(__webpack_exports__); 4399 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4400 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4401 4402 /** 4403 * PHP sends through a list of all the pages on the site (in any status). We massage that data to be 4404 * usable by our Dropdown. 4405 * 4406 */ 4407 4408 function getPages() { 4409 var pages = []; 4410 4411 if (ContentVisibility.pages.length === 0) { 4412 return [{ 4413 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])('No pages found.', 'content-visibility'), 4414 value: 0, 4415 notes: '' 4416 }]; 4417 } 4418 4419 for (var page in ContentVisibility.pages) { 4420 pages.push({ 4421 label: ContentVisibility.pages[page].label, 4422 value: ContentVisibility.pages[page].id, 4423 notes: ContentVisibility.pages[page].notes 4424 }); 4425 } 4426 4427 return pages; 4428 } // end getPages() 4429 4430 4431 /* harmony default export */ __webpack_exports__["default"] = (getPages); 4432 4433 /***/ }), 4434 4435 /***/ "./src/helpers/get-posts.js": 4436 /*!**********************************!*\ 4437 !*** ./src/helpers/get-posts.js ***! 4438 \**********************************/ 4439 /*! exports provided: default */ 4440 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4441 4442 "use strict"; 4443 __webpack_require__.r(__webpack_exports__); 4444 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4445 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4446 4447 /** 4448 * PHP sends through a list of all the posts on the site (in any status). We massage that data to be 4449 * usable by our Dropdown. 4450 * 4451 */ 4452 4453 function getPosts() { 4454 var posts = []; 4455 4456 if (ContentVisibility.posts.length === 0) { 4457 return [{ 4458 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])('No posts found.', 'content-visibility'), 4459 value: 0, 4460 notes: '' 4461 }]; 4462 } 4463 4464 for (var post in ContentVisibility.posts) { 4465 posts.push({ 4466 label: ContentVisibility.posts[post].label, 4467 value: ContentVisibility.posts[post].id, 4468 notes: ContentVisibility.posts[post].notes 4469 }); 4470 } 4471 4472 return posts; 4473 } // end getPosts() 4474 4475 4476 /* harmony default export */ __webpack_exports__["default"] = (getPosts); 4477 4478 /***/ }), 4479 4480 /***/ "./src/helpers/get-special-pages.js": 4481 /*!******************************************!*\ 4482 !*** ./src/helpers/get-special-pages.js ***! 4483 \******************************************/ 4484 /*! exports provided: default */ 4485 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4486 4487 "use strict"; 4488 __webpack_require__.r(__webpack_exports__); 4489 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 4490 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 4491 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 4492 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 4493 4494 4495 /** 4496 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages 4497 * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown. 4498 * 4499 */ 4500 4501 function getSpecialPages() { 4502 var specialPages = []; 4503 4504 for (var specialPage in ContentVisibility.specialPages) { 4505 specialPages.push({ 4506 label: ContentVisibility.specialPages[specialPage].label, 4507 value: ContentVisibility.specialPages[specialPage].keyValue, 4508 notes: ContentVisibility.specialPages[specialPage].notes, 4509 icon: Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4510 size: "12", 4511 icon: ContentVisibility.specialPages[specialPage].icon 4512 }) 4513 }); 4514 } 4515 4516 return specialPages; 4517 } // end getSpecialPages() 4518 4519 4520 /* harmony default export */ __webpack_exports__["default"] = (getSpecialPages); 4521 4522 /***/ }), 4523 4524 /***/ "./src/helpers/has-parent-with-class.js": 4525 /*!**********************************************!*\ 4526 !*** ./src/helpers/has-parent-with-class.js ***! 4527 \**********************************************/ 4528 /*! exports provided: default */ 4529 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4530 4531 "use strict"; 4532 __webpack_require__.r(__webpack_exports__); 4533 /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js"); 4534 /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__); 4535 4536 4537 /** 4538 * Is the passed element a child of an element that has a class of the passed parentClassName. 4539 * From: https://codepen.io/ross-angus/pen/eYJRmZR 4540 * 4541 * @param {object} element The name of the block. 4542 * @param {string} parentClassName the name of the class on the parent to check for. 4543 */ 4544 function hasParentWithClass(element, classname) { 4545 // SVGs are weird, man. 4546 if (_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(element.className) !== 'object' && element.className.split(' ').indexOf(classname) >= 0) { 4547 return true; 4548 } else if (element.tagName !== 'HTML') { 4549 // If you've reached the body, you've gone too far 4550 return element.parentNode && hasParentWithClass(element.parentNode, classname); 4551 } else { 4552 return false; 4553 } 4554 } //end hasParentWithClass() 4555 4556 4557 /* harmony default export */ __webpack_exports__["default"] = (hasParentWithClass); 4558 4559 /***/ }), 4560 2909 4561 /***/ "./src/helpers/is-valid-blocktype.js": 2910 4562 /*!*******************************************!*\ … … 2928 4580 2929 4581 /* harmony default export */ __webpack_exports__["default"] = (isValidBlockType); 4582 4583 /***/ }), 4584 4585 /***/ "./src/helpers/keep-popup-open.js": 4586 /*!****************************************!*\ 4587 !*** ./src/helpers/keep-popup-open.js ***! 4588 \****************************************/ 4589 /*! exports provided: default */ 4590 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4591 4592 "use strict"; 4593 __webpack_require__.r(__webpack_exports__); 4594 /* harmony import */ var _has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./has-parent-with-class */ "./src/helpers/has-parent-with-class.js"); 4595 4596 /** 4597 * The Popup component closes if it loses focus by default. For us, we want to ensure it 4598 * stays open until someone intentially closes it via either setting the selected items, 4599 * pressing a close button, or clicking the button they initially used to open the popup. 4600 * 4601 * @param {event} event The click event. 4602 * @return null 4603 */ 4604 4605 var keepPopupOpen = function keepPopupOpen(event) { 4606 if (false === event) { 4607 return; 4608 } // Determine if what has been clicked on is in the popover or not. 4609 4610 4611 var eTarget = event.target; 4612 4613 if (Object(_has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__["default"])(eTarget, 'components-popover__content')) { 4614 event.stopPropagation(); 4615 } 4616 4617 return; 4618 }; 4619 4620 /* harmony default export */ __webpack_exports__["default"] = (keepPopupOpen); 4621 4622 /***/ }), 4623 4624 /***/ "./src/helpers/special-page-insert-text.js": 4625 /*!*************************************************!*\ 4626 !*** ./src/helpers/special-page-insert-text.js ***! 4627 \*************************************************/ 4628 /*! exports provided: default */ 4629 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4630 4631 "use strict"; 4632 __webpack_require__.r(__webpack_exports__); 4633 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4634 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4635 4636 /** 4637 * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are 4638 * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will 4639 * say how many. 4640 * 4641 * @param object props the props for this current iteration of the inserter. 4642 * @param string type the key in the object data store for specialPages 4643 * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected) 4644 * @param object niceName the text-friendly versions of the type of special page. i.e. "Special Pages" as opposed to 'special-page'. 4645 * object contains a singular and plural property. 4646 * @return string the text to be used for the button. 4647 */ 4648 4649 var specialPagesInsertText = function specialPagesInsertText(props, type, defaultVal, niceName) { 4650 // if nothing is set, return a prompt to select special pages. 4651 if (props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0) { 4652 return defaultVal; 4653 } 4654 4655 var shownOrHidden = props.attributes.contentVisibility; 4656 var specialPages = props.attributes.contentVisibilityRules.specialPage[type]; 4657 var specialPagesCount = specialPages.length; 4658 var niceType = specialPagesCount === 1 ? niceName.singular : niceName.plural; 4659 var insertText = shownOrHidden + Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])(' on ') + specialPagesCount + ' ' + niceType; 4660 return insertText; 4661 }; 4662 4663 /* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertText); 4664 4665 /***/ }), 4666 4667 /***/ "./src/helpers/special-pages-insert-button-class.js": 4668 /*!**********************************************************!*\ 4669 !*** ./src/helpers/special-pages-insert-button-class.js ***! 4670 \**********************************************************/ 4671 /*! exports provided: default */ 4672 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4673 4674 "use strict"; 4675 __webpack_require__.r(__webpack_exports__); 4676 /** 4677 * The class which is given to the button used to toggle the popover where people can select which content to select. 4678 * We add a 'has-items' class if someone has chosen at least one item. 4679 * 4680 * @return string 4681 */ 4682 var specialPagesInsertButtonClass = function specialPagesInsertButtonClass(props, type) { 4683 // If we don't have any items selected, just basic class. 4684 if (props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0) { 4685 return 'content-visibility-special-page-inserter-toggle'; 4686 } // We have some items selected, so we have a couple classes. 4687 4688 4689 return 'content-visibility-special-page-inserter-toggle has-items'; 4690 }; 4691 4692 /* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertButtonClass); 2930 4693 2931 4694 /***/ }), … … 2956 4719 2957 4720 /***/ "@wordpress/blockEditor": 2958 /*!************************************* *********!*\2959 !*** external {"this":["wp","blockEditor"]}***!2960 \************************************* *********/4721 /*!*************************************!*\ 4722 !*** external ["wp","blockEditor"] ***! 4723 \*************************************/ 2961 4724 /*! no static exports found */ 2962 4725 /***/ (function(module, exports) { 2963 4726 2964 (function() { module.exports = this["wp"]["blockEditor"]; }());4727 (function() { module.exports = window["wp"]["blockEditor"]; }()); 2965 4728 2966 4729 /***/ }), 2967 4730 2968 4731 /***/ "@wordpress/components": 2969 /*!************************************ *********!*\2970 !*** external {"this":["wp","components"]}***!2971 \************************************ *********/4732 /*!************************************!*\ 4733 !*** external ["wp","components"] ***! 4734 \************************************/ 2972 4735 /*! no static exports found */ 2973 4736 /***/ (function(module, exports) { 2974 4737 2975 (function() { module.exports = this["wp"]["components"]; }());4738 (function() { module.exports = window["wp"]["components"]; }()); 2976 4739 2977 4740 /***/ }), 2978 4741 2979 4742 /***/ "@wordpress/compose": 2980 /*!********************************* *********!*\2981 !*** external {"this":["wp","compose"]}***!2982 \********************************* *********/4743 /*!*********************************!*\ 4744 !*** external ["wp","compose"] ***! 4745 \*********************************/ 2983 4746 /*! no static exports found */ 2984 4747 /***/ (function(module, exports) { 2985 4748 2986 (function() { module.exports = this["wp"]["compose"]; }());4749 (function() { module.exports = window["wp"]["compose"]; }()); 2987 4750 2988 4751 /***/ }), 2989 4752 2990 4753 /***/ "@wordpress/element": 2991 /*!********************************* *********!*\2992 !*** external {"this":["wp","element"]}***!2993 \********************************* *********/4754 /*!*********************************!*\ 4755 !*** external ["wp","element"] ***! 4756 \*********************************/ 2994 4757 /*! no static exports found */ 2995 4758 /***/ (function(module, exports) { 2996 4759 2997 (function() { module.exports = this["wp"]["element"]; }());4760 (function() { module.exports = window["wp"]["element"]; }()); 2998 4761 2999 4762 /***/ }), 3000 4763 3001 4764 /***/ "@wordpress/hooks": 3002 /*!******************************* *********!*\3003 !*** external {"this":["wp","hooks"]}***!3004 \******************************* *********/4765 /*!*******************************!*\ 4766 !*** external ["wp","hooks"] ***! 4767 \*******************************/ 3005 4768 /*! no static exports found */ 3006 4769 /***/ (function(module, exports) { 3007 4770 3008 (function() { module.exports = this["wp"]["hooks"]; }());4771 (function() { module.exports = window["wp"]["hooks"]; }()); 3009 4772 3010 4773 /***/ }), 3011 4774 3012 4775 /***/ "@wordpress/i18n": 3013 /*!****************************** *********!*\3014 !*** external {"this":["wp","i18n"]}***!3015 \****************************** *********/4776 /*!******************************!*\ 4777 !*** external ["wp","i18n"] ***! 4778 \******************************/ 3016 4779 /*! no static exports found */ 3017 4780 /***/ (function(module, exports) { 3018 4781 3019 (function() { module.exports = this["wp"]["i18n"]; }());4782 (function() { module.exports = window["wp"]["i18n"]; }()); 3020 4783 3021 4784 /***/ }), 3022 4785 3023 4786 /***/ "@wordpress/plugins": 3024 /*!********************************* *********!*\3025 !*** external {"this":["wp","plugins"]}***!3026 \********************************* *********/4787 /*!*********************************!*\ 4788 !*** external ["wp","plugins"] ***! 4789 \*********************************/ 3027 4790 /*! no static exports found */ 3028 4791 /***/ (function(module, exports) { 3029 4792 3030 (function() { module.exports = this["wp"]["plugins"]; }()); 4793 (function() { module.exports = window["wp"]["plugins"]; }()); 4794 4795 /***/ }), 4796 4797 /***/ "react": 4798 /*!************************!*\ 4799 !*** external "React" ***! 4800 \************************/ 4801 /*! no static exports found */ 4802 /***/ (function(module, exports) { 4803 4804 (function() { module.exports = window["React"]; }()); 3031 4805 3032 4806 /***/ }) -
content-visibility/tags/0.1.7/build/index.js.map
r2450785 r2471073 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/ 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:///(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/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/index.js","webpack:///external {\"this\":[\"wp\",\"blockEditor\"]}","webpack:///external {\"this\":[\"wp\",\"components\"]}","webpack:///external {\"this\":[\"wp\",\"compose\"]}","webpack:///external {\"this\":[\"wp\",\"element\"]}","webpack:///external {\"this\":[\"wp\",\"hooks\"]}","webpack:///external {\"this\":[\"wp\",\"i18n\"]}","webpack:///external {\"this\":[\"wp\",\"plugins\"]}"],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","isSelected","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","ContentVisibilityShownHiddenControl","label","value","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","ContentVisibilitySpecialPagePanelBodyControl","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","invalidBlockTypes","includes"],"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,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa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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;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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\"] = window[\"webpackJsonp\"] || [];\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;","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","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n return (props) => {\n\n if (!isValidBlockType(props.name) || !props.isSelected) {\n return <BlockEdit {...props} />;\n }\n\n // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n // get updated when a block is updated.\n let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n return (\n <Fragment>\n <BlockEdit {...props} />\n <InspectorControls>\n <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n <PanelRow className=\"content-visibility-rules-enabled\">\n <ContentVisibilityRulesEnabled props={props} />\n </PanelRow>\n\n <div className={showControls + \" content-visibility-controls-container\"}>\n <PanelRow className=\"content-visibility-displayed-control\">\n <ContentVisibilityDisplayedControl props={props} />\n </PanelRow>\n\n <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n </div>\n\n </PanelBody>\n </InspectorControls>\n </Fragment>\n );\n\n };\n}, 'contentVisibilityControls');\n\naddFilter('editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls);\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n // If this is a valid block\n if (isValidBlockType(settings.name)) {\n\n // Run the rules through a filter so we're able to add rules externally.\n let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n contentVisibilityRulesEnabled: false,\n userAuthenticated: ''\n });\n\n // Use Lodash's assign to gracefully handle if attributes are undefined\n settings.attributes = assign(settings.attributes, {\n contentVisibilityRules: {\n type: 'object',\n default: defaultRules\n },\n });\n }\n\n return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n // If the current block is valid, add our prop.\n if (isValidBlockType(blockType.name)) {\n extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n }\n\n return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute);\naddFilter('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave);","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n if ( ! rulesEnabled ) {\n return (\n <Disabled>\n <ContentVisibilityShownHiddenControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilityShownHiddenControl props={ props } />\n );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n <ToggleControl\n label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n // Sets the state\n return (\n { rulesEnabled: ! state.rulesEnabled }\n );\n } ) }\n />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n return ( props ) => {\n\n if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n return <BlockListBlock {...props} />;\n }\n\n let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n return <BlockListBlock {...props} className={ iconClassName } />\n\n };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n );\n }\n\n return (\n <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import { 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 { 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 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\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen ) {\n // Add our component to the Slot provided by BlockVisibilityControls\n registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n// import { ContentVisibilityUserAuthenticationRadioControl } from './block-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Special Page', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel block-visibility-special-page-controls\"\n >\n <PanelRow>\n {/* <ContentVisibilityUserAuthenticationRadioControl props={ props } /> */}\n <p>This does not function properly yet due to a core Gutenberg bug.</p>\n\n { props.attributes.contentVisibility && (\n <p class=\"special-page-help-intro content-visibility-help-text\">\n { __( 'Select which types of pages this block will be ' + props.attributes.contentVisibility + '. Special pages include a search results page, a date or category archive, or the 404 not found page amongst others.', 'content-visibility-special-page' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n\n <RadioControl\n label=''\n help=''\n className=\"content-visibility-user-authenticated-control\"\n selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n options={ [\n { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n ] }\n onChange={ ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.userAuthenticated = option;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n } }\n />\n\n );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel content-visibility-user-authenticated-controls\"\n >\n <PanelRow>\n <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n { props.attributes.contentVisibility && (\n <p className=\"user-auth-help-intro content-visibility-help-text\">\n { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","// extracted by mini-css-extract-plugin","/**\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 './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';\n","(function() { module.exports = this[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = this[\"wp\"][\"components\"]; }());","(function() { module.exports = this[\"wp\"][\"compose\"]; }());","(function() { module.exports = this[\"wp\"][\"element\"]; }());","(function() { module.exports = this[\"wp\"][\"hooks\"]; }());","(function() { module.exports = this[\"wp\"][\"i18n\"]; }());","(function() { module.exports = this[\"wp\"][\"plugins\"]; }());"],"sourceRoot":""}1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/goober/dist/goober.module.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/controls/content-visibility-controls.js","webpack:///./src/controls/content-visibility-displayed-control.js","webpack:///./src/controls/content-visibility-rules-enabled.js","webpack:///./src/controls/content-visibility-user-authentication.js","webpack:///./src/controls/multiselect/content-visibility-multiselect.js","webpack:///./src/controls/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-post-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/get-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/has-parent-with-class.js","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/helpers/keep-popup-open.js","webpack:///./src/helpers/special-page-insert-text.js","webpack:///./src/helpers/special-pages-insert-button-class.js","webpack:///./src/index.js","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"compose\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"hooks\"]","webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"plugins\"]","webpack:///external \"React\""],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","isSelected","showControls","attributes","contentVisibilityRules","contentVisibilityRulesEnabled","__","addFilter","addContentVisibilityRulesAttribute","settings","defaultRules","applyFilters","userAuthenticated","assign","type","default","addContentVisibilityRulesPropOnSave","extraProps","blockType","ContentVisibilityDisplayedControl","withState","option","setState","rulesEnabled","addContentVisibilityAttribute","contentVisibility","addBlockVisibilityPropOnSave","ContentVisibilityRulesEnabled","state","newBVRules","setAttributes","doAction","addContentVisibilityRulesEnabledAttribute","addContentVisibilityRulesEnabledPropOnSave","withCustomClassName","BlockListBlock","iconClassName","ContentVisibilityUserAuthenticationControl","hasOwnProperty","BlockVisibilityUserAuthenitcationFill","fillProps","registerPlugin","render","ContentVisibilityMultiSelect","data","labelledBy","onChange","specialPage","checked","onClick","disabled","icon","label","ContentVisibilityShownHiddenControl","value","PagePageInserter","isVisible","getPages","niceName","singular","plural","toggleVisible","specialPagesInsertButtonClass","specialPagesInsertText","keepPopupOpen","PostPageInserter","getPosts","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","registerSpecialPageVisibilityRule","pages","posts","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","page","push","id","post","keyValue","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","invalidBlockTypes","includes","event","eTarget","target","stopPropagation","defaultVal","undefined","shownOrHidden","specialPagesCount","niceType","insertText"],"mappings":";;;;;;;;;;;;;;;;QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;ACfA;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0B;;;;;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yB;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA;AACA;;AAEA;;;;;;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,a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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACoD;;AAEjF;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA,GAAG,mCAAmC;AACtC;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,cAAc;AAC/B;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA,GAAG;;;AAGH,kBAAkB,eAAe;AACjC,oBAAoB,eAAe;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;;AAEA;AACA;AACA;AACA,iCAAiC,kDAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAM;AACtB,EAAE,uDAAS;AACX,kBAAkB;AAClB,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,gCAAgC,kDAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;AACA,WAAW,4CAAK;AAChB;AACA,KAAK,EAAE,4CAAK;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,wBAAwB,yDAAW;AACnC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,qDAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK,qCAAqC;AAC1C,GAAG;AACH;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA,GAAG,oBAAoB,4CAAK;AAC5B;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,4CAAK,uEAAuE,4CAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG,GAAG,4CAAK,2CAA2C;AACtD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG;AACH;;AAEA,2BAA2B,kDAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA;AACA,gBAAgB,oDAAM;AACtB;;AAEA,EAAE,uDAAS;AACX;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,0BAA0B,4CAAK,mEAAmE,4CAAK;AAC1G;AACA;AACA;AACA;AACA,GAAG,uBAAuB,4CAAK,8BAA8B,4CAAK;AAClE;AACA,GAAG,gBAAgB,4CAAK;AACxB;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,EAAE,4CAAK,iDAAiD;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,GAAG,iEAAiE,4CAAK;AACzE;;AAEA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEe,0EAAW,EAAC;AACkB;AAC7C;;;;;;;;;;;;AC76BA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEO,IAAMA,yBAAyB,GAAGC,qFAA0B,CAAC,UAACC,SAAD,EAAe;AAE/E,SAAO,UAACC,KAAD,EAAW;AAEd,QAAI,CAACC,2EAAgB,CAACD,KAAK,CAACE,IAAP,CAAjB,IAAiC,CAACF,KAAK,CAACG,UAA5C,EAAwD;AACpD,aAAO,yEAAC,SAAD,EAAeH,KAAf,CAAP;AACH,KAJa,CAMd;AACA;AACA;AACA;;;AACA,QAAII,YAAY,GAAIJ,KAAK,CAACK,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAAzC,GAA0E,eAA1E,GAA4F,eAA/G;AAEA,WACI,yEAAC,2DAAD,QACI,yEAAC,SAAD,EAAeP,KAAf,CADJ,EAEI,yEAAC,wEAAD,QACI,yEAAC,+DAAD;AAAW,WAAK,EAAEQ,0DAAE,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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_content_visibility\"] = window[\"webpackJsonp_content_visibility\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/index.js\",\"style-index\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","let e={data:\"\"},t=t=>{try{let e=t?t.querySelector(\"#_goober\"):self._goober;return e||(e=(t||document.head).appendChild(document.createElement(\"style\")),e.innerHTML=\" \",e.id=\"_goober\"),e.firstChild}catch(e){}return t||e},r=e=>{let r=t(e),a=r.data;return r.data=\"\",a},a=/(?:([A-Z0-9-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/gi,l=/\\/\\*[\\s\\S]*?\\*\\/|\\s{2,}|\\n/gm,o=(e,t)=>{let r,a=\"\",l=\"\",n=\"\";for(let c in e){let s=e[c];\"object\"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/g.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):c,l+=\"@\"==c[0]?\"f\"==c[1]?o(s,c):c+\"{\"+o(s,\"k\"==c[1]?\"\":t)+\"}\":o(s,r)):\"@\"==c[0]&&\"i\"==c[1]?a=c+\" \"+s+\";\":n+=o.p?o.p(c.replace(/[A-Z]/g,\"-$&\").toLowerCase(),s):c.replace(/[A-Z]/g,\"-$&\").toLowerCase()+\":\"+s+\";\"}return n[0]?(r=t?t+\"{\"+n+\"}\":n,a+r+l):a+l},n={},c=e=>{let t=\"\";for(let r in e)t+=r+(\"object\"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,p)=>{let i=\"object\"==typeof e?c(e):e,u=n[i]||(n[i]=\"go\"+i.split(\"\").reduce((e,t)=>101*e+t.charCodeAt(0)>>>0,11));if(!n[u]){let t=\"object\"==typeof e?e:(e=>{let t,r=[{}];for(;t=a.exec(e.replace(l,\"\"));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(p?{[\"@keyframes \"+u]:t}:t,r?\"\":\".\"+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[u],t,s),u},p=(e,t,r)=>e.reduce((e,a,l)=>{let n=t[l];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):e}return e+a+(null==n?\"\":n)},\"\");function i(e){let r=this||{},a=e.call?e(r.p):e;return s(a.unshift?a.raw?p(a,[].slice.call(arguments,1),r.p):a.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):a,t(r.target),r.g,r.o,r.k)}let u,f,d=i.bind({g:1}),g=i.bind({k:1});function b(e,t,r){o.p=t,u=e,f=r}function h(e,t){let r=this||{};return function(){let a=arguments;function l(o,n){let c=Object.assign({},o),s=c.className||l.className;return r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/g.test(s),c.className=i.apply(r,a)+(s?\" \"+s:\"\"),t&&(c.ref=n),u(c.as||e,c)}return t?t(l):l}}export{i as css,r as extractCss,d as glob,g as keyframes,b as setup,h as styled};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","import { css } from 'goober';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\n\nvar debounce = function debounce(func, wait) {\n var timeout;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n func.apply(null, args);\n }, wait);\n };\n};\n\n/**\r\n * Filters React Select options and sorts by similarity to a search filter.\r\n * Handles partial matches, eg. searching for \"Waberg High\" will find \"Raoul\r\n * Wallenberg Traditional High School\". Case insensitive. Ignores\r\n * non-alphanumeric characters.\r\n *\r\n * @param options An unfiltered list of Options.\r\n * @param? filter A string to compare against Option labels.\r\n * @param? substitutions Strings with multiple spellings or variations that we\r\n * expect to match, eg. accented characters or abbreviated words.\r\n *\r\n * @return A filtered and sorted array of Options.\r\n */\nfunction filterOptions(options, filter, substitutions) {\n // If the filter is blank, return the full list of Options.\n if (!filter) {\n return options;\n }\n\n var cleanFilter = cleanUpText(filter, substitutions);\n return options // Filter out undefined or null Options.\n .filter(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return label != null && value != null;\n }) // Create a {score, Option} pair for each Option based on its label's\n // similarity to the filter text.\n .map(function (option) {\n return {\n option: option,\n score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)\n };\n }) // Only include matches of the entire substring, with a slight\n // affordance for transposition or extra characters.\n .filter(function (pair) {\n return pair.score >= cleanFilter.length - 2;\n }) // Sort 'em by order of their score.\n .sort(function (a, b) {\n return b.score - a.score;\n }) // …and grab the original Options back from their pairs.\n .map(function (pair) {\n return pair.option;\n });\n}\n/**\r\n * Scores the similarity between two strings by returning the length of the\r\n * longest common subsequence. Intended for comparing strings of different\r\n * lengths; eg. when matching a typeahead search input with a school name.\r\n\n * Meant for use in an instant search box where results are being fetched\r\n * as a user is typing.\r\n *\r\n * @param a The longer string (though, we flip them if it's shorter).\r\n * @param b The shorter string, eg. a typeahead search input.\r\n *\r\n * @return The length of the longest common subsequence. Higher scores indicate\r\n * closer matches.\r\n */\n\nfunction typeaheadSimilarity(a, b) {\n var aLength = a.length;\n var bLength = b.length;\n var table = [];\n\n if (!aLength || !bLength) {\n return 0;\n } // Ensure `a` isn't shorter than `b`.\n\n\n if (aLength < bLength) {\n var _ref2 = [b, a];\n a = _ref2[0];\n b = _ref2[1];\n } // Early exit if `a` includes `b`; these will be scored higher than any\n // other options with the same `b` (filter string), with a preference for\n // shorter `a` strings (option labels).\n\n\n if (a.indexOf(b) !== -1) {\n return bLength + 1 / aLength;\n } // Initialize the table axes:\n //\n // 0 0 0 0 ... bLength\n // 0\n // 0\n //\n // ...\n //\n // aLength\n //\n\n\n for (var x = 0; x <= aLength; ++x) {\n table[x] = [0];\n }\n\n for (var y = 0; y <= bLength; ++y) {\n table[0][y] = 0;\n } // Populate the rest of the table with a dynamic programming algorithm.\n\n\n for (var _x = 1; _x <= aLength; ++_x) {\n for (var _y = 1; _y <= bLength; ++_y) {\n table[_x][_y] = a[_x - 1] === b[_y - 1] ? 1 + table[_x - 1][_y - 1] : Math.max(table[_x][_y - 1], table[_x - 1][_y]);\n }\n }\n\n return table[aLength][bLength];\n}\n/**\r\n * Apply string substitutions, remove non-alphanumeric characters, and convert\r\n * all letters to uppercase.\r\n *\r\n * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'.\r\n *\r\n * @param input An unsanitized input string.\r\n * @param substitutions Strings with multiple spellings or variations that we\r\n * expect to match, for example accented characters or abbreviated\r\n * words.\r\n *\r\n * @return The sanitized text.\r\n */\n\nfunction cleanUpText(input, substitutions) {\n if (!input) {\n return \"\";\n } // Uppercase and remove all non-alphanumeric, non-accented characters.\n // Also remove underscores.\n\n\n input = input.toUpperCase().replace(/((?=[^\\u00E0-\\u00FC])\\W)|_/g, \"\");\n\n if (!substitutions) {\n return input;\n }\n\n var safeSubstitutions = substitutions; // For Flow.\n // Replace all strings in `safeSubstitutions` with their standardized\n // counterparts.\n\n return Object.keys(safeSubstitutions).reduce(function (output, substitution) {\n var unsubbed = new RegExp(substitution, \"g\");\n return output.replace(unsubbed, safeSubstitutions[substitution]);\n }, input);\n}\n\nvar strings = {\n selectSomeItems: \"Select...\",\n allItemsAreSelected: \"All items are selected.\",\n selectAll: \"Select All\",\n search: \"Search\",\n clearSearch: \"Clear Search\",\n clearSelected: \"Clear Selected\"\n};\nfunction getString(key, overrideStrings) {\n return (overrideStrings == null ? void 0 : overrideStrings[key]) || strings[key];\n}\n\nvar Cross = function Cross() {\n return React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-search-clear-icon gray\"\n }, React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n }), React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n }));\n};\n\nvar DefaultRenderer = /*#__PURE__*/css({\n \"& input,& span\": {\n verticalAlign: \"middle\",\n margin: 0\n },\n span: {\n display: \"inline-block\",\n paddingLeft: \"5px\"\n },\n \"&.disabled\": {\n opacity: 0.5\n }\n});\n\nvar DefaultItemRenderer = function DefaultItemRenderer(_ref) {\n var checked = _ref.checked,\n option = _ref.option,\n onClick = _ref.onClick,\n disabled = _ref.disabled;\n return React.createElement(\"div\", {\n className: DefaultRenderer + \" item-renderer \" + (disabled && \"disabled\")\n }, React.createElement(\"input\", {\n type: \"checkbox\",\n onChange: onClick,\n checked: checked,\n tabIndex: -1,\n disabled: disabled\n }), React.createElement(\"span\", null, option.label));\n};\n\n/**\r\n * This component represents an individual item in the multi-select drop-down\r\n */\nvar ItemContainer = /*#__PURE__*/css({\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n display: \"block\",\n padding: \"var(--rmsc-p)\",\n outline: 0,\n \"&:hover,&:focus\": {\n background: \"var(--rmsc-hover)\"\n },\n \"&.selected\": {\n background: \"var(--rmsc-selected)\"\n }\n});\n\nvar SelectItem = function SelectItem(_ref) {\n var _ref$itemRenderer = _ref.itemRenderer,\n ItemRenderer = _ref$itemRenderer === void 0 ? DefaultItemRenderer : _ref$itemRenderer,\n option = _ref.option,\n checked = _ref.checked,\n focused = _ref.focused,\n tabIndex = _ref.tabIndex,\n disabled = _ref.disabled,\n onSelectionChanged = _ref.onSelectionChanged,\n onClick = _ref.onClick;\n var itemRef = useRef();\n useEffect(function () {\n updateFocus(); // eslint-disable-next-line\n }, [focused]);\n\n var toggleChecked = function toggleChecked() {\n onSelectionChanged(!checked);\n };\n\n var handleClick = function handleClick(e) {\n toggleChecked();\n onClick(e);\n };\n\n var updateFocus = function updateFocus() {\n if (focused && !disabled && itemRef) {\n itemRef.current.focus();\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.which) {\n case 13: // Enter\n\n case 32:\n // Space\n toggleChecked();\n break;\n\n default:\n return;\n }\n\n e.preventDefault();\n };\n\n return React.createElement(\"label\", {\n className: ItemContainer + \" select-item \" + (checked && \"selected\"),\n role: \"option\",\n \"aria-selected\": checked,\n tabIndex: tabIndex,\n ref: itemRef,\n onKeyDown: handleKeyDown\n }, React.createElement(ItemRenderer, {\n option: option,\n checked: checked,\n onClick: handleClick,\n disabled: disabled\n }));\n};\n\n/**\r\n * This component represents an unadorned list of SelectItem (s).\r\n */\nvar SelectListUl = /*#__PURE__*/css({\n margin: 0,\n paddingLeft: 0,\n li: {\n listStyle: \"none\",\n margin: 0\n }\n});\nvar skipIndex = 2;\n\nvar SelectList = function SelectList(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n ItemRenderer = _ref.ItemRenderer,\n options = _ref.options,\n focusIndex = _ref.focusIndex,\n _onClick = _ref.onClick;\n\n var handleSelectionChanged = function handleSelectionChanged(option, checked) {\n if (disabled) {\n return;\n }\n\n onChange(checked ? [].concat(value, [option]) : value.filter(function (o) {\n return o.value !== option.value;\n }));\n };\n\n return React.createElement(\"ul\", {\n className: SelectListUl\n }, options.map(function (o, i) {\n var tabIndex = i + skipIndex;\n return React.createElement(\"li\", {\n key: o.hasOwnProperty(\"key\") ? o.key : i\n }, React.createElement(SelectItem, {\n focused: focusIndex === tabIndex,\n tabIndex: tabIndex,\n option: o,\n onSelectionChanged: function onSelectionChanged(c) {\n return handleSelectionChanged(o, c);\n },\n checked: value.find(function (s) {\n return s.value === o.value;\n }) ? true : false,\n onClick: function onClick(e) {\n return _onClick(e, tabIndex);\n },\n itemRenderer: ItemRenderer,\n disabled: o.disabled || disabled\n }));\n }));\n};\n\n/**\r\n * This component represents the entire panel which gets dropped down when the\r\n * user selects the component. It encapsulates the search filter, the\r\n * Select-all item, and the list of options.\r\n */\nvar FocusType;\n\n(function (FocusType) {\n FocusType[FocusType[\"SEARCH\"] = -1] = \"SEARCH\";\n FocusType[FocusType[\"NONE\"] = 1] = \"NONE\";\n})(FocusType || (FocusType = {}));\n\nvar SelectSearchContainer = /*#__PURE__*/css({\n width: \"100%\",\n position: \"relative\",\n borderBottom: \"1px solid var(--rmsc-border)\",\n input: {\n height: \"var(--rmsc-h)\",\n padding: \"0 var(--rmsc-p)\",\n width: \"100%\",\n outline: 0,\n border: 0\n }\n});\nvar SearchClearButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n background: \"none\",\n border: 0,\n padding: \"0 calc(var(--rmsc-p)/2)\",\n \"[hidden]\": {\n display: \"none\"\n }\n});\nvar SelectPanel = function SelectPanel(props) {\n var onChange = props.onChange,\n options = props.options,\n value = props.value,\n customFilterOptions = props.filterOptions,\n selectAllLabel = props.selectAllLabel,\n ItemRenderer = props.ItemRenderer,\n disabled = props.disabled,\n disableSearch = props.disableSearch,\n focusSearchOnOpen = props.focusSearchOnOpen,\n hasSelectAll = props.hasSelectAll,\n overrideStrings = props.overrideStrings,\n ClearIcon = props.ClearIcon,\n debounceDuration = props.debounceDuration;\n\n var _useState = useState(\"\"),\n searchText = _useState[0],\n setSearchText = _useState[1];\n\n var _useState2 = useState(\"\"),\n searchTextForFilter = _useState2[0],\n setSearchTextForFilter = _useState2[1];\n\n var _useState3 = useState(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE),\n focusIndex = _useState3[0],\n setFocusIndex = _useState3[1];\n\n var debouncedSearch = useCallback(debounce(function (query) {\n return setSearchTextForFilter(query);\n }, debounceDuration), []);\n var selectAllOption = {\n label: selectAllLabel || getString(\"selectAll\", overrideStrings),\n value: \"\"\n };\n\n var selectAllValues = function selectAllValues(checked) {\n var filteredValues = filteredOptions().filter(function (o) {\n return !o.disabled;\n }).map(function (o) {\n return o.value;\n });\n\n if (checked) {\n var selectedValues = value.map(function (o) {\n return o.value;\n });\n var finalSelectedValues = [].concat(selectedValues, filteredValues);\n return options.filter(function (_ref) {\n var value = _ref.value;\n return finalSelectedValues.includes(value);\n });\n }\n\n return value.filter(function (o) {\n return !filteredValues.includes(o.value);\n });\n };\n\n var selectAllChanged = function selectAllChanged(checked) {\n var newOptions = selectAllValues(checked);\n onChange(newOptions);\n };\n\n var handleSearchChange = function handleSearchChange(e) {\n debouncedSearch(e.target.value);\n setSearchText(e.target.value);\n setFocusIndex(FocusType.SEARCH);\n };\n\n var handleClear = function handleClear() {\n setSearchTextForFilter(\"\");\n setSearchText(\"\");\n };\n\n var handleItemClicked = function handleItemClicked(index) {\n return setFocusIndex(index);\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.which) {\n case 38:\n // Up Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(-1);\n break;\n\n case 40:\n // Down Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(1);\n break;\n\n default:\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n var handleSearchFocus = function handleSearchFocus() {\n setFocusIndex(FocusType.SEARCH);\n };\n\n var filteredOptions = function filteredOptions() {\n return customFilterOptions ? customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);\n };\n\n var updateFocus = function updateFocus(offset) {\n var newFocus = focusIndex + offset;\n newFocus = Math.max(1, newFocus);\n newFocus = Math.min(newFocus, options.length + 1);\n setFocusIndex(newFocus);\n };\n\n var _useMemo = useMemo(function () {\n var filteredOptionsList = filteredOptions().filter(function (o) {\n return !o.disabled;\n });\n return [filteredOptionsList.every(function (o) {\n return value.findIndex(function (v) {\n return v.value === o.value;\n }) !== -1;\n }), filteredOptionsList.length !== 0]; // eslint-disable-next-line\n }, [searchText, value]),\n isAllOptionSelected = _useMemo[0],\n hasSelectableOptions = _useMemo[1];\n\n return React.createElement(\"div\", {\n className: \"select-panel\",\n role: \"listbox\",\n onKeyDown: handleKeyDown\n }, !disableSearch && React.createElement(\"div\", {\n className: SelectSearchContainer\n }, React.createElement(\"input\", {\n autoFocus: focusSearchOnOpen,\n placeholder: getString(\"search\", overrideStrings),\n type: \"text\",\n \"aria-describedby\": getString(\"search\", overrideStrings),\n onKeyDown: function onKeyDown(e) {\n return e.stopPropagation();\n },\n onChange: handleSearchChange,\n onFocus: handleSearchFocus,\n value: searchText\n }), React.createElement(\"button\", {\n type: \"button\",\n className: SearchClearButton + \" search-clear-button\",\n hidden: !searchText,\n onClick: handleClear,\n \"aria-label\": getString(\"clearSearch\", overrideStrings)\n }, ClearIcon || React.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && React.createElement(SelectItem, {\n focused: focusIndex === 1,\n tabIndex: 1,\n checked: isAllOptionSelected,\n option: selectAllOption,\n onSelectionChanged: selectAllChanged,\n onClick: function onClick() {\n return handleItemClicked(0);\n },\n itemRenderer: ItemRenderer,\n disabled: disabled\n }), React.createElement(SelectList, Object.assign({}, props, {\n options: filteredOptions(),\n focusIndex: focusIndex,\n onClick: function onClick(_e, index) {\n return handleItemClicked(index);\n },\n ItemRenderer: ItemRenderer,\n disabled: disabled\n })));\n};\n\nfunction Arrow(_ref) {\n var expanded = _ref.expanded;\n return React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-heading-dropdown-arrow gray\"\n }, React.createElement(\"path\", {\n d: expanded ? \"M18 15 12 9 6 15\" : \"M6 9L12 15 18 9\"\n }));\n}\n\nvar Spinner = /*#__PURE__*/css({\n animation: \"rotate 2s linear infinite\",\n \"& .path\": {\n stroke: \"var(--rmsc-border)\",\n strokeWidth: \"4px\",\n strokeLinecap: \"round\",\n animation: \"dash 1.5s ease-in-out infinite\"\n },\n \"@keyframes rotate\": {\n \"100%\": {\n transform: \"rotate(360deg)\"\n }\n },\n \"@keyframes dash\": {\n \"0%\": {\n strokeDasharray: \"1,150\",\n strokeDashoffset: 0\n },\n \"50%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-35\"\n },\n \"100%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-124\"\n }\n }\n});\n\nfunction Loading(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size;\n return React.createElement(\"span\", {\n style: {\n width: size,\n marginRight: \"0.2rem\"\n }\n }, React.createElement(\"svg\", {\n width: size,\n height: size,\n className: Spinner,\n viewBox: \"0 0 50 50\",\n style: {\n display: \"inline\",\n verticalAlign: \"middle\"\n }\n }, React.createElement(\"circle\", {\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n className: \"path\"\n })));\n}\n\n/**\r\n * A generic dropdown component. It takes the children of the component\r\n * and hosts it in the component. When the component is selected, it\r\n * drops-down the contentComponent and applies the contentProps.\r\n */\nvar PanelContainer = /*#__PURE__*/css({\n position: \"absolute\",\n zIndex: 1,\n top: \"100%\",\n width: \"100%\",\n paddingTop: \"8px\",\n \".panel-content\": {\n maxHeight: \"300px\",\n overflowY: \"auto\",\n borderRadius: \"var(--rmsc-radius)\",\n background: \"var(--rmsc-bg)\",\n boxShadow: \"0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)\"\n }\n});\nvar DropdownContainer = /*#__PURE__*/css({\n position: \"relative\",\n outline: 0,\n backgroundColor: \"var(--rmsc-bg)\",\n border: \"1px solid var(--rmsc-border)\",\n borderRadius: \"var(--rmsc-radius)\",\n \"&:focus-within\": {\n boxShadow: \"var(--rmsc-main) 0 0 0 1px\",\n borderColor: \"var(--rmsc-main)\"\n }\n});\nvar DropdownHeading = /*#__PURE__*/css({\n position: \"relative\",\n padding: \"0 var(--rmsc-p)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"var(--rmsc-h)\",\n cursor: \"default\",\n outline: 0,\n \".dropdown-heading-value\": {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n flex: 1\n }\n});\nvar ClearSelectedButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n background: \"none\",\n border: 0,\n padding: 0,\n display: \"flex\"\n});\n\nvar Dropdown = function Dropdown(_ref) {\n var children = _ref.children,\n ContentComponent = _ref.contentComponent,\n contentProps = _ref.contentProps,\n isLoading = _ref.isLoading,\n disabled = _ref.disabled,\n shouldToggleOnHover = _ref.shouldToggleOnHover,\n labelledBy = _ref.labelledBy,\n onMenuToggle = _ref.onMenuToggle,\n ArrowRenderer = _ref.ArrowRenderer,\n ClearSelectedIcon = _ref.ClearSelectedIcon,\n defaultIsOpen = _ref.defaultIsOpen,\n isOpen = _ref.isOpen;\n\n var _useState = useState(true),\n isInternalExpand = _useState[0],\n setIsInternalExpand = _useState[1];\n\n var _useState2 = useState(defaultIsOpen),\n expanded = _useState2[0],\n setExpanded = _useState2[1];\n\n var _useState3 = useState(false),\n hasFocus = _useState3[0],\n setHasFocus = _useState3[1];\n\n var FinalArrow = ArrowRenderer || Arrow;\n var wrapper = useRef();\n /* eslint-disable react-hooks/exhaustive-deps */\n\n useEffect(function () {\n onMenuToggle && onMenuToggle(expanded);\n }, [expanded]);\n useEffect(function () {\n if (defaultIsOpen === undefined && typeof isOpen === \"boolean\") {\n setIsInternalExpand(false);\n setExpanded(isOpen);\n }\n }, [isOpen]);\n\n var handleKeyDown = function handleKeyDown(e) {\n var _wrapper$current;\n\n if (isInternalExpand) {\n switch (e.which) {\n case 27: // Escape\n\n case 38:\n // Up Arrow\n setExpanded(false);\n wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus();\n break;\n\n case 32: // Space\n\n case 13: // Enter Key\n\n case 40:\n // Down Arrow\n setExpanded(true);\n break;\n\n default:\n return;\n }\n }\n\n e.preventDefault();\n };\n\n var handleHover = function handleHover(iexpanded) {\n isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);\n };\n\n var handleFocus = function handleFocus() {\n return !hasFocus && setHasFocus(true);\n };\n\n var handleBlur = function handleBlur(e) {\n if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {\n setHasFocus(false);\n setExpanded(false);\n }\n };\n\n var handleMouseEnter = function handleMouseEnter() {\n return handleHover(true);\n };\n\n var handleMouseLeave = function handleMouseLeave() {\n return handleHover(false);\n };\n\n var toggleExpanded = function toggleExpanded() {\n isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);\n };\n\n var handleClearSelected = function handleClearSelected(e) {\n e.stopPropagation();\n contentProps[\"onChange\"]([]);\n isInternalExpand && setExpanded(false);\n };\n\n return React.createElement(\"div\", {\n tabIndex: 0,\n className: DropdownContainer + \" dropdown-container\",\n \"aria-labelledby\": labelledBy,\n \"aria-expanded\": expanded,\n \"aria-readonly\": true,\n \"aria-disabled\": disabled,\n ref: wrapper,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }, React.createElement(\"div\", {\n className: DropdownHeading + \" dropdown-heading\",\n onClick: toggleExpanded\n }, React.createElement(\"div\", {\n className: \"dropdown-heading-value\"\n }, children), isLoading && React.createElement(Loading, null), contentProps[\"value\"].length > 0 && React.createElement(\"button\", {\n type: \"button\",\n className: ClearSelectedButton + \" clear-selected-button\",\n onClick: handleClearSelected,\n \"aria-label\": getString(\"clearSelected\", contentProps[\"overrideStrings\"])\n }, ClearSelectedIcon || React.createElement(Cross, null)), React.createElement(FinalArrow, {\n expanded: expanded\n })), expanded && React.createElement(\"div\", {\n className: PanelContainer + \" dropdown-content\"\n }, React.createElement(\"div\", {\n className: \"panel-content\"\n }, React.createElement(ContentComponent, Object.assign({}, contentProps)))));\n};\n\nvar DropdownHeader = function DropdownHeader(_ref) {\n var value = _ref.value,\n options = _ref.options,\n valueRenderer = _ref.valueRenderer,\n overrideStrings = _ref.overrideStrings;\n var noneSelected = value.length === 0;\n var allSelected = value.length === options.length;\n var customText = valueRenderer && valueRenderer(value, options);\n\n var getSelectedText = function getSelectedText() {\n return value.map(function (s) {\n return s.label;\n }).join(\", \");\n };\n\n return noneSelected ? React.createElement(\"span\", {\n className: \"gray\"\n }, customText || getString(\"selectSomeItems\", overrideStrings)) : React.createElement(\"span\", null, customText || (allSelected ? getString(\"allItemsAreSelected\", overrideStrings) : getSelectedText()));\n};\n\nvar MultiSelectBox = /*#__PURE__*/css({\n \"--rmscMain\": \"#4285f4\",\n \"--rmscHover\": \"#f1f3f5\",\n \"--rmscSelected\": \"#e2e6ea\",\n \"--rmscBorder\": \"#ccc\",\n \"--rmscGray\": \"#aaa\",\n \"--rmscBg\": \"#fff\",\n \"--rmscP\": \"10px\",\n \"--rmscRadius\": \"4px\",\n \"--rmscH\": \"38px\",\n \"*\": {\n boxSizing: \"border-box\",\n transition: \"all 0.2s ease\"\n },\n \".gray\": {\n color: \"var(--rmsc-gray)\"\n }\n});\n\nvar MultiSelect = function MultiSelect(_ref) {\n var _ref$focusSearchOnOpe = _ref.focusSearchOnOpen,\n focusSearchOnOpen = _ref$focusSearchOnOpe === void 0 ? true : _ref$focusSearchOnOpe,\n _ref$hasSelectAll = _ref.hasSelectAll,\n hasSelectAll = _ref$hasSelectAll === void 0 ? true : _ref$hasSelectAll,\n shouldToggleOnHover = _ref.shouldToggleOnHover,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? \"multi-select\" : _ref$className,\n options = _ref.options,\n value = _ref.value,\n valueRenderer = _ref.valueRenderer,\n overrideStrings = _ref.overrideStrings,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n ItemRenderer = _ref.ItemRenderer,\n ArrowRenderer = _ref.ArrowRenderer,\n selectAllLabel = _ref.selectAllLabel,\n isLoading = _ref.isLoading,\n disableSearch = _ref.disableSearch,\n filterOptions = _ref.filterOptions,\n labelledBy = _ref.labelledBy,\n onMenuToggle = _ref.onMenuToggle,\n ClearIcon = _ref.ClearIcon,\n _ref$debounceDuration = _ref.debounceDuration,\n debounceDuration = _ref$debounceDuration === void 0 ? 300 : _ref$debounceDuration,\n ClearSelectedIcon = _ref.ClearSelectedIcon,\n defaultIsOpen = _ref.defaultIsOpen,\n isOpen = _ref.isOpen;\n var nvalue = value || [];\n return React.createElement(\"div\", {\n className: MultiSelectBox + \" \" + className\n }, React.createElement(Dropdown, {\n isLoading: isLoading,\n contentComponent: SelectPanel,\n shouldToggleOnHover: shouldToggleOnHover,\n contentProps: {\n ItemRenderer: ItemRenderer,\n options: options,\n value: nvalue,\n hasSelectAll: hasSelectAll,\n selectAllLabel: selectAllLabel,\n onChange: onChange,\n disabled: disabled,\n disableSearch: disableSearch,\n focusSearchOnOpen: focusSearchOnOpen,\n filterOptions: filterOptions,\n overrideStrings: overrideStrings,\n ClearIcon: ClearIcon,\n debounceDuration: debounceDuration\n },\n disabled: disabled,\n labelledBy: labelledBy,\n onMenuToggle: onMenuToggle,\n ArrowRenderer: ArrowRenderer,\n ClearSelectedIcon: ClearSelectedIcon,\n defaultIsOpen: defaultIsOpen,\n isOpen: isOpen\n }, React.createElement(DropdownHeader, {\n value: nvalue,\n options: options,\n valueRenderer: valueRenderer,\n overrideStrings: overrideStrings\n })));\n};\n\nexport default MultiSelect;\nexport { Dropdown, SelectItem, SelectPanel };\n//# sourceMappingURL=react-multi-select-component.esm.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n return (props) => {\n\n if (!isValidBlockType(props.name) || !props.isSelected) {\n return <BlockEdit {...props} />;\n }\n\n // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n // get updated when a block is updated.\n let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n return (\n <Fragment>\n <BlockEdit {...props} />\n <InspectorControls>\n <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n <PanelRow className=\"content-visibility-rules-enabled\">\n <ContentVisibilityRulesEnabled props={props} />\n </PanelRow>\n\n <div className={showControls + \" content-visibility-controls-container\"}>\n <PanelRow className=\"content-visibility-displayed-control\">\n <ContentVisibilityDisplayedControl props={props} />\n </PanelRow>\n\n <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n </div>\n\n </PanelBody>\n </InspectorControls>\n </Fragment>\n );\n\n };\n}, 'contentVisibilityControls');\n\naddFilter('editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls);\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n // If this is a valid block\n if (isValidBlockType(settings.name)) {\n\n // Run the rules through a filter so we're able to add rules externally.\n let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n contentVisibilityRulesEnabled: false,\n userAuthenticated: ''\n });\n\n // Use Lodash's assign to gracefully handle if attributes are undefined\n settings.attributes = assign(settings.attributes, {\n contentVisibilityRules: {\n type: 'object',\n default: defaultRules\n },\n });\n }\n\n return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n // If the current block is valid, add our prop.\n if (isValidBlockType(blockType.name)) {\n extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n }\n\n return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute);\naddFilter('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave);","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n if ( ! rulesEnabled ) {\n return (\n <Disabled>\n <ContentVisibilityShownHiddenControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilityShownHiddenControl props={ props } />\n );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n <ToggleControl\n label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n // Sets the state\n return (\n { rulesEnabled: ! state.rulesEnabled }\n );\n } ) }\n />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n return ( props ) => {\n\n if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n return <BlockListBlock {...props} />;\n }\n\n let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n return <BlockListBlock {...props} className={ iconClassName } />\n\n };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n );\n }\n\n return (\n <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import MultiSelect from \"react-multi-select-component\";\nimport { withState } from '@wordpress/compose';\n\n/**\n * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component\n * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme.\n *\n * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent.\n *\n * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like:\n *\n * ```\n * <ContentVisibilityMultiSelect data={ fruits } labelledBy=\"Select Page Type\" props={ props } onChange={ onChange } />\n * ```\n *\n * the `onChange` function can look like this:\n *\n * ```\n * const onChange = ( option ) => {\n * // Set the state and props.\n * setState( { option } );\n * props.setAttributes( {\n * contentVisibilityRules: {\n * ...props.attributes.contentVisibilityRules,\n * specialPage: {\n * ...props.attributes.contentVisibilityRules.specialPage,\n * pages: option\n * }\n * },\n * } );\n *\n * }\n * ```\n *\n * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent)\n */\n\nexport const ContentVisibilityMultiSelect = withState( {\n option: [],\n} )( ( { option, setState, props, data, labelledBy, type } ) => {\n\n /**\n * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for\n * this instance of the component.\n * \n * @param {array} option current value of what is selected.\n */\n const onChange = ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n props.setAttributes( {\n contentVisibilityRules: {\n ...props.attributes.contentVisibilityRules,\n specialPage: {\n ...props.attributes.contentVisibilityRules.specialPage,\n [type]: option\n }\n },\n } );\n\n };\n\n return (\n <div className=\"content-visibility-multi-select\">\n <MultiSelect\n options={ data }\n value={ props.attributes.contentVisibilityRules.specialPage[type] || option }\n onChange={ onChange }\n labelledBy={ labelledBy }\n ItemRenderer={ ( { checked, option, onClick, disabled, } ) => {\n return (\n <div className={`item-renderer content-visibility-multi-select-item ${disabled && \"disabled\"}`}>\n <input type=\"checkbox\" onChange={ onClick } checked={ checked } tabIndex={ -1 } disabled={ disabled } />\n <span>{option.icon || \"\"} {option.label}</span>\n </div>\n );\n } }\n // isOpen={ true }\n />\n </div>\n );\n\n} );","import { RadioControl, PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const ContentVisibilityShownHiddenControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Shown or Hidden', 'content-visibility-user-role' ) }\n initialOpen={ true }\n className=\"content-visibility-control-panel content-visibility-user-role-controls\"\n >\n <PanelRow>\n <RadioControl\n label={ __( \"When the rules below are true, this block will be: \", 'content-visibility' ) }\n help=\"\"\n selected={ props.attributes.contentVisibility || option }\n options={ [\n { label: __( 'Shown', 'content-visibility' ), value: 'shown' },\n { label: __( 'Hidden', 'content-visibility' ), value: 'hidden' },\n ] }\n onChange={ ( option ) => {\n\n setState( { option } );\n\n props.setAttributes( {\n contentVisibility: option,\n } );\n\n } }\n />\n </PanelRow>\n </PanelBody>\n );\n\n} );","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPages from '../../helpers/get-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'pages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Page', 'content-visibility' ),\n plural: __( 'Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"networking\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more pages from this list will mean that this block will only be ${props.attributes.contentVisibility} on those pages. If you want this block to be ${props.attributes.contentVisibility} on ALL pages, please use the 'Special Pages' option and select 'Any Page'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PagePageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPosts from '../../helpers/get-posts';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PostPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPosts();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'posts';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Post', 'content-visibility' ),\n plural: __( 'Posts', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"admin-post\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific posts', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Posts', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the posts upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more posts from this list will mean that this block will only be ${props.attributes.contentVisibility} on those posts. If you want this block to be ${props.attributes.contentVisibility} on ALL posts, please use the 'Special Pages' option and select 'Any Post'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PostPageInserter;","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilitySpecialPagePanelBodyControl } from './content-visibility-special-page-panel';\n\n\nexport const ContentVisibilitySpecialPageControls = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled>\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilitySpecialPageControls> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.\n */\nfunction ContentVisibilitySpecialPageFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilitySpecialPageControls props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n // Add our component to the Slot provided by BlockVisibilityControls\n registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n */\n const specialPages = getSpecialPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'specialPages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Special Page', 'content-visibility' ),\n plural: __( 'Special Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"text-page\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n { specialPages.map( specialPage => (\n <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n ) ) }\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: [],\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Special Page', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel block-visibility-special-page-controls\"\n >\n\n <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n <SpecialPagePageInserter props={ props } />\n <PagePageInserter props={ props } />\n <PostPageInserter props={ props } />\n </PanelRow>\n\n { props.attributes.contentVisibility && (\n <p className=\"special-page-help-intro content-visibility-help-text\">\n { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n </p>\n ) }\n\n </PanelBody>\n );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n defaultRules.specialPage = {\n pages: [],\n specialPages: [],\n posts: []\n };\n\n return defaultRules;\n\n}","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n\n <RadioControl\n label=''\n help=''\n className=\"content-visibility-user-authenticated-control\"\n selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n options={ [\n { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n ] }\n onChange={ ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.userAuthenticated = option;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n } }\n />\n\n );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel content-visibility-user-authenticated-controls\"\n >\n <PanelRow>\n <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n { props.attributes.contentVisibility && (\n <p className=\"user-auth-help-intro content-visibility-help-text\">\n { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n const pages = [];\n\n if ( ContentVisibility.pages.length === 0 ) {\n return [ {\n label: __( 'No pages found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const page in ContentVisibility.pages ) {\n \n pages.push( { \n label: ContentVisibility.pages[page].label,\n value: ContentVisibility.pages[page].id,\n notes: ContentVisibility.pages[page].notes\n } );\n \n }\n\n return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n const posts = [];\n\n if ( ContentVisibility.posts.length === 0 ) {\n return [ {\n label: __( 'No posts found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const post in ContentVisibility.posts ) {\n \n posts.push( { \n label: ContentVisibility.posts[post].label,\n value: ContentVisibility.posts[post].id,\n notes: ContentVisibility.posts[post].notes\n } );\n \n }\n\n return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n const specialPages = [];\n\n for ( const specialPage in ContentVisibility.specialPages ) {\n \n specialPages.push( { \n label: ContentVisibility.specialPages[specialPage].label,\n value: ContentVisibility.specialPages[specialPage].keyValue,\n notes: ContentVisibility.specialPages[specialPage].notes,\n icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n } );\n \n }\n\n return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n // SVGs are weird, man.\n if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n return true;\n } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n return element.parentNode && hasParentWithClass( element.parentNode, classname );\n } else {\n return false;\n }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n const invalidBlockTypes = [\n 'something/unsupported',\n ];\n\n return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n if ( false === event ) {\n return;\n }\n\n // Determine if what has been clicked on is in the popover or not.\n let eTarget = event.target;\n\n if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n event.stopPropagation();\n }\n\n return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n * object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n \n // if nothing is set, return a prompt to select special pages.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return defaultVal;\n }\n\n let shownOrHidden = props.attributes.contentVisibility;\n let specialPages = props.attributes.contentVisibilityRules.specialPage[type]; \n let specialPagesCount = specialPages.length;\n\n let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount + ' ' + niceType;\n\n return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n // If we don't have any items selected, just basic class.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return 'content-visibility-special-page-inserter-toggle';\n }\n\n // We have some items selected, so we have a couple classes.\n return 'content-visibility-special-page-inserter-toggle has-items';\n \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""} -
content-visibility/tags/0.1.7/content-visibility.php
r2450785 r2471073 11 11 * Plugin Name: Content Visibility 12 12 * Plugin URI: https://richardtape.com/content-visibility/ 13 * Description: Decide when, where, and to whom your blocks are visible.14 * Version: 0.1. 613 * Description: Content Visibility allows you to decide when, where, and to whom your blocks are visible. 14 * Version: 0.1.7 15 15 * Author: Rich Tape 16 16 * Author URI: https://richardtape.com/ -
content-visibility/tags/0.1.7/includes/content-visibility.php
r2443859 r2471073 37 37 $bv_public->init(); 38 38 39 add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\\wp_enqueue_scripts__load_public_css' ); 40 39 41 }//end plugins_loaded__bv_loader() 42 43 /** 44 * Load the public css file. 45 * 46 * @since 0.1.7 47 * @return void 48 */ 49 function wp_enqueue_scripts__load_public_css() { 50 51 /** 52 * Filter whether to load the public rules CSS file or not. 53 * 54 * At least as of right now, this file is literally for one line of CSS and theme authors may want to include it 55 * in their own theme to prevent loading a whole file just for one little rule. 56 * 57 * @since 0.1.7 58 * 59 * @param bool $load_public_css Should this file be loaded. Enqueued only if boolean true. 60 */ 61 $load_public_css = (bool) apply_filters( 'content_visibility_load_public_css', true ); 62 63 if ( true !== $load_public_css ) { 64 return; 65 } 66 67 wp_enqueue_style( 'content-visibility-public', plugins_url( 'includes/public/content-visibility-public.css', dirname( __FILE__ ) ) ); 68 69 }//end wp_enqueue_scripts__load_public_css() 70 71 /** 72 * An array of special pages; things like the 404, a search results page, a date archive etc. with their 73 * associated callback function which determines if the current page is of this type. 74 * 75 * @since 0.1.6 76 * @return array associative array containining a list of special pages. Keys are a slug for the special page. Values 77 * are an array containing a title, and a callback function to determine if the current page is this 78 * type of special page. 79 */ 80 function get_special_pages() { 81 82 /** 83 * Do we do a generic 'single' or do we be more specific? 84 * 85 * See: https://developer.wordpress.org/themes/basics/conditional-tags/ 86 */ 87 88 return array( 89 '404' => array( 90 'label' => __( '404 Error', 'content-visibility' ), 91 'notes' => __( 'The error page when someone goes to a URL that does not exist on your site.', 'content-visibility' ), 92 'callback' => array( 'is_404' ), 93 'icon' => 'no', 94 'keyValue' => '404', 95 ), 96 'search' => array( 97 'label' => __( 'Search Results', 'content-visibility' ), 98 'notes' => __( 'The page shown when someone searches something on your site.', 'content-visibility' ), 99 'callback' => array( 'is_search' ), 100 'icon' => 'search', 101 'keyValue' => 'search', 102 ), 103 'date' => array( 104 'label' => __( 'Date Archive', 'content-visibility' ), 105 'notes' => __( 'When someone looks at a time, day, week, month, or year listing of the posts on your site.', 'content-visibility' ), 106 'callback' => array( 'is_date' ), 107 'icon' => 'calendar-alt', 108 'keyValue' => 'date', 109 ), 110 'front-page' => array( 111 'label' => __( 'Front Page', 'content-visibility' ), 112 'notes' => __( 'When the front page of your site is being displayed, regardless of whether that is your blog (WordPress default) or a static page.', 'content-visibility' ), 113 'callback' => array( 'is_front_page' ), 114 'icon' => 'slides', 115 'keyValue' => 'front-page', 116 ), 117 'home' => array( 118 'label' => __( 'Blog Home Page', 'content-visibility' ), 119 'notes' => __( 'When the blog home page is being displayed. By default this is the home page in WordPress, but if you have your home page set to be a static page (settings > reading) then this will only be when your blog page is being shown.', 'content-visibility' ), 120 'callback' => array( 'is_home' ), 121 'icon' => 'admin-home', 122 'keyValue' => 'home', 123 ), 124 'page' => array( 125 'label' => __( 'Any Page', 'content-visibility' ), 126 'notes' => __( 'Any content that is a Page (not a post or custom post type)', 'content-visibility' ), 127 'callback' => array( 'is_page' ), 128 'icon' => 'admin-page', 129 'keyValue' => 'page', 130 ), 131 'post' => array( 132 'label' => __( 'Any Post', 'content-visibility' ), 133 'notes' => __( 'Any content that is a Post', 'content-visibility' ), 134 'callback' => array( 'is_singular', array( 'post' ) ), 135 'icon' => 'admin-post', 136 'keyValue' => 'post', 137 ), 138 'category' => array( 139 'label' => __( 'Category Archive', 'content-visibility' ), 140 'notes' => __( 'When someone looks at a list of posts that are in a certain category.', 'content-visibility' ), 141 'callback' => array( 'is_category' ), 142 'icon' => 'category', 143 'keyValue' => 'category', 144 ), 145 'tag' => array( 146 'label' => __( 'Tag Archive', 'content-visibility' ), 147 'notes' => __( 'When someone looks at a list of posts that are have a tag.', 'content-visibility' ), 148 'callback' => array( 'is_tag' ), 149 'icon' => 'tag', 150 'keyValue' => 'tag', 151 ), 152 ); 153 154 }//end get_special_pages() 155 156 /** 157 * An array of pages with their associated callback function which determines if the current page is of this type. 158 * 159 * @since 0.1.7 160 * @return array associative array containining a list of pages. Keys are the ID for the page. Values 161 * are an array containing a title, and a callback function to determine if the current page is this 162 * page. 163 */ 164 function get_pages() { 165 166 $pages_args = array( 167 'post_status' => array( 'pending', 'draft', 'future', 'publish' ), 168 ); 169 170 $pages_args = apply_filters( 'content_visibility_get_pages_args', $pages_args ); 171 172 $pages = \get_pages( $pages_args ); 173 174 if ( false === $pages || empty( $pages ) ) { 175 return array(); 176 } 177 178 $pages_data = array(); 179 180 foreach ( $pages as $id => $page ) { 181 182 $page_id = absint( $page->ID ); 183 $sanitized_title = sanitize_text_field( $page->post_title ); 184 185 $title = ( empty( $sanitized_title ) ) ? __( '[This page has no title]', 'content-visibility' ) : $sanitized_title; 186 187 $pages_data[ $page_id ] = array( 188 'label' => $title, 189 'id' => $page_id, 190 'callback' => array( 'is_page', array( $page_id ) ), 191 'notes' => '', 192 ); 193 } 194 195 return $pages_data; 196 197 }//end get_pages() 198 199 /** 200 * An array of posts with their associated callback function which determines if the current page is of this type. 201 * 202 * @since 0.1.7 203 * @return array associative array containining a list of posts. Keys are the ID for the post. Values 204 * are an array containing a title, and a callback function to determine if the current page is this 205 * page. 206 */ 207 function get_posts() { 208 209 $posts_args = array( 210 'post_status' => array( 'pending', 'draft', 'future', 'publish' ), 211 'numberposts' => -1, 212 ); 213 214 $posts_args = apply_filters( 'content_visibility_get_posts_args', $posts_args ); 215 216 $posts = \get_posts( $posts_args ); 217 218 if ( false === $posts || empty( $posts ) ) { 219 return array(); 220 } 221 222 $posts_data = array(); 223 224 foreach ( $posts as $id => $post ) { 225 226 $post_id = absint( $post->ID ); 227 $sanitized_title = sanitize_text_field( $post->post_title ); 228 229 $title = ( empty( $sanitized_title ) ) ? __( '[This post has no title]', 'content-visibility' ) : $sanitized_title; 230 231 $posts_data[ $post_id ] = array( 232 'label' => $title, 233 'id' => $post_id, 234 'callback' => array( 'is_post', array( $post_id ) ), 235 'notes' => '', 236 ); 237 } 238 239 return $posts_data; 240 241 }//end get_posts() -
content-visibility/tags/0.1.7/includes/editor/class-editor.php
r2443982 r2471073 128 128 $content_visibility_args = array( 'screen' => esc_js( get_current_screen()->id ) ); 129 129 130 if ( defined( 'CV_LOCAL' ) && true === constant( 'CV_LOCAL' ) ) { 131 $content_visibility_args['local'] = true; 132 } 133 134 $content_visibility_args['specialPages'] = \RichardTape\ContentVisibility\get_special_pages(); 135 136 $content_visibility_args['pages'] = \RichardTape\ContentVisibility\get_pages(); 137 138 $content_visibility_args['posts'] = \RichardTape\ContentVisibility\get_posts(); 139 130 140 wp_localize_script( 'content-visibility', 'ContentVisibility', $content_visibility_args ); 131 141 … … 165 175 166 176 // Thing to note here: it is not trivial to fetch post types that are 100% going to be used by the 167 // block editor. This array contains a list of post types that canuse the block editor. But because168 // it's not 100% sure (we'd need to check for 'supports' => 'editor' ) we should still check that the169 // block editor is active on the edit screen.177 // block editor. This array contains a list of post types that COULD use the block editor. But because 178 // it's not 100% sure (we'd need to check for 'supports' => 'editor' which is the non-trivial part) we should 179 // still check that the block editor is active on the edit screen. 170 180 return $other_post_types; 171 181 -
content-visibility/tags/0.1.7/includes/public/class-public-rules.php
r2443982 r2471073 53 53 add_filter( 'content_visibility_rule_types_and_callbacks', array( $this, 'add_user_authenticated_callback' ), 5, 1 ); 54 54 55 // Register our special pages callback. This is for the widgets screen, but should also apply to full site editing. 56 add_filter( 'content_visibility_rule_types_and_callbacks', array( $this, 'add_special_pages_callback' ), 5, 1 ); 57 55 58 /** 56 59 * Filter all of our registered rules and callbacks.. … … 87 90 88 91 }//end add_user_authenticated_callback() 92 93 94 /** 95 * Callback which adds our special pages function to the list of rules. 96 * 97 * @param array $rule_types_and_callbacks Existing rules and callbacks. 98 * 99 * @return array modified rule types and callbacks with ours added. 100 */ 101 public function add_special_pages_callback( $rule_types_and_callbacks ) { 102 103 require_once plugin_dir_path( __FILE__ ) . 'special-page/rule-logic-special-page.php'; 104 105 $rule_types_and_callbacks['specialPage'] = 'RichardTape\ContentVisibility\rule_logic_special_page'; 106 107 return $rule_types_and_callbacks; 108 109 }//end add_special_pages_callback() 89 110 90 111 /** -
content-visibility/tags/0.1.7/readme.txt
r2450785 r2471073 4 4 Tags: block, content, visibility 5 5 Requires at least: 5.0 6 Tested up to: 5.6 7 Stable tag: 0.1. 66 Tested up to: 5.6.1 7 Stable tag: 0.1.7 8 8 Requires PHP: 7.0 9 9 License: GPLv2 or later … … 32 32 Do you use columns and put other blocks in them? Content Visibility allows you to control both the 'nested' blocks (such as a paragraph block in a column block) or the 'parent' block themselves (perhaps hide an entire column for users who aren't signed in?). Other examples of nested blocks are the Group Block or if you use an accordion or tabs block; all work! 33 33 34 ## Widgets 35 36 Since version 0.1.7 you are now able to control the visibility of your widgets. As long as you have version 9.9 or above of the [Gutenberg plugin](https://wordpress.org/plugins/gutenberg/) you are able to use content visibility on all of your widgets, just like you can with all of your blocks in the content editor. Limit display of your widgets on specific URLs on your site. Want to show a specific text block to only people who are signed in and ONLY on search results? You got it. 37 34 38 ## Coming Soon 35 39 36 40 - [ ] A way to set replacement content when a block is hidden 37 - [ ] Ensure this works with the new 'widgets' screen (controls appear but functionality is currently blocked by [this gutenberg bug](https://github.com/WordPress/gutenberg/issues/27173))38 41 - [ ] REST API exploration. Should be fine for non-authenticated requests, but need to dive deeper for auth'd requests 39 42 - [ ] Non-trivial dates. Think things like "Every Wednesday between 3pm and 4pm" or "First two weeks in November" 40 43 - [ ] Geolocation: Show this block only to users whose connection is in France 41 44 - [ ] Specific Users: Only show a block when a specific user is signed in 45 - [ ] Specific 3rd-party plugin integrations. Show a block when someone has purchased something from your WooCommerce store. Or when someone has submitted a specific Gravity Form. 42 46 - [ ] Do you have any feature requests? [Let me know!](https://github.com/richardtape/content-visibility/issues/new) 43 47 … … 50 54 = What's with the logo? = 51 55 52 It's a chameleon. A cool little creature which can change the way it appears - to make itself more or less visible. Seemed appropriate! 56 It's a chameleon. A cool little creature which can change the way it appears - to make itself more or less visible. Seemed appropriate! Also, your suspicions are correct; a designer, I am not. 53 57 54 58 = Got a question? = … … 60 64 61 65 == Changelog == 66 67 = 0.1.7 = 68 * Added content visibility to the block-editor based widgets screen currently only available with the Gutenberg plugin. Enables you to select which posts, pages, or special types of content (such as the 404 error, a search results page, a date archive etc.) where each widget will be shown or hidden. 62 69 63 70 = 0.1.6 = -
content-visibility/trunk/build/index.asset.php
r2450785 r2471073 1 <?php return array('dependencies' => array(' wp-blockEditor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '73805e04464a42880c999de34c92cf2b');1 <?php return array('dependencies' => array('react', 'wp-blockEditor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => '0447464b24d62159bb7ca40696afd5f3'); -
content-visibility/trunk/build/index.css
r2450785 r2471073 135 135 width: 100%; } 136 136 137 /* 138 Multi-select component 139 ---------------------- 140 */ 141 .content-visibility-multi-select { 142 width: 100%; 143 margin: 1rem 0 0 0; } 144 145 /* 146 Remove horizontal scrolling, artifact of weird padding on main component. 147 */ 148 .content-visibility-multi-select .panel-content { 149 overflow-x: hidden; } 150 151 /* 152 Ensure each of the items fill the dropdown and have space to make more readable. 153 */ 154 .content-visibility-multi-select-item { 155 width: 100%; } 156 157 .content-visibility-multi-select .select-panel label { 158 max-width: none; 159 margin-right: 0; 160 padding: 0.7rem 0.7rem 0; } 161 162 /* 163 Don't need background colour change on hover, not WordPress-y. 164 */ 165 .content-visibility-multi-select .select-panel label:hover, 166 .content-visibility-multi-select .select-panel label:focus, 167 .content-visibility-multi-select .select-panel label.selected { 168 background: transparent; } 169 170 /* 171 Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top. 172 */ 173 .content-visibility-multi-select .select-panel ul { 174 padding: 0.7rem 0; } 175 176 .content-visibility-multi-select input[type="checkbox"] { 177 margin-right: 0.5rem; } 178 179 /* 180 Make each item a bit more uniform, ensures horiz alignment with icons. 181 */ 182 .item-renderer.content-visibility-multi-select-item > span { 183 height: 20px; 184 display: inline-block; } 185 186 /* 187 Give the search input some breathing room. 188 */ 189 .content-visibility-multi-select .select-panel > div { 190 margin-top: 0.25rem; 191 padding: 0 0.25rem; } 192 193 /* 194 Make the icons a little less harsh 195 */ 196 .content-visibility-multi-select .content-visibility-multi-select-item .dashicon { 197 opacity: 0.5; } 198 199 /* 200 Popover content toggle buttons. Make sure they can handle long values as someone may 201 select multiple options. Give max-width to ensure the button's icon is inline. 202 min-width ensures the initial button's value doesn't wrap (i.e. when it's short) 203 */ 204 .components-button.is-secondary.content-visibility-special-page-inserter-toggle { 205 white-space: break-spaces; 206 max-width: 85%; 207 min-width: 190px; 208 font-size: 12px; 209 line-height: 1.6; } 210 211 /* 212 If someone has selected special pages, then we make it less like a link. 213 */ 214 .components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items { 215 text-decoration: none; 216 line-height: 1.6; 217 text-transform: capitalize; } 218 219 /* 220 The 'Set Selected' button 221 */ 222 .components-button.content-visibility-submit-special-pages { 223 margin-top: 1rem; 224 margin-bottom: 1rem; } 225 226 /* 227 Special Page Help Toggle 228 */ 229 .content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small { 230 font-size: 12px; 231 margin-top: 1rem; } 232 233 .content-visibility-special-page-help-instructions-popover .components-popover__content { 234 padding: 1rem; 235 width: 23rem; 236 height: 30rem !important; } 237 238 .content-visibility-control-panel .special-page-help-instructions-button { 239 text-align: right; 240 margin-top: 1rem; 241 margin-bottom: 0; } 242 243 .content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle { 244 margin-left: 0; 245 margin-right: 0; 246 padding-left: 3px; } 247 248 .content-visibility-control-panel .special-page-help-instructions-button .dashicon { 249 position: relative; 250 top: 3px; 251 color: #007cba; } 252 253 .content-visibility-submit-special-pages-button-container { 254 text-align: right; 255 margin-top: 0; } 256 257 /* 258 Special Page Help Popover 259 */ 260 .content-visibility-special-page-help-instructions-popover span { 261 color: black; 262 font-weight: 600; } 263 264 /* Special Page Close Button */ 265 .content-visibility-close-popover { 266 position: absolute; 267 top: -2rem; 268 right: -1rem; } 269 270 /* 271 Special Page Panel 272 */ 273 /* Make sure each inserter is its own row */ 274 .components-panel__row.content-visibility-page-inserter-panel-row { 275 flex-direction: column; } 276 277 .content-visibility-special-page-inserter { 278 margin-top: 1rem; } 279 280 /* Align the icon for each inserter a little neater */ 281 .content-visibility-special-page-inserter .dashicon { 282 position: relative; 283 top: 4px; 284 opacity: 0.6; } 285 137 286 138 287 /*# sourceMappingURL=index.css.map*/ -
content-visibility/trunk/build/index.css.map
r2450785 r2471073 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,oWAAoW,EAAE;;AAExW;EACE,cAAc;EACd,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,ofAAof,EAAE;;AAExf;;CAEC;AACD;EACE,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,WAAW;EACX,WAAW,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 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>'); }\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 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>'); }\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"],"sourceRoot":""}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,oWAAoW,EAAE;;AAExW;EACE,cAAc;EACd,YAAY;EACZ,WAAW;EACX,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,ofAAof,EAAE;;AAExf;;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,EAAE;;AAEpB;;CAEC;AACD;EACE,qBAAqB;EACrB,gBAAgB;EAChB,0BAA0B,EAAE;;AAE9B;;CAEC;AACD;EACE,gBAAgB;EAChB,mBAAmB,EAAE;;AAEvB;;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 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>'); }\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 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>'); }\n\n/*\n Help text generic styling. This is to make it look like a WordPress hint.\n*/\n.content-visibility-controls-container .content-visibility-help-text {\n margin: 1rem 0 0;\n font-size: 12px;\n font-style: normal;\n color: #757575;\n clear: both;\n float: none;\n width: 100%; }\n\n/*\n Multi-select component\n ---------------------- \n*/\n.content-visibility-multi-select {\n width: 100%;\n margin: 1rem 0 0 0; }\n\n/*\n Remove horizontal scrolling, artifact of weird padding on main component.\n*/\n.content-visibility-multi-select .panel-content {\n overflow-x: hidden; }\n\n/*\n Ensure each of the items fill the dropdown and have space to make more readable.\n*/\n.content-visibility-multi-select-item {\n width: 100%; }\n\n.content-visibility-multi-select .select-panel label {\n max-width: none;\n margin-right: 0;\n padding: 0.7rem 0.7rem 0; }\n\n/*\n Don't need background colour change on hover, not WordPress-y.\n*/\n.content-visibility-multi-select .select-panel label:hover,\n.content-visibility-multi-select .select-panel label:focus,\n.content-visibility-multi-select .select-panel label.selected {\n background: transparent; }\n\n/*\n Give ourselves some breathing room with the main list items. Leaves the 'select all' standing alone at the top.\n*/\n.content-visibility-multi-select .select-panel ul {\n padding: 0.7rem 0; }\n\n.content-visibility-multi-select input[type=\"checkbox\"] {\n margin-right: 0.5rem; }\n\n/*\n Make each item a bit more uniform, ensures horiz alignment with icons.\n*/\n.item-renderer.content-visibility-multi-select-item > span {\n height: 20px;\n display: inline-block; }\n\n/*\n Give the search input some breathing room.\n*/\n.content-visibility-multi-select .select-panel > div {\n margin-top: 0.25rem;\n padding: 0 0.25rem; }\n\n/*\n Make the icons a little less harsh\n*/\n.content-visibility-multi-select .content-visibility-multi-select-item .dashicon {\n opacity: 0.5; }\n\n/*\n Popover content toggle buttons. Make sure they can handle long values as someone may\n select multiple options. Give max-width to ensure the button's icon is inline.\n min-width ensures the initial button's value doesn't wrap (i.e. when it's short)\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle {\n white-space: break-spaces;\n max-width: 85%;\n min-width: 190px;\n font-size: 12px;\n line-height: 1.6; }\n\n/*\n If someone has selected special pages, then we make it less like a link.\n*/\n.components-button.is-secondary.content-visibility-special-page-inserter-toggle.has-items {\n text-decoration: none;\n line-height: 1.6;\n text-transform: capitalize; }\n\n/*\n The 'Set Selected' button\n*/\n.components-button.content-visibility-submit-special-pages {\n margin-top: 1rem;\n margin-bottom: 1rem; }\n\n/*\n Special Page Help Toggle\n*/\n.content-visibility-help-text .content-visibility-special-page-help-instructions-toggle.is-small {\n font-size: 12px;\n margin-top: 1rem; }\n\n.content-visibility-special-page-help-instructions-popover .components-popover__content {\n padding: 1rem;\n width: 23rem;\n height: 30rem !important; }\n\n.content-visibility-control-panel .special-page-help-instructions-button {\n text-align: right;\n margin-top: 1rem;\n margin-bottom: 0; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .content-visibility-special-page-help-instructions-toggle {\n margin-left: 0;\n margin-right: 0;\n padding-left: 3px; }\n\n.content-visibility-control-panel .special-page-help-instructions-button .dashicon {\n position: relative;\n top: 3px;\n color: #007cba; }\n\n.content-visibility-submit-special-pages-button-container {\n text-align: right;\n margin-top: 0; }\n\n/*\n Special Page Help Popover\n*/\n.content-visibility-special-page-help-instructions-popover span {\n color: black;\n font-weight: 600; }\n\n/* Special Page Close Button */\n.content-visibility-close-popover {\n position: absolute;\n top: -2rem;\n right: -1rem; }\n\n/*\n Special Page Panel\n*/\n/* Make sure each inserter is its own row */\n.components-panel__row.content-visibility-page-inserter-panel-row {\n flex-direction: column; }\n\n.content-visibility-special-page-inserter {\n margin-top: 1rem; }\n\n/* Align the icon for each inserter a little neater */\n.content-visibility-special-page-inserter .dashicon {\n position: relative;\n top: 4px;\n opacity: 0.6; }\n"],"sourceRoot":""} -
content-visibility/trunk/build/index.js
r2450785 r2471073 1 (window["webpackJsonp "] = window["webpackJsonp"] || []).push([["style-index"],{1 (window["webpackJsonp_content_visibility"] = window["webpackJsonp_content_visibility"] || []).push([["style-index"],{ 2 2 3 3 /***/ "./src/style.scss": … … 155 155 /******/ __webpack_require__.p = ""; 156 156 /******/ 157 /******/ var jsonpArray = window["webpackJsonp "] = window["webpackJsonp"] || [];157 /******/ var jsonpArray = window["webpackJsonp_content_visibility"] = window["webpackJsonp_content_visibility"] || []; 158 158 /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); 159 159 /******/ jsonpArray.push = webpackJsonpCallback; … … 223 223 224 224 module.exports = _extends; 225 226 /***/ }), 227 228 /***/ "./node_modules/@babel/runtime/helpers/typeof.js": 229 /*!*******************************************************!*\ 230 !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! 231 \*******************************************************/ 232 /*! no static exports found */ 233 /***/ (function(module, exports) { 234 235 function _typeof(obj) { 236 "@babel/helpers - typeof"; 237 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); 249 } 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 \***************************************************/ 259 /*! exports provided: css, extractCss, glob, keyframes, setup, styled */ 260 /***/ (function(module, __webpack_exports__, __webpack_require__) { 261 262 "use strict"; 263 __webpack_require__.r(__webpack_exports__); 264 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return i; }); 265 /* 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}} 271 225 272 226 273 /***/ }), … … 2111 2158 2112 2159 module.exports = stubFalse; 2160 2161 2162 /***/ }), 2163 2164 /***/ "./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js": 2165 /*!********************************************************************************************!*\ 2166 !*** ./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js ***! 2167 \********************************************************************************************/ 2168 /*! exports provided: default, Dropdown, SelectItem, SelectPanel */ 2169 /***/ (function(module, __webpack_exports__, __webpack_require__) { 2170 2171 "use strict"; 2172 __webpack_require__.r(__webpack_exports__); 2173 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return Dropdown; }); 2174 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectItem", function() { return SelectItem; }); 2175 /* 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"); 2177 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); 2178 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); 2179 2180 2181 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]; 2187 } 2188 2189 clearTimeout(timeout); 2190 timeout = setTimeout(function () { 2191 func.apply(null, args); 2192 }, wait); 2193 }; 2194 }; 2195 2196 /** 2197 * Filters React Select options and sorts by similarity to a search filter. 2198 * Handles partial matches, eg. searching for "Waberg High" will find "Raoul 2199 * Wallenberg Traditional High School". Case insensitive. Ignores 2200 * non-alphanumeric characters. 2201 * 2202 * @param options An unfiltered list of Options. 2203 * @param? filter A string to compare against Option labels. 2204 * @param? substitutions Strings with multiple spellings or variations that we 2205 * expect to match, eg. accented characters or abbreviated words. 2206 * 2207 * @return A filtered and sorted array of Options. 2208 */ 2209 function filterOptions(options, filter, substitutions) { 2210 // If the filter is blank, return the full list of Options. 2211 if (!filter) { 2212 return options; 2213 } 2214 2215 var cleanFilter = cleanUpText(filter, substitutions); 2216 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 2222 // 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 2229 // 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 }); 2239 } 2240 /** 2241 * Scores the similarity between two strings by returning the length of the 2242 * longest common subsequence. Intended for comparing strings of different 2243 * lengths; eg. when matching a typeahead search input with a school name. 2244 2245 * Meant for use in an instant search box where results are being fetched 2246 * as a user is typing. 2247 * 2248 * @param a The longer string (though, we flip them if it's shorter). 2249 * @param b The shorter string, eg. a typeahead search input. 2250 * 2251 * @return The length of the longest common subsequence. Higher scores indicate 2252 * closer matches. 2253 */ 2254 2255 function typeaheadSimilarity(a, b) { 2256 var aLength = a.length; 2257 var bLength = b.length; 2258 var table = []; 2259 2260 if (!aLength || !bLength) { 2261 return 0; 2262 } // Ensure `a` isn't shorter than `b`. 2263 2264 2265 if (aLength < bLength) { 2266 var _ref2 = [b, a]; 2267 a = _ref2[0]; 2268 b = _ref2[1]; 2269 } // Early exit if `a` includes `b`; these will be scored higher than any 2270 // other options with the same `b` (filter string), with a preference for 2271 // shorter `a` strings (option labels). 2272 2273 2274 if (a.indexOf(b) !== -1) { 2275 return bLength + 1 / aLength; 2276 } // Initialize the table axes: 2277 // 2278 // 0 0 0 0 ... bLength 2279 // 0 2280 // 0 2281 // 2282 // ... 2283 // 2284 // aLength 2285 // 2286 2287 2288 for (var x = 0; x <= aLength; ++x) { 2289 table[x] = [0]; 2290 } 2291 2292 for (var y = 0; y <= bLength; ++y) { 2293 table[0][y] = 0; 2294 } // Populate the rest of the table with a dynamic programming algorithm. 2295 2296 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]); 2300 } 2301 } 2302 2303 return table[aLength][bLength]; 2304 } 2305 /** 2306 * Apply string substitutions, remove non-alphanumeric characters, and convert 2307 * all letters to uppercase. 2308 * 2309 * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'. 2310 * 2311 * @param input An unsanitized input string. 2312 * @param substitutions Strings with multiple spellings or variations that we 2313 * expect to match, for example accented characters or abbreviated 2314 * words. 2315 * 2316 * @return The sanitized text. 2317 */ 2318 2319 function cleanUpText(input, substitutions) { 2320 if (!input) { 2321 return ""; 2322 } // Uppercase and remove all non-alphanumeric, non-accented characters. 2323 // Also remove underscores. 2324 2325 2326 input = input.toUpperCase().replace(/((?=[^\u00E0-\u00FC])\W)|_/g, ""); 2327 2328 if (!substitutions) { 2329 return input; 2330 } 2331 2332 var safeSubstitutions = substitutions; // For Flow. 2333 // Replace all strings in `safeSubstitutions` with their standardized 2334 // counterparts. 2335 2336 return Object.keys(safeSubstitutions).reduce(function (output, substitution) { 2337 var unsubbed = new RegExp(substitution, "g"); 2338 return output.replace(unsubbed, safeSubstitutions[substitution]); 2339 }, input); 2340 } 2341 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"])({ 2376 "& input,& span": { 2377 verticalAlign: "middle", 2378 margin: 0 2379 }, 2380 span: { 2381 display: "inline-block", 2382 paddingLeft: "5px" 2383 }, 2384 "&.disabled": { 2385 opacity: 0.5 2386 } 2387 }); 2388 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 }; 2404 2405 /** 2406 * This component represents an individual item in the multi-select drop-down 2407 */ 2408 var ItemContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2409 boxSizing: "border-box", 2410 cursor: "pointer", 2411 display: "block", 2412 padding: "var(--rmsc-p)", 2413 outline: 0, 2414 "&:hover,&:focus": { 2415 background: "var(--rmsc-hover)" 2416 }, 2417 "&.selected": { 2418 background: "var(--rmsc-selected)" 2419 } 2420 }); 2421 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 () { 2434 updateFocus(); // eslint-disable-next-line 2435 }, [focused]); 2436 2437 var toggleChecked = function toggleChecked() { 2438 onSelectionChanged(!checked); 2439 }; 2440 2441 var handleClick = function handleClick(e) { 2442 toggleChecked(); 2443 onClick(e); 2444 }; 2445 2446 var updateFocus = function updateFocus() { 2447 if (focused && !disabled && itemRef) { 2448 itemRef.current.focus(); 2449 } 2450 }; 2451 2452 var handleKeyDown = function handleKeyDown(e) { 2453 switch (e.which) { 2454 case 13: // Enter 2455 2456 case 32: 2457 // Space 2458 toggleChecked(); 2459 break; 2460 2461 default: 2462 return; 2463 } 2464 2465 e.preventDefault(); 2466 }; 2467 2468 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("label", { 2469 className: ItemContainer + " select-item " + (checked && "selected"), 2470 role: "option", 2471 "aria-selected": checked, 2472 tabIndex: tabIndex, 2473 ref: itemRef, 2474 onKeyDown: handleKeyDown 2475 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ItemRenderer, { 2476 option: option, 2477 checked: checked, 2478 onClick: handleClick, 2479 disabled: disabled 2480 })); 2481 }; 2482 2483 /** 2484 * This component represents an unadorned list of SelectItem (s). 2485 */ 2486 var SelectListUl = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2487 margin: 0, 2488 paddingLeft: 0, 2489 li: { 2490 listStyle: "none", 2491 margin: 0 2492 } 2493 }); 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) { 2506 if (disabled) { 2507 return; 2508 } 2509 2510 onChange(checked ? [].concat(value, [option]) : value.filter(function (o) { 2511 return o.value !== option.value; 2512 })); 2513 }; 2514 2515 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("ul", { 2516 className: SelectListUl 2517 }, options.map(function (o, i) { 2518 var tabIndex = i + skipIndex; 2519 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("li", { 2520 key: o.hasOwnProperty("key") ? o.key : i 2521 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, { 2522 focused: focusIndex === tabIndex, 2523 tabIndex: tabIndex, 2524 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 }, 2534 itemRenderer: ItemRenderer, 2535 disabled: o.disabled || disabled 2536 })); 2537 })); 2538 }; 2539 2540 /** 2541 * This component represents the entire panel which gets dropped down when the 2542 * user selects the component. It encapsulates the search filter, the 2543 * Select-all item, and the list of options. 2544 */ 2545 var FocusType; 2546 2547 (function (FocusType) { 2548 FocusType[FocusType["SEARCH"] = -1] = "SEARCH"; 2549 FocusType[FocusType["NONE"] = 1] = "NONE"; 2550 })(FocusType || (FocusType = {})); 2551 2552 var SelectSearchContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2553 width: "100%", 2554 position: "relative", 2555 borderBottom: "1px solid var(--rmsc-border)", 2556 input: { 2557 height: "var(--rmsc-h)", 2558 padding: "0 var(--rmsc-p)", 2559 width: "100%", 2560 outline: 0, 2561 border: 0 2562 } 2563 }); 2564 var SearchClearButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2565 cursor: "pointer", 2566 position: "absolute", 2567 top: 0, 2568 right: 0, 2569 bottom: 0, 2570 background: "none", 2571 border: 0, 2572 padding: "0 calc(var(--rmsc-p)/2)", 2573 "[hidden]": { 2574 display: "none" 2575 } 2576 }); 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), 2609 value: "" 2610 }; 2611 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 }); 2618 2619 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 }); 2628 } 2629 2630 return value.filter(function (o) { 2631 return !filteredValues.includes(o.value); 2632 }); 2633 }; 2634 2635 var selectAllChanged = function selectAllChanged(checked) { 2636 var newOptions = selectAllValues(checked); 2637 onChange(newOptions); 2638 }; 2639 2640 var handleSearchChange = function handleSearchChange(e) { 2641 debouncedSearch(e.target.value); 2642 setSearchText(e.target.value); 2643 setFocusIndex(FocusType.SEARCH); 2644 }; 2645 2646 var handleClear = function handleClear() { 2647 setSearchTextForFilter(""); 2648 setSearchText(""); 2649 }; 2650 2651 var handleItemClicked = function handleItemClicked(index) { 2652 return setFocusIndex(index); 2653 }; 2654 2655 var handleKeyDown = function handleKeyDown(e) { 2656 switch (e.which) { 2657 case 38: 2658 // Up Arrow 2659 if (e.altKey) { 2660 return; 2661 } 2662 2663 updateFocus(-1); 2664 break; 2665 2666 case 40: 2667 // Down Arrow 2668 if (e.altKey) { 2669 return; 2670 } 2671 2672 updateFocus(1); 2673 break; 2674 2675 default: 2676 return; 2677 } 2678 2679 e.stopPropagation(); 2680 e.preventDefault(); 2681 }; 2682 2683 var handleSearchFocus = function handleSearchFocus() { 2684 setFocusIndex(FocusType.SEARCH); 2685 }; 2686 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; 2693 newFocus = Math.max(1, newFocus); 2694 newFocus = Math.min(newFocus, options.length + 1); 2695 setFocusIndex(newFocus); 2696 }; 2697 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 2711 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2712 className: "select-panel", 2713 role: "listbox", 2714 onKeyDown: handleKeyDown 2715 }, !disableSearch && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2716 className: SelectSearchContainer 2717 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { 2718 autoFocus: focusSearchOnOpen, 2719 placeholder: getString("search", overrideStrings), 2720 type: "text", 2721 "aria-describedby": getString("search", overrideStrings), 2722 onKeyDown: function onKeyDown(e) { 2723 return e.stopPropagation(); 2724 }, 2725 onChange: handleSearchChange, 2726 onFocus: handleSearchFocus, 2727 value: searchText 2728 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("button", { 2729 type: "button", 2730 className: SearchClearButton + " search-clear-button", 2731 hidden: !searchText, 2732 onClick: handleClear, 2733 "aria-label": getString("clearSearch", overrideStrings) 2734 }, ClearIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectItem, { 2735 focused: focusIndex === 1, 2736 tabIndex: 1, 2737 checked: isAllOptionSelected, 2738 option: selectAllOption, 2739 onSelectionChanged: selectAllChanged, 2740 onClick: function onClick() { 2741 return handleItemClicked(0); 2742 }, 2743 itemRenderer: ItemRenderer, 2744 disabled: disabled 2745 }), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SelectList, Object.assign({}, props, { 2746 options: filteredOptions(), 2747 focusIndex: focusIndex, 2748 onClick: function onClick(_e, index) { 2749 return handleItemClicked(index); 2750 }, 2751 ItemRenderer: ItemRenderer, 2752 disabled: disabled 2753 }))); 2754 }; 2755 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"])({ 2771 animation: "rotate 2s linear infinite", 2772 "& .path": { 2773 stroke: "var(--rmsc-border)", 2774 strokeWidth: "4px", 2775 strokeLinecap: "round", 2776 animation: "dash 1.5s ease-in-out infinite" 2777 }, 2778 "@keyframes rotate": { 2779 "100%": { 2780 transform: "rotate(360deg)" 2781 } 2782 }, 2783 "@keyframes dash": { 2784 "0%": { 2785 strokeDasharray: "1,150", 2786 strokeDashoffset: 0 2787 }, 2788 "50%": { 2789 strokeDasharray: "90,150", 2790 strokeDashoffset: "-35" 2791 }, 2792 "100%": { 2793 strokeDasharray: "90,150", 2794 strokeDashoffset: "-124" 2795 } 2796 } 2797 }); 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", { 2808 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 } 2824 2825 /** 2826 * A generic dropdown component. It takes the children of the component 2827 * and hosts it in the component. When the component is selected, it 2828 * drops-down the contentComponent and applies the contentProps. 2829 */ 2830 var PanelContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2831 position: "absolute", 2832 zIndex: 1, 2833 top: "100%", 2834 width: "100%", 2835 paddingTop: "8px", 2836 ".panel-content": { 2837 maxHeight: "300px", 2838 overflowY: "auto", 2839 borderRadius: "var(--rmsc-radius)", 2840 background: "var(--rmsc-bg)", 2841 boxShadow: "0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)" 2842 } 2843 }); 2844 var DropdownContainer = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2845 position: "relative", 2846 outline: 0, 2847 backgroundColor: "var(--rmsc-bg)", 2848 border: "1px solid var(--rmsc-border)", 2849 borderRadius: "var(--rmsc-radius)", 2850 "&:focus-within": { 2851 boxShadow: "var(--rmsc-main) 0 0 0 1px", 2852 borderColor: "var(--rmsc-main)" 2853 } 2854 }); 2855 var DropdownHeading = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2856 position: "relative", 2857 padding: "0 var(--rmsc-p)", 2858 display: "flex", 2859 alignItems: "center", 2860 width: "100%", 2861 height: "var(--rmsc-h)", 2862 cursor: "default", 2863 outline: 0, 2864 ".dropdown-heading-value": { 2865 overflow: "hidden", 2866 textOverflow: "ellipsis", 2867 whiteSpace: "nowrap", 2868 flex: 1 2869 } 2870 }); 2871 var ClearSelectedButton = /*#__PURE__*/Object(goober__WEBPACK_IMPORTED_MODULE_0__["css"])({ 2872 cursor: "pointer", 2873 background: "none", 2874 border: 0, 2875 padding: 0, 2876 display: "flex" 2877 }); 2878 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 () { 2910 onMenuToggle && onMenuToggle(expanded); 2911 }, [expanded]); 2912 Object(react__WEBPACK_IMPORTED_MODULE_1__["useEffect"])(function () { 2913 if (defaultIsOpen === undefined && typeof isOpen === "boolean") { 2914 setIsInternalExpand(false); 2915 setExpanded(isOpen); 2916 } 2917 }, [isOpen]); 2918 2919 var handleKeyDown = function handleKeyDown(e) { 2920 var _wrapper$current; 2921 2922 if (isInternalExpand) { 2923 switch (e.which) { 2924 case 27: // Escape 2925 2926 case 38: 2927 // Up Arrow 2928 setExpanded(false); 2929 wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus(); 2930 break; 2931 2932 case 32: // Space 2933 2934 case 13: // Enter Key 2935 2936 case 40: 2937 // Down Arrow 2938 setExpanded(true); 2939 break; 2940 2941 default: 2942 return; 2943 } 2944 } 2945 2946 e.preventDefault(); 2947 }; 2948 2949 var handleHover = function handleHover(iexpanded) { 2950 isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded); 2951 }; 2952 2953 var handleFocus = function handleFocus() { 2954 return !hasFocus && setHasFocus(true); 2955 }; 2956 2957 var handleBlur = function handleBlur(e) { 2958 if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) { 2959 setHasFocus(false); 2960 setExpanded(false); 2961 } 2962 }; 2963 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() { 2973 isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded); 2974 }; 2975 2976 var handleClearSelected = function handleClearSelected(e) { 2977 e.stopPropagation(); 2978 contentProps["onChange"]([]); 2979 isInternalExpand && setExpanded(false); 2980 }; 2981 2982 return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2983 tabIndex: 0, 2984 className: DropdownContainer + " dropdown-container", 2985 "aria-labelledby": labelledBy, 2986 "aria-expanded": expanded, 2987 "aria-readonly": true, 2988 "aria-disabled": disabled, 2989 ref: wrapper, 2990 onKeyDown: handleKeyDown, 2991 onFocus: handleFocus, 2992 onBlur: handleBlur, 2993 onMouseEnter: handleMouseEnter, 2994 onMouseLeave: handleMouseLeave 2995 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2996 className: DropdownHeading + " dropdown-heading", 2997 onClick: toggleExpanded 2998 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 2999 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", { 3001 type: "button", 3002 className: ClearSelectedButton + " clear-selected-button", 3003 onClick: handleClearSelected, 3004 "aria-label": getString("clearSelected", contentProps["overrideStrings"]) 3005 }, ClearSelectedIcon || react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Cross, null)), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(FinalArrow, { 3006 expanded: expanded 3007 })), expanded && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3008 className: PanelContainer + " dropdown-content" 3009 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { 3010 className: "panel-content" 3011 }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ContentComponent, Object.assign({}, contentProps))))); 3012 }; 3013 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"])({ 3035 "--rmscMain": "#4285f4", 3036 "--rmscHover": "#f1f3f5", 3037 "--rmscSelected": "#e2e6ea", 3038 "--rmscBorder": "#ccc", 3039 "--rmscGray": "#aaa", 3040 "--rmscBg": "#fff", 3041 "--rmscP": "10px", 3042 "--rmscRadius": "4px", 3043 "--rmscH": "38px", 3044 "*": { 3045 boxSizing: "border-box", 3046 transition: "all 0.2s ease" 3047 }, 3048 ".gray": { 3049 color: "var(--rmsc-gray)" 3050 } 3051 }); 3052 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 }; 3117 3118 /* harmony default export */ __webpack_exports__["default"] = (MultiSelect); 3119 3120 //# sourceMappingURL=react-multi-select-component.esm.js.map 2113 3121 2114 3122 … … 2608 3616 Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_4__["registerPlugin"])('content-visibility-01-user-authentication-fill', { 2609 3617 render: BlockVisibilityUserAuthenitcationFill 3618 }); 3619 3620 /***/ }), 3621 3622 /***/ "./src/controls/multiselect/content-visibility-multiselect.js": 3623 /*!********************************************************************!*\ 3624 !*** ./src/controls/multiselect/content-visibility-multiselect.js ***! 3625 \********************************************************************/ 3626 /*! exports provided: ContentVisibilityMultiSelect */ 3627 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3628 3629 "use strict"; 3630 __webpack_require__.r(__webpack_exports__); 3631 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContentVisibilityMultiSelect", function() { return ContentVisibilityMultiSelect; }); 3632 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 3633 /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 3634 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 3635 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); 3636 /* harmony import */ var react_multi_select_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-multi-select-component */ "./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js"); 3637 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 3638 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_3__); 3639 3640 3641 3642 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; } 3643 3644 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; } 3645 3646 3647 3648 /** 3649 * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component 3650 * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme. 3651 * 3652 * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent. 3653 * 3654 * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like: 3655 * 3656 * ``` 3657 * <ContentVisibilityMultiSelect data={ fruits } labelledBy="Select Page Type" props={ props } onChange={ onChange } /> 3658 * ``` 3659 * 3660 * the `onChange` function can look like this: 3661 * 3662 * ``` 3663 * const onChange = ( option ) => { 3664 * // Set the state and props. 3665 * setState( { option } ); 3666 * props.setAttributes( { 3667 * contentVisibilityRules: { 3668 * ...props.attributes.contentVisibilityRules, 3669 * specialPage: { 3670 * ...props.attributes.contentVisibilityRules.specialPage, 3671 * pages: option 3672 * } 3673 * }, 3674 * } ); 3675 * 3676 * } 3677 * ``` 3678 * 3679 * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent) 3680 */ 3681 3682 var ContentVisibilityMultiSelect = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_3__["withState"])({ 3683 option: [] 3684 })(function (_ref) { 3685 var option = _ref.option, 3686 setState = _ref.setState, 3687 props = _ref.props, 3688 data = _ref.data, 3689 labelledBy = _ref.labelledBy, 3690 type = _ref.type; 3691 3692 /** 3693 * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for 3694 * this instance of the component. 3695 * 3696 * @param {array} option current value of what is selected. 3697 */ 3698 var onChange = function onChange(option) { 3699 // Set the state and props. 3700 setState({ 3701 option: option 3702 }); 3703 props.setAttributes({ 3704 contentVisibilityRules: _objectSpread(_objectSpread({}, props.attributes.contentVisibilityRules), {}, { 3705 specialPage: _objectSpread(_objectSpread({}, props.attributes.contentVisibilityRules.specialPage), {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()({}, type, option)) 3706 }) 3707 }); 3708 }; 3709 3710 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 3711 className: "content-visibility-multi-select" 3712 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])(react_multi_select_component__WEBPACK_IMPORTED_MODULE_2__["default"], { 3713 options: data, 3714 value: props.attributes.contentVisibilityRules.specialPage[type] || option, 3715 onChange: onChange, 3716 labelledBy: labelledBy, 3717 ItemRenderer: function ItemRenderer(_ref2) { 3718 var checked = _ref2.checked, 3719 option = _ref2.option, 3720 onClick = _ref2.onClick, 3721 disabled = _ref2.disabled; 3722 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("div", { 3723 className: "item-renderer content-visibility-multi-select-item ".concat(disabled && "disabled") 3724 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("input", { 3725 type: "checkbox", 3726 onChange: onClick, 3727 checked: checked, 3728 tabIndex: -1, 3729 disabled: disabled 3730 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["createElement"])("span", null, option.icon || "", " ", option.label)); 3731 } // isOpen={ true } 3732 3733 })); 2610 3734 }); 2611 3735 … … 2668 3792 /***/ }), 2669 3793 3794 /***/ "./src/controls/special-page/content-visibility-page-page-inserter.js": 3795 /*!****************************************************************************!*\ 3796 !*** ./src/controls/special-page/content-visibility-page-page-inserter.js ***! 3797 \****************************************************************************/ 3798 /*! exports provided: default */ 3799 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3800 3801 "use strict"; 3802 __webpack_require__.r(__webpack_exports__); 3803 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 3804 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 3805 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 3806 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 3807 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 3808 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 3809 /* harmony import */ var _helpers_get_pages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-pages */ "./src/helpers/get-pages.js"); 3810 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 3811 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 3812 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 3813 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 3814 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 3815 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 var PagePageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 3826 isVisible: false 3827 })(function (_ref) { 3828 var isVisible = _ref.isVisible, 3829 setState = _ref.setState, 3830 props = _ref.props; 3831 3832 /** 3833 * Our data, passed from PHP and manipulated to be useful here in JS. 3834 */ 3835 var data = Object(_helpers_get_pages__WEBPACK_IMPORTED_MODULE_3__["default"])(); 3836 /** 3837 * This controls the key used where the data is stored. 3838 */ 3839 3840 var type = 'pages'; 3841 /** 3842 * Helps with the content of the inserter button. 3843 */ 3844 3845 var niceName = { 3846 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Page', 'content-visibility'), 3847 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Pages', 'content-visibility') 3848 }; 3849 /** 3850 * Toggle the visible state. Detemines whether the popup is open or not. 3851 */ 3852 3853 var toggleVisible = function toggleVisible() { 3854 setState(function (state) { 3855 return { 3856 isVisible: !state.isVisible 3857 }; 3858 }); 3859 }; 3860 3861 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 3862 className: "content-visibility-special-page-inserter" 3863 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 3864 icon: "networking", 3865 iconSize: "12" 3866 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 3867 isSecondary: true, 3868 isSmall: true, 3869 isLink: true, 3870 onClick: toggleVisible, 3871 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 3872 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select specific pages', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 3873 position: "middle left", 3874 className: "content-visibility-special-page-help-instructions-popover", 3875 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 3876 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select Pages', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 3877 className: "content-visibility-help-text" 3878 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the pages upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 3879 data: data, 3880 labelledBy: "Select Page", 3881 props: props, 3882 type: type 3883 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 3884 className: "content-visibility-submit-special-pages-button-container" 3885 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 3886 isPrimary: true, 3887 className: "content-visibility-submit-special-pages", 3888 onClick: toggleVisible 3889 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 3890 icon: "editor-help", 3891 iconSize: "12" 3892 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Help', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])("Selecting one or more pages from this list will mean that this block will only be ".concat(props.attributes.contentVisibility, " on those pages. If you want this block to be ").concat(props.attributes.contentVisibility, " on ALL pages, please use the 'Special Pages' option and select 'Any Page'"), 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 3893 className: "content-visibility-close-popover", 3894 icon: "no", 3895 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 3896 onClick: toggleVisible 3897 })))); 3898 }); 3899 /* harmony default export */ __webpack_exports__["default"] = (PagePageInserter); 3900 3901 /***/ }), 3902 3903 /***/ "./src/controls/special-page/content-visibility-post-page-inserter.js": 3904 /*!****************************************************************************!*\ 3905 !*** ./src/controls/special-page/content-visibility-post-page-inserter.js ***! 3906 \****************************************************************************/ 3907 /*! exports provided: default */ 3908 /***/ (function(module, __webpack_exports__, __webpack_require__) { 3909 3910 "use strict"; 3911 __webpack_require__.r(__webpack_exports__); 3912 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 3913 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 3914 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 3915 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 3916 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 3917 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 3918 /* harmony import */ var _helpers_get_posts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-posts */ "./src/helpers/get-posts.js"); 3919 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 3920 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 3921 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 3922 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 3923 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 3924 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 var PostPageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 3935 isVisible: false 3936 })(function (_ref) { 3937 var isVisible = _ref.isVisible, 3938 setState = _ref.setState, 3939 props = _ref.props; 3940 3941 /** 3942 * Our data, passed from PHP and manipulated to be useful here in JS. 3943 */ 3944 var data = Object(_helpers_get_posts__WEBPACK_IMPORTED_MODULE_3__["default"])(); 3945 /** 3946 * This controls the key used where the data is stored. 3947 */ 3948 3949 var type = 'posts'; 3950 /** 3951 * Helps with the content of the inserter button. 3952 */ 3953 3954 var niceName = { 3955 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Post', 'content-visibility'), 3956 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Posts', 'content-visibility') 3957 }; 3958 /** 3959 * Toggle the visible state. Detemines whether the popup is open or not. 3960 */ 3961 3962 var toggleVisible = function toggleVisible() { 3963 setState(function (state) { 3964 return { 3965 isVisible: !state.isVisible 3966 }; 3967 }); 3968 }; 3969 3970 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 3971 className: "content-visibility-special-page-inserter" 3972 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 3973 icon: "admin-post", 3974 iconSize: "12" 3975 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 3976 isSecondary: true, 3977 isSmall: true, 3978 isLink: true, 3979 onClick: toggleVisible, 3980 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 3981 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select specific posts', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 3982 position: "middle left", 3983 className: "content-visibility-special-page-help-instructions-popover", 3984 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 3985 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select Posts', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 3986 className: "content-visibility-help-text" 3987 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the posts upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 3988 data: data, 3989 labelledBy: "Select Page", 3990 props: props, 3991 type: type 3992 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 3993 className: "content-visibility-submit-special-pages-button-container" 3994 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 3995 isPrimary: true, 3996 className: "content-visibility-submit-special-pages", 3997 onClick: toggleVisible 3998 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 3999 icon: "editor-help", 4000 iconSize: "12" 4001 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Help', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])("Selecting one or more posts from this list will mean that this block will only be ".concat(props.attributes.contentVisibility, " on those posts. If you want this block to be ").concat(props.attributes.contentVisibility, " on ALL posts, please use the 'Special Pages' option and select 'Any Post'"), 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 4002 className: "content-visibility-close-popover", 4003 icon: "no", 4004 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 4005 onClick: toggleVisible 4006 })))); 4007 }); 4008 /* harmony default export */ __webpack_exports__["default"] = (PostPageInserter); 4009 4010 /***/ }), 4011 2670 4012 /***/ "./src/controls/special-page/content-visibility-special-page-controls.js": 2671 4013 /*!*******************************************************************************!*\ … … 2729 4071 }); 2730 4072 }); 2731 } // Only load the Widgets-related controls on the widgets screen 2732 2733 2734 if ('appearance_page_gutenberg-widgets' === ContentVisibility.screen ) {4073 } // Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug. 4074 4075 4076 if ('appearance_page_gutenberg-widgets' === ContentVisibility.screen || '1' === ContentVisibility.local) { 2735 4077 // Add our component to the Slot provided by BlockVisibilityControls 2736 4078 Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_4__["registerPlugin"])('content-visibility-04-special-page-fill', { … … 2738 4080 }); 2739 4081 } 4082 4083 /***/ }), 4084 4085 /***/ "./src/controls/special-page/content-visibility-special-page-page-inserter.js": 4086 /*!************************************************************************************!*\ 4087 !*** ./src/controls/special-page/content-visibility-special-page-page-inserter.js ***! 4088 \************************************************************************************/ 4089 /*! exports provided: default */ 4090 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4091 4092 "use strict"; 4093 __webpack_require__.r(__webpack_exports__); 4094 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 4095 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 4096 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 4097 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 4098 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); 4099 /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); 4100 /* harmony import */ var _helpers_get_special_pages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../helpers/get-special-pages */ "./src/helpers/get-special-pages.js"); 4101 /* harmony import */ var _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../helpers/keep-popup-open */ "./src/helpers/keep-popup-open.js"); 4102 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4103 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); 4104 /* harmony import */ var _helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../helpers/special-page-insert-text */ "./src/helpers/special-page-insert-text.js"); 4105 /* harmony import */ var _helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../helpers/special-pages-insert-button-class */ "./src/helpers/special-pages-insert-button-class.js"); 4106 /* harmony import */ var _multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../multiselect/content-visibility-multiselect */ "./src/controls/multiselect/content-visibility-multiselect.js"); 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 var SpecialPagePageInserter = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 4117 isVisible: false 4118 })(function (_ref) { 4119 var isVisible = _ref.isVisible, 4120 setState = _ref.setState, 4121 props = _ref.props; 4122 4123 /** 4124 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages 4125 * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown. 4126 */ 4127 var specialPages = Object(_helpers_get_special_pages__WEBPACK_IMPORTED_MODULE_3__["default"])(); 4128 /** 4129 * This controls the key used where the data is stored. 4130 */ 4131 4132 var type = 'specialPages'; 4133 /** 4134 * Helps with the content of the inserter button. 4135 */ 4136 4137 var niceName = { 4138 singular: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Page', 'content-visibility'), 4139 plural: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Special Pages', 'content-visibility') 4140 }; 4141 /** 4142 * Toggle the visible state. Detemines whether the popup is open or not. 4143 */ 4144 4145 var toggleVisible = function toggleVisible() { 4146 setState(function (state) { 4147 return { 4148 isVisible: !state.isVisible 4149 }; 4150 }); 4151 }; 4152 4153 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("div", { 4154 className: "content-visibility-special-page-inserter" 4155 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4156 icon: "text-page", 4157 iconSize: "12" 4158 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4159 isSecondary: true, 4160 isSmall: true, 4161 isLink: true, 4162 onClick: toggleVisible, 4163 className: Object(_helpers_special_pages_insert_button_class__WEBPACK_IMPORTED_MODULE_7__["default"])(props, type) 4164 }, Object(_helpers_special_page_insert_text__WEBPACK_IMPORTED_MODULE_6__["default"])(props, type, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select special pages', 'content-visibility'), niceName), isVisible && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Popover"], { 4165 position: "middle left", 4166 className: "content-visibility-special-page-help-instructions-popover", 4167 onClick: _helpers_keep_popup_open__WEBPACK_IMPORTED_MODULE_4__["default"] 4168 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("h1", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Insert Special Pages', 'content-visibility')), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4169 className: "content-visibility-help-text" 4170 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Select the special pages upon which you would like this block to be ', 'content-visibility') + props.attributes.contentVisibility), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_multiselect_content_visibility_multiselect__WEBPACK_IMPORTED_MODULE_8__["ContentVisibilityMultiSelect"], { 4171 data: specialPages, 4172 labelledBy: "Select Page Type", 4173 props: props, 4174 type: type 4175 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4176 className: "content-visibility-submit-special-pages-button-container" 4177 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Button"], { 4178 isPrimary: true, 4179 className: "content-visibility-submit-special-pages", 4180 onClick: toggleVisible 4181 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Set Selected', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["HorizontalRule"], null), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4182 icon: "editor-help", 4183 iconSize: "12" 4184 }), " ", Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("strong", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('What are Special Pages?', 'content-visibility'))), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('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')), specialPages.map(function (specialPage) { 4185 return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("span", null, specialPage.label), ": ", specialPage.notes); 4186 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["IconButton"], { 4187 className: "content-visibility-close-popover", 4188 icon: "no", 4189 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__["__"])('Close', 'content-visibility'), 4190 onClick: toggleVisible 4191 })))); 4192 }); 4193 /* harmony default export */ __webpack_exports__["default"] = (SpecialPagePageInserter); 2740 4194 2741 4195 /***/ }), … … 2759 4213 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 2760 4214 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); 2761 2762 2763 2764 // import { ContentVisibilityUserAuthenticationRadioControl } from './block-visibility-user-authentication-radio-control'; 4215 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); 4216 /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__); 4217 /* harmony import */ var _content_visibility_special_page_page_inserter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./content-visibility-special-page-page-inserter */ "./src/controls/special-page/content-visibility-special-page-page-inserter.js"); 4218 /* harmony import */ var _content_visibility_page_page_inserter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./content-visibility-page-page-inserter */ "./src/controls/special-page/content-visibility-page-page-inserter.js"); 4219 /* harmony import */ var _content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./content-visibility-post-page-inserter */ "./src/controls/special-page/content-visibility-post-page-inserter.js"); 4220 4221 4222 4223 4224 4225 4226 2765 4227 2766 4228 var ContentVisibilitySpecialPagePanelBodyControl = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__["withState"])({ 2767 option: ''4229 option: [] 2768 4230 })(function (_ref) { 2769 4231 var option = _ref.option, … … 2774 4236 initialOpen: false, 2775 4237 className: "content-visibility-control-panel block-visibility-special-page-controls" 2776 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", null, "This does not function properly yet due to a core Gutenberg bug."), props.attributes.contentVisibility && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 2777 class: "special-page-help-intro content-visibility-help-text" 2778 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Select which types of pages this block will be ' + props.attributes.contentVisibility + '. Special pages include a search results page, a date or category archive, or the 404 not found page amongst others.', 'content-visibility-special-page')))); 2779 }); 4238 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["PanelRow"], { 4239 className: "content-visibility-page-inserter-panel-row" 4240 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_special_page_page_inserter__WEBPACK_IMPORTED_MODULE_5__["default"], { 4241 props: props 4242 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_page_page_inserter__WEBPACK_IMPORTED_MODULE_6__["default"], { 4243 props: props 4244 }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_content_visibility_post_page_inserter__WEBPACK_IMPORTED_MODULE_7__["default"], { 4245 props: props 4246 })), props.attributes.contentVisibility && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])("p", { 4247 className: "special-page-help-intro content-visibility-help-text" 4248 }, Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__["__"])('Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility'))); 4249 }); // Register our visibility rule in the main rules object. 4250 4251 Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_4__["addFilter"])('contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule); 4252 4253 function registerSpecialPageVisibilityRule(defaultRules) { 4254 defaultRules.specialPage = { 4255 pages: [], 4256 specialPages: [], 4257 posts: [] 4258 }; 4259 return defaultRules; 4260 } 2780 4261 2781 4262 /***/ }), … … 2907 4388 /***/ }), 2908 4389 4390 /***/ "./src/helpers/get-pages.js": 4391 /*!**********************************!*\ 4392 !*** ./src/helpers/get-pages.js ***! 4393 \**********************************/ 4394 /*! exports provided: default */ 4395 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4396 4397 "use strict"; 4398 __webpack_require__.r(__webpack_exports__); 4399 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4400 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4401 4402 /** 4403 * PHP sends through a list of all the pages on the site (in any status). We massage that data to be 4404 * usable by our Dropdown. 4405 * 4406 */ 4407 4408 function getPages() { 4409 var pages = []; 4410 4411 if (ContentVisibility.pages.length === 0) { 4412 return [{ 4413 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])('No pages found.', 'content-visibility'), 4414 value: 0, 4415 notes: '' 4416 }]; 4417 } 4418 4419 for (var page in ContentVisibility.pages) { 4420 pages.push({ 4421 label: ContentVisibility.pages[page].label, 4422 value: ContentVisibility.pages[page].id, 4423 notes: ContentVisibility.pages[page].notes 4424 }); 4425 } 4426 4427 return pages; 4428 } // end getPages() 4429 4430 4431 /* harmony default export */ __webpack_exports__["default"] = (getPages); 4432 4433 /***/ }), 4434 4435 /***/ "./src/helpers/get-posts.js": 4436 /*!**********************************!*\ 4437 !*** ./src/helpers/get-posts.js ***! 4438 \**********************************/ 4439 /*! exports provided: default */ 4440 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4441 4442 "use strict"; 4443 __webpack_require__.r(__webpack_exports__); 4444 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4445 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4446 4447 /** 4448 * PHP sends through a list of all the posts on the site (in any status). We massage that data to be 4449 * usable by our Dropdown. 4450 * 4451 */ 4452 4453 function getPosts() { 4454 var posts = []; 4455 4456 if (ContentVisibility.posts.length === 0) { 4457 return [{ 4458 label: Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])('No posts found.', 'content-visibility'), 4459 value: 0, 4460 notes: '' 4461 }]; 4462 } 4463 4464 for (var post in ContentVisibility.posts) { 4465 posts.push({ 4466 label: ContentVisibility.posts[post].label, 4467 value: ContentVisibility.posts[post].id, 4468 notes: ContentVisibility.posts[post].notes 4469 }); 4470 } 4471 4472 return posts; 4473 } // end getPosts() 4474 4475 4476 /* harmony default export */ __webpack_exports__["default"] = (getPosts); 4477 4478 /***/ }), 4479 4480 /***/ "./src/helpers/get-special-pages.js": 4481 /*!******************************************!*\ 4482 !*** ./src/helpers/get-special-pages.js ***! 4483 \******************************************/ 4484 /*! exports provided: default */ 4485 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4486 4487 "use strict"; 4488 __webpack_require__.r(__webpack_exports__); 4489 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); 4490 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); 4491 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); 4492 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); 4493 4494 4495 /** 4496 * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages 4497 * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown. 4498 * 4499 */ 4500 4501 function getSpecialPages() { 4502 var specialPages = []; 4503 4504 for (var specialPage in ContentVisibility.specialPages) { 4505 specialPages.push({ 4506 label: ContentVisibility.specialPages[specialPage].label, 4507 value: ContentVisibility.specialPages[specialPage].keyValue, 4508 notes: ContentVisibility.specialPages[specialPage].notes, 4509 icon: Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__["Icon"], { 4510 size: "12", 4511 icon: ContentVisibility.specialPages[specialPage].icon 4512 }) 4513 }); 4514 } 4515 4516 return specialPages; 4517 } // end getSpecialPages() 4518 4519 4520 /* harmony default export */ __webpack_exports__["default"] = (getSpecialPages); 4521 4522 /***/ }), 4523 4524 /***/ "./src/helpers/has-parent-with-class.js": 4525 /*!**********************************************!*\ 4526 !*** ./src/helpers/has-parent-with-class.js ***! 4527 \**********************************************/ 4528 /*! exports provided: default */ 4529 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4530 4531 "use strict"; 4532 __webpack_require__.r(__webpack_exports__); 4533 /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js"); 4534 /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__); 4535 4536 4537 /** 4538 * Is the passed element a child of an element that has a class of the passed parentClassName. 4539 * From: https://codepen.io/ross-angus/pen/eYJRmZR 4540 * 4541 * @param {object} element The name of the block. 4542 * @param {string} parentClassName the name of the class on the parent to check for. 4543 */ 4544 function hasParentWithClass(element, classname) { 4545 // SVGs are weird, man. 4546 if (_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(element.className) !== 'object' && element.className.split(' ').indexOf(classname) >= 0) { 4547 return true; 4548 } else if (element.tagName !== 'HTML') { 4549 // If you've reached the body, you've gone too far 4550 return element.parentNode && hasParentWithClass(element.parentNode, classname); 4551 } else { 4552 return false; 4553 } 4554 } //end hasParentWithClass() 4555 4556 4557 /* harmony default export */ __webpack_exports__["default"] = (hasParentWithClass); 4558 4559 /***/ }), 4560 2909 4561 /***/ "./src/helpers/is-valid-blocktype.js": 2910 4562 /*!*******************************************!*\ … … 2928 4580 2929 4581 /* harmony default export */ __webpack_exports__["default"] = (isValidBlockType); 4582 4583 /***/ }), 4584 4585 /***/ "./src/helpers/keep-popup-open.js": 4586 /*!****************************************!*\ 4587 !*** ./src/helpers/keep-popup-open.js ***! 4588 \****************************************/ 4589 /*! exports provided: default */ 4590 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4591 4592 "use strict"; 4593 __webpack_require__.r(__webpack_exports__); 4594 /* harmony import */ var _has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./has-parent-with-class */ "./src/helpers/has-parent-with-class.js"); 4595 4596 /** 4597 * The Popup component closes if it loses focus by default. For us, we want to ensure it 4598 * stays open until someone intentially closes it via either setting the selected items, 4599 * pressing a close button, or clicking the button they initially used to open the popup. 4600 * 4601 * @param {event} event The click event. 4602 * @return null 4603 */ 4604 4605 var keepPopupOpen = function keepPopupOpen(event) { 4606 if (false === event) { 4607 return; 4608 } // Determine if what has been clicked on is in the popover or not. 4609 4610 4611 var eTarget = event.target; 4612 4613 if (Object(_has_parent_with_class__WEBPACK_IMPORTED_MODULE_0__["default"])(eTarget, 'components-popover__content')) { 4614 event.stopPropagation(); 4615 } 4616 4617 return; 4618 }; 4619 4620 /* harmony default export */ __webpack_exports__["default"] = (keepPopupOpen); 4621 4622 /***/ }), 4623 4624 /***/ "./src/helpers/special-page-insert-text.js": 4625 /*!*************************************************!*\ 4626 !*** ./src/helpers/special-page-insert-text.js ***! 4627 \*************************************************/ 4628 /*! exports provided: default */ 4629 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4630 4631 "use strict"; 4632 __webpack_require__.r(__webpack_exports__); 4633 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); 4634 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); 4635 4636 /** 4637 * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are 4638 * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will 4639 * say how many. 4640 * 4641 * @param object props the props for this current iteration of the inserter. 4642 * @param string type the key in the object data store for specialPages 4643 * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected) 4644 * @param object niceName the text-friendly versions of the type of special page. i.e. "Special Pages" as opposed to 'special-page'. 4645 * object contains a singular and plural property. 4646 * @return string the text to be used for the button. 4647 */ 4648 4649 var specialPagesInsertText = function specialPagesInsertText(props, type, defaultVal, niceName) { 4650 // if nothing is set, return a prompt to select special pages. 4651 if (props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0) { 4652 return defaultVal; 4653 } 4654 4655 var shownOrHidden = props.attributes.contentVisibility; 4656 var specialPages = props.attributes.contentVisibilityRules.specialPage[type]; 4657 var specialPagesCount = specialPages.length; 4658 var niceType = specialPagesCount === 1 ? niceName.singular : niceName.plural; 4659 var insertText = shownOrHidden + Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__["__"])(' on ') + specialPagesCount + ' ' + niceType; 4660 return insertText; 4661 }; 4662 4663 /* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertText); 4664 4665 /***/ }), 4666 4667 /***/ "./src/helpers/special-pages-insert-button-class.js": 4668 /*!**********************************************************!*\ 4669 !*** ./src/helpers/special-pages-insert-button-class.js ***! 4670 \**********************************************************/ 4671 /*! exports provided: default */ 4672 /***/ (function(module, __webpack_exports__, __webpack_require__) { 4673 4674 "use strict"; 4675 __webpack_require__.r(__webpack_exports__); 4676 /** 4677 * The class which is given to the button used to toggle the popover where people can select which content to select. 4678 * We add a 'has-items' class if someone has chosen at least one item. 4679 * 4680 * @return string 4681 */ 4682 var specialPagesInsertButtonClass = function specialPagesInsertButtonClass(props, type) { 4683 // If we don't have any items selected, just basic class. 4684 if (props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0) { 4685 return 'content-visibility-special-page-inserter-toggle'; 4686 } // We have some items selected, so we have a couple classes. 4687 4688 4689 return 'content-visibility-special-page-inserter-toggle has-items'; 4690 }; 4691 4692 /* harmony default export */ __webpack_exports__["default"] = (specialPagesInsertButtonClass); 2930 4693 2931 4694 /***/ }), … … 2956 4719 2957 4720 /***/ "@wordpress/blockEditor": 2958 /*!************************************* *********!*\2959 !*** external {"this":["wp","blockEditor"]}***!2960 \************************************* *********/4721 /*!*************************************!*\ 4722 !*** external ["wp","blockEditor"] ***! 4723 \*************************************/ 2961 4724 /*! no static exports found */ 2962 4725 /***/ (function(module, exports) { 2963 4726 2964 (function() { module.exports = this["wp"]["blockEditor"]; }());4727 (function() { module.exports = window["wp"]["blockEditor"]; }()); 2965 4728 2966 4729 /***/ }), 2967 4730 2968 4731 /***/ "@wordpress/components": 2969 /*!************************************ *********!*\2970 !*** external {"this":["wp","components"]}***!2971 \************************************ *********/4732 /*!************************************!*\ 4733 !*** external ["wp","components"] ***! 4734 \************************************/ 2972 4735 /*! no static exports found */ 2973 4736 /***/ (function(module, exports) { 2974 4737 2975 (function() { module.exports = this["wp"]["components"]; }());4738 (function() { module.exports = window["wp"]["components"]; }()); 2976 4739 2977 4740 /***/ }), 2978 4741 2979 4742 /***/ "@wordpress/compose": 2980 /*!********************************* *********!*\2981 !*** external {"this":["wp","compose"]}***!2982 \********************************* *********/4743 /*!*********************************!*\ 4744 !*** external ["wp","compose"] ***! 4745 \*********************************/ 2983 4746 /*! no static exports found */ 2984 4747 /***/ (function(module, exports) { 2985 4748 2986 (function() { module.exports = this["wp"]["compose"]; }());4749 (function() { module.exports = window["wp"]["compose"]; }()); 2987 4750 2988 4751 /***/ }), 2989 4752 2990 4753 /***/ "@wordpress/element": 2991 /*!********************************* *********!*\2992 !*** external {"this":["wp","element"]}***!2993 \********************************* *********/4754 /*!*********************************!*\ 4755 !*** external ["wp","element"] ***! 4756 \*********************************/ 2994 4757 /*! no static exports found */ 2995 4758 /***/ (function(module, exports) { 2996 4759 2997 (function() { module.exports = this["wp"]["element"]; }());4760 (function() { module.exports = window["wp"]["element"]; }()); 2998 4761 2999 4762 /***/ }), 3000 4763 3001 4764 /***/ "@wordpress/hooks": 3002 /*!******************************* *********!*\3003 !*** external {"this":["wp","hooks"]}***!3004 \******************************* *********/4765 /*!*******************************!*\ 4766 !*** external ["wp","hooks"] ***! 4767 \*******************************/ 3005 4768 /*! no static exports found */ 3006 4769 /***/ (function(module, exports) { 3007 4770 3008 (function() { module.exports = this["wp"]["hooks"]; }());4771 (function() { module.exports = window["wp"]["hooks"]; }()); 3009 4772 3010 4773 /***/ }), 3011 4774 3012 4775 /***/ "@wordpress/i18n": 3013 /*!****************************** *********!*\3014 !*** external {"this":["wp","i18n"]}***!3015 \****************************** *********/4776 /*!******************************!*\ 4777 !*** external ["wp","i18n"] ***! 4778 \******************************/ 3016 4779 /*! no static exports found */ 3017 4780 /***/ (function(module, exports) { 3018 4781 3019 (function() { module.exports = this["wp"]["i18n"]; }());4782 (function() { module.exports = window["wp"]["i18n"]; }()); 3020 4783 3021 4784 /***/ }), 3022 4785 3023 4786 /***/ "@wordpress/plugins": 3024 /*!********************************* *********!*\3025 !*** external {"this":["wp","plugins"]}***!3026 \********************************* *********/4787 /*!*********************************!*\ 4788 !*** external ["wp","plugins"] ***! 4789 \*********************************/ 3027 4790 /*! no static exports found */ 3028 4791 /***/ (function(module, exports) { 3029 4792 3030 (function() { module.exports = this["wp"]["plugins"]; }()); 4793 (function() { module.exports = window["wp"]["plugins"]; }()); 4794 4795 /***/ }), 4796 4797 /***/ "react": 4798 /*!************************!*\ 4799 !*** external "React" ***! 4800 \************************/ 4801 /*! no static exports found */ 4802 /***/ (function(module, exports) { 4803 4804 (function() { module.exports = window["React"]; }()); 3031 4805 3032 4806 /***/ }) -
content-visibility/trunk/build/index.js.map
r2450785 r2471073 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/ 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:///(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/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/index.js","webpack:///external {\"this\":[\"wp\",\"blockEditor\"]}","webpack:///external {\"this\":[\"wp\",\"components\"]}","webpack:///external {\"this\":[\"wp\",\"compose\"]}","webpack:///external {\"this\":[\"wp\",\"element\"]}","webpack:///external {\"this\":[\"wp\",\"hooks\"]}","webpack:///external {\"this\":[\"wp\",\"i18n\"]}","webpack:///external {\"this\":[\"wp\",\"plugins\"]}"],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","isSelected","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","ContentVisibilityShownHiddenControl","label","value","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","ContentVisibilitySpecialPagePanelBodyControl","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","invalidBlockTypes","includes"],"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,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa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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;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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\"] = window[\"webpackJsonp\"] || [];\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;","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","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n return (props) => {\n\n if (!isValidBlockType(props.name) || !props.isSelected) {\n return <BlockEdit {...props} />;\n }\n\n // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n // get updated when a block is updated.\n let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n return (\n <Fragment>\n <BlockEdit {...props} />\n <InspectorControls>\n <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n <PanelRow className=\"content-visibility-rules-enabled\">\n <ContentVisibilityRulesEnabled props={props} />\n </PanelRow>\n\n <div className={showControls + \" content-visibility-controls-container\"}>\n <PanelRow className=\"content-visibility-displayed-control\">\n <ContentVisibilityDisplayedControl props={props} />\n </PanelRow>\n\n <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n </div>\n\n </PanelBody>\n </InspectorControls>\n </Fragment>\n );\n\n };\n}, 'contentVisibilityControls');\n\naddFilter('editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls);\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n // If this is a valid block\n if (isValidBlockType(settings.name)) {\n\n // Run the rules through a filter so we're able to add rules externally.\n let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n contentVisibilityRulesEnabled: false,\n userAuthenticated: ''\n });\n\n // Use Lodash's assign to gracefully handle if attributes are undefined\n settings.attributes = assign(settings.attributes, {\n contentVisibilityRules: {\n type: 'object',\n default: defaultRules\n },\n });\n }\n\n return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n // If the current block is valid, add our prop.\n if (isValidBlockType(blockType.name)) {\n extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n }\n\n return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute);\naddFilter('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave);","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n if ( ! rulesEnabled ) {\n return (\n <Disabled>\n <ContentVisibilityShownHiddenControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilityShownHiddenControl props={ props } />\n );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n <ToggleControl\n label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n // Sets the state\n return (\n { rulesEnabled: ! state.rulesEnabled }\n );\n } ) }\n />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n return ( props ) => {\n\n if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n return <BlockListBlock {...props} />;\n }\n\n let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n return <BlockListBlock {...props} className={ iconClassName } />\n\n };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n );\n }\n\n return (\n <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import { 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 { 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 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\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen ) {\n // Add our component to the Slot provided by BlockVisibilityControls\n registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n// import { ContentVisibilityUserAuthenticationRadioControl } from './block-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Special Page', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel block-visibility-special-page-controls\"\n >\n <PanelRow>\n {/* <ContentVisibilityUserAuthenticationRadioControl props={ props } /> */}\n <p>This does not function properly yet due to a core Gutenberg bug.</p>\n\n { props.attributes.contentVisibility && (\n <p class=\"special-page-help-intro content-visibility-help-text\">\n { __( 'Select which types of pages this block will be ' + props.attributes.contentVisibility + '. Special pages include a search results page, a date or category archive, or the 404 not found page amongst others.', 'content-visibility-special-page' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n\n <RadioControl\n label=''\n help=''\n className=\"content-visibility-user-authenticated-control\"\n selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n options={ [\n { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n ] }\n onChange={ ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.userAuthenticated = option;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n } }\n />\n\n );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel content-visibility-user-authenticated-controls\"\n >\n <PanelRow>\n <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n { props.attributes.contentVisibility && (\n <p className=\"user-auth-help-intro content-visibility-help-text\">\n { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","// extracted by mini-css-extract-plugin","/**\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 './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';\n","(function() { module.exports = this[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = this[\"wp\"][\"components\"]; }());","(function() { module.exports = this[\"wp\"][\"compose\"]; }());","(function() { module.exports = this[\"wp\"][\"element\"]; }());","(function() { module.exports = this[\"wp\"][\"hooks\"]; }());","(function() { module.exports = this[\"wp\"][\"i18n\"]; }());","(function() { module.exports = this[\"wp\"][\"plugins\"]; }());"],"sourceRoot":""}1 {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/goober/dist/goober.module.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/react-multi-select-component/dist/react-multi-select-component.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/controls/content-visibility-controls.js","webpack:///./src/controls/content-visibility-displayed-control.js","webpack:///./src/controls/content-visibility-rules-enabled.js","webpack:///./src/controls/content-visibility-user-authentication.js","webpack:///./src/controls/multiselect/content-visibility-multiselect.js","webpack:///./src/controls/shown-or-hidden/content-visibility-shown-hidden-control.js","webpack:///./src/controls/special-page/content-visibility-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-post-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-controls.js","webpack:///./src/controls/special-page/content-visibility-special-page-page-inserter.js","webpack:///./src/controls/special-page/content-visibility-special-page-panel.js","webpack:///./src/controls/user-authentication/content-visibility-user-authentication-radio-control.js","webpack:///./src/controls/user-authentication/user-authentication-panel-body-control.js","webpack:///./src/editor.scss","webpack:///./src/helpers/get-pages.js","webpack:///./src/helpers/get-posts.js","webpack:///./src/helpers/get-special-pages.js","webpack:///./src/helpers/has-parent-with-class.js","webpack:///./src/helpers/is-valid-blocktype.js","webpack:///./src/helpers/keep-popup-open.js","webpack:///./src/helpers/special-page-insert-text.js","webpack:///./src/helpers/special-pages-insert-button-class.js","webpack:///./src/index.js","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"compose\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"hooks\"]","webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"plugins\"]","webpack:///external \"React\""],"names":["contentVisibilityControls","createHigherOrderComponent","BlockEdit","props","isValidBlockType","name","isSelected","showControls","attributes","contentVisibilityRules","contentVisibilityRulesEnabled","__","addFilter","addContentVisibilityRulesAttribute","settings","defaultRules","applyFilters","userAuthenticated","assign","type","default","addContentVisibilityRulesPropOnSave","extraProps","blockType","ContentVisibilityDisplayedControl","withState","option","setState","rulesEnabled","addContentVisibilityAttribute","contentVisibility","addBlockVisibilityPropOnSave","ContentVisibilityRulesEnabled","state","newBVRules","setAttributes","doAction","addContentVisibilityRulesEnabledAttribute","addContentVisibilityRulesEnabledPropOnSave","withCustomClassName","BlockListBlock","iconClassName","ContentVisibilityUserAuthenticationControl","hasOwnProperty","BlockVisibilityUserAuthenitcationFill","fillProps","registerPlugin","render","ContentVisibilityMultiSelect","data","labelledBy","onChange","specialPage","checked","onClick","disabled","icon","label","ContentVisibilityShownHiddenControl","value","PagePageInserter","isVisible","getPages","niceName","singular","plural","toggleVisible","specialPagesInsertButtonClass","specialPagesInsertText","keepPopupOpen","PostPageInserter","getPosts","ContentVisibilitySpecialPageControls","ContentVisibilitySpecialPageFill","ContentVisibility","screen","local","SpecialPagePageInserter","specialPages","getSpecialPages","map","notes","ContentVisibilitySpecialPagePanelBodyControl","registerSpecialPageVisibilityRule","pages","posts","ContentVisibilityUserAuthenticationRadioControl","ContentVisibilityUserAuthenticationPanelBodyControl","length","page","push","id","post","keyValue","hasParentWithClass","element","classname","className","split","indexOf","tagName","parentNode","invalidBlockTypes","includes","event","eTarget","target","stopPropagation","defaultVal","undefined","shownOrHidden","specialPagesCount","niceType","insertText"],"mappings":";;;;;;;;;;;;;;;;QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;ACfA;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0B;;;;;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yB;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA;AACA;;AAEA;;;;;;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,a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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACoD;;AAEjF;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA,GAAG,mCAAmC;AACtC;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,cAAc;AAC/B;AACA;;AAEA,iBAAiB,cAAc;AAC/B;AACA,GAAG;;;AAGH,kBAAkB,eAAe;AACjC,oBAAoB,eAAe;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;;AAEA;AACA;AACA;AACA,iCAAiC,kDAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAM;AACtB,EAAE,uDAAS;AACX,kBAAkB;AAClB,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,gCAAgC,kDAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA,SAAS,4CAAK;AACd;AACA,GAAG;AACH;AACA,WAAW,4CAAK;AAChB;AACA,KAAK,EAAE,4CAAK;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,wBAAwB,yDAAW;AACnC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,qDAAO;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK,qCAAqC;AAC1C,GAAG;AACH;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA,GAAG,oBAAoB,4CAAK;AAC5B;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG,GAAG,4CAAK;AACX;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,4CAAK,uEAAuE,4CAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG,GAAG,4CAAK,2CAA2C;AACtD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG;AACH;;AAEA,2BAA2B,kDAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,kDAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAmC,kDAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uCAAuC,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sDAAQ;AAC1B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA,mBAAmB,sDAAQ;AAC3B;AACA;;AAEA;AACA,gBAAgB,oDAAM;AACtB;;AAEA,EAAE,uDAAS;AACX;AACA,GAAG;AACH,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,0BAA0B,4CAAK,mEAAmE,4CAAK;AAC1G;AACA;AACA;AACA;AACA,GAAG,uBAAuB,4CAAK,8BAA8B,4CAAK;AAClE;AACA,GAAG,gBAAgB,4CAAK;AACxB;AACA,GAAG,EAAE,4CAAK;AACV;AACA,GAAG,EAAE,4CAAK,iDAAiD;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,GAAG,iEAAiE,4CAAK;AACzE;;AAEA,kCAAkC,kDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,4CAAK;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEe,0EAAW,EAAC;AACkB;AAC7C;;;;;;;;;;;;AC76BA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAEO,IAAMA,yBAAyB,GAAGC,qFAA0B,CAAC,UAACC,SAAD,EAAe;AAE/E,SAAO,UAACC,KAAD,EAAW;AAEd,QAAI,CAACC,2EAAgB,CAACD,KAAK,CAACE,IAAP,CAAjB,IAAiC,CAACF,KAAK,CAACG,UAA5C,EAAwD;AACpD,aAAO,yEAAC,SAAD,EAAeH,KAAf,CAAP;AACH,KAJa,CAMd;AACA;AACA;AACA;;;AACA,QAAII,YAAY,GAAIJ,KAAK,CAACK,UAAN,CAAiBC,sBAAjB,CAAwCC,6BAAzC,GAA0E,eAA1E,GAA4F,eAA/G;AAEA,WACI,yEAAC,2DAAD,QACI,yEAAC,SAAD,EAAeP,KAAf,CADJ,EAEI,yEAAC,wEAAD,QACI,yEAAC,+DAAD;AAAW,WAAK,EAAEQ,0DAAE,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","file":"index.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp_content_visibility\"] = window[\"webpackJsonp_content_visibility\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"./src/index.js\",\"style-index\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","let e={data:\"\"},t=t=>{try{let e=t?t.querySelector(\"#_goober\"):self._goober;return e||(e=(t||document.head).appendChild(document.createElement(\"style\")),e.innerHTML=\" \",e.id=\"_goober\"),e.firstChild}catch(e){}return t||e},r=e=>{let r=t(e),a=r.data;return r.data=\"\",a},a=/(?:([A-Z0-9-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/gi,l=/\\/\\*[\\s\\S]*?\\*\\/|\\s{2,}|\\n/gm,o=(e,t)=>{let r,a=\"\",l=\"\",n=\"\";for(let c in e){let s=e[c];\"object\"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/g.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):c,l+=\"@\"==c[0]?\"f\"==c[1]?o(s,c):c+\"{\"+o(s,\"k\"==c[1]?\"\":t)+\"}\":o(s,r)):\"@\"==c[0]&&\"i\"==c[1]?a=c+\" \"+s+\";\":n+=o.p?o.p(c.replace(/[A-Z]/g,\"-$&\").toLowerCase(),s):c.replace(/[A-Z]/g,\"-$&\").toLowerCase()+\":\"+s+\";\"}return n[0]?(r=t?t+\"{\"+n+\"}\":n,a+r+l):a+l},n={},c=e=>{let t=\"\";for(let r in e)t+=r+(\"object\"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,p)=>{let i=\"object\"==typeof e?c(e):e,u=n[i]||(n[i]=\"go\"+i.split(\"\").reduce((e,t)=>101*e+t.charCodeAt(0)>>>0,11));if(!n[u]){let t=\"object\"==typeof e?e:(e=>{let t,r=[{}];for(;t=a.exec(e.replace(l,\"\"));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(p?{[\"@keyframes \"+u]:t}:t,r?\"\":\".\"+u)}return((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(n[u],t,s),u},p=(e,t,r)=>e.reduce((e,a,l)=>{let n=t[l];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):e}return e+a+(null==n?\"\":n)},\"\");function i(e){let r=this||{},a=e.call?e(r.p):e;return s(a.unshift?a.raw?p(a,[].slice.call(arguments,1),r.p):a.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):a,t(r.target),r.g,r.o,r.k)}let u,f,d=i.bind({g:1}),g=i.bind({k:1});function b(e,t,r){o.p=t,u=e,f=r}function h(e,t){let r=this||{};return function(){let a=arguments;function l(o,n){let c=Object.assign({},o),s=c.className||l.className;return r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/g.test(s),c.className=i.apply(r,a)+(s?\" \"+s:\"\"),t&&(c.ref=n),u(c.as||e,c)}return t?t(l):l}}export{i as css,r as extractCss,d as glob,g as keyframes,b as setup,h as styled};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","import { css } from 'goober';\nimport React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\n\nvar debounce = function debounce(func, wait) {\n var timeout;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n func.apply(null, args);\n }, wait);\n };\n};\n\n/**\r\n * Filters React Select options and sorts by similarity to a search filter.\r\n * Handles partial matches, eg. searching for \"Waberg High\" will find \"Raoul\r\n * Wallenberg Traditional High School\". Case insensitive. Ignores\r\n * non-alphanumeric characters.\r\n *\r\n * @param options An unfiltered list of Options.\r\n * @param? filter A string to compare against Option labels.\r\n * @param? substitutions Strings with multiple spellings or variations that we\r\n * expect to match, eg. accented characters or abbreviated words.\r\n *\r\n * @return A filtered and sorted array of Options.\r\n */\nfunction filterOptions(options, filter, substitutions) {\n // If the filter is blank, return the full list of Options.\n if (!filter) {\n return options;\n }\n\n var cleanFilter = cleanUpText(filter, substitutions);\n return options // Filter out undefined or null Options.\n .filter(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return label != null && value != null;\n }) // Create a {score, Option} pair for each Option based on its label's\n // similarity to the filter text.\n .map(function (option) {\n return {\n option: option,\n score: typeaheadSimilarity(cleanUpText(option.label, substitutions), cleanFilter)\n };\n }) // Only include matches of the entire substring, with a slight\n // affordance for transposition or extra characters.\n .filter(function (pair) {\n return pair.score >= cleanFilter.length - 2;\n }) // Sort 'em by order of their score.\n .sort(function (a, b) {\n return b.score - a.score;\n }) // …and grab the original Options back from their pairs.\n .map(function (pair) {\n return pair.option;\n });\n}\n/**\r\n * Scores the similarity between two strings by returning the length of the\r\n * longest common subsequence. Intended for comparing strings of different\r\n * lengths; eg. when matching a typeahead search input with a school name.\r\n\n * Meant for use in an instant search box where results are being fetched\r\n * as a user is typing.\r\n *\r\n * @param a The longer string (though, we flip them if it's shorter).\r\n * @param b The shorter string, eg. a typeahead search input.\r\n *\r\n * @return The length of the longest common subsequence. Higher scores indicate\r\n * closer matches.\r\n */\n\nfunction typeaheadSimilarity(a, b) {\n var aLength = a.length;\n var bLength = b.length;\n var table = [];\n\n if (!aLength || !bLength) {\n return 0;\n } // Ensure `a` isn't shorter than `b`.\n\n\n if (aLength < bLength) {\n var _ref2 = [b, a];\n a = _ref2[0];\n b = _ref2[1];\n } // Early exit if `a` includes `b`; these will be scored higher than any\n // other options with the same `b` (filter string), with a preference for\n // shorter `a` strings (option labels).\n\n\n if (a.indexOf(b) !== -1) {\n return bLength + 1 / aLength;\n } // Initialize the table axes:\n //\n // 0 0 0 0 ... bLength\n // 0\n // 0\n //\n // ...\n //\n // aLength\n //\n\n\n for (var x = 0; x <= aLength; ++x) {\n table[x] = [0];\n }\n\n for (var y = 0; y <= bLength; ++y) {\n table[0][y] = 0;\n } // Populate the rest of the table with a dynamic programming algorithm.\n\n\n for (var _x = 1; _x <= aLength; ++_x) {\n for (var _y = 1; _y <= bLength; ++_y) {\n table[_x][_y] = a[_x - 1] === b[_y - 1] ? 1 + table[_x - 1][_y - 1] : Math.max(table[_x][_y - 1], table[_x - 1][_y]);\n }\n }\n\n return table[aLength][bLength];\n}\n/**\r\n * Apply string substitutions, remove non-alphanumeric characters, and convert\r\n * all letters to uppercase.\r\n *\r\n * eg. 'Scoil Bhríde Primary School' may become 'SCOILBHRIDEPRIMARYSCHOOL'.\r\n *\r\n * @param input An unsanitized input string.\r\n * @param substitutions Strings with multiple spellings or variations that we\r\n * expect to match, for example accented characters or abbreviated\r\n * words.\r\n *\r\n * @return The sanitized text.\r\n */\n\nfunction cleanUpText(input, substitutions) {\n if (!input) {\n return \"\";\n } // Uppercase and remove all non-alphanumeric, non-accented characters.\n // Also remove underscores.\n\n\n input = input.toUpperCase().replace(/((?=[^\\u00E0-\\u00FC])\\W)|_/g, \"\");\n\n if (!substitutions) {\n return input;\n }\n\n var safeSubstitutions = substitutions; // For Flow.\n // Replace all strings in `safeSubstitutions` with their standardized\n // counterparts.\n\n return Object.keys(safeSubstitutions).reduce(function (output, substitution) {\n var unsubbed = new RegExp(substitution, \"g\");\n return output.replace(unsubbed, safeSubstitutions[substitution]);\n }, input);\n}\n\nvar strings = {\n selectSomeItems: \"Select...\",\n allItemsAreSelected: \"All items are selected.\",\n selectAll: \"Select All\",\n search: \"Search\",\n clearSearch: \"Clear Search\",\n clearSelected: \"Clear Selected\"\n};\nfunction getString(key, overrideStrings) {\n return (overrideStrings == null ? void 0 : overrideStrings[key]) || strings[key];\n}\n\nvar Cross = function Cross() {\n return React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-search-clear-icon gray\"\n }, React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n }), React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n }));\n};\n\nvar DefaultRenderer = /*#__PURE__*/css({\n \"& input,& span\": {\n verticalAlign: \"middle\",\n margin: 0\n },\n span: {\n display: \"inline-block\",\n paddingLeft: \"5px\"\n },\n \"&.disabled\": {\n opacity: 0.5\n }\n});\n\nvar DefaultItemRenderer = function DefaultItemRenderer(_ref) {\n var checked = _ref.checked,\n option = _ref.option,\n onClick = _ref.onClick,\n disabled = _ref.disabled;\n return React.createElement(\"div\", {\n className: DefaultRenderer + \" item-renderer \" + (disabled && \"disabled\")\n }, React.createElement(\"input\", {\n type: \"checkbox\",\n onChange: onClick,\n checked: checked,\n tabIndex: -1,\n disabled: disabled\n }), React.createElement(\"span\", null, option.label));\n};\n\n/**\r\n * This component represents an individual item in the multi-select drop-down\r\n */\nvar ItemContainer = /*#__PURE__*/css({\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n display: \"block\",\n padding: \"var(--rmsc-p)\",\n outline: 0,\n \"&:hover,&:focus\": {\n background: \"var(--rmsc-hover)\"\n },\n \"&.selected\": {\n background: \"var(--rmsc-selected)\"\n }\n});\n\nvar SelectItem = function SelectItem(_ref) {\n var _ref$itemRenderer = _ref.itemRenderer,\n ItemRenderer = _ref$itemRenderer === void 0 ? DefaultItemRenderer : _ref$itemRenderer,\n option = _ref.option,\n checked = _ref.checked,\n focused = _ref.focused,\n tabIndex = _ref.tabIndex,\n disabled = _ref.disabled,\n onSelectionChanged = _ref.onSelectionChanged,\n onClick = _ref.onClick;\n var itemRef = useRef();\n useEffect(function () {\n updateFocus(); // eslint-disable-next-line\n }, [focused]);\n\n var toggleChecked = function toggleChecked() {\n onSelectionChanged(!checked);\n };\n\n var handleClick = function handleClick(e) {\n toggleChecked();\n onClick(e);\n };\n\n var updateFocus = function updateFocus() {\n if (focused && !disabled && itemRef) {\n itemRef.current.focus();\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.which) {\n case 13: // Enter\n\n case 32:\n // Space\n toggleChecked();\n break;\n\n default:\n return;\n }\n\n e.preventDefault();\n };\n\n return React.createElement(\"label\", {\n className: ItemContainer + \" select-item \" + (checked && \"selected\"),\n role: \"option\",\n \"aria-selected\": checked,\n tabIndex: tabIndex,\n ref: itemRef,\n onKeyDown: handleKeyDown\n }, React.createElement(ItemRenderer, {\n option: option,\n checked: checked,\n onClick: handleClick,\n disabled: disabled\n }));\n};\n\n/**\r\n * This component represents an unadorned list of SelectItem (s).\r\n */\nvar SelectListUl = /*#__PURE__*/css({\n margin: 0,\n paddingLeft: 0,\n li: {\n listStyle: \"none\",\n margin: 0\n }\n});\nvar skipIndex = 2;\n\nvar SelectList = function SelectList(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n ItemRenderer = _ref.ItemRenderer,\n options = _ref.options,\n focusIndex = _ref.focusIndex,\n _onClick = _ref.onClick;\n\n var handleSelectionChanged = function handleSelectionChanged(option, checked) {\n if (disabled) {\n return;\n }\n\n onChange(checked ? [].concat(value, [option]) : value.filter(function (o) {\n return o.value !== option.value;\n }));\n };\n\n return React.createElement(\"ul\", {\n className: SelectListUl\n }, options.map(function (o, i) {\n var tabIndex = i + skipIndex;\n return React.createElement(\"li\", {\n key: o.hasOwnProperty(\"key\") ? o.key : i\n }, React.createElement(SelectItem, {\n focused: focusIndex === tabIndex,\n tabIndex: tabIndex,\n option: o,\n onSelectionChanged: function onSelectionChanged(c) {\n return handleSelectionChanged(o, c);\n },\n checked: value.find(function (s) {\n return s.value === o.value;\n }) ? true : false,\n onClick: function onClick(e) {\n return _onClick(e, tabIndex);\n },\n itemRenderer: ItemRenderer,\n disabled: o.disabled || disabled\n }));\n }));\n};\n\n/**\r\n * This component represents the entire panel which gets dropped down when the\r\n * user selects the component. It encapsulates the search filter, the\r\n * Select-all item, and the list of options.\r\n */\nvar FocusType;\n\n(function (FocusType) {\n FocusType[FocusType[\"SEARCH\"] = -1] = \"SEARCH\";\n FocusType[FocusType[\"NONE\"] = 1] = \"NONE\";\n})(FocusType || (FocusType = {}));\n\nvar SelectSearchContainer = /*#__PURE__*/css({\n width: \"100%\",\n position: \"relative\",\n borderBottom: \"1px solid var(--rmsc-border)\",\n input: {\n height: \"var(--rmsc-h)\",\n padding: \"0 var(--rmsc-p)\",\n width: \"100%\",\n outline: 0,\n border: 0\n }\n});\nvar SearchClearButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n background: \"none\",\n border: 0,\n padding: \"0 calc(var(--rmsc-p)/2)\",\n \"[hidden]\": {\n display: \"none\"\n }\n});\nvar SelectPanel = function SelectPanel(props) {\n var onChange = props.onChange,\n options = props.options,\n value = props.value,\n customFilterOptions = props.filterOptions,\n selectAllLabel = props.selectAllLabel,\n ItemRenderer = props.ItemRenderer,\n disabled = props.disabled,\n disableSearch = props.disableSearch,\n focusSearchOnOpen = props.focusSearchOnOpen,\n hasSelectAll = props.hasSelectAll,\n overrideStrings = props.overrideStrings,\n ClearIcon = props.ClearIcon,\n debounceDuration = props.debounceDuration;\n\n var _useState = useState(\"\"),\n searchText = _useState[0],\n setSearchText = _useState[1];\n\n var _useState2 = useState(\"\"),\n searchTextForFilter = _useState2[0],\n setSearchTextForFilter = _useState2[1];\n\n var _useState3 = useState(focusSearchOnOpen && !disableSearch ? FocusType.SEARCH : FocusType.NONE),\n focusIndex = _useState3[0],\n setFocusIndex = _useState3[1];\n\n var debouncedSearch = useCallback(debounce(function (query) {\n return setSearchTextForFilter(query);\n }, debounceDuration), []);\n var selectAllOption = {\n label: selectAllLabel || getString(\"selectAll\", overrideStrings),\n value: \"\"\n };\n\n var selectAllValues = function selectAllValues(checked) {\n var filteredValues = filteredOptions().filter(function (o) {\n return !o.disabled;\n }).map(function (o) {\n return o.value;\n });\n\n if (checked) {\n var selectedValues = value.map(function (o) {\n return o.value;\n });\n var finalSelectedValues = [].concat(selectedValues, filteredValues);\n return options.filter(function (_ref) {\n var value = _ref.value;\n return finalSelectedValues.includes(value);\n });\n }\n\n return value.filter(function (o) {\n return !filteredValues.includes(o.value);\n });\n };\n\n var selectAllChanged = function selectAllChanged(checked) {\n var newOptions = selectAllValues(checked);\n onChange(newOptions);\n };\n\n var handleSearchChange = function handleSearchChange(e) {\n debouncedSearch(e.target.value);\n setSearchText(e.target.value);\n setFocusIndex(FocusType.SEARCH);\n };\n\n var handleClear = function handleClear() {\n setSearchTextForFilter(\"\");\n setSearchText(\"\");\n };\n\n var handleItemClicked = function handleItemClicked(index) {\n return setFocusIndex(index);\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n switch (e.which) {\n case 38:\n // Up Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(-1);\n break;\n\n case 40:\n // Down Arrow\n if (e.altKey) {\n return;\n }\n\n updateFocus(1);\n break;\n\n default:\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n var handleSearchFocus = function handleSearchFocus() {\n setFocusIndex(FocusType.SEARCH);\n };\n\n var filteredOptions = function filteredOptions() {\n return customFilterOptions ? customFilterOptions(options, searchTextForFilter) : filterOptions(options, searchTextForFilter);\n };\n\n var updateFocus = function updateFocus(offset) {\n var newFocus = focusIndex + offset;\n newFocus = Math.max(1, newFocus);\n newFocus = Math.min(newFocus, options.length + 1);\n setFocusIndex(newFocus);\n };\n\n var _useMemo = useMemo(function () {\n var filteredOptionsList = filteredOptions().filter(function (o) {\n return !o.disabled;\n });\n return [filteredOptionsList.every(function (o) {\n return value.findIndex(function (v) {\n return v.value === o.value;\n }) !== -1;\n }), filteredOptionsList.length !== 0]; // eslint-disable-next-line\n }, [searchText, value]),\n isAllOptionSelected = _useMemo[0],\n hasSelectableOptions = _useMemo[1];\n\n return React.createElement(\"div\", {\n className: \"select-panel\",\n role: \"listbox\",\n onKeyDown: handleKeyDown\n }, !disableSearch && React.createElement(\"div\", {\n className: SelectSearchContainer\n }, React.createElement(\"input\", {\n autoFocus: focusSearchOnOpen,\n placeholder: getString(\"search\", overrideStrings),\n type: \"text\",\n \"aria-describedby\": getString(\"search\", overrideStrings),\n onKeyDown: function onKeyDown(e) {\n return e.stopPropagation();\n },\n onChange: handleSearchChange,\n onFocus: handleSearchFocus,\n value: searchText\n }), React.createElement(\"button\", {\n type: \"button\",\n className: SearchClearButton + \" search-clear-button\",\n hidden: !searchText,\n onClick: handleClear,\n \"aria-label\": getString(\"clearSearch\", overrideStrings)\n }, ClearIcon || React.createElement(Cross, null))), hasSelectAll && hasSelectableOptions && React.createElement(SelectItem, {\n focused: focusIndex === 1,\n tabIndex: 1,\n checked: isAllOptionSelected,\n option: selectAllOption,\n onSelectionChanged: selectAllChanged,\n onClick: function onClick() {\n return handleItemClicked(0);\n },\n itemRenderer: ItemRenderer,\n disabled: disabled\n }), React.createElement(SelectList, Object.assign({}, props, {\n options: filteredOptions(),\n focusIndex: focusIndex,\n onClick: function onClick(_e, index) {\n return handleItemClicked(index);\n },\n ItemRenderer: ItemRenderer,\n disabled: disabled\n })));\n};\n\nfunction Arrow(_ref) {\n var expanded = _ref.expanded;\n return React.createElement(\"svg\", {\n width: \"24\",\n height: \"24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n className: \"dropdown-heading-dropdown-arrow gray\"\n }, React.createElement(\"path\", {\n d: expanded ? \"M18 15 12 9 6 15\" : \"M6 9L12 15 18 9\"\n }));\n}\n\nvar Spinner = /*#__PURE__*/css({\n animation: \"rotate 2s linear infinite\",\n \"& .path\": {\n stroke: \"var(--rmsc-border)\",\n strokeWidth: \"4px\",\n strokeLinecap: \"round\",\n animation: \"dash 1.5s ease-in-out infinite\"\n },\n \"@keyframes rotate\": {\n \"100%\": {\n transform: \"rotate(360deg)\"\n }\n },\n \"@keyframes dash\": {\n \"0%\": {\n strokeDasharray: \"1,150\",\n strokeDashoffset: 0\n },\n \"50%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-35\"\n },\n \"100%\": {\n strokeDasharray: \"90,150\",\n strokeDashoffset: \"-124\"\n }\n }\n});\n\nfunction Loading(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size;\n return React.createElement(\"span\", {\n style: {\n width: size,\n marginRight: \"0.2rem\"\n }\n }, React.createElement(\"svg\", {\n width: size,\n height: size,\n className: Spinner,\n viewBox: \"0 0 50 50\",\n style: {\n display: \"inline\",\n verticalAlign: \"middle\"\n }\n }, React.createElement(\"circle\", {\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n className: \"path\"\n })));\n}\n\n/**\r\n * A generic dropdown component. It takes the children of the component\r\n * and hosts it in the component. When the component is selected, it\r\n * drops-down the contentComponent and applies the contentProps.\r\n */\nvar PanelContainer = /*#__PURE__*/css({\n position: \"absolute\",\n zIndex: 1,\n top: \"100%\",\n width: \"100%\",\n paddingTop: \"8px\",\n \".panel-content\": {\n maxHeight: \"300px\",\n overflowY: \"auto\",\n borderRadius: \"var(--rmsc-radius)\",\n background: \"var(--rmsc-bg)\",\n boxShadow: \"0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 11px rgba(0, 0, 0, 0.1)\"\n }\n});\nvar DropdownContainer = /*#__PURE__*/css({\n position: \"relative\",\n outline: 0,\n backgroundColor: \"var(--rmsc-bg)\",\n border: \"1px solid var(--rmsc-border)\",\n borderRadius: \"var(--rmsc-radius)\",\n \"&:focus-within\": {\n boxShadow: \"var(--rmsc-main) 0 0 0 1px\",\n borderColor: \"var(--rmsc-main)\"\n }\n});\nvar DropdownHeading = /*#__PURE__*/css({\n position: \"relative\",\n padding: \"0 var(--rmsc-p)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"var(--rmsc-h)\",\n cursor: \"default\",\n outline: 0,\n \".dropdown-heading-value\": {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n flex: 1\n }\n});\nvar ClearSelectedButton = /*#__PURE__*/css({\n cursor: \"pointer\",\n background: \"none\",\n border: 0,\n padding: 0,\n display: \"flex\"\n});\n\nvar Dropdown = function Dropdown(_ref) {\n var children = _ref.children,\n ContentComponent = _ref.contentComponent,\n contentProps = _ref.contentProps,\n isLoading = _ref.isLoading,\n disabled = _ref.disabled,\n shouldToggleOnHover = _ref.shouldToggleOnHover,\n labelledBy = _ref.labelledBy,\n onMenuToggle = _ref.onMenuToggle,\n ArrowRenderer = _ref.ArrowRenderer,\n ClearSelectedIcon = _ref.ClearSelectedIcon,\n defaultIsOpen = _ref.defaultIsOpen,\n isOpen = _ref.isOpen;\n\n var _useState = useState(true),\n isInternalExpand = _useState[0],\n setIsInternalExpand = _useState[1];\n\n var _useState2 = useState(defaultIsOpen),\n expanded = _useState2[0],\n setExpanded = _useState2[1];\n\n var _useState3 = useState(false),\n hasFocus = _useState3[0],\n setHasFocus = _useState3[1];\n\n var FinalArrow = ArrowRenderer || Arrow;\n var wrapper = useRef();\n /* eslint-disable react-hooks/exhaustive-deps */\n\n useEffect(function () {\n onMenuToggle && onMenuToggle(expanded);\n }, [expanded]);\n useEffect(function () {\n if (defaultIsOpen === undefined && typeof isOpen === \"boolean\") {\n setIsInternalExpand(false);\n setExpanded(isOpen);\n }\n }, [isOpen]);\n\n var handleKeyDown = function handleKeyDown(e) {\n var _wrapper$current;\n\n if (isInternalExpand) {\n switch (e.which) {\n case 27: // Escape\n\n case 38:\n // Up Arrow\n setExpanded(false);\n wrapper == null ? void 0 : (_wrapper$current = wrapper.current) == null ? void 0 : _wrapper$current.focus();\n break;\n\n case 32: // Space\n\n case 13: // Enter Key\n\n case 40:\n // Down Arrow\n setExpanded(true);\n break;\n\n default:\n return;\n }\n }\n\n e.preventDefault();\n };\n\n var handleHover = function handleHover(iexpanded) {\n isInternalExpand && shouldToggleOnHover && setExpanded(iexpanded);\n };\n\n var handleFocus = function handleFocus() {\n return !hasFocus && setHasFocus(true);\n };\n\n var handleBlur = function handleBlur(e) {\n if (!e.currentTarget.contains(e.relatedTarget) && isInternalExpand) {\n setHasFocus(false);\n setExpanded(false);\n }\n };\n\n var handleMouseEnter = function handleMouseEnter() {\n return handleHover(true);\n };\n\n var handleMouseLeave = function handleMouseLeave() {\n return handleHover(false);\n };\n\n var toggleExpanded = function toggleExpanded() {\n isInternalExpand && setExpanded(isLoading || disabled ? false : !expanded);\n };\n\n var handleClearSelected = function handleClearSelected(e) {\n e.stopPropagation();\n contentProps[\"onChange\"]([]);\n isInternalExpand && setExpanded(false);\n };\n\n return React.createElement(\"div\", {\n tabIndex: 0,\n className: DropdownContainer + \" dropdown-container\",\n \"aria-labelledby\": labelledBy,\n \"aria-expanded\": expanded,\n \"aria-readonly\": true,\n \"aria-disabled\": disabled,\n ref: wrapper,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }, React.createElement(\"div\", {\n className: DropdownHeading + \" dropdown-heading\",\n onClick: toggleExpanded\n }, React.createElement(\"div\", {\n className: \"dropdown-heading-value\"\n }, children), isLoading && React.createElement(Loading, null), contentProps[\"value\"].length > 0 && React.createElement(\"button\", {\n type: \"button\",\n className: ClearSelectedButton + \" clear-selected-button\",\n onClick: handleClearSelected,\n \"aria-label\": getString(\"clearSelected\", contentProps[\"overrideStrings\"])\n }, ClearSelectedIcon || React.createElement(Cross, null)), React.createElement(FinalArrow, {\n expanded: expanded\n })), expanded && React.createElement(\"div\", {\n className: PanelContainer + \" dropdown-content\"\n }, React.createElement(\"div\", {\n className: \"panel-content\"\n }, React.createElement(ContentComponent, Object.assign({}, contentProps)))));\n};\n\nvar DropdownHeader = function DropdownHeader(_ref) {\n var value = _ref.value,\n options = _ref.options,\n valueRenderer = _ref.valueRenderer,\n overrideStrings = _ref.overrideStrings;\n var noneSelected = value.length === 0;\n var allSelected = value.length === options.length;\n var customText = valueRenderer && valueRenderer(value, options);\n\n var getSelectedText = function getSelectedText() {\n return value.map(function (s) {\n return s.label;\n }).join(\", \");\n };\n\n return noneSelected ? React.createElement(\"span\", {\n className: \"gray\"\n }, customText || getString(\"selectSomeItems\", overrideStrings)) : React.createElement(\"span\", null, customText || (allSelected ? getString(\"allItemsAreSelected\", overrideStrings) : getSelectedText()));\n};\n\nvar MultiSelectBox = /*#__PURE__*/css({\n \"--rmscMain\": \"#4285f4\",\n \"--rmscHover\": \"#f1f3f5\",\n \"--rmscSelected\": \"#e2e6ea\",\n \"--rmscBorder\": \"#ccc\",\n \"--rmscGray\": \"#aaa\",\n \"--rmscBg\": \"#fff\",\n \"--rmscP\": \"10px\",\n \"--rmscRadius\": \"4px\",\n \"--rmscH\": \"38px\",\n \"*\": {\n boxSizing: \"border-box\",\n transition: \"all 0.2s ease\"\n },\n \".gray\": {\n color: \"var(--rmsc-gray)\"\n }\n});\n\nvar MultiSelect = function MultiSelect(_ref) {\n var _ref$focusSearchOnOpe = _ref.focusSearchOnOpen,\n focusSearchOnOpen = _ref$focusSearchOnOpe === void 0 ? true : _ref$focusSearchOnOpe,\n _ref$hasSelectAll = _ref.hasSelectAll,\n hasSelectAll = _ref$hasSelectAll === void 0 ? true : _ref$hasSelectAll,\n shouldToggleOnHover = _ref.shouldToggleOnHover,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? \"multi-select\" : _ref$className,\n options = _ref.options,\n value = _ref.value,\n valueRenderer = _ref.valueRenderer,\n overrideStrings = _ref.overrideStrings,\n onChange = _ref.onChange,\n disabled = _ref.disabled,\n ItemRenderer = _ref.ItemRenderer,\n ArrowRenderer = _ref.ArrowRenderer,\n selectAllLabel = _ref.selectAllLabel,\n isLoading = _ref.isLoading,\n disableSearch = _ref.disableSearch,\n filterOptions = _ref.filterOptions,\n labelledBy = _ref.labelledBy,\n onMenuToggle = _ref.onMenuToggle,\n ClearIcon = _ref.ClearIcon,\n _ref$debounceDuration = _ref.debounceDuration,\n debounceDuration = _ref$debounceDuration === void 0 ? 300 : _ref$debounceDuration,\n ClearSelectedIcon = _ref.ClearSelectedIcon,\n defaultIsOpen = _ref.defaultIsOpen,\n isOpen = _ref.isOpen;\n var nvalue = value || [];\n return React.createElement(\"div\", {\n className: MultiSelectBox + \" \" + className\n }, React.createElement(Dropdown, {\n isLoading: isLoading,\n contentComponent: SelectPanel,\n shouldToggleOnHover: shouldToggleOnHover,\n contentProps: {\n ItemRenderer: ItemRenderer,\n options: options,\n value: nvalue,\n hasSelectAll: hasSelectAll,\n selectAllLabel: selectAllLabel,\n onChange: onChange,\n disabled: disabled,\n disableSearch: disableSearch,\n focusSearchOnOpen: focusSearchOnOpen,\n filterOptions: filterOptions,\n overrideStrings: overrideStrings,\n ClearIcon: ClearIcon,\n debounceDuration: debounceDuration\n },\n disabled: disabled,\n labelledBy: labelledBy,\n onMenuToggle: onMenuToggle,\n ArrowRenderer: ArrowRenderer,\n ClearSelectedIcon: ClearSelectedIcon,\n defaultIsOpen: defaultIsOpen,\n isOpen: isOpen\n }, React.createElement(DropdownHeader, {\n value: nvalue,\n options: options,\n valueRenderer: valueRenderer,\n overrideStrings: overrideStrings\n })));\n};\n\nexport default MultiSelect;\nexport { Dropdown, SelectItem, SelectPanel };\n//# sourceMappingURL=react-multi-select-component.esm.js.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { PanelBody, PanelRow, Slot } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { Fragment } from '@wordpress/element';\nimport { addFilter, applyFilters } from '@wordpress/hooks';\nimport { InspectorControls } from '@wordpress/blockEditor';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityRulesEnabled } from './content-visibility-rules-enabled';\nimport { ContentVisibilityDisplayedControl } from './content-visibility-displayed-control';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const contentVisibilityControls = createHigherOrderComponent((BlockEdit) => {\n\n return (props) => {\n\n if (!isValidBlockType(props.name) || !props.isSelected) {\n return <BlockEdit {...props} />;\n }\n\n // Add a class to the div contining the rules so we can show/hide them when they are enabled/disabled.\n // Normally this would be props.attributes.contentVisibilityRules for anything registered in core, or in JS. However, as it's\n // possible to register attributes in PHP _alone_ we need to look at props.block.attributes.contentVisibilityRules -- both\n // get updated when a block is updated.\n let showControls = (props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled) ? 'show-controls' : 'hide-controls';\n\n return (\n <Fragment>\n <BlockEdit {...props} />\n <InspectorControls>\n <PanelBody title={__('Visibility', 'content-visibility')} className=\"content-visibility-controls\" initialOpen={false}>\n\n <PanelRow className=\"content-visibility-rules-enabled\">\n <ContentVisibilityRulesEnabled props={props} />\n </PanelRow>\n\n <div className={showControls + \" content-visibility-controls-container\"}>\n <PanelRow className=\"content-visibility-displayed-control\">\n <ContentVisibilityDisplayedControl props={props} />\n </PanelRow>\n\n <Slot name=\"content-visibility-extra-controls\" fillProps={props} />\n </div>\n\n </PanelBody>\n </InspectorControls>\n </Fragment>\n );\n\n };\n}, 'contentVisibilityControls');\n\naddFilter('editor.BlockEdit', 'content-visibility/content-visibility-controls', contentVisibilityControls);\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesAttribute(settings) {\n\n // If this is a valid block\n if (isValidBlockType(settings.name)) {\n\n // Run the rules through a filter so we're able to add rules externally.\n let defaultRules = applyFilters('contentVisibility.defaultContentVisibilityRules', {\n contentVisibilityRulesEnabled: false,\n userAuthenticated: ''\n });\n\n // Use Lodash's assign to gracefully handle if attributes are undefined\n settings.attributes = assign(settings.attributes, {\n contentVisibilityRules: {\n type: 'object',\n default: defaultRules\n },\n });\n }\n\n return settings;\n\n}// end addContentVisibilityRulesAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesPropOnSave(extraProps, blockType, attributes) {\n\n // If the current block is valid, add our prop.\n if (isValidBlockType(blockType.name)) {\n extraProps.contentVisibilityRules = attributes.contentVisibilityRules;\n }\n\n return extraProps;\n\n}// end addContentVisibilityRulesPropOnSave()\n\naddFilter('blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesAttribute', addContentVisibilityRulesAttribute);\naddFilter('blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesPropOnSave', addContentVisibilityRulesPropOnSave);","import { Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport assign from 'lodash/assign';\n\nimport { ContentVisibilityShownHiddenControl } from './shown-or-hidden/content-visibility-shown-hidden-control';\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityDisplayedControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n\n if ( ! rulesEnabled ) {\n return (\n <Disabled>\n <ContentVisibilityShownHiddenControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilityShownHiddenControl props={ props } />\n );\n\n} );\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibility: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addBlockVisibilityPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibility = attributes.contentVisibility;\n\t}\n\n\treturn extraProps;\n\n}// end addBlockVisibilityPropOnSave()\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityAttribute', addContentVisibilityAttribute );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addBlockVisibilityPropOnSave', addBlockVisibilityPropOnSave );","import { ToggleControl } from '@wordpress/components';\nimport { withState, createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter, doAction } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\n\nimport assign from 'lodash/assign';\n\nimport isValidBlockType from '../helpers/is-valid-blocktype';\n\nexport const ContentVisibilityRulesEnabled = withState( {\n rulesEnabled: false,\n} )( ( { rulesEnabled, setState, props } ) => (\n <ToggleControl\n label={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ? __( 'Rules Enabled', 'content-visibility' ) : __( 'Rules Disabled', 'content-visibility' ) }\n checked={ props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled || rulesEnabled }\n onChange={ ( rulesEnabled ) => setState( ( state ) => {\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.contentVisibilityRulesEnabled = rulesEnabled;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.contentVisibilityRulesEnabled', 'content-visibility/onChange', rulesEnabled, props );\n\n // Sets the state\n return (\n { rulesEnabled: ! state.rulesEnabled }\n );\n } ) }\n />\n) );\n\n\n/**\n * Filters registered block settings, extending attributes with our custom data.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addContentVisibilityRulesEnabledAttribute( settings ) {\n\n\t// If this is a valid block\n\tif ( isValidBlockType( settings.name ) ) {\n\n\t\t// Use Lodash's assign to gracefully handle if attributes are undefined\n\t\tsettings.attributes = assign( settings.attributes, {\n\t\t\tcontentVisibilityRulesEnabled: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n\n}// end addContentVisibilityRulesEnabledAttribute()\n\n/**\n * Override props assigned to save component to inject our custom data.\n * This is only done if the component is a valid block type.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addContentVisibilityRulesEnabledPropOnSave( extraProps, blockType, attributes ) {\n\n\t// If the current block is valid, add our prop.\n\tif ( isValidBlockType( blockType.name ) ) {\n\t\textraProps.contentVisibilityRulesEnabled = attributes.contentVisibilityRulesEnabled;\n }\n\n\treturn extraProps;\n\n}// end addContentVisibilityRulesEnabledPropOnSave()\n\n/**\n * Add a custom class name to each block that has content visibility rules enabled.\n *\n * @param {Object} BlockListBlock The current block\n *\n * @return {Object} The block with a custom class name added if the block has rules enabled. The unmodified block otherwise.\n */\nconst withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {\n\n return ( props ) => {\n\n if ( ! props.attributes.contentVisibility || ! props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled ) {\n return <BlockListBlock {...props} />;\n }\n\n let iconClassName = 'content-visibility-rules-enabled-' + props.attributes.contentVisibility;\n\n return <BlockListBlock {...props} className={ iconClassName } />\n\n };\n}, 'withCustomClassName' );\n\naddFilter( 'blocks.registerBlockType', 'content-visibility/addContentVisibilityRulesEnabledAttribute', addContentVisibilityRulesEnabledAttribute, 999 );\naddFilter( 'blocks.getSaveContent.extraProps', 'content-visibility/addContentVisibilityRulesEnabledPropOnSave', addContentVisibilityRulesEnabledPropOnSave, 999 );\n\naddFilter( 'editor.BlockListBlock', 'content-visibility/add-class-name-for-blocks-with-rules', withCustomClassName, 999 );","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilityUserAuthenticationPanelBodyControl } from './user-authentication/user-authentication-panel-body-control';\n\n\nexport const ContentVisibilityUserAuthenticationControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled><ContentVisibilityUserAuthenticationPanelBodyControl props={ props } /></Disabled>\n );\n }\n\n return (\n <ContentVisibilityUserAuthenticationPanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilityUserAuthenticationControl> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilityUserAuthenticationControl component.\n */\nfunction BlockVisibilityUserAuthenitcationFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilityUserAuthenticationControl props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Add our component to the Slot provided by BlockVisibilityControls\nregisterPlugin( 'content-visibility-01-user-authentication-fill', { render: BlockVisibilityUserAuthenitcationFill } );\n","import MultiSelect from \"react-multi-select-component\";\nimport { withState } from '@wordpress/compose';\n\n/**\n * Reusable, accessible multi-select component which includes a fuzzy search, select all/none using the react-multi-select-component\n * by Harsh Zalavadiya : https://github.com/harshzalavadiya/react-multi-select-component#readme.\n *\n * I've expanded it slightly, by allowing the data passed in to accept an `icon` property which should be a WordPress Icon compnent.\n *\n * Requires passing in the onChange function to handle data saving. i.e. import this component and then use it like:\n *\n * ```\n * <ContentVisibilityMultiSelect data={ fruits } labelledBy=\"Select Page Type\" props={ props } onChange={ onChange } />\n * ```\n *\n * the `onChange` function can look like this:\n *\n * ```\n * const onChange = ( option ) => {\n * // Set the state and props.\n * setState( { option } );\n * props.setAttributes( {\n * contentVisibilityRules: {\n * ...props.attributes.contentVisibilityRules,\n * specialPage: {\n * ...props.attributes.contentVisibilityRules.specialPage,\n * pages: option\n * }\n * },\n * } );\n *\n * }\n * ```\n *\n * `data` should be an array of objects which contains label (string), a value (string) and an optional icon (WordPress Icon compnent)\n */\n\nexport const ContentVisibilityMultiSelect = withState( {\n option: [],\n} )( ( { option, setState, props, data, labelledBy, type } ) => {\n\n /**\n * onChange callback for the ContentVisibilityMultiSelect component. This handles setting the props and state for\n * this instance of the component.\n * \n * @param {array} option current value of what is selected.\n */\n const onChange = ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n props.setAttributes( {\n contentVisibilityRules: {\n ...props.attributes.contentVisibilityRules,\n specialPage: {\n ...props.attributes.contentVisibilityRules.specialPage,\n [type]: option\n }\n },\n } );\n\n };\n\n return (\n <div className=\"content-visibility-multi-select\">\n <MultiSelect\n options={ data }\n value={ props.attributes.contentVisibilityRules.specialPage[type] || option }\n onChange={ onChange }\n labelledBy={ labelledBy }\n ItemRenderer={ ( { checked, option, onClick, disabled, } ) => {\n return (\n <div className={`item-renderer content-visibility-multi-select-item ${disabled && \"disabled\"}`}>\n <input type=\"checkbox\" onChange={ onClick } checked={ checked } tabIndex={ -1 } disabled={ disabled } />\n <span>{option.icon || \"\"} {option.label}</span>\n </div>\n );\n } }\n // isOpen={ true }\n />\n </div>\n );\n\n} );","import { RadioControl, PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const ContentVisibilityShownHiddenControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Shown or Hidden', 'content-visibility-user-role' ) }\n initialOpen={ true }\n className=\"content-visibility-control-panel content-visibility-user-role-controls\"\n >\n <PanelRow>\n <RadioControl\n label={ __( \"When the rules below are true, this block will be: \", 'content-visibility' ) }\n help=\"\"\n selected={ props.attributes.contentVisibility || option }\n options={ [\n { label: __( 'Shown', 'content-visibility' ), value: 'shown' },\n { label: __( 'Hidden', 'content-visibility' ), value: 'hidden' },\n ] }\n onChange={ ( option ) => {\n\n setState( { option } );\n\n props.setAttributes( {\n contentVisibility: option,\n } );\n\n } }\n />\n </PanelRow>\n </PanelBody>\n );\n\n} );","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPages from '../../helpers/get-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'pages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Page', 'content-visibility' ),\n plural: __( 'Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"networking\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more pages from this list will mean that this block will only be ${props.attributes.contentVisibility} on those pages. If you want this block to be ${props.attributes.contentVisibility} on ALL pages, please use the 'Special Pages' option and select 'Any Page'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PagePageInserter;","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getPosts from '../../helpers/get-posts';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst PostPageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * Our data, passed from PHP and manipulated to be useful here in JS.\n */\n const data = getPosts();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'posts';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Post', 'content-visibility' ),\n plural: __( 'Posts', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"admin-post\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select specific posts', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Select Posts', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the posts upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ data } labelledBy=\"Select Page\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'Help', 'content-visibility' ) }</strong></p>\n <p>{ __( `Selecting one or more posts from this list will mean that this block will only be ${props.attributes.contentVisibility} on those posts. If you want this block to be ${props.attributes.contentVisibility} on ALL posts, please use the 'Special Pages' option and select 'Any Post'`, 'content-visibility' ) }</p>\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default PostPageInserter;","import { Fill, Disabled } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { registerPlugin } from '@wordpress/plugins';\nimport { ContentVisibilitySpecialPagePanelBodyControl } from './content-visibility-special-page-panel';\n\n\nexport const ContentVisibilitySpecialPageControls = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n let rulesEnabled = props.attributes.contentVisibilityRules.contentVisibilityRulesEnabled;\n let contentVisibility = props.attributes.hasOwnProperty( 'contentVisibility' );\n\n if ( ! rulesEnabled || ! contentVisibility ) {\n return (\n <Disabled>\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n </Disabled>\n );\n }\n\n return (\n <ContentVisibilitySpecialPagePanelBodyControl props={ props } />\n );\n\n} );\n\n/**\n * Render the <ContentVisibilitySpecialPageControls> component by adding\n * it to the block-visibility-extra-controls Fill.\n *\n * @return {Object} A Fill component wrapping the ContentVisibilitySpecialPageControls component.\n */\nfunction ContentVisibilitySpecialPageFill() {\n return (\n <Fill name=\"content-visibility-extra-controls\">\n {\n ( fillProps ) => {\n return (\n <ContentVisibilitySpecialPageControls props={ fillProps } />\n )\n }\n }\n </Fill>\n );\n\n}\n\n// Only load the Widgets-related controls on the widgets screen or we're local, due to Widgets Screen bug.\nif ( 'appearance_page_gutenberg-widgets' === ContentVisibility.screen || '1' === ContentVisibility.local ) {\n // Add our component to the Slot provided by BlockVisibilityControls\n registerPlugin( 'content-visibility-04-special-page-fill', { render: ContentVisibilitySpecialPageFill } );\n}\n","import { Button, Popover, Icon, HorizontalRule, IconButton } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport getSpecialPages from '../../helpers/get-special-pages';\nimport keepPopupOpen from '../../helpers/keep-popup-open';\nimport { __ } from '@wordpress/i18n';\n\nimport specialPagesInsertText from '../../helpers/special-page-insert-text';\nimport specialPagesInsertButtonClass from '../../helpers/special-pages-insert-button-class';\n\nimport { ContentVisibilityMultiSelect } from '../multiselect/content-visibility-multiselect';\n\nconst SpecialPagePageInserter = withState( {\n isVisible: false,\n} )( ( { isVisible, setState, props } ) => {\n\n /**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n */\n const specialPages = getSpecialPages();\n\n /**\n * This controls the key used where the data is stored.\n */\n const type = 'specialPages';\n\n /**\n * Helps with the content of the inserter button.\n */\n const niceName = {\n singular: __( 'Special Page', 'content-visibility' ),\n plural: __( 'Special Pages', 'content-visibility' ),\n }\n\n /**\n * Toggle the visible state. Detemines whether the popup is open or not.\n */\n const toggleVisible = () => {\n setState( ( state ) => ( { isVisible: ! state.isVisible } ) );\n };\n\n return (\n <div className=\"content-visibility-special-page-inserter\">\n <Icon icon=\"text-page\" iconSize=\"12\" />\n <Button isSecondary isSmall isLink onClick={ toggleVisible } className={ specialPagesInsertButtonClass( props, type ) }>\n { specialPagesInsertText( props, type, __( 'Select special pages', 'content-visibility' ), niceName ) }\n { isVisible && (\n <Popover position=\"middle left\" className=\"content-visibility-special-page-help-instructions-popover\" onClick={keepPopupOpen}>\n\n <h1>{ __( 'Insert Special Pages', 'content-visibility' ) }</h1>\n\n <p className=\"content-visibility-help-text\">{ __( 'Select the special pages upon which you would like this block to be ', 'content-visibility' ) + props.attributes.contentVisibility }</p>\n <ContentVisibilityMultiSelect data={ specialPages } labelledBy=\"Select Page Type\" props={ props } type={ type } />\n <p className=\"content-visibility-submit-special-pages-button-container\">\n <Button isPrimary className=\"content-visibility-submit-special-pages\" onClick={toggleVisible}>{ __( 'Set Selected', 'content-visibility' ) }</Button>\n </p>\n\n <HorizontalRule />\n\n <p><Icon icon=\"editor-help\" iconSize=\"12\" /> <strong>{ __( 'What are Special Pages?', 'content-visibility' ) }</strong></p>\n <p>{ __( 'By default, WordPress websites contain more than just the posts and pages you create here in the dashboard. Content Visibility allows you to display your blocks on any of the following types of pages that your theme can make available to your visitors. ', 'content-visibility-special-page' ) }</p>\n\n { specialPages.map( specialPage => (\n <p><span>{ specialPage.label }</span>: { specialPage.notes }</p>\n ) ) }\n\n <IconButton className=\"content-visibility-close-popover\" icon=\"no\" label={ __( 'Close', 'content-visibility' ) } onClick={ toggleVisible } />\n </Popover>\n ) }\n </Button>\n </div>\n );\n} );\n\nexport default SpecialPagePageInserter;","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { addFilter } from '@wordpress/hooks';\n\nimport SpecialPagePageInserter from './content-visibility-special-page-page-inserter';\nimport PagePageInserter from './content-visibility-page-page-inserter';\nimport PostPageInserter from './content-visibility-post-page-inserter';\n\nexport const ContentVisibilitySpecialPagePanelBodyControl = withState( {\n option: [],\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'Special Page', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel block-visibility-special-page-controls\"\n >\n\n <PanelRow className=\"content-visibility-page-inserter-panel-row\">\n <SpecialPagePageInserter props={ props } />\n <PagePageInserter props={ props } />\n <PostPageInserter props={ props } />\n </PanelRow>\n\n { props.attributes.contentVisibility && (\n <p className=\"special-page-help-intro content-visibility-help-text\">\n { __( 'Select the types of content upon which this block will be ' + props.attributes.contentVisibility + '.', 'content-visibility' ) }\n </p>\n ) }\n\n </PanelBody>\n );\n\n} );\n\n// Register our visibility rule in the main rules object.\naddFilter( 'contentVisibility.defaultContentVisibilityRules', 'content-visibility-special-page/block-visibility-rules', registerSpecialPageVisibilityRule );\n\nfunction registerSpecialPageVisibilityRule( defaultRules ) {\n\n defaultRules.specialPage = {\n pages: [],\n specialPages: [],\n posts: []\n };\n\n return defaultRules;\n\n}","import { RadioControl } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\nexport const ContentVisibilityUserAuthenticationRadioControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n\n <RadioControl\n label=''\n help=''\n className=\"content-visibility-user-authenticated-control\"\n selected={ props.attributes.contentVisibilityRules.userAuthenticated || option }\n options={ [\n { label: __( 'Signed Out', 'content-visibility' ), value: 'logged-out' },\n { label: __( 'Signed In', 'content-visibility' ), value: 'logged-in' },\n ] }\n onChange={ ( option ) => {\n\n // Set the state and props.\n setState( { option } );\n\n let newBVRules = { ...props.attributes.contentVisibilityRules };\n newBVRules.userAuthenticated = option;\n\n props.setAttributes( {\n contentVisibilityRules: newBVRules,\n } );\n\n // Fire an action so we can see what's happened in other controls. This can be useful,\n // for example when setting rules for roles - pointless if a user isn't signed in.\n doAction( 'contentVisibility.onChange.userAuthenticated', 'content-visibility/onChange', option, props );\n\n } }\n />\n\n );\n\n} );","import { PanelBody, PanelRow } from '@wordpress/components';\nimport { withState } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nimport { ContentVisibilityUserAuthenticationRadioControl } from './content-visibility-user-authentication-radio-control';\n\nexport const ContentVisibilityUserAuthenticationPanelBodyControl = withState( {\n option: '',\n} )( ( { option, setState, props } ) => {\n\n return (\n <PanelBody\n title={ __( 'User Authentication', 'content-visibility' ) }\n initialOpen={ false }\n className=\"content-visibility-control-panel content-visibility-user-authenticated-controls\"\n >\n <PanelRow>\n <ContentVisibilityUserAuthenticationRadioControl props={ props } />\n\n { props.attributes.contentVisibility && (\n <p className=\"user-auth-help-intro content-visibility-help-text\">\n { __( 'Select whether this block will be ' + props.attributes.contentVisibility + ' if a user is signed in to this site. If neither is selected, this block will be ' + props.attributes.contentVisibility + ' regardless of whether a user is signed in or not.', 'content-visibility-user-role' ) }\n </p>\n ) }\n\n </PanelRow>\n </PanelBody>\n );\n\n} );","// extracted by mini-css-extract-plugin","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the pages on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPages() {\n\n const pages = [];\n\n if ( ContentVisibility.pages.length === 0 ) {\n return [ {\n label: __( 'No pages found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const page in ContentVisibility.pages ) {\n \n pages.push( { \n label: ContentVisibility.pages[page].label,\n value: ContentVisibility.pages[page].id,\n notes: ContentVisibility.pages[page].notes\n } );\n \n }\n\n return pages;\n\n}// end getPages()\n\nexport default getPages;","import { __ } from '@wordpress/i18n';\n\n/**\n * PHP sends through a list of all the posts on the site (in any status). We massage that data to be\n * usable by our Dropdown.\n *\n */\nfunction getPosts() {\n\n const posts = [];\n\n if ( ContentVisibility.posts.length === 0 ) {\n return [ {\n label: __( 'No posts found.', 'content-visibility' ),\n value: 0,\n notes: '',\n } ]\n }\n\n for ( const post in ContentVisibility.posts ) {\n \n posts.push( { \n label: ContentVisibility.posts[post].label,\n value: ContentVisibility.posts[post].id,\n notes: ContentVisibility.posts[post].notes\n } );\n \n }\n\n return posts;\n\n}// end getPosts()\n\nexport default getPosts;","import { Icon } from '@wordpress/components';\n\n/**\n * A list of special pages, their associated title and icon are passed in from PHP as ContentVisibility.specialPages\n * We manipulate this associative PHP array (which in turn becomes a JS object) into something usable for our dropdown.\n *\n */\nfunction getSpecialPages() {\n\n const specialPages = [];\n\n for ( const specialPage in ContentVisibility.specialPages ) {\n \n specialPages.push( { \n label: ContentVisibility.specialPages[specialPage].label,\n value: ContentVisibility.specialPages[specialPage].keyValue,\n notes: ContentVisibility.specialPages[specialPage].notes,\n icon: <Icon size=\"12\" icon={ ContentVisibility.specialPages[ specialPage ].icon } /> \n } );\n \n }\n\n return specialPages;\n\n}// end getSpecialPages()\n\nexport default getSpecialPages;","/**\n * Is the passed element a child of an element that has a class of the passed parentClassName.\n * From: https://codepen.io/ross-angus/pen/eYJRmZR\n *\n * @param {object} element The name of the block.\n * @param {string} parentClassName the name of the class on the parent to check for.\n */\nfunction hasParentWithClass( element, classname ) {\n\n // SVGs are weird, man.\n if ( typeof element.className !== 'object' && element.className.split(' ').indexOf(classname) >= 0 ) {\n return true;\n } else if ( element.tagName !== 'HTML' ) { // If you've reached the body, you've gone too far\n return element.parentNode && hasParentWithClass( element.parentNode, classname );\n } else {\n return false;\n }\n\n}//end hasParentWithClass()\n\nexport default hasParentWithClass;","/**\n * Is the passed block name one which supports our custom field?\n *\n * @param {string} name The name of the block.\n */\nfunction isValidBlockType( name ) {\n\n const invalidBlockTypes = [\n 'something/unsupported',\n ];\n\n return ! invalidBlockTypes.includes( name );\n\n}// end isValidBlockType()\n\nexport default isValidBlockType;","import hasParentWithClass from './has-parent-with-class';\n\n/**\n * The Popup component closes if it loses focus by default. For us, we want to ensure it\n * stays open until someone intentially closes it via either setting the selected items,\n * pressing a close button, or clicking the button they initially used to open the popup.\n *\n * @param {event} event The click event.\n * @return null\n */\nconst keepPopupOpen = ( event ) => {\n\n if ( false === event ) {\n return;\n }\n\n // Determine if what has been clicked on is in the popover or not.\n let eTarget = event.target;\n\n if ( hasParentWithClass( eTarget, 'components-popover__content' ) ) {\n event.stopPropagation();\n }\n\n return;\n};\n\nexport default keepPopupOpen;","import { __ } from '@wordpress/i18n';\n\n/**\n * Determine the text for the button which opens the popup for the special pages inserter. By default, if there are\n * no special pages selected, it will be 'Select special pages'. However, if there are special pages set, it will\n * say how many.\n *\n * @param object props the props for this current iteration of the inserter.\n * @param string type the key in the object data store for specialPages\n * @param string defaultVal the original, default, text for the button (which is shown we no special pages are selected)\n * @param object niceName the text-friendly versions of the type of special page. i.e. \"Special Pages\" as opposed to 'special-page'.\n * object contains a singular and plural property.\n * @return string the text to be used for the button.\n */\nconst specialPagesInsertText = ( props, type, defaultVal, niceName ) => {\n \n // if nothing is set, return a prompt to select special pages.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return defaultVal;\n }\n\n let shownOrHidden = props.attributes.contentVisibility;\n let specialPages = props.attributes.contentVisibilityRules.specialPage[type]; \n let specialPagesCount = specialPages.length;\n\n let niceType = ( specialPagesCount === 1 ) ? niceName.singular : niceName.plural;\n\n let insertText = shownOrHidden + __( ' on ' ) + specialPagesCount + ' ' + niceType;\n\n return insertText;\n\n};\n\nexport default specialPagesInsertText;","/**\n * The class which is given to the button used to toggle the popover where people can select which content to select.\n * We add a 'has-items' class if someone has chosen at least one item.\n *\n * @return string\n */\nconst specialPagesInsertButtonClass = ( props, type ) => {\n\n // If we don't have any items selected, just basic class.\n if ( props.attributes.contentVisibilityRules.specialPage[type] === undefined || props.attributes.contentVisibilityRules.specialPage[type].length === 0 ) {\n return 'content-visibility-special-page-inserter-toggle';\n }\n\n // We have some items selected, so we have a couple classes.\n return 'content-visibility-special-page-inserter-toggle has-items';\n \n};\n\nexport default specialPagesInsertButtonClass;","import './editor.scss';\nimport './style.scss';\n\nimport contentVisibilityControls from './controls/content-visibility-controls.js';\nimport ContentVisibilityUserAuthenticationControl from './controls/content-visibility-user-authentication';\nimport ContentVisibilitySpecialPageControls from './controls/special-page/content-visibility-special-page-controls';","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"hooks\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"plugins\"]; }());","(function() { module.exports = window[\"React\"]; }());"],"sourceRoot":""} -
content-visibility/trunk/content-visibility.php
r2450785 r2471073 11 11 * Plugin Name: Content Visibility 12 12 * Plugin URI: https://richardtape.com/content-visibility/ 13 * Description: Decide when, where, and to whom your blocks are visible.14 * Version: 0.1. 613 * Description: Content Visibility allows you to decide when, where, and to whom your blocks are visible. 14 * Version: 0.1.7 15 15 * Author: Rich Tape 16 16 * Author URI: https://richardtape.com/ -
content-visibility/trunk/includes/content-visibility.php
r2443859 r2471073 37 37 $bv_public->init(); 38 38 39 add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\\wp_enqueue_scripts__load_public_css' ); 40 39 41 }//end plugins_loaded__bv_loader() 42 43 /** 44 * Load the public css file. 45 * 46 * @since 0.1.7 47 * @return void 48 */ 49 function wp_enqueue_scripts__load_public_css() { 50 51 /** 52 * Filter whether to load the public rules CSS file or not. 53 * 54 * At least as of right now, this file is literally for one line of CSS and theme authors may want to include it 55 * in their own theme to prevent loading a whole file just for one little rule. 56 * 57 * @since 0.1.7 58 * 59 * @param bool $load_public_css Should this file be loaded. Enqueued only if boolean true. 60 */ 61 $load_public_css = (bool) apply_filters( 'content_visibility_load_public_css', true ); 62 63 if ( true !== $load_public_css ) { 64 return; 65 } 66 67 wp_enqueue_style( 'content-visibility-public', plugins_url( 'includes/public/content-visibility-public.css', dirname( __FILE__ ) ) ); 68 69 }//end wp_enqueue_scripts__load_public_css() 70 71 /** 72 * An array of special pages; things like the 404, a search results page, a date archive etc. with their 73 * associated callback function which determines if the current page is of this type. 74 * 75 * @since 0.1.6 76 * @return array associative array containining a list of special pages. Keys are a slug for the special page. Values 77 * are an array containing a title, and a callback function to determine if the current page is this 78 * type of special page. 79 */ 80 function get_special_pages() { 81 82 /** 83 * Do we do a generic 'single' or do we be more specific? 84 * 85 * See: https://developer.wordpress.org/themes/basics/conditional-tags/ 86 */ 87 88 return array( 89 '404' => array( 90 'label' => __( '404 Error', 'content-visibility' ), 91 'notes' => __( 'The error page when someone goes to a URL that does not exist on your site.', 'content-visibility' ), 92 'callback' => array( 'is_404' ), 93 'icon' => 'no', 94 'keyValue' => '404', 95 ), 96 'search' => array( 97 'label' => __( 'Search Results', 'content-visibility' ), 98 'notes' => __( 'The page shown when someone searches something on your site.', 'content-visibility' ), 99 'callback' => array( 'is_search' ), 100 'icon' => 'search', 101 'keyValue' => 'search', 102 ), 103 'date' => array( 104 'label' => __( 'Date Archive', 'content-visibility' ), 105 'notes' => __( 'When someone looks at a time, day, week, month, or year listing of the posts on your site.', 'content-visibility' ), 106 'callback' => array( 'is_date' ), 107 'icon' => 'calendar-alt', 108 'keyValue' => 'date', 109 ), 110 'front-page' => array( 111 'label' => __( 'Front Page', 'content-visibility' ), 112 'notes' => __( 'When the front page of your site is being displayed, regardless of whether that is your blog (WordPress default) or a static page.', 'content-visibility' ), 113 'callback' => array( 'is_front_page' ), 114 'icon' => 'slides', 115 'keyValue' => 'front-page', 116 ), 117 'home' => array( 118 'label' => __( 'Blog Home Page', 'content-visibility' ), 119 'notes' => __( 'When the blog home page is being displayed. By default this is the home page in WordPress, but if you have your home page set to be a static page (settings > reading) then this will only be when your blog page is being shown.', 'content-visibility' ), 120 'callback' => array( 'is_home' ), 121 'icon' => 'admin-home', 122 'keyValue' => 'home', 123 ), 124 'page' => array( 125 'label' => __( 'Any Page', 'content-visibility' ), 126 'notes' => __( 'Any content that is a Page (not a post or custom post type)', 'content-visibility' ), 127 'callback' => array( 'is_page' ), 128 'icon' => 'admin-page', 129 'keyValue' => 'page', 130 ), 131 'post' => array( 132 'label' => __( 'Any Post', 'content-visibility' ), 133 'notes' => __( 'Any content that is a Post', 'content-visibility' ), 134 'callback' => array( 'is_singular', array( 'post' ) ), 135 'icon' => 'admin-post', 136 'keyValue' => 'post', 137 ), 138 'category' => array( 139 'label' => __( 'Category Archive', 'content-visibility' ), 140 'notes' => __( 'When someone looks at a list of posts that are in a certain category.', 'content-visibility' ), 141 'callback' => array( 'is_category' ), 142 'icon' => 'category', 143 'keyValue' => 'category', 144 ), 145 'tag' => array( 146 'label' => __( 'Tag Archive', 'content-visibility' ), 147 'notes' => __( 'When someone looks at a list of posts that are have a tag.', 'content-visibility' ), 148 'callback' => array( 'is_tag' ), 149 'icon' => 'tag', 150 'keyValue' => 'tag', 151 ), 152 ); 153 154 }//end get_special_pages() 155 156 /** 157 * An array of pages with their associated callback function which determines if the current page is of this type. 158 * 159 * @since 0.1.7 160 * @return array associative array containining a list of pages. Keys are the ID for the page. Values 161 * are an array containing a title, and a callback function to determine if the current page is this 162 * page. 163 */ 164 function get_pages() { 165 166 $pages_args = array( 167 'post_status' => array( 'pending', 'draft', 'future', 'publish' ), 168 ); 169 170 $pages_args = apply_filters( 'content_visibility_get_pages_args', $pages_args ); 171 172 $pages = \get_pages( $pages_args ); 173 174 if ( false === $pages || empty( $pages ) ) { 175 return array(); 176 } 177 178 $pages_data = array(); 179 180 foreach ( $pages as $id => $page ) { 181 182 $page_id = absint( $page->ID ); 183 $sanitized_title = sanitize_text_field( $page->post_title ); 184 185 $title = ( empty( $sanitized_title ) ) ? __( '[This page has no title]', 'content-visibility' ) : $sanitized_title; 186 187 $pages_data[ $page_id ] = array( 188 'label' => $title, 189 'id' => $page_id, 190 'callback' => array( 'is_page', array( $page_id ) ), 191 'notes' => '', 192 ); 193 } 194 195 return $pages_data; 196 197 }//end get_pages() 198 199 /** 200 * An array of posts with their associated callback function which determines if the current page is of this type. 201 * 202 * @since 0.1.7 203 * @return array associative array containining a list of posts. Keys are the ID for the post. Values 204 * are an array containing a title, and a callback function to determine if the current page is this 205 * page. 206 */ 207 function get_posts() { 208 209 $posts_args = array( 210 'post_status' => array( 'pending', 'draft', 'future', 'publish' ), 211 'numberposts' => -1, 212 ); 213 214 $posts_args = apply_filters( 'content_visibility_get_posts_args', $posts_args ); 215 216 $posts = \get_posts( $posts_args ); 217 218 if ( false === $posts || empty( $posts ) ) { 219 return array(); 220 } 221 222 $posts_data = array(); 223 224 foreach ( $posts as $id => $post ) { 225 226 $post_id = absint( $post->ID ); 227 $sanitized_title = sanitize_text_field( $post->post_title ); 228 229 $title = ( empty( $sanitized_title ) ) ? __( '[This post has no title]', 'content-visibility' ) : $sanitized_title; 230 231 $posts_data[ $post_id ] = array( 232 'label' => $title, 233 'id' => $post_id, 234 'callback' => array( 'is_post', array( $post_id ) ), 235 'notes' => '', 236 ); 237 } 238 239 return $posts_data; 240 241 }//end get_posts() -
content-visibility/trunk/includes/editor/class-editor.php
r2443982 r2471073 128 128 $content_visibility_args = array( 'screen' => esc_js( get_current_screen()->id ) ); 129 129 130 if ( defined( 'CV_LOCAL' ) && true === constant( 'CV_LOCAL' ) ) { 131 $content_visibility_args['local'] = true; 132 } 133 134 $content_visibility_args['specialPages'] = \RichardTape\ContentVisibility\get_special_pages(); 135 136 $content_visibility_args['pages'] = \RichardTape\ContentVisibility\get_pages(); 137 138 $content_visibility_args['posts'] = \RichardTape\ContentVisibility\get_posts(); 139 130 140 wp_localize_script( 'content-visibility', 'ContentVisibility', $content_visibility_args ); 131 141 … … 165 175 166 176 // Thing to note here: it is not trivial to fetch post types that are 100% going to be used by the 167 // block editor. This array contains a list of post types that canuse the block editor. But because168 // it's not 100% sure (we'd need to check for 'supports' => 'editor' ) we should still check that the169 // block editor is active on the edit screen.177 // block editor. This array contains a list of post types that COULD use the block editor. But because 178 // it's not 100% sure (we'd need to check for 'supports' => 'editor' which is the non-trivial part) we should 179 // still check that the block editor is active on the edit screen. 170 180 return $other_post_types; 171 181 -
content-visibility/trunk/includes/public/class-public-rules.php
r2443982 r2471073 53 53 add_filter( 'content_visibility_rule_types_and_callbacks', array( $this, 'add_user_authenticated_callback' ), 5, 1 ); 54 54 55 // Register our special pages callback. This is for the widgets screen, but should also apply to full site editing. 56 add_filter( 'content_visibility_rule_types_and_callbacks', array( $this, 'add_special_pages_callback' ), 5, 1 ); 57 55 58 /** 56 59 * Filter all of our registered rules and callbacks.. … … 87 90 88 91 }//end add_user_authenticated_callback() 92 93 94 /** 95 * Callback which adds our special pages function to the list of rules. 96 * 97 * @param array $rule_types_and_callbacks Existing rules and callbacks. 98 * 99 * @return array modified rule types and callbacks with ours added. 100 */ 101 public function add_special_pages_callback( $rule_types_and_callbacks ) { 102 103 require_once plugin_dir_path( __FILE__ ) . 'special-page/rule-logic-special-page.php'; 104 105 $rule_types_and_callbacks['specialPage'] = 'RichardTape\ContentVisibility\rule_logic_special_page'; 106 107 return $rule_types_and_callbacks; 108 109 }//end add_special_pages_callback() 89 110 90 111 /** -
content-visibility/trunk/readme.txt
r2450785 r2471073 4 4 Tags: block, content, visibility 5 5 Requires at least: 5.0 6 Tested up to: 5.6 7 Stable tag: 0.1. 66 Tested up to: 5.6.1 7 Stable tag: 0.1.7 8 8 Requires PHP: 7.0 9 9 License: GPLv2 or later … … 32 32 Do you use columns and put other blocks in them? Content Visibility allows you to control both the 'nested' blocks (such as a paragraph block in a column block) or the 'parent' block themselves (perhaps hide an entire column for users who aren't signed in?). Other examples of nested blocks are the Group Block or if you use an accordion or tabs block; all work! 33 33 34 ## Widgets 35 36 Since version 0.1.7 you are now able to control the visibility of your widgets. As long as you have version 9.9 or above of the [Gutenberg plugin](https://wordpress.org/plugins/gutenberg/) you are able to use content visibility on all of your widgets, just like you can with all of your blocks in the content editor. Limit display of your widgets on specific URLs on your site. Want to show a specific text block to only people who are signed in and ONLY on search results? You got it. 37 34 38 ## Coming Soon 35 39 36 40 - [ ] A way to set replacement content when a block is hidden 37 - [ ] Ensure this works with the new 'widgets' screen (controls appear but functionality is currently blocked by [this gutenberg bug](https://github.com/WordPress/gutenberg/issues/27173))38 41 - [ ] REST API exploration. Should be fine for non-authenticated requests, but need to dive deeper for auth'd requests 39 42 - [ ] Non-trivial dates. Think things like "Every Wednesday between 3pm and 4pm" or "First two weeks in November" 40 43 - [ ] Geolocation: Show this block only to users whose connection is in France 41 44 - [ ] Specific Users: Only show a block when a specific user is signed in 45 - [ ] Specific 3rd-party plugin integrations. Show a block when someone has purchased something from your WooCommerce store. Or when someone has submitted a specific Gravity Form. 42 46 - [ ] Do you have any feature requests? [Let me know!](https://github.com/richardtape/content-visibility/issues/new) 43 47 … … 50 54 = What's with the logo? = 51 55 52 It's a chameleon. A cool little creature which can change the way it appears - to make itself more or less visible. Seemed appropriate! 56 It's a chameleon. A cool little creature which can change the way it appears - to make itself more or less visible. Seemed appropriate! Also, your suspicions are correct; a designer, I am not. 53 57 54 58 = Got a question? = … … 60 64 61 65 == Changelog == 66 67 = 0.1.7 = 68 * Added content visibility to the block-editor based widgets screen currently only available with the Gutenberg plugin. Enables you to select which posts, pages, or special types of content (such as the 404 error, a search results page, a date archive etc.) where each widget will be shown or hidden. 62 69 63 70 = 0.1.6 =
Note: See TracChangeset
for help on using the changeset viewer.