[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/js/dist/ -> customize-widgets.js (source)

   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, "isInserterOpened", function() { return selectors_isInserterOpened; });
 125  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetInsertionPoint", function() { return __experimentalGetInsertionPoint; });
 126  
 127  // NAMESPACE OBJECT: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js
 128  var actions_namespaceObject = {};
 129  __webpack_require__.r(actions_namespaceObject);
 130  __webpack_require__.d(actions_namespaceObject, "setIsInserterOpened", function() { return actions_setIsInserterOpened; });
 131  
 132  // EXTERNAL MODULE: external ["wp","element"]
 133  var external_wp_element_ = __webpack_require__("GRId");
 134  
 135  // EXTERNAL MODULE: external ["wp","blockLibrary"]
 136  var external_wp_blockLibrary_ = __webpack_require__("QyPg");
 137  
 138  // EXTERNAL MODULE: external ["wp","widgets"]
 139  var external_wp_widgets_ = __webpack_require__("GLVC");
 140  
 141  // EXTERNAL MODULE: external ["wp","blocks"]
 142  var external_wp_blocks_ = __webpack_require__("HSyU");
 143  
 144  // EXTERNAL MODULE: external ["wp","data"]
 145  var external_wp_data_ = __webpack_require__("1ZqX");
 146  
 147  // EXTERNAL MODULE: ./node_modules/@wordpress/interface/build-module/index.js + 17 modules
 148  var build_module = __webpack_require__("U60i");
 149  
 150  // EXTERNAL MODULE: external ["wp","components"]
 151  var external_wp_components_ = __webpack_require__("tI+e");
 152  
 153  // EXTERNAL MODULE: external ["wp","keyboardShortcuts"]
 154  var external_wp_keyboardShortcuts_ = __webpack_require__("hF7m");
 155  
 156  // EXTERNAL MODULE: external ["wp","i18n"]
 157  var external_wp_i18n_ = __webpack_require__("l3Sj");
 158  
 159  // EXTERNAL MODULE: external ["wp","blockEditor"]
 160  var external_wp_blockEditor_ = __webpack_require__("axFQ");
 161  
 162  // EXTERNAL MODULE: external ["wp","compose"]
 163  var external_wp_compose_ = __webpack_require__("K9lf");
 164  
 165  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/error-boundary/index.js
 166  
 167  
 168  /**
 169   * WordPress dependencies
 170   */
 171  
 172  
 173  
 174  
 175  
 176  
 177  function CopyButton(_ref) {
 178    let {
 179      text,
 180      children
 181    } = _ref;
 182    const ref = Object(external_wp_compose_["useCopyToClipboard"])(text);
 183    return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
 184      variant: "secondary",
 185      ref: ref
 186    }, children);
 187  }
 188  
 189  class error_boundary_ErrorBoundary extends external_wp_element_["Component"] {
 190    constructor() {
 191      super(...arguments);
 192      this.state = {
 193        error: null
 194      };
 195    }
 196  
 197    componentDidCatch(error) {
 198      this.setState({
 199        error
 200      });
 201    }
 202  
 203    render() {
 204      const {
 205        error
 206      } = this.state;
 207  
 208      if (!error) {
 209        return this.props.children;
 210      }
 211  
 212      return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["Warning"], {
 213        className: "customize-widgets-error-boundary",
 214        actions: [Object(external_wp_element_["createElement"])(CopyButton, {
 215          key: "copy-error",
 216          text: error.stack
 217        }, Object(external_wp_i18n_["__"])('Copy Error'))]
 218      }, Object(external_wp_i18n_["__"])('The editor has encountered an unexpected error.'));
 219    }
 220  
 221  }
 222  
 223  // EXTERNAL MODULE: external "lodash"
 224  var external_lodash_ = __webpack_require__("YLtl");
 225  
 226  // EXTERNAL MODULE: external ["wp","coreData"]
 227  var external_wp_coreData_ = __webpack_require__("jZUy");
 228  
 229  // EXTERNAL MODULE: external ["wp","mediaUtils"]
 230  var external_wp_mediaUtils_ = __webpack_require__("6aBm");
 231  
 232  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
 233  var esm_extends = __webpack_require__("wx14");
 234  
 235  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-inspector-button/index.js
 236  
 237  
 238  
 239  /**
 240   * WordPress dependencies
 241   */
 242  
 243  
 244  
 245  
 246  
 247  
 248  function BlockInspectorButton(_ref) {
 249    let {
 250      inspector,
 251      closeMenu,
 252      ...props
 253    } = _ref;
 254    const selectedBlockClientId = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).getSelectedBlockClientId(), []);
 255    const selectedBlock = Object(external_wp_element_["useMemo"])(() => document.getElementById(`block-$selectedBlockClientId}`), [selectedBlockClientId]);
 256    return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], Object(esm_extends["a" /* default */])({
 257      onClick: () => {
 258        // Open the inspector.
 259        inspector.open({
 260          returnFocusWhenClose: selectedBlock
 261        }); // Then close the dropdown menu.
 262  
 263        closeMenu();
 264      }
 265    }, props), Object(external_wp_i18n_["__"])('Show more settings'));
 266  }
 267  
 268  /* harmony default export */ var block_inspector_button = (BlockInspectorButton);
 269  
 270  // EXTERNAL MODULE: ./node_modules/classnames/index.js
 271  var classnames = __webpack_require__("TSYQ");
 272  var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
 273  
 274  // EXTERNAL MODULE: external ["wp","keycodes"]
 275  var external_wp_keycodes_ = __webpack_require__("RxS6");
 276  
 277  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js
 278  var library_undo = __webpack_require__("Ntru");
 279  
 280  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js
 281  var library_redo = __webpack_require__("K2cm");
 282  
 283  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js
 284  var plus = __webpack_require__("Q4Sy");
 285  
 286  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
 287  var close_small = __webpack_require__("bWcr");
 288  
 289  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/reducer.js
 290  /**
 291   * WordPress dependencies
 292   */
 293  
 294  /**
 295   * Reducer tracking whether the inserter is open.
 296   *
 297   * @param {boolean|Object} state
 298   * @param {Object}         action
 299   */
 300  
 301  function blockInserterPanel() {
 302    let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
 303    let action = arguments.length > 1 ? arguments[1] : undefined;
 304  
 305    switch (action.type) {
 306      case 'SET_IS_INSERTER_OPENED':
 307        return action.value;
 308    }
 309  
 310    return state;
 311  }
 312  
 313  /* harmony default export */ var reducer = (Object(external_wp_data_["combineReducers"])({
 314    blockInserterPanel
 315  }));
 316  
 317  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/selectors.js
 318  /**
 319   * Returns true if the inserter is opened.
 320   *
 321   * @param {Object} state Global application state.
 322   *
 323   * @return {boolean} Whether the inserter is opened.
 324   */
 325  function selectors_isInserterOpened(state) {
 326    return !!state.blockInserterPanel;
 327  }
 328  /**
 329   * Get the insertion point for the inserter.
 330   *
 331   * @param {Object} state Global application state.
 332   *
 333   * @return {Object} The root client ID and index to insert at.
 334   */
 335  
 336  function __experimentalGetInsertionPoint(state) {
 337    const {
 338      rootClientId,
 339      insertionIndex
 340    } = state.blockInserterPanel;
 341    return {
 342      rootClientId,
 343      insertionIndex
 344    };
 345  }
 346  
 347  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/actions.js
 348  /**
 349   * Returns an action object used to open/close the inserter.
 350   *
 351   * @param {boolean|Object} value                Whether the inserter should be
 352   *                                              opened (true) or closed (false).
 353   *                                              To specify an insertion point,
 354   *                                              use an object.
 355   * @param {string}         value.rootClientId   The root client ID to insert at.
 356   * @param {number}         value.insertionIndex The index to insert at.
 357   *
 358   * @return {Object} Action object.
 359   */
 360  function actions_setIsInserterOpened(value) {
 361    return {
 362      type: 'SET_IS_INSERTER_OPENED',
 363      value
 364    };
 365  }
 366  
 367  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/constants.js
 368  /**
 369   * Module Constants
 370   */
 371  const STORE_NAME = 'core/customize-widgets';
 372  
 373  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/store/index.js
 374  /**
 375   * WordPress dependencies
 376   */
 377  
 378  /**
 379   * Internal dependencies
 380   */
 381  
 382  
 383  
 384  
 385  
 386  /**
 387   * Block editor data store configuration.
 388   *
 389   * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore
 390   *
 391   * @type {Object}
 392   */
 393  
 394  const storeConfig = {
 395    reducer: reducer,
 396    selectors: selectors_namespaceObject,
 397    actions: actions_namespaceObject
 398  };
 399  /**
 400   * Store definition for the edit widgets namespace.
 401   *
 402   * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
 403   *
 404   * @type {Object}
 405   */
 406  
 407  const store = Object(external_wp_data_["createReduxStore"])(STORE_NAME, storeConfig); // Once we build a more generic persistence plugin that works across types of stores
 408  // we'd be able to replace this with a register call.
 409  
 410  Object(external_wp_data_["registerStore"])(STORE_NAME, storeConfig);
 411  
 412  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/index.js
 413  
 414  
 415  /**
 416   * WordPress dependencies
 417   */
 418  
 419  
 420  
 421  
 422  
 423  
 424  /**
 425   * Internal dependencies
 426   */
 427  
 428  
 429  
 430  function Inserter(_ref) {
 431    let {
 432      setIsOpened
 433    } = _ref;
 434    const inserterTitleId = Object(external_wp_compose_["useInstanceId"])(Inserter, 'customize-widget-layout__inserter-panel-title');
 435    const insertionPoint = Object(external_wp_data_["useSelect"])(select => select(store).__experimentalGetInsertionPoint(), []);
 436    return Object(external_wp_element_["createElement"])("div", {
 437      className: "customize-widgets-layout__inserter-panel",
 438      "aria-labelledby": inserterTitleId
 439    }, Object(external_wp_element_["createElement"])("div", {
 440      className: "customize-widgets-layout__inserter-panel-header"
 441    }, Object(external_wp_element_["createElement"])("h2", {
 442      id: inserterTitleId,
 443      className: "customize-widgets-layout__inserter-panel-header-title"
 444    }, Object(external_wp_i18n_["__"])('Add a block')), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
 445      className: "customize-widgets-layout__inserter-panel-header-close-button",
 446      icon: close_small["a" /* default */],
 447      onClick: () => setIsOpened(false),
 448      "aria-label": Object(external_wp_i18n_["__"])('Close inserter')
 449    })), Object(external_wp_element_["createElement"])("div", {
 450      className: "customize-widgets-layout__inserter-panel-content"
 451    }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__experimentalLibrary"], {
 452      rootClientId: insertionPoint.rootClientId,
 453      __experimentalInsertionIndex: insertionPoint.insertionIndex,
 454      showInserterHelpPanel: true,
 455      onSelect: () => setIsOpened(false)
 456    })));
 457  }
 458  
 459  /* harmony default export */ var components_inserter = (Inserter);
 460  
 461  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js
 462  var external = __webpack_require__("K+tz");
 463  
 464  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/config.js
 465  /**
 466   * WordPress dependencies
 467   */
 468  
 469  const textFormattingShortcuts = [{
 470    keyCombination: {
 471      modifier: 'primary',
 472      character: 'b'
 473    },
 474    description: Object(external_wp_i18n_["__"])('Make the selected text bold.')
 475  }, {
 476    keyCombination: {
 477      modifier: 'primary',
 478      character: 'i'
 479    },
 480    description: Object(external_wp_i18n_["__"])('Make the selected text italic.')
 481  }, {
 482    keyCombination: {
 483      modifier: 'primary',
 484      character: 'k'
 485    },
 486    description: Object(external_wp_i18n_["__"])('Convert the selected text into a link.')
 487  }, {
 488    keyCombination: {
 489      modifier: 'primaryShift',
 490      character: 'k'
 491    },
 492    description: Object(external_wp_i18n_["__"])('Remove a link.')
 493  }, {
 494    keyCombination: {
 495      modifier: 'primary',
 496      character: 'u'
 497    },
 498    description: Object(external_wp_i18n_["__"])('Underline the selected text.')
 499  }];
 500  
 501  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/shortcut.js
 502  
 503  
 504  /**
 505   * External dependencies
 506   */
 507  
 508  /**
 509   * WordPress dependencies
 510   */
 511  
 512  
 513  
 514  
 515  function KeyCombination(_ref) {
 516    let {
 517      keyCombination,
 518      forceAriaLabel
 519    } = _ref;
 520    const shortcut = keyCombination.modifier ? external_wp_keycodes_["displayShortcutList"][keyCombination.modifier](keyCombination.character) : keyCombination.character;
 521    const ariaLabel = keyCombination.modifier ? external_wp_keycodes_["shortcutAriaLabel"][keyCombination.modifier](keyCombination.character) : keyCombination.character;
 522    return Object(external_wp_element_["createElement"])("kbd", {
 523      className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key-combination",
 524      "aria-label": forceAriaLabel || ariaLabel
 525    }, Object(external_lodash_["castArray"])(shortcut).map((character, index) => {
 526      if (character === '+') {
 527        return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], {
 528          key: index
 529        }, character);
 530      }
 531  
 532      return Object(external_wp_element_["createElement"])("kbd", {
 533        key: index,
 534        className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-key"
 535      }, character);
 536    }));
 537  }
 538  
 539  function Shortcut(_ref2) {
 540    let {
 541      description,
 542      keyCombination,
 543      aliases = [],
 544      ariaLabel
 545    } = _ref2;
 546    return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
 547      className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-description"
 548    }, description), Object(external_wp_element_["createElement"])("div", {
 549      className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-term"
 550    }, Object(external_wp_element_["createElement"])(KeyCombination, {
 551      keyCombination: keyCombination,
 552      forceAriaLabel: ariaLabel
 553    }), aliases.map((alias, index) => Object(external_wp_element_["createElement"])(KeyCombination, {
 554      keyCombination: alias,
 555      forceAriaLabel: ariaLabel,
 556      key: index
 557    }))));
 558  }
 559  
 560  /* harmony default export */ var keyboard_shortcut_help_modal_shortcut = (Shortcut);
 561  
 562  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js
 563  
 564  
 565  /**
 566   * WordPress dependencies
 567   */
 568  
 569  
 570  /**
 571   * Internal dependencies
 572   */
 573  
 574  
 575  
 576  function DynamicShortcut(_ref) {
 577    let {
 578      name
 579    } = _ref;
 580    const {
 581      keyCombination,
 582      description,
 583      aliases
 584    } = Object(external_wp_data_["useSelect"])(select => {
 585      const {
 586        getShortcutKeyCombination,
 587        getShortcutDescription,
 588        getShortcutAliases
 589      } = select(external_wp_keyboardShortcuts_["store"]);
 590      return {
 591        keyCombination: getShortcutKeyCombination(name),
 592        aliases: getShortcutAliases(name),
 593        description: getShortcutDescription(name)
 594      };
 595    }, [name]);
 596  
 597    if (!keyCombination) {
 598      return null;
 599    }
 600  
 601    return Object(external_wp_element_["createElement"])(keyboard_shortcut_help_modal_shortcut, {
 602      keyCombination: keyCombination,
 603      description: description,
 604      aliases: aliases
 605    });
 606  }
 607  
 608  /* harmony default export */ var dynamic_shortcut = (DynamicShortcut);
 609  
 610  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcut-help-modal/index.js
 611  
 612  
 613  /**
 614   * External dependencies
 615   */
 616  
 617  
 618  /**
 619   * WordPress dependencies
 620   */
 621  
 622  
 623  
 624  
 625  
 626  /**
 627   * Internal dependencies
 628   */
 629  
 630  
 631  
 632  
 633  
 634  const ShortcutList = _ref => {
 635    let {
 636      shortcuts
 637    } = _ref;
 638    return (
 639      /*
 640       * Disable reason: The `list` ARIA role is redundant but
 641       * Safari+VoiceOver won't announce the list otherwise.
 642       */
 643  
 644      /* eslint-disable jsx-a11y/no-redundant-roles */
 645      Object(external_wp_element_["createElement"])("ul", {
 646        className: "customize-widgets-keyboard-shortcut-help-modal__shortcut-list",
 647        role: "list"
 648      }, shortcuts.map((shortcut, index) => Object(external_wp_element_["createElement"])("li", {
 649        className: "customize-widgets-keyboard-shortcut-help-modal__shortcut",
 650        key: index
 651      }, Object(external_lodash_["isString"])(shortcut) ? Object(external_wp_element_["createElement"])(dynamic_shortcut, {
 652        name: shortcut
 653      }) : Object(external_wp_element_["createElement"])(keyboard_shortcut_help_modal_shortcut, shortcut))))
 654      /* eslint-enable jsx-a11y/no-redundant-roles */
 655  
 656    );
 657  };
 658  
 659  const ShortcutSection = _ref2 => {
 660    let {
 661      title,
 662      shortcuts,
 663      className
 664    } = _ref2;
 665    return Object(external_wp_element_["createElement"])("section", {
 666      className: classnames_default()('customize-widgets-keyboard-shortcut-help-modal__section', className)
 667    }, !!title && Object(external_wp_element_["createElement"])("h2", {
 668      className: "customize-widgets-keyboard-shortcut-help-modal__section-title"
 669    }, title), Object(external_wp_element_["createElement"])(ShortcutList, {
 670      shortcuts: shortcuts
 671    }));
 672  };
 673  
 674  const ShortcutCategorySection = _ref3 => {
 675    let {
 676      title,
 677      categoryName,
 678      additionalShortcuts = []
 679    } = _ref3;
 680    const categoryShortcuts = Object(external_wp_data_["useSelect"])(select => {
 681      return select(external_wp_keyboardShortcuts_["store"]).getCategoryShortcuts(categoryName);
 682    }, [categoryName]);
 683    return Object(external_wp_element_["createElement"])(ShortcutSection, {
 684      title: title,
 685      shortcuts: categoryShortcuts.concat(additionalShortcuts)
 686    });
 687  };
 688  
 689  function KeyboardShortcutHelpModal(_ref4) {
 690    let {
 691      isModalActive,
 692      toggleModal
 693    } = _ref4;
 694    const {
 695      registerShortcut
 696    } = Object(external_wp_data_["useDispatch"])(external_wp_keyboardShortcuts_["store"]);
 697    registerShortcut({
 698      name: 'core/customize-widgets/keyboard-shortcuts',
 699      category: 'main',
 700      description: Object(external_wp_i18n_["__"])('Display these keyboard shortcuts.'),
 701      keyCombination: {
 702        modifier: 'access',
 703        character: 'h'
 704      }
 705    });
 706    Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/keyboard-shortcuts', toggleModal);
 707  
 708    if (!isModalActive) {
 709      return null;
 710    }
 711  
 712    return Object(external_wp_element_["createElement"])(external_wp_components_["Modal"], {
 713      className: "customize-widgets-keyboard-shortcut-help-modal",
 714      title: Object(external_wp_i18n_["__"])('Keyboard shortcuts'),
 715      closeLabel: Object(external_wp_i18n_["__"])('Close'),
 716      onRequestClose: toggleModal
 717    }, Object(external_wp_element_["createElement"])(ShortcutSection, {
 718      className: "customize-widgets-keyboard-shortcut-help-modal__main-shortcuts",
 719      shortcuts: ['core/customize-widgets/keyboard-shortcuts']
 720    }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
 721      title: Object(external_wp_i18n_["__"])('Global shortcuts'),
 722      categoryName: "global"
 723    }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
 724      title: Object(external_wp_i18n_["__"])('Selection shortcuts'),
 725      categoryName: "selection"
 726    }), Object(external_wp_element_["createElement"])(ShortcutCategorySection, {
 727      title: Object(external_wp_i18n_["__"])('Block shortcuts'),
 728      categoryName: "block",
 729      additionalShortcuts: [{
 730        keyCombination: {
 731          character: '/'
 732        },
 733        description: Object(external_wp_i18n_["__"])('Change the block type after adding a new paragraph.'),
 734  
 735        /* translators: The forward-slash character. e.g. '/'. */
 736        ariaLabel: Object(external_wp_i18n_["__"])('Forward-slash')
 737      }]
 738    }), Object(external_wp_element_["createElement"])(ShortcutSection, {
 739      title: Object(external_wp_i18n_["__"])('Text formatting'),
 740      shortcuts: textFormattingShortcuts
 741    }));
 742  }
 743  
 744  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/more-menu/index.js
 745  
 746  
 747  /**
 748   * WordPress dependencies
 749   */
 750  
 751  
 752  
 753  
 754  
 755  
 756  
 757  /**
 758   * Internal dependencies
 759   */
 760  
 761  
 762  const POPOVER_PROPS = {
 763    className: 'customize-widgets-more-menu__content'
 764  };
 765  function MoreMenu() {
 766    const [isKeyboardShortcutsModalActive, setIsKeyboardShortcutsModalVisible] = Object(external_wp_element_["useState"])(false);
 767  
 768    const toggleKeyboardShortcutsModal = () => setIsKeyboardShortcutsModalVisible(!isKeyboardShortcutsModalActive);
 769  
 770    Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/keyboard-shortcuts', toggleKeyboardShortcutsModal);
 771    return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(build_module["f" /* MoreMenuDropdown */], {
 772      as: external_wp_components_["ToolbarDropdownMenu"],
 773      className: "customize-widgets-more-menu",
 774      popoverProps: POPOVER_PROPS
 775    }, () => Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
 776      label: Object(external_wp_i18n_["_x"])('View', 'noun')
 777    }, Object(external_wp_element_["createElement"])(build_module["g" /* MoreMenuFeatureToggle */], {
 778      scope: "core/customize-widgets",
 779      feature: "fixedToolbar",
 780      label: Object(external_wp_i18n_["__"])('Top toolbar'),
 781      info: Object(external_wp_i18n_["__"])('Access all block and document tools in a single place'),
 782      messageActivated: Object(external_wp_i18n_["__"])('Top toolbar activated'),
 783      messageDeactivated: Object(external_wp_i18n_["__"])('Top toolbar deactivated')
 784    })), Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
 785      label: Object(external_wp_i18n_["__"])('Tools')
 786    }, Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
 787      onClick: () => {
 788        setIsKeyboardShortcutsModalVisible(true);
 789      },
 790      shortcut: external_wp_keycodes_["displayShortcut"].access('h')
 791    }, Object(external_wp_i18n_["__"])('Keyboard shortcuts')), Object(external_wp_element_["createElement"])(build_module["g" /* MoreMenuFeatureToggle */], {
 792      scope: "core/customize-widgets",
 793      feature: "welcomeGuide",
 794      label: Object(external_wp_i18n_["__"])('Welcome Guide')
 795    }), Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
 796      role: "menuitem",
 797      icon: external["a" /* default */],
 798      href: Object(external_wp_i18n_["__"])('https://wordpress.org/support/article/block-based-widgets-editor/'),
 799      target: "_blank",
 800      rel: "noopener noreferrer"
 801    }, Object(external_wp_i18n_["__"])('Help'), Object(external_wp_element_["createElement"])(external_wp_components_["VisuallyHidden"], {
 802      as: "span"
 803    },
 804    /* translators: accessibility text */
 805    Object(external_wp_i18n_["__"])('(opens in a new tab)')))), Object(external_wp_element_["createElement"])(external_wp_components_["MenuGroup"], {
 806      label: Object(external_wp_i18n_["__"])('Preferences')
 807    }, Object(external_wp_element_["createElement"])(build_module["g" /* MoreMenuFeatureToggle */], {
 808      scope: "core/customize-widgets",
 809      feature: "keepCaretInsideBlock",
 810      label: Object(external_wp_i18n_["__"])('Contain text cursor inside block'),
 811      info: Object(external_wp_i18n_["__"])('Aids screen readers by stopping text caret from leaving blocks.'),
 812      messageActivated: Object(external_wp_i18n_["__"])('Contain text cursor inside block activated'),
 813      messageDeactivated: Object(external_wp_i18n_["__"])('Contain text cursor inside block deactivated')
 814    })))), Object(external_wp_element_["createElement"])(KeyboardShortcutHelpModal, {
 815      isModalActive: isKeyboardShortcutsModalActive,
 816      toggleModal: toggleKeyboardShortcutsModal
 817    }));
 818  }
 819  
 820  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/header/index.js
 821  
 822  
 823  /**
 824   * External dependencies
 825   */
 826  
 827  /**
 828   * WordPress dependencies
 829   */
 830  
 831  
 832  
 833  
 834  
 835  
 836  
 837  /**
 838   * Internal dependencies
 839   */
 840  
 841  
 842  
 843  
 844  function Header(_ref) {
 845    let {
 846      sidebar,
 847      inserter,
 848      isInserterOpened,
 849      setIsInserterOpened,
 850      isFixedToolbarActive
 851    } = _ref;
 852    const [[hasUndo, hasRedo], setUndoRedo] = Object(external_wp_element_["useState"])([sidebar.hasUndo(), sidebar.hasRedo()]);
 853    Object(external_wp_element_["useEffect"])(() => {
 854      return sidebar.subscribeHistory(() => {
 855        setUndoRedo([sidebar.hasUndo(), sidebar.hasRedo()]);
 856      });
 857    }, [sidebar]);
 858    return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
 859      className: classnames_default()('customize-widgets-header', {
 860        'is-fixed-toolbar-active': isFixedToolbarActive
 861      })
 862    }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["NavigableToolbar"], {
 863      className: "customize-widgets-header-toolbar",
 864      "aria-label": Object(external_wp_i18n_["__"])('Document tools')
 865    }, Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
 866      icon: !Object(external_wp_i18n_["isRTL"])() ? library_undo["a" /* default */] : library_redo["a" /* default */]
 867      /* translators: button label text should, if possible, be under 16 characters. */
 868      ,
 869      label: Object(external_wp_i18n_["__"])('Undo'),
 870      shortcut: external_wp_keycodes_["displayShortcut"].primary('z') // If there are no undo levels we don't want to actually disable this
 871      // button, because it will remove focus for keyboard users.
 872      // See: https://github.com/WordPress/gutenberg/issues/3486
 873      ,
 874      "aria-disabled": !hasUndo,
 875      onClick: sidebar.undo,
 876      className: "customize-widgets-editor-history-button undo-button"
 877    }), Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
 878      icon: !Object(external_wp_i18n_["isRTL"])() ? library_redo["a" /* default */] : library_undo["a" /* default */]
 879      /* translators: button label text should, if possible, be under 16 characters. */
 880      ,
 881      label: Object(external_wp_i18n_["__"])('Redo'),
 882      shortcut: external_wp_keycodes_["displayShortcut"].primaryShift('z') // If there are no undo levels we don't want to actually disable this
 883      // button, because it will remove focus for keyboard users.
 884      // See: https://github.com/WordPress/gutenberg/issues/3486
 885      ,
 886      "aria-disabled": !hasRedo,
 887      onClick: sidebar.redo,
 888      className: "customize-widgets-editor-history-button redo-button"
 889    }), Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
 890      className: "customize-widgets-header-toolbar__inserter-toggle",
 891      isPressed: isInserterOpened,
 892      variant: "primary",
 893      icon: plus["a" /* default */],
 894      label: Object(external_wp_i18n_["_x"])('Add block', 'Generic label for block inserter button'),
 895      onClick: () => {
 896        setIsInserterOpened(isOpen => !isOpen);
 897      }
 898    }), Object(external_wp_element_["createElement"])(MoreMenu, null))), Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])(components_inserter, {
 899      setIsOpened: setIsInserterOpened
 900    }), inserter.contentContainer[0]));
 901  }
 902  
 903  /* harmony default export */ var header = (Header);
 904  
 905  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/inserter/use-inserter.js
 906  /**
 907   * WordPress dependencies
 908   */
 909  
 910  
 911  /**
 912   * Internal dependencies
 913   */
 914  
 915  
 916  function useInserter(inserter) {
 917    const isInserterOpened = Object(external_wp_data_["useSelect"])(select => select(store).isInserterOpened(), []);
 918    const {
 919      setIsInserterOpened
 920    } = Object(external_wp_data_["useDispatch"])(store);
 921    Object(external_wp_element_["useEffect"])(() => {
 922      if (isInserterOpened) {
 923        inserter.open();
 924      } else {
 925        inserter.close();
 926      }
 927    }, [inserter, isInserterOpened]);
 928    return [isInserterOpened, Object(external_wp_element_["useCallback"])(updater => {
 929      let isOpen = updater;
 930  
 931      if (typeof updater === 'function') {
 932        isOpen = updater(Object(external_wp_data_["select"])(store).isInserterOpened());
 933      }
 934  
 935      setIsInserterOpened(isOpen);
 936    }, [setIsInserterOpened])];
 937  }
 938  
 939  // EXTERNAL MODULE: external ["wp","isShallowEqual"]
 940  var external_wp_isShallowEqual_ = __webpack_require__("rl8x");
 941  var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_);
 942  
 943  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/utils.js
 944  // @ts-check
 945  
 946  /**
 947   * WordPress dependencies
 948   */
 949  
 950  
 951  /**
 952   * External dependencies
 953   */
 954  
 955  
 956  /**
 957   * Convert settingId to widgetId.
 958   *
 959   * @param {string} settingId The setting id.
 960   * @return {string} The widget id.
 961   */
 962  
 963  function settingIdToWidgetId(settingId) {
 964    const matches = settingId.match(/^widget_(.+)(?:\[(\d+)\])$/);
 965  
 966    if (matches) {
 967      const idBase = matches[1];
 968      const number = parseInt(matches[2], 10);
 969      return `$idBase}-$number}`;
 970    }
 971  
 972    return settingId;
 973  }
 974  /**
 975   * Transform a block to a customizable widget.
 976   *
 977   * @param {WPBlock} block          The block to be transformed from.
 978   * @param {Object}  existingWidget The widget to be extended from.
 979   * @return {Object} The transformed widget.
 980   */
 981  
 982  function blockToWidget(block) {
 983    let existingWidget = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
 984    let widget;
 985    const isValidLegacyWidgetBlock = block.name === 'core/legacy-widget' && (block.attributes.id || block.attributes.instance);
 986  
 987    if (isValidLegacyWidgetBlock) {
 988      if (block.attributes.id) {
 989        // Widget that does not extend WP_Widget.
 990        widget = {
 991          id: block.attributes.id
 992        };
 993      } else {
 994        const {
 995          encoded,
 996          hash,
 997          raw,
 998          ...rest
 999        } = block.attributes.instance; // Widget that extends WP_Widget.
1000  
1001        widget = {
1002          idBase: block.attributes.idBase,
1003          instance: { ...(existingWidget === null || existingWidget === void 0 ? void 0 : existingWidget.instance),
1004            // Required only for the customizer.
1005            is_widget_customizer_js_value: true,
1006            encoded_serialized_instance: encoded,
1007            instance_hash_key: hash,
1008            raw_instance: raw,
1009            ...rest
1010          }
1011        };
1012      }
1013    } else {
1014      const instance = {
1015        content: Object(external_wp_blocks_["serialize"])(block)
1016      };
1017      widget = {
1018        idBase: 'block',
1019        widgetClass: 'WP_Widget_Block',
1020        instance: {
1021          raw_instance: instance
1022        }
1023      };
1024    }
1025  
1026    return { ...Object(external_lodash_["omit"])(existingWidget, ['form', 'rendered']),
1027      ...widget
1028    };
1029  }
1030  /**
1031   * Transform a widget to a block.
1032   *
1033   * @param {Object} widget          The widget to be transformed from.
1034   * @param {string} widget.id       The widget id.
1035   * @param {string} widget.idBase   The id base of the widget.
1036   * @param {number} widget.number   The number/index of the widget.
1037   * @param {Object} widget.instance The instance of the widget.
1038   * @return {WPBlock} The transformed block.
1039   */
1040  
1041  function widgetToBlock(_ref) {
1042    let {
1043      id,
1044      idBase,
1045      number,
1046      instance
1047    } = _ref;
1048    let block;
1049    const {
1050      encoded_serialized_instance: encoded,
1051      instance_hash_key: hash,
1052      raw_instance: raw,
1053      ...rest
1054    } = instance;
1055  
1056    if (idBase === 'block') {
1057      const parsedBlocks = Object(external_wp_blocks_["parse"])(raw.content);
1058      block = parsedBlocks.length ? parsedBlocks[0] : Object(external_wp_blocks_["createBlock"])('core/paragraph', {});
1059    } else if (number) {
1060      // Widget that extends WP_Widget.
1061      block = Object(external_wp_blocks_["createBlock"])('core/legacy-widget', {
1062        idBase,
1063        instance: {
1064          encoded,
1065          hash,
1066          raw,
1067          ...rest
1068        }
1069      });
1070    } else {
1071      // Widget that does not extend WP_Widget.
1072      block = Object(external_wp_blocks_["createBlock"])('core/legacy-widget', {
1073        id
1074      });
1075    }
1076  
1077    return Object(external_wp_widgets_["addWidgetIdToBlock"])(block, id);
1078  }
1079  
1080  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js
1081  /**
1082   * External dependencies
1083   */
1084  
1085  /**
1086   * WordPress dependencies
1087   */
1088  
1089  
1090  
1091  
1092  /**
1093   * Internal dependencies
1094   */
1095  
1096  
1097  
1098  function widgetsToBlocks(widgets) {
1099    return widgets.map(widget => widgetToBlock(widget));
1100  }
1101  
1102  function useSidebarBlockEditor(sidebar) {
1103    const [blocks, setBlocks] = Object(external_wp_element_["useState"])(() => widgetsToBlocks(sidebar.getWidgets()));
1104    Object(external_wp_element_["useEffect"])(() => {
1105      return sidebar.subscribe((prevWidgets, nextWidgets) => {
1106        setBlocks(prevBlocks => {
1107          const prevWidgetsMap = new Map(prevWidgets.map(widget => [widget.id, widget]));
1108          const prevBlocksMap = new Map(prevBlocks.map(block => [Object(external_wp_widgets_["getWidgetIdFromBlock"])(block), block]));
1109          const nextBlocks = nextWidgets.map(nextWidget => {
1110            const prevWidget = prevWidgetsMap.get(nextWidget.id); // Bail out updates.
1111  
1112            if (prevWidget && prevWidget === nextWidget) {
1113              return prevBlocksMap.get(nextWidget.id);
1114            }
1115  
1116            return widgetToBlock(nextWidget);
1117          }); // Bail out updates.
1118  
1119          if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) {
1120            return prevBlocks;
1121          }
1122  
1123          return nextBlocks;
1124        });
1125      });
1126    }, [sidebar]);
1127    const onChangeBlocks = Object(external_wp_element_["useCallback"])(nextBlocks => {
1128      setBlocks(prevBlocks => {
1129        if (external_wp_isShallowEqual_default()(prevBlocks, nextBlocks)) {
1130          return prevBlocks;
1131        }
1132  
1133        const prevBlocksMap = new Map(prevBlocks.map(block => [Object(external_wp_widgets_["getWidgetIdFromBlock"])(block), block]));
1134        const nextWidgets = nextBlocks.map(nextBlock => {
1135          const widgetId = Object(external_wp_widgets_["getWidgetIdFromBlock"])(nextBlock); // Update existing widgets.
1136  
1137          if (widgetId && prevBlocksMap.has(widgetId)) {
1138            const prevBlock = prevBlocksMap.get(widgetId);
1139            const prevWidget = sidebar.getWidget(widgetId); // Bail out updates by returning the previous widgets.
1140            // Deep equality is necessary until the block editor's internals changes.
1141  
1142            if (Object(external_lodash_["isEqual"])(nextBlock, prevBlock) && prevWidget) {
1143              return prevWidget;
1144            }
1145  
1146            return blockToWidget(nextBlock, prevWidget);
1147          } // Add a new widget.
1148  
1149  
1150          return blockToWidget(nextBlock);
1151        }); // Bail out updates if the updated widgets are the same.
1152  
1153        if (external_wp_isShallowEqual_default()(sidebar.getWidgets(), nextWidgets)) {
1154          return prevBlocks;
1155        }
1156  
1157        const addedWidgetIds = sidebar.setWidgets(nextWidgets);
1158        return nextBlocks.reduce((updatedNextBlocks, nextBlock, index) => {
1159          const addedWidgetId = addedWidgetIds[index];
1160  
1161          if (addedWidgetId !== null) {
1162            // Only create a new instance if necessary to prevent
1163            // the whole editor from re-rendering on every edit.
1164            if (updatedNextBlocks === nextBlocks) {
1165              updatedNextBlocks = nextBlocks.slice();
1166            }
1167  
1168            updatedNextBlocks[index] = Object(external_wp_widgets_["addWidgetIdToBlock"])(nextBlock, addedWidgetId);
1169          }
1170  
1171          return updatedNextBlocks;
1172        }, nextBlocks);
1173      });
1174    }, [sidebar]);
1175    return [blocks, onChangeBlocks, onChangeBlocks];
1176  }
1177  
1178  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/index.js
1179  
1180  
1181  /**
1182   * WordPress dependencies
1183   */
1184  
1185  /**
1186   * Internal dependencies
1187   */
1188  
1189  
1190  const FocusControlContext = Object(external_wp_element_["createContext"])();
1191  function FocusControl(_ref) {
1192    let {
1193      api,
1194      sidebarControls,
1195      children
1196    } = _ref;
1197    const [focusedWidgetIdRef, setFocusedWidgetIdRef] = Object(external_wp_element_["useState"])({
1198      current: null
1199    });
1200    const focusWidget = Object(external_wp_element_["useCallback"])(widgetId => {
1201      for (const sidebarControl of sidebarControls) {
1202        const widgets = sidebarControl.setting.get();
1203  
1204        if (widgets.includes(widgetId)) {
1205          sidebarControl.sectionInstance.expand({
1206            // Schedule it after the complete callback so that
1207            // it won't be overridden by the "Back" button focus.
1208            completeCallback() {
1209              // Create a "ref-like" object every time to ensure
1210              // the same widget id can also triggers the focus control.
1211              setFocusedWidgetIdRef({
1212                current: widgetId
1213              });
1214            }
1215  
1216          });
1217          break;
1218        }
1219      }
1220    }, [sidebarControls]);
1221    Object(external_wp_element_["useEffect"])(() => {
1222      function handleFocus(settingId) {
1223        const widgetId = settingIdToWidgetId(settingId);
1224        focusWidget(widgetId);
1225      }
1226  
1227      function handleReady() {
1228        api.previewer.preview.bind('focus-control-for-setting', handleFocus);
1229      }
1230  
1231      api.previewer.bind('ready', handleReady);
1232      return () => {
1233        api.previewer.unbind('ready', handleReady);
1234        api.previewer.preview.unbind('focus-control-for-setting', handleFocus);
1235      };
1236    }, [api, focusWidget]);
1237    const context = Object(external_wp_element_["useMemo"])(() => [focusedWidgetIdRef, focusWidget], [focusedWidgetIdRef, focusWidget]);
1238    return Object(external_wp_element_["createElement"])(FocusControlContext.Provider, {
1239      value: context
1240    }, children);
1241  }
1242  const useFocusControl = () => Object(external_wp_element_["useContext"])(FocusControlContext);
1243  
1244  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/focus-control/use-blocks-focus-control.js
1245  /**
1246   * WordPress dependencies
1247   */
1248  
1249  
1250  
1251  
1252  /**
1253   * Internal dependencies
1254   */
1255  
1256  
1257  function useBlocksFocusControl(blocks) {
1258    const {
1259      selectBlock
1260    } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
1261    const [focusedWidgetIdRef] = useFocusControl();
1262    const blocksRef = Object(external_wp_element_["useRef"])(blocks);
1263    Object(external_wp_element_["useEffect"])(() => {
1264      blocksRef.current = blocks;
1265    }, [blocks]);
1266    Object(external_wp_element_["useEffect"])(() => {
1267      if (focusedWidgetIdRef.current) {
1268        const focusedBlock = blocksRef.current.find(block => Object(external_wp_widgets_["getWidgetIdFromBlock"])(block) === focusedWidgetIdRef.current);
1269  
1270        if (focusedBlock) {
1271          selectBlock(focusedBlock.clientId); // If the block is already being selected, the DOM node won't
1272          // get focused again automatically.
1273          // We select the DOM and focus it manually here.
1274  
1275          const blockNode = document.querySelector(`[data-block="$focusedBlock.clientId}"]`);
1276          blockNode === null || blockNode === void 0 ? void 0 : blockNode.focus();
1277        }
1278      }
1279    }, [focusedWidgetIdRef, selectBlock]);
1280  }
1281  
1282  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-editor-provider.js
1283  
1284  
1285  /**
1286   * WordPress dependencies
1287   */
1288  
1289  /**
1290   * Internal dependencies
1291   */
1292  
1293  
1294  
1295  function SidebarEditorProvider(_ref) {
1296    let {
1297      sidebar,
1298      settings,
1299      children
1300    } = _ref;
1301    const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar);
1302    useBlocksFocusControl(blocks);
1303    return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorProvider"], {
1304      value: blocks,
1305      onInput: onInput,
1306      onChange: onChange,
1307      settings: settings,
1308      useSubRegistry: false
1309    }, children);
1310  }
1311  
1312  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/welcome-guide/index.js
1313  
1314  
1315  /**
1316   * WordPress dependencies
1317   */
1318  
1319  
1320  
1321  
1322  function WelcomeGuide(_ref) {
1323    let {
1324      sidebar
1325    } = _ref;
1326    const {
1327      toggleFeature
1328    } = Object(external_wp_data_["useDispatch"])(build_module["i" /* store */]);
1329    const isEntirelyBlockWidgets = sidebar.getWidgets().every(widget => widget.id.startsWith('block-'));
1330    return Object(external_wp_element_["createElement"])("div", {
1331      className: "customize-widgets-welcome-guide"
1332    }, Object(external_wp_element_["createElement"])("div", {
1333      className: "customize-widgets-welcome-guide__image__wrapper"
1334    }, Object(external_wp_element_["createElement"])("picture", null, Object(external_wp_element_["createElement"])("source", {
1335      srcSet: "https://s.w.org/images/block-editor/welcome-editor.svg",
1336      media: "(prefers-reduced-motion: reduce)"
1337    }), Object(external_wp_element_["createElement"])("img", {
1338      className: "customize-widgets-welcome-guide__image",
1339      src: "https://s.w.org/images/block-editor/welcome-editor.gif",
1340      width: "312",
1341      height: "240",
1342      alt: ""
1343    }))), Object(external_wp_element_["createElement"])("h1", {
1344      className: "customize-widgets-welcome-guide__heading"
1345    }, Object(external_wp_i18n_["__"])('Welcome to block Widgets')), Object(external_wp_element_["createElement"])("p", {
1346      className: "customize-widgets-welcome-guide__text"
1347    }, 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"], {
1348      className: "customize-widgets-welcome-guide__button",
1349      variant: "primary",
1350      onClick: () => toggleFeature('core/customize-widgets', 'welcomeGuide')
1351    }, Object(external_wp_i18n_["__"])('Got it')), Object(external_wp_element_["createElement"])("hr", {
1352      className: "customize-widgets-welcome-guide__separator"
1353    }), !isEntirelyBlockWidgets && Object(external_wp_element_["createElement"])("p", {
1354      className: "customize-widgets-welcome-guide__more-info"
1355    }, 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"], {
1356      href: Object(external_wp_i18n_["__"])('https://wordpress.org/plugins/classic-widgets/')
1357    }, Object(external_wp_i18n_["__"])('Get the Classic Widgets plugin.'))), Object(external_wp_element_["createElement"])("p", {
1358      className: "customize-widgets-welcome-guide__more-info"
1359    }, 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"], {
1360      href: Object(external_wp_i18n_["__"])('https://wordpress.org/support/article/wordpress-editor/')
1361    }, Object(external_wp_i18n_["__"])("Here's a detailed guide."))));
1362  }
1363  
1364  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/keyboard-shortcuts/index.js
1365  /**
1366   * WordPress dependencies
1367   */
1368  
1369  
1370  
1371  
1372  
1373  function KeyboardShortcuts(_ref) {
1374    let {
1375      undo,
1376      redo,
1377      save
1378    } = _ref;
1379    Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/undo', event => {
1380      undo();
1381      event.preventDefault();
1382    });
1383    Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/redo', event => {
1384      redo();
1385      event.preventDefault();
1386    });
1387    Object(external_wp_keyboardShortcuts_["useShortcut"])('core/customize-widgets/save', event => {
1388      event.preventDefault();
1389      save();
1390    });
1391    return null;
1392  }
1393  
1394  function KeyboardShortcutsRegister() {
1395    const {
1396      registerShortcut,
1397      unregisterShortcut
1398    } = Object(external_wp_data_["useDispatch"])(external_wp_keyboardShortcuts_["store"]);
1399    Object(external_wp_element_["useEffect"])(() => {
1400      registerShortcut({
1401        name: 'core/customize-widgets/undo',
1402        category: 'global',
1403        description: Object(external_wp_i18n_["__"])('Undo your last changes.'),
1404        keyCombination: {
1405          modifier: 'primary',
1406          character: 'z'
1407        }
1408      });
1409      registerShortcut({
1410        name: 'core/customize-widgets/redo',
1411        category: 'global',
1412        description: Object(external_wp_i18n_["__"])('Redo your last undo.'),
1413        keyCombination: {
1414          modifier: 'primaryShift',
1415          character: 'z'
1416        }
1417      });
1418      registerShortcut({
1419        name: 'core/customize-widgets/save',
1420        category: 'global',
1421        description: Object(external_wp_i18n_["__"])('Save your changes.'),
1422        keyCombination: {
1423          modifier: 'primary',
1424          character: 's'
1425        }
1426      });
1427      return () => {
1428        unregisterShortcut('core/customize-widgets/undo');
1429        unregisterShortcut('core/customize-widgets/redo');
1430        unregisterShortcut('core/customize-widgets/save');
1431      };
1432    }, [registerShortcut]);
1433    return null;
1434  }
1435  
1436  KeyboardShortcuts.Register = KeyboardShortcutsRegister;
1437  /* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);
1438  
1439  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/block-appender/index.js
1440  
1441  
1442  
1443  /**
1444   * WordPress dependencies
1445   */
1446  
1447  
1448  
1449  function BlockAppender(props) {
1450    const ref = Object(external_wp_element_["useRef"])();
1451    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
1452    // being lost when emptying the widget area.
1453  
1454    Object(external_wp_element_["useEffect"])(() => {
1455      if (isBlocksListEmpty && ref.current) {
1456        const {
1457          ownerDocument
1458        } = ref.current;
1459  
1460        if (!ownerDocument.activeElement || ownerDocument.activeElement === ownerDocument.body) {
1461          ref.current.focus();
1462        }
1463      }
1464    }, [isBlocksListEmpty]);
1465    return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["ButtonBlockAppender"], Object(esm_extends["a" /* default */])({}, props, {
1466      ref: ref
1467    }));
1468  }
1469  
1470  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/index.js
1471  
1472  
1473  /**
1474   * External dependencies
1475   */
1476  
1477  /**
1478   * WordPress dependencies
1479   */
1480  
1481  
1482  
1483  
1484  
1485  
1486  
1487  /**
1488   * Internal dependencies
1489   */
1490  
1491  
1492  
1493  
1494  
1495  
1496  
1497  
1498  function SidebarBlockEditor(_ref) {
1499    let {
1500      blockEditorSettings,
1501      sidebar,
1502      inserter,
1503      inspector
1504    } = _ref;
1505    const [isInserterOpened, setIsInserterOpened] = useInserter(inserter);
1506    const {
1507      hasUploadPermissions,
1508      isFixedToolbarActive,
1509      keepCaretInsideBlock,
1510      isWelcomeGuideActive
1511    } = Object(external_wp_data_["useSelect"])(select => {
1512      const {
1513        isFeatureActive
1514      } = select(build_module["i" /* store */]);
1515      return {
1516        hasUploadPermissions: Object(external_lodash_["defaultTo"])(select(external_wp_coreData_["store"]).canUser('create', 'media'), true),
1517        isFixedToolbarActive: isFeatureActive('core/customize-widgets', 'fixedToolbar'),
1518        keepCaretInsideBlock: isFeatureActive('core/customize-widgets', 'keepCaretInsideBlock'),
1519        isWelcomeGuideActive: isFeatureActive('core/customize-widgets', 'welcomeGuide')
1520      };
1521    }, []);
1522    const settings = Object(external_wp_element_["useMemo"])(() => {
1523      let mediaUploadBlockEditor;
1524  
1525      if (hasUploadPermissions) {
1526        mediaUploadBlockEditor = _ref2 => {
1527          let {
1528            onError,
1529            ...argumentsObject
1530          } = _ref2;
1531          Object(external_wp_mediaUtils_["uploadMedia"])({
1532            wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
1533            onError: _ref3 => {
1534              let {
1535                message
1536              } = _ref3;
1537              return onError(message);
1538            },
1539            ...argumentsObject
1540          });
1541        };
1542      }
1543  
1544      return { ...blockEditorSettings,
1545        __experimentalSetIsInserterOpened: setIsInserterOpened,
1546        mediaUpload: mediaUploadBlockEditor,
1547        hasFixedToolbar: isFixedToolbarActive,
1548        keepCaretInsideBlock,
1549        __unstableHasCustomAppender: true
1550      };
1551    }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, setIsInserterOpened]);
1552  
1553    if (isWelcomeGuideActive) {
1554      return Object(external_wp_element_["createElement"])(WelcomeGuide, {
1555        sidebar: sidebar
1556      });
1557    }
1558  
1559    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, {
1560      sidebar: sidebar,
1561      settings: settings
1562    }, Object(external_wp_element_["createElement"])(keyboard_shortcuts, {
1563      undo: sidebar.undo,
1564      redo: sidebar.redo,
1565      save: sidebar.save
1566    }), Object(external_wp_element_["createElement"])(header, {
1567      sidebar: sidebar,
1568      inserter: inserter,
1569      isInserterOpened: isInserterOpened,
1570      setIsInserterOpened: setIsInserterOpened,
1571      isFixedToolbarActive: isFixedToolbarActive
1572    }), 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_["__unstableEditorStyles"], {
1573      styles: settings.defaultEditorStyles
1574    }), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockSelectionClearer"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["WritingFlow"], {
1575      className: "editor-styles-wrapper"
1576    }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["ObserveTyping"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockList"], {
1577      renderAppender: BlockAppender
1578    })))))), Object(external_wp_element_["createPortal"])( // This is a temporary hack to prevent button component inside <BlockInspector>
1579    // from submitting form when type="button" is not specified.
1580    Object(external_wp_element_["createElement"])("form", {
1581      onSubmit: event => event.preventDefault()
1582    }, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockInspector"], null)), inspector.contentContainer[0])), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__unstableBlockSettingsMenuFirstItem"], null, _ref4 => {
1583      let {
1584        onClose
1585      } = _ref4;
1586      return Object(external_wp_element_["createElement"])(block_inspector_button, {
1587        inspector: inspector,
1588        closeMenu: onClose
1589      });
1590    }));
1591  }
1592  
1593  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-controls/index.js
1594  
1595  
1596  /**
1597   * WordPress dependencies
1598   */
1599  
1600  const SidebarControlsContext = Object(external_wp_element_["createContext"])();
1601  function SidebarControls(_ref) {
1602    let {
1603      sidebarControls,
1604      activeSidebarControl,
1605      children
1606    } = _ref;
1607    const context = Object(external_wp_element_["useMemo"])(() => ({
1608      sidebarControls,
1609      activeSidebarControl
1610    }), [sidebarControls, activeSidebarControl]);
1611    return Object(external_wp_element_["createElement"])(SidebarControlsContext.Provider, {
1612      value: context
1613    }, children);
1614  }
1615  function useSidebarControls() {
1616    const {
1617      sidebarControls
1618    } = Object(external_wp_element_["useContext"])(SidebarControlsContext);
1619    return sidebarControls;
1620  }
1621  function useActiveSidebarControl() {
1622    const {
1623      activeSidebarControl
1624    } = Object(external_wp_element_["useContext"])(SidebarControlsContext);
1625    return activeSidebarControl;
1626  }
1627  
1628  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/use-clear-selected-block.js
1629  /**
1630   * WordPress dependencies
1631   */
1632  
1633  
1634  
1635  /**
1636   * We can't just use <BlockSelectionClearer> because the customizer has
1637   * many root nodes rather than just one in the post editor.
1638   * We need to listen to the focus events in all those roots, and also in
1639   * the preview iframe.
1640   * This hook will clear the selected block when focusing outside the editor,
1641   * with a few exceptions:
1642   * 1. Focusing on popovers.
1643   * 2. Focusing on the inspector.
1644   * 3. Focusing on any modals/dialogs.
1645   * These cases are normally triggered by user interactions from the editor,
1646   * not by explicitly focusing outside the editor, hence no need for clearing.
1647   *
1648   * @param {Object} sidebarControl The sidebar control instance.
1649   * @param {Object} popoverRef     The ref object of the popover node container.
1650   */
1651  
1652  function useClearSelectedBlock(sidebarControl, popoverRef) {
1653    const {
1654      hasSelectedBlock,
1655      hasMultiSelection
1656    } = Object(external_wp_data_["useSelect"])(external_wp_blockEditor_["store"]);
1657    const {
1658      clearSelectedBlock
1659    } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
1660    Object(external_wp_element_["useEffect"])(() => {
1661      if (popoverRef.current && sidebarControl) {
1662        const inspector = sidebarControl.inspector;
1663        const container = sidebarControl.container[0];
1664        const ownerDocument = container.ownerDocument;
1665        const ownerWindow = ownerDocument.defaultView;
1666  
1667        function handleClearSelectedBlock(element) {
1668          if ( // 1. Make sure there are blocks being selected.
1669          (hasSelectedBlock() || hasMultiSelection()) && // 2. The element should exist in the DOM (not deleted).
1670          element && ownerDocument.contains(element) && // 3. It should also not exist in the container, the popover, nor the dialog.
1671          !container.contains(element) && !popoverRef.current.contains(element) && !element.closest('[role="dialog"]') && // 4. The inspector should not be opened.
1672          !inspector.expanded()) {
1673            clearSelectedBlock();
1674          }
1675        } // Handle mouse down in the same document.
1676  
1677  
1678        function handleMouseDown(event) {
1679          handleClearSelectedBlock(event.target);
1680        } // Handle focusing outside the current document, like to iframes.
1681  
1682  
1683        function handleBlur() {
1684          handleClearSelectedBlock(ownerDocument.activeElement);
1685        }
1686  
1687        ownerDocument.addEventListener('mousedown', handleMouseDown);
1688        ownerWindow.addEventListener('blur', handleBlur);
1689        return () => {
1690          ownerDocument.removeEventListener('mousedown', handleMouseDown);
1691          ownerWindow.removeEventListener('blur', handleBlur);
1692        };
1693      }
1694    }, [popoverRef, sidebarControl, hasSelectedBlock, hasMultiSelection, clearSelectedBlock]);
1695  }
1696  
1697  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/customize-widgets/index.js
1698  
1699  
1700  /**
1701   * WordPress dependencies
1702   */
1703  
1704  
1705  
1706  /**
1707   * Internal dependencies
1708   */
1709  
1710  
1711  
1712  
1713  
1714  
1715  function CustomizeWidgets(_ref) {
1716    let {
1717      api,
1718      sidebarControls,
1719      blockEditorSettings
1720    } = _ref;
1721    const [activeSidebarControl, setActiveSidebarControl] = Object(external_wp_element_["useState"])(null);
1722    const parentContainer = document.getElementById('customize-theme-controls');
1723    const popoverRef = Object(external_wp_element_["useRef"])();
1724    useClearSelectedBlock(activeSidebarControl, popoverRef);
1725    Object(external_wp_element_["useEffect"])(() => {
1726      const unsubscribers = sidebarControls.map(sidebarControl => sidebarControl.subscribe(expanded => {
1727        if (expanded) {
1728          setActiveSidebarControl(sidebarControl);
1729        }
1730      }));
1731      return () => {
1732        unsubscribers.forEach(unsubscriber => unsubscriber());
1733      };
1734    }, [sidebarControls]);
1735    const activeSidebar = activeSidebarControl && Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])(error_boundary_ErrorBoundary, null, Object(external_wp_element_["createElement"])(SidebarBlockEditor, {
1736      key: activeSidebarControl.id,
1737      blockEditorSettings: blockEditorSettings,
1738      sidebar: activeSidebarControl.sidebarAdapter,
1739      inserter: activeSidebarControl.inserter,
1740      inspector: activeSidebarControl.inspector
1741    })), activeSidebarControl.container[0]); // We have to portal this to the parent of both the editor and the inspector,
1742    // so that the popovers will appear above both of them.
1743  
1744    const popover = parentContainer && Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])("div", {
1745      className: "customize-widgets-popover",
1746      ref: popoverRef
1747    }, Object(external_wp_element_["createElement"])(external_wp_components_["Popover"].Slot, null)), parentContainer);
1748    return Object(external_wp_element_["createElement"])(external_wp_keyboardShortcuts_["ShortcutProvider"], null, Object(external_wp_element_["createElement"])(external_wp_components_["SlotFillProvider"], null, Object(external_wp_element_["createElement"])(SidebarControls, {
1749      sidebarControls: sidebarControls,
1750      activeSidebarControl: activeSidebarControl
1751    }, Object(external_wp_element_["createElement"])(FocusControl, {
1752      api: api,
1753      sidebarControls: sidebarControls
1754    }, activeSidebar, popover))));
1755  }
1756  
1757  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inspector-section.js
1758  function getInspectorSection() {
1759    const {
1760      wp: {
1761        customize
1762      }
1763    } = window;
1764    return class InspectorSection extends customize.Section {
1765      constructor(id, options) {
1766        super(id, options);
1767        this.parentSection = options.parentSection;
1768        this.returnFocusWhenClose = null;
1769        this._isOpen = false;
1770      }
1771  
1772      get isOpen() {
1773        return this._isOpen;
1774      }
1775  
1776      set isOpen(value) {
1777        this._isOpen = value;
1778        this.triggerActiveCallbacks();
1779      }
1780  
1781      ready() {
1782        this.contentContainer[0].classList.add('customize-widgets-layout__inspector');
1783      }
1784  
1785      isContextuallyActive() {
1786        return this.isOpen;
1787      }
1788  
1789      onChangeExpanded(expanded, args) {
1790        super.onChangeExpanded(expanded, args);
1791  
1792        if (this.parentSection && !args.unchanged) {
1793          if (expanded) {
1794            this.parentSection.collapse({
1795              manualTransition: true
1796            });
1797          } else {
1798            this.parentSection.expand({
1799              manualTransition: true,
1800              completeCallback: () => {
1801                // Return focus after finishing the transition.
1802                if (this.returnFocusWhenClose && !this.contentContainer[0].contains(this.returnFocusWhenClose)) {
1803                  this.returnFocusWhenClose.focus();
1804                }
1805              }
1806            });
1807          }
1808        }
1809      }
1810  
1811      open() {
1812        let {
1813          returnFocusWhenClose
1814        } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1815        this.isOpen = true;
1816        this.returnFocusWhenClose = returnFocusWhenClose;
1817        this.expand({
1818          allowMultiple: true
1819        });
1820      }
1821  
1822      close() {
1823        this.collapse({
1824          allowMultiple: true
1825        });
1826      }
1827  
1828      collapse(options) {
1829        // Overridden collapse() function. Mostly call the parent collapse(), but also
1830        // move our .isOpen to false.
1831        // Initially, I tried tracking this with onChangeExpanded(), but it doesn't work
1832        // because the block settings sidebar is a layer "on top of" the G editor sidebar.
1833        //
1834        // For example, when closing the block settings sidebar, the G
1835        // editor sidebar would display, and onChangeExpanded in
1836        // inspector-section would run with expanded=true, but I want
1837        // isOpen to be false when the block settings is closed.
1838        this.isOpen = false;
1839        super.collapse(options);
1840      }
1841  
1842      triggerActiveCallbacks() {
1843        // Manually fire the callbacks associated with moving this.active
1844        // from false to true.  "active" is always true for this section,
1845        // and "isContextuallyActive" reflects if the block settings
1846        // sidebar is currently visible, that is, it has replaced the main
1847        // Gutenberg view.
1848        // The WP customizer only checks ".isContextuallyActive()" when
1849        // ".active" changes values. But our ".active" never changes value.
1850        // The WP customizer never foresaw a section being used a way we
1851        // fit the block settings sidebar into a section. By manually
1852        // triggering the "this.active" callbacks, we force the WP
1853        // customizer to query our .isContextuallyActive() function and
1854        // update its view of our status.
1855        this.active.callbacks.fireWith(this.active, [false, true]);
1856      }
1857  
1858    };
1859  }
1860  
1861  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/sidebar-section.js
1862  /**
1863   * WordPress dependencies
1864   */
1865  
1866  /**
1867   * Internal dependencies
1868   */
1869  
1870  
1871  
1872  const getInspectorSectionId = sidebarId => `widgets-inspector-$sidebarId}`;
1873  
1874  function getSidebarSection() {
1875    const {
1876      wp: {
1877        customize
1878      }
1879    } = window;
1880    return class SidebarSection extends customize.Section {
1881      ready() {
1882        const InspectorSection = getInspectorSection();
1883        this.inspector = new InspectorSection(getInspectorSectionId(this.id), {
1884          title: Object(external_wp_i18n_["__"])('Block Settings'),
1885          parentSection: this,
1886          customizeAction: [Object(external_wp_i18n_["__"])('Customizing'), Object(external_wp_i18n_["__"])('Widgets'), this.params.title].join(' ▸ ')
1887        });
1888        customize.section.add(this.inspector);
1889        this.contentContainer[0].classList.add('customize-widgets__sidebar-section');
1890      }
1891  
1892      hasSubSectionOpened() {
1893        return this.inspector.expanded();
1894      }
1895  
1896      onChangeExpanded(expanded, _args) {
1897        const controls = this.controls();
1898        const args = { ..._args,
1899  
1900          completeCallback() {
1901            var _args$completeCallbac;
1902  
1903            controls.forEach(control => {
1904              var _control$onChangeSect;
1905  
1906              (_control$onChangeSect = control.onChangeSectionExpanded) === null || _control$onChangeSect === void 0 ? void 0 : _control$onChangeSect.call(control, expanded, args);
1907            });
1908            (_args$completeCallbac = _args.completeCallback) === null || _args$completeCallbac === void 0 ? void 0 : _args$completeCallbac.call(_args);
1909          }
1910  
1911        };
1912  
1913        if (args.manualTransition) {
1914          if (expanded) {
1915            this.contentContainer.addClass(['busy', 'open']);
1916            this.contentContainer.removeClass('is-sub-section-open');
1917            this.contentContainer.closest('.wp-full-overlay').addClass('section-open');
1918            this.contentContainer.one('transitionend', () => {
1919              this.contentContainer.removeClass('busy');
1920              args.completeCallback();
1921            });
1922          } else {
1923            this.contentContainer.addClass(['busy', 'is-sub-section-open']);
1924            this.contentContainer.closest('.wp-full-overlay').addClass('section-open');
1925            this.contentContainer.removeClass('open');
1926            this.contentContainer.one('transitionend', () => {
1927              this.contentContainer.removeClass('busy');
1928              args.completeCallback();
1929            });
1930          }
1931        } else {
1932          super.onChangeExpanded(expanded, args);
1933        }
1934      }
1935  
1936    };
1937  }
1938  
1939  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/components/sidebar-block-editor/sidebar-adapter.js
1940  /**
1941   * Internal dependencies
1942   */
1943  
1944  const {
1945    wp
1946  } = window;
1947  
1948  function parseWidgetId(widgetId) {
1949    const matches = widgetId.match(/^(.+)-(\d+)$/);
1950  
1951    if (matches) {
1952      return {
1953        idBase: matches[1],
1954        number: parseInt(matches[2], 10)
1955      };
1956    } // Likely an old single widget.
1957  
1958  
1959    return {
1960      idBase: widgetId
1961    };
1962  }
1963  
1964  function widgetIdToSettingId(widgetId) {
1965    const {
1966      idBase,
1967      number
1968    } = parseWidgetId(widgetId);
1969  
1970    if (number) {
1971      return `widget_$idBase}[$number}]`;
1972    }
1973  
1974    return `widget_$idBase}`;
1975  }
1976  /**
1977   * This is a custom debounce function to call different callbacks depending on
1978   * whether it's the _leading_ call or not.
1979   *
1980   * @param {Function} leading  The callback that gets called first.
1981   * @param {Function} callback The callback that gets called after the first time.
1982   * @param {number}   timeout  The debounced time in milliseconds.
1983   * @return {Function} The debounced function.
1984   */
1985  
1986  
1987  function debounce(leading, callback, timeout) {
1988    let isLeading = false;
1989    let timerID;
1990  
1991    function debounced() {
1992      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1993        args[_key] = arguments[_key];
1994      }
1995  
1996      const result = (isLeading ? callback : leading).apply(this, args);
1997      isLeading = true;
1998      clearTimeout(timerID);
1999      timerID = setTimeout(() => {
2000        isLeading = false;
2001      }, timeout);
2002      return result;
2003    }
2004  
2005    debounced.cancel = () => {
2006      isLeading = false;
2007      clearTimeout(timerID);
2008    };
2009  
2010    return debounced;
2011  }
2012  
2013  class sidebar_adapter_SidebarAdapter {
2014    constructor(setting, api) {
2015      this.setting = setting;
2016      this.api = api;
2017      this.locked = false;
2018      this.widgetsCache = new WeakMap();
2019      this.subscribers = new Set();
2020      this.history = [this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
2021      this.historyIndex = 0;
2022      this.historySubscribers = new Set(); // Debounce the input for 1 second.
2023  
2024      this._debounceSetHistory = debounce(this._pushHistory, this._replaceHistory, 1000);
2025      this.setting.bind(this._handleSettingChange.bind(this));
2026      this.api.bind('change', this._handleAllSettingsChange.bind(this));
2027      this.undo = this.undo.bind(this);
2028      this.redo = this.redo.bind(this);
2029      this.save = this.save.bind(this);
2030    }
2031  
2032    subscribe(callback) {
2033      this.subscribers.add(callback);
2034      return () => {
2035        this.subscribers.delete(callback);
2036      };
2037    }
2038  
2039    getWidgets() {
2040      return this.history[this.historyIndex];
2041    }
2042  
2043    _emit() {
2044      for (const callback of this.subscribers) {
2045        callback(...arguments);
2046      }
2047    }
2048  
2049    _getWidgetIds() {
2050      return this.setting.get();
2051    }
2052  
2053    _pushHistory() {
2054      this.history = [...this.history.slice(0, this.historyIndex + 1), this._getWidgetIds().map(widgetId => this.getWidget(widgetId))];
2055      this.historyIndex += 1;
2056      this.historySubscribers.forEach(listener => listener());
2057    }
2058  
2059    _replaceHistory() {
2060      this.history[this.historyIndex] = this._getWidgetIds().map(widgetId => this.getWidget(widgetId));
2061    }
2062  
2063    _handleSettingChange() {
2064      if (this.locked) {
2065        return;
2066      }
2067  
2068      const prevWidgets = this.getWidgets();
2069  
2070      this._pushHistory();
2071  
2072      this._emit(prevWidgets, this.getWidgets());
2073    }
2074  
2075    _handleAllSettingsChange(setting) {
2076      if (this.locked) {
2077        return;
2078      }
2079  
2080      if (!setting.id.startsWith('widget_')) {
2081        return;
2082      }
2083  
2084      const widgetId = settingIdToWidgetId(setting.id);
2085  
2086      if (!this.setting.get().includes(widgetId)) {
2087        return;
2088      }
2089  
2090      const prevWidgets = this.getWidgets();
2091  
2092      this._pushHistory();
2093  
2094      this._emit(prevWidgets, this.getWidgets());
2095    }
2096  
2097    _createWidget(widget) {
2098      const widgetModel = wp.customize.Widgets.availableWidgets.findWhere({
2099        id_base: widget.idBase
2100      });
2101      let number = widget.number;
2102  
2103      if (widgetModel.get('is_multi') && !number) {
2104        widgetModel.set('multi_number', widgetModel.get('multi_number') + 1);
2105        number = widgetModel.get('multi_number');
2106      }
2107  
2108      const settingId = number ? `widget_$widget.idBase}[$number}]` : `widget_$widget.idBase}`;
2109      const settingArgs = {
2110        transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get('id_base')] ? 'postMessage' : 'refresh',
2111        previewer: this.setting.previewer
2112      };
2113      const setting = this.api.create(settingId, settingId, '', settingArgs);
2114      setting.set(widget.instance);
2115      const widgetId = settingIdToWidgetId(settingId);
2116      return widgetId;
2117    }
2118  
2119    _removeWidget(widget) {
2120      const settingId = widgetIdToSettingId(widget.id);
2121      const setting = this.api(settingId);
2122  
2123      if (setting) {
2124        const instance = setting.get();
2125        this.widgetsCache.delete(instance);
2126      }
2127  
2128      this.api.remove(settingId);
2129    }
2130  
2131    _updateWidget(widget) {
2132      const prevWidget = this.getWidget(widget.id); // Bail out update if nothing changed.
2133  
2134      if (prevWidget === widget) {
2135        return widget.id;
2136      } // Update existing setting if only the widget's instance changed.
2137  
2138  
2139      if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) {
2140        const settingId = widgetIdToSettingId(widget.id);
2141        this.api(settingId).set(widget.instance);
2142        return widget.id;
2143      } // Otherwise delete and re-create.
2144  
2145  
2146      this._removeWidget(widget);
2147  
2148      return this._createWidget(widget);
2149    }
2150  
2151    getWidget(widgetId) {
2152      if (!widgetId) {
2153        return null;
2154      }
2155  
2156      const {
2157        idBase,
2158        number
2159      } = parseWidgetId(widgetId);
2160      const settingId = widgetIdToSettingId(widgetId);
2161      const setting = this.api(settingId);
2162  
2163      if (!setting) {
2164        return null;
2165      }
2166  
2167      const instance = setting.get();
2168  
2169      if (this.widgetsCache.has(instance)) {
2170        return this.widgetsCache.get(instance);
2171      }
2172  
2173      const widget = {
2174        id: widgetId,
2175        idBase,
2176        number,
2177        instance
2178      };
2179      this.widgetsCache.set(instance, widget);
2180      return widget;
2181    }
2182  
2183    _updateWidgets(nextWidgets) {
2184      this.locked = true;
2185      const addedWidgetIds = [];
2186      const nextWidgetIds = nextWidgets.map(nextWidget => {
2187        if (nextWidget.id && this.getWidget(nextWidget.id)) {
2188          addedWidgetIds.push(null);
2189          return this._updateWidget(nextWidget);
2190        }
2191  
2192        const widgetId = this._createWidget(nextWidget);
2193  
2194        addedWidgetIds.push(widgetId);
2195        return widgetId;
2196      });
2197      const deletedWidgets = this.getWidgets().filter(widget => !nextWidgetIds.includes(widget.id));
2198      deletedWidgets.forEach(widget => this._removeWidget(widget));
2199      this.setting.set(nextWidgetIds);
2200      this.locked = false;
2201      return addedWidgetIds;
2202    }
2203  
2204    setWidgets(nextWidgets) {
2205      const addedWidgetIds = this._updateWidgets(nextWidgets);
2206  
2207      this._debounceSetHistory();
2208  
2209      return addedWidgetIds;
2210    }
2211    /**
2212     * Undo/Redo related features
2213     */
2214  
2215  
2216    hasUndo() {
2217      return this.historyIndex > 0;
2218    }
2219  
2220    hasRedo() {
2221      return this.historyIndex < this.history.length - 1;
2222    }
2223  
2224    _seek(historyIndex) {
2225      const currentWidgets = this.getWidgets();
2226      this.historyIndex = historyIndex;
2227      const widgets = this.history[this.historyIndex];
2228  
2229      this._updateWidgets(widgets);
2230  
2231      this._emit(currentWidgets, this.getWidgets());
2232  
2233      this.historySubscribers.forEach(listener => listener());
2234  
2235      this._debounceSetHistory.cancel();
2236    }
2237  
2238    undo() {
2239      if (!this.hasUndo()) {
2240        return;
2241      }
2242  
2243      this._seek(this.historyIndex - 1);
2244    }
2245  
2246    redo() {
2247      if (!this.hasRedo()) {
2248        return;
2249      }
2250  
2251      this._seek(this.historyIndex + 1);
2252    }
2253  
2254    subscribeHistory(listener) {
2255      this.historySubscribers.add(listener);
2256      return () => {
2257        this.historySubscribers.delete(listener);
2258      };
2259    }
2260  
2261    save() {
2262      this.api.previewer.save();
2263    }
2264  
2265  }
2266  
2267  // EXTERNAL MODULE: external ["wp","dom"]
2268  var external_wp_dom_ = __webpack_require__("1CF3");
2269  
2270  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/inserter-outer-section.js
2271  /**
2272   * WordPress dependencies
2273   */
2274  
2275  
2276  
2277  /**
2278   * Internal dependencies
2279   */
2280  
2281  
2282  function getInserterOuterSection() {
2283    const {
2284      wp: {
2285        customize
2286      }
2287    } = window;
2288    const OuterSection = customize.OuterSection; // Override the OuterSection class to handle multiple outer sections.
2289    // It closes all the other outer sections whenever one is opened.
2290    // The result is that at most one outer section can be opened at the same time.
2291  
2292    customize.OuterSection = class extends OuterSection {
2293      onChangeExpanded(expanded, args) {
2294        if (expanded) {
2295          customize.section.each(section => {
2296            if (section.params.type === 'outer' && section.id !== this.id) {
2297              if (section.expanded()) {
2298                section.collapse();
2299              }
2300            }
2301          });
2302        }
2303  
2304        return super.onChangeExpanded(expanded, args);
2305      }
2306  
2307    }; // Handle constructor so that "params.type" can be correctly pointed to "outer".
2308  
2309    customize.sectionConstructor.outer = customize.OuterSection;
2310    return class InserterOuterSection extends customize.OuterSection {
2311      constructor() {
2312        super(...arguments); // This is necessary since we're creating a new class which is not identical to the original OuterSection.
2313        // @See https://github.com/WordPress/wordpress-develop/blob/42b05c397c50d9dc244083eff52991413909d4bd/src/js/_enqueues/wp/customize/controls.js#L1427-L1436
2314  
2315        this.params.type = 'outer';
2316        this.activeElementBeforeExpanded = null;
2317        const ownerWindow = this.contentContainer[0].ownerDocument.defaultView; // Handle closing the inserter when pressing the Escape key.
2318  
2319        ownerWindow.addEventListener('keydown', event => {
2320          if (this.expanded() && (event.keyCode === external_wp_keycodes_["ESCAPE"] || event.code === 'Escape') && !event.defaultPrevented) {
2321            event.preventDefault();
2322            event.stopPropagation();
2323            Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(false);
2324          }
2325        }, // Use capture mode to make this run before other event listeners.
2326        true);
2327        this.contentContainer.addClass('widgets-inserter'); // Set a flag if the state is being changed from open() or close().
2328        // Don't propagate the event if it's an internal action to prevent infinite loop.
2329  
2330        this.isFromInternalAction = false;
2331        this.expanded.bind(() => {
2332          if (!this.isFromInternalAction) {
2333            // Propagate the event to React to sync the state.
2334            Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(this.expanded());
2335          }
2336  
2337          this.isFromInternalAction = false;
2338        });
2339      }
2340  
2341      open() {
2342        if (!this.expanded()) {
2343          const contentContainer = this.contentContainer[0];
2344          this.activeElementBeforeExpanded = contentContainer.ownerDocument.activeElement;
2345          this.isFromInternalAction = true;
2346          this.expand({
2347            completeCallback() {
2348              // We have to do this in a "completeCallback" or else the elements will not yet be visible/tabbable.
2349              // The first one should be the close button,
2350              // we want to skip it and choose the second one instead, which is the search box.
2351              const searchBox = external_wp_dom_["focus"].tabbable.find(contentContainer)[1];
2352  
2353              if (searchBox) {
2354                searchBox.focus();
2355              }
2356            }
2357  
2358          });
2359        }
2360      }
2361  
2362      close() {
2363        if (this.expanded()) {
2364          const contentContainer = this.contentContainer[0];
2365          const activeElement = contentContainer.ownerDocument.activeElement;
2366          this.isFromInternalAction = true;
2367          this.collapse({
2368            completeCallback() {
2369              // Return back the focus when closing the inserter.
2370              // Only do this if the active element which triggers the action is inside the inserter,
2371              // (the close button for instance). In that case the focus will be lost.
2372              // Otherwise, we don't hijack the focus when the user is focusing on other elements
2373              // (like the quick inserter).
2374              if (contentContainer.contains(activeElement)) {
2375                // Return back the focus when closing the inserter.
2376                if (this.activeElementBeforeExpanded) {
2377                  this.activeElementBeforeExpanded.focus();
2378                }
2379              }
2380            }
2381  
2382          });
2383        }
2384      }
2385  
2386    };
2387  }
2388  
2389  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/controls/sidebar-control.js
2390  /**
2391   * WordPress dependencies
2392   */
2393  
2394  /**
2395   * Internal dependencies
2396   */
2397  
2398  
2399  
2400  
2401  
2402  const getInserterId = controlId => `widgets-inserter-$controlId}`;
2403  
2404  function getSidebarControl() {
2405    const {
2406      wp: {
2407        customize
2408      }
2409    } = window;
2410    return class SidebarControl extends customize.Control {
2411      constructor() {
2412        super(...arguments);
2413        this.subscribers = new Set();
2414      }
2415  
2416      ready() {
2417        const InserterOuterSection = getInserterOuterSection();
2418        this.inserter = new InserterOuterSection(getInserterId(this.id), {});
2419        customize.section.add(this.inserter);
2420        this.sectionInstance = customize.section(this.section());
2421        this.inspector = this.sectionInstance.inspector;
2422        this.sidebarAdapter = new sidebar_adapter_SidebarAdapter(this.setting, customize);
2423      }
2424  
2425      subscribe(callback) {
2426        this.subscribers.add(callback);
2427        return () => {
2428          this.subscribers.delete(callback);
2429        };
2430      }
2431  
2432      onChangeSectionExpanded(expanded, args) {
2433        if (!args.unchanged) {
2434          // Close the inserter when the section collapses.
2435          if (!expanded) {
2436            Object(external_wp_data_["dispatch"])(store).setIsInserterOpened(false);
2437          }
2438  
2439          this.subscribers.forEach(subscriber => subscriber(expanded, args));
2440        }
2441      }
2442  
2443    };
2444  }
2445  
2446  // EXTERNAL MODULE: external ["wp","hooks"]
2447  var external_wp_hooks_ = __webpack_require__("g56x");
2448  
2449  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/move-to-sidebar.js
2450  
2451  
2452  /**
2453   * External dependencies
2454   */
2455  
2456  /**
2457   * WordPress dependencies
2458   */
2459  
2460  
2461  
2462  
2463  
2464  
2465  /**
2466   * Internal dependencies
2467   */
2468  
2469  
2470  
2471  
2472  const withMoveToSidebarToolbarItem = Object(external_wp_compose_["createHigherOrderComponent"])(BlockEdit => props => {
2473    let widgetId = Object(external_wp_widgets_["getWidgetIdFromBlock"])(props);
2474    const sidebarControls = useSidebarControls();
2475    const activeSidebarControl = useActiveSidebarControl();
2476    const hasMultipleSidebars = (sidebarControls === null || sidebarControls === void 0 ? void 0 : sidebarControls.length) > 1;
2477    const blockName = props.name;
2478    const clientId = props.clientId;
2479    const canInsertBlockInSidebar = Object(external_wp_data_["useSelect"])(select => {
2480      // Use an empty string to represent the root block list, which
2481      // in the customizer editor represents a sidebar/widget area.
2482      return select(external_wp_blockEditor_["store"]).canInsertBlockType(blockName, '');
2483    }, [blockName]);
2484    const block = Object(external_wp_data_["useSelect"])(select => select(external_wp_blockEditor_["store"]).getBlock(clientId), [clientId]);
2485    const {
2486      removeBlock
2487    } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
2488    const [, focusWidget] = useFocusControl();
2489  
2490    function moveToSidebar(sidebarControlId) {
2491      const newSidebarControl = sidebarControls.find(sidebarControl => sidebarControl.id === sidebarControlId);
2492  
2493      if (widgetId) {
2494        /**
2495         * If there's a widgetId, move it to the other sidebar.
2496         */
2497        const oldSetting = activeSidebarControl.setting;
2498        const newSetting = newSidebarControl.setting;
2499        oldSetting(Object(external_lodash_["without"])(oldSetting(), widgetId));
2500        newSetting([...newSetting(), widgetId]);
2501      } else {
2502        /**
2503         * If there isn't a widgetId, it's most likely a inner block.
2504         * First, remove the block in the original sidebar,
2505         * then, create a new widget in the new sidebar and get back its widgetId.
2506         */
2507        const sidebarAdapter = newSidebarControl.sidebarAdapter;
2508        removeBlock(clientId);
2509        const addedWidgetIds = sidebarAdapter.setWidgets([...sidebarAdapter.getWidgets(), blockToWidget(block)]); // The last non-null id is the added widget's id.
2510  
2511        widgetId = addedWidgetIds.reverse().find(id => !!id);
2512      } // Move focus to the moved widget and expand the sidebar.
2513  
2514  
2515      focusWidget(widgetId);
2516    }
2517  
2518    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"], {
2519      widgetAreas: sidebarControls.map(sidebarControl => ({
2520        id: sidebarControl.id,
2521        name: sidebarControl.params.label,
2522        description: sidebarControl.params.description
2523      })),
2524      currentWidgetAreaId: activeSidebarControl === null || activeSidebarControl === void 0 ? void 0 : activeSidebarControl.id,
2525      onSelect: moveToSidebar
2526    })));
2527  }, 'withMoveToSidebarToolbarItem');
2528  Object(external_wp_hooks_["addFilter"])('editor.BlockEdit', 'core/customize-widgets/block-edit', withMoveToSidebarToolbarItem);
2529  
2530  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/replace-media-upload.js
2531  /**
2532   * WordPress dependencies
2533   */
2534  
2535  
2536  
2537  const replaceMediaUpload = () => external_wp_mediaUtils_["MediaUpload"];
2538  
2539  Object(external_wp_hooks_["addFilter"])('editor.MediaUpload', 'core/edit-widgets/replace-media-upload', replaceMediaUpload);
2540  
2541  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/wide-widget-display.js
2542  
2543  
2544  
2545  /**
2546   * WordPress dependencies
2547   */
2548  
2549  
2550  const {
2551    wp: wide_widget_display_wp
2552  } = window;
2553  const withWideWidgetDisplay = Object(external_wp_compose_["createHigherOrderComponent"])(BlockEdit => props => {
2554    var _wp$customize$Widgets, _wp$customize$Widgets2;
2555  
2556    const {
2557      idBase
2558    } = props.attributes;
2559    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;
2560    return Object(external_wp_element_["createElement"])(BlockEdit, Object(esm_extends["a" /* default */])({}, props, {
2561      isWide: isWide
2562    }));
2563  }, 'withWideWidgetDisplay');
2564  Object(external_wp_hooks_["addFilter"])('editor.BlockEdit', 'core/customize-widgets/wide-widget-display', withWideWidgetDisplay);
2565  
2566  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/filters/index.js
2567  /**
2568   * Internal dependencies
2569   */
2570  
2571  
2572  
2573  
2574  // CONCATENATED MODULE: ./node_modules/@wordpress/customize-widgets/build-module/index.js
2575  
2576  
2577  /**
2578   * WordPress dependencies
2579   */
2580  
2581  
2582  
2583  
2584  
2585  
2586  /**
2587   * Internal dependencies
2588   */
2589  
2590  
2591  
2592  
2593  
2594  const {
2595    wp: build_module_wp
2596  } = window;
2597  const DISABLED_BLOCKS = ['core/more', 'core/block', 'core/freeform', 'core/template-part'];
2598  const ENABLE_EXPERIMENTAL_FSE_BLOCKS = false;
2599  /**
2600   * Initializes the widgets block editor in the customizer.
2601   *
2602   * @param {string} editorName          The editor name.
2603   * @param {Object} blockEditorSettings Block editor settings.
2604   */
2605  
2606  function initialize(editorName, blockEditorSettings) {
2607    Object(external_wp_data_["dispatch"])(build_module["i" /* store */]).setFeatureDefaults('core/customize-widgets', {
2608      fixedToolbar: false,
2609      welcomeGuide: true
2610    });
2611  
2612    Object(external_wp_data_["dispatch"])(external_wp_blocks_["store"]).__experimentalReapplyBlockTypeFilters();
2613  
2614    const coreBlocks = Object(external_wp_blockLibrary_["__experimentalGetCoreBlocks"])().filter(block => {
2615      return !(DISABLED_BLOCKS.includes(block.name) || block.name.startsWith('core/post') || block.name.startsWith('core/query') || block.name.startsWith('core/site') || block.name.startsWith('core/navigation'));
2616    });
2617  
2618    Object(external_wp_blockLibrary_["registerCoreBlocks"])(coreBlocks);
2619    Object(external_wp_widgets_["registerLegacyWidgetBlock"])();
2620  
2621    if (false) {}
2622  
2623    Object(external_wp_widgets_["registerLegacyWidgetVariations"])(blockEditorSettings);
2624    Object(external_wp_widgets_["registerWidgetGroupBlock"])(); // As we are unregistering `core/freeform` to avoid the Classic block, we must
2625    // replace it with something as the default freeform content handler. Failure to
2626    // do this will result in errors in the default block parser.
2627    // see: https://github.com/WordPress/gutenberg/issues/33097
2628  
2629    Object(external_wp_blocks_["setFreeformContentHandlerName"])('core/html');
2630    const SidebarControl = getSidebarControl(blockEditorSettings);
2631    build_module_wp.customize.sectionConstructor.sidebar = getSidebarSection();
2632    build_module_wp.customize.controlConstructor.sidebar_block_editor = SidebarControl;
2633    const container = document.createElement('div');
2634    document.body.appendChild(container);
2635    build_module_wp.customize.bind('ready', () => {
2636      const sidebarControls = [];
2637      build_module_wp.customize.control.each(control => {
2638        if (control instanceof SidebarControl) {
2639          sidebarControls.push(control);
2640        }
2641      });
2642      Object(external_wp_element_["render"])(Object(external_wp_element_["createElement"])(CustomizeWidgets, {
2643        api: build_module_wp.customize,
2644        sidebarControls: sidebarControls,
2645        blockEditorSettings: blockEditorSettings
2646      }), container);
2647    });
2648  }
2649  
2650  
2651  /***/ }),
2652  
2653  /***/ "GLVC":
2654  /***/ (function(module, exports) {
2655  
2656  (function() { module.exports = window["wp"]["widgets"]; }());
2657  
2658  /***/ }),
2659  
2660  /***/ "GRId":
2661  /***/ (function(module, exports) {
2662  
2663  (function() { module.exports = window["wp"]["element"]; }());
2664  
2665  /***/ }),
2666  
2667  /***/ "HSyU":
2668  /***/ (function(module, exports) {
2669  
2670  (function() { module.exports = window["wp"]["blocks"]; }());
2671  
2672  /***/ }),
2673  
2674  /***/ "K+tz":
2675  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2676  
2677  "use strict";
2678  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
2679  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
2680  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
2681  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
2682  
2683  
2684  /**
2685   * WordPress dependencies
2686   */
2687  
2688  const external = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
2689    xmlns: "http://www.w3.org/2000/svg",
2690    viewBox: "0 0 24 24"
2691  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
2692    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"
2693  }));
2694  /* harmony default export */ __webpack_exports__["a"] = (external);
2695  
2696  
2697  /***/ }),
2698  
2699  /***/ "K2cm":
2700  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2701  
2702  "use strict";
2703  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
2704  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
2705  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
2706  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
2707  
2708  
2709  /**
2710   * WordPress dependencies
2711   */
2712  
2713  const redo = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
2714    xmlns: "http://www.w3.org/2000/svg",
2715    viewBox: "0 0 24 24"
2716  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
2717    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"
2718  }));
2719  /* harmony default export */ __webpack_exports__["a"] = (redo);
2720  
2721  
2722  /***/ }),
2723  
2724  /***/ "K9lf":
2725  /***/ (function(module, exports) {
2726  
2727  (function() { module.exports = window["wp"]["compose"]; }());
2728  
2729  /***/ }),
2730  
2731  /***/ "KEfo":
2732  /***/ (function(module, exports) {
2733  
2734  (function() { module.exports = window["wp"]["viewport"]; }());
2735  
2736  /***/ }),
2737  
2738  /***/ "Ntru":
2739  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2740  
2741  "use strict";
2742  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
2743  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
2744  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
2745  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
2746  
2747  
2748  /**
2749   * WordPress dependencies
2750   */
2751  
2752  const undo = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
2753    xmlns: "http://www.w3.org/2000/svg",
2754    viewBox: "0 0 24 24"
2755  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
2756    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"
2757  }));
2758  /* harmony default export */ __webpack_exports__["a"] = (undo);
2759  
2760  
2761  /***/ }),
2762  
2763  /***/ "Q4Sy":
2764  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2765  
2766  "use strict";
2767  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
2768  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
2769  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
2770  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
2771  
2772  
2773  /**
2774   * WordPress dependencies
2775   */
2776  
2777  const plus = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
2778    xmlns: "http://www.w3.org/2000/svg",
2779    viewBox: "0 0 24 24"
2780  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
2781    d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
2782  }));
2783  /* harmony default export */ __webpack_exports__["a"] = (plus);
2784  
2785  
2786  /***/ }),
2787  
2788  /***/ "QyPg":
2789  /***/ (function(module, exports) {
2790  
2791  (function() { module.exports = window["wp"]["blockLibrary"]; }());
2792  
2793  /***/ }),
2794  
2795  /***/ "RMJe":
2796  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2797  
2798  "use strict";
2799  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
2800  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
2801  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
2802  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
2803  
2804  
2805  /**
2806   * WordPress dependencies
2807   */
2808  
2809  const check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
2810    xmlns: "http://www.w3.org/2000/svg",
2811    viewBox: "0 0 24 24"
2812  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
2813    d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
2814  }));
2815  /* harmony default export */ __webpack_exports__["a"] = (check);
2816  
2817  
2818  /***/ }),
2819  
2820  /***/ "RxS6":
2821  /***/ (function(module, exports) {
2822  
2823  (function() { module.exports = window["wp"]["keycodes"]; }());
2824  
2825  /***/ }),
2826  
2827  /***/ "TSYQ":
2828  /***/ (function(module, exports, __webpack_require__) {
2829  
2830  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
2831    Copyright (c) 2018 Jed Watson.
2832    Licensed under the MIT License (MIT), see
2833    http://jedwatson.github.io/classnames
2834  */
2835  /* global define */
2836  
2837  (function () {
2838      'use strict';
2839  
2840      var hasOwn = {}.hasOwnProperty;
2841  
2842  	function classNames() {
2843          var classes = [];
2844  
2845          for (var i = 0; i < arguments.length; i++) {
2846              var arg = arguments[i];
2847              if (!arg) continue;
2848  
2849              var argType = typeof arg;
2850  
2851              if (argType === 'string' || argType === 'number') {
2852                  classes.push(arg);
2853              } else if (Array.isArray(arg)) {
2854                  if (arg.length) {
2855                      var inner = classNames.apply(null, arg);
2856                      if (inner) {
2857                          classes.push(inner);
2858                      }
2859                  }
2860              } else if (argType === 'object') {
2861                  if (arg.toString === Object.prototype.toString) {
2862                      for (var key in arg) {
2863                          if (hasOwn.call(arg, key) && arg[key]) {
2864                              classes.push(key);
2865                          }
2866                      }
2867                  } else {
2868                      classes.push(arg.toString());
2869                  }
2870              }
2871          }
2872  
2873          return classes.join(' ');
2874      }
2875  
2876      if ( true && module.exports) {
2877          classNames.default = classNames;
2878          module.exports = classNames;
2879      } else if (true) {
2880          // register as 'classnames', consistent with npm package name
2881          !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
2882              return classNames;
2883          }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
2884                  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
2885      } else {}
2886  }());
2887  
2888  
2889  /***/ }),
2890  
2891  /***/ "Tqx9":
2892  /***/ (function(module, exports) {
2893  
2894  (function() { module.exports = window["wp"]["primitives"]; }());
2895  
2896  /***/ }),
2897  
2898  /***/ "TvNi":
2899  /***/ (function(module, exports) {
2900  
2901  (function() { module.exports = window["wp"]["plugins"]; }());
2902  
2903  /***/ }),
2904  
2905  /***/ "U60i":
2906  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2907  
2908  "use strict";
2909  
2910  // EXPORTS
2911  __webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ complementary_area; });
2912  __webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ ComplementaryAreaMoreMenuItem; });
2913  __webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ fullscreen_mode; });
2914  __webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ interface_skeleton; });
2915  __webpack_require__.d(__webpack_exports__, "h", function() { return /* reexport */ pinned_items; });
2916  __webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ MoreMenuDropdown; });
2917  __webpack_require__.d(__webpack_exports__, "g", function() { return /* reexport */ MoreMenuFeatureToggle; });
2918  __webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ action_item; });
2919  __webpack_require__.d(__webpack_exports__, "i", function() { return /* reexport */ store; });
2920  
2921  // NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/actions.js
2922  var actions_namespaceObject = {};
2923  __webpack_require__.r(actions_namespaceObject);
2924  __webpack_require__.d(actions_namespaceObject, "enableComplementaryArea", function() { return actions_enableComplementaryArea; });
2925  __webpack_require__.d(actions_namespaceObject, "disableComplementaryArea", function() { return actions_disableComplementaryArea; });
2926  __webpack_require__.d(actions_namespaceObject, "pinItem", function() { return actions_pinItem; });
2927  __webpack_require__.d(actions_namespaceObject, "unpinItem", function() { return actions_unpinItem; });
2928  __webpack_require__.d(actions_namespaceObject, "toggleFeature", function() { return actions_toggleFeature; });
2929  __webpack_require__.d(actions_namespaceObject, "setFeatureValue", function() { return setFeatureValue; });
2930  __webpack_require__.d(actions_namespaceObject, "setFeatureDefaults", function() { return setFeatureDefaults; });
2931  
2932  // NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/selectors.js
2933  var selectors_namespaceObject = {};
2934  __webpack_require__.r(selectors_namespaceObject);
2935  __webpack_require__.d(selectors_namespaceObject, "getActiveComplementaryArea", function() { return selectors_getActiveComplementaryArea; });
2936  __webpack_require__.d(selectors_namespaceObject, "isItemPinned", function() { return selectors_isItemPinned; });
2937  __webpack_require__.d(selectors_namespaceObject, "isFeatureActive", function() { return isFeatureActive; });
2938  
2939  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
2940  var esm_extends = __webpack_require__("wx14");
2941  
2942  // EXTERNAL MODULE: external ["wp","element"]
2943  var external_wp_element_ = __webpack_require__("GRId");
2944  
2945  // EXTERNAL MODULE: ./node_modules/classnames/index.js
2946  var classnames = __webpack_require__("TSYQ");
2947  var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
2948  
2949  // EXTERNAL MODULE: external ["wp","components"]
2950  var external_wp_components_ = __webpack_require__("tI+e");
2951  
2952  // EXTERNAL MODULE: external ["wp","data"]
2953  var external_wp_data_ = __webpack_require__("1ZqX");
2954  
2955  // EXTERNAL MODULE: external ["wp","i18n"]
2956  var external_wp_i18n_ = __webpack_require__("l3Sj");
2957  
2958  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js
2959  var check = __webpack_require__("RMJe");
2960  
2961  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-filled.js
2962  var star_filled = __webpack_require__("URob");
2963  
2964  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-empty.js
2965  var star_empty = __webpack_require__("Xxwi");
2966  
2967  // EXTERNAL MODULE: external ["wp","viewport"]
2968  var external_wp_viewport_ = __webpack_require__("KEfo");
2969  
2970  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js
2971  var close_small = __webpack_require__("bWcr");
2972  
2973  // EXTERNAL MODULE: external "lodash"
2974  var external_lodash_ = __webpack_require__("YLtl");
2975  
2976  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/reducer.js
2977  /**
2978   * External dependencies
2979   */
2980  
2981  /**
2982   * WordPress dependencies
2983   */
2984  
2985  
2986  /**
2987   * Reducer to keep tract of the active area per scope.
2988   *
2989   * @param {boolean} state           Previous state.
2990   * @param {Object}  action          Action object.
2991   * @param {string}  action.type     Action type.
2992   * @param {string}  action.itemType Type of item.
2993   * @param {string}  action.scope    Item scope.
2994   * @param {string}  action.item     Item name.
2995   *
2996   * @return {Object} Updated state.
2997   */
2998  
2999  function singleEnableItems() {
3000    let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3001    let {
3002      type,
3003      itemType,
3004      scope,
3005      item
3006    } = arguments.length > 1 ? arguments[1] : undefined;
3007  
3008    if (type !== 'SET_SINGLE_ENABLE_ITEM' || !itemType || !scope) {
3009      return state;
3010    }
3011  
3012    return { ...state,
3013      [itemType]: { ...state[itemType],
3014        [scope]: item || null
3015      }
3016    };
3017  }
3018  /**
3019   * Reducer keeping track of the "pinned" items per scope.
3020   *
3021   * @param {boolean} state           Previous state.
3022   * @param {Object}  action          Action object.
3023   * @param {string}  action.type     Action type.
3024   * @param {string}  action.itemType Type of item.
3025   * @param {string}  action.scope    Item scope.
3026   * @param {string}  action.item     Item name.
3027   * @param {boolean} action.isEnable Whether the item is pinned.
3028   *
3029   * @return {Object} Updated state.
3030   */
3031  
3032  function multipleEnableItems() {
3033    let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3034    let {
3035      type,
3036      itemType,
3037      scope,
3038      item,
3039      isEnable
3040    } = arguments.length > 1 ? arguments[1] : undefined;
3041  
3042    if (type !== 'SET_MULTIPLE_ENABLE_ITEM' || !itemType || !scope || !item || Object(external_lodash_["get"])(state, [itemType, scope, item]) === isEnable) {
3043      return state;
3044    }
3045  
3046    const currentTypeState = state[itemType] || {};
3047    const currentScopeState = currentTypeState[scope] || {};
3048    return { ...state,
3049      [itemType]: { ...currentTypeState,
3050        [scope]: { ...currentScopeState,
3051          [item]: isEnable || false
3052        }
3053      }
3054    };
3055  }
3056  /**
3057   * Reducer returning the defaults for user preferences.
3058   *
3059   * This is kept intentionally separate from the preferences
3060   * themselves so that defaults are not persisted.
3061   *
3062   * @param {Object} state  Current state.
3063   * @param {Object} action Dispatched action.
3064   *
3065   * @return {Object} Updated state.
3066   */
3067  
3068  const preferenceDefaults = Object(external_wp_data_["combineReducers"])({
3069    features() {
3070      let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3071      let action = arguments.length > 1 ? arguments[1] : undefined;
3072  
3073      if (action.type === 'SET_FEATURE_DEFAULTS') {
3074        const {
3075          scope,
3076          defaults
3077        } = action;
3078        return { ...state,
3079          [scope]: { ...state[scope],
3080            ...defaults
3081          }
3082        };
3083      }
3084  
3085      return state;
3086    }
3087  
3088  });
3089  /**
3090   * Reducer returning the user preferences.
3091   *
3092   * @param {Object} state  Current state.
3093   * @param {Object} action Dispatched action.
3094   *
3095   * @return {Object} Updated state.
3096   */
3097  
3098  const preferences = Object(external_wp_data_["combineReducers"])({
3099    features() {
3100      let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3101      let action = arguments.length > 1 ? arguments[1] : undefined;
3102  
3103      if (action.type === 'SET_FEATURE_VALUE') {
3104        const {
3105          scope,
3106          featureName,
3107          value
3108        } = action;
3109        return { ...state,
3110          [scope]: { ...state[scope],
3111            [featureName]: value
3112          }
3113        };
3114      }
3115  
3116      return state;
3117    }
3118  
3119  });
3120  const enableItems = Object(external_wp_data_["combineReducers"])({
3121    singleEnableItems,
3122    multipleEnableItems
3123  });
3124  /* harmony default export */ var reducer = (Object(external_wp_data_["combineReducers"])({
3125    enableItems,
3126    preferenceDefaults,
3127    preferences
3128  }));
3129  
3130  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/actions.js
3131  /**
3132   * Returns an action object used in signalling that an active area should be changed.
3133   *
3134   * @param {string} itemType Type of item.
3135   * @param {string} scope    Item scope.
3136   * @param {string} item     Item identifier.
3137   *
3138   * @return {Object} Action object.
3139   */
3140  function setSingleEnableItem(itemType, scope, item) {
3141    return {
3142      type: 'SET_SINGLE_ENABLE_ITEM',
3143      itemType,
3144      scope,
3145      item
3146    };
3147  }
3148  /**
3149   * Returns an action object used in signalling that a complementary item should be enabled.
3150   *
3151   * @param {string} scope Complementary area scope.
3152   * @param {string} area  Area identifier.
3153   *
3154   * @return {Object} Action object.
3155   */
3156  
3157  
3158  function actions_enableComplementaryArea(scope, area) {
3159    return setSingleEnableItem('complementaryArea', scope, area);
3160  }
3161  /**
3162   * Returns an action object used in signalling that the complementary area of a given scope should be disabled.
3163   *
3164   * @param {string} scope Complementary area scope.
3165   *
3166   * @return {Object} Action object.
3167   */
3168  
3169  function actions_disableComplementaryArea(scope) {
3170    return setSingleEnableItem('complementaryArea', scope, undefined);
3171  }
3172  /**
3173   * Returns an action object to make an area enabled/disabled.
3174   *
3175   * @param {string}  itemType Type of item.
3176   * @param {string}  scope    Item scope.
3177   * @param {string}  item     Item identifier.
3178   * @param {boolean} isEnable Boolean indicating if an area should be pinned or not.
3179   *
3180   * @return {Object} Action object.
3181   */
3182  
3183  function setMultipleEnableItem(itemType, scope, item, isEnable) {
3184    return {
3185      type: 'SET_MULTIPLE_ENABLE_ITEM',
3186      itemType,
3187      scope,
3188      item,
3189      isEnable
3190    };
3191  }
3192  /**
3193   * Returns an action object used in signalling that an item should be pinned.
3194   *
3195   * @param {string} scope  Item scope.
3196   * @param {string} itemId Item identifier.
3197   *
3198   * @return {Object} Action object.
3199   */
3200  
3201  
3202  function actions_pinItem(scope, itemId) {
3203    return setMultipleEnableItem('pinnedItems', scope, itemId, true);
3204  }
3205  /**
3206   * Returns an action object used in signalling that an item should be unpinned.
3207   *
3208   * @param {string} scope  Item scope.
3209   * @param {string} itemId Item identifier.
3210   *
3211   * @return {Object} Action object.
3212   */
3213  
3214  function actions_unpinItem(scope, itemId) {
3215    return setMultipleEnableItem('pinnedItems', scope, itemId, false);
3216  }
3217  /**
3218   * Returns an action object used in signalling that a feature should be toggled.
3219   *
3220   * @param {string} scope       The feature scope (e.g. core/edit-post).
3221   * @param {string} featureName The feature name.
3222   */
3223  
3224  function actions_toggleFeature(scope, featureName) {
3225    return function (_ref) {
3226      let {
3227        select,
3228        dispatch
3229      } = _ref;
3230      const currentValue = select.isFeatureActive(scope, featureName);
3231      dispatch.setFeatureValue(scope, featureName, !currentValue);
3232    };
3233  }
3234  /**
3235   * Returns an action object used in signalling that a feature should be set to
3236   * a true or false value
3237   *
3238   * @param {string}  scope       The feature scope (e.g. core/edit-post).
3239   * @param {string}  featureName The feature name.
3240   * @param {boolean} value       The value to set.
3241   *
3242   * @return {Object} Action object.
3243   */
3244  
3245  function setFeatureValue(scope, featureName, value) {
3246    return {
3247      type: 'SET_FEATURE_VALUE',
3248      scope,
3249      featureName,
3250      value: !!value
3251    };
3252  }
3253  /**
3254   * Returns an action object used in signalling that defaults should be set for features.
3255   *
3256   * @param {string}                  scope    The feature scope (e.g. core/edit-post).
3257   * @param {Object<string, boolean>} defaults A key/value map of feature names to values.
3258   *
3259   * @return {Object} Action object.
3260   */
3261  
3262  function setFeatureDefaults(scope, defaults) {
3263    return {
3264      type: 'SET_FEATURE_DEFAULTS',
3265      scope,
3266      defaults
3267    };
3268  }
3269  
3270  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/selectors.js
3271  /**
3272   * External dependencies
3273   */
3274  
3275  /**
3276   * Returns the item that is enabled in a given scope.
3277   *
3278   * @param {Object} state    Global application state.
3279   * @param {string} itemType Type of item.
3280   * @param {string} scope    Item scope.
3281   *
3282   * @return {?string|null} The item that is enabled in the passed scope and type.
3283   */
3284  
3285  function getSingleEnableItem(state, itemType, scope) {
3286    return Object(external_lodash_["get"])(state.enableItems.singleEnableItems, [itemType, scope]);
3287  }
3288  /**
3289   * Returns the complementary area that is active in a given scope.
3290   *
3291   * @param {Object} state Global application state.
3292   * @param {string} scope Item scope.
3293   *
3294   * @return {string} The complementary area that is active in the given scope.
3295   */
3296  
3297  
3298  function selectors_getActiveComplementaryArea(state, scope) {
3299    return getSingleEnableItem(state, 'complementaryArea', scope);
3300  }
3301  /**
3302   * Returns a boolean indicating if an item is enabled or not in a given scope.
3303   *
3304   * @param {Object} state    Global application state.
3305   * @param {string} itemType Type of item.
3306   * @param {string} scope    Scope.
3307   * @param {string} item     Item to check.
3308   *
3309   * @return {boolean|undefined} True if the item is enabled, false otherwise if the item is explicitly disabled, and undefined if there is no information for that item.
3310   */
3311  
3312  function isMultipleEnabledItemEnabled(state, itemType, scope, item) {
3313    return Object(external_lodash_["get"])(state.enableItems.multipleEnableItems, [itemType, scope, item]);
3314  }
3315  /**
3316   * Returns a boolean indicating if an item is pinned or not.
3317   *
3318   * @param {Object} state Global application state.
3319   * @param {string} scope Scope.
3320   * @param {string} item  Item to check.
3321   *
3322   * @return {boolean} True if the item is pinned and false otherwise.
3323   */
3324  
3325  
3326  function selectors_isItemPinned(state, scope, item) {
3327    return isMultipleEnabledItemEnabled(state, 'pinnedItems', scope, item) !== false;
3328  }
3329  /**
3330   * Returns a boolean indicating whether a feature is active for a particular
3331   * scope.
3332   *
3333   * @param {Object} state       The store state.
3334   * @param {string} scope       The scope of the feature (e.g. core/edit-post).
3335   * @param {string} featureName The name of the feature.
3336   *
3337   * @return {boolean} Is the feature enabled?
3338   */
3339  
3340  function isFeatureActive(state, scope, featureName) {
3341    var _state$preferences$fe, _state$preferenceDefa;
3342  
3343    const featureValue = (_state$preferences$fe = state.preferences.features[scope]) === null || _state$preferences$fe === void 0 ? void 0 : _state$preferences$fe[featureName];
3344    const defaultedFeatureValue = featureValue !== undefined ? featureValue : (_state$preferenceDefa = state.preferenceDefaults.features[scope]) === null || _state$preferenceDefa === void 0 ? void 0 : _state$preferenceDefa[featureName];
3345    return !!defaultedFeatureValue;
3346  }
3347  
3348  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/constants.js
3349  /**
3350   * The identifier for the data store.
3351   *
3352   * @type {string}
3353   */
3354  const STORE_NAME = 'core/interface';
3355  
3356  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/index.js
3357  /**
3358   * WordPress dependencies
3359   */
3360  
3361  /**
3362   * Internal dependencies
3363   */
3364  
3365  
3366  
3367  
3368  
3369  /**
3370   * Store definition for the interface namespace.
3371   *
3372   * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
3373   *
3374   * @type {Object}
3375   */
3376  
3377  const store = Object(external_wp_data_["createReduxStore"])(STORE_NAME, {
3378    reducer: reducer,
3379    actions: actions_namespaceObject,
3380    selectors: selectors_namespaceObject,
3381    persist: ['enableItems', 'preferences'],
3382    __experimentalUseThunks: true
3383  }); // Once we build a more generic persistence plugin that works across types of stores
3384  // we'd be able to replace this with a register call.
3385  
3386  Object(external_wp_data_["registerStore"])(STORE_NAME, {
3387    reducer: reducer,
3388    actions: actions_namespaceObject,
3389    selectors: selectors_namespaceObject,
3390    persist: ['enableItems', 'preferences'],
3391    __experimentalUseThunks: true
3392  });
3393  
3394  // EXTERNAL MODULE: external ["wp","plugins"]
3395  var external_wp_plugins_ = __webpack_require__("TvNi");
3396  
3397  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-context/index.js
3398  /**
3399   * WordPress dependencies
3400   */
3401  
3402  /* harmony default export */ var complementary_area_context = (Object(external_wp_plugins_["withPluginContext"])((context, ownProps) => {
3403    return {
3404      icon: ownProps.icon || context.icon,
3405      identifier: ownProps.identifier || `$context.name}/$ownProps.name}`
3406    };
3407  }));
3408  
3409  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-toggle/index.js
3410  
3411  
3412  
3413  /**
3414   * External dependencies
3415   */
3416  
3417  /**
3418   * WordPress dependencies
3419   */
3420  
3421  
3422  
3423  /**
3424   * Internal dependencies
3425   */
3426  
3427  
3428  
3429  
3430  function ComplementaryAreaToggle(_ref) {
3431    let {
3432      as = external_wp_components_["Button"],
3433      scope,
3434      identifier,
3435      icon,
3436      selectedIcon,
3437      ...props
3438    } = _ref;
3439    const ComponentToUse = as;
3440    const isSelected = Object(external_wp_data_["useSelect"])(select => select(store).getActiveComplementaryArea(scope) === identifier, [identifier]);
3441    const {
3442      enableComplementaryArea,
3443      disableComplementaryArea
3444    } = Object(external_wp_data_["useDispatch"])(store);
3445    return Object(external_wp_element_["createElement"])(ComponentToUse, Object(esm_extends["a" /* default */])({
3446      icon: selectedIcon && isSelected ? selectedIcon : icon,
3447      onClick: () => {
3448        if (isSelected) {
3449          disableComplementaryArea(scope);
3450        } else {
3451          enableComplementaryArea(scope, identifier);
3452        }
3453      }
3454    }, Object(external_lodash_["omit"])(props, ['name'])));
3455  }
3456  
3457  /* harmony default export */ var complementary_area_toggle = (complementary_area_context(ComplementaryAreaToggle));
3458  
3459  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-header/index.js
3460  
3461  
3462  
3463  /**
3464   * External dependencies
3465   */
3466  
3467  /**
3468   * WordPress dependencies
3469   */
3470  
3471  
3472  /**
3473   * Internal dependencies
3474   */
3475  
3476  
3477  
3478  const ComplementaryAreaHeader = _ref => {
3479    let {
3480      smallScreenTitle,
3481      children,
3482      className,
3483      toggleButtonProps
3484    } = _ref;
3485    const toggleButton = Object(external_wp_element_["createElement"])(complementary_area_toggle, Object(esm_extends["a" /* default */])({
3486      icon: close_small["a" /* default */]
3487    }, toggleButtonProps));
3488    return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("div", {
3489      className: "components-panel__header interface-complementary-area-header__small"
3490    }, smallScreenTitle && Object(external_wp_element_["createElement"])("span", {
3491      className: "interface-complementary-area-header__small-title"
3492    }, smallScreenTitle), toggleButton), Object(external_wp_element_["createElement"])("div", {
3493      className: classnames_default()('components-panel__header', 'interface-complementary-area-header', className),
3494      tabIndex: -1
3495    }, children, toggleButton));
3496  };
3497  
3498  /* harmony default export */ var complementary_area_header = (ComplementaryAreaHeader);
3499  
3500  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/action-item/index.js
3501  
3502  
3503  
3504  /**
3505   * External dependencies
3506   */
3507  
3508  /**
3509   * WordPress dependencies
3510   */
3511  
3512  
3513  
3514  
3515  function ActionItemSlot(_ref) {
3516    let {
3517      name,
3518      as: Component = external_wp_components_["ButtonGroup"],
3519      fillProps = {},
3520      bubblesVirtually,
3521      ...props
3522    } = _ref;
3523    return Object(external_wp_element_["createElement"])(external_wp_components_["Slot"], {
3524      name: name,
3525      bubblesVirtually: bubblesVirtually,
3526      fillProps: fillProps
3527    }, fills => {
3528      if (Object(external_lodash_["isEmpty"])(external_wp_element_["Children"].toArray(fills))) {
3529        return null;
3530      } // Special handling exists for backward compatibility.
3531      // It ensures that menu items created by plugin authors aren't
3532      // duplicated with automatically injected menu items coming
3533      // from pinnable plugin sidebars.
3534      // @see https://github.com/WordPress/gutenberg/issues/14457
3535  
3536  
3537      const initializedByPlugins = [];
3538      external_wp_element_["Children"].forEach(fills, _ref2 => {
3539        let {
3540          props: {
3541            __unstableExplicitMenuItem,
3542            __unstableTarget
3543          }
3544        } = _ref2;
3545  
3546        if (__unstableTarget && __unstableExplicitMenuItem) {
3547          initializedByPlugins.push(__unstableTarget);
3548        }
3549      });
3550      const children = external_wp_element_["Children"].map(fills, child => {
3551        if (!child.props.__unstableExplicitMenuItem && initializedByPlugins.includes(child.props.__unstableTarget)) {
3552          return null;
3553        }
3554  
3555        return child;
3556      });
3557      return Object(external_wp_element_["createElement"])(Component, props, children);
3558    });
3559  }
3560  
3561  function ActionItem(_ref3) {
3562    let {
3563      name,
3564      as: Component = external_wp_components_["Button"],
3565      onClick,
3566      ...props
3567    } = _ref3;
3568    return Object(external_wp_element_["createElement"])(external_wp_components_["Fill"], {
3569      name: name
3570    }, _ref4 => {
3571      let {
3572        onClick: fpOnClick
3573      } = _ref4;
3574      return Object(external_wp_element_["createElement"])(Component, Object(esm_extends["a" /* default */])({
3575        onClick: onClick || fpOnClick ? function () {
3576          (onClick || external_lodash_["noop"])(...arguments);
3577          (fpOnClick || external_lodash_["noop"])(...arguments);
3578        } : undefined
3579      }, props));
3580    });
3581  }
3582  
3583  ActionItem.Slot = ActionItemSlot;
3584  /* harmony default export */ var action_item = (ActionItem);
3585  
3586  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-more-menu-item/index.js
3587  
3588  
3589  
3590  /**
3591   * External dependencies
3592   */
3593  
3594  /**
3595   * WordPress dependencies
3596   */
3597  
3598  
3599  
3600  /**
3601   * Internal dependencies
3602   */
3603  
3604  
3605  
3606  
3607  const PluginsMenuItem = props => // Menu item is marked with unstable prop for backward compatibility.
3608  // They are removed so they don't leak to DOM elements.
3609  // @see https://github.com/WordPress/gutenberg/issues/14457
3610  Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], Object(external_lodash_["omit"])(props, ['__unstableExplicitMenuItem', '__unstableTarget']));
3611  
3612  function ComplementaryAreaMoreMenuItem(_ref) {
3613    let {
3614      scope,
3615      target,
3616      __unstableExplicitMenuItem,
3617      ...props
3618    } = _ref;
3619    return Object(external_wp_element_["createElement"])(complementary_area_toggle, Object(esm_extends["a" /* default */])({
3620      as: toggleProps => {
3621        return Object(external_wp_element_["createElement"])(action_item, Object(esm_extends["a" /* default */])({
3622          __unstableExplicitMenuItem: __unstableExplicitMenuItem,
3623          __unstableTarget: `$scope}/$target}`,
3624          as: PluginsMenuItem,
3625          name: `$scope}/plugin-more-menu`
3626        }, toggleProps));
3627      },
3628      role: "menuitemcheckbox",
3629      selectedIcon: check["a" /* default */],
3630      name: target,
3631      scope: scope
3632    }, props));
3633  }
3634  
3635  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/pinned-items/index.js
3636  
3637  
3638  
3639  /**
3640   * External dependencies
3641   */
3642  
3643  
3644  /**
3645   * WordPress dependencies
3646   */
3647  
3648  
3649  
3650  function PinnedItems(_ref) {
3651    let {
3652      scope,
3653      ...props
3654    } = _ref;
3655    return Object(external_wp_element_["createElement"])(external_wp_components_["Fill"], Object(esm_extends["a" /* default */])({
3656      name: `PinnedItems/$scope}`
3657    }, props));
3658  }
3659  
3660  function PinnedItemsSlot(_ref2) {
3661    let {
3662      scope,
3663      className,
3664      ...props
3665    } = _ref2;
3666    return Object(external_wp_element_["createElement"])(external_wp_components_["Slot"], Object(esm_extends["a" /* default */])({
3667      name: `PinnedItems/$scope}`
3668    }, props), fills => !Object(external_lodash_["isEmpty"])(fills) && Object(external_wp_element_["createElement"])("div", {
3669      className: classnames_default()(className, 'interface-pinned-items')
3670    }, fills));
3671  }
3672  
3673  PinnedItems.Slot = PinnedItemsSlot;
3674  /* harmony default export */ var pinned_items = (PinnedItems);
3675  
3676  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area/index.js
3677  
3678  
3679  
3680  /**
3681   * External dependencies
3682   */
3683  
3684  /**
3685   * WordPress dependencies
3686   */
3687  
3688  
3689  
3690  
3691  
3692  
3693  
3694  /**
3695   * Internal dependencies
3696   */
3697  
3698  
3699  
3700  
3701  
3702  
3703  
3704  
3705  function ComplementaryAreaSlot(_ref) {
3706    let {
3707      scope,
3708      ...props
3709    } = _ref;
3710    return Object(external_wp_element_["createElement"])(external_wp_components_["Slot"], Object(esm_extends["a" /* default */])({
3711      name: `ComplementaryArea/$scope}`
3712    }, props));
3713  }
3714  
3715  function ComplementaryAreaFill(_ref2) {
3716    let {
3717      scope,
3718      children,
3719      className
3720    } = _ref2;
3721    return Object(external_wp_element_["createElement"])(external_wp_components_["Fill"], {
3722      name: `ComplementaryArea/$scope}`
3723    }, Object(external_wp_element_["createElement"])("div", {
3724      className: className
3725    }, children));
3726  }
3727  
3728  function useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall) {
3729    const previousIsSmall = Object(external_wp_element_["useRef"])(false);
3730    const shouldOpenWhenNotSmall = Object(external_wp_element_["useRef"])(false);
3731    const {
3732      enableComplementaryArea,
3733      disableComplementaryArea
3734    } = Object(external_wp_data_["useDispatch"])(store);
3735    Object(external_wp_element_["useEffect"])(() => {
3736      // If the complementary area is active and the editor is switching from a big to a small window size.
3737      if (isActive && isSmall && !previousIsSmall.current) {
3738        // Disable the complementary area.
3739        disableComplementaryArea(scope); // Flag the complementary area to be reopened when the window size goes from small to big.
3740  
3741        shouldOpenWhenNotSmall.current = true;
3742      } else if ( // If there is a flag indicating the complementary area should be enabled when we go from small to big window size
3743      // and we are going from a small to big window size.
3744      shouldOpenWhenNotSmall.current && !isSmall && previousIsSmall.current) {
3745        // Remove the flag indicating the complementary area should be enabled.
3746        shouldOpenWhenNotSmall.current = false; // Enable the complementary area.
3747  
3748        enableComplementaryArea(scope, identifier);
3749      } else if ( // If the flag is indicating the current complementary should be reopened but another complementary area becomes active,
3750      // remove the flag.
3751      shouldOpenWhenNotSmall.current && activeArea && activeArea !== identifier) {
3752        shouldOpenWhenNotSmall.current = false;
3753      }
3754  
3755      if (isSmall !== previousIsSmall.current) {
3756        previousIsSmall.current = isSmall;
3757      }
3758    }, [isActive, isSmall, scope, identifier, activeArea]);
3759  }
3760  
3761  function ComplementaryArea(_ref3) {
3762    let {
3763      children,
3764      className,
3765      closeLabel = Object(external_wp_i18n_["__"])('Close plugin'),
3766      identifier,
3767      header,
3768      headerClassName,
3769      icon,
3770      isPinnable = true,
3771      panelClassName,
3772      scope,
3773      name,
3774      smallScreenTitle,
3775      title,
3776      toggleShortcut,
3777      isActiveByDefault,
3778      showIconLabels = false
3779    } = _ref3;
3780    const {
3781      isActive,
3782      isPinned,
3783      activeArea,
3784      isSmall,
3785      isLarge
3786    } = Object(external_wp_data_["useSelect"])(select => {
3787      const {
3788        getActiveComplementaryArea,
3789        isItemPinned
3790      } = select(store);
3791  
3792      const _activeArea = getActiveComplementaryArea(scope);
3793  
3794      return {
3795        isActive: _activeArea === identifier,
3796        isPinned: isItemPinned(scope, identifier),
3797        activeArea: _activeArea,
3798        isSmall: select(external_wp_viewport_["store"]).isViewportMatch('< medium'),
3799        isLarge: select(external_wp_viewport_["store"]).isViewportMatch('large')
3800      };
3801    }, [identifier, scope]);
3802    useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall);
3803    const {
3804      enableComplementaryArea,
3805      disableComplementaryArea,
3806      pinItem,
3807      unpinItem
3808    } = Object(external_wp_data_["useDispatch"])(store);
3809    Object(external_wp_element_["useEffect"])(() => {
3810      if (isActiveByDefault && activeArea === undefined && !isSmall) {
3811        enableComplementaryArea(scope, identifier);
3812      }
3813    }, [activeArea, isActiveByDefault, scope, identifier, isSmall]);
3814    return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, isPinnable && Object(external_wp_element_["createElement"])(pinned_items, {
3815      scope: scope
3816    }, isPinned && Object(external_wp_element_["createElement"])(complementary_area_toggle, {
3817      scope: scope,
3818      identifier: identifier,
3819      isPressed: isActive && (!showIconLabels || isLarge),
3820      "aria-expanded": isActive,
3821      label: title,
3822      icon: showIconLabels ? check["a" /* default */] : icon,
3823      showTooltip: !showIconLabels,
3824      variant: showIconLabels ? 'tertiary' : undefined
3825    })), name && isPinnable && Object(external_wp_element_["createElement"])(ComplementaryAreaMoreMenuItem, {
3826      target: name,
3827      scope: scope,
3828      icon: icon
3829    }, title), isActive && Object(external_wp_element_["createElement"])(ComplementaryAreaFill, {
3830      className: classnames_default()('interface-complementary-area', className),
3831      scope: scope
3832    }, Object(external_wp_element_["createElement"])(complementary_area_header, {
3833      className: headerClassName,
3834      closeLabel: closeLabel,
3835      onClose: () => disableComplementaryArea(scope),
3836      smallScreenTitle: smallScreenTitle,
3837      toggleButtonProps: {
3838        label: closeLabel,
3839        shortcut: toggleShortcut,
3840        scope,
3841        identifier
3842      }
3843    }, header || Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("strong", null, title), isPinnable && Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
3844      className: "interface-complementary-area__pin-unpin-item",
3845      icon: isPinned ? star_filled["a" /* default */] : star_empty["a" /* default */],
3846      label: isPinned ? Object(external_wp_i18n_["__"])('Unpin from toolbar') : Object(external_wp_i18n_["__"])('Pin to toolbar'),
3847      onClick: () => (isPinned ? unpinItem : pinItem)(scope, identifier),
3848      isPressed: isPinned,
3849      "aria-expanded": isPinned
3850    }))), Object(external_wp_element_["createElement"])(external_wp_components_["Panel"], {
3851      className: panelClassName
3852    }, children)));
3853  }
3854  
3855  const ComplementaryAreaWrapped = complementary_area_context(ComplementaryArea);
3856  ComplementaryAreaWrapped.Slot = ComplementaryAreaSlot;
3857  /* harmony default export */ var complementary_area = (ComplementaryAreaWrapped);
3858  
3859  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/fullscreen-mode/index.js
3860  /**
3861   * WordPress dependencies
3862   */
3863  
3864  
3865  const FullscreenMode = _ref => {
3866    let {
3867      isActive
3868    } = _ref;
3869    Object(external_wp_element_["useEffect"])(() => {
3870      let isSticky = false; // `is-fullscreen-mode` is set in PHP as a body class by Gutenberg, and this causes
3871      // `sticky-menu` to be applied by WordPress and prevents the admin menu being scrolled
3872      // even if `is-fullscreen-mode` is then removed. Let's remove `sticky-menu` here as
3873      // a consequence of the FullscreenMode setup
3874  
3875      if (document.body.classList.contains('sticky-menu')) {
3876        isSticky = true;
3877        document.body.classList.remove('sticky-menu');
3878      }
3879  
3880      return () => {
3881        if (isSticky) {
3882          document.body.classList.add('sticky-menu');
3883        }
3884      };
3885    }, []);
3886    Object(external_wp_element_["useEffect"])(() => {
3887      if (isActive) {
3888        document.body.classList.add('is-fullscreen-mode');
3889      } else {
3890        document.body.classList.remove('is-fullscreen-mode');
3891      }
3892  
3893      return () => {
3894        if (isActive) {
3895          document.body.classList.remove('is-fullscreen-mode');
3896        }
3897      };
3898    }, [isActive]);
3899    return null;
3900  };
3901  
3902  /* harmony default export */ var fullscreen_mode = (FullscreenMode);
3903  
3904  // EXTERNAL MODULE: external ["wp","compose"]
3905  var external_wp_compose_ = __webpack_require__("K9lf");
3906  
3907  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/interface-skeleton/index.js
3908  
3909  
3910  
3911  /**
3912   * External dependencies
3913   */
3914  
3915  /**
3916   * WordPress dependencies
3917   */
3918  
3919  /**
3920   * WordPress dependencies
3921   */
3922  
3923  
3924  
3925  
3926  
3927  
3928  function useHTMLClass(className) {
3929    Object(external_wp_element_["useEffect"])(() => {
3930      const element = document && document.querySelector(`html:not(.$className})`);
3931  
3932      if (!element) {
3933        return;
3934      }
3935  
3936      element.classList.toggle(className);
3937      return () => {
3938        element.classList.toggle(className);
3939      };
3940    }, [className]);
3941  }
3942  
3943  function InterfaceSkeleton(_ref, ref) {
3944    let {
3945      footer,
3946      header,
3947      sidebar,
3948      secondarySidebar,
3949      notices,
3950      content,
3951      drawer,
3952      actions,
3953      labels,
3954      className,
3955      shortcuts
3956    } = _ref;
3957    const navigateRegionsProps = Object(external_wp_components_["__unstableUseNavigateRegions"])(shortcuts);
3958    useHTMLClass('interface-interface-skeleton__html-container');
3959    const defaultLabels = {
3960      /* translators: accessibility text for the nav bar landmark region. */
3961      drawer: Object(external_wp_i18n_["__"])('Drawer'),
3962  
3963      /* translators: accessibility text for the top bar landmark region. */
3964      header: Object(external_wp_i18n_["__"])('Header'),
3965  
3966      /* translators: accessibility text for the content landmark region. */
3967      body: Object(external_wp_i18n_["__"])('Content'),
3968  
3969      /* translators: accessibility text for the secondary sidebar landmark region. */
3970      secondarySidebar: Object(external_wp_i18n_["__"])('Block Library'),
3971  
3972      /* translators: accessibility text for the settings landmark region. */
3973      sidebar: Object(external_wp_i18n_["__"])('Settings'),
3974  
3975      /* translators: accessibility text for the publish landmark region. */
3976      actions: Object(external_wp_i18n_["__"])('Publish'),
3977  
3978      /* translators: accessibility text for the footer landmark region. */
3979      footer: Object(external_wp_i18n_["__"])('Footer')
3980    };
3981    const mergedLabels = { ...defaultLabels,
3982      ...labels
3983    };
3984    return Object(external_wp_element_["createElement"])("div", Object(esm_extends["a" /* default */])({}, navigateRegionsProps, {
3985      ref: Object(external_wp_compose_["useMergeRefs"])([ref, navigateRegionsProps.ref]),
3986      className: classnames_default()(className, 'interface-interface-skeleton', navigateRegionsProps.className, !!footer && 'has-footer')
3987    }), !!drawer && Object(external_wp_element_["createElement"])("div", {
3988      className: "interface-interface-skeleton__drawer",
3989      role: "region",
3990      "aria-label": mergedLabels.drawer,
3991      tabIndex: "-1"
3992    }, drawer), Object(external_wp_element_["createElement"])("div", {
3993      className: "interface-interface-skeleton__editor"
3994    }, !!header && Object(external_wp_element_["createElement"])("div", {
3995      className: "interface-interface-skeleton__header",
3996      role: "region",
3997      "aria-label": mergedLabels.header,
3998      tabIndex: "-1"
3999    }, header), Object(external_wp_element_["createElement"])("div", {
4000      className: "interface-interface-skeleton__body"
4001    }, !!secondarySidebar && Object(external_wp_element_["createElement"])("div", {
4002      className: "interface-interface-skeleton__secondary-sidebar",
4003      role: "region",
4004      "aria-label": mergedLabels.secondarySidebar,
4005      tabIndex: "-1"
4006    }, secondarySidebar), !!notices && Object(external_wp_element_["createElement"])("div", {
4007      className: "interface-interface-skeleton__notices"
4008    }, notices), Object(external_wp_element_["createElement"])("div", {
4009      className: "interface-interface-skeleton__content",
4010      role: "region",
4011      "aria-label": mergedLabels.body,
4012      tabIndex: "-1"
4013    }, content), !!sidebar && Object(external_wp_element_["createElement"])("div", {
4014      className: "interface-interface-skeleton__sidebar",
4015      role: "region",
4016      "aria-label": mergedLabels.sidebar,
4017      tabIndex: "-1"
4018    }, sidebar), !!actions && Object(external_wp_element_["createElement"])("div", {
4019      className: "interface-interface-skeleton__actions",
4020      role: "region",
4021      "aria-label": mergedLabels.actions,
4022      tabIndex: "-1"
4023    }, actions))), !!footer && Object(external_wp_element_["createElement"])("div", {
4024      className: "interface-interface-skeleton__footer",
4025      role: "region",
4026      "aria-label": mergedLabels.footer,
4027      tabIndex: "-1"
4028    }, footer));
4029  }
4030  
4031  /* harmony default export */ var interface_skeleton = (Object(external_wp_element_["forwardRef"])(InterfaceSkeleton));
4032  
4033  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
4034  var more_vertical = __webpack_require__("VKE3");
4035  
4036  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/more-menu-dropdown/index.js
4037  
4038  
4039  /**
4040   * External dependencies
4041   */
4042  
4043  /**
4044   * WordPress dependencies
4045   */
4046  
4047  
4048  
4049  
4050  function MoreMenuDropdown(_ref) {
4051    let {
4052      as: DropdownComponent = external_wp_components_["DropdownMenu"],
4053      className,
4054  
4055      /* translators: button label text should, if possible, be under 16 characters. */
4056      label = Object(external_wp_i18n_["__"])('Options'),
4057      popoverProps,
4058      toggleProps,
4059      children
4060    } = _ref;
4061    return Object(external_wp_element_["createElement"])(DropdownComponent, {
4062      className: classnames_default()('interface-more-menu-dropdown', className),
4063      icon: more_vertical["a" /* default */],
4064      label: label,
4065      popoverProps: {
4066        position: 'bottom left',
4067        ...popoverProps,
4068        className: classnames_default()('interface-more-menu-dropdown__content', popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.className)
4069      },
4070      toggleProps: {
4071        tooltipPosition: 'bottom',
4072        ...toggleProps
4073      }
4074    }, onClose => children(onClose));
4075  }
4076  
4077  // EXTERNAL MODULE: external ["wp","a11y"]
4078  var external_wp_a11y_ = __webpack_require__("gdqT");
4079  
4080  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/more-menu-feature-toggle/index.js
4081  
4082  
4083  /**
4084   * WordPress dependencies
4085   */
4086  
4087  
4088  
4089  
4090  
4091  /**
4092   * Internal dependencies
4093   */
4094  
4095  
4096  function MoreMenuFeatureToggle(_ref) {
4097    let {
4098      scope,
4099      label,
4100      info,
4101      messageActivated,
4102      messageDeactivated,
4103      shortcut,
4104      feature
4105    } = _ref;
4106    const isActive = Object(external_wp_data_["useSelect"])(select => select(store).isFeatureActive(scope, feature), [feature]);
4107    const {
4108      toggleFeature
4109    } = Object(external_wp_data_["useDispatch"])(store);
4110  
4111    const speakMessage = () => {
4112      if (isActive) {
4113        Object(external_wp_a11y_["speak"])(messageDeactivated || Object(external_wp_i18n_["__"])('Feature deactivated'));
4114      } else {
4115        Object(external_wp_a11y_["speak"])(messageActivated || Object(external_wp_i18n_["__"])('Feature activated'));
4116      }
4117    };
4118  
4119    return Object(external_wp_element_["createElement"])(external_wp_components_["MenuItem"], {
4120      icon: isActive && check["a" /* default */],
4121      isSelected: isActive,
4122      onClick: () => {
4123        toggleFeature(scope, feature);
4124        speakMessage();
4125      },
4126      role: "menuitemcheckbox",
4127      info: info,
4128      shortcut: shortcut
4129    }, label);
4130  }
4131  
4132  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/index.js
4133  
4134  
4135  
4136  
4137  
4138  
4139  
4140  
4141  
4142  // CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/index.js
4143  
4144  
4145  
4146  
4147  /***/ }),
4148  
4149  /***/ "URob":
4150  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4151  
4152  "use strict";
4153  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
4154  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
4155  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
4156  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
4157  
4158  
4159  /**
4160   * WordPress dependencies
4161   */
4162  
4163  const starFilled = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
4164    xmlns: "http://www.w3.org/2000/svg",
4165    viewBox: "0 0 24 24"
4166  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
4167    d: "M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"
4168  }));
4169  /* harmony default export */ __webpack_exports__["a"] = (starFilled);
4170  
4171  
4172  /***/ }),
4173  
4174  /***/ "VKE3":
4175  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4176  
4177  "use strict";
4178  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
4179  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
4180  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
4181  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
4182  
4183  
4184  /**
4185   * WordPress dependencies
4186   */
4187  
4188  const moreVertical = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
4189    xmlns: "http://www.w3.org/2000/svg",
4190    viewBox: "0 0 24 24"
4191  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
4192    d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
4193  }));
4194  /* harmony default export */ __webpack_exports__["a"] = (moreVertical);
4195  
4196  
4197  /***/ }),
4198  
4199  /***/ "Xxwi":
4200  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4201  
4202  "use strict";
4203  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
4204  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
4205  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
4206  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
4207  
4208  
4209  /**
4210   * WordPress dependencies
4211   */
4212  
4213  const starEmpty = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
4214    xmlns: "http://www.w3.org/2000/svg",
4215    viewBox: "0 0 24 24"
4216  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
4217    fillRule: "evenodd",
4218    d: "M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z",
4219    clipRule: "evenodd"
4220  }));
4221  /* harmony default export */ __webpack_exports__["a"] = (starEmpty);
4222  
4223  
4224  /***/ }),
4225  
4226  /***/ "YLtl":
4227  /***/ (function(module, exports) {
4228  
4229  (function() { module.exports = window["lodash"]; }());
4230  
4231  /***/ }),
4232  
4233  /***/ "axFQ":
4234  /***/ (function(module, exports) {
4235  
4236  (function() { module.exports = window["wp"]["blockEditor"]; }());
4237  
4238  /***/ }),
4239  
4240  /***/ "bWcr":
4241  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4242  
4243  "use strict";
4244  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
4245  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
4246  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
4247  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
4248  
4249  
4250  /**
4251   * WordPress dependencies
4252   */
4253  
4254  const closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
4255    xmlns: "http://www.w3.org/2000/svg",
4256    viewBox: "0 0 24 24"
4257  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
4258    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"
4259  }));
4260  /* harmony default export */ __webpack_exports__["a"] = (closeSmall);
4261  
4262  
4263  /***/ }),
4264  
4265  /***/ "g56x":
4266  /***/ (function(module, exports) {
4267  
4268  (function() { module.exports = window["wp"]["hooks"]; }());
4269  
4270  /***/ }),
4271  
4272  /***/ "gdqT":
4273  /***/ (function(module, exports) {
4274  
4275  (function() { module.exports = window["wp"]["a11y"]; }());
4276  
4277  /***/ }),
4278  
4279  /***/ "hF7m":
4280  /***/ (function(module, exports) {
4281  
4282  (function() { module.exports = window["wp"]["keyboardShortcuts"]; }());
4283  
4284  /***/ }),
4285  
4286  /***/ "jZUy":
4287  /***/ (function(module, exports) {
4288  
4289  (function() { module.exports = window["wp"]["coreData"]; }());
4290  
4291  /***/ }),
4292  
4293  /***/ "l3Sj":
4294  /***/ (function(module, exports) {
4295  
4296  (function() { module.exports = window["wp"]["i18n"]; }());
4297  
4298  /***/ }),
4299  
4300  /***/ "rl8x":
4301  /***/ (function(module, exports) {
4302  
4303  (function() { module.exports = window["wp"]["isShallowEqual"]; }());
4304  
4305  /***/ }),
4306  
4307  /***/ "tI+e":
4308  /***/ (function(module, exports) {
4309  
4310  (function() { module.exports = window["wp"]["components"]; }());
4311  
4312  /***/ }),
4313  
4314  /***/ "wx14":
4315  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4316  
4317  "use strict";
4318  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
4319  function _extends() {
4320    _extends = Object.assign || function (target) {
4321      for (var i = 1; i < arguments.length; i++) {
4322        var source = arguments[i];
4323  
4324        for (var key in source) {
4325          if (Object.prototype.hasOwnProperty.call(source, key)) {
4326            target[key] = source[key];
4327          }
4328        }
4329      }
4330  
4331      return target;
4332    };
4333  
4334    return _extends.apply(this, arguments);
4335  }
4336  
4337  /***/ })
4338  
4339  /******/ });


Generated: Wed Jan 19 01:00:04 2022 Cross-referenced by PHPXref 0.7.1