wp/wp-includes/js/dist/customize-widgets.js
changeset 18 be944660c56a
child 19 3d72ae0968f4
equal deleted inserted replaced
17:34716fd837a4 18:be944660c56a
       
     1 this["wp"] = this["wp"] || {}; this["wp"]["customizeWidgets"] =
       
     2 /******/ (function(modules) { // webpackBootstrap
       
     3 /******/ 	// The module cache
       
     4 /******/ 	var installedModules = {};
       
     5 /******/
       
     6 /******/ 	// The require function
       
     7 /******/ 	function __webpack_require__(moduleId) {
       
     8 /******/
       
     9 /******/ 		// Check if module is in cache
       
    10 /******/ 		if(installedModules[moduleId]) {
       
    11 /******/ 			return installedModules[moduleId].exports;
       
    12 /******/ 		}
       
    13 /******/ 		// Create a new module (and put it into the cache)
       
    14 /******/ 		var module = installedModules[moduleId] = {
       
    15 /******/ 			i: moduleId,
       
    16 /******/ 			l: false,
       
    17 /******/ 			exports: {}
       
    18 /******/ 		};
       
    19 /******/
       
    20 /******/ 		// Execute the module function
       
    21 /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
       
    22 /******/
       
    23 /******/ 		// Flag the module as loaded
       
    24 /******/ 		module.l = true;
       
    25 /******/
       
    26 /******/ 		// Return the exports of the module
       
    27 /******/ 		return module.exports;
       
    28 /******/ 	}
       
    29 /******/
       
    30 /******/
       
    31 /******/ 	// expose the modules object (__webpack_modules__)
       
    32 /******/ 	__webpack_require__.m = modules;
       
    33 /******/
       
    34 /******/ 	// expose the module cache
       
    35 /******/ 	__webpack_require__.c = installedModules;
       
    36 /******/
       
    37 /******/ 	// define getter function for harmony exports
       
    38 /******/ 	__webpack_require__.d = function(exports, name, getter) {
       
    39 /******/ 		if(!__webpack_require__.o(exports, name)) {
       
    40 /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
       
    41 /******/ 		}
       
    42 /******/ 	};
       
    43 /******/
       
    44 /******/ 	// define __esModule on exports
       
    45 /******/ 	__webpack_require__.r = function(exports) {
       
    46 /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
       
    47 /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
       
    48 /******/ 		}
       
    49 /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
       
    50 /******/ 	};
       
    51 /******/
       
    52 /******/ 	// create a fake namespace object
       
    53 /******/ 	// mode & 1: value is a module id, require it
       
    54 /******/ 	// mode & 2: merge all properties of value into the ns
       
    55 /******/ 	// mode & 4: return value when already ns object
       
    56 /******/ 	// mode & 8|1: behave like require
       
    57 /******/ 	__webpack_require__.t = function(value, mode) {
       
    58 /******/ 		if(mode & 1) value = __webpack_require__(value);
       
    59 /******/ 		if(mode & 8) return value;
       
    60 /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
       
    61 /******/ 		var ns = Object.create(null);
       
    62 /******/ 		__webpack_require__.r(ns);
       
    63 /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
       
    64 /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
       
    65 /******/ 		return ns;
       
    66 /******/ 	};
       
    67 /******/
       
    68 /******/ 	// getDefaultExport function for compatibility with non-harmony modules
       
    69 /******/ 	__webpack_require__.n = function(module) {
       
    70 /******/ 		var getter = module && module.__esModule ?
       
    71 /******/ 			function getDefault() { return module['default']; } :
       
    72 /******/ 			function getModuleExports() { return module; };
       
    73 /******/ 		__webpack_require__.d(getter, 'a', getter);
       
    74 /******/ 		return getter;
       
    75 /******/ 	};
       
    76 /******/
       
    77 /******/ 	// Object.prototype.hasOwnProperty.call
       
    78 /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
       
    79 /******/
       
    80 /******/ 	// __webpack_public_path__
       
    81 /******/ 	__webpack_require__.p = "";
       
    82 /******/
       
    83 /******/
       
    84 /******/ 	// Load entry module and return exports
       
    85 /******/ 	return __webpack_require__(__webpack_require__.s = "9pbN");
       
    86 /******/ })
       
    87 /************************************************************************/
       
    88 /******/ ({
       
    89 
       
    90 /***/ "1CF3":
       
    91 /***/ (function(module, exports) {
       
    92 
       
    93 (function() { module.exports = window["wp"]["dom"]; }());
       
    94 
       
    95 /***/ }),
       
    96 
       
    97 /***/ "1ZqX":
       
    98 /***/ (function(module, exports) {
       
    99 
       
   100 (function() { module.exports = window["wp"]["data"]; }());
       
   101 
       
   102 /***/ }),
       
   103 
       
   104 /***/ "6aBm":
       
   105 /***/ (function(module, exports) {
       
   106 
       
   107 (function() { module.exports = window["wp"]["mediaUtils"]; }());
       
   108 
       
   109 /***/ }),
       
   110 
       
   111 /***/ "9pbN":
       
   112 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
   113 
       
   114 "use strict";
       
   115 // ESM COMPAT FLAG
       
   116 __webpack_require__.r(__webpack_exports__);
       
   117 
       
   118 // EXPORTS
       
   119 __webpack_require__.d(__webpack_exports__, "initialize", function() { return /* binding */ initialize; });
       
   120 
       
   121 // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js
       
   122 var selectors_namespaceObject = {};
       
   123 __webpack_require__.r(selectors_namespaceObject);
       
   124 __webpack_require__.d(selectors_namespaceObject, "__unstableIsFeatureActive", function() { return __unstableIsFeatureActive; });
       
   125 __webpack_require__.d(selectors_namespaceObject, "isInserterOpened", function() { return selectors_isInserterOpened; });
       
   126 __webpack_require__.d(selectors_namespaceObject, "__experimentalGetInsertionPoint", function() { return __experimentalGetInsertionPoint; });
       
   127 
       
   128 // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js
       
   129 var actions_namespaceObject = {};
       
   130 __webpack_require__.r(actions_namespaceObject);
       
   131 __webpack_require__.d(actions_namespaceObject, "__unstableToggleFeature", function() { return __unstableToggleFeature; });
       
   132 __webpack_require__.d(actions_namespaceObject, "setIsInserterOpened", function() { return actions_setIsInserterOpened; });
       
   133 
       
   134 // EXTERNAL MODULE: external ["wp","element"]
       
   135 var external_wp_element_ = __webpack_require__("GRId");
       
   136 
       
   137 // EXTERNAL MODULE: external ["wp","blockLibrary"]
       
   138 var external_wp_blockLibrary_ = __webpack_require__("QyPg");
       
   139 
       
   140 // EXTERNAL MODULE: external ["wp","widgets"]
       
   141 var external_wp_widgets_ = __webpack_require__("GLVC");
       
   142 
       
   143 // EXTERNAL MODULE: external ["wp","blocks"]
       
   144 var external_wp_blocks_ = __webpack_require__("HSyU");
       
   145 
       
   146 // EXTERNAL MODULE: external ["wp","components"]
       
   147 var external_wp_components_ = __webpack_require__("tI+e");
       
   148 
       
   149 // EXTERNAL MODULE: external ["wp","i18n"]
       
   150 var external_wp_i18n_ = __webpack_require__("l3Sj");
       
   151 
       
   152 // EXTERNAL MODULE: external ["wp","blockEditor"]
       
   153 var external_wp_blockEditor_ = __webpack_require__("axFQ");
       
   154 
       
   155 // EXTERNAL MODULE: external ["wp","compose"]
       
   156 var external_wp_compose_ = __webpack_require__("K9lf");
       
   157 
       
   158 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/error-boundary/index.js
       
   159 
       
   160 
       
   161 /**
       
   162  * WordPress dependencies
       
   163  */
       
   164 
       
   165 
       
   166 
       
   167 
       
   168 
       
   169 
       
   170 function CopyButton({
       
   171   text,
       
   172   children
       
   173 }) {
       
   174   const ref = Object(external_wp_compose_["useCopyToClipboard"])(text);
       
   175   return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
       
   176     variant: "secondary",
       
   177     ref: ref
       
   178   }, children);
       
   179 }
       
   180 
       
   181 class error_boundary_ErrorBoundary extends external_wp_element_["Component"] {
       
   182   constructor() {
       
   183     super(...arguments);
       
   184     this.state = {
       
   185       error: null
       
   186     };
       
   187   }
       
   188 
       
   189   componentDidCatch(error) {
       
   190     this.setState({
       
   191       error
       
   192     });
       
   193   }
       
   194 
       
   195   render() {
       
   196     const {
       
   197       error
       
   198     } = this.state;
       
   199 
       
   200     if (!error) {
       
   201       return this.props.children;
       
   202     }
       
   203 
       
   204     return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["Warning"], {
       
   205       className: "customize-widgets-error-boundary",
       
   206       actions: [Object(external_wp_element_["createElement"])(CopyButton, {
       
   207         key: "copy-error",
       
   208         text: error.stack
       
   209       }, Object(external_wp_i18n_["__"])('Copy Error'))]
       
   210     }, Object(external_wp_i18n_["__"])('The editor has encountered an unexpected error.'));
       
   211   }
       
   212 
       
   213 }
       
   214 
       
   215 // EXTERNAL MODULE: external "lodash"
       
   216 var external_lodash_ = __webpack_require__("YLtl");
       
   217 
       
   218 // EXTERNAL MODULE: external ["wp","coreData"]
       
   219 var external_wp_coreData_ = __webpack_require__("jZUy");
       
   220 
       
   221 // EXTERNAL MODULE: external ["wp","data"]
       
   222 var external_wp_data_ = __webpack_require__("1ZqX");
       
   223 
       
   224 // EXTERNAL MODULE: external ["wp","mediaUtils"]
       
   225 var external_wp_mediaUtils_ = __webpack_require__("6aBm");
       
   226 
       
   227 // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
       
   228 var esm_extends = __webpack_require__("wx14");
       
   229 
       
   230 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-inspector-button/index.js
       
   231 
       
   232 
       
   233 
       
   234 /**
       
   235  * WordPress dependencies
       
   236  */
       
   237 
       
   238 
       
   239 
       
   240 
       
   241 
       
   242 
       
   243 function BlockInspectorButton({
       
   244   inspector,
       
   245   closeMenu,
       
   246   ...props
       
   247 }) {
       
   248   const selectedBlockClientId = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).getSelectedBlockClientId(), []);
       
   249   const selectedBlock = Object(external_wp_element_["useMemo"])(() => document.getElementById(`block-${selectedBlockClientId}`), [selectedBlockClientId]);
       
   250   return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], Object(esm_extends["a" /* default */])({
       
   251     onClick: () => {
       
   252       // Open the inspector.
       
   253       inspector.open({
       
   254         returnFocusWhenClose: selectedBlock
       
   255       }); // Then close the dropdown menu.
       
   256 
       
   257       closeMenu();
       
   258     }
       
   259   }, props), Object(external_wp_i18n_["__"])('Show more settings'));
       
   260 }
       
   261 
       
   262 /* harmony default export */ var block_inspector_button = (BlockInspectorButton);
       
   263 
       
   264 // EXTERNAL MODULE: ./node_modules/classnames/index.js
       
   265 var classnames = __webpack_require__("TSYQ");
       
   266 var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
       
   267 
       
   268 // EXTERNAL MODULE: external ["wp","keycodes"]
       
   269 var external_wp_keycodes_ = __webpack_require__("RxS6");
       
   270 
       
   271 // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js
       
   272 var library_undo = __webpack_require__("Ntru");
       
   273 
       
   274 // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js
       
   275 var library_redo = __webpack_require__("K2cm");
       
   276 
       
   277 // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
       
   278 var plus = __webpack_require__("Q4Sy");
       
   279 
       
   280 // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
       
   281 var close_small = __webpack_require__("bWcr");
       
   282 
       
   283 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/defaults.js
       
   284 const PREFERENCES_DEFAULTS = {
       
   285   features: {
       
   286     fixedToolbar: false,
       
   287     welcomeGuide: true
       
   288   }
       
   289 };
       
   290 
       
   291 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/reducer.js
       
   292 /**
       
   293  * External dependencies
       
   294  */
       
   295 
       
   296 /**
       
   297  * WordPress dependencies
       
   298  */
       
   299 
       
   300 
       
   301 /**
       
   302  * Internal dependencies
       
   303  */
       
   304 
       
   305 
       
   306 /**
       
   307  * Higher-order reducer creator which provides the given initial state for the
       
   308  * original reducer.
       
   309  *
       
   310  * @param {*} initialState Initial state to provide to reducer.
       
   311  *
       
   312  * @return {Function} Higher-order reducer.
       
   313  */
       
   314 
       
   315 const createWithInitialState = initialState => reducer => {
       
   316   return (state = initialState, action) => reducer(state, action);
       
   317 };
       
   318 /**
       
   319  * Reducer tracking whether the inserter is open.
       
   320  *
       
   321  * @param {boolean|Object} state
       
   322  * @param {Object}         action
       
   323  */
       
   324 
       
   325 
       
   326 function blockInserterPanel(state = false, action) {
       
   327   switch (action.type) {
       
   328     case 'SET_IS_INSERTER_OPENED':
       
   329       return action.value;
       
   330   }
       
   331 
       
   332   return state;
       
   333 }
       
   334 /**
       
   335  * Reducer returning the user preferences.
       
   336  *
       
   337  * @param {Object}  state                           Current state.
       
   338  * @param {Object}  action                          Dispatched action.
       
   339  *
       
   340  * @return {Object} Updated state.
       
   341  */
       
   342 
       
   343 
       
   344 const preferences = Object(external_lodash_["flow"])([external_wp_data_["combineReducers"], createWithInitialState(PREFERENCES_DEFAULTS)])({
       
   345   features(state, action) {
       
   346     if (action.type === 'TOGGLE_FEATURE') {
       
   347       return { ...state,
       
   348         [action.feature]: !state[action.feature]
       
   349       };
       
   350     }
       
   351 
       
   352     return state;
       
   353   }
       
   354 
       
   355 });
       
   356 /* harmony default export */ var reducer = (Object(external_wp_data_["combineReducers"])({
       
   357   blockInserterPanel,
       
   358   preferences
       
   359 }));
       
   360 
       
   361 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js
       
   362 /**
       
   363  * External dependencies
       
   364  */
       
   365 
       
   366 /**
       
   367  * Returns whether the given feature is enabled or not.
       
   368  *
       
   369  * This function is unstable, as it is mostly copied from the edit-post
       
   370  * package. Editor features and preferences have a lot of scope for
       
   371  * being generalized and refactored.
       
   372  *
       
   373  * @param {Object} state   Global application state.
       
   374  * @param {string} feature Feature slug.
       
   375  *
       
   376  * @return {boolean} Is active.
       
   377  */
       
   378 
       
   379 function __unstableIsFeatureActive(state, feature) {
       
   380   return Object(external_lodash_["get"])(state.preferences.features, [feature], false);
       
   381 }
       
   382 /**
       
   383  * Returns true if the inserter is opened.
       
   384  *
       
   385  * @param {Object} state Global application state.
       
   386  *
       
   387  * @return {boolean} Whether the inserter is opened.
       
   388  */
       
   389 
       
   390 function selectors_isInserterOpened(state) {
       
   391   return !!state.blockInserterPanel;
       
   392 }
       
   393 /**
       
   394  * Get the insertion point for the inserter.
       
   395  *
       
   396  * @param {Object} state Global application state.
       
   397  *
       
   398  * @return {Object} The root client ID and index to insert at.
       
   399  */
       
   400 
       
   401 function __experimentalGetInsertionPoint(state) {
       
   402   const {
       
   403     rootClientId,
       
   404     insertionIndex
       
   405   } = state.blockInserterPanel;
       
   406   return {
       
   407     rootClientId,
       
   408     insertionIndex
       
   409   };
       
   410 }
       
   411 
       
   412 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js
       
   413 /**
       
   414  * Returns an action object used to toggle a feature flag.
       
   415  *
       
   416  * This function is unstable, as it is mostly copied from the edit-post
       
   417  * package. Editor features and preferences have a lot of scope for
       
   418  * being generalized and refactored.
       
   419  *
       
   420  * @param {string} feature Feature name.
       
   421  *
       
   422  * @return {Object} Action object.
       
   423  */
       
   424 function __unstableToggleFeature(feature) {
       
   425   return {
       
   426     type: 'TOGGLE_FEATURE',
       
   427     feature
       
   428   };
       
   429 }
       
   430 /**
       
   431  * Returns an action object used to open/close the inserter.
       
   432  *
       
   433  * @param {boolean|Object} value                Whether the inserter should be
       
   434  *                                              opened (true) or closed (false).
       
   435  *                                              To specify an insertion point,
       
   436  *                                              use an object.
       
   437  * @param {string}         value.rootClientId   The root client ID to insert at.
       
   438  * @param {number}         value.insertionIndex The index to insert at.
       
   439  *
       
   440  * @return {Object} Action object.
       
   441  */
       
   442 
       
   443 function actions_setIsInserterOpened(value) {
       
   444   return {
       
   445     type: 'SET_IS_INSERTER_OPENED',
       
   446     value
       
   447   };
       
   448 }
       
   449 
       
   450 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/constants.js
       
   451 /**
       
   452  * Module Constants
       
   453  */
       
   454 const STORE_NAME = 'core/customize-widgets';
       
   455 
       
   456 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/index.js
       
   457 /**
       
   458  * WordPress dependencies
       
   459  */
       
   460 
       
   461 /**
       
   462  * Internal dependencies
       
   463  */
       
   464 
       
   465 
       
   466 
       
   467 
       
   468 
       
   469 /**
       
   470  * Block editor data store configuration.
       
   471  *
       
   472  * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore
       
   473  *
       
   474  * @type {Object}
       
   475  */
       
   476 
       
   477 const storeConfig = {
       
   478   reducer: reducer,
       
   479   selectors: selectors_namespaceObject,
       
   480   actions: actions_namespaceObject,
       
   481   persist: ['preferences']
       
   482 };
       
   483 /**
       
   484  * Store definition for the edit widgets namespace.
       
   485  *
       
   486  * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
       
   487  *
       
   488  * @type {Object}
       
   489  */
       
   490 
       
   491 const store = Object(external_wp_data_["createReduxStore"])(STORE_NAME, storeConfig); // Once we build a more generic persistence plugin that works across types of stores
       
   492 // we'd be able to replace this with a register call.
       
   493 
       
   494 Object(external_wp_data_["registerStore"])(STORE_NAME, storeConfig);
       
   495 
       
   496 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/index.js
       
   497 
       
   498 
       
   499 /**
       
   500  * WordPress dependencies
       
   501  */
       
   502 
       
   503 
       
   504 
       
   505 
       
   506 
       
   507 
       
   508 /**
       
   509  * Internal dependencies
       
   510  */
       
   511 
       
   512 
       
   513 
       
   514 function Inserter({
       
   515   setIsOpened
       
   516 }) {
       
   517   const inserterTitleId = Object(external_wp_compose_["useInstanceId"])(Inserter, 'customize-widget-layout__inserter-panel-title');
       
   518   const insertionPoint = Object(external_wp_data_["useSelect"])(select => select(store).__experimentalGetInsertionPoint());
       
   519   return Object(external_wp_element_["createElement"])("div", {
       
   520     className: "customize-widgets-layout__inserter-panel",
       
   521     "aria-labelledby": inserterTitleId
       
   522   }, Object(external_wp_element_["createElement"])("div", {
       
   523     className: "customize-widgets-layout__inserter-panel-header"
       
   524   }, Object(external_wp_element_["createElement"])("h2", {
       
   525     id: inserterTitleId,
       
   526     className: "customize-widgets-layout__inserter-panel-header-title"
       
   527   }, Object(external_wp_i18n_["__"])('Add a block')), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
       
   528     className: "customize-widgets-layout__inserter-panel-header-close-button",
       
   529     icon: close_small["a" /* default */],
       
   530     onClick: () => setIsOpened(false),
       
   531     "aria-label": Object(external_wp_i18n_["__"])('Close inserter')
       
   532   })), Object(external_wp_element_["createElement"])("div", {
       
   533     className: "customize-widgets-layout__inserter-panel-content"
       
   534   }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalLibrary"], {
       
   535     rootClientId: insertionPoint.rootClientId,
       
   536     __experimentalInsertionIndex: insertionPoint.insertionIndex,
       
   537     showInserterHelpPanel: true,
       
   538     onSelect: () => setIsOpened(false)
       
   539   })));
       
   540 }
       
   541 
       
   542 /* harmony default export */ var components_inserter = (Inserter);
       
   543 
       
   544 // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
       
   545 var more_vertical = __webpack_require__("VKE3");
       
   546 
       
   547 // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js
       
   548 var external = __webpack_require__("K+tz");
       
   549 
       
   550 // EXTERNAL MODULE: external ["wp","keyboardShortcuts"]
       
   551 var external_wp_keyboardShortcuts_ = __webpack_require__("hF7m");
       
   552 
       
   553 // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
       
   554 var check = __webpack_require__("RMJe");
       
   555 
       
   556 // EXTERNAL MODULE: external ["wp","a11y"]
       
   557 var external_wp_a11y_ = __webpack_require__("gdqT");
       
   558 
       
   559 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/more-menu/feature-toggle.js
       
   560 
       
   561 
       
   562 /**
       
   563  * WordPress dependencies
       
   564  */
       
   565 
       
   566 
       
   567 
       
   568 
       
   569 
       
   570 /**
       
   571  * Internal dependencies
       
   572  */
       
   573 
       
   574 
       
   575 function FeatureToggle({
       
   576   label,
       
   577   info,
       
   578   messageActivated,
       
   579   messageDeactivated,
       
   580   shortcut,
       
   581   feature
       
   582 }) {
       
   583   const isActive = Object(external_wp_data_["useSelect"])(select => select(store).__unstableIsFeatureActive(feature), [feature]);
       
   584   const {
       
   585     __unstableToggleFeature: toggleFeature
       
   586   } = Object(external_wp_data_["useDispatch"])(store);
       
   587 
       
   588   const speakMessage = () => {
       
   589     if (isActive) {
       
   590       Object(external_wp_a11y_["speak"])(messageDeactivated || Object(external_wp_i18n_["__"])('Feature deactivated'));
       
   591     } else {
       
   592       Object(external_wp_a11y_["speak"])(messageActivated || Object(external_wp_i18n_["__"])('Feature activated'));
       
   593     }
       
   594   };
       
   595 
       
   596   return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
       
   597     icon: isActive && check["a" /* default */],
       
   598     isSelected: isActive,
       
   599     onClick: () => {
       
   600       toggleFeature(feature);
       
   601       speakMessage();
       
   602     },
       
   603     role: "menuitemcheckbox",
       
   604     info: info,
       
   605     shortcut: shortcut
       
   606   }, label);
       
   607 }
       
   608 
       
   609 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/config.js
       
   610 /**
       
   611  * WordPress dependencies
       
   612  */
       
   613 
       
   614 const textFormattingShortcuts = [{
       
   615   keyCombination: {
       
   616     modifier: 'primary',
       
   617     character: 'b'
       
   618   },
       
   619   description: Object(external_wp_i18n_["__"])('Make the selected text bold.')
       
   620 }, {
       
   621   keyCombination: {
       
   622     modifier: 'primary',
       
   623     character: 'i'
       
   624   },
       
   625   description: Object(external_wp_i18n_["__"])('Make the selected text italic.')
       
   626 }, {
       
   627   keyCombination: {
       
   628     modifier: 'primary',
       
   629     character: 'k'
       
   630   },
       
   631   description: Object(external_wp_i18n_["__"])('Convert the selected text into a link.')
       
   632 }, {
       
   633   keyCombination: {
       
   634     modifier: 'primaryShift',
       
   635     character: 'k'
       
   636   },
       
   637   description: Object(external_wp_i18n_["__"])('Remove a link.')
       
   638 }, {
       
   639   keyCombination: {
       
   640     modifier: 'primary',
       
   641     character: 'u'
       
   642   },
       
   643   description: Object(external_wp_i18n_["__"])('Underline the selected text.')
       
   644 }];
       
   645 
       
   646 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.js
       
   647 
       
   648 
       
   649 /**
       
   650  * External dependencies
       
   651  */
       
   652 
       
   653 /**
       
   654  * WordPress dependencies
       
   655  */
       
   656 
       
   657 
       
   658 
       
   659 
       
   660 function KeyCombination({
       
   661   keyCombination,
       
   662   forceAriaLabel
       
   663 }) {
       
   664   const shortcut = keyCombination.modifier ? external_wp_keycodes_["displayShortcutList"][keyCombination.modifier](keyCombination.character) : keyCombination.character;
       
   665   const ariaLabel = keyCombination.modifier ? external_wp_keycodes_["shortcutAriaLabel"][keyCombination.modifier](keyCombination.character) : keyCombination.character;
       
   666   return Object(external_wp_element_["createElement"])("kbd", {
       
   667     className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination",
       
   668     "aria-label": forceAriaLabel || ariaLabel
       
   669   }, Object(external_lodash_["castArray"])(shortcut).map((character, index) => {
       
   670     if (character === '+') {
       
   671       return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], {
       
   672         key: index
       
   673       }, character);
       
   674     }
       
   675 
       
   676     return Object(external_wp_element_["createElement"])("kbd", {
       
   677       key: index,
       
   678       className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key"
       
   679     }, character);
       
   680   }));
       
   681 }
       
   682 
       
   683 function Shortcut({
       
   684   description,
       
   685   keyCombination,
       
   686   aliases = [],
       
   687   ariaLabel
       
   688 }) {
       
   689   return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
       
   690     className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description"
       
   691   }, description), Object(external_wp_element_["createElement"])("div", {
       
   692     className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term"
       
   693   }, Object(external_wp_element_["createElement"])(KeyCombination, {
       
   694     keyCombination: keyCombination,
       
   695     forceAriaLabel: ariaLabel
       
   696   }), aliases.map((alias, index) => Object(external_wp_element_["createElement"])(KeyCombination, {
       
   697     keyCombination: alias,
       
   698     forceAriaLabel: ariaLabel,
       
   699     key: index
       
   700   }))));
       
   701 }
       
   702 
       
   703 /* harmony default export */ var keyboard_shortcut_help_modal_shortcut = (Shortcut);
       
   704 
       
   705 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js
       
   706 
       
   707 
       
   708 /**
       
   709  * WordPress dependencies
       
   710  */
       
   711 
       
   712 
       
   713 /**
       
   714  * Internal dependencies
       
   715  */
       
   716 
       
   717 
       
   718 
       
   719 function DynamicShortcut({
       
   720   name
       
   721 }) {
       
   722   const {
       
   723     keyCombination,
       
   724     description,
       
   725     aliases
       
   726   } = Object(external_wp_data_["useSelect"])(select => {
       
   727     const {
       
   728       getShortcutKeyCombination,
       
   729       getShortcutDescription,
       
   730       getShortcutAliases
       
   731     } = select(external_wp_keyboardShortcuts_["store"]);
       
   732     return {
       
   733       keyCombination: getShortcutKeyCombination(name),
       
   734       aliases: getShortcutAliases(name),
       
   735       description: getShortcutDescription(name)
       
   736     };
       
   737   });
       
   738 
       
   739   if (!keyCombination) {
       
   740     return null;
       
   741   }
       
   742 
       
   743   return Object(external_wp_element_["createElement"])(keyboard_shortcut_help_modal_shortcut, {
       
   744     keyCombination: keyCombination,
       
   745     description: description,
       
   746     aliases: aliases
       
   747   });
       
   748 }
       
   749 
       
   750 /* harmony default export */ var dynamic_shortcut = (DynamicShortcut);
       
   751 
       
   752 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.js
       
   753 
       
   754 
       
   755 /**
       
   756  * External dependencies
       
   757  */
       
   758 
       
   759 
       
   760 /**
       
   761  * WordPress dependencies
       
   762  */
       
   763 
       
   764 
       
   765 
       
   766 
       
   767 
       
   768 /**
       
   769  * Internal dependencies
       
   770  */
       
   771 
       
   772 
       
   773 
       
   774 
       
   775 
       
   776 const ShortcutList = ({
       
   777   shortcuts
       
   778 }) =>
       
   779 /*
       
   780  * Disable reason: The `list` ARIA role is redundant but
       
   781  * Safari+VoiceOver won't announce the list otherwise.
       
   782  */
       
   783 
       
   784 /* eslint-disable jsx-a11y/no-redundant-roles */
       
   785 Object(external_wp_element_["createElement"])("ul", {
       
   786   className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list",
       
   787   role: "list"
       
   788 }, shortcuts.map((shortcut, index) => Object(external_wp_element_["createElement"])("li", {
       
   789   className: "customize-widgets-keyboard-shortcut-help-modal__shortcut",
       
   790   key: index
       
   791 }, Object(external_lodash_["isString"])(shortcut) ? Object(external_wp_element_["createElement"])(dynamic_shortcut, {
       
   792   name: shortcut
       
   793 }) : Object(external_wp_element_["createElement"])(keyboard_shortcut_help_modal_shortcut, shortcut))))
       
   794 /* eslint-enable jsx-a11y/no-redundant-roles */
       
   795 ;
       
   796 
       
   797 const ShortcutSection = ({
       
   798   title,
       
   799   shortcuts,
       
   800   className
       
   801 }) => Object(external_wp_element_["createElement"])("section", {
       
   802   className: classnames_default()('customize-widgets-keyboard-shortcut-help-modal__section', className)
       
   803 }, !!title && Object(external_wp_element_["createElement"])("h2", {
       
   804   className: "customize-widgets-keyboard-shortcut-help-modal__section-title"
       
   805 }, title), Object(external_wp_element_["createElement"])(ShortcutList, {
       
   806   shortcuts: shortcuts
       
   807 }));
       
   808 
       
   809 const ShortcutCategorySection = ({
       
   810   title,
       
   811   categoryName,
       
   812   additionalShortcuts = []
       
   813 }) => {
       
   814   const categoryShortcuts = Object(external_wp_data_["useSelect"])(select => {
       
   815     return select(external_wp_keyboardShortcuts_["store"]).getCategoryShortcuts(categoryName);
       
   816   }, [categoryName]);
       
   817   return Object(external_wp_element_["createElement"])(ShortcutSection, {
       
   818     title: title,
       
   819     shortcuts: categoryShortcuts.concat(additionalShortcuts)
       
   820   });
       
   821 };
       
   822 
       
   823 function KeyboardShortcutHelpModal({
       
   824   isModalActive,
       
   825   toggleModal
       
   826 }) {
       
   827   const {
       
   828     registerShortcut
       
   829   } = Object(external_wp_data_["useDispatch"])(external_wp_keyboardShortcuts_["store"]);
       
   830   registerShortcut({
       
   831     name: 'core/customize-widgets/keyboard-shortcuts',
       
   832     category: 'main',
       
   833     description: Object(external_wp_i18n_["__"])('Display these keyboard shortcuts.'),
       
   834     keyCombination: {
       
   835       modifier: 'access',
       
   836       character: 'h'
       
   837     }
       
   838   });
       
   839   Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/keyboard-shortcuts', toggleModal, {
       
   840     bindGlobal: true
       
   841   });
       
   842 
       
   843   if (!isModalActive) {
       
   844     return null;
       
   845   }
       
   846 
       
   847   return Object(external_wp_element_["createElement"])(external_wp_components_["Modal"], {
       
   848     className: "customize-widgets-keyboard-shortcut-help-modal",
       
   849     title: Object(external_wp_i18n_["__"])('Keyboard shortcuts'),
       
   850     closeLabel: Object(external_wp_i18n_["__"])('Close'),
       
   851     onRequestClose: toggleModal
       
   852   }, Object(external_wp_element_["createElement"])(ShortcutSection, {
       
   853     className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
       
   854     shortcuts: ['core/customize-widgets/keyboard-shortcuts']
       
   855   }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
       
   856     title: Object(external_wp_i18n_["__"])('Global shortcuts'),
       
   857     categoryName: "global"
       
   858   }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
       
   859     title: Object(external_wp_i18n_["__"])('Selection shortcuts'),
       
   860     categoryName: "selection"
       
   861   }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
       
   862     title: Object(external_wp_i18n_["__"])('Block shortcuts'),
       
   863     categoryName: "block",
       
   864     additionalShortcuts: [{
       
   865       keyCombination: {
       
   866         character: '/'
       
   867       },
       
   868       description: Object(external_wp_i18n_["__"])('Change the block type after adding a new paragraph.'),
       
   869 
       
   870       /* translators: The forward-slash character. e.g. '/'. */
       
   871       ariaLabel: Object(external_wp_i18n_["__"])('Forward-slash')
       
   872     }]
       
   873   }), Object(external_wp_element_["createElement"])(ShortcutSection, {
       
   874     title: Object(external_wp_i18n_["__"])('Text formatting'),
       
   875     shortcuts: textFormattingShortcuts
       
   876   }));
       
   877 }
       
   878 
       
   879 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/more-menu/index.js
       
   880 
       
   881 
       
   882 /**
       
   883  * WordPress dependencies
       
   884  */
       
   885 
       
   886 
       
   887 
       
   888 
       
   889 
       
   890 
       
   891 /**
       
   892  * Internal dependencies
       
   893  */
       
   894 
       
   895 
       
   896 
       
   897 const POPOVER_PROPS = {
       
   898   className: 'customize-widgets-more-menu__content',
       
   899   position: 'bottom left'
       
   900 };
       
   901 const TOGGLE_PROPS = {
       
   902   tooltipPosition: 'bottom'
       
   903 };
       
   904 function MoreMenu() {
       
   905   const [isKeyboardShortcutsModalActive, setIsKeyboardShortcutsModalVisible] = Object(external_wp_element_["useState"])(false);
       
   906 
       
   907   const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive);
       
   908 
       
   909   Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/keyboard-shortcuts', toggleKeyboardShortcutsModal, {
       
   910     bindGlobal: true
       
   911   });
       
   912   return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarDropdownMenu"], {
       
   913     className: "customize-widgets-more-menu",
       
   914     icon: more_vertical["a" /* default */]
       
   915     /* translators: button label text should, if possible, be under 16 characters. */
       
   916     ,
       
   917     label: Object(external_wp_i18n_["__"])('Options'),
       
   918     popoverProps: POPOVER_PROPS,
       
   919     toggleProps: TOGGLE_PROPS
       
   920   }, () => Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
       
   921     label: Object(external_wp_i18n_["_x"])('View', 'noun')
       
   922   }, Object(external_wp_element_["createElement"])(FeatureToggle, {
       
   923     feature: "fixedToolbar",
       
   924     label: Object(external_wp_i18n_["__"])('Top toolbar'),
       
   925     info: Object(external_wp_i18n_["__"])('Access all block and document tools in a single place'),
       
   926     messageActivated: Object(external_wp_i18n_["__"])('Top toolbar activated'),
       
   927     messageDeactivated: Object(external_wp_i18n_["__"])('Top toolbar deactivated')
       
   928   })), Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
       
   929     label: Object(external_wp_i18n_["__"])('Tools')
       
   930   }, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
       
   931     onClick: () => {
       
   932       setIsKeyboardShortcutsModalVisible(true);
       
   933     },
       
   934     shortcut: external_wp_keycodes_["displayShortcut"].access('h')
       
   935   }, Object(external_wp_i18n_["__"])('Keyboard shortcuts')), Object(external_wp_element_["createElement"])(FeatureToggle, {
       
   936     feature: "welcomeGuide",
       
   937     label: Object(external_wp_i18n_["__"])('Welcome Guide')
       
   938   }), Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
       
   939     role: "menuitem",
       
   940     icon: external["a" /* default */],
       
   941     href: Object(external_wp_i18n_["__"])('https://wordpress.org/support/article/block-based-widgets-editor/'),
       
   942     target: "_blank",
       
   943     rel: "noopener noreferrer"
       
   944   }, Object(external_wp_i18n_["__"])('Help'), Object(external_wp_element_["createElement"])(external_wp_components_["VisuallyHidden"], {
       
   945     as: "span"
       
   946   },
       
   947   /* translators: accessibility text */
       
   948   Object(external_wp_i18n_["__"])('(opens in a new tab)')))), Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
       
   949     label: Object(external_wp_i18n_["__"])('Preferences')
       
   950   }, Object(external_wp_element_["createElement"])(FeatureToggle, {
       
   951     feature: "keepCaretInsideBlock",
       
   952     label: Object(external_wp_i18n_["__"])('Contain text cursor inside block'),
       
   953     info: Object(external_wp_i18n_["__"])('Aids screen readers by stopping text caret from leaving blocks.'),
       
   954     messageActivated: Object(external_wp_i18n_["__"])('Contain text cursor inside block activated'),
       
   955     messageDeactivated: Object(external_wp_i18n_["__"])('Contain text cursor inside block deactivated')
       
   956   })))), Object(external_wp_element_["createElement"])(KeyboardShortcutHelpModal, {
       
   957     isModalActive: isKeyboardShortcutsModalActive,
       
   958     toggleModal: toggleKeyboardShortcutsModal
       
   959   }));
       
   960 }
       
   961 
       
   962 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/header/index.js
       
   963 
       
   964 
       
   965 /**
       
   966  * External dependencies
       
   967  */
       
   968 
       
   969 /**
       
   970  * WordPress dependencies
       
   971  */
       
   972 
       
   973 
       
   974 
       
   975 
       
   976 
       
   977 
       
   978 
       
   979 /**
       
   980  * Internal dependencies
       
   981  */
       
   982 
       
   983 
       
   984 
       
   985 
       
   986 function Header({
       
   987   sidebar,
       
   988   inserter,
       
   989   isInserterOpened,
       
   990   setIsInserterOpened,
       
   991   isFixedToolbarActive
       
   992 }) {
       
   993   const [[hasUndo, hasRedo], setUndoRedo] = Object(external_wp_element_["useState"])([sidebar.hasUndo(), sidebar.hasRedo()]);
       
   994   Object(external_wp_element_["useEffect"])(() => {
       
   995     return sidebar.subscribeHistory(() => {
       
   996       setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]);
       
   997     });
       
   998   }, [sidebar]);
       
   999   return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
       
  1000     className: classnames_default()('customize-widgets-header', {
       
  1001       'is-fixed-toolbar-active': isFixedToolbarActive
       
  1002     })
       
  1003   }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["NavigableToolbar"], {
       
  1004     className: "customize-widgets-header-toolbar",
       
  1005     "aria-label": Object(external_wp_i18n_["__"])('Document tools')
       
  1006   }, Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
       
  1007     icon: !Object(external_wp_i18n_["isRTL"])() ? library_undo["a" /* default */] : library_redo["a" /* default */]
       
  1008     /* translators: button label text should, if possible, be under 16 characters. */
       
  1009     ,
       
  1010     label: Object(external_wp_i18n_["__"])('Undo'),
       
  1011     shortcut: external_wp_keycodes_["displayShortcut"].primary('z') // If there are no undo levels we don't want to actually disable this
       
  1012     // button, because it will remove focus for keyboard users.
       
  1013     // See: https://github.com/WordPress/gutenberg/issues/3486
       
  1014     ,
       
  1015     "aria-disabled": !hasUndo,
       
  1016     onClick: sidebar.undo,
       
  1017     className: "customize-widgets-editor-history-button undo-button"
       
  1018   }), Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
       
  1019     icon: !Object(external_wp_i18n_["isRTL"])() ? library_redo["a" /* default */] : library_undo["a" /* default */]
       
  1020     /* translators: button label text should, if possible, be under 16 characters. */
       
  1021     ,
       
  1022     label: Object(external_wp_i18n_["__"])('Redo'),
       
  1023     shortcut: external_wp_keycodes_["displayShortcut"].primaryShift('z') // If there are no undo levels we don't want to actually disable this
       
  1024     // button, because it will remove focus for keyboard users.
       
  1025     // See: https://github.com/WordPress/gutenberg/issues/3486
       
  1026     ,
       
  1027     "aria-disabled": !hasRedo,
       
  1028     onClick: sidebar.redo,
       
  1029     className: "customize-widgets-editor-history-button redo-button"
       
  1030   }), Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
       
  1031     className: "customize-widgets-header-toolbar__inserter-toggle",
       
  1032     isPressed: isInserterOpened,
       
  1033     isPrimary: true,
       
  1034     icon: plus["a" /* default */],
       
  1035     label: Object(external_wp_i18n_["_x"])('Add block', 'Generic label for block inserter button'),
       
  1036     onClick: () => {
       
  1037       setIsInserterOpened(isOpen => !isOpen);
       
  1038     }
       
  1039   }), Object(external_wp_element_["createElement"])(MoreMenu, null))), Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])(components_inserter, {
       
  1040     setIsOpened: setIsInserterOpened
       
  1041   }), inserter.contentContainer[0]));
       
  1042 }
       
  1043 
       
  1044 /* harmony default export */ var header = (Header);
       
  1045 
       
  1046 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/use-inserter.js
       
  1047 /**
       
  1048  * WordPress dependencies
       
  1049  */
       
  1050 
       
  1051 
       
  1052 /**
       
  1053  * Internal dependencies
       
  1054  */
       
  1055 
       
  1056 
       
  1057 function useInserter(inserter) {
       
  1058   const isInserterOpened = Object(external_wp_data_["useSelect"])(select => select(store).isInserterOpened());
       
  1059   const {
       
  1060     setIsInserterOpened
       
  1061   } = Object(external_wp_data_["useDispatch"])(store);
       
  1062   Object(external_wp_element_["useEffect"])(() => {
       
  1063     if (isInserterOpened) {
       
  1064       inserter.open();
       
  1065     } else {
       
  1066       inserter.close();
       
  1067     }
       
  1068   }, [inserter, isInserterOpened]);
       
  1069   return [isInserterOpened, Object(external_wp_element_["useCallback"])(updater => {
       
  1070     let isOpen = updater;
       
  1071 
       
  1072     if (typeof updater === 'function') {
       
  1073       isOpen = updater(Object(external_wp_data_["select"])(store).isInserterOpened());
       
  1074     }
       
  1075 
       
  1076     setIsInserterOpened(isOpen);
       
  1077   }, [setIsInserterOpened])];
       
  1078 }
       
  1079 
       
  1080 // EXTERNAL MODULE: external ["wp","isShallowEqual"]
       
  1081 var external_wp_isShallowEqual_ = __webpack_require__("rl8x");
       
  1082 var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_);
       
  1083 
       
  1084 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/utils.js
       
  1085 // @ts-check
       
  1086 
       
  1087 /**
       
  1088  * WordPress dependencies
       
  1089  */
       
  1090 
       
  1091 
       
  1092 /**
       
  1093  * External dependencies
       
  1094  */
       
  1095 
       
  1096 
       
  1097 /**
       
  1098  * Convert settingId to widgetId.
       
  1099  *
       
  1100  * @param {string} settingId The setting id.
       
  1101  * @return {string} The widget id.
       
  1102  */
       
  1103 
       
  1104 function settingIdToWidgetId(settingId) {
       
  1105   const matches = settingId.match(/^widget_(.+)(?:\[(\d+)\])$/);
       
  1106 
       
  1107   if (matches) {
       
  1108     const idBase = matches[1];
       
  1109     const number = parseInt(matches[2], 10);
       
  1110     return `${idBase}-${number}`;
       
  1111   }
       
  1112 
       
  1113   return settingId;
       
  1114 }
       
  1115 /**
       
  1116  * Transform a block to a customizable widget.
       
  1117  *
       
  1118  * @param {WPBlock} block          The block to be transformed from.
       
  1119  * @param {Object}  existingWidget The widget to be extended from.
       
  1120  * @return {Object} The transformed widget.
       
  1121  */
       
  1122 
       
  1123 function blockToWidget(block, existingWidget = null) {
       
  1124   let widget;
       
  1125   const isValidLegacyWidgetBlock = block.name === 'core/legacy-widget' && (block.attributes.id || block.attributes.instance);
       
  1126 
       
  1127   if (isValidLegacyWidgetBlock) {
       
  1128     if (block.attributes.id) {
       
  1129       // Widget that does not extend WP_Widget.
       
  1130       widget = {
       
  1131         id: block.attributes.id
       
  1132       };
       
  1133     } else {
       
  1134       const {
       
  1135         encoded,
       
  1136         hash,
       
  1137         raw,
       
  1138         ...rest
       
  1139       } = block.attributes.instance; // Widget that extends WP_Widget.
       
  1140 
       
  1141       widget = {
       
  1142         idBase: block.attributes.idBase,
       
  1143         instance: { ...(existingWidget === null || existingWidget === void 0 ? void 0 : existingWidget.instance),
       
  1144           // Required only for the customizer.
       
  1145           is_widget_customizer_js_value: true,
       
  1146           encoded_serialized_instance: encoded,
       
  1147           instance_hash_key: hash,
       
  1148           raw_instance: raw,
       
  1149           ...rest
       
  1150         }
       
  1151       };
       
  1152     }
       
  1153   } else {
       
  1154     const instance = {
       
  1155       content: Object(external_wp_blocks_["serialize"])(block)
       
  1156     };
       
  1157     widget = {
       
  1158       idBase: 'block',
       
  1159       widgetClass: 'WP_Widget_Block',
       
  1160       instance: {
       
  1161         raw_instance: instance
       
  1162       }
       
  1163     };
       
  1164   }
       
  1165 
       
  1166   return { ...Object(external_lodash_["omit"])(existingWidget, ['form', 'rendered']),
       
  1167     ...widget
       
  1168   };
       
  1169 }
       
  1170 /**
       
  1171  * Transform a widget to a block.
       
  1172  *
       
  1173  * @param {Object} widget          The widget to be transformed from.
       
  1174  * @param {string} widget.id       The widget id.
       
  1175  * @param {string} widget.idBase   The id base of the widget.
       
  1176  * @param {number} widget.number   The number/index of the widget.
       
  1177  * @param {Object} widget.instance The instance of the widget.
       
  1178  * @return {WPBlock} The transformed block.
       
  1179  */
       
  1180 
       
  1181 function widgetToBlock({
       
  1182   id,
       
  1183   idBase,
       
  1184   number,
       
  1185   instance
       
  1186 }) {
       
  1187   let block;
       
  1188   const {
       
  1189     encoded_serialized_instance: encoded,
       
  1190     instance_hash_key: hash,
       
  1191     raw_instance: raw,
       
  1192     ...rest
       
  1193   } = instance;
       
  1194 
       
  1195   if (idBase === 'block') {
       
  1196     const parsedBlocks = Object(external_wp_blocks_["parse"])(raw.content);
       
  1197     block = parsedBlocks.length ? parsedBlocks[0] : Object(external_wp_blocks_["createBlock"])('core/paragraph', {});
       
  1198   } else if (number) {
       
  1199     // Widget that extends WP_Widget.
       
  1200     block = Object(external_wp_blocks_["createBlock"])('core/legacy-widget', {
       
  1201       idBase,
       
  1202       instance: {
       
  1203         encoded,
       
  1204         hash,
       
  1205         raw,
       
  1206         ...rest
       
  1207       }
       
  1208     });
       
  1209   } else {
       
  1210     // Widget that does not extend WP_Widget.
       
  1211     block = Object(external_wp_blocks_["createBlock"])('core/legacy-widget', {
       
  1212       id
       
  1213     });
       
  1214   }
       
  1215 
       
  1216   return Object(external_wp_widgets_["addWidgetIdToBlock"])(block, id);
       
  1217 }
       
  1218 
       
  1219 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js
       
  1220 /**
       
  1221  * External dependencies
       
  1222  */
       
  1223 
       
  1224 /**
       
  1225  * WordPress dependencies
       
  1226  */
       
  1227 
       
  1228 
       
  1229 
       
  1230 
       
  1231 /**
       
  1232  * Internal dependencies
       
  1233  */
       
  1234 
       
  1235 
       
  1236 
       
  1237 function widgetsToBlocks(widgets) {
       
  1238   return widgets.map(widget => widgetToBlock(widget));
       
  1239 }
       
  1240 
       
  1241 function useSidebarBlockEditor(sidebar) {
       
  1242   const [blocks, setBlocks] = Object(external_wp_element_["useState"])(() => widgetsToBlocks(sidebar.getWidgets()));
       
  1243   Object(external_wp_element_["useEffect"])(() => {
       
  1244     return sidebar.subscribe((prevWidgets, nextWidgets) => {
       
  1245       setBlocks(prevBlocks => {
       
  1246         const prevWidgetsMap = new Map(prevWidgets.map(widget => [widget.id, widget]));
       
  1247         const prevBlocksMap = new Map(prevBlocks.map(block => [Object(external_wp_widgets_["getWidgetIdFromBlock"])(block), block]));
       
  1248         const nextBlocks = nextWidgets.map(nextWidget => {
       
  1249           const prevWidget = prevWidgetsMap.get(nextWidget.id); // Bail out updates.
       
  1250 
       
  1251           if (prevWidget && prevWidget === nextWidget) {
       
  1252             return prevBlocksMap.get(nextWidget.id);
       
  1253           }
       
  1254 
       
  1255           return widgetToBlock(nextWidget);
       
  1256         }); // Bail out updates.
       
  1257 
       
  1258         if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) {
       
  1259           return prevBlocks;
       
  1260         }
       
  1261 
       
  1262         return nextBlocks;
       
  1263       });
       
  1264     });
       
  1265   }, [sidebar]);
       
  1266   const onChangeBlocks = Object(external_wp_element_["useCallback"])(nextBlocks => {
       
  1267     setBlocks(prevBlocks => {
       
  1268       if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) {
       
  1269         return prevBlocks;
       
  1270       }
       
  1271 
       
  1272       const prevBlocksMap = new Map(prevBlocks.map(block => [Object(external_wp_widgets_["getWidgetIdFromBlock"])(block), block]));
       
  1273       const nextWidgets = nextBlocks.map(nextBlock => {
       
  1274         const widgetId = Object(external_wp_widgets_["getWidgetIdFromBlock"])(nextBlock); // Update existing widgets.
       
  1275 
       
  1276         if (widgetId && prevBlocksMap.has(widgetId)) {
       
  1277           const prevBlock = prevBlocksMap.get(widgetId);
       
  1278           const prevWidget = sidebar.getWidget(widgetId); // Bail out updates by returning the previous widgets.
       
  1279           // Deep equality is necessary until the block editor's internals changes.
       
  1280 
       
  1281           if (Object(external_lodash_["isEqual"])(nextBlock, prevBlock) && prevWidget) {
       
  1282             return prevWidget;
       
  1283           }
       
  1284 
       
  1285           return blockToWidget(nextBlock, prevWidget);
       
  1286         } // Add a new widget.
       
  1287 
       
  1288 
       
  1289         return blockToWidget(nextBlock);
       
  1290       }); // Bail out updates if the updated widgets are the same.
       
  1291 
       
  1292       if (external_wp_isShallowEqual_default()(sidebar.getWidgets(), nextWidgets)) {
       
  1293         return prevBlocks;
       
  1294       }
       
  1295 
       
  1296       const addedWidgetIds = sidebar.setWidgets(nextWidgets);
       
  1297       return nextBlocks.reduce((updatedNextBlocks, nextBlock, index) => {
       
  1298         const addedWidgetId = addedWidgetIds[index];
       
  1299 
       
  1300         if (addedWidgetId !== null) {
       
  1301           // Only create a new instance if necessary to prevent
       
  1302           // the whole editor from re-rendering on every edit.
       
  1303           if (updatedNextBlocks === nextBlocks) {
       
  1304             updatedNextBlocks = nextBlocks.slice();
       
  1305           }
       
  1306 
       
  1307           updatedNextBlocks[index] = Object(external_wp_widgets_["addWidgetIdToBlock"])(nextBlock, addedWidgetId);
       
  1308         }
       
  1309 
       
  1310         return updatedNextBlocks;
       
  1311       }, nextBlocks);
       
  1312     });
       
  1313   }, [sidebar]);
       
  1314   return [blocks, onChangeBlocks, onChangeBlocks];
       
  1315 }
       
  1316 
       
  1317 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/index.js
       
  1318 
       
  1319 
       
  1320 /**
       
  1321  * WordPress dependencies
       
  1322  */
       
  1323 
       
  1324 /**
       
  1325  * Internal dependencies
       
  1326  */
       
  1327 
       
  1328 
       
  1329 const FocusControlContext = Object(external_wp_element_["createContext"])();
       
  1330 function FocusControl({
       
  1331   api,
       
  1332   sidebarControls,
       
  1333   children
       
  1334 }) {
       
  1335   const [focusedWidgetIdRef, setFocusedWidgetIdRef] = Object(external_wp_element_["useState"])({
       
  1336     current: null
       
  1337   });
       
  1338   const focusWidget = Object(external_wp_element_["useCallback"])(widgetId => {
       
  1339     for (const sidebarControl of sidebarControls) {
       
  1340       const widgets = sidebarControl.setting.get();
       
  1341 
       
  1342       if (widgets.includes(widgetId)) {
       
  1343         sidebarControl.sectionInstance.expand({
       
  1344           // Schedule it after the complete callback so that
       
  1345           // it won't be overridden by the "Back" button focus.
       
  1346           completeCallback() {
       
  1347             // Create a "ref-like" object every time to ensure
       
  1348             // the same widget id can also triggers the focus control.
       
  1349             setFocusedWidgetIdRef({
       
  1350               current: widgetId
       
  1351             });
       
  1352           }
       
  1353 
       
  1354         });
       
  1355         break;
       
  1356       }
       
  1357     }
       
  1358   }, [sidebarControls]);
       
  1359   Object(external_wp_element_["useEffect"])(() => {
       
  1360     function handleFocus(settingId) {
       
  1361       const widgetId = settingIdToWidgetId(settingId);
       
  1362       focusWidget(widgetId);
       
  1363     }
       
  1364 
       
  1365     function handleReady() {
       
  1366       api.previewer.preview.bind('focus-control-for-setting', handleFocus);
       
  1367     }
       
  1368 
       
  1369     api.previewer.bind('ready', handleReady);
       
  1370     return () => {
       
  1371       api.previewer.unbind('ready', handleReady);
       
  1372       api.previewer.preview.unbind('focus-control-for-setting', handleFocus);
       
  1373     };
       
  1374   }, [api, focusWidget]);
       
  1375   const context = Object(external_wp_element_["useMemo"])(() => [focusedWidgetIdRef, focusWidget], [focusedWidgetIdRef, focusWidget]);
       
  1376   return Object(external_wp_element_["createElement"])(FocusControlContext.Provider, {
       
  1377     value: context
       
  1378   }, children);
       
  1379 }
       
  1380 const useFocusControl = () => Object(external_wp_element_["useContext"])(FocusControlContext);
       
  1381 
       
  1382 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.js
       
  1383 /**
       
  1384  * WordPress dependencies
       
  1385  */
       
  1386 
       
  1387 
       
  1388 
       
  1389 
       
  1390 /**
       
  1391  * Internal dependencies
       
  1392  */
       
  1393 
       
  1394 
       
  1395 function useBlocksFocusControl(blocks) {
       
  1396   const {
       
  1397     selectBlock
       
  1398   } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
       
  1399   const [focusedWidgetIdRef] = useFocusControl();
       
  1400   const blocksRef = Object(external_wp_element_["useRef"])(blocks);
       
  1401   Object(external_wp_element_["useEffect"])(() => {
       
  1402     blocksRef.current = blocks;
       
  1403   }, [blocks]);
       
  1404   Object(external_wp_element_["useEffect"])(() => {
       
  1405     if (focusedWidgetIdRef.current) {
       
  1406       const focusedBlock = blocksRef.current.find(block => Object(external_wp_widgets_["getWidgetIdFromBlock"])(block) === focusedWidgetIdRef.current);
       
  1407 
       
  1408       if (focusedBlock) {
       
  1409         selectBlock(focusedBlock.clientId); // If the block is already being selected, the DOM node won't
       
  1410         // get focused again automatically.
       
  1411         // We select the DOM and focus it manually here.
       
  1412 
       
  1413         const blockNode = document.querySelector(`[data-block="${focusedBlock.clientId}"]`);
       
  1414         blockNode === null || blockNode === void 0 ? void 0 : blockNode.focus();
       
  1415       }
       
  1416     }
       
  1417   }, [focusedWidgetIdRef, selectBlock]);
       
  1418 }
       
  1419 
       
  1420 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.js
       
  1421 
       
  1422 
       
  1423 /**
       
  1424  * WordPress dependencies
       
  1425  */
       
  1426 
       
  1427 /**
       
  1428  * Internal dependencies
       
  1429  */
       
  1430 
       
  1431 
       
  1432 
       
  1433 function SidebarEditorProvider({
       
  1434   sidebar,
       
  1435   settings,
       
  1436   children
       
  1437 }) {
       
  1438   const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar);
       
  1439   useBlocksFocusControl(blocks);
       
  1440   return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorProvider"], {
       
  1441     value: blocks,
       
  1442     onInput: onInput,
       
  1443     onChange: onChange,
       
  1444     settings: settings,
       
  1445     useSubRegistry: false
       
  1446   }, children);
       
  1447 }
       
  1448 
       
  1449 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/welcome-guide/index.js
       
  1450 
       
  1451 
       
  1452 /**
       
  1453  * WordPress dependencies
       
  1454  */
       
  1455 
       
  1456 
       
  1457 
       
  1458 /**
       
  1459  * Internal dependencies
       
  1460  */
       
  1461 
       
  1462 
       
  1463 function WelcomeGuide({
       
  1464   sidebar
       
  1465 }) {
       
  1466   const {
       
  1467     __unstableToggleFeature: toggleFeature
       
  1468   } = Object(external_wp_data_["useDispatch"])(store);
       
  1469   const isEntirelyBlockWidgets = sidebar.getWidgets().every(widget => widget.id.startsWith('block-'));
       
  1470   return Object(external_wp_element_["createElement"])("div", {
       
  1471     className: "customize-widgets-welcome-guide"
       
  1472   }, Object(external_wp_element_["createElement"])("div", {
       
  1473     className: "customize-widgets-welcome-guide__image__wrapper"
       
  1474   }, Object(external_wp_element_["createElement"])("picture", null, Object(external_wp_element_["createElement"])("source", {
       
  1475     srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
       
  1476     media: "(prefers-reduced-motion: reduce)"
       
  1477   }), Object(external_wp_element_["createElement"])("img", {
       
  1478     className: "customize-widgets-welcome-guide__image",
       
  1479     src: "https://s.w.org/images/block-editor/welcome-editor.gif",
       
  1480     width: "312",
       
  1481     height: "240",
       
  1482     alt: ""
       
  1483   }))), Object(external_wp_element_["createElement"])("h1", {
       
  1484     className: "customize-widgets-welcome-guide__heading"
       
  1485   }, Object(external_wp_i18n_["__"])('Welcome to block Widgets')), Object(external_wp_element_["createElement"])("p", {
       
  1486     className: "customize-widgets-welcome-guide__text"
       
  1487   }, isEntirelyBlockWidgets ? Object(external_wp_i18n_["__"])('Your theme provides different “block” areas for you to add and edit content. Try adding a search bar, social icons, or other types of blocks here and see how they’ll look on your site.') : Object(external_wp_i18n_["__"])('You can now add any block to your site’s widget areas. Don’t worry, all of your favorite widgets still work flawlessly.')), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
       
  1488     className: "customize-widgets-welcome-guide__button",
       
  1489     isPrimary: true,
       
  1490     onClick: () => toggleFeature('welcomeGuide')
       
  1491   }, Object(external_wp_i18n_["__"])('Got it')), Object(external_wp_element_["createElement"])("hr", {
       
  1492     className: "customize-widgets-welcome-guide__separator"
       
  1493   }), !isEntirelyBlockWidgets && Object(external_wp_element_["createElement"])("p", {
       
  1494     className: "customize-widgets-welcome-guide__more-info"
       
  1495   }, Object(external_wp_i18n_["__"])('Want to stick with the old widgets?'), Object(external_wp_element_["createElement"])("br", null), Object(external_wp_element_["createElement"])(external_wp_components_["ExternalLink"], {
       
  1496     href: Object(external_wp_i18n_["__"])('https://wordpress.org/plugins/classic-widgets/')
       
  1497   }, Object(external_wp_i18n_["__"])('Get the Classic Widgets plugin.'))), Object(external_wp_element_["createElement"])("p", {
       
  1498     className: "customize-widgets-welcome-guide__more-info"
       
  1499   }, Object(external_wp_i18n_["__"])('New to the block editor?'), Object(external_wp_element_["createElement"])("br", null), Object(external_wp_element_["createElement"])(external_wp_components_["ExternalLink"], {
       
  1500     href: Object(external_wp_i18n_["__"])('https://wordpress.org/support/article/wordpress-editor/')
       
  1501   }, Object(external_wp_i18n_["__"])("Here's a detailed guide."))));
       
  1502 }
       
  1503 
       
  1504 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcuts/index.js
       
  1505 /**
       
  1506  * WordPress dependencies
       
  1507  */
       
  1508 
       
  1509 
       
  1510 
       
  1511 
       
  1512 
       
  1513 function KeyboardShortcuts({
       
  1514   undo,
       
  1515   redo,
       
  1516   save
       
  1517 }) {
       
  1518   Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/undo', event => {
       
  1519     undo();
       
  1520     event.preventDefault();
       
  1521   }, {
       
  1522     bindGlobal: true
       
  1523   });
       
  1524   Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/redo', event => {
       
  1525     redo();
       
  1526     event.preventDefault();
       
  1527   }, {
       
  1528     bindGlobal: true
       
  1529   });
       
  1530   Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/save', event => {
       
  1531     event.preventDefault();
       
  1532     save();
       
  1533   }, {
       
  1534     bindGlobal: true
       
  1535   });
       
  1536   return null;
       
  1537 }
       
  1538 
       
  1539 function KeyboardShortcutsRegister() {
       
  1540   const {
       
  1541     registerShortcut,
       
  1542     unregisterShortcut
       
  1543   } = Object(external_wp_data_["useDispatch"])(external_wp_keyboardShortcuts_["store"]);
       
  1544   Object(external_wp_element_["useEffect"])(() => {
       
  1545     registerShortcut({
       
  1546       name: 'core/customize-widgets/undo',
       
  1547       category: 'global',
       
  1548       description: Object(external_wp_i18n_["__"])('Undo your last changes.'),
       
  1549       keyCombination: {
       
  1550         modifier: 'primary',
       
  1551         character: 'z'
       
  1552       }
       
  1553     });
       
  1554     registerShortcut({
       
  1555       name: 'core/customize-widgets/redo',
       
  1556       category: 'global',
       
  1557       description: Object(external_wp_i18n_["__"])('Redo your last undo.'),
       
  1558       keyCombination: {
       
  1559         modifier: 'primaryShift',
       
  1560         character: 'z'
       
  1561       }
       
  1562     });
       
  1563     registerShortcut({
       
  1564       name: 'core/customize-widgets/save',
       
  1565       category: 'global',
       
  1566       description: Object(external_wp_i18n_["__"])('Save your changes.'),
       
  1567       keyCombination: {
       
  1568         modifier: 'primary',
       
  1569         character: 's'
       
  1570       }
       
  1571     });
       
  1572     return () => {
       
  1573       unregisterShortcut('core/customize-widgets/undo');
       
  1574       unregisterShortcut('core/customize-widgets/redo');
       
  1575       unregisterShortcut('core/customize-widgets/save');
       
  1576     };
       
  1577   }, [registerShortcut]);
       
  1578   return null;
       
  1579 }
       
  1580 
       
  1581 KeyboardShortcuts.Register = KeyboardShortcutsRegister;
       
  1582 /* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);
       
  1583 
       
  1584 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-appender/index.js
       
  1585 
       
  1586 
       
  1587 
       
  1588 /**
       
  1589  * WordPress dependencies
       
  1590  */
       
  1591 
       
  1592 
       
  1593 
       
  1594 function BlockAppender(props) {
       
  1595   const ref = Object(external_wp_element_["useRef"])();
       
  1596   const isBlocksListEmpty = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).getBlockCount() === 0); // Move the focus to the block appender to prevent focus from
       
  1597   // being lost when emptying the widget area.
       
  1598 
       
  1599   Object(external_wp_element_["useEffect"])(() => {
       
  1600     if (isBlocksListEmpty && ref.current) {
       
  1601       const {
       
  1602         ownerDocument
       
  1603       } = ref.current;
       
  1604 
       
  1605       if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) {
       
  1606         ref.current.focus();
       
  1607       }
       
  1608     }
       
  1609   }, [isBlocksListEmpty]);
       
  1610   return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["ButtonBlockAppender"], Object(esm_extends["a" /* default */])({}, props, {
       
  1611     ref: ref
       
  1612   }));
       
  1613 }
       
  1614 
       
  1615 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/index.js
       
  1616 
       
  1617 
       
  1618 /**
       
  1619  * External dependencies
       
  1620  */
       
  1621 
       
  1622 /**
       
  1623  * WordPress dependencies
       
  1624  */
       
  1625 
       
  1626 
       
  1627 
       
  1628 
       
  1629 
       
  1630 
       
  1631 /**
       
  1632  * Internal dependencies
       
  1633  */
       
  1634 
       
  1635 
       
  1636 
       
  1637 
       
  1638 
       
  1639 
       
  1640 
       
  1641 
       
  1642 
       
  1643 function SidebarBlockEditor({
       
  1644   blockEditorSettings,
       
  1645   sidebar,
       
  1646   inserter,
       
  1647   inspector
       
  1648 }) {
       
  1649   const [isInserterOpened, setIsInserterOpened] = useInserter(inserter);
       
  1650   const {
       
  1651     hasUploadPermissions,
       
  1652     isFixedToolbarActive,
       
  1653     keepCaretInsideBlock,
       
  1654     isWelcomeGuideActive
       
  1655   } = Object(external_wp_data_["useSelect"])(select => {
       
  1656     return {
       
  1657       hasUploadPermissions: Object(external_lodash_["defaultTo"])(select(external_wp_coreData_["store"]).canUser('create', 'media'), true),
       
  1658       isFixedToolbarActive: select(store).__unstableIsFeatureActive('fixedToolbar'),
       
  1659       keepCaretInsideBlock: select(store).__unstableIsFeatureActive('keepCaretInsideBlock'),
       
  1660       isWelcomeGuideActive: select(store).__unstableIsFeatureActive('welcomeGuide')
       
  1661     };
       
  1662   }, []);
       
  1663   const settings = Object(external_wp_element_["useMemo"])(() => {
       
  1664     let mediaUploadBlockEditor;
       
  1665 
       
  1666     if (hasUploadPermissions) {
       
  1667       mediaUploadBlockEditor = ({
       
  1668         onError,
       
  1669         ...argumentsObject
       
  1670       }) => {
       
  1671         Object(external_wp_mediaUtils_["uploadMedia"])({
       
  1672           wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
       
  1673           onError: ({
       
  1674             message
       
  1675           }) => onError(message),
       
  1676           ...argumentsObject
       
  1677         });
       
  1678       };
       
  1679     }
       
  1680 
       
  1681     return { ...blockEditorSettings,
       
  1682       __experimentalSetIsInserterOpened: setIsInserterOpened,
       
  1683       mediaUpload: mediaUploadBlockEditor,
       
  1684       hasFixedToolbar: isFixedToolbarActive,
       
  1685       keepCaretInsideBlock,
       
  1686       __unstableHasCustomAppender: true
       
  1687     };
       
  1688   }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, setIsInserterOpened]);
       
  1689 
       
  1690   if (isWelcomeGuideActive) {
       
  1691     return Object(external_wp_element_["createElement"])(WelcomeGuide, {
       
  1692       sidebar: sidebar
       
  1693     });
       
  1694   }
       
  1695 
       
  1696   return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorKeyboardShortcuts"].Register, null), Object(external_wp_element_["createElement"])(keyboard_shortcuts.Register, null), Object(external_wp_element_["createElement"])(SidebarEditorProvider, {
       
  1697     sidebar: sidebar,
       
  1698     settings: settings
       
  1699   }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorKeyboardShortcuts"], null), Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
       
  1700     undo: sidebar.undo,
       
  1701     redo: sidebar.redo,
       
  1702     save: sidebar.save
       
  1703   }), Object(external_wp_element_["createElement"])(header, {
       
  1704     sidebar: sidebar,
       
  1705     inserter: inserter,
       
  1706     isInserterOpened: isInserterOpened,
       
  1707     setIsInserterOpened: setIsInserterOpened,
       
  1708     isFixedToolbarActive: isFixedToolbarActive
       
  1709   }), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["CopyHandler"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockTools"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockSelectionClearer"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["WritingFlow"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["ObserveTyping"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockList"], {
       
  1710     renderAppender: BlockAppender
       
  1711   })))))), Object(external_wp_element_["createPortal"])( // This is a temporary hack to prevent button component inside <BlockInspector>
       
  1712   // from submitting form when type="button" is not specified.
       
  1713   Object(external_wp_element_["createElement"])("form", {
       
  1714     onSubmit: event => event.preventDefault()
       
  1715   }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockInspector"], null)), inspector.contentContainer[0])), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__unstableBlockSettingsMenuFirstItem"], null, ({
       
  1716     onClose
       
  1717   }) => Object(external_wp_element_["createElement"])(block_inspector_button, {
       
  1718     inspector: inspector,
       
  1719     closeMenu: onClose
       
  1720   })));
       
  1721 }
       
  1722 
       
  1723 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-controls/index.js
       
  1724 
       
  1725 
       
  1726 /**
       
  1727  * WordPress dependencies
       
  1728  */
       
  1729 
       
  1730 const SidebarControlsContext = Object(external_wp_element_["createContext"])();
       
  1731 function SidebarControls({
       
  1732   sidebarControls,
       
  1733   activeSidebarControl,
       
  1734   children
       
  1735 }) {
       
  1736   const context = Object(external_wp_element_["useMemo"])(() => ({
       
  1737     sidebarControls,
       
  1738     activeSidebarControl
       
  1739   }), [sidebarControls, activeSidebarControl]);
       
  1740   return Object(external_wp_element_["createElement"])(SidebarControlsContext.Provider, {
       
  1741     value: context
       
  1742   }, children);
       
  1743 }
       
  1744 function useSidebarControls() {
       
  1745   const {
       
  1746     sidebarControls
       
  1747   } = Object(external_wp_element_["useContext"])(SidebarControlsContext);
       
  1748   return sidebarControls;
       
  1749 }
       
  1750 function useActiveSidebarControl() {
       
  1751   const {
       
  1752     activeSidebarControl
       
  1753   } = Object(external_wp_element_["useContext"])(SidebarControlsContext);
       
  1754   return activeSidebarControl;
       
  1755 }
       
  1756 
       
  1757 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/use-clear-selected-block.js
       
  1758 /**
       
  1759  * WordPress dependencies
       
  1760  */
       
  1761 
       
  1762 
       
  1763 
       
  1764 /**
       
  1765  * We can't just use <BlockSelectionClearer> because the customizer has
       
  1766  * many root nodes rather than just one in the post editor.
       
  1767  * We need to listen to the focus events in all those roots, and also in
       
  1768  * the preview iframe.
       
  1769  * This hook will clear the selected block when focusing outside the editor,
       
  1770  * with a few exceptions:
       
  1771  * 1. Focusing on popovers.
       
  1772  * 2. Focusing on the inspector.
       
  1773  * 3. Focusing on any modals/dialogs.
       
  1774  * These cases are normally triggered by user interactions from the editor,
       
  1775  * not by explicitly focusing outside the editor, hence no need for clearing.
       
  1776  *
       
  1777  * @param {Object} sidebarControl The sidebar control instance.
       
  1778  * @param {Object} popoverRef The ref object of the popover node container.
       
  1779  */
       
  1780 
       
  1781 function useClearSelectedBlock(sidebarControl, popoverRef) {
       
  1782   const {
       
  1783     hasSelectedBlock,
       
  1784     hasMultiSelection
       
  1785   } = Object(external_wp_data_["useSelect"])(external_wp_blockEditor_["store"]);
       
  1786   const {
       
  1787     clearSelectedBlock
       
  1788   } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
       
  1789   Object(external_wp_element_["useEffect"])(() => {
       
  1790     if (popoverRef.current && sidebarControl) {
       
  1791       const inspector = sidebarControl.inspector;
       
  1792       const container = sidebarControl.container[0];
       
  1793       const ownerDocument = container.ownerDocument;
       
  1794       const ownerWindow = ownerDocument.defaultView;
       
  1795 
       
  1796       function handleClearSelectedBlock(element) {
       
  1797         if ( // 1. Make sure there are blocks being selected.
       
  1798         (hasSelectedBlock() || hasMultiSelection()) && // 2. The element should exist in the DOM (not deleted).
       
  1799         element && ownerDocument.contains(element) && // 3. It should also not exist in the container, the popover, nor the dialog.
       
  1800         !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && // 4. The inspector should not be opened.
       
  1801         !inspector.expanded()) {
       
  1802           clearSelectedBlock();
       
  1803         }
       
  1804       } // Handle mouse down in the same document.
       
  1805 
       
  1806 
       
  1807       function handleMouseDown(event) {
       
  1808         handleClearSelectedBlock(event.target);
       
  1809       } // Handle focusing outside the current document, like to iframes.
       
  1810 
       
  1811 
       
  1812       function handleBlur() {
       
  1813         handleClearSelectedBlock(ownerDocument.activeElement);
       
  1814       }
       
  1815 
       
  1816       ownerDocument.addEventListener('mousedown', handleMouseDown);
       
  1817       ownerWindow.addEventListener('blur', handleBlur);
       
  1818       return () => {
       
  1819         ownerDocument.removeEventListener('mousedown', handleMouseDown);
       
  1820         ownerWindow.removeEventListener('blur', handleBlur);
       
  1821       };
       
  1822     }
       
  1823   }, [popoverRef, sidebarControl, hasSelectedBlock, hasMultiSelection, clearSelectedBlock]);
       
  1824 }
       
  1825 
       
  1826 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/index.js
       
  1827 
       
  1828 
       
  1829 /**
       
  1830  * WordPress dependencies
       
  1831  */
       
  1832 
       
  1833 
       
  1834 /**
       
  1835  * Internal dependencies
       
  1836  */
       
  1837 
       
  1838 
       
  1839 
       
  1840 
       
  1841 
       
  1842 
       
  1843 function CustomizeWidgets({
       
  1844   api,
       
  1845   sidebarControls,
       
  1846   blockEditorSettings
       
  1847 }) {
       
  1848   const [activeSidebarControl, setActiveSidebarControl] = Object(external_wp_element_["useState"])(null);
       
  1849   const parentContainer = document.getElementById('customize-theme-controls');
       
  1850   const popoverRef = Object(external_wp_element_["useRef"])();
       
  1851   useClearSelectedBlock(activeSidebarControl, popoverRef);
       
  1852   Object(external_wp_element_["useEffect"])(() => {
       
  1853     const unsubscribers = sidebarControls.map(sidebarControl => sidebarControl.subscribe(expanded => {
       
  1854       if (expanded) {
       
  1855         setActiveSidebarControl(sidebarControl);
       
  1856       }
       
  1857     }));
       
  1858     return () => {
       
  1859       unsubscribers.forEach(unsubscriber => unsubscriber());
       
  1860     };
       
  1861   }, [sidebarControls]);
       
  1862   const activeSidebar = activeSidebarControl && Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])(error_boundary_ErrorBoundary, null, Object(external_wp_element_["createElement"])(SidebarBlockEditor, {
       
  1863     key: activeSidebarControl.id,
       
  1864     blockEditorSettings: blockEditorSettings,
       
  1865     sidebar: activeSidebarControl.sidebarAdapter,
       
  1866     inserter: activeSidebarControl.inserter,
       
  1867     inspector: activeSidebarControl.inspector
       
  1868   })), activeSidebarControl.container[0]); // We have to portal this to the parent of both the editor and the inspector,
       
  1869   // so that the popovers will appear above both of them.
       
  1870 
       
  1871   const popover = parentContainer && Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])("div", {
       
  1872     className: "customize-widgets-popover",
       
  1873     ref: popoverRef
       
  1874   }, Object(external_wp_element_["createElement"])(external_wp_components_["Popover"].Slot, null)), parentContainer);
       
  1875   return Object(external_wp_element_["createElement"])(external_wp_components_["SlotFillProvider"], null, Object(external_wp_element_["createElement"])(SidebarControls, {
       
  1876     sidebarControls: sidebarControls,
       
  1877     activeSidebarControl: activeSidebarControl
       
  1878   }, Object(external_wp_element_["createElement"])(FocusControl, {
       
  1879     api: api,
       
  1880     sidebarControls: sidebarControls
       
  1881   }, activeSidebar, popover)));
       
  1882 }
       
  1883 
       
  1884 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inspector-section.js
       
  1885 function getInspectorSection() {
       
  1886   const {
       
  1887     wp: {
       
  1888       customize
       
  1889     }
       
  1890   } = window;
       
  1891   return class InspectorSection extends customize.Section {
       
  1892     constructor(id, options) {
       
  1893       super(id, options);
       
  1894       this.parentSection = options.parentSection;
       
  1895       this.returnFocusWhenClose = null;
       
  1896     }
       
  1897 
       
  1898     ready() {
       
  1899       this.contentContainer[0].classList.add('customize-widgets-layout__inspector');
       
  1900     }
       
  1901 
       
  1902     onChangeExpanded(expanded, args) {
       
  1903       super.onChangeExpanded(expanded, args);
       
  1904 
       
  1905       if (this.parentSection && !args.unchanged) {
       
  1906         if (expanded) {
       
  1907           this.parentSection.collapse({
       
  1908             manualTransition: true
       
  1909           });
       
  1910         } else {
       
  1911           this.parentSection.expand({
       
  1912             manualTransition: true,
       
  1913             completeCallback: () => {
       
  1914               // Return focus after finishing the transition.
       
  1915               if (this.returnFocusWhenClose && !this.contentContainer[0].contains(this.returnFocusWhenClose)) {
       
  1916                 this.returnFocusWhenClose.focus();
       
  1917               }
       
  1918             }
       
  1919           });
       
  1920         }
       
  1921       }
       
  1922     }
       
  1923 
       
  1924     open({
       
  1925       returnFocusWhenClose
       
  1926     } = {}) {
       
  1927       this.returnFocusWhenClose = returnFocusWhenClose;
       
  1928       this.expand({
       
  1929         allowMultiple: true
       
  1930       });
       
  1931     }
       
  1932 
       
  1933     close() {
       
  1934       this.collapse({
       
  1935         allowMultiple: true
       
  1936       });
       
  1937     }
       
  1938 
       
  1939   };
       
  1940 }
       
  1941 
       
  1942 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/sidebar-section.js
       
  1943 /**
       
  1944  * WordPress dependencies
       
  1945  */
       
  1946 
       
  1947 /**
       
  1948  * Internal dependencies
       
  1949  */
       
  1950 
       
  1951 
       
  1952 
       
  1953 const getInspectorSectionId = sidebarId => `widgets-inspector-${sidebarId}`;
       
  1954 
       
  1955 function getSidebarSection() {
       
  1956   const {
       
  1957     wp: {
       
  1958       customize
       
  1959     }
       
  1960   } = window;
       
  1961   return class SidebarSection extends customize.Section {
       
  1962     ready() {
       
  1963       const InspectorSection = getInspectorSection();
       
  1964       this.inspector = new InspectorSection(getInspectorSectionId(this.id), {
       
  1965         title: Object(external_wp_i18n_["__"])('Block Settings'),
       
  1966         parentSection: this,
       
  1967         customizeAction: [Object(external_wp_i18n_["__"])('Customizing'), Object(external_wp_i18n_["__"])('Widgets'), this.params.title].join(' ▸ ')
       
  1968       });
       
  1969       customize.section.add(this.inspector);
       
  1970       this.contentContainer[0].classList.add('customize-widgets__sidebar-section');
       
  1971     }
       
  1972 
       
  1973     hasSubSectionOpened() {
       
  1974       return this.inspector.expanded();
       
  1975     }
       
  1976 
       
  1977     onChangeExpanded(expanded, _args) {
       
  1978       const controls = this.controls();
       
  1979       const args = { ..._args,
       
  1980 
       
  1981         completeCallback() {
       
  1982           var _args$completeCallbac;
       
  1983 
       
  1984           controls.forEach(control => {
       
  1985             var _control$onChangeSect;
       
  1986 
       
  1987             (_control$onChangeSect = control.onChangeSectionExpanded) === null || _control$onChangeSect === void 0 ? void 0 : _control$onChangeSect.call(control, expanded, args);
       
  1988           });
       
  1989           (_args$completeCallbac = _args.completeCallback) === null || _args$completeCallbac === void 0 ? void 0 : _args$completeCallbac.call(_args);
       
  1990         }
       
  1991 
       
  1992       };
       
  1993 
       
  1994       if (args.manualTransition) {
       
  1995         if (expanded) {
       
  1996           this.contentContainer.addClass(['busy', 'open']);
       
  1997           this.contentContainer.removeClass('is-sub-section-open');
       
  1998           this.contentContainer.closest('.wp-full-overlay').addClass('section-open');
       
  1999           this.contentContainer.one('transitionend', () => {
       
  2000             this.contentContainer.removeClass('busy');
       
  2001             args.completeCallback();
       
  2002           });
       
  2003         } else {
       
  2004           this.contentContainer.addClass(['busy', 'is-sub-section-open']);
       
  2005           this.contentContainer.closest('.wp-full-overlay').addClass('section-open');
       
  2006           this.contentContainer.removeClass('open');
       
  2007           this.contentContainer.one('transitionend', () => {
       
  2008             this.contentContainer.removeClass('busy');
       
  2009             args.completeCallback();
       
  2010           });
       
  2011         }
       
  2012       } else {
       
  2013         super.onChangeExpanded(expanded, args);
       
  2014       }
       
  2015     }
       
  2016 
       
  2017   };
       
  2018 }
       
  2019 
       
  2020 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-adapter.js
       
  2021 /**
       
  2022  * Internal dependencies
       
  2023  */
       
  2024 
       
  2025 const {
       
  2026   wp
       
  2027 } = window;
       
  2028 
       
  2029 function parseWidgetId(widgetId) {
       
  2030   const matches = widgetId.match(/^(.+)-(\d+)$/);
       
  2031 
       
  2032   if (matches) {
       
  2033     return {
       
  2034       idBase: matches[1],
       
  2035       number: parseInt(matches[2], 10)
       
  2036     };
       
  2037   } // Likely an old single widget.
       
  2038 
       
  2039 
       
  2040   return {
       
  2041     idBase: widgetId
       
  2042   };
       
  2043 }
       
  2044 
       
  2045 function widgetIdToSettingId(widgetId) {
       
  2046   const {
       
  2047     idBase,
       
  2048     number
       
  2049   } = parseWidgetId(widgetId);
       
  2050 
       
  2051   if (number) {
       
  2052     return `widget_${idBase}[${number}]`;
       
  2053   }
       
  2054 
       
  2055   return `widget_${idBase}`;
       
  2056 }
       
  2057 /**
       
  2058  * This is a custom debounce function to call different callbacks depending on
       
  2059  * whether it's the _leading_ call or not.
       
  2060  *
       
  2061  * @param {Function} leading  The callback that gets called first.
       
  2062  * @param {Function} callback The callback that gets called after the first time.
       
  2063  * @param {number}   timeout  The debounced time in milliseconds.
       
  2064  * @return {Function} The debounced function.
       
  2065  */
       
  2066 
       
  2067 
       
  2068 function debounce(leading, callback, timeout) {
       
  2069   let isLeading = false;
       
  2070   let timerID;
       
  2071 
       
  2072   function debounced(...args) {
       
  2073     const result = (isLeading ? callback : leading).apply(this, args);
       
  2074     isLeading = true;
       
  2075     clearTimeout(timerID);
       
  2076     timerID = setTimeout(() => {
       
  2077       isLeading = false;
       
  2078     }, timeout);
       
  2079     return result;
       
  2080   }
       
  2081 
       
  2082   debounced.cancel = () => {
       
  2083     isLeading = false;
       
  2084     clearTimeout(timerID);
       
  2085   };
       
  2086 
       
  2087   return debounced;
       
  2088 }
       
  2089 
       
  2090 class sidebar_adapter_SidebarAdapter {
       
  2091   constructor(setting, api) {
       
  2092     this.setting = setting;
       
  2093     this.api = api;
       
  2094     this.locked = false;
       
  2095     this.widgetsCache = new WeakMap();
       
  2096     this.subscribers = new Set();
       
  2097     this.history = [this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
       
  2098     this.historyIndex = 0;
       
  2099     this.historySubscribers = new Set(); // Debounce the input for 1 second.
       
  2100 
       
  2101     this._debounceSetHistory = debounce(this._pushHistory, this._replaceHistory, 1000);
       
  2102     this.setting.bind(this._handleSettingChange.bind(this));
       
  2103     this.api.bind('change', this._handleAllSettingsChange.bind(this));
       
  2104     this.undo = this.undo.bind(this);
       
  2105     this.redo = this.redo.bind(this);
       
  2106     this.save = this.save.bind(this);
       
  2107   }
       
  2108 
       
  2109   subscribe(callback) {
       
  2110     this.subscribers.add(callback);
       
  2111     return () => {
       
  2112       this.subscribers.delete(callback);
       
  2113     };
       
  2114   }
       
  2115 
       
  2116   getWidgets() {
       
  2117     return this.history[this.historyIndex];
       
  2118   }
       
  2119 
       
  2120   _emit(...args) {
       
  2121     for (const callback of this.subscribers) {
       
  2122       callback(...args);
       
  2123     }
       
  2124   }
       
  2125 
       
  2126   _getWidgetIds() {
       
  2127     return this.setting.get();
       
  2128   }
       
  2129 
       
  2130   _pushHistory() {
       
  2131     this.history = [...this.history.slice(0, this.historyIndex + 1), this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
       
  2132     this.historyIndex += 1;
       
  2133     this.historySubscribers.forEach(listener => listener());
       
  2134   }
       
  2135 
       
  2136   _replaceHistory() {
       
  2137     this.history[this.historyIndex] = this._getWidgetIds().map(widgetId => this.getWidget(widgetId));
       
  2138   }
       
  2139 
       
  2140   _handleSettingChange() {
       
  2141     if (this.locked) {
       
  2142       return;
       
  2143     }
       
  2144 
       
  2145     const prevWidgets = this.getWidgets();
       
  2146 
       
  2147     this._pushHistory();
       
  2148 
       
  2149     this._emit(prevWidgets, this.getWidgets());
       
  2150   }
       
  2151 
       
  2152   _handleAllSettingsChange(setting) {
       
  2153     if (this.locked) {
       
  2154       return;
       
  2155     }
       
  2156 
       
  2157     if (!setting.id.startsWith('widget_')) {
       
  2158       return;
       
  2159     }
       
  2160 
       
  2161     const widgetId = settingIdToWidgetId(setting.id);
       
  2162 
       
  2163     if (!this.setting.get().includes(widgetId)) {
       
  2164       return;
       
  2165     }
       
  2166 
       
  2167     const prevWidgets = this.getWidgets();
       
  2168 
       
  2169     this._pushHistory();
       
  2170 
       
  2171     this._emit(prevWidgets, this.getWidgets());
       
  2172   }
       
  2173 
       
  2174   _createWidget(widget) {
       
  2175     const widgetModel = wp.customize.Widgets.availableWidgets.findWhere({
       
  2176       id_base: widget.idBase
       
  2177     });
       
  2178     let number = widget.number;
       
  2179 
       
  2180     if (widgetModel.get('is_multi') && !number) {
       
  2181       widgetModel.set('multi_number', widgetModel.get('multi_number') + 1);
       
  2182       number = widgetModel.get('multi_number');
       
  2183     }
       
  2184 
       
  2185     const settingId = number ? `widget_${widget.idBase}[${number}]` : `widget_${widget.idBase}`;
       
  2186     const settingArgs = {
       
  2187       transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get('id_base')] ? 'postMessage' : 'refresh',
       
  2188       previewer: this.setting.previewer
       
  2189     };
       
  2190     const setting = this.api.create(settingId, settingId, '', settingArgs);
       
  2191     setting.set(widget.instance);
       
  2192     const widgetId = settingIdToWidgetId(settingId);
       
  2193     return widgetId;
       
  2194   }
       
  2195 
       
  2196   _removeWidget(widget) {
       
  2197     const settingId = widgetIdToSettingId(widget.id);
       
  2198     const setting = this.api(settingId);
       
  2199 
       
  2200     if (setting) {
       
  2201       const instance = setting.get();
       
  2202       this.widgetsCache.delete(instance);
       
  2203     }
       
  2204 
       
  2205     this.api.remove(settingId);
       
  2206   }
       
  2207 
       
  2208   _updateWidget(widget) {
       
  2209     const prevWidget = this.getWidget(widget.id); // Bail out update if nothing changed.
       
  2210 
       
  2211     if (prevWidget === widget) {
       
  2212       return widget.id;
       
  2213     } // Update existing setting if only the widget's instance changed.
       
  2214 
       
  2215 
       
  2216     if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) {
       
  2217       const settingId = widgetIdToSettingId(widget.id);
       
  2218       this.api(settingId).set(widget.instance);
       
  2219       return widget.id;
       
  2220     } // Otherwise delete and re-create.
       
  2221 
       
  2222 
       
  2223     this._removeWidget(widget);
       
  2224 
       
  2225     return this._createWidget(widget);
       
  2226   }
       
  2227 
       
  2228   getWidget(widgetId) {
       
  2229     if (!widgetId) {
       
  2230       return null;
       
  2231     }
       
  2232 
       
  2233     const {
       
  2234       idBase,
       
  2235       number
       
  2236     } = parseWidgetId(widgetId);
       
  2237     const settingId = widgetIdToSettingId(widgetId);
       
  2238     const setting = this.api(settingId);
       
  2239 
       
  2240     if (!setting) {
       
  2241       return null;
       
  2242     }
       
  2243 
       
  2244     const instance = setting.get();
       
  2245 
       
  2246     if (this.widgetsCache.has(instance)) {
       
  2247       return this.widgetsCache.get(instance);
       
  2248     }
       
  2249 
       
  2250     const widget = {
       
  2251       id: widgetId,
       
  2252       idBase,
       
  2253       number,
       
  2254       instance
       
  2255     };
       
  2256     this.widgetsCache.set(instance, widget);
       
  2257     return widget;
       
  2258   }
       
  2259 
       
  2260   _updateWidgets(nextWidgets) {
       
  2261     this.locked = true;
       
  2262     const addedWidgetIds = [];
       
  2263     const nextWidgetIds = nextWidgets.map(nextWidget => {
       
  2264       if (nextWidget.id && this.getWidget(nextWidget.id)) {
       
  2265         addedWidgetIds.push(null);
       
  2266         return this._updateWidget(nextWidget);
       
  2267       }
       
  2268 
       
  2269       const widgetId = this._createWidget(nextWidget);
       
  2270 
       
  2271       addedWidgetIds.push(widgetId);
       
  2272       return widgetId;
       
  2273     });
       
  2274     const deletedWidgets = this.getWidgets().filter(widget => !nextWidgetIds.includes(widget.id));
       
  2275     deletedWidgets.forEach(widget => this._removeWidget(widget));
       
  2276     this.setting.set(nextWidgetIds);
       
  2277     this.locked = false;
       
  2278     return addedWidgetIds;
       
  2279   }
       
  2280 
       
  2281   setWidgets(nextWidgets) {
       
  2282     const addedWidgetIds = this._updateWidgets(nextWidgets);
       
  2283 
       
  2284     this._debounceSetHistory();
       
  2285 
       
  2286     return addedWidgetIds;
       
  2287   }
       
  2288   /**
       
  2289    * Undo/Redo related features
       
  2290    */
       
  2291 
       
  2292 
       
  2293   hasUndo() {
       
  2294     return this.historyIndex > 0;
       
  2295   }
       
  2296 
       
  2297   hasRedo() {
       
  2298     return this.historyIndex < this.history.length - 1;
       
  2299   }
       
  2300 
       
  2301   _seek(historyIndex) {
       
  2302     const currentWidgets = this.getWidgets();
       
  2303     this.historyIndex = historyIndex;
       
  2304     const widgets = this.history[this.historyIndex];
       
  2305 
       
  2306     this._updateWidgets(widgets);
       
  2307 
       
  2308     this._emit(currentWidgets, this.getWidgets());
       
  2309 
       
  2310     this.historySubscribers.forEach(listener => listener());
       
  2311 
       
  2312     this._debounceSetHistory.cancel();
       
  2313   }
       
  2314 
       
  2315   undo() {
       
  2316     if (!this.hasUndo()) {
       
  2317       return;
       
  2318     }
       
  2319 
       
  2320     this._seek(this.historyIndex - 1);
       
  2321   }
       
  2322 
       
  2323   redo() {
       
  2324     if (!this.hasRedo()) {
       
  2325       return;
       
  2326     }
       
  2327 
       
  2328     this._seek(this.historyIndex + 1);
       
  2329   }
       
  2330 
       
  2331   subscribeHistory(listener) {
       
  2332     this.historySubscribers.add(listener);
       
  2333     return () => {
       
  2334       this.historySubscribers.delete(listener);
       
  2335     };
       
  2336   }
       
  2337 
       
  2338   save() {
       
  2339     this.api.previewer.save();
       
  2340   }
       
  2341 
       
  2342 }
       
  2343 
       
  2344 // EXTERNAL MODULE: external ["wp","dom"]
       
  2345 var external_wp_dom_ = __webpack_require__("1CF3");
       
  2346 
       
  2347 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inserter-outer-section.js
       
  2348 /**
       
  2349  * WordPress dependencies
       
  2350  */
       
  2351 
       
  2352 
       
  2353 
       
  2354 /**
       
  2355  * Internal dependencies
       
  2356  */
       
  2357 
       
  2358 
       
  2359 function getInserterOuterSection() {
       
  2360   const {
       
  2361     wp: {
       
  2362       customize
       
  2363     }
       
  2364   } = window;
       
  2365   const OuterSection = customize.OuterSection; // Override the OuterSection class to handle multiple outer sections.
       
  2366   // It closes all the other outer sections whenever one is opened.
       
  2367   // The result is that at most one outer section can be opened at the same time.
       
  2368 
       
  2369   customize.OuterSection = class extends OuterSection {
       
  2370     onChangeExpanded(expanded, args) {
       
  2371       if (expanded) {
       
  2372         customize.section.each(section => {
       
  2373           if (section.params.type === 'outer' && section.id !== this.id) {
       
  2374             if (section.expanded()) {
       
  2375               section.collapse();
       
  2376             }
       
  2377           }
       
  2378         });
       
  2379       }
       
  2380 
       
  2381       return super.onChangeExpanded(expanded, args);
       
  2382     }
       
  2383 
       
  2384   }; // Handle constructor so that "params.type" can be correctly pointed to "outer".
       
  2385 
       
  2386   customize.sectionConstructor.outer = customize.OuterSection;
       
  2387   return class InserterOuterSection extends customize.OuterSection {
       
  2388     constructor(...args) {
       
  2389       super(...args); // This is necessary since we're creating a new class which is not identical to the original OuterSection.
       
  2390       // @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436
       
  2391 
       
  2392       this.params.type = 'outer';
       
  2393       this.activeElementBeforeExpanded = null;
       
  2394       const ownerWindow = this.contentContainer[0].ownerDocument.defaultView; // Handle closing the inserter when pressing the Escape key.
       
  2395 
       
  2396       ownerWindow.addEventListener('keydown', event => {
       
  2397         if (this.expanded() && (event.keyCode === external_wp_keycodes_["ESCAPE"] || event.code === 'Escape')) {
       
  2398           event.stopPropagation();
       
  2399           Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(false);
       
  2400         }
       
  2401       }, // Use capture mode to make this run before other event listeners.
       
  2402       true);
       
  2403       this.contentContainer.addClass('widgets-inserter'); // Set a flag if the state is being changed from open() or close().
       
  2404       // Don't propagate the event if it's an internal action to prevent infinite loop.
       
  2405 
       
  2406       this.isFromInternalAction = false;
       
  2407       this.expanded.bind(() => {
       
  2408         if (!this.isFromInternalAction) {
       
  2409           // Propagate the event to React to sync the state.
       
  2410           Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(this.expanded());
       
  2411         }
       
  2412 
       
  2413         this.isFromInternalAction = false;
       
  2414       });
       
  2415     }
       
  2416 
       
  2417     open() {
       
  2418       if (!this.expanded()) {
       
  2419         const contentContainer = this.contentContainer[0];
       
  2420         this.activeElementBeforeExpanded = contentContainer.ownerDocument.activeElement;
       
  2421         this.isFromInternalAction = true;
       
  2422         this.expand({
       
  2423           completeCallback() {
       
  2424             // We have to do this in a "completeCallback" or else the elements will not yet be visible/tabbable.
       
  2425             // The first one should be the close button,
       
  2426             // we want to skip it and choose the second one instead, which is the search box.
       
  2427             const searchBox = external_wp_dom_["focus"].tabbable.find(contentContainer)[1];
       
  2428 
       
  2429             if (searchBox) {
       
  2430               searchBox.focus();
       
  2431             }
       
  2432           }
       
  2433 
       
  2434         });
       
  2435       }
       
  2436     }
       
  2437 
       
  2438     close() {
       
  2439       if (this.expanded()) {
       
  2440         const contentContainer = this.contentContainer[0];
       
  2441         const activeElement = contentContainer.ownerDocument.activeElement;
       
  2442         this.isFromInternalAction = true;
       
  2443         this.collapse({
       
  2444           completeCallback() {
       
  2445             // Return back the focus when closing the inserter.
       
  2446             // Only do this if the active element which triggers the action is inside the inserter,
       
  2447             // (the close button for instance). In that case the focus will be lost.
       
  2448             // Otherwise, we don't hijack the focus when the user is focusing on other elements
       
  2449             // (like the quick inserter).
       
  2450             if (contentContainer.contains(activeElement)) {
       
  2451               // Return back the focus when closing the inserter.
       
  2452               if (this.activeElementBeforeExpanded) {
       
  2453                 this.activeElementBeforeExpanded.focus();
       
  2454               }
       
  2455             }
       
  2456           }
       
  2457 
       
  2458         });
       
  2459       }
       
  2460     }
       
  2461 
       
  2462   };
       
  2463 }
       
  2464 
       
  2465 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/sidebar-control.js
       
  2466 /**
       
  2467  * WordPress dependencies
       
  2468  */
       
  2469 
       
  2470 /**
       
  2471  * Internal dependencies
       
  2472  */
       
  2473 
       
  2474 
       
  2475 
       
  2476 
       
  2477 
       
  2478 const getInserterId = controlId => `widgets-inserter-${controlId}`;
       
  2479 
       
  2480 function getSidebarControl() {
       
  2481   const {
       
  2482     wp: {
       
  2483       customize
       
  2484     }
       
  2485   } = window;
       
  2486   return class SidebarControl extends customize.Control {
       
  2487     constructor(...args) {
       
  2488       super(...args);
       
  2489       this.subscribers = new Set();
       
  2490     }
       
  2491 
       
  2492     ready() {
       
  2493       const InserterOuterSection = getInserterOuterSection();
       
  2494       this.inserter = new InserterOuterSection(getInserterId(this.id), {});
       
  2495       customize.section.add(this.inserter);
       
  2496       this.sectionInstance = customize.section(this.section());
       
  2497       this.inspector = this.sectionInstance.inspector;
       
  2498       this.sidebarAdapter = new sidebar_adapter_SidebarAdapter(this.setting, customize);
       
  2499     }
       
  2500 
       
  2501     subscribe(callback) {
       
  2502       this.subscribers.add(callback);
       
  2503       return () => {
       
  2504         this.subscribers.delete(callback);
       
  2505       };
       
  2506     }
       
  2507 
       
  2508     onChangeSectionExpanded(expanded, args) {
       
  2509       if (!args.unchanged) {
       
  2510         // Close the inserter when the section collapses.
       
  2511         if (!expanded) {
       
  2512           Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(false);
       
  2513         }
       
  2514 
       
  2515         this.subscribers.forEach(subscriber => subscriber(expanded, args));
       
  2516       }
       
  2517     }
       
  2518 
       
  2519   };
       
  2520 }
       
  2521 
       
  2522 // EXTERNAL MODULE: external ["wp","hooks"]
       
  2523 var external_wp_hooks_ = __webpack_require__("g56x");
       
  2524 
       
  2525 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/move-to-sidebar.js
       
  2526 
       
  2527 
       
  2528 /**
       
  2529  * External dependencies
       
  2530  */
       
  2531 
       
  2532 /**
       
  2533  * WordPress dependencies
       
  2534  */
       
  2535 
       
  2536 
       
  2537 
       
  2538 
       
  2539 
       
  2540 
       
  2541 /**
       
  2542  * Internal dependencies
       
  2543  */
       
  2544 
       
  2545 
       
  2546 
       
  2547 
       
  2548 const withMoveToSidebarToolbarItem = Object(external_wp_compose_["createHigherOrderComponent"])(BlockEdit => props => {
       
  2549   let widgetId = Object(external_wp_widgets_["getWidgetIdFromBlock"])(props);
       
  2550   const sidebarControls = useSidebarControls();
       
  2551   const activeSidebarControl = useActiveSidebarControl();
       
  2552   const hasMultipleSidebars = (sidebarControls === null || sidebarControls === void 0 ? void 0 : sidebarControls.length) > 1;
       
  2553   const blockName = props.name;
       
  2554   const clientId = props.clientId;
       
  2555   const canInsertBlockInSidebar = Object(external_wp_data_["useSelect"])(select => {
       
  2556     // Use an empty string to represent the root block list, which
       
  2557     // in the customizer editor represents a sidebar/widget area.
       
  2558     return select(external_wp_blockEditor_["store"]).canInsertBlockType(blockName, '');
       
  2559   }, [blockName]);
       
  2560   const block = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).getBlock(clientId), [clientId]);
       
  2561   const {
       
  2562     removeBlock
       
  2563   } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
       
  2564   const [, focusWidget] = useFocusControl();
       
  2565 
       
  2566   function moveToSidebar(sidebarControlId) {
       
  2567     const newSidebarControl = sidebarControls.find(sidebarControl => sidebarControl.id === sidebarControlId);
       
  2568 
       
  2569     if (widgetId) {
       
  2570       /**
       
  2571        * If there's a widgetId, move it to the other sidebar.
       
  2572        */
       
  2573       const oldSetting = activeSidebarControl.setting;
       
  2574       const newSetting = newSidebarControl.setting;
       
  2575       oldSetting(Object(external_lodash_["without"])(oldSetting(), widgetId));
       
  2576       newSetting([...newSetting(), widgetId]);
       
  2577     } else {
       
  2578       /**
       
  2579        * If there isn't a widgetId, it's most likely a inner block.
       
  2580        * First, remove the block in the original sidebar,
       
  2581        * then, create a new widget in the new sidebar and get back its widgetId.
       
  2582        */
       
  2583       const sidebarAdapter = newSidebarControl.sidebarAdapter;
       
  2584       removeBlock(clientId);
       
  2585       const addedWidgetIds = sidebarAdapter.setWidgets([...sidebarAdapter.getWidgets(), blockToWidget(block)]); // The last non-null id is the added widget's id.
       
  2586 
       
  2587       widgetId = addedWidgetIds.reverse().find(id => !!id);
       
  2588     } // Move focus to the moved widget and expand the sidebar.
       
  2589 
       
  2590 
       
  2591     focusWidget(widgetId);
       
  2592   }
       
  2593 
       
  2594   return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(BlockEdit, props), hasMultipleSidebars && canInsertBlockInSidebar && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockControls"], null, Object(external_wp_element_["createElement"])(external_wp_widgets_["MoveToWidgetArea"], {
       
  2595     widgetAreas: sidebarControls.map(sidebarControl => ({
       
  2596       id: sidebarControl.id,
       
  2597       name: sidebarControl.params.label,
       
  2598       description: sidebarControl.params.description
       
  2599     })),
       
  2600     currentWidgetAreaId: activeSidebarControl === null || activeSidebarControl === void 0 ? void 0 : activeSidebarControl.id,
       
  2601     onSelect: moveToSidebar
       
  2602   })));
       
  2603 }, 'withMoveToSidebarToolbarItem');
       
  2604 Object(external_wp_hooks_["addFilter"])('editor.BlockEdit', 'core/customize-widgets/block-edit', withMoveToSidebarToolbarItem);
       
  2605 
       
  2606 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/replace-media-upload.js
       
  2607 /**
       
  2608  * WordPress dependencies
       
  2609  */
       
  2610 
       
  2611 
       
  2612 
       
  2613 const replaceMediaUpload = () => external_wp_mediaUtils_["MediaUpload"];
       
  2614 
       
  2615 Object(external_wp_hooks_["addFilter"])('editor.MediaUpload', 'core/edit-widgets/replace-media-upload', replaceMediaUpload);
       
  2616 
       
  2617 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/wide-widget-display.js
       
  2618 
       
  2619 
       
  2620 
       
  2621 /**
       
  2622  * WordPress dependencies
       
  2623  */
       
  2624 
       
  2625 
       
  2626 const {
       
  2627   wp: wide_widget_display_wp
       
  2628 } = window;
       
  2629 const withWideWidgetDisplay = Object(external_wp_compose_["createHigherOrderComponent"])(BlockEdit => props => {
       
  2630   var _wp$customize$Widgets, _wp$customize$Widgets2;
       
  2631 
       
  2632   const {
       
  2633     idBase
       
  2634   } = props.attributes;
       
  2635   const isWide = (_wp$customize$Widgets = (_wp$customize$Widgets2 = wide_widget_display_wp.customize.Widgets.data.availableWidgets.find(widget => widget.id_base === idBase)) === null || _wp$customize$Widgets2 === void 0 ? void 0 : _wp$customize$Widgets2.is_wide) !== null && _wp$customize$Widgets !== void 0 ? _wp$customize$Widgets : false;
       
  2636   return Object(external_wp_element_["createElement"])(BlockEdit, Object(esm_extends["a" /* default */])({}, props, {
       
  2637     isWide: isWide
       
  2638   }));
       
  2639 }, 'withWideWidgetDisplay');
       
  2640 Object(external_wp_hooks_["addFilter"])('editor.BlockEdit', 'core/customize-widgets/wide-widget-display', withWideWidgetDisplay);
       
  2641 
       
  2642 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/index.js
       
  2643 /**
       
  2644  * Internal dependencies
       
  2645  */
       
  2646 
       
  2647 
       
  2648 
       
  2649 
       
  2650 // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/index.js
       
  2651 
       
  2652 
       
  2653 /**
       
  2654  * WordPress dependencies
       
  2655  */
       
  2656 
       
  2657 
       
  2658 
       
  2659 
       
  2660 /**
       
  2661  * Internal dependencies
       
  2662  */
       
  2663 
       
  2664 
       
  2665 
       
  2666 
       
  2667 
       
  2668 const {
       
  2669   wp: build_module_wp
       
  2670 } = window;
       
  2671 const DISABLED_BLOCKS = ['core/more', 'core/block', 'core/freeform'];
       
  2672 const ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;
       
  2673 /**
       
  2674  * Initializes the widgets block editor in the customizer.
       
  2675  *
       
  2676  * @param {string} editorName          The editor name.
       
  2677  * @param {Object} blockEditorSettings Block editor settings.
       
  2678  */
       
  2679 
       
  2680 function initialize(editorName, blockEditorSettings) {
       
  2681   const coreBlocks = Object(external_wp_blockLibrary_["__experimentalGetCoreBlocks"])().filter(block => {
       
  2682     return !(DISABLED_BLOCKS.includes(block.name) || block.name.startsWith('core/post') || block.name.startsWith('core/query') || block.name.startsWith('core/site'));
       
  2683   });
       
  2684 
       
  2685   Object(external_wp_blockLibrary_["registerCoreBlocks"])(coreBlocks);
       
  2686   Object(external_wp_widgets_["registerLegacyWidgetBlock"])();
       
  2687 
       
  2688   if (false) {}
       
  2689 
       
  2690   Object(external_wp_widgets_["registerLegacyWidgetVariations"])(blockEditorSettings); // As we are unregistering `core/freeform` to avoid the Classic block, we must
       
  2691   // replace it with something as the default freeform content handler. Failure to
       
  2692   // do this will result in errors in the default block parser.
       
  2693   // see: https://github.com/WordPress/gutenberg/issues/33097
       
  2694 
       
  2695   Object(external_wp_blocks_["setFreeformContentHandlerName"])('core/html');
       
  2696   const SidebarControl = getSidebarControl(blockEditorSettings);
       
  2697   build_module_wp.customize.sectionConstructor.sidebar = getSidebarSection();
       
  2698   build_module_wp.customize.controlConstructor.sidebar_block_editor = SidebarControl;
       
  2699   const container = document.createElement('div');
       
  2700   document.body.appendChild(container);
       
  2701   build_module_wp.customize.bind('ready', () => {
       
  2702     const sidebarControls = [];
       
  2703     build_module_wp.customize.control.each(control => {
       
  2704       if (control instanceof SidebarControl) {
       
  2705         sidebarControls.push(control);
       
  2706       }
       
  2707     });
       
  2708     Object(external_wp_element_["render"])(Object(external_wp_element_["createElement"])(CustomizeWidgets, {
       
  2709       api: build_module_wp.customize,
       
  2710       sidebarControls: sidebarControls,
       
  2711       blockEditorSettings: blockEditorSettings
       
  2712     }), container);
       
  2713   });
       
  2714 }
       
  2715 
       
  2716 
       
  2717 /***/ }),
       
  2718 
       
  2719 /***/ "GLVC":
       
  2720 /***/ (function(module, exports) {
       
  2721 
       
  2722 (function() { module.exports = window["wp"]["widgets"]; }());
       
  2723 
       
  2724 /***/ }),
       
  2725 
       
  2726 /***/ "GRId":
       
  2727 /***/ (function(module, exports) {
       
  2728 
       
  2729 (function() { module.exports = window["wp"]["element"]; }());
       
  2730 
       
  2731 /***/ }),
       
  2732 
       
  2733 /***/ "HSyU":
       
  2734 /***/ (function(module, exports) {
       
  2735 
       
  2736 (function() { module.exports = window["wp"]["blocks"]; }());
       
  2737 
       
  2738 /***/ }),
       
  2739 
       
  2740 /***/ "K+tz":
       
  2741 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
  2742 
       
  2743 "use strict";
       
  2744 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
       
  2745 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
       
  2746 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
       
  2747 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
       
  2748 
       
  2749 
       
  2750 /**
       
  2751  * WordPress dependencies
       
  2752  */
       
  2753 
       
  2754 const external = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
       
  2755   xmlns: "http://www.w3.org/2000/svg",
       
  2756   viewBox: "0 0 24 24"
       
  2757 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
       
  2758   d: "M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z"
       
  2759 }));
       
  2760 /* harmony default export */ __webpack_exports__["a"] = (external);
       
  2761 
       
  2762 
       
  2763 /***/ }),
       
  2764 
       
  2765 /***/ "K2cm":
       
  2766 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
  2767 
       
  2768 "use strict";
       
  2769 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
       
  2770 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
       
  2771 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
       
  2772 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
       
  2773 
       
  2774 
       
  2775 /**
       
  2776  * WordPress dependencies
       
  2777  */
       
  2778 
       
  2779 const redo = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
       
  2780   xmlns: "http://www.w3.org/2000/svg",
       
  2781   viewBox: "0 0 24 24"
       
  2782 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
       
  2783   d: "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z"
       
  2784 }));
       
  2785 /* harmony default export */ __webpack_exports__["a"] = (redo);
       
  2786 
       
  2787 
       
  2788 /***/ }),
       
  2789 
       
  2790 /***/ "K9lf":
       
  2791 /***/ (function(module, exports) {
       
  2792 
       
  2793 (function() { module.exports = window["wp"]["compose"]; }());
       
  2794 
       
  2795 /***/ }),
       
  2796 
       
  2797 /***/ "Ntru":
       
  2798 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
  2799 
       
  2800 "use strict";
       
  2801 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
       
  2802 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
       
  2803 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
       
  2804 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
       
  2805 
       
  2806 
       
  2807 /**
       
  2808  * WordPress dependencies
       
  2809  */
       
  2810 
       
  2811 const undo = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
       
  2812   xmlns: "http://www.w3.org/2000/svg",
       
  2813   viewBox: "0 0 24 24"
       
  2814 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
       
  2815   d: "M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z"
       
  2816 }));
       
  2817 /* harmony default export */ __webpack_exports__["a"] = (undo);
       
  2818 
       
  2819 
       
  2820 /***/ }),
       
  2821 
       
  2822 /***/ "Q4Sy":
       
  2823 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
  2824 
       
  2825 "use strict";
       
  2826 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
       
  2827 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
       
  2828 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
       
  2829 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
       
  2830 
       
  2831 
       
  2832 /**
       
  2833  * WordPress dependencies
       
  2834  */
       
  2835 
       
  2836 const plus = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
       
  2837   xmlns: "http://www.w3.org/2000/svg",
       
  2838   viewBox: "0 0 24 24"
       
  2839 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
       
  2840   d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
       
  2841 }));
       
  2842 /* harmony default export */ __webpack_exports__["a"] = (plus);
       
  2843 
       
  2844 
       
  2845 /***/ }),
       
  2846 
       
  2847 /***/ "QyPg":
       
  2848 /***/ (function(module, exports) {
       
  2849 
       
  2850 (function() { module.exports = window["wp"]["blockLibrary"]; }());
       
  2851 
       
  2852 /***/ }),
       
  2853 
       
  2854 /***/ "RMJe":
       
  2855 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
  2856 
       
  2857 "use strict";
       
  2858 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
       
  2859 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
       
  2860 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
       
  2861 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
       
  2862 
       
  2863 
       
  2864 /**
       
  2865  * WordPress dependencies
       
  2866  */
       
  2867 
       
  2868 const check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
       
  2869   xmlns: "http://www.w3.org/2000/svg",
       
  2870   viewBox: "0 0 24 24"
       
  2871 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
       
  2872   d: "M18.3 5.6L9.9 16.9l-4.6-3.4-.9 1.2 5.8 4.3 9.3-12.6z"
       
  2873 }));
       
  2874 /* harmony default export */ __webpack_exports__["a"] = (check);
       
  2875 
       
  2876 
       
  2877 /***/ }),
       
  2878 
       
  2879 /***/ "RxS6":
       
  2880 /***/ (function(module, exports) {
       
  2881 
       
  2882 (function() { module.exports = window["wp"]["keycodes"]; }());
       
  2883 
       
  2884 /***/ }),
       
  2885 
       
  2886 /***/ "TSYQ":
       
  2887 /***/ (function(module, exports, __webpack_require__) {
       
  2888 
       
  2889 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
       
  2890   Copyright (c) 2018 Jed Watson.
       
  2891   Licensed under the MIT License (MIT), see
       
  2892   http://jedwatson.github.io/classnames
       
  2893 */
       
  2894 /* global define */
       
  2895 
       
  2896 (function () {
       
  2897 	'use strict';
       
  2898 
       
  2899 	var hasOwn = {}.hasOwnProperty;
       
  2900 
       
  2901 	function classNames() {
       
  2902 		var classes = [];
       
  2903 
       
  2904 		for (var i = 0; i < arguments.length; i++) {
       
  2905 			var arg = arguments[i];
       
  2906 			if (!arg) continue;
       
  2907 
       
  2908 			var argType = typeof arg;
       
  2909 
       
  2910 			if (argType === 'string' || argType === 'number') {
       
  2911 				classes.push(arg);
       
  2912 			} else if (Array.isArray(arg)) {
       
  2913 				if (arg.length) {
       
  2914 					var inner = classNames.apply(null, arg);
       
  2915 					if (inner) {
       
  2916 						classes.push(inner);
       
  2917 					}
       
  2918 				}
       
  2919 			} else if (argType === 'object') {
       
  2920 				if (arg.toString === Object.prototype.toString) {
       
  2921 					for (var key in arg) {
       
  2922 						if (hasOwn.call(arg, key) && arg[key]) {
       
  2923 							classes.push(key);
       
  2924 						}
       
  2925 					}
       
  2926 				} else {
       
  2927 					classes.push(arg.toString());
       
  2928 				}
       
  2929 			}
       
  2930 		}
       
  2931 
       
  2932 		return classes.join(' ');
       
  2933 	}
       
  2934 
       
  2935 	if ( true && module.exports) {
       
  2936 		classNames.default = classNames;
       
  2937 		module.exports = classNames;
       
  2938 	} else if (true) {
       
  2939 		// register as 'classnames', consistent with npm package name
       
  2940 		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
       
  2941 			return classNames;
       
  2942 		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
       
  2943 				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
       
  2944 	} else {}
       
  2945 }());
       
  2946 
       
  2947 
       
  2948 /***/ }),
       
  2949 
       
  2950 /***/ "Tqx9":
       
  2951 /***/ (function(module, exports) {
       
  2952 
       
  2953 (function() { module.exports = window["wp"]["primitives"]; }());
       
  2954 
       
  2955 /***/ }),
       
  2956 
       
  2957 /***/ "VKE3":
       
  2958 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
  2959 
       
  2960 "use strict";
       
  2961 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
       
  2962 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
       
  2963 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
       
  2964 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
       
  2965 
       
  2966 
       
  2967 /**
       
  2968  * WordPress dependencies
       
  2969  */
       
  2970 
       
  2971 const moreVertical = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
       
  2972   xmlns: "http://www.w3.org/2000/svg",
       
  2973   viewBox: "0 0 24 24"
       
  2974 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
       
  2975   d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
       
  2976 }));
       
  2977 /* harmony default export */ __webpack_exports__["a"] = (moreVertical);
       
  2978 
       
  2979 
       
  2980 /***/ }),
       
  2981 
       
  2982 /***/ "YLtl":
       
  2983 /***/ (function(module, exports) {
       
  2984 
       
  2985 (function() { module.exports = window["lodash"]; }());
       
  2986 
       
  2987 /***/ }),
       
  2988 
       
  2989 /***/ "axFQ":
       
  2990 /***/ (function(module, exports) {
       
  2991 
       
  2992 (function() { module.exports = window["wp"]["blockEditor"]; }());
       
  2993 
       
  2994 /***/ }),
       
  2995 
       
  2996 /***/ "bWcr":
       
  2997 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
  2998 
       
  2999 "use strict";
       
  3000 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
       
  3001 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
       
  3002 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
       
  3003 /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
       
  3004 
       
  3005 
       
  3006 /**
       
  3007  * WordPress dependencies
       
  3008  */
       
  3009 
       
  3010 const closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
       
  3011   xmlns: "http://www.w3.org/2000/svg",
       
  3012   viewBox: "0 0 24 24"
       
  3013 }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
       
  3014   d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"
       
  3015 }));
       
  3016 /* harmony default export */ __webpack_exports__["a"] = (closeSmall);
       
  3017 
       
  3018 
       
  3019 /***/ }),
       
  3020 
       
  3021 /***/ "g56x":
       
  3022 /***/ (function(module, exports) {
       
  3023 
       
  3024 (function() { module.exports = window["wp"]["hooks"]; }());
       
  3025 
       
  3026 /***/ }),
       
  3027 
       
  3028 /***/ "gdqT":
       
  3029 /***/ (function(module, exports) {
       
  3030 
       
  3031 (function() { module.exports = window["wp"]["a11y"]; }());
       
  3032 
       
  3033 /***/ }),
       
  3034 
       
  3035 /***/ "hF7m":
       
  3036 /***/ (function(module, exports) {
       
  3037 
       
  3038 (function() { module.exports = window["wp"]["keyboardShortcuts"]; }());
       
  3039 
       
  3040 /***/ }),
       
  3041 
       
  3042 /***/ "jZUy":
       
  3043 /***/ (function(module, exports) {
       
  3044 
       
  3045 (function() { module.exports = window["wp"]["coreData"]; }());
       
  3046 
       
  3047 /***/ }),
       
  3048 
       
  3049 /***/ "l3Sj":
       
  3050 /***/ (function(module, exports) {
       
  3051 
       
  3052 (function() { module.exports = window["wp"]["i18n"]; }());
       
  3053 
       
  3054 /***/ }),
       
  3055 
       
  3056 /***/ "rl8x":
       
  3057 /***/ (function(module, exports) {
       
  3058 
       
  3059 (function() { module.exports = window["wp"]["isShallowEqual"]; }());
       
  3060 
       
  3061 /***/ }),
       
  3062 
       
  3063 /***/ "tI+e":
       
  3064 /***/ (function(module, exports) {
       
  3065 
       
  3066 (function() { module.exports = window["wp"]["components"]; }());
       
  3067 
       
  3068 /***/ }),
       
  3069 
       
  3070 /***/ "wx14":
       
  3071 /***/ (function(module, __webpack_exports__, __webpack_require__) {
       
  3072 
       
  3073 "use strict";
       
  3074 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
       
  3075 function _extends() {
       
  3076   _extends = Object.assign || function (target) {
       
  3077     for (var i = 1; i < arguments.length; i++) {
       
  3078       var source = arguments[i];
       
  3079 
       
  3080       for (var key in source) {
       
  3081         if (Object.prototype.hasOwnProperty.call(source, key)) {
       
  3082           target[key] = source[key];
       
  3083         }
       
  3084       }
       
  3085     }
       
  3086 
       
  3087     return target;
       
  3088   };
       
  3089 
       
  3090   return _extends.apply(this, arguments);
       
  3091 }
       
  3092 
       
  3093 /***/ })
       
  3094 
       
  3095 /******/ });