[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/js/dist/ -> block-directory.js (source)

   1  this["wp"] = this["wp"] || {}; this["wp"]["blockDirectory"] =
   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 = "7f3f");
  86  /******/ })
  87  /************************************************************************/
  88  /******/ ({
  89  
  90  /***/ "//Lo":
  91  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  92  
  93  "use strict";
  94  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  95  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  96  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  97  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  98  
  99  
 100  /**
 101   * WordPress dependencies
 102   */
 103  
 104  const blockDefault = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 105    xmlns: "http://www.w3.org/2000/svg",
 106    viewBox: "0 0 24 24"
 107  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 108    d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"
 109  }));
 110  /* harmony default export */ __webpack_exports__["a"] = (blockDefault);
 111  
 112  
 113  /***/ }),
 114  
 115  /***/ "1ZqX":
 116  /***/ (function(module, exports) {
 117  
 118  (function() { module.exports = window["wp"]["data"]; }());
 119  
 120  /***/ }),
 121  
 122  /***/ "51Zz":
 123  /***/ (function(module, exports) {
 124  
 125  (function() { module.exports = window["wp"]["dataControls"]; }());
 126  
 127  /***/ }),
 128  
 129  /***/ "7f3f":
 130  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 131  
 132  "use strict";
 133  // ESM COMPAT FLAG
 134  __webpack_require__.r(__webpack_exports__);
 135  
 136  // EXPORTS
 137  __webpack_require__.d(__webpack_exports__, "store", function() { return /* reexport */ store; });
 138  
 139  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-directory/build-module/store/selectors.js
 140  var selectors_namespaceObject = {};
 141  __webpack_require__.r(selectors_namespaceObject);
 142  __webpack_require__.d(selectors_namespaceObject, "isRequestingDownloadableBlocks", function() { return selectors_isRequestingDownloadableBlocks; });
 143  __webpack_require__.d(selectors_namespaceObject, "getDownloadableBlocks", function() { return selectors_getDownloadableBlocks; });
 144  __webpack_require__.d(selectors_namespaceObject, "getInstalledBlockTypes", function() { return getInstalledBlockTypes; });
 145  __webpack_require__.d(selectors_namespaceObject, "getNewBlockTypes", function() { return getNewBlockTypes; });
 146  __webpack_require__.d(selectors_namespaceObject, "getUnusedBlockTypes", function() { return getUnusedBlockTypes; });
 147  __webpack_require__.d(selectors_namespaceObject, "isInstalling", function() { return selectors_isInstalling; });
 148  __webpack_require__.d(selectors_namespaceObject, "getErrorNotices", function() { return getErrorNotices; });
 149  __webpack_require__.d(selectors_namespaceObject, "getErrorNoticeForBlock", function() { return selectors_getErrorNoticeForBlock; });
 150  
 151  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-directory/build-module/store/actions.js
 152  var actions_namespaceObject = {};
 153  __webpack_require__.r(actions_namespaceObject);
 154  __webpack_require__.d(actions_namespaceObject, "fetchDownloadableBlocks", function() { return fetchDownloadableBlocks; });
 155  __webpack_require__.d(actions_namespaceObject, "receiveDownloadableBlocks", function() { return receiveDownloadableBlocks; });
 156  __webpack_require__.d(actions_namespaceObject, "installBlockType", function() { return actions_installBlockType; });
 157  __webpack_require__.d(actions_namespaceObject, "uninstallBlockType", function() { return actions_uninstallBlockType; });
 158  __webpack_require__.d(actions_namespaceObject, "addInstalledBlockType", function() { return addInstalledBlockType; });
 159  __webpack_require__.d(actions_namespaceObject, "removeInstalledBlockType", function() { return removeInstalledBlockType; });
 160  __webpack_require__.d(actions_namespaceObject, "setIsInstalling", function() { return setIsInstalling; });
 161  __webpack_require__.d(actions_namespaceObject, "setErrorNotice", function() { return setErrorNotice; });
 162  __webpack_require__.d(actions_namespaceObject, "clearErrorNotice", function() { return clearErrorNotice; });
 163  
 164  // EXTERNAL MODULE: external ["wp","element"]
 165  var external_wp_element_ = __webpack_require__("GRId");
 166  
 167  // EXTERNAL MODULE: external ["wp","plugins"]
 168  var external_wp_plugins_ = __webpack_require__("TvNi");
 169  
 170  // EXTERNAL MODULE: external ["wp","hooks"]
 171  var external_wp_hooks_ = __webpack_require__("g56x");
 172  
 173  // EXTERNAL MODULE: external ["wp","blocks"]
 174  var external_wp_blocks_ = __webpack_require__("HSyU");
 175  
 176  // EXTERNAL MODULE: external ["wp","data"]
 177  var external_wp_data_ = __webpack_require__("1ZqX");
 178  
 179  // EXTERNAL MODULE: external ["wp","editor"]
 180  var external_wp_editor_ = __webpack_require__("jSdM");
 181  
 182  // EXTERNAL MODULE: external ["wp","dataControls"]
 183  var external_wp_dataControls_ = __webpack_require__("51Zz");
 184  
 185  // EXTERNAL MODULE: external "lodash"
 186  var external_lodash_ = __webpack_require__("YLtl");
 187  
 188  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/reducer.js
 189  /**
 190   * External dependencies
 191   */
 192  
 193  /**
 194   * WordPress dependencies
 195   */
 196  
 197  
 198  /**
 199   * Reducer returning an array of downloadable blocks.
 200   *
 201   * @param {Object} state  Current state.
 202   * @param {Object} action Dispatched action.
 203   *
 204   * @return {Object} Updated state.
 205   */
 206  
 207  const downloadableBlocks = (state = {}, action) => {
 208    switch (action.type) {
 209      case 'FETCH_DOWNLOADABLE_BLOCKS':
 210        return { ...state,
 211          [action.filterValue]: {
 212            isRequesting: true
 213          }
 214        };
 215  
 216      case 'RECEIVE_DOWNLOADABLE_BLOCKS':
 217        return { ...state,
 218          [action.filterValue]: {
 219            results: action.downloadableBlocks,
 220            isRequesting: false
 221          }
 222        };
 223    }
 224  
 225    return state;
 226  };
 227  /**
 228   * Reducer managing the installation and deletion of blocks.
 229   *
 230   * @param {Object} state  Current state.
 231   * @param {Object} action Dispatched action.
 232   *
 233   * @return {Object} Updated state.
 234   */
 235  
 236  const blockManagement = (state = {
 237    installedBlockTypes: [],
 238    isInstalling: {}
 239  }, action) => {
 240    switch (action.type) {
 241      case 'ADD_INSTALLED_BLOCK_TYPE':
 242        return { ...state,
 243          installedBlockTypes: [...state.installedBlockTypes, action.item]
 244        };
 245  
 246      case 'REMOVE_INSTALLED_BLOCK_TYPE':
 247        return { ...state,
 248          installedBlockTypes: state.installedBlockTypes.filter(blockType => blockType.name !== action.item.name)
 249        };
 250  
 251      case 'SET_INSTALLING_BLOCK':
 252        return { ...state,
 253          isInstalling: { ...state.isInstalling,
 254            [action.blockId]: action.isInstalling
 255          }
 256        };
 257    }
 258  
 259    return state;
 260  };
 261  /**
 262   * Reducer returning an object of error notices.
 263   *
 264   * @param {Object} state  Current state.
 265   * @param {Object} action Dispatched action.
 266   *
 267   * @return {Object} Updated state.
 268   */
 269  
 270  const errorNotices = (state = {}, action) => {
 271    switch (action.type) {
 272      case 'SET_ERROR_NOTICE':
 273        return { ...state,
 274          [action.blockId]: {
 275            message: action.message,
 276            isFatal: action.isFatal
 277          }
 278        };
 279  
 280      case 'CLEAR_ERROR_NOTICE':
 281        return Object(external_lodash_["omit"])(state, action.blockId);
 282    }
 283  
 284    return state;
 285  };
 286  /* harmony default export */ var reducer = (Object(external_wp_data_["combineReducers"])({
 287    downloadableBlocks,
 288    blockManagement,
 289    errorNotices
 290  }));
 291  
 292  // EXTERNAL MODULE: external ["wp","blockEditor"]
 293  var external_wp_blockEditor_ = __webpack_require__("axFQ");
 294  
 295  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/utils/has-block-type.js
 296  /**
 297   * Check if a block list contains a specific block type. Recursively searches
 298   * through `innerBlocks` if they exist.
 299   *
 300   * @param {Object} blockType A block object to search for.
 301   * @param {Object[]} blocks  The list of blocks to look through.
 302   *
 303   * @return {boolean} Whether the blockType is found.
 304   */
 305  function hasBlockType(blockType, blocks = []) {
 306    if (!blocks.length) {
 307      return false;
 308    }
 309  
 310    if (blocks.some(({
 311      name
 312    }) => name === blockType.name)) {
 313      return true;
 314    }
 315  
 316    for (let i = 0; i < blocks.length; i++) {
 317      if (hasBlockType(blockType, blocks[i].innerBlocks)) {
 318        return true;
 319      }
 320    }
 321  
 322    return false;
 323  }
 324  
 325  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/selectors.js
 326  /**
 327   * WordPress dependencies
 328   */
 329  
 330  
 331  /**
 332   * Internal dependencies
 333   */
 334  
 335  
 336  /**
 337   * Returns true if application is requesting for downloadable blocks.
 338   *
 339   * @param {Object} state       Global application state.
 340   * @param {string} filterValue Search string.
 341   *
 342   * @return {boolean} Whether a request is in progress for the blocks list.
 343   */
 344  
 345  function selectors_isRequestingDownloadableBlocks(state, filterValue) {
 346    if (!state.downloadableBlocks[filterValue] || !state.downloadableBlocks[filterValue].isRequesting) {
 347      return false;
 348    }
 349  
 350    return state.downloadableBlocks[filterValue].isRequesting;
 351  }
 352  /**
 353   * Returns the available uninstalled blocks.
 354   *
 355   * @param {Object} state       Global application state.
 356   * @param {string} filterValue Search string.
 357   *
 358   * @return {Array} Downloadable blocks.
 359   */
 360  
 361  function selectors_getDownloadableBlocks(state, filterValue) {
 362    if (!state.downloadableBlocks[filterValue] || !state.downloadableBlocks[filterValue].results) {
 363      return [];
 364    }
 365  
 366    return state.downloadableBlocks[filterValue].results;
 367  }
 368  /**
 369   * Returns the block types that have been installed on the server in this
 370   * session.
 371   *
 372   * @param {Object} state Global application state.
 373   *
 374   * @return {Array} Block type items
 375   */
 376  
 377  function getInstalledBlockTypes(state) {
 378    return state.blockManagement.installedBlockTypes;
 379  }
 380  /**
 381   * Returns block types that have been installed on the server and used in the
 382   * current post.
 383   *
 384   * @param {Object} state Global application state.
 385   *
 386   * @return {Array} Block type items.
 387   */
 388  
 389  const getNewBlockTypes = Object(external_wp_data_["createRegistrySelector"])(select => state => {
 390    const usedBlockTree = select(external_wp_blockEditor_["store"]).getBlocks();
 391    const installedBlockTypes = getInstalledBlockTypes(state);
 392    return installedBlockTypes.filter(blockType => hasBlockType(blockType, usedBlockTree));
 393  });
 394  /**
 395   * Returns the block types that have been installed on the server but are not
 396   * used in the current post.
 397   *
 398   * @param {Object} state Global application state.
 399   *
 400   * @return {Array} Block type items.
 401   */
 402  
 403  const getUnusedBlockTypes = Object(external_wp_data_["createRegistrySelector"])(select => state => {
 404    const usedBlockTree = select(external_wp_blockEditor_["store"]).getBlocks();
 405    const installedBlockTypes = getInstalledBlockTypes(state);
 406    return installedBlockTypes.filter(blockType => !hasBlockType(blockType, usedBlockTree));
 407  });
 408  /**
 409   * Returns true if a block plugin install is in progress.
 410   *
 411   * @param {Object} state   Global application state.
 412   * @param {string} blockId Id of the block.
 413   *
 414   * @return {boolean} Whether this block is currently being installed.
 415   */
 416  
 417  function selectors_isInstalling(state, blockId) {
 418    return state.blockManagement.isInstalling[blockId] || false;
 419  }
 420  /**
 421   * Returns all block error notices.
 422   *
 423   * @param {Object} state Global application state.
 424   *
 425   * @return {Object} Object with error notices.
 426   */
 427  
 428  function getErrorNotices(state) {
 429    return state.errorNotices;
 430  }
 431  /**
 432   * Returns the error notice for a given block.
 433   *
 434   * @param {Object} state   Global application state.
 435   * @param {string} blockId The ID of the block plugin. eg: my-block
 436   *
 437   * @return {string|boolean} The error text, or false if no error.
 438   */
 439  
 440  function selectors_getErrorNoticeForBlock(state, blockId) {
 441    return state.errorNotices[blockId];
 442  }
 443  
 444  // EXTERNAL MODULE: external ["wp","i18n"]
 445  var external_wp_i18n_ = __webpack_require__("l3Sj");
 446  
 447  // EXTERNAL MODULE: external ["wp","notices"]
 448  var external_wp_notices_ = __webpack_require__("onLe");
 449  
 450  // EXTERNAL MODULE: external ["wp","apiFetch"]
 451  var external_wp_apiFetch_ = __webpack_require__("ywyh");
 452  var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_);
 453  
 454  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/controls.js
 455  /**
 456   * WordPress dependencies
 457   */
 458  
 459  /**
 460   * Load an asset for a block.
 461   *
 462   * This function returns a Promise that will resolve once the asset is loaded,
 463   * or in the case of Stylesheets and Inline JavaScript, will resolve immediately.
 464   *
 465   * @param {HTMLElement} el A HTML Element asset to inject.
 466   *
 467   * @return {Promise} Promise which will resolve when the asset is loaded.
 468   */
 469  
 470  const loadAsset = el => {
 471    return new Promise((resolve, reject) => {
 472      /*
 473       * Reconstruct the passed element, this is required as inserting the Node directly
 474       * won't always fire the required onload events, even if the asset wasn't already loaded.
 475       */
 476      const newNode = document.createElement(el.nodeName);
 477      ['id', 'rel', 'src', 'href', 'type'].forEach(attr => {
 478        if (el[attr]) {
 479          newNode[attr] = el[attr];
 480        }
 481      }); // Append inline <script> contents.
 482  
 483      if (el.innerHTML) {
 484        newNode.appendChild(document.createTextNode(el.innerHTML));
 485      }
 486  
 487      newNode.onload = () => resolve(true);
 488  
 489      newNode.onerror = () => reject(new Error('Error loading asset.'));
 490  
 491      document.body.appendChild(newNode); // Resolve Stylesheets and Inline JavaScript immediately.
 492  
 493      if ('link' === newNode.nodeName.toLowerCase() || 'script' === newNode.nodeName.toLowerCase() && !newNode.src) {
 494        resolve();
 495      }
 496    });
 497  };
 498  /**
 499   * Load the asset files for a block
 500   *
 501   * @param {Array} assets A collection of URLs for the assets.
 502   *
 503   * @return {Object} Control descriptor.
 504   */
 505  
 506  function loadAssets(assets) {
 507    return {
 508      type: 'LOAD_ASSETS',
 509      assets
 510    };
 511  }
 512  const controls = {
 513    async LOAD_ASSETS() {
 514      /*
 515       * Fetch the current URL (post-new.php, or post.php?post=1&action=edit) and compare the
 516       * JavaScript and CSS assets loaded between the pages. This imports the required assets
 517       * for the block into the current page while not requiring that we know them up-front.
 518       * In the future this can be improved by reliance upon block.json and/or a script-loader
 519       * dependency API.
 520       */
 521      const response = await external_wp_apiFetch_default()({
 522        url: document.location.href,
 523        parse: false
 524      });
 525      const data = await response.text();
 526      const doc = new window.DOMParser().parseFromString(data, 'text/html');
 527      const newAssets = Array.from(doc.querySelectorAll('link[rel="stylesheet"],script')).filter(asset => asset.id && !document.getElementById(asset.id));
 528      /*
 529       * Load each asset in order, as they may depend upon an earlier loaded script.
 530       * Stylesheets and Inline Scripts will resolve immediately upon insertion.
 531       */
 532  
 533      for (const newAsset of newAssets) {
 534        await loadAsset(newAsset);
 535      }
 536    }
 537  
 538  };
 539  /* harmony default export */ var store_controls = (controls);
 540  
 541  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/utils/get-plugin-url.js
 542  /**
 543   * Get the plugin's direct API link out of a block-directory response.
 544   *
 545   * @param {Object} block The block object
 546   *
 547   * @return {string} The plugin URL, if exists.
 548   */
 549  function getPluginUrl(block) {
 550    if (!block) {
 551      return false;
 552    }
 553  
 554    const link = block.links['wp:plugin'] || block.links.self;
 555  
 556    if (link && link.length) {
 557      return link[0].href;
 558    }
 559  
 560    return false;
 561  }
 562  
 563  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/actions.js
 564  /**
 565   * WordPress dependencies
 566   */
 567  
 568  
 569  
 570  
 571  
 572  /**
 573   * Internal dependencies
 574   */
 575  
 576  
 577  
 578  /**
 579   * Returns an action object used in signalling that the downloadable blocks
 580   * have been requested and are loading.
 581   *
 582   * @param {string} filterValue Search string.
 583   *
 584   * @return {Object} Action object.
 585   */
 586  
 587  function fetchDownloadableBlocks(filterValue) {
 588    return {
 589      type: 'FETCH_DOWNLOADABLE_BLOCKS',
 590      filterValue
 591    };
 592  }
 593  /**
 594   * Returns an action object used in signalling that the downloadable blocks
 595   * have been updated.
 596   *
 597   * @param {Array}  downloadableBlocks Downloadable blocks.
 598   * @param {string} filterValue        Search string.
 599   *
 600   * @return {Object} Action object.
 601   */
 602  
 603  function receiveDownloadableBlocks(downloadableBlocks, filterValue) {
 604    return {
 605      type: 'RECEIVE_DOWNLOADABLE_BLOCKS',
 606      downloadableBlocks,
 607      filterValue
 608    };
 609  }
 610  /**
 611   * Action triggered to install a block plugin.
 612   *
 613   * @param {Object} block The block item returned by search.
 614   *
 615   * @return {boolean} Whether the block was successfully installed & loaded.
 616   */
 617  
 618  function* actions_installBlockType(block) {
 619    const {
 620      id,
 621      assets
 622    } = block;
 623    let success = false;
 624    yield clearErrorNotice(id);
 625  
 626    try {
 627      yield setIsInstalling(block.id, true); // If we have a wp:plugin link, the plugin is installed but inactive.
 628  
 629      const url = getPluginUrl(block);
 630      let links = {};
 631  
 632      if (url) {
 633        yield Object(external_wp_dataControls_["apiFetch"])({
 634          url,
 635          data: {
 636            status: 'active'
 637          },
 638          method: 'PUT'
 639        });
 640      } else {
 641        const response = yield Object(external_wp_dataControls_["apiFetch"])({
 642          path: 'wp/v2/plugins',
 643          data: {
 644            slug: block.id,
 645            status: 'active'
 646          },
 647          method: 'POST'
 648        }); // Add the `self` link for newly-installed blocks.
 649  
 650        links = response._links;
 651      }
 652  
 653      yield addInstalledBlockType({ ...block,
 654        links: { ...block.links,
 655          ...links
 656        }
 657      });
 658      yield loadAssets(assets);
 659      const registeredBlocks = yield external_wp_data_["controls"].select(external_wp_blocks_["store"].name, 'getBlockTypes');
 660  
 661      if (!registeredBlocks.some(i => i.name === block.name)) {
 662        throw new Error(Object(external_wp_i18n_["__"])('Error registering block. Try reloading the page.'));
 663      }
 664  
 665      yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createInfoNotice', Object(external_wp_i18n_["sprintf"])( // translators: %s is the block title.
 666      Object(external_wp_i18n_["__"])('Block %s installed and added.'), block.title), {
 667        speak: true,
 668        type: 'snackbar'
 669      });
 670      success = true;
 671    } catch (error) {
 672      let message = error.message || Object(external_wp_i18n_["__"])('An error occurred.'); // Errors we throw are fatal
 673  
 674  
 675      let isFatal = error instanceof Error; // Specific API errors that are fatal
 676  
 677      const fatalAPIErrors = {
 678        folder_exists: Object(external_wp_i18n_["__"])('This block is already installed. Try reloading the page.'),
 679        unable_to_connect_to_filesystem: Object(external_wp_i18n_["__"])('Error installing block. You can reload the page and try again.')
 680      };
 681  
 682      if (fatalAPIErrors[error.code]) {
 683        isFatal = true;
 684        message = fatalAPIErrors[error.code];
 685      }
 686  
 687      yield setErrorNotice(id, message, isFatal);
 688      yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createErrorNotice', message, {
 689        speak: true,
 690        isDismissible: true
 691      });
 692    }
 693  
 694    yield setIsInstalling(block.id, false);
 695    return success;
 696  }
 697  /**
 698   * Action triggered to uninstall a block plugin.
 699   *
 700   * @param {Object} block The blockType object.
 701   */
 702  
 703  function* actions_uninstallBlockType(block) {
 704    try {
 705      yield Object(external_wp_dataControls_["apiFetch"])({
 706        url: getPluginUrl(block),
 707        data: {
 708          status: 'inactive'
 709        },
 710        method: 'PUT'
 711      });
 712      yield Object(external_wp_dataControls_["apiFetch"])({
 713        url: getPluginUrl(block),
 714        method: 'DELETE'
 715      });
 716      yield removeInstalledBlockType(block);
 717    } catch (error) {
 718      yield external_wp_data_["controls"].dispatch(external_wp_notices_["store"], 'createErrorNotice', error.message || Object(external_wp_i18n_["__"])('An error occurred.'));
 719    }
 720  }
 721  /**
 722   * Returns an action object used to add a block type to the "newly installed"
 723   * tracking list.
 724   *
 725   * @param {Object} item The block item with the block id and name.
 726   *
 727   * @return {Object} Action object.
 728   */
 729  
 730  function addInstalledBlockType(item) {
 731    return {
 732      type: 'ADD_INSTALLED_BLOCK_TYPE',
 733      item
 734    };
 735  }
 736  /**
 737   * Returns an action object used to remove a block type from the "newly installed"
 738   * tracking list.
 739   *
 740   * @param {string} item The block item with the block id and name.
 741   *
 742   * @return {Object} Action object.
 743   */
 744  
 745  function removeInstalledBlockType(item) {
 746    return {
 747      type: 'REMOVE_INSTALLED_BLOCK_TYPE',
 748      item
 749    };
 750  }
 751  /**
 752   * Returns an action object used to indicate install in progress.
 753   *
 754   * @param {string} blockId
 755   * @param {boolean} isInstalling
 756   *
 757   * @return {Object} Action object.
 758   */
 759  
 760  function setIsInstalling(blockId, isInstalling) {
 761    return {
 762      type: 'SET_INSTALLING_BLOCK',
 763      blockId,
 764      isInstalling
 765    };
 766  }
 767  /**
 768   * Sets an error notice to be displayed to the user for a given block.
 769   *
 770   * @param {string} blockId  The ID of the block plugin. eg: my-block
 771   * @param {string} message  The message shown in the notice.
 772   * @param {boolean} isFatal Whether the user can recover from the error.
 773   *
 774   * @return {Object} Action object.
 775   */
 776  
 777  function setErrorNotice(blockId, message, isFatal = false) {
 778    return {
 779      type: 'SET_ERROR_NOTICE',
 780      blockId,
 781      message,
 782      isFatal
 783    };
 784  }
 785  /**
 786   * Sets the error notice to empty for specific block.
 787   *
 788   * @param {string} blockId The ID of the block plugin. eg: my-block
 789   *
 790   * @return {Object} Action object.
 791   */
 792  
 793  function clearErrorNotice(blockId) {
 794    return {
 795      type: 'CLEAR_ERROR_NOTICE',
 796      blockId
 797    };
 798  }
 799  
 800  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/resolvers.js
 801  /**
 802   * External dependencies
 803   */
 804  
 805  /**
 806   * WordPress dependencies
 807   */
 808  
 809  
 810  /**
 811   * Internal dependencies
 812   */
 813  
 814  
 815  /* harmony default export */ var resolvers = ({
 816    *getDownloadableBlocks(filterValue) {
 817      if (!filterValue) {
 818        return;
 819      }
 820  
 821      try {
 822        yield fetchDownloadableBlocks(filterValue);
 823        const results = yield Object(external_wp_dataControls_["apiFetch"])({
 824          path: `wp/v2/block-directory/search?term=$filterValue}`
 825        });
 826        const blocks = results.map(result => Object(external_lodash_["mapKeys"])(result, (value, key) => {
 827          return Object(external_lodash_["camelCase"])(key);
 828        }));
 829        yield receiveDownloadableBlocks(blocks, filterValue);
 830      } catch (error) {}
 831    }
 832  
 833  });
 834  
 835  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/index.js
 836  /**
 837   * WordPress dependencies
 838   */
 839  
 840  
 841  /**
 842   * Internal dependencies
 843   */
 844  
 845  
 846  
 847  
 848  
 849  
 850  /**
 851   * Module Constants
 852   */
 853  
 854  const STORE_NAME = 'core/block-directory';
 855  /**
 856   * Block editor data store configuration.
 857   *
 858   * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore
 859   *
 860   * @type {Object}
 861   */
 862  
 863  const storeConfig = {
 864    reducer: reducer,
 865    selectors: selectors_namespaceObject,
 866    actions: actions_namespaceObject,
 867    controls: { ...external_wp_dataControls_["controls"],
 868      ...store_controls
 869    },
 870    resolvers: resolvers
 871  };
 872  /**
 873   * Store definition for the block directory namespace.
 874   *
 875   * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
 876   *
 877   * @type {Object}
 878   */
 879  
 880  const store = Object(external_wp_data_["createReduxStore"])(STORE_NAME, storeConfig);
 881  Object(external_wp_data_["register"])(store);
 882  
 883  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/auto-block-uninstaller/index.js
 884  /**
 885   * WordPress dependencies
 886   */
 887  
 888  
 889  
 890  
 891  /**
 892   * Internal dependencies
 893   */
 894  
 895  
 896  function AutoBlockUninstaller() {
 897    const {
 898      uninstallBlockType
 899    } = Object(external_wp_data_["useDispatch"])(store);
 900    const shouldRemoveBlockTypes = Object(external_wp_data_["useSelect"])(select => {
 901      const {
 902        isAutosavingPost,
 903        isSavingPost
 904      } = select(external_wp_editor_["store"]);
 905      return isSavingPost() && !isAutosavingPost();
 906    }, []);
 907    const unusedBlockTypes = Object(external_wp_data_["useSelect"])(select => select(store).getUnusedBlockTypes(), []);
 908    Object(external_wp_element_["useEffect"])(() => {
 909      if (shouldRemoveBlockTypes && unusedBlockTypes.length) {
 910        unusedBlockTypes.forEach(blockType => {
 911          uninstallBlockType(blockType);
 912          Object(external_wp_blocks_["unregisterBlockType"])(blockType.name);
 913        });
 914      }
 915    }, [shouldRemoveBlockTypes]);
 916    return null;
 917  }
 918  
 919  // EXTERNAL MODULE: external ["wp","components"]
 920  var external_wp_components_ = __webpack_require__("tI+e");
 921  
 922  // EXTERNAL MODULE: external ["wp","compose"]
 923  var external_wp_compose_ = __webpack_require__("K9lf");
 924  
 925  // EXTERNAL MODULE: external ["wp","coreData"]
 926  var external_wp_coreData_ = __webpack_require__("jZUy");
 927  
 928  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
 929  var esm_extends = __webpack_require__("wx14");
 930  
 931  // EXTERNAL MODULE: external ["wp","htmlEntities"]
 932  var external_wp_htmlEntities_ = __webpack_require__("rmEH");
 933  
 934  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
 935  var build_module_icon = __webpack_require__("iClF");
 936  
 937  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-filled.js
 938  var star_filled = __webpack_require__("URob");
 939  
 940  // EXTERNAL MODULE: external ["wp","primitives"]
 941  var external_wp_primitives_ = __webpack_require__("Tqx9");
 942  
 943  // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/star-half.js
 944  
 945  
 946  /**
 947   * WordPress dependencies
 948   */
 949  
 950  const starHalf = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
 951    xmlns: "http://www.w3.org/2000/svg",
 952    viewBox: "0 0 24 24"
 953  }, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
 954    d: "M9.518 8.783a.25.25 0 00.188-.137l2.069-4.192a.25.25 0 01.448 0l2.07 4.192a.25.25 0 00.187.137l4.626.672a.25.25 0 01.139.427l-3.347 3.262a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.363.264l-4.137-2.176a.25.25 0 00-.233 0l-4.138 2.175a.25.25 0 01-.362-.263l.79-4.607a.25.25 0 00-.072-.222L4.753 9.882a.25.25 0 01.14-.427l4.625-.672zM12 14.533c.28 0 .559.067.814.2l1.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.39v7.143z"
 955  }));
 956  /* harmony default export */ var star_half = (starHalf);
 957  
 958  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-empty.js
 959  var star_empty = __webpack_require__("Xxwi");
 960  
 961  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/block-ratings/stars.js
 962  
 963  
 964  /**
 965   * External dependencies
 966   */
 967  
 968  /**
 969   * WordPress dependencies
 970   */
 971  
 972  
 973  
 974  
 975  function Stars({
 976    rating
 977  }) {
 978    const stars = Math.round(rating / 0.5) * 0.5;
 979    const fullStarCount = Math.floor(rating);
 980    const halfStarCount = Math.ceil(rating - fullStarCount);
 981    const emptyStarCount = 5 - (fullStarCount + halfStarCount);
 982    return Object(external_wp_element_["createElement"])("span", {
 983      "aria-label": Object(external_wp_i18n_["sprintf"])(
 984      /* translators: %s: number of stars. */
 985      Object(external_wp_i18n_["__"])('%s out of 5 stars'), stars)
 986    }, Object(external_lodash_["times"])(fullStarCount, i => Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
 987      key: `full_stars_$i}`,
 988      className: "block-directory-block-ratings__star-full",
 989      icon: star_filled["a" /* default */],
 990      size: 16
 991    })), Object(external_lodash_["times"])(halfStarCount, i => Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
 992      key: `half_stars_$i}`,
 993      className: "block-directory-block-ratings__star-half-full",
 994      icon: star_half,
 995      size: 16
 996    })), Object(external_lodash_["times"])(emptyStarCount, i => Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
 997      key: `empty_stars_$i}`,
 998      className: "block-directory-block-ratings__star-empty",
 999      icon: star_empty["a" /* default */],
1000      size: 16
1001    })));
1002  }
1003  
1004  /* harmony default export */ var block_ratings_stars = (Stars);
1005  
1006  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/block-ratings/index.js
1007  
1008  
1009  /**
1010   * Internal dependencies
1011   */
1012  
1013  const BlockRatings = ({
1014    rating
1015  }) => Object(external_wp_element_["createElement"])("span", {
1016    className: "block-directory-block-ratings"
1017  }, Object(external_wp_element_["createElement"])(block_ratings_stars, {
1018    rating: rating
1019  }));
1020  /* harmony default export */ var block_ratings = (BlockRatings);
1021  
1022  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-icon/index.js
1023  
1024  
1025  /**
1026   * WordPress dependencies
1027   */
1028  
1029  
1030  function DownloadableBlockIcon({
1031    icon
1032  }) {
1033    const className = 'block-directory-downloadable-block-icon';
1034    return icon.match(/\.(jpeg|jpg|gif|png|svg)(?:\?.*)?$/) !== null ? Object(external_wp_element_["createElement"])("img", {
1035      className: className,
1036      src: icon,
1037      alt: ""
1038    }) : Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockIcon"], {
1039      className: className,
1040      icon: icon,
1041      showColors: true
1042    });
1043  }
1044  
1045  /* harmony default export */ var downloadable_block_icon = (DownloadableBlockIcon);
1046  
1047  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-notice/index.js
1048  
1049  
1050  /**
1051   * WordPress dependencies
1052   */
1053  
1054  
1055  /**
1056   * Internal dependencies
1057   */
1058  
1059  
1060  const DownloadableBlockNotice = ({
1061    block
1062  }) => {
1063    const errorNotice = Object(external_wp_data_["useSelect"])(select => select(store).getErrorNoticeForBlock(block.id), [block]);
1064  
1065    if (!errorNotice) {
1066      return null;
1067    }
1068  
1069    return Object(external_wp_element_["createElement"])("div", {
1070      className: "block-directory-downloadable-block-notice"
1071    }, Object(external_wp_element_["createElement"])("div", {
1072      className: "block-directory-downloadable-block-notice__content"
1073    }, errorNotice.message, errorNotice.isFatal ? ' ' + Object(external_wp_i18n_["__"])('Try reloading the page.') : null));
1074  };
1075  /* harmony default export */ var downloadable_block_notice = (DownloadableBlockNotice);
1076  
1077  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-list-item/index.js
1078  
1079  
1080  
1081  /**
1082   * WordPress dependencies
1083   */
1084  
1085  
1086  
1087  
1088  
1089  
1090  /**
1091   * Internal dependencies
1092   */
1093  
1094  
1095  
1096  
1097   // Return the appropriate block item label, given the block data and status.
1098  
1099  function getDownloadableBlockLabel({
1100    title,
1101    rating,
1102    ratingCount
1103  }, {
1104    hasNotice,
1105    isInstalled,
1106    isInstalling
1107  }) {
1108    const stars = Math.round(rating / 0.5) * 0.5;
1109  
1110    if (!isInstalled && hasNotice) {
1111      /* translators: %1$s: block title */
1112      return Object(external_wp_i18n_["sprintf"])('Retry installing %s.', Object(external_wp_htmlEntities_["decodeEntities"])(title));
1113    }
1114  
1115    if (isInstalled) {
1116      /* translators: %1$s: block title */
1117      return Object(external_wp_i18n_["sprintf"])('Add %s.', Object(external_wp_htmlEntities_["decodeEntities"])(title));
1118    }
1119  
1120    if (isInstalling) {
1121      /* translators: %1$s: block title */
1122      return Object(external_wp_i18n_["sprintf"])('Installing %s.', Object(external_wp_htmlEntities_["decodeEntities"])(title));
1123    } // No ratings yet, just use the title.
1124  
1125  
1126    if (ratingCount < 1) {
1127      /* translators: %1$s: block title */
1128      return Object(external_wp_i18n_["sprintf"])('Install %s.', Object(external_wp_htmlEntities_["decodeEntities"])(title));
1129    }
1130  
1131    return Object(external_wp_i18n_["sprintf"])(
1132    /* translators: %1$s: block title, %2$s: average rating, %3$s: total ratings count. */
1133    Object(external_wp_i18n_["_n"])('Install %1$s. %2$s stars with %3$s review.', 'Install %1$s. %2$s stars with %3$s reviews.', ratingCount), Object(external_wp_htmlEntities_["decodeEntities"])(title), stars, ratingCount);
1134  }
1135  
1136  function DownloadableBlockListItem({
1137    composite,
1138    item,
1139    onClick
1140  }) {
1141    const {
1142      author,
1143      description,
1144      icon,
1145      rating,
1146      title
1147    } = item; // getBlockType returns a block object if this block exists, or null if not.
1148  
1149    const isInstalled = !!Object(external_wp_blocks_["getBlockType"])(item.name);
1150    const {
1151      hasNotice,
1152      isInstalling,
1153      isInstallable
1154    } = Object(external_wp_data_["useSelect"])(select => {
1155      const {
1156        getErrorNoticeForBlock,
1157        isInstalling: isBlockInstalling
1158      } = select(store);
1159      const notice = getErrorNoticeForBlock(item.id);
1160      const hasFatal = notice && notice.isFatal;
1161      return {
1162        hasNotice: !!notice,
1163        isInstalling: isBlockInstalling(item.id),
1164        isInstallable: !hasFatal
1165      };
1166    }, [item]);
1167    let statusText = '';
1168  
1169    if (isInstalled) {
1170      statusText = Object(external_wp_i18n_["__"])('Installed!');
1171    } else if (isInstalling) {
1172      statusText = Object(external_wp_i18n_["__"])('Installing…');
1173    }
1174  
1175    return Object(external_wp_element_["createElement"])(external_wp_components_["__unstableCompositeItem"], Object(esm_extends["a" /* default */])({
1176      role: "option",
1177      as: external_wp_components_["Button"]
1178    }, composite, {
1179      className: "block-directory-downloadable-block-list-item",
1180      onClick: event => {
1181        event.preventDefault();
1182        onClick();
1183      },
1184      isBusy: isInstalling,
1185      disabled: isInstalling || !isInstallable,
1186      label: getDownloadableBlockLabel(item, {
1187        hasNotice,
1188        isInstalled,
1189        isInstalling
1190      }),
1191      showTooltip: true,
1192      tooltipPosition: "top center"
1193    }), Object(external_wp_element_["createElement"])("div", {
1194      className: "block-directory-downloadable-block-list-item__icon"
1195    }, Object(external_wp_element_["createElement"])(downloadable_block_icon, {
1196      icon: icon,
1197      title: title
1198    }), isInstalling ? Object(external_wp_element_["createElement"])("span", {
1199      className: "block-directory-downloadable-block-list-item__spinner"
1200    }, Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null)) : Object(external_wp_element_["createElement"])(block_ratings, {
1201      rating: rating
1202    })), Object(external_wp_element_["createElement"])("span", {
1203      className: "block-directory-downloadable-block-list-item__details"
1204    }, Object(external_wp_element_["createElement"])("span", {
1205      className: "block-directory-downloadable-block-list-item__title"
1206    }, Object(external_wp_element_["createInterpolateElement"])(Object(external_wp_i18n_["sprintf"])(
1207    /* translators: %1$s: block title, %2$s: author name. */
1208    Object(external_wp_i18n_["__"])('%1$s <span>by %2$s</span>'), Object(external_wp_htmlEntities_["decodeEntities"])(title), author), {
1209      span: Object(external_wp_element_["createElement"])("span", {
1210        className: "block-directory-downloadable-block-list-item__author"
1211      })
1212    })), hasNotice ? Object(external_wp_element_["createElement"])(downloadable_block_notice, {
1213      block: item
1214    }) : Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("span", {
1215      className: "block-directory-downloadable-block-list-item__desc"
1216    }, !!statusText ? statusText : Object(external_wp_htmlEntities_["decodeEntities"])(description)), isInstallable && !(isInstalled || isInstalling) && Object(external_wp_element_["createElement"])(external_wp_components_["VisuallyHidden"], null, Object(external_wp_i18n_["__"])('Install block')))));
1217  }
1218  
1219  /* harmony default export */ var downloadable_block_list_item = (DownloadableBlockListItem);
1220  
1221  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-blocks-list/index.js
1222  
1223  
1224  
1225  /**
1226   * External dependencies
1227   */
1228  
1229  /**
1230   * WordPress dependencies
1231   */
1232  
1233  
1234  
1235  
1236  
1237  /**
1238   * Internal dependencies
1239   */
1240  
1241  
1242  
1243  
1244  function DownloadableBlocksList({
1245    items,
1246    onHover = external_lodash_["noop"],
1247    onSelect
1248  }) {
1249    const composite = Object(external_wp_components_["__unstableUseCompositeState"])();
1250    const {
1251      installBlockType
1252    } = Object(external_wp_data_["useDispatch"])(store);
1253  
1254    if (!items.length) {
1255      return null;
1256    }
1257  
1258    return Object(external_wp_element_["createElement"])(external_wp_components_["__unstableComposite"], Object(esm_extends["a" /* default */])({}, composite, {
1259      role: "listbox",
1260      className: "block-directory-downloadable-blocks-list",
1261      "aria-label": Object(external_wp_i18n_["__"])('Blocks available for install')
1262    }), items.map(item => {
1263      return Object(external_wp_element_["createElement"])(downloadable_block_list_item, {
1264        key: item.id,
1265        composite: composite,
1266        onClick: () => {
1267          // Check if the block is registered (`getBlockType`
1268          // will return an object). If so, insert the block.
1269          // This prevents installing existing plugins.
1270          if (Object(external_wp_blocks_["getBlockType"])(item.name)) {
1271            onSelect(item);
1272          } else {
1273            installBlockType(item).then(success => {
1274              if (success) {
1275                onSelect(item);
1276              }
1277            });
1278          }
1279  
1280          onHover(null);
1281        },
1282        onHover: onHover,
1283        item: item
1284      });
1285    }));
1286  }
1287  
1288  /* harmony default export */ var downloadable_blocks_list = (DownloadableBlocksList);
1289  
1290  // EXTERNAL MODULE: external ["wp","a11y"]
1291  var external_wp_a11y_ = __webpack_require__("gdqT");
1292  
1293  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-blocks-panel/inserter-panel.js
1294  
1295  
1296  /**
1297   * WordPress dependencies
1298   */
1299  
1300  
1301  
1302  
1303  function DownloadableBlocksInserterPanel({
1304    children,
1305    downloadableItems,
1306    hasLocalBlocks
1307  }) {
1308    const count = downloadableItems.length;
1309    Object(external_wp_element_["useEffect"])(() => {
1310      Object(external_wp_a11y_["speak"])(Object(external_wp_i18n_["sprintf"])(
1311      /* translators: %d: number of available blocks. */
1312      Object(external_wp_i18n_["_n"])('%d additional block is available to install.', '%d additional blocks are available to install.', count), count));
1313    }, [count]);
1314    return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, !hasLocalBlocks && Object(external_wp_element_["createElement"])("p", {
1315      className: "block-directory-downloadable-blocks-panel__no-local"
1316    }, Object(external_wp_i18n_["__"])('No results available from your installed blocks.')), Object(external_wp_element_["createElement"])("div", {
1317      className: "block-editor-inserter__quick-inserter-separator"
1318    }), Object(external_wp_element_["createElement"])("div", {
1319      className: "block-directory-downloadable-blocks-panel"
1320    }, Object(external_wp_element_["createElement"])("div", {
1321      className: "block-directory-downloadable-blocks-panel__header"
1322    }, Object(external_wp_element_["createElement"])("h2", {
1323      className: "block-directory-downloadable-blocks-panel__title"
1324    }, Object(external_wp_i18n_["__"])('Available to install')), Object(external_wp_element_["createElement"])("p", {
1325      className: "block-directory-downloadable-blocks-panel__description"
1326    }, Object(external_wp_i18n_["__"])('Select a block to install and add it to your post.'))), children));
1327  }
1328  
1329  /* harmony default export */ var inserter_panel = (DownloadableBlocksInserterPanel);
1330  
1331  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/block-default.js
1332  var block_default = __webpack_require__("//Lo");
1333  
1334  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-blocks-panel/no-results.js
1335  
1336  
1337  /**
1338   * WordPress dependencies
1339   */
1340  
1341  
1342  
1343  function DownloadableBlocksNoResults() {
1344    return Object(external_wp_element_["createElement"])("div", {
1345      className: "block-editor-inserter__no-results"
1346    }, Object(external_wp_element_["createElement"])(build_module_icon["a" /* default */], {
1347      className: "block-editor-inserter__no-results-icon",
1348      icon: block_default["a" /* default */]
1349    }), Object(external_wp_element_["createElement"])("p", null, Object(external_wp_i18n_["__"])('No results found.')));
1350  }
1351  
1352  /* harmony default export */ var no_results = (DownloadableBlocksNoResults);
1353  
1354  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-blocks-panel/index.js
1355  
1356  
1357  /**
1358   * WordPress dependencies
1359   */
1360  
1361  
1362  
1363  
1364  
1365  
1366  /**
1367   * Internal dependencies
1368   */
1369  
1370  
1371  
1372  
1373  
1374  
1375  function DownloadableBlocksPanel({
1376    downloadableItems,
1377    onSelect,
1378    onHover,
1379    hasLocalBlocks,
1380    hasPermission,
1381    isLoading,
1382    isTyping
1383  }) {
1384    if (typeof hasPermission === 'undefined' || isLoading || isTyping) {
1385      return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, hasPermission && !hasLocalBlocks && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])("p", {
1386        className: "block-directory-downloadable-blocks-panel__no-local"
1387      }, Object(external_wp_i18n_["__"])('No results available from your installed blocks.')), Object(external_wp_element_["createElement"])("div", {
1388        className: "block-editor-inserter__quick-inserter-separator"
1389      })), Object(external_wp_element_["createElement"])("div", {
1390        className: "block-directory-downloadable-blocks-panel has-blocks-loading"
1391      }, Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null)));
1392    }
1393  
1394    if (false === hasPermission) {
1395      if (!hasLocalBlocks) {
1396        return Object(external_wp_element_["createElement"])(no_results, null);
1397      }
1398  
1399      return null;
1400    }
1401  
1402    return !!downloadableItems.length ? Object(external_wp_element_["createElement"])(inserter_panel, {
1403      downloadableItems: downloadableItems,
1404      hasLocalBlocks: hasLocalBlocks
1405    }, Object(external_wp_element_["createElement"])(downloadable_blocks_list, {
1406      items: downloadableItems,
1407      onSelect: onSelect,
1408      onHover: onHover
1409    })) : !hasLocalBlocks && Object(external_wp_element_["createElement"])(no_results, null);
1410  }
1411  
1412  /* harmony default export */ var downloadable_blocks_panel = (Object(external_wp_compose_["compose"])([Object(external_wp_data_["withSelect"])((select, {
1413    filterValue,
1414    rootClientId = null
1415  }) => {
1416    const {
1417      getDownloadableBlocks,
1418      isRequestingDownloadableBlocks
1419    } = select(store);
1420    const {
1421      canInsertBlockType
1422    } = select(external_wp_blockEditor_["store"]);
1423    const hasPermission = select(external_wp_coreData_["store"]).canUser('read', 'block-directory/search');
1424  
1425    function getInstallableBlocks(term) {
1426      return getDownloadableBlocks(term).filter(block => canInsertBlockType(block, rootClientId, true));
1427    }
1428  
1429    const downloadableItems = hasPermission ? getInstallableBlocks(filterValue) : [];
1430    const isLoading = isRequestingDownloadableBlocks(filterValue);
1431    return {
1432      downloadableItems,
1433      hasPermission,
1434      isLoading
1435    };
1436  })])(DownloadableBlocksPanel));
1437  
1438  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js
1439  
1440  
1441  /**
1442   * External dependencies
1443   */
1444  
1445  /**
1446   * WordPress dependencies
1447   */
1448  
1449  
1450  
1451  /**
1452   * Internal dependencies
1453   */
1454  
1455  
1456  
1457  function InserterMenuDownloadableBlocksPanel() {
1458    const [debouncedFilterValue, setFilterValue] = Object(external_wp_element_["useState"])('');
1459    const debouncedSetFilterValue = Object(external_lodash_["debounce"])(setFilterValue, 400);
1460    return Object(external_wp_element_["createElement"])(external_wp_blockEditor_["__unstableInserterMenuExtension"], null, ({
1461      onSelect,
1462      onHover,
1463      filterValue,
1464      hasItems,
1465      rootClientId
1466    }) => {
1467      if (debouncedFilterValue !== filterValue) {
1468        debouncedSetFilterValue(filterValue);
1469      }
1470  
1471      if (!debouncedFilterValue) {
1472        return null;
1473      }
1474  
1475      return Object(external_wp_element_["createElement"])(downloadable_blocks_panel, {
1476        onSelect: onSelect,
1477        onHover: onHover,
1478        rootClientId: rootClientId,
1479        filterValue: debouncedFilterValue,
1480        hasLocalBlocks: hasItems,
1481        isTyping: filterValue !== debouncedFilterValue
1482      });
1483    });
1484  }
1485  
1486  /* harmony default export */ var inserter_menu_downloadable_blocks_panel = (InserterMenuDownloadableBlocksPanel);
1487  
1488  // EXTERNAL MODULE: external ["wp","editPost"]
1489  var external_wp_editPost_ = __webpack_require__("BLhE");
1490  
1491  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/compact-list/index.js
1492  
1493  
1494  /**
1495   * WordPress dependencies
1496   */
1497  
1498  /**
1499   * Internal dependencies
1500   */
1501  
1502  
1503  function CompactList({
1504    items
1505  }) {
1506    if (!items.length) {
1507      return null;
1508    }
1509  
1510    return Object(external_wp_element_["createElement"])("ul", {
1511      className: "block-directory-compact-list"
1512    }, items.map(({
1513      icon,
1514      id,
1515      title,
1516      author
1517    }) => Object(external_wp_element_["createElement"])("li", {
1518      key: id,
1519      className: "block-directory-compact-list__item"
1520    }, Object(external_wp_element_["createElement"])(downloadable_block_icon, {
1521      icon: icon,
1522      title: title
1523    }), Object(external_wp_element_["createElement"])("div", {
1524      className: "block-directory-compact-list__item-details"
1525    }, Object(external_wp_element_["createElement"])("div", {
1526      className: "block-directory-compact-list__item-title"
1527    }, title), Object(external_wp_element_["createElement"])("div", {
1528      className: "block-directory-compact-list__item-author"
1529    }, Object(external_wp_i18n_["sprintf"])(
1530    /* translators: %s: Name of the block author. */
1531    Object(external_wp_i18n_["__"])('By %s'), author))))));
1532  }
1533  
1534  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/installed-blocks-pre-publish-panel/index.js
1535  
1536  
1537  /**
1538   * WordPress dependencies
1539   */
1540  
1541  
1542  
1543  
1544  /**
1545   * Internal dependencies
1546   */
1547  
1548  
1549  
1550  function InstalledBlocksPrePublishPanel() {
1551    const newBlockTypes = Object(external_wp_data_["useSelect"])(select => select(store).getNewBlockTypes(), []);
1552  
1553    if (!newBlockTypes.length) {
1554      return null;
1555    }
1556  
1557    return Object(external_wp_element_["createElement"])(external_wp_editPost_["PluginPrePublishPanel"], {
1558      icon: block_default["a" /* default */],
1559      title: Object(external_wp_i18n_["sprintf"])( // translators: %d: number of blocks (number).
1560      Object(external_wp_i18n_["_n"])('Added: %d block', 'Added: %d blocks', newBlockTypes.length), newBlockTypes.length),
1561      initialOpen: true
1562    }, Object(external_wp_element_["createElement"])("p", {
1563      className: "installed-blocks-pre-publish-panel__copy"
1564    }, Object(external_wp_i18n_["_n"])('The following block has been added to your site.', 'The following blocks have been added to your site.', newBlockTypes.length)), Object(external_wp_element_["createElement"])(CompactList, {
1565      items: newBlockTypes
1566    }));
1567  }
1568  
1569  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/get-install-missing/install-button.js
1570  
1571  
1572  /**
1573   * WordPress dependencies
1574   */
1575  
1576  
1577  
1578  
1579  
1580  /**
1581   * Internal dependencies
1582   */
1583  
1584  
1585  function InstallButton({
1586    attributes,
1587    block,
1588    clientId
1589  }) {
1590    const isInstallingBlock = Object(external_wp_data_["useSelect"])(select => select(store).isInstalling(block.id));
1591    const {
1592      installBlockType
1593    } = Object(external_wp_data_["useDispatch"])(store);
1594    const {
1595      replaceBlock
1596    } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
1597    return Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
1598      onClick: () => installBlockType(block).then(success => {
1599        if (success) {
1600          const blockType = Object(external_wp_blocks_["getBlockType"])(block.name);
1601          const [originalBlock] = Object(external_wp_blocks_["parse"])(attributes.originalContent);
1602  
1603          if (originalBlock) {
1604            replaceBlock(clientId, Object(external_wp_blocks_["createBlock"])(blockType.name, originalBlock.attributes, originalBlock.innerBlocks));
1605          }
1606        }
1607      }),
1608      disabled: isInstallingBlock,
1609      isBusy: isInstallingBlock,
1610      isPrimary: true
1611    }, Object(external_wp_i18n_["sprintf"])(
1612    /* translators: %s: block name */
1613    Object(external_wp_i18n_["__"])('Install %s'), block.title));
1614  }
1615  
1616  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/get-install-missing/index.js
1617  
1618  
1619  
1620  /**
1621   * WordPress dependencies
1622   */
1623  
1624  
1625  
1626  
1627  
1628  
1629  
1630  /**
1631   * Internal dependencies
1632   */
1633  
1634  
1635  
1636  
1637  const getInstallMissing = OriginalComponent => props => {
1638    const {
1639      originalName
1640    } = props.attributes; // Disable reason: This is a valid component, but it's mistaken for a callback.
1641    // eslint-disable-next-line react-hooks/rules-of-hooks
1642  
1643    const {
1644      block,
1645      hasPermission
1646    } = Object(external_wp_data_["useSelect"])(select => {
1647      const {
1648        getDownloadableBlocks
1649      } = select(store);
1650      const blocks = getDownloadableBlocks('block:' + originalName).filter(({
1651        name
1652      }) => originalName === name);
1653      return {
1654        hasPermission: select(external_wp_coreData_["store"]).canUser('read', 'block-directory/search'),
1655        block: blocks.length && blocks[0]
1656      };
1657    }, [originalName]); // The user can't install blocks, or the block isn't available for download.
1658  
1659    if (!hasPermission || !block) {
1660      return Object(external_wp_element_["createElement"])(OriginalComponent, props);
1661    }
1662  
1663    return Object(external_wp_element_["createElement"])(ModifiedWarning, Object(esm_extends["a" /* default */])({}, props, {
1664      originalBlock: block
1665    }));
1666  };
1667  
1668  const ModifiedWarning = ({
1669    originalBlock,
1670    ...props
1671  }) => {
1672    const {
1673      originalName,
1674      originalUndelimitedContent
1675    } = props.attributes;
1676    const {
1677      replaceBlock
1678    } = Object(external_wp_data_["useDispatch"])(external_wp_blockEditor_["store"]);
1679  
1680    const convertToHTML = () => {
1681      replaceBlock(props.clientId, Object(external_wp_blocks_["createBlock"])('core/html', {
1682        content: originalUndelimitedContent
1683      }));
1684    };
1685  
1686    const hasContent = !!originalUndelimitedContent;
1687    const hasHTMLBlock = Object(external_wp_blocks_["getBlockType"])('core/html');
1688    let messageHTML = Object(external_wp_i18n_["sprintf"])(
1689    /* translators: %s: block name */
1690    Object(external_wp_i18n_["__"])('Your site doesn’t include support for the %s block. You can try installing the block or remove it entirely.'), originalBlock.title || originalName);
1691    const actions = [Object(external_wp_element_["createElement"])(InstallButton, {
1692      key: "install",
1693      block: originalBlock,
1694      attributes: props.attributes,
1695      clientId: props.clientId
1696    })];
1697  
1698    if (hasContent && hasHTMLBlock) {
1699      messageHTML = Object(external_wp_i18n_["sprintf"])(
1700      /* translators: %s: block name */
1701      Object(external_wp_i18n_["__"])('Your site doesn’t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely.'), originalBlock.title || originalName);
1702      actions.push(Object(external_wp_element_["createElement"])(external_wp_components_["Button"], {
1703        key: "convert",
1704        onClick: convertToHTML,
1705        isLink: true
1706      }, Object(external_wp_i18n_["__"])('Keep as HTML')));
1707    }
1708  
1709    return Object(external_wp_element_["createElement"])("div", Object(external_wp_blockEditor_["useBlockProps"])(), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["Warning"], {
1710      actions: actions
1711    }, messageHTML), Object(external_wp_element_["createElement"])(external_wp_element_["RawHTML"], null, originalUndelimitedContent));
1712  };
1713  
1714  /* harmony default export */ var get_install_missing = (getInstallMissing);
1715  
1716  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/index.js
1717  
1718  
1719  /**
1720   * WordPress dependencies
1721   */
1722  
1723  
1724  /**
1725   * Internal dependencies
1726   */
1727  
1728  
1729  
1730  
1731  
1732  Object(external_wp_plugins_["registerPlugin"])('block-directory', {
1733    render() {
1734      return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(AutoBlockUninstaller, null), Object(external_wp_element_["createElement"])(inserter_menu_downloadable_blocks_panel, null), Object(external_wp_element_["createElement"])(InstalledBlocksPrePublishPanel, null));
1735    }
1736  
1737  });
1738  Object(external_wp_hooks_["addFilter"])('blocks.registerBlockType', 'block-directory/fallback', (settings, name) => {
1739    if (name !== 'core/missing') {
1740      return settings;
1741    }
1742  
1743    settings.edit = get_install_missing(settings.edit);
1744    return settings;
1745  });
1746  
1747  // CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/index.js
1748  /**
1749   * Internal dependencies
1750   */
1751  
1752  
1753  
1754  
1755  /***/ }),
1756  
1757  /***/ "BLhE":
1758  /***/ (function(module, exports) {
1759  
1760  (function() { module.exports = window["wp"]["editPost"]; }());
1761  
1762  /***/ }),
1763  
1764  /***/ "GRId":
1765  /***/ (function(module, exports) {
1766  
1767  (function() { module.exports = window["wp"]["element"]; }());
1768  
1769  /***/ }),
1770  
1771  /***/ "HSyU":
1772  /***/ (function(module, exports) {
1773  
1774  (function() { module.exports = window["wp"]["blocks"]; }());
1775  
1776  /***/ }),
1777  
1778  /***/ "K9lf":
1779  /***/ (function(module, exports) {
1780  
1781  (function() { module.exports = window["wp"]["compose"]; }());
1782  
1783  /***/ }),
1784  
1785  /***/ "Tqx9":
1786  /***/ (function(module, exports) {
1787  
1788  (function() { module.exports = window["wp"]["primitives"]; }());
1789  
1790  /***/ }),
1791  
1792  /***/ "TvNi":
1793  /***/ (function(module, exports) {
1794  
1795  (function() { module.exports = window["wp"]["plugins"]; }());
1796  
1797  /***/ }),
1798  
1799  /***/ "URob":
1800  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1801  
1802  "use strict";
1803  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1804  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1805  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1806  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1807  
1808  
1809  /**
1810   * WordPress dependencies
1811   */
1812  
1813  const starFilled = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1814    xmlns: "http://www.w3.org/2000/svg",
1815    viewBox: "0 0 24 24"
1816  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1817    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"
1818  }));
1819  /* harmony default export */ __webpack_exports__["a"] = (starFilled);
1820  
1821  
1822  /***/ }),
1823  
1824  /***/ "Xxwi":
1825  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1826  
1827  "use strict";
1828  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1829  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1830  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1831  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1832  
1833  
1834  /**
1835   * WordPress dependencies
1836   */
1837  
1838  const starEmpty = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1839    xmlns: "http://www.w3.org/2000/svg",
1840    viewBox: "0 0 24 24"
1841  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1842    fillRule: "evenodd",
1843    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",
1844    clipRule: "evenodd"
1845  }));
1846  /* harmony default export */ __webpack_exports__["a"] = (starEmpty);
1847  
1848  
1849  /***/ }),
1850  
1851  /***/ "YLtl":
1852  /***/ (function(module, exports) {
1853  
1854  (function() { module.exports = window["lodash"]; }());
1855  
1856  /***/ }),
1857  
1858  /***/ "axFQ":
1859  /***/ (function(module, exports) {
1860  
1861  (function() { module.exports = window["wp"]["blockEditor"]; }());
1862  
1863  /***/ }),
1864  
1865  /***/ "g56x":
1866  /***/ (function(module, exports) {
1867  
1868  (function() { module.exports = window["wp"]["hooks"]; }());
1869  
1870  /***/ }),
1871  
1872  /***/ "gdqT":
1873  /***/ (function(module, exports) {
1874  
1875  (function() { module.exports = window["wp"]["a11y"]; }());
1876  
1877  /***/ }),
1878  
1879  /***/ "iClF":
1880  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1881  
1882  "use strict";
1883  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1884  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1885  /**
1886   * WordPress dependencies
1887   */
1888  
1889  /** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
1890  
1891  /**
1892   * Return an SVG icon.
1893   *
1894   * @param {IconProps} props icon is the SVG component to render
1895   *                          size is a number specifiying the icon size in pixels
1896   *                          Other props will be passed to wrapped SVG component
1897   *
1898   * @return {JSX.Element}  Icon component
1899   */
1900  
1901  function Icon({
1902    icon,
1903    size = 24,
1904    ...props
1905  }) {
1906    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["cloneElement"])(icon, {
1907      width: size,
1908      height: size,
1909      ...props
1910    });
1911  }
1912  
1913  /* harmony default export */ __webpack_exports__["a"] = (Icon);
1914  
1915  
1916  /***/ }),
1917  
1918  /***/ "jSdM":
1919  /***/ (function(module, exports) {
1920  
1921  (function() { module.exports = window["wp"]["editor"]; }());
1922  
1923  /***/ }),
1924  
1925  /***/ "jZUy":
1926  /***/ (function(module, exports) {
1927  
1928  (function() { module.exports = window["wp"]["coreData"]; }());
1929  
1930  /***/ }),
1931  
1932  /***/ "l3Sj":
1933  /***/ (function(module, exports) {
1934  
1935  (function() { module.exports = window["wp"]["i18n"]; }());
1936  
1937  /***/ }),
1938  
1939  /***/ "onLe":
1940  /***/ (function(module, exports) {
1941  
1942  (function() { module.exports = window["wp"]["notices"]; }());
1943  
1944  /***/ }),
1945  
1946  /***/ "rmEH":
1947  /***/ (function(module, exports) {
1948  
1949  (function() { module.exports = window["wp"]["htmlEntities"]; }());
1950  
1951  /***/ }),
1952  
1953  /***/ "tI+e":
1954  /***/ (function(module, exports) {
1955  
1956  (function() { module.exports = window["wp"]["components"]; }());
1957  
1958  /***/ }),
1959  
1960  /***/ "wx14":
1961  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1962  
1963  "use strict";
1964  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
1965  function _extends() {
1966    _extends = Object.assign || function (target) {
1967      for (var i = 1; i < arguments.length; i++) {
1968        var source = arguments[i];
1969  
1970        for (var key in source) {
1971          if (Object.prototype.hasOwnProperty.call(source, key)) {
1972            target[key] = source[key];
1973          }
1974        }
1975      }
1976  
1977      return target;
1978    };
1979  
1980    return _extends.apply(this, arguments);
1981  }
1982  
1983  /***/ }),
1984  
1985  /***/ "ywyh":
1986  /***/ (function(module, exports) {
1987  
1988  (function() { module.exports = window["wp"]["apiFetch"]; }());
1989  
1990  /***/ })
1991  
1992  /******/ });


Generated: Mon Aug 2 01:00:04 2021 Cross-referenced by PHPXref 0.7.1