[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/js/dist/ -> editor.js (source)

   1  this["wp"] = this["wp"] || {}; this["wp"]["editor"] =
   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 = 462);
  86  /******/ })
  87  /************************************************************************/
  88  /******/ ({
  89  
  90  /***/ 0:
  91  /***/ (function(module, exports) {
  92  
  93  (function() { module.exports = this["wp"]["element"]; }());
  94  
  95  /***/ }),
  96  
  97  /***/ 1:
  98  /***/ (function(module, exports) {
  99  
 100  (function() { module.exports = this["wp"]["i18n"]; }());
 101  
 102  /***/ }),
 103  
 104  /***/ 10:
 105  /***/ (function(module, exports) {
 106  
 107  (function() { module.exports = this["wp"]["compose"]; }());
 108  
 109  /***/ }),
 110  
 111  /***/ 100:
 112  /***/ (function(module, exports, __webpack_require__) {
 113  
 114  "use strict";
 115  
 116  exports.__esModule = true;
 117  var TextareaAutosize_1 = __webpack_require__(180);
 118  exports["default"] = TextareaAutosize_1["default"];
 119  
 120  
 121  /***/ }),
 122  
 123  /***/ 101:
 124  /***/ (function(module, exports) {
 125  
 126  (function() { module.exports = this["wp"]["viewport"]; }());
 127  
 128  /***/ }),
 129  
 130  /***/ 106:
 131  /***/ (function(module, exports) {
 132  
 133  (function() { module.exports = this["wp"]["autop"]; }());
 134  
 135  /***/ }),
 136  
 137  /***/ 11:
 138  /***/ (function(module, exports) {
 139  
 140  (function() { module.exports = this["wp"]["blocks"]; }());
 141  
 142  /***/ }),
 143  
 144  /***/ 12:
 145  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 146  
 147  "use strict";
 148  
 149  // EXPORTS
 150  __webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _slicedToArray; });
 151  
 152  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
 153  var arrayWithHoles = __webpack_require__(38);
 154  
 155  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
 156  function _iterableToArrayLimit(arr, i) {
 157    if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
 158    var _arr = [];
 159    var _n = true;
 160    var _d = false;
 161    var _e = undefined;
 162  
 163    try {
 164      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
 165        _arr.push(_s.value);
 166  
 167        if (i && _arr.length === i) break;
 168      }
 169    } catch (err) {
 170      _d = true;
 171      _e = err;
 172    } finally {
 173      try {
 174        if (!_n && _i["return"] != null) _i["return"]();
 175      } finally {
 176        if (_d) throw _e;
 177      }
 178    }
 179  
 180    return _arr;
 181  }
 182  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
 183  var unsupportedIterableToArray = __webpack_require__(31);
 184  
 185  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
 186  var nonIterableRest = __webpack_require__(39);
 187  
 188  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
 189  
 190  
 191  
 192  
 193  function _slicedToArray(arr, i) {
 194    return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray["a" /* default */])(arr, i) || Object(nonIterableRest["a" /* default */])();
 195  }
 196  
 197  /***/ }),
 198  
 199  /***/ 121:
 200  /***/ (function(module, exports) {
 201  
 202  (function() { module.exports = this["wp"]["reusableBlocks"]; }());
 203  
 204  /***/ }),
 205  
 206  /***/ 128:
 207  /***/ (function(module, exports) {
 208  
 209  (function() { module.exports = this["wp"]["wordcount"]; }());
 210  
 211  /***/ }),
 212  
 213  /***/ 13:
 214  /***/ (function(module, exports) {
 215  
 216  (function() { module.exports = this["React"]; }());
 217  
 218  /***/ }),
 219  
 220  /***/ 14:
 221  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 222  
 223  "use strict";
 224  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; });
 225  /* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43);
 226  
 227  function _objectWithoutProperties(source, excluded) {
 228    if (source == null) return {};
 229    var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(source, excluded);
 230    var key, i;
 231  
 232    if (Object.getOwnPropertySymbols) {
 233      var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
 234  
 235      for (i = 0; i < sourceSymbolKeys.length; i++) {
 236        key = sourceSymbolKeys[i];
 237        if (excluded.indexOf(key) >= 0) continue;
 238        if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
 239        target[key] = source[key];
 240      }
 241    }
 242  
 243    return target;
 244  }
 245  
 246  /***/ }),
 247  
 248  /***/ 141:
 249  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 250  
 251  "use strict";
 252  /* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
 253  /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
 254  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
 255  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);
 256  
 257  
 258  
 259  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
 260  
 261  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
 262  
 263  /**
 264   * WordPress dependencies
 265   */
 266  
 267  /** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
 268  
 269  /**
 270   * Return an SVG icon.
 271   *
 272   * @param {IconProps} props icon is the SVG component to render
 273   *                          size is a number specifiying the icon size in pixels
 274   *                          Other props will be passed to wrapped SVG component
 275   *
 276   * @return {JSX.Element}  Icon component
 277   */
 278  
 279  function Icon(_ref) {
 280    var icon = _ref.icon,
 281        _ref$size = _ref.size,
 282        size = _ref$size === void 0 ? 24 : _ref$size,
 283        props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_ref, ["icon", "size"]);
 284  
 285    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["cloneElement"])(icon, _objectSpread({
 286      width: size,
 287      height: size
 288    }, props));
 289  }
 290  
 291  /* harmony default export */ __webpack_exports__["a"] = (Icon);
 292  
 293  
 294  /***/ }),
 295  
 296  /***/ 142:
 297  /***/ (function(module, exports, __webpack_require__) {
 298  
 299  "use strict";
 300  /**
 301   * Copyright (c) 2013-present, Facebook, Inc.
 302   *
 303   * This source code is licensed under the MIT license found in the
 304   * LICENSE file in the root directory of this source tree.
 305   */
 306  
 307  
 308  
 309  var ReactPropTypesSecret = __webpack_require__(143);
 310  
 311  function emptyFunction() {}
 312  function emptyFunctionWithReset() {}
 313  emptyFunctionWithReset.resetWarningCache = emptyFunction;
 314  
 315  module.exports = function() {
 316    function shim(props, propName, componentName, location, propFullName, secret) {
 317      if (secret === ReactPropTypesSecret) {
 318        // It is still safe when called from React.
 319        return;
 320      }
 321      var err = new Error(
 322        'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
 323        'Use PropTypes.checkPropTypes() to call them. ' +
 324        'Read more at http://fb.me/use-check-prop-types'
 325      );
 326      err.name = 'Invariant Violation';
 327      throw err;
 328    };
 329    shim.isRequired = shim;
 330    function getShim() {
 331      return shim;
 332    };
 333    // Important!
 334    // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
 335    var ReactPropTypes = {
 336      array: shim,
 337      bool: shim,
 338      func: shim,
 339      number: shim,
 340      object: shim,
 341      string: shim,
 342      symbol: shim,
 343  
 344      any: shim,
 345      arrayOf: getShim,
 346      element: shim,
 347      elementType: shim,
 348      instanceOf: getShim,
 349      node: shim,
 350      objectOf: getShim,
 351      oneOf: getShim,
 352      oneOfType: getShim,
 353      shape: getShim,
 354      exact: getShim,
 355  
 356      checkPropTypes: emptyFunctionWithReset,
 357      resetWarningCache: emptyFunction
 358    };
 359  
 360    ReactPropTypes.PropTypes = ReactPropTypes;
 361  
 362    return ReactPropTypes;
 363  };
 364  
 365  
 366  /***/ }),
 367  
 368  /***/ 143:
 369  /***/ (function(module, exports, __webpack_require__) {
 370  
 371  "use strict";
 372  /**
 373   * Copyright (c) 2013-present, Facebook, Inc.
 374   *
 375   * This source code is licensed under the MIT license found in the
 376   * LICENSE file in the root directory of this source tree.
 377   */
 378  
 379  
 380  
 381  var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
 382  
 383  module.exports = ReactPropTypesSecret;
 384  
 385  
 386  /***/ }),
 387  
 388  /***/ 155:
 389  /***/ (function(module, exports) {
 390  
 391  (function() { module.exports = this["wp"]["mediaUtils"]; }());
 392  
 393  /***/ }),
 394  
 395  /***/ 159:
 396  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 397  
 398  "use strict";
 399  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
 400  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
 401  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
 402  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
 403  
 404  
 405  /**
 406   * WordPress dependencies
 407   */
 408  
 409  var closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 410    xmlns: "http://www.w3.org/2000/svg",
 411    viewBox: "0 0 24 24"
 412  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 413    d: "M13 11.9l3.3-3.4-1.1-1-3.2 3.3-3.2-3.3-1.1 1 3.3 3.4-3.5 3.6 1 1L12 13l3.5 3.5 1-1z"
 414  }));
 415  /* harmony default export */ __webpack_exports__["a"] = (closeSmall);
 416  
 417  
 418  /***/ }),
 419  
 420  /***/ 16:
 421  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 422  
 423  "use strict";
 424  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; });
 425  function _assertThisInitialized(self) {
 426    if (self === void 0) {
 427      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
 428    }
 429  
 430    return self;
 431  }
 432  
 433  /***/ }),
 434  
 435  /***/ 160:
 436  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 437  
 438  "use strict";
 439  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
 440  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
 441  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
 442  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
 443  
 444  
 445  /**
 446   * WordPress dependencies
 447   */
 448  
 449  var close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 450    xmlns: "http://www.w3.org/2000/svg",
 451    viewBox: "0 0 24 24"
 452  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 453    d: "M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"
 454  }));
 455  /* harmony default export */ __webpack_exports__["a"] = (close);
 456  
 457  
 458  /***/ }),
 459  
 460  /***/ 161:
 461  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 462  
 463  "use strict";
 464  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
 465  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
 466  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
 467  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
 468  
 469  
 470  /**
 471   * WordPress dependencies
 472   */
 473  
 474  var check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 475    xmlns: "http://www.w3.org/2000/svg",
 476    viewBox: "0 0 24 24"
 477  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 478    d: "M18.3 5.6L9.9 16.9l-4.6-3.4-.9 1.2 5.8 4.3 9.3-12.6z"
 479  }));
 480  /* harmony default export */ __webpack_exports__["a"] = (check);
 481  
 482  
 483  /***/ }),
 484  
 485  /***/ 17:
 486  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 487  
 488  "use strict";
 489  
 490  // EXPORTS
 491  __webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _toConsumableArray; });
 492  
 493  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
 494  var arrayLikeToArray = __webpack_require__(27);
 495  
 496  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
 497  
 498  function _arrayWithoutHoles(arr) {
 499    if (Array.isArray(arr)) return Object(arrayLikeToArray["a" /* default */])(arr);
 500  }
 501  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
 502  var iterableToArray = __webpack_require__(37);
 503  
 504  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
 505  var unsupportedIterableToArray = __webpack_require__(31);
 506  
 507  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
 508  function _nonIterableSpread() {
 509    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
 510  }
 511  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
 512  
 513  
 514  
 515  
 516  function _toConsumableArray(arr) {
 517    return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || Object(unsupportedIterableToArray["a" /* default */])(arr) || _nonIterableSpread();
 518  }
 519  
 520  /***/ }),
 521  
 522  /***/ 18:
 523  /***/ (function(module, exports) {
 524  
 525  (function() { module.exports = this["wp"]["keycodes"]; }());
 526  
 527  /***/ }),
 528  
 529  /***/ 180:
 530  /***/ (function(module, exports, __webpack_require__) {
 531  
 532  "use strict";
 533  
 534  var __extends = (this && this.__extends) || (function () {
 535      var extendStatics = Object.setPrototypeOf ||
 536          ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
 537          function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 538      return function (d, b) {
 539          extendStatics(d, b);
 540          function __() { this.constructor = d; }
 541          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 542      };
 543  })();
 544  var __assign = (this && this.__assign) || Object.assign || function(t) {
 545      for (var s, i = 1, n = arguments.length; i < n; i++) {
 546          s = arguments[i];
 547          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
 548              t[p] = s[p];
 549      }
 550      return t;
 551  };
 552  var __rest = (this && this.__rest) || function (s, e) {
 553      var t = {};
 554      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
 555          t[p] = s[p];
 556      if (s != null && typeof Object.getOwnPropertySymbols === "function")
 557          for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
 558              t[p[i]] = s[p[i]];
 559      return t;
 560  };
 561  exports.__esModule = true;
 562  var React = __webpack_require__(13);
 563  var PropTypes = __webpack_require__(28);
 564  var autosize = __webpack_require__(181);
 565  var _getLineHeight = __webpack_require__(182);
 566  var getLineHeight = _getLineHeight;
 567  var UPDATE = 'autosize:update';
 568  var DESTROY = 'autosize:destroy';
 569  var RESIZED = 'autosize:resized';
 570  /**
 571   * A light replacement for built-in textarea component
 572   * which automaticaly adjusts its height to match the content
 573   */
 574  var TextareaAutosize = /** @class */ (function (_super) {
 575      __extends(TextareaAutosize, _super);
 576      function TextareaAutosize() {
 577          var _this = _super !== null && _super.apply(this, arguments) || this;
 578          _this.state = {
 579              lineHeight: null
 580          };
 581          _this.dispatchEvent = function (EVENT_TYPE) {
 582              var event = document.createEvent('Event');
 583              event.initEvent(EVENT_TYPE, true, false);
 584              _this.textarea.dispatchEvent(event);
 585          };
 586          _this.updateLineHeight = function () {
 587              _this.setState({
 588                  lineHeight: getLineHeight(_this.textarea)
 589              });
 590          };
 591          _this.onChange = function (e) {
 592              var onChange = _this.props.onChange;
 593              _this.currentValue = e.currentTarget.value;
 594              onChange && onChange(e);
 595          };
 596          _this.saveDOMNodeRef = function (ref) {
 597              var innerRef = _this.props.innerRef;
 598              if (innerRef) {
 599                  innerRef(ref);
 600              }
 601              _this.textarea = ref;
 602          };
 603          _this.getLocals = function () {
 604              var _a = _this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, props = __rest(_b, ["onResize", "maxRows", "onChange", "style", "innerRef"]), lineHeight = _a.state.lineHeight, saveDOMNodeRef = _a.saveDOMNodeRef;
 605              var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;
 606              return __assign({}, props, { saveDOMNodeRef: saveDOMNodeRef, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, onChange: _this.onChange });
 607          };
 608          return _this;
 609      }
 610      TextareaAutosize.prototype.componentDidMount = function () {
 611          var _this = this;
 612          var _a = this.props, onResize = _a.onResize, maxRows = _a.maxRows;
 613          if (typeof maxRows === 'number') {
 614              this.updateLineHeight();
 615          }
 616          /*
 617            the defer is needed to:
 618              - force "autosize" to activate the scrollbar when this.props.maxRows is passed
 619              - support StyledComponents (see #71)
 620          */
 621          setTimeout(function () { return autosize(_this.textarea); });
 622          if (onResize) {
 623              this.textarea.addEventListener(RESIZED, onResize);
 624          }
 625      };
 626      TextareaAutosize.prototype.componentWillUnmount = function () {
 627          var onResize = this.props.onResize;
 628          if (onResize) {
 629              this.textarea.removeEventListener(RESIZED, onResize);
 630          }
 631          this.dispatchEvent(DESTROY);
 632      };
 633      TextareaAutosize.prototype.render = function () {
 634          var _a = this.getLocals(), children = _a.children, saveDOMNodeRef = _a.saveDOMNodeRef, locals = __rest(_a, ["children", "saveDOMNodeRef"]);
 635          return (React.createElement("textarea", __assign({}, locals, { ref: saveDOMNodeRef }), children));
 636      };
 637      TextareaAutosize.prototype.componentDidUpdate = function (prevProps) {
 638          if (this.props.value !== this.currentValue || this.props.rows !== prevProps.rows) {
 639              this.dispatchEvent(UPDATE);
 640          }
 641      };
 642      TextareaAutosize.defaultProps = {
 643          rows: 1
 644      };
 645      TextareaAutosize.propTypes = {
 646          rows: PropTypes.number,
 647          maxRows: PropTypes.number,
 648          onResize: PropTypes.func,
 649          innerRef: PropTypes.func
 650      };
 651      return TextareaAutosize;
 652  }(React.Component));
 653  exports["default"] = TextareaAutosize;
 654  
 655  
 656  /***/ }),
 657  
 658  /***/ 181:
 659  /***/ (function(module, exports, __webpack_require__) {
 660  
 661  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 662      autosize 4.0.2
 663      license: MIT
 664      http://www.jacklmoore.com/autosize
 665  */
 666  (function (global, factory) {
 667      if (true) {
 668          !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
 669                  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
 670                  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
 671                  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
 672      } else { var mod; }
 673  })(this, function (module, exports) {
 674      'use strict';
 675  
 676      var map = typeof Map === "function" ? new Map() : function () {
 677          var keys = [];
 678          var values = [];
 679  
 680          return {
 681              has: function has(key) {
 682                  return keys.indexOf(key) > -1;
 683              },
 684              get: function get(key) {
 685                  return values[keys.indexOf(key)];
 686              },
 687              set: function set(key, value) {
 688                  if (keys.indexOf(key) === -1) {
 689                      keys.push(key);
 690                      values.push(value);
 691                  }
 692              },
 693              delete: function _delete(key) {
 694                  var index = keys.indexOf(key);
 695                  if (index > -1) {
 696                      keys.splice(index, 1);
 697                      values.splice(index, 1);
 698                  }
 699              }
 700          };
 701      }();
 702  
 703      var createEvent = function createEvent(name) {
 704          return new Event(name, { bubbles: true });
 705      };
 706      try {
 707          new Event('test');
 708      } catch (e) {
 709          // IE does not support `new Event()`
 710          createEvent = function createEvent(name) {
 711              var evt = document.createEvent('Event');
 712              evt.initEvent(name, true, false);
 713              return evt;
 714          };
 715      }
 716  
 717  	function assign(ta) {
 718          if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;
 719  
 720          var heightOffset = null;
 721          var clientWidth = null;
 722          var cachedHeight = null;
 723  
 724  		function init() {
 725              var style = window.getComputedStyle(ta, null);
 726  
 727              if (style.resize === 'vertical') {
 728                  ta.style.resize = 'none';
 729              } else if (style.resize === 'both') {
 730                  ta.style.resize = 'horizontal';
 731              }
 732  
 733              if (style.boxSizing === 'content-box') {
 734                  heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));
 735              } else {
 736                  heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
 737              }
 738              // Fix when a textarea is not on document body and heightOffset is Not a Number
 739              if (isNaN(heightOffset)) {
 740                  heightOffset = 0;
 741              }
 742  
 743              update();
 744          }
 745  
 746  		function changeOverflow(value) {
 747              {
 748                  // Chrome/Safari-specific fix:
 749                  // When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
 750                  // made available by removing the scrollbar. The following forces the necessary text reflow.
 751                  var width = ta.style.width;
 752                  ta.style.width = '0px';
 753                  // Force reflow:
 754                  /* jshint ignore:start */
 755                  ta.offsetWidth;
 756                  /* jshint ignore:end */
 757                  ta.style.width = width;
 758              }
 759  
 760              ta.style.overflowY = value;
 761          }
 762  
 763  		function getParentOverflows(el) {
 764              var arr = [];
 765  
 766              while (el && el.parentNode && el.parentNode instanceof Element) {
 767                  if (el.parentNode.scrollTop) {
 768                      arr.push({
 769                          node: el.parentNode,
 770                          scrollTop: el.parentNode.scrollTop
 771                      });
 772                  }
 773                  el = el.parentNode;
 774              }
 775  
 776              return arr;
 777          }
 778  
 779  		function resize() {
 780              if (ta.scrollHeight === 0) {
 781                  // If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
 782                  return;
 783              }
 784  
 785              var overflows = getParentOverflows(ta);
 786              var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)
 787  
 788              ta.style.height = '';
 789              ta.style.height = ta.scrollHeight + heightOffset + 'px';
 790  
 791              // used to check if an update is actually necessary on window.resize
 792              clientWidth = ta.clientWidth;
 793  
 794              // prevents scroll-position jumping
 795              overflows.forEach(function (el) {
 796                  el.node.scrollTop = el.scrollTop;
 797              });
 798  
 799              if (docTop) {
 800                  document.documentElement.scrollTop = docTop;
 801              }
 802          }
 803  
 804  		function update() {
 805              resize();
 806  
 807              var styleHeight = Math.round(parseFloat(ta.style.height));
 808              var computed = window.getComputedStyle(ta, null);
 809  
 810              // Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box
 811              var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;
 812  
 813              // The actual height not matching the style height (set via the resize method) indicates that 
 814              // the max-height has been exceeded, in which case the overflow should be allowed.
 815              if (actualHeight < styleHeight) {
 816                  if (computed.overflowY === 'hidden') {
 817                      changeOverflow('scroll');
 818                      resize();
 819                      actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
 820                  }
 821              } else {
 822                  // Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.
 823                  if (computed.overflowY !== 'hidden') {
 824                      changeOverflow('hidden');
 825                      resize();
 826                      actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
 827                  }
 828              }
 829  
 830              if (cachedHeight !== actualHeight) {
 831                  cachedHeight = actualHeight;
 832                  var evt = createEvent('autosize:resized');
 833                  try {
 834                      ta.dispatchEvent(evt);
 835                  } catch (err) {
 836                      // Firefox will throw an error on dispatchEvent for a detached element
 837                      // https://bugzilla.mozilla.org/show_bug.cgi?id=889376
 838                  }
 839              }
 840          }
 841  
 842          var pageResize = function pageResize() {
 843              if (ta.clientWidth !== clientWidth) {
 844                  update();
 845              }
 846          };
 847  
 848          var destroy = function (style) {
 849              window.removeEventListener('resize', pageResize, false);
 850              ta.removeEventListener('input', update, false);
 851              ta.removeEventListener('keyup', update, false);
 852              ta.removeEventListener('autosize:destroy', destroy, false);
 853              ta.removeEventListener('autosize:update', update, false);
 854  
 855              Object.keys(style).forEach(function (key) {
 856                  ta.style[key] = style[key];
 857              });
 858  
 859              map.delete(ta);
 860          }.bind(ta, {
 861              height: ta.style.height,
 862              resize: ta.style.resize,
 863              overflowY: ta.style.overflowY,
 864              overflowX: ta.style.overflowX,
 865              wordWrap: ta.style.wordWrap
 866          });
 867  
 868          ta.addEventListener('autosize:destroy', destroy, false);
 869  
 870          // IE9 does not fire onpropertychange or oninput for deletions,
 871          // so binding to onkeyup to catch most of those events.
 872          // There is no way that I know of to detect something like 'cut' in IE9.
 873          if ('onpropertychange' in ta && 'oninput' in ta) {
 874              ta.addEventListener('keyup', update, false);
 875          }
 876  
 877          window.addEventListener('resize', pageResize, false);
 878          ta.addEventListener('input', update, false);
 879          ta.addEventListener('autosize:update', update, false);
 880          ta.style.overflowX = 'hidden';
 881          ta.style.wordWrap = 'break-word';
 882  
 883          map.set(ta, {
 884              destroy: destroy,
 885              update: update
 886          });
 887  
 888          init();
 889      }
 890  
 891  	function destroy(ta) {
 892          var methods = map.get(ta);
 893          if (methods) {
 894              methods.destroy();
 895          }
 896      }
 897  
 898  	function update(ta) {
 899          var methods = map.get(ta);
 900          if (methods) {
 901              methods.update();
 902          }
 903      }
 904  
 905      var autosize = null;
 906  
 907      // Do nothing in Node.js environment and IE8 (or lower)
 908      if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {
 909          autosize = function autosize(el) {
 910              return el;
 911          };
 912          autosize.destroy = function (el) {
 913              return el;
 914          };
 915          autosize.update = function (el) {
 916              return el;
 917          };
 918      } else {
 919          autosize = function autosize(el, options) {
 920              if (el) {
 921                  Array.prototype.forEach.call(el.length ? el : [el], function (x) {
 922                      return assign(x, options);
 923                  });
 924              }
 925              return el;
 926          };
 927          autosize.destroy = function (el) {
 928              if (el) {
 929                  Array.prototype.forEach.call(el.length ? el : [el], destroy);
 930              }
 931              return el;
 932          };
 933          autosize.update = function (el) {
 934              if (el) {
 935                  Array.prototype.forEach.call(el.length ? el : [el], update);
 936              }
 937              return el;
 938          };
 939      }
 940  
 941      exports.default = autosize;
 942      module.exports = exports['default'];
 943  });
 944  
 945  /***/ }),
 946  
 947  /***/ 182:
 948  /***/ (function(module, exports, __webpack_require__) {
 949  
 950  // Load in dependencies
 951  var computedStyle = __webpack_require__(183);
 952  
 953  /**
 954   * Calculate the `line-height` of a given node
 955   * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.
 956   * @returns {Number} `line-height` of the element in pixels
 957   */
 958  function lineHeight(node) {
 959    // Grab the line-height via style
 960    var lnHeightStr = computedStyle(node, 'line-height');
 961    var lnHeight = parseFloat(lnHeightStr, 10);
 962  
 963    // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')
 964    if (lnHeightStr === lnHeight + '') {
 965      // Save the old lineHeight style and update the em unit to the element
 966      var _lnHeightStyle = node.style.lineHeight;
 967      node.style.lineHeight = lnHeightStr + 'em';
 968  
 969      // Calculate the em based height
 970      lnHeightStr = computedStyle(node, 'line-height');
 971      lnHeight = parseFloat(lnHeightStr, 10);
 972  
 973      // Revert the lineHeight style
 974      if (_lnHeightStyle) {
 975        node.style.lineHeight = _lnHeightStyle;
 976      } else {
 977        delete node.style.lineHeight;
 978      }
 979    }
 980  
 981    // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)
 982    // DEV: `em` units are converted to `pt` in IE6
 983    // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length
 984    if (lnHeightStr.indexOf('pt') !== -1) {
 985      lnHeight *= 4;
 986      lnHeight /= 3;
 987    // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)
 988    } else if (lnHeightStr.indexOf('mm') !== -1) {
 989      lnHeight *= 96;
 990      lnHeight /= 25.4;
 991    // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)
 992    } else if (lnHeightStr.indexOf('cm') !== -1) {
 993      lnHeight *= 96;
 994      lnHeight /= 2.54;
 995    // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)
 996    } else if (lnHeightStr.indexOf('in') !== -1) {
 997      lnHeight *= 96;
 998    // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)
 999    } else if (lnHeightStr.indexOf('pc') !== -1) {
1000      lnHeight *= 16;
1001    }
1002  
1003    // Continue our computation
1004    lnHeight = Math.round(lnHeight);
1005  
1006    // If the line-height is "normal", calculate by font-size
1007    if (lnHeightStr === 'normal') {
1008      // Create a temporary node
1009      var nodeName = node.nodeName;
1010      var _node = document.createElement(nodeName);
1011      _node.innerHTML = '&nbsp;';
1012  
1013      // If we have a text area, reset it to only 1 row
1014      // https://github.com/twolfson/line-height/issues/4
1015      if (nodeName.toUpperCase() === 'TEXTAREA') {
1016        _node.setAttribute('rows', '1');
1017      }
1018  
1019      // Set the font-size of the element
1020      var fontSizeStr = computedStyle(node, 'font-size');
1021      _node.style.fontSize = fontSizeStr;
1022  
1023      // Remove default padding/border which can affect offset height
1024      // https://github.com/twolfson/line-height/issues/4
1025      // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight
1026      _node.style.padding = '0px';
1027      _node.style.border = '0px';
1028  
1029      // Append it to the body
1030      var body = document.body;
1031      body.appendChild(_node);
1032  
1033      // Assume the line height of the element is the height
1034      var height = _node.offsetHeight;
1035      lnHeight = height;
1036  
1037      // Remove our child from the DOM
1038      body.removeChild(_node);
1039    }
1040  
1041    // Return the calculated height
1042    return lnHeight;
1043  }
1044  
1045  // Export lineHeight
1046  module.exports = lineHeight;
1047  
1048  
1049  /***/ }),
1050  
1051  /***/ 183:
1052  /***/ (function(module, exports) {
1053  
1054  // This code has been refactored for 140 bytes
1055  // You can see the original here: https://github.com/twolfson/computedStyle/blob/04cd1da2e30fa45844f95f5cb1ac898e9b9ef050/lib/computedStyle.js
1056  var computedStyle = function (el, prop, getComputedStyle) {
1057    getComputedStyle = window.getComputedStyle;
1058  
1059    // In one fell swoop
1060    return (
1061      // If we have getComputedStyle
1062      getComputedStyle ?
1063        // Query it
1064        // TODO: From CSS-Query notes, we might need (node, null) for FF
1065        getComputedStyle(el) :
1066  
1067      // Otherwise, we are in IE and use currentStyle
1068        el.currentStyle
1069    )[
1070      // Switch to camelCase for CSSOM
1071      // DEV: Grabbed from jQuery
1072      // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194
1073      // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597
1074      prop.replace(/-(\w)/gi, function (word, letter) {
1075        return letter.toUpperCase();
1076      })
1077    ];
1078  };
1079  
1080  module.exports = computedStyle;
1081  
1082  
1083  /***/ }),
1084  
1085  /***/ 19:
1086  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1087  
1088  "use strict";
1089  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; });
1090  function _getPrototypeOf(o) {
1091    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
1092      return o.__proto__ || Object.getPrototypeOf(o);
1093    };
1094    return _getPrototypeOf(o);
1095  }
1096  
1097  /***/ }),
1098  
1099  /***/ 2:
1100  /***/ (function(module, exports) {
1101  
1102  (function() { module.exports = this["lodash"]; }());
1103  
1104  /***/ }),
1105  
1106  /***/ 20:
1107  /***/ (function(module, exports) {
1108  
1109  (function() { module.exports = this["regeneratorRuntime"]; }());
1110  
1111  /***/ }),
1112  
1113  /***/ 21:
1114  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1115  
1116  "use strict";
1117  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; });
1118  function _classCallCheck(instance, Constructor) {
1119    if (!(instance instanceof Constructor)) {
1120      throw new TypeError("Cannot call a class as a function");
1121    }
1122  }
1123  
1124  /***/ }),
1125  
1126  /***/ 22:
1127  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1128  
1129  "use strict";
1130  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; });
1131  function _defineProperties(target, props) {
1132    for (var i = 0; i < props.length; i++) {
1133      var descriptor = props[i];
1134      descriptor.enumerable = descriptor.enumerable || false;
1135      descriptor.configurable = true;
1136      if ("value" in descriptor) descriptor.writable = true;
1137      Object.defineProperty(target, descriptor.key, descriptor);
1138    }
1139  }
1140  
1141  function _createClass(Constructor, protoProps, staticProps) {
1142    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1143    if (staticProps) _defineProperties(Constructor, staticProps);
1144    return Constructor;
1145  }
1146  
1147  /***/ }),
1148  
1149  /***/ 23:
1150  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1151  
1152  "use strict";
1153  
1154  // EXPORTS
1155  __webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _inherits; });
1156  
1157  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
1158  function _setPrototypeOf(o, p) {
1159    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
1160      o.__proto__ = p;
1161      return o;
1162    };
1163  
1164    return _setPrototypeOf(o, p);
1165  }
1166  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
1167  
1168  function _inherits(subClass, superClass) {
1169    if (typeof superClass !== "function" && superClass !== null) {
1170      throw new TypeError("Super expression must either be null or a function");
1171    }
1172  
1173    subClass.prototype = Object.create(superClass && superClass.prototype, {
1174      constructor: {
1175        value: subClass,
1176        writable: true,
1177        configurable: true
1178      }
1179    });
1180    if (superClass) _setPrototypeOf(subClass, superClass);
1181  }
1182  
1183  /***/ }),
1184  
1185  /***/ 24:
1186  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1187  
1188  "use strict";
1189  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; });
1190  /* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
1191  /* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
1192  
1193  
1194  function _possibleConstructorReturn(self, call) {
1195    if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) {
1196      return call;
1197    }
1198  
1199    return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self);
1200  }
1201  
1202  /***/ }),
1203  
1204  /***/ 25:
1205  /***/ (function(module, exports) {
1206  
1207  (function() { module.exports = this["wp"]["richText"]; }());
1208  
1209  /***/ }),
1210  
1211  /***/ 27:
1212  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1213  
1214  "use strict";
1215  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayLikeToArray; });
1216  function _arrayLikeToArray(arr, len) {
1217    if (len == null || len > arr.length) len = arr.length;
1218  
1219    for (var i = 0, arr2 = new Array(len); i < len; i++) {
1220      arr2[i] = arr[i];
1221    }
1222  
1223    return arr2;
1224  }
1225  
1226  /***/ }),
1227  
1228  /***/ 28:
1229  /***/ (function(module, exports, __webpack_require__) {
1230  
1231  /**
1232   * Copyright (c) 2013-present, Facebook, Inc.
1233   *
1234   * This source code is licensed under the MIT license found in the
1235   * LICENSE file in the root directory of this source tree.
1236   */
1237  
1238  if (false) { var throwOnDirectAccess, ReactIs; } else {
1239    // By explicitly using `prop-types` you are opting into new production behavior.
1240    // http://fb.me/prop-types-in-prod
1241    module.exports = __webpack_require__(142)();
1242  }
1243  
1244  
1245  /***/ }),
1246  
1247  /***/ 293:
1248  /***/ (function(module, exports, __webpack_require__) {
1249  
1250  module.exports = __webpack_require__(444);
1251  
1252  
1253  /***/ }),
1254  
1255  /***/ 3:
1256  /***/ (function(module, exports) {
1257  
1258  (function() { module.exports = this["wp"]["components"]; }());
1259  
1260  /***/ }),
1261  
1262  /***/ 30:
1263  /***/ (function(module, exports) {
1264  
1265  (function() { module.exports = this["wp"]["url"]; }());
1266  
1267  /***/ }),
1268  
1269  /***/ 31:
1270  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1271  
1272  "use strict";
1273  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _unsupportedIterableToArray; });
1274  /* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27);
1275  
1276  function _unsupportedIterableToArray(o, minLen) {
1277    if (!o) return;
1278    if (typeof o === "string") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
1279    var n = Object.prototype.toString.call(o).slice(8, -1);
1280    if (n === "Object" && o.constructor) n = o.constructor.name;
1281    if (n === "Map" || n === "Set") return Array.from(o);
1282    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
1283  }
1284  
1285  /***/ }),
1286  
1287  /***/ 319:
1288  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1289  
1290  "use strict";
1291  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
1292  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1293  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
1294  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1295  
1296  
1297  /**
1298   * WordPress dependencies
1299   */
1300  
1301  var layout = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1302    xmlns: "http://www.w3.org/2000/svg",
1303    viewBox: "-2 -2 24 24"
1304  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1305    d: "M2 2h5v11H2V2zm6 0h5v5H8V2zm6 0h4v16h-4V2zM8 8h5v5H8V8zm-6 6h11v4H2v-4z"
1306  }));
1307  /* harmony default export */ __webpack_exports__["a"] = (layout);
1308  
1309  
1310  /***/ }),
1311  
1312  /***/ 32:
1313  /***/ (function(module, exports) {
1314  
1315  (function() { module.exports = this["wp"]["dataControls"]; }());
1316  
1317  /***/ }),
1318  
1319  /***/ 33:
1320  /***/ (function(module, exports) {
1321  
1322  (function() { module.exports = this["wp"]["hooks"]; }());
1323  
1324  /***/ }),
1325  
1326  /***/ 36:
1327  /***/ (function(module, exports) {
1328  
1329  (function() { module.exports = this["wp"]["deprecated"]; }());
1330  
1331  /***/ }),
1332  
1333  /***/ 37:
1334  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1335  
1336  "use strict";
1337  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; });
1338  function _iterableToArray(iter) {
1339    if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
1340  }
1341  
1342  /***/ }),
1343  
1344  /***/ 38:
1345  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1346  
1347  "use strict";
1348  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayWithHoles; });
1349  function _arrayWithHoles(arr) {
1350    if (Array.isArray(arr)) return arr;
1351  }
1352  
1353  /***/ }),
1354  
1355  /***/ 39:
1356  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1357  
1358  "use strict";
1359  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _nonIterableRest; });
1360  function _nonIterableRest() {
1361    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1362  }
1363  
1364  /***/ }),
1365  
1366  /***/ 4:
1367  /***/ (function(module, exports) {
1368  
1369  (function() { module.exports = this["wp"]["data"]; }());
1370  
1371  /***/ }),
1372  
1373  /***/ 40:
1374  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1375  
1376  "use strict";
1377  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; });
1378  function _typeof(obj) {
1379    "@babel/helpers - typeof";
1380  
1381    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
1382      _typeof = function _typeof(obj) {
1383        return typeof obj;
1384      };
1385    } else {
1386      _typeof = function _typeof(obj) {
1387        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
1388      };
1389    }
1390  
1391    return _typeof(obj);
1392  }
1393  
1394  /***/ }),
1395  
1396  /***/ 43:
1397  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1398  
1399  "use strict";
1400  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; });
1401  function _objectWithoutPropertiesLoose(source, excluded) {
1402    if (source == null) return {};
1403    var target = {};
1404    var sourceKeys = Object.keys(source);
1405    var key, i;
1406  
1407    for (i = 0; i < sourceKeys.length; i++) {
1408      key = sourceKeys[i];
1409      if (excluded.indexOf(key) >= 0) continue;
1410      target[key] = source[key];
1411    }
1412  
1413    return target;
1414  }
1415  
1416  /***/ }),
1417  
1418  /***/ 444:
1419  /***/ (function(module, exports, __webpack_require__) {
1420  
1421  "use strict";
1422  
1423  
1424  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
1425  
1426  function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
1427  
1428  var BEGIN = 'BEGIN';
1429  var COMMIT = 'COMMIT';
1430  var REVERT = 'REVERT';
1431  // Array({transactionID: string or null, beforeState: {object}, action: {object}}
1432  var INITIAL_OPTIMIST = [];
1433  
1434  module.exports = optimist;
1435  module.exports.BEGIN = BEGIN;
1436  module.exports.COMMIT = COMMIT;
1437  module.exports.REVERT = REVERT;
1438  function optimist(fn) {
1439    function beginReducer(state, action) {
1440      var _separateState = separateState(state);
1441  
1442      var optimist = _separateState.optimist;
1443      var innerState = _separateState.innerState;
1444  
1445      optimist = optimist.concat([{ beforeState: innerState, action: action }]);
1446      innerState = fn(innerState, action);
1447      validateState(innerState, action);
1448      return _extends({ optimist: optimist }, innerState);
1449    }
1450    function commitReducer(state, action) {
1451      var _separateState2 = separateState(state);
1452  
1453      var optimist = _separateState2.optimist;
1454      var innerState = _separateState2.innerState;
1455  
1456      var newOptimist = [],
1457          started = false,
1458          committed = false;
1459      optimist.forEach(function (entry) {
1460        if (started) {
1461          if (entry.beforeState && matchesTransaction(entry.action, action.optimist.id)) {
1462            committed = true;
1463            newOptimist.push({ action: entry.action });
1464          } else {
1465            newOptimist.push(entry);
1466          }
1467        } else if (entry.beforeState && !matchesTransaction(entry.action, action.optimist.id)) {
1468          started = true;
1469          newOptimist.push(entry);
1470        } else if (entry.beforeState && matchesTransaction(entry.action, action.optimist.id)) {
1471          committed = true;
1472        }
1473      });
1474      if (!committed) {
1475        console.error('Cannot commit transaction with id "' + action.optimist.id + '" because it does not exist');
1476      }
1477      optimist = newOptimist;
1478      return baseReducer(optimist, innerState, action);
1479    }
1480    function revertReducer(state, action) {
1481      var _separateState3 = separateState(state);
1482  
1483      var optimist = _separateState3.optimist;
1484      var innerState = _separateState3.innerState;
1485  
1486      var newOptimist = [],
1487          started = false,
1488          gotInitialState = false,
1489          currentState = innerState;
1490      optimist.forEach(function (entry) {
1491        if (entry.beforeState && matchesTransaction(entry.action, action.optimist.id)) {
1492          currentState = entry.beforeState;
1493          gotInitialState = true;
1494        }
1495        if (!matchesTransaction(entry.action, action.optimist.id)) {
1496          if (entry.beforeState) {
1497            started = true;
1498          }
1499          if (started) {
1500            if (gotInitialState && entry.beforeState) {
1501              newOptimist.push({
1502                beforeState: currentState,
1503                action: entry.action
1504              });
1505            } else {
1506              newOptimist.push(entry);
1507            }
1508          }
1509          if (gotInitialState) {
1510            currentState = fn(currentState, entry.action);
1511            validateState(innerState, action);
1512          }
1513        }
1514      });
1515      if (!gotInitialState) {
1516        console.error('Cannot revert transaction with id "' + action.optimist.id + '" because it does not exist');
1517      }
1518      optimist = newOptimist;
1519      return baseReducer(optimist, currentState, action);
1520    }
1521    function baseReducer(optimist, innerState, action) {
1522      if (optimist.length) {
1523        optimist = optimist.concat([{ action: action }]);
1524      }
1525      innerState = fn(innerState, action);
1526      validateState(innerState, action);
1527      return _extends({ optimist: optimist }, innerState);
1528    }
1529    return function (state, action) {
1530      if (action.optimist) {
1531        switch (action.optimist.type) {
1532          case BEGIN:
1533            return beginReducer(state, action);
1534          case COMMIT:
1535            return commitReducer(state, action);
1536          case REVERT:
1537            return revertReducer(state, action);
1538        }
1539      }
1540  
1541      var _separateState4 = separateState(state);
1542  
1543      var optimist = _separateState4.optimist;
1544      var innerState = _separateState4.innerState;
1545  
1546      if (state && !optimist.length) {
1547        var nextState = fn(innerState, action);
1548        if (nextState === innerState) {
1549          return state;
1550        }
1551        validateState(nextState, action);
1552        return _extends({ optimist: optimist }, nextState);
1553      }
1554      return baseReducer(optimist, innerState, action);
1555    };
1556  }
1557  
1558  function matchesTransaction(action, id) {
1559    return action.optimist && action.optimist.id === id;
1560  }
1561  
1562  function validateState(newState, action) {
1563    if (!newState || typeof newState !== 'object' || Array.isArray(newState)) {
1564      throw new TypeError('Error while handling "' + action.type + '": Optimist requires that state is always a plain object.');
1565    }
1566  }
1567  
1568  function separateState(state) {
1569    if (!state) {
1570      return { optimist: INITIAL_OPTIMIST, innerState: state };
1571    } else {
1572      var _state$optimist = state.optimist;
1573  
1574      var _optimist = _state$optimist === undefined ? INITIAL_OPTIMIST : _state$optimist;
1575  
1576      var innerState = _objectWithoutProperties(state, ['optimist']);
1577  
1578      return { optimist: _optimist, innerState: innerState };
1579    }
1580  }
1581  
1582  /***/ }),
1583  
1584  /***/ 45:
1585  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1586  
1587  "use strict";
1588  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _asyncToGenerator; });
1589  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
1590    try {
1591      var info = gen[key](arg);
1592      var value = info.value;
1593    } catch (error) {
1594      reject(error);
1595      return;
1596    }
1597  
1598    if (info.done) {
1599      resolve(value);
1600    } else {
1601      Promise.resolve(value).then(_next, _throw);
1602    }
1603  }
1604  
1605  function _asyncToGenerator(fn) {
1606    return function () {
1607      var self = this,
1608          args = arguments;
1609      return new Promise(function (resolve, reject) {
1610        var gen = fn.apply(self, args);
1611  
1612        function _next(value) {
1613          asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
1614        }
1615  
1616        function _throw(err) {
1617          asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
1618        }
1619  
1620        _next(undefined);
1621      });
1622    };
1623  }
1624  
1625  /***/ }),
1626  
1627  /***/ 462:
1628  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1629  
1630  "use strict";
1631  // ESM COMPAT FLAG
1632  __webpack_require__.r(__webpack_exports__);
1633  
1634  // EXPORTS
1635  __webpack_require__.d(__webpack_exports__, "userAutocompleter", function() { return /* reexport */ autocompleters_user; });
1636  __webpack_require__.d(__webpack_exports__, "AutosaveMonitor", function() { return /* reexport */ autosave_monitor; });
1637  __webpack_require__.d(__webpack_exports__, "DocumentOutline", function() { return /* reexport */ document_outline; });
1638  __webpack_require__.d(__webpack_exports__, "DocumentOutlineCheck", function() { return /* reexport */ check; });
1639  __webpack_require__.d(__webpack_exports__, "VisualEditorGlobalKeyboardShortcuts", function() { return /* reexport */ visual_editor_shortcuts; });
1640  __webpack_require__.d(__webpack_exports__, "EditorGlobalKeyboardShortcuts", function() { return /* reexport */ EditorGlobalKeyboardShortcuts; });
1641  __webpack_require__.d(__webpack_exports__, "TextEditorGlobalKeyboardShortcuts", function() { return /* reexport */ TextEditorGlobalKeyboardShortcuts; });
1642  __webpack_require__.d(__webpack_exports__, "EditorKeyboardShortcutsRegister", function() { return /* reexport */ register_shortcuts; });
1643  __webpack_require__.d(__webpack_exports__, "EditorHistoryRedo", function() { return /* reexport */ editor_history_redo; });
1644  __webpack_require__.d(__webpack_exports__, "EditorHistoryUndo", function() { return /* reexport */ editor_history_undo; });
1645  __webpack_require__.d(__webpack_exports__, "EditorNotices", function() { return /* reexport */ editor_notices; });
1646  __webpack_require__.d(__webpack_exports__, "EntitiesSavedStates", function() { return /* reexport */ EntitiesSavedStates; });
1647  __webpack_require__.d(__webpack_exports__, "ErrorBoundary", function() { return /* reexport */ error_boundary; });
1648  __webpack_require__.d(__webpack_exports__, "LocalAutosaveMonitor", function() { return /* reexport */ local_autosave_monitor; });
1649  __webpack_require__.d(__webpack_exports__, "PageAttributesCheck", function() { return /* reexport */ page_attributes_check; });
1650  __webpack_require__.d(__webpack_exports__, "PageAttributesOrder", function() { return /* reexport */ page_attributes_order; });
1651  __webpack_require__.d(__webpack_exports__, "PageAttributesParent", function() { return /* reexport */ page_attributes_parent; });
1652  __webpack_require__.d(__webpack_exports__, "PageTemplate", function() { return /* reexport */ page_attributes_template; });
1653  __webpack_require__.d(__webpack_exports__, "PostAuthor", function() { return /* reexport */ post_author; });
1654  __webpack_require__.d(__webpack_exports__, "PostAuthorCheck", function() { return /* reexport */ post_author_check; });
1655  __webpack_require__.d(__webpack_exports__, "PostComments", function() { return /* reexport */ post_comments; });
1656  __webpack_require__.d(__webpack_exports__, "PostExcerpt", function() { return /* reexport */ post_excerpt; });
1657  __webpack_require__.d(__webpack_exports__, "PostExcerptCheck", function() { return /* reexport */ post_excerpt_check; });
1658  __webpack_require__.d(__webpack_exports__, "PostFeaturedImage", function() { return /* reexport */ post_featured_image; });
1659  __webpack_require__.d(__webpack_exports__, "PostFeaturedImageCheck", function() { return /* reexport */ post_featured_image_check; });
1660  __webpack_require__.d(__webpack_exports__, "PostFormat", function() { return /* reexport */ PostFormat; });
1661  __webpack_require__.d(__webpack_exports__, "PostFormatCheck", function() { return /* reexport */ post_format_check; });
1662  __webpack_require__.d(__webpack_exports__, "PostLastRevision", function() { return /* reexport */ post_last_revision; });
1663  __webpack_require__.d(__webpack_exports__, "PostLastRevisionCheck", function() { return /* reexport */ post_last_revision_check; });
1664  __webpack_require__.d(__webpack_exports__, "PostLockedModal", function() { return /* reexport */ post_locked_modal; });
1665  __webpack_require__.d(__webpack_exports__, "PostPendingStatus", function() { return /* reexport */ post_pending_status; });
1666  __webpack_require__.d(__webpack_exports__, "PostPendingStatusCheck", function() { return /* reexport */ post_pending_status_check; });
1667  __webpack_require__.d(__webpack_exports__, "PostPingbacks", function() { return /* reexport */ post_pingbacks; });
1668  __webpack_require__.d(__webpack_exports__, "PostPreviewButton", function() { return /* reexport */ post_preview_button; });
1669  __webpack_require__.d(__webpack_exports__, "PostPublishButton", function() { return /* reexport */ post_publish_button; });
1670  __webpack_require__.d(__webpack_exports__, "PostPublishButtonLabel", function() { return /* reexport */ post_publish_button_label; });
1671  __webpack_require__.d(__webpack_exports__, "PostPublishPanel", function() { return /* reexport */ post_publish_panel; });
1672  __webpack_require__.d(__webpack_exports__, "PostSavedState", function() { return /* reexport */ PostSavedState; });
1673  __webpack_require__.d(__webpack_exports__, "PostSchedule", function() { return /* reexport */ post_schedule; });
1674  __webpack_require__.d(__webpack_exports__, "PostScheduleCheck", function() { return /* reexport */ post_schedule_check; });
1675  __webpack_require__.d(__webpack_exports__, "PostScheduleLabel", function() { return /* reexport */ post_schedule_label; });
1676  __webpack_require__.d(__webpack_exports__, "PostSlug", function() { return /* reexport */ post_slug; });
1677  __webpack_require__.d(__webpack_exports__, "PostSlugCheck", function() { return /* reexport */ PostSlugCheck; });
1678  __webpack_require__.d(__webpack_exports__, "PostSticky", function() { return /* reexport */ post_sticky; });
1679  __webpack_require__.d(__webpack_exports__, "PostStickyCheck", function() { return /* reexport */ post_sticky_check; });
1680  __webpack_require__.d(__webpack_exports__, "PostSwitchToDraftButton", function() { return /* reexport */ post_switch_to_draft_button; });
1681  __webpack_require__.d(__webpack_exports__, "PostTaxonomies", function() { return /* reexport */ post_taxonomies; });
1682  __webpack_require__.d(__webpack_exports__, "PostTaxonomiesCheck", function() { return /* reexport */ post_taxonomies_check; });
1683  __webpack_require__.d(__webpack_exports__, "PostTextEditor", function() { return /* reexport */ PostTextEditor; });
1684  __webpack_require__.d(__webpack_exports__, "PostTitle", function() { return /* reexport */ post_title; });
1685  __webpack_require__.d(__webpack_exports__, "PostTrash", function() { return /* reexport */ post_trash; });
1686  __webpack_require__.d(__webpack_exports__, "PostTrashCheck", function() { return /* reexport */ post_trash_check; });
1687  __webpack_require__.d(__webpack_exports__, "PostTypeSupportCheck", function() { return /* reexport */ post_type_support_check; });
1688  __webpack_require__.d(__webpack_exports__, "PostVisibility", function() { return /* reexport */ post_visibility; });
1689  __webpack_require__.d(__webpack_exports__, "PostVisibilityLabel", function() { return /* reexport */ post_visibility_label; });
1690  __webpack_require__.d(__webpack_exports__, "PostVisibilityCheck", function() { return /* reexport */ post_visibility_check; });
1691  __webpack_require__.d(__webpack_exports__, "TableOfContents", function() { return /* reexport */ table_of_contents; });
1692  __webpack_require__.d(__webpack_exports__, "UnsavedChangesWarning", function() { return /* reexport */ UnsavedChangesWarning; });
1693  __webpack_require__.d(__webpack_exports__, "WordCount", function() { return /* reexport */ WordCount; });
1694  __webpack_require__.d(__webpack_exports__, "EditorProvider", function() { return /* reexport */ provider; });
1695  __webpack_require__.d(__webpack_exports__, "ServerSideRender", function() { return /* reexport */ external_this_wp_serverSideRender_default.a; });
1696  __webpack_require__.d(__webpack_exports__, "RichText", function() { return /* reexport */ RichText; });
1697  __webpack_require__.d(__webpack_exports__, "Autocomplete", function() { return /* reexport */ Autocomplete; });
1698  __webpack_require__.d(__webpack_exports__, "AlignmentToolbar", function() { return /* reexport */ AlignmentToolbar; });
1699  __webpack_require__.d(__webpack_exports__, "BlockAlignmentToolbar", function() { return /* reexport */ BlockAlignmentToolbar; });
1700  __webpack_require__.d(__webpack_exports__, "BlockControls", function() { return /* reexport */ BlockControls; });
1701  __webpack_require__.d(__webpack_exports__, "BlockEdit", function() { return /* reexport */ deprecated_BlockEdit; });
1702  __webpack_require__.d(__webpack_exports__, "BlockEditorKeyboardShortcuts", function() { return /* reexport */ BlockEditorKeyboardShortcuts; });
1703  __webpack_require__.d(__webpack_exports__, "BlockFormatControls", function() { return /* reexport */ BlockFormatControls; });
1704  __webpack_require__.d(__webpack_exports__, "BlockIcon", function() { return /* reexport */ BlockIcon; });
1705  __webpack_require__.d(__webpack_exports__, "BlockInspector", function() { return /* reexport */ BlockInspector; });
1706  __webpack_require__.d(__webpack_exports__, "BlockList", function() { return /* reexport */ BlockList; });
1707  __webpack_require__.d(__webpack_exports__, "BlockMover", function() { return /* reexport */ BlockMover; });
1708  __webpack_require__.d(__webpack_exports__, "BlockNavigationDropdown", function() { return /* reexport */ BlockNavigationDropdown; });
1709  __webpack_require__.d(__webpack_exports__, "BlockSelectionClearer", function() { return /* reexport */ BlockSelectionClearer; });
1710  __webpack_require__.d(__webpack_exports__, "BlockSettingsMenu", function() { return /* reexport */ BlockSettingsMenu; });
1711  __webpack_require__.d(__webpack_exports__, "BlockTitle", function() { return /* reexport */ BlockTitle; });
1712  __webpack_require__.d(__webpack_exports__, "BlockToolbar", function() { return /* reexport */ BlockToolbar; });
1713  __webpack_require__.d(__webpack_exports__, "ColorPalette", function() { return /* reexport */ ColorPalette; });
1714  __webpack_require__.d(__webpack_exports__, "ContrastChecker", function() { return /* reexport */ ContrastChecker; });
1715  __webpack_require__.d(__webpack_exports__, "CopyHandler", function() { return /* reexport */ CopyHandler; });
1716  __webpack_require__.d(__webpack_exports__, "DefaultBlockAppender", function() { return /* reexport */ DefaultBlockAppender; });
1717  __webpack_require__.d(__webpack_exports__, "FontSizePicker", function() { return /* reexport */ FontSizePicker; });
1718  __webpack_require__.d(__webpack_exports__, "Inserter", function() { return /* reexport */ Inserter; });
1719  __webpack_require__.d(__webpack_exports__, "InnerBlocks", function() { return /* reexport */ InnerBlocks; });
1720  __webpack_require__.d(__webpack_exports__, "InspectorAdvancedControls", function() { return /* reexport */ InspectorAdvancedControls; });
1721  __webpack_require__.d(__webpack_exports__, "InspectorControls", function() { return /* reexport */ InspectorControls; });
1722  __webpack_require__.d(__webpack_exports__, "PanelColorSettings", function() { return /* reexport */ PanelColorSettings; });
1723  __webpack_require__.d(__webpack_exports__, "PlainText", function() { return /* reexport */ PlainText; });
1724  __webpack_require__.d(__webpack_exports__, "RichTextShortcut", function() { return /* reexport */ RichTextShortcut; });
1725  __webpack_require__.d(__webpack_exports__, "RichTextToolbarButton", function() { return /* reexport */ RichTextToolbarButton; });
1726  __webpack_require__.d(__webpack_exports__, "__unstableRichTextInputEvent", function() { return /* reexport */ __unstableRichTextInputEvent; });
1727  __webpack_require__.d(__webpack_exports__, "MediaPlaceholder", function() { return /* reexport */ MediaPlaceholder; });
1728  __webpack_require__.d(__webpack_exports__, "MediaUpload", function() { return /* reexport */ MediaUpload; });
1729  __webpack_require__.d(__webpack_exports__, "MediaUploadCheck", function() { return /* reexport */ MediaUploadCheck; });
1730  __webpack_require__.d(__webpack_exports__, "MultiSelectScrollIntoView", function() { return /* reexport */ MultiSelectScrollIntoView; });
1731  __webpack_require__.d(__webpack_exports__, "NavigableToolbar", function() { return /* reexport */ NavigableToolbar; });
1732  __webpack_require__.d(__webpack_exports__, "ObserveTyping", function() { return /* reexport */ ObserveTyping; });
1733  __webpack_require__.d(__webpack_exports__, "PreserveScrollInReorder", function() { return /* reexport */ PreserveScrollInReorder; });
1734  __webpack_require__.d(__webpack_exports__, "SkipToSelectedBlock", function() { return /* reexport */ SkipToSelectedBlock; });
1735  __webpack_require__.d(__webpack_exports__, "URLInput", function() { return /* reexport */ URLInput; });
1736  __webpack_require__.d(__webpack_exports__, "URLInputButton", function() { return /* reexport */ URLInputButton; });
1737  __webpack_require__.d(__webpack_exports__, "URLPopover", function() { return /* reexport */ URLPopover; });
1738  __webpack_require__.d(__webpack_exports__, "Warning", function() { return /* reexport */ Warning; });
1739  __webpack_require__.d(__webpack_exports__, "WritingFlow", function() { return /* reexport */ WritingFlow; });
1740  __webpack_require__.d(__webpack_exports__, "createCustomColorsHOC", function() { return /* reexport */ createCustomColorsHOC; });
1741  __webpack_require__.d(__webpack_exports__, "getColorClassName", function() { return /* reexport */ getColorClassName; });
1742  __webpack_require__.d(__webpack_exports__, "getColorObjectByAttributeValues", function() { return /* reexport */ getColorObjectByAttributeValues; });
1743  __webpack_require__.d(__webpack_exports__, "getColorObjectByColorValue", function() { return /* reexport */ getColorObjectByColorValue; });
1744  __webpack_require__.d(__webpack_exports__, "getFontSize", function() { return /* reexport */ getFontSize; });
1745  __webpack_require__.d(__webpack_exports__, "getFontSizeClass", function() { return /* reexport */ getFontSizeClass; });
1746  __webpack_require__.d(__webpack_exports__, "withColorContext", function() { return /* reexport */ withColorContext; });
1747  __webpack_require__.d(__webpack_exports__, "withColors", function() { return /* reexport */ withColors; });
1748  __webpack_require__.d(__webpack_exports__, "withFontSizes", function() { return /* reexport */ withFontSizes; });
1749  __webpack_require__.d(__webpack_exports__, "mediaUpload", function() { return /* reexport */ mediaUpload; });
1750  __webpack_require__.d(__webpack_exports__, "cleanForSlug", function() { return /* reexport */ cleanForSlug; });
1751  __webpack_require__.d(__webpack_exports__, "storeConfig", function() { return /* reexport */ storeConfig; });
1752  __webpack_require__.d(__webpack_exports__, "transformStyles", function() { return /* reexport */ external_this_wp_blockEditor_["transformStyles"]; });
1753  
1754  // NAMESPACE OBJECT: ./node_modules/@wordpress/editor/build-module/store/selectors.js
1755  var selectors_namespaceObject = {};
1756  __webpack_require__.r(selectors_namespaceObject);
1757  __webpack_require__.d(selectors_namespaceObject, "hasEditorUndo", function() { return hasEditorUndo; });
1758  __webpack_require__.d(selectors_namespaceObject, "hasEditorRedo", function() { return hasEditorRedo; });
1759  __webpack_require__.d(selectors_namespaceObject, "isEditedPostNew", function() { return selectors_isEditedPostNew; });
1760  __webpack_require__.d(selectors_namespaceObject, "hasChangedContent", function() { return hasChangedContent; });
1761  __webpack_require__.d(selectors_namespaceObject, "isEditedPostDirty", function() { return selectors_isEditedPostDirty; });
1762  __webpack_require__.d(selectors_namespaceObject, "hasNonPostEntityChanges", function() { return selectors_hasNonPostEntityChanges; });
1763  __webpack_require__.d(selectors_namespaceObject, "isCleanNewPost", function() { return selectors_isCleanNewPost; });
1764  __webpack_require__.d(selectors_namespaceObject, "getCurrentPost", function() { return selectors_getCurrentPost; });
1765  __webpack_require__.d(selectors_namespaceObject, "getCurrentPostType", function() { return selectors_getCurrentPostType; });
1766  __webpack_require__.d(selectors_namespaceObject, "getCurrentPostId", function() { return selectors_getCurrentPostId; });
1767  __webpack_require__.d(selectors_namespaceObject, "getCurrentPostRevisionsCount", function() { return getCurrentPostRevisionsCount; });
1768  __webpack_require__.d(selectors_namespaceObject, "getCurrentPostLastRevisionId", function() { return getCurrentPostLastRevisionId; });
1769  __webpack_require__.d(selectors_namespaceObject, "getPostEdits", function() { return selectors_getPostEdits; });
1770  __webpack_require__.d(selectors_namespaceObject, "getReferenceByDistinctEdits", function() { return getReferenceByDistinctEdits; });
1771  __webpack_require__.d(selectors_namespaceObject, "getCurrentPostAttribute", function() { return selectors_getCurrentPostAttribute; });
1772  __webpack_require__.d(selectors_namespaceObject, "getEditedPostAttribute", function() { return selectors_getEditedPostAttribute; });
1773  __webpack_require__.d(selectors_namespaceObject, "getAutosaveAttribute", function() { return getAutosaveAttribute; });
1774  __webpack_require__.d(selectors_namespaceObject, "getEditedPostVisibility", function() { return selectors_getEditedPostVisibility; });
1775  __webpack_require__.d(selectors_namespaceObject, "isCurrentPostPending", function() { return isCurrentPostPending; });
1776  __webpack_require__.d(selectors_namespaceObject, "isCurrentPostPublished", function() { return selectors_isCurrentPostPublished; });
1777  __webpack_require__.d(selectors_namespaceObject, "isCurrentPostScheduled", function() { return selectors_isCurrentPostScheduled; });
1778  __webpack_require__.d(selectors_namespaceObject, "isEditedPostPublishable", function() { return selectors_isEditedPostPublishable; });
1779  __webpack_require__.d(selectors_namespaceObject, "isEditedPostSaveable", function() { return selectors_isEditedPostSaveable; });
1780  __webpack_require__.d(selectors_namespaceObject, "isEditedPostEmpty", function() { return isEditedPostEmpty; });
1781  __webpack_require__.d(selectors_namespaceObject, "isEditedPostAutosaveable", function() { return selectors_isEditedPostAutosaveable; });
1782  __webpack_require__.d(selectors_namespaceObject, "getAutosave", function() { return getAutosave; });
1783  __webpack_require__.d(selectors_namespaceObject, "hasAutosave", function() { return hasAutosave; });
1784  __webpack_require__.d(selectors_namespaceObject, "isEditedPostBeingScheduled", function() { return selectors_isEditedPostBeingScheduled; });
1785  __webpack_require__.d(selectors_namespaceObject, "isEditedPostDateFloating", function() { return isEditedPostDateFloating; });
1786  __webpack_require__.d(selectors_namespaceObject, "isSavingPost", function() { return selectors_isSavingPost; });
1787  __webpack_require__.d(selectors_namespaceObject, "didPostSaveRequestSucceed", function() { return didPostSaveRequestSucceed; });
1788  __webpack_require__.d(selectors_namespaceObject, "didPostSaveRequestFail", function() { return didPostSaveRequestFail; });
1789  __webpack_require__.d(selectors_namespaceObject, "isAutosavingPost", function() { return selectors_isAutosavingPost; });
1790  __webpack_require__.d(selectors_namespaceObject, "isPreviewingPost", function() { return isPreviewingPost; });
1791  __webpack_require__.d(selectors_namespaceObject, "getEditedPostPreviewLink", function() { return selectors_getEditedPostPreviewLink; });
1792  __webpack_require__.d(selectors_namespaceObject, "getSuggestedPostFormat", function() { return selectors_getSuggestedPostFormat; });
1793  __webpack_require__.d(selectors_namespaceObject, "getBlocksForSerialization", function() { return getBlocksForSerialization; });
1794  __webpack_require__.d(selectors_namespaceObject, "getEditedPostContent", function() { return getEditedPostContent; });
1795  __webpack_require__.d(selectors_namespaceObject, "getStateBeforeOptimisticTransaction", function() { return getStateBeforeOptimisticTransaction; });
1796  __webpack_require__.d(selectors_namespaceObject, "isPublishingPost", function() { return selectors_isPublishingPost; });
1797  __webpack_require__.d(selectors_namespaceObject, "isPermalinkEditable", function() { return isPermalinkEditable; });
1798  __webpack_require__.d(selectors_namespaceObject, "getPermalink", function() { return getPermalink; });
1799  __webpack_require__.d(selectors_namespaceObject, "getEditedPostSlug", function() { return getEditedPostSlug; });
1800  __webpack_require__.d(selectors_namespaceObject, "getPermalinkParts", function() { return getPermalinkParts; });
1801  __webpack_require__.d(selectors_namespaceObject, "inSomeHistory", function() { return inSomeHistory; });
1802  __webpack_require__.d(selectors_namespaceObject, "isPostLocked", function() { return isPostLocked; });
1803  __webpack_require__.d(selectors_namespaceObject, "isPostSavingLocked", function() { return selectors_isPostSavingLocked; });
1804  __webpack_require__.d(selectors_namespaceObject, "isPostAutosavingLocked", function() { return isPostAutosavingLocked; });
1805  __webpack_require__.d(selectors_namespaceObject, "isPostLockTakeover", function() { return isPostLockTakeover; });
1806  __webpack_require__.d(selectors_namespaceObject, "getPostLockUser", function() { return getPostLockUser; });
1807  __webpack_require__.d(selectors_namespaceObject, "getActivePostLock", function() { return getActivePostLock; });
1808  __webpack_require__.d(selectors_namespaceObject, "canUserUseUnfilteredHTML", function() { return selectors_canUserUseUnfilteredHTML; });
1809  __webpack_require__.d(selectors_namespaceObject, "isPublishSidebarEnabled", function() { return selectors_isPublishSidebarEnabled; });
1810  __webpack_require__.d(selectors_namespaceObject, "getEditorBlocks", function() { return selectors_getEditorBlocks; });
1811  __webpack_require__.d(selectors_namespaceObject, "getEditorSelectionStart", function() { return selectors_getEditorSelectionStart; });
1812  __webpack_require__.d(selectors_namespaceObject, "getEditorSelectionEnd", function() { return selectors_getEditorSelectionEnd; });
1813  __webpack_require__.d(selectors_namespaceObject, "__unstableIsEditorReady", function() { return __unstableIsEditorReady; });
1814  __webpack_require__.d(selectors_namespaceObject, "getEditorSettings", function() { return selectors_getEditorSettings; });
1815  __webpack_require__.d(selectors_namespaceObject, "getBlockName", function() { return getBlockName; });
1816  __webpack_require__.d(selectors_namespaceObject, "isBlockValid", function() { return isBlockValid; });
1817  __webpack_require__.d(selectors_namespaceObject, "getBlockAttributes", function() { return getBlockAttributes; });
1818  __webpack_require__.d(selectors_namespaceObject, "getBlock", function() { return getBlock; });
1819  __webpack_require__.d(selectors_namespaceObject, "getBlocks", function() { return selectors_getBlocks; });
1820  __webpack_require__.d(selectors_namespaceObject, "__unstableGetBlockWithoutInnerBlocks", function() { return __unstableGetBlockWithoutInnerBlocks; });
1821  __webpack_require__.d(selectors_namespaceObject, "getClientIdsOfDescendants", function() { return getClientIdsOfDescendants; });
1822  __webpack_require__.d(selectors_namespaceObject, "getClientIdsWithDescendants", function() { return getClientIdsWithDescendants; });
1823  __webpack_require__.d(selectors_namespaceObject, "getGlobalBlockCount", function() { return getGlobalBlockCount; });
1824  __webpack_require__.d(selectors_namespaceObject, "getBlocksByClientId", function() { return getBlocksByClientId; });
1825  __webpack_require__.d(selectors_namespaceObject, "getBlockCount", function() { return getBlockCount; });
1826  __webpack_require__.d(selectors_namespaceObject, "getBlockSelectionStart", function() { return getBlockSelectionStart; });
1827  __webpack_require__.d(selectors_namespaceObject, "getBlockSelectionEnd", function() { return getBlockSelectionEnd; });
1828  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlockCount", function() { return getSelectedBlockCount; });
1829  __webpack_require__.d(selectors_namespaceObject, "hasSelectedBlock", function() { return hasSelectedBlock; });
1830  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlockClientId", function() { return getSelectedBlockClientId; });
1831  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlock", function() { return getSelectedBlock; });
1832  __webpack_require__.d(selectors_namespaceObject, "getBlockRootClientId", function() { return getBlockRootClientId; });
1833  __webpack_require__.d(selectors_namespaceObject, "getBlockHierarchyRootClientId", function() { return getBlockHierarchyRootClientId; });
1834  __webpack_require__.d(selectors_namespaceObject, "getAdjacentBlockClientId", function() { return getAdjacentBlockClientId; });
1835  __webpack_require__.d(selectors_namespaceObject, "getPreviousBlockClientId", function() { return getPreviousBlockClientId; });
1836  __webpack_require__.d(selectors_namespaceObject, "getNextBlockClientId", function() { return getNextBlockClientId; });
1837  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlocksInitialCaretPosition", function() { return getSelectedBlocksInitialCaretPosition; });
1838  __webpack_require__.d(selectors_namespaceObject, "getMultiSelectedBlockClientIds", function() { return getMultiSelectedBlockClientIds; });
1839  __webpack_require__.d(selectors_namespaceObject, "getMultiSelectedBlocks", function() { return getMultiSelectedBlocks; });
1840  __webpack_require__.d(selectors_namespaceObject, "getFirstMultiSelectedBlockClientId", function() { return getFirstMultiSelectedBlockClientId; });
1841  __webpack_require__.d(selectors_namespaceObject, "getLastMultiSelectedBlockClientId", function() { return getLastMultiSelectedBlockClientId; });
1842  __webpack_require__.d(selectors_namespaceObject, "isFirstMultiSelectedBlock", function() { return isFirstMultiSelectedBlock; });
1843  __webpack_require__.d(selectors_namespaceObject, "isBlockMultiSelected", function() { return isBlockMultiSelected; });
1844  __webpack_require__.d(selectors_namespaceObject, "isAncestorMultiSelected", function() { return isAncestorMultiSelected; });
1845  __webpack_require__.d(selectors_namespaceObject, "getMultiSelectedBlocksStartClientId", function() { return getMultiSelectedBlocksStartClientId; });
1846  __webpack_require__.d(selectors_namespaceObject, "getMultiSelectedBlocksEndClientId", function() { return getMultiSelectedBlocksEndClientId; });
1847  __webpack_require__.d(selectors_namespaceObject, "getBlockOrder", function() { return getBlockOrder; });
1848  __webpack_require__.d(selectors_namespaceObject, "getBlockIndex", function() { return getBlockIndex; });
1849  __webpack_require__.d(selectors_namespaceObject, "isBlockSelected", function() { return isBlockSelected; });
1850  __webpack_require__.d(selectors_namespaceObject, "hasSelectedInnerBlock", function() { return hasSelectedInnerBlock; });
1851  __webpack_require__.d(selectors_namespaceObject, "isBlockWithinSelection", function() { return isBlockWithinSelection; });
1852  __webpack_require__.d(selectors_namespaceObject, "hasMultiSelection", function() { return hasMultiSelection; });
1853  __webpack_require__.d(selectors_namespaceObject, "isMultiSelecting", function() { return isMultiSelecting; });
1854  __webpack_require__.d(selectors_namespaceObject, "isSelectionEnabled", function() { return isSelectionEnabled; });
1855  __webpack_require__.d(selectors_namespaceObject, "getBlockMode", function() { return getBlockMode; });
1856  __webpack_require__.d(selectors_namespaceObject, "isTyping", function() { return isTyping; });
1857  __webpack_require__.d(selectors_namespaceObject, "isCaretWithinFormattedText", function() { return isCaretWithinFormattedText; });
1858  __webpack_require__.d(selectors_namespaceObject, "getBlockInsertionPoint", function() { return getBlockInsertionPoint; });
1859  __webpack_require__.d(selectors_namespaceObject, "isBlockInsertionPointVisible", function() { return isBlockInsertionPointVisible; });
1860  __webpack_require__.d(selectors_namespaceObject, "isValidTemplate", function() { return isValidTemplate; });
1861  __webpack_require__.d(selectors_namespaceObject, "getTemplate", function() { return getTemplate; });
1862  __webpack_require__.d(selectors_namespaceObject, "getTemplateLock", function() { return getTemplateLock; });
1863  __webpack_require__.d(selectors_namespaceObject, "canInsertBlockType", function() { return canInsertBlockType; });
1864  __webpack_require__.d(selectors_namespaceObject, "getInserterItems", function() { return getInserterItems; });
1865  __webpack_require__.d(selectors_namespaceObject, "hasInserterItems", function() { return hasInserterItems; });
1866  __webpack_require__.d(selectors_namespaceObject, "getBlockListSettings", function() { return getBlockListSettings; });
1867  
1868  // NAMESPACE OBJECT: ./node_modules/@wordpress/editor/build-module/store/actions.js
1869  var actions_namespaceObject = {};
1870  __webpack_require__.r(actions_namespaceObject);
1871  __webpack_require__.d(actions_namespaceObject, "setupEditor", function() { return setupEditor; });
1872  __webpack_require__.d(actions_namespaceObject, "__experimentalTearDownEditor", function() { return __experimentalTearDownEditor; });
1873  __webpack_require__.d(actions_namespaceObject, "resetPost", function() { return resetPost; });
1874  __webpack_require__.d(actions_namespaceObject, "resetAutosave", function() { return resetAutosave; });
1875  __webpack_require__.d(actions_namespaceObject, "__experimentalRequestPostUpdateStart", function() { return __experimentalRequestPostUpdateStart; });
1876  __webpack_require__.d(actions_namespaceObject, "__experimentalRequestPostUpdateFinish", function() { return __experimentalRequestPostUpdateFinish; });
1877  __webpack_require__.d(actions_namespaceObject, "updatePost", function() { return updatePost; });
1878  __webpack_require__.d(actions_namespaceObject, "setupEditorState", function() { return setupEditorState; });
1879  __webpack_require__.d(actions_namespaceObject, "editPost", function() { return actions_editPost; });
1880  __webpack_require__.d(actions_namespaceObject, "__experimentalOptimisticUpdatePost", function() { return __experimentalOptimisticUpdatePost; });
1881  __webpack_require__.d(actions_namespaceObject, "savePost", function() { return actions_savePost; });
1882  __webpack_require__.d(actions_namespaceObject, "refreshPost", function() { return refreshPost; });
1883  __webpack_require__.d(actions_namespaceObject, "trashPost", function() { return trashPost; });
1884  __webpack_require__.d(actions_namespaceObject, "autosave", function() { return actions_autosave; });
1885  __webpack_require__.d(actions_namespaceObject, "redo", function() { return actions_redo; });
1886  __webpack_require__.d(actions_namespaceObject, "undo", function() { return actions_undo; });
1887  __webpack_require__.d(actions_namespaceObject, "createUndoLevel", function() { return createUndoLevel; });
1888  __webpack_require__.d(actions_namespaceObject, "updatePostLock", function() { return updatePostLock; });
1889  __webpack_require__.d(actions_namespaceObject, "enablePublishSidebar", function() { return enablePublishSidebar; });
1890  __webpack_require__.d(actions_namespaceObject, "disablePublishSidebar", function() { return disablePublishSidebar; });
1891  __webpack_require__.d(actions_namespaceObject, "lockPostSaving", function() { return lockPostSaving; });
1892  __webpack_require__.d(actions_namespaceObject, "unlockPostSaving", function() { return unlockPostSaving; });
1893  __webpack_require__.d(actions_namespaceObject, "lockPostAutosaving", function() { return lockPostAutosaving; });
1894  __webpack_require__.d(actions_namespaceObject, "unlockPostAutosaving", function() { return unlockPostAutosaving; });
1895  __webpack_require__.d(actions_namespaceObject, "resetEditorBlocks", function() { return actions_resetEditorBlocks; });
1896  __webpack_require__.d(actions_namespaceObject, "updateEditorSettings", function() { return updateEditorSettings; });
1897  __webpack_require__.d(actions_namespaceObject, "resetBlocks", function() { return resetBlocks; });
1898  __webpack_require__.d(actions_namespaceObject, "receiveBlocks", function() { return receiveBlocks; });
1899  __webpack_require__.d(actions_namespaceObject, "updateBlock", function() { return updateBlock; });
1900  __webpack_require__.d(actions_namespaceObject, "updateBlockAttributes", function() { return updateBlockAttributes; });
1901  __webpack_require__.d(actions_namespaceObject, "selectBlock", function() { return actions_selectBlock; });
1902  __webpack_require__.d(actions_namespaceObject, "startMultiSelect", function() { return startMultiSelect; });
1903  __webpack_require__.d(actions_namespaceObject, "stopMultiSelect", function() { return stopMultiSelect; });
1904  __webpack_require__.d(actions_namespaceObject, "multiSelect", function() { return multiSelect; });
1905  __webpack_require__.d(actions_namespaceObject, "clearSelectedBlock", function() { return clearSelectedBlock; });
1906  __webpack_require__.d(actions_namespaceObject, "toggleSelection", function() { return toggleSelection; });
1907  __webpack_require__.d(actions_namespaceObject, "replaceBlocks", function() { return actions_replaceBlocks; });
1908  __webpack_require__.d(actions_namespaceObject, "replaceBlock", function() { return replaceBlock; });
1909  __webpack_require__.d(actions_namespaceObject, "moveBlocksDown", function() { return moveBlocksDown; });
1910  __webpack_require__.d(actions_namespaceObject, "moveBlocksUp", function() { return moveBlocksUp; });
1911  __webpack_require__.d(actions_namespaceObject, "moveBlockToPosition", function() { return moveBlockToPosition; });
1912  __webpack_require__.d(actions_namespaceObject, "insertBlock", function() { return insertBlock; });
1913  __webpack_require__.d(actions_namespaceObject, "insertBlocks", function() { return insertBlocks; });
1914  __webpack_require__.d(actions_namespaceObject, "showInsertionPoint", function() { return showInsertionPoint; });
1915  __webpack_require__.d(actions_namespaceObject, "hideInsertionPoint", function() { return hideInsertionPoint; });
1916  __webpack_require__.d(actions_namespaceObject, "setTemplateValidity", function() { return setTemplateValidity; });
1917  __webpack_require__.d(actions_namespaceObject, "synchronizeTemplate", function() { return synchronizeTemplate; });
1918  __webpack_require__.d(actions_namespaceObject, "mergeBlocks", function() { return mergeBlocks; });
1919  __webpack_require__.d(actions_namespaceObject, "removeBlocks", function() { return removeBlocks; });
1920  __webpack_require__.d(actions_namespaceObject, "removeBlock", function() { return removeBlock; });
1921  __webpack_require__.d(actions_namespaceObject, "toggleBlockMode", function() { return toggleBlockMode; });
1922  __webpack_require__.d(actions_namespaceObject, "startTyping", function() { return startTyping; });
1923  __webpack_require__.d(actions_namespaceObject, "stopTyping", function() { return stopTyping; });
1924  __webpack_require__.d(actions_namespaceObject, "enterFormattedText", function() { return enterFormattedText; });
1925  __webpack_require__.d(actions_namespaceObject, "exitFormattedText", function() { return exitFormattedText; });
1926  __webpack_require__.d(actions_namespaceObject, "insertDefaultBlock", function() { return insertDefaultBlock; });
1927  __webpack_require__.d(actions_namespaceObject, "updateBlockListSettings", function() { return updateBlockListSettings; });
1928  
1929  // EXTERNAL MODULE: external {"this":["wp","blockEditor"]}
1930  var external_this_wp_blockEditor_ = __webpack_require__(6);
1931  
1932  // EXTERNAL MODULE: external {"this":["wp","blocks"]}
1933  var external_this_wp_blocks_ = __webpack_require__(11);
1934  
1935  // EXTERNAL MODULE: external {"this":["wp","coreData"]}
1936  var external_this_wp_coreData_ = __webpack_require__(83);
1937  
1938  // EXTERNAL MODULE: external {"this":["wp","keyboardShortcuts"]}
1939  var external_this_wp_keyboardShortcuts_ = __webpack_require__(53);
1940  
1941  // EXTERNAL MODULE: external {"this":["wp","notices"]}
1942  var external_this_wp_notices_ = __webpack_require__(92);
1943  
1944  // EXTERNAL MODULE: external {"this":["wp","reusableBlocks"]}
1945  var external_this_wp_reusableBlocks_ = __webpack_require__(121);
1946  
1947  // EXTERNAL MODULE: external {"this":["wp","richText"]}
1948  var external_this_wp_richText_ = __webpack_require__(25);
1949  
1950  // EXTERNAL MODULE: external {"this":["wp","viewport"]}
1951  var external_this_wp_viewport_ = __webpack_require__(101);
1952  
1953  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
1954  var defineProperty = __webpack_require__(5);
1955  
1956  // EXTERNAL MODULE: external {"this":["wp","data"]}
1957  var external_this_wp_data_ = __webpack_require__(4);
1958  
1959  // EXTERNAL MODULE: external {"this":["wp","dataControls"]}
1960  var external_this_wp_dataControls_ = __webpack_require__(32);
1961  
1962  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
1963  var esm_typeof = __webpack_require__(40);
1964  
1965  // EXTERNAL MODULE: ./node_modules/redux-optimist/index.js
1966  var redux_optimist = __webpack_require__(293);
1967  var redux_optimist_default = /*#__PURE__*/__webpack_require__.n(redux_optimist);
1968  
1969  // EXTERNAL MODULE: external {"this":"lodash"}
1970  var external_this_lodash_ = __webpack_require__(2);
1971  
1972  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/defaults.js
1973  
1974  
1975  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1976  
1977  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1978  
1979  /**
1980   * WordPress dependencies
1981   */
1982  
1983  var PREFERENCES_DEFAULTS = {
1984    insertUsage: {},
1985    // Should be kept for backward compatibility, see: https://github.com/WordPress/gutenberg/issues/14580.
1986    isPublishSidebarEnabled: true
1987  };
1988  /**
1989   * The default post editor settings
1990   *
1991   *  allowedBlockTypes  boolean|Array Allowed block types
1992   *  richEditingEnabled boolean       Whether rich editing is enabled or not
1993   *  codeEditingEnabled boolean       Whether code editing is enabled or not
1994   *  enableCustomFields boolean       Whether the WordPress custom fields are enabled or not
1995   *  autosaveInterval   number        Autosave Interval
1996   *  availableTemplates array?        The available post templates
1997   *  disablePostFormats boolean       Whether or not the post formats are disabled
1998   *  allowedMimeTypes   array?        List of allowed mime types and file extensions
1999   *  maxUploadFileSize  number        Maximum upload file size
2000   */
2001  
2002  var EDITOR_SETTINGS_DEFAULTS = _objectSpread(_objectSpread({}, external_this_wp_blockEditor_["SETTINGS_DEFAULTS"]), {}, {
2003    richEditingEnabled: true,
2004    codeEditingEnabled: true,
2005    enableCustomFields: false
2006  });
2007  
2008  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/reducer.js
2009  
2010  
2011  
2012  function reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2013  
2014  function reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { reducer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2015  
2016  /**
2017   * External dependencies
2018   */
2019  
2020  
2021  /**
2022   * WordPress dependencies
2023   */
2024  
2025  
2026  /**
2027   * Internal dependencies
2028   */
2029  
2030  
2031  /**
2032   * Returns a post attribute value, flattening nested rendered content using its
2033   * raw value in place of its original object form.
2034   *
2035   * @param {*} value Original value.
2036   *
2037   * @return {*} Raw value.
2038   */
2039  
2040  function getPostRawValue(value) {
2041    if (value && 'object' === Object(esm_typeof["a" /* default */])(value) && 'raw' in value) {
2042      return value.raw;
2043    }
2044  
2045    return value;
2046  }
2047  /**
2048   * Returns true if the two object arguments have the same keys, or false
2049   * otherwise.
2050   *
2051   * @param {Object} a First object.
2052   * @param {Object} b Second object.
2053   *
2054   * @return {boolean} Whether the two objects have the same keys.
2055   */
2056  
2057  function hasSameKeys(a, b) {
2058    return Object(external_this_lodash_["isEqual"])(Object(external_this_lodash_["keys"])(a), Object(external_this_lodash_["keys"])(b));
2059  }
2060  /**
2061   * Returns true if, given the currently dispatching action and the previously
2062   * dispatched action, the two actions are editing the same post property, or
2063   * false otherwise.
2064   *
2065   * @param {Object} action         Currently dispatching action.
2066   * @param {Object} previousAction Previously dispatched action.
2067   *
2068   * @return {boolean} Whether actions are updating the same post property.
2069   */
2070  
2071  function isUpdatingSamePostProperty(action, previousAction) {
2072    return action.type === 'EDIT_POST' && hasSameKeys(action.edits, previousAction.edits);
2073  }
2074  /**
2075   * Returns true if, given the currently dispatching action and the previously
2076   * dispatched action, the two actions are modifying the same property such that
2077   * undo history should be batched.
2078   *
2079   * @param {Object} action         Currently dispatching action.
2080   * @param {Object} previousAction Previously dispatched action.
2081   *
2082   * @return {boolean} Whether to overwrite present state.
2083   */
2084  
2085  function shouldOverwriteState(action, previousAction) {
2086    if (action.type === 'RESET_EDITOR_BLOCKS') {
2087      return !action.shouldCreateUndoLevel;
2088    }
2089  
2090    if (!previousAction || action.type !== previousAction.type) {
2091      return false;
2092    }
2093  
2094    return isUpdatingSamePostProperty(action, previousAction);
2095  }
2096  function reducer_postId() {
2097    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2098    var action = arguments.length > 1 ? arguments[1] : undefined;
2099  
2100    switch (action.type) {
2101      case 'SETUP_EDITOR_STATE':
2102      case 'RESET_POST':
2103      case 'UPDATE_POST':
2104        return action.post.id;
2105    }
2106  
2107    return state;
2108  }
2109  function reducer_postType() {
2110    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2111    var action = arguments.length > 1 ? arguments[1] : undefined;
2112  
2113    switch (action.type) {
2114      case 'SETUP_EDITOR_STATE':
2115      case 'RESET_POST':
2116      case 'UPDATE_POST':
2117        return action.post.type;
2118    }
2119  
2120    return state;
2121  }
2122  /**
2123   * Reducer returning whether the post blocks match the defined template or not.
2124   *
2125   * @param {Object} state  Current state.
2126   * @param {Object} action Dispatched action.
2127   *
2128   * @return {boolean} Updated state.
2129   */
2130  
2131  function reducer_template() {
2132    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
2133      isValid: true
2134    };
2135    var action = arguments.length > 1 ? arguments[1] : undefined;
2136  
2137    switch (action.type) {
2138      case 'SET_TEMPLATE_VALIDITY':
2139        return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
2140          isValid: action.isValid
2141        });
2142    }
2143  
2144    return state;
2145  }
2146  /**
2147   * Reducer returning the user preferences.
2148   *
2149   * @param {Object}  state                 Current state.
2150   * @param {Object}  action                Dispatched action.
2151   *
2152   * @return {string} Updated state.
2153   */
2154  
2155  function preferences() {
2156    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PREFERENCES_DEFAULTS;
2157    var action = arguments.length > 1 ? arguments[1] : undefined;
2158  
2159    switch (action.type) {
2160      case 'ENABLE_PUBLISH_SIDEBAR':
2161        return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
2162          isPublishSidebarEnabled: true
2163        });
2164  
2165      case 'DISABLE_PUBLISH_SIDEBAR':
2166        return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
2167          isPublishSidebarEnabled: false
2168        });
2169    }
2170  
2171    return state;
2172  }
2173  /**
2174   * Reducer returning current network request state (whether a request to
2175   * the WP REST API is in progress, successful, or failed).
2176   *
2177   * @param {Object} state  Current state.
2178   * @param {Object} action Dispatched action.
2179   *
2180   * @return {Object} Updated state.
2181   */
2182  
2183  function saving() {
2184    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2185    var action = arguments.length > 1 ? arguments[1] : undefined;
2186  
2187    switch (action.type) {
2188      case 'REQUEST_POST_UPDATE_START':
2189      case 'REQUEST_POST_UPDATE_FINISH':
2190        return {
2191          pending: action.type === 'REQUEST_POST_UPDATE_START',
2192          options: action.options || {}
2193        };
2194    }
2195  
2196    return state;
2197  }
2198  /**
2199   * Post Lock State.
2200   *
2201   * @typedef {Object} PostLockState
2202   *
2203   * @property {boolean} isLocked       Whether the post is locked.
2204   * @property {?boolean} isTakeover     Whether the post editing has been taken over.
2205   * @property {?boolean} activePostLock Active post lock value.
2206   * @property {?Object}  user           User that took over the post.
2207   */
2208  
2209  /**
2210   * Reducer returning the post lock status.
2211   *
2212   * @param {PostLockState} state  Current state.
2213   * @param {Object} action Dispatched action.
2214   *
2215   * @return {PostLockState} Updated state.
2216   */
2217  
2218  function postLock() {
2219    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
2220      isLocked: false
2221    };
2222    var action = arguments.length > 1 ? arguments[1] : undefined;
2223  
2224    switch (action.type) {
2225      case 'UPDATE_POST_LOCK':
2226        return action.lock;
2227    }
2228  
2229    return state;
2230  }
2231  /**
2232   * Post saving lock.
2233   *
2234   * When post saving is locked, the post cannot be published or updated.
2235   *
2236   * @param {PostLockState} state  Current state.
2237   * @param {Object}        action Dispatched action.
2238   *
2239   * @return {PostLockState} Updated state.
2240   */
2241  
2242  function postSavingLock() {
2243    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2244    var action = arguments.length > 1 ? arguments[1] : undefined;
2245  
2246    switch (action.type) {
2247      case 'LOCK_POST_SAVING':
2248        return reducer_objectSpread(reducer_objectSpread({}, state), {}, Object(defineProperty["a" /* default */])({}, action.lockName, true));
2249  
2250      case 'UNLOCK_POST_SAVING':
2251        return Object(external_this_lodash_["omit"])(state, action.lockName);
2252    }
2253  
2254    return state;
2255  }
2256  /**
2257   * Post autosaving lock.
2258   *
2259   * When post autosaving is locked, the post will not autosave.
2260   *
2261   * @param {PostLockState} state  Current state.
2262   * @param {Object}        action Dispatched action.
2263   *
2264   * @return {PostLockState} Updated state.
2265   */
2266  
2267  function postAutosavingLock() {
2268    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2269    var action = arguments.length > 1 ? arguments[1] : undefined;
2270  
2271    switch (action.type) {
2272      case 'LOCK_POST_AUTOSAVING':
2273        return reducer_objectSpread(reducer_objectSpread({}, state), {}, Object(defineProperty["a" /* default */])({}, action.lockName, true));
2274  
2275      case 'UNLOCK_POST_AUTOSAVING':
2276        return Object(external_this_lodash_["omit"])(state, action.lockName);
2277    }
2278  
2279    return state;
2280  }
2281  /**
2282   * Reducer returning whether the editor is ready to be rendered.
2283   * The editor is considered ready to be rendered once
2284   * the post object is loaded properly and the initial blocks parsed.
2285   *
2286   * @param {boolean} state
2287   * @param {Object} action
2288   *
2289   * @return {boolean} Updated state.
2290   */
2291  
2292  function reducer_isReady() {
2293    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
2294    var action = arguments.length > 1 ? arguments[1] : undefined;
2295  
2296    switch (action.type) {
2297      case 'SETUP_EDITOR_STATE':
2298        return true;
2299  
2300      case 'TEAR_DOWN_EDITOR':
2301        return false;
2302    }
2303  
2304    return state;
2305  }
2306  /**
2307   * Reducer returning the post editor setting.
2308   *
2309   * @param {Object} state  Current state.
2310   * @param {Object} action Dispatched action.
2311   *
2312   * @return {Object} Updated state.
2313   */
2314  
2315  function reducer_editorSettings() {
2316    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EDITOR_SETTINGS_DEFAULTS;
2317    var action = arguments.length > 1 ? arguments[1] : undefined;
2318  
2319    switch (action.type) {
2320      case 'UPDATE_EDITOR_SETTINGS':
2321        return reducer_objectSpread(reducer_objectSpread({}, state), action.settings);
2322    }
2323  
2324    return state;
2325  }
2326  /* harmony default export */ var reducer = (redux_optimist_default()(Object(external_this_wp_data_["combineReducers"])({
2327    postId: reducer_postId,
2328    postType: reducer_postType,
2329    preferences: preferences,
2330    saving: saving,
2331    postLock: postLock,
2332    template: reducer_template,
2333    postSavingLock: postSavingLock,
2334    isReady: reducer_isReady,
2335    editorSettings: reducer_editorSettings,
2336    postAutosavingLock: postAutosavingLock
2337  })));
2338  
2339  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
2340  var slicedToArray = __webpack_require__(12);
2341  
2342  // EXTERNAL MODULE: external {"this":["wp","date"]}
2343  var external_this_wp_date_ = __webpack_require__(75);
2344  
2345  // EXTERNAL MODULE: external {"this":["wp","url"]}
2346  var external_this_wp_url_ = __webpack_require__(30);
2347  
2348  // EXTERNAL MODULE: external {"this":["wp","deprecated"]}
2349  var external_this_wp_deprecated_ = __webpack_require__(36);
2350  var external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);
2351  
2352  // EXTERNAL MODULE: external {"this":["wp","element"]}
2353  var external_this_wp_element_ = __webpack_require__(0);
2354  
2355  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/constants.js
2356  /**
2357   * Set of post properties for which edits should assume a merging behavior,
2358   * assuming an object value.
2359   *
2360   * @type {Set}
2361   */
2362  var EDIT_MERGE_PROPERTIES = new Set(['meta']);
2363  /**
2364   * Constant for the store module (or reducer) key.
2365   *
2366   * @type {string}
2367   */
2368  
2369  var STORE_KEY = 'core/editor';
2370  var POST_UPDATE_TRANSACTION_ID = 'post-update';
2371  var SAVE_POST_NOTICE_ID = 'SAVE_POST_NOTICE_ID';
2372  var TRASH_POST_NOTICE_ID = 'TRASH_POST_NOTICE_ID';
2373  var PERMALINK_POSTNAME_REGEX = /%(?:postname|pagename)%/;
2374  var ONE_MINUTE_IN_MS = 60 * 1000;
2375  var AUTOSAVE_PROPERTIES = ['title', 'excerpt', 'content'];
2376  
2377  // EXTERNAL MODULE: ./node_modules/memize/index.js
2378  var memize = __webpack_require__(60);
2379  var memize_default = /*#__PURE__*/__webpack_require__.n(memize);
2380  
2381  // EXTERNAL MODULE: external {"this":["wp","autop"]}
2382  var external_this_wp_autop_ = __webpack_require__(106);
2383  
2384  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/utils/serialize-blocks.js
2385  /**
2386   * External dependencies
2387   */
2388  
2389  /**
2390   * WordPress dependencies
2391   */
2392  
2393  
2394  
2395  /**
2396   * Serializes blocks following backwards compatibility conventions.
2397   *
2398   * @param {Array} blocksForSerialization The blocks to serialize.
2399   *
2400   * @return {string} The blocks serialization.
2401   */
2402  
2403  var serializeBlocks = memize_default()(function (blocksForSerialization) {
2404    // A single unmodified default block is assumed to
2405    // be equivalent to an empty post.
2406    if (blocksForSerialization.length === 1 && Object(external_this_wp_blocks_["isUnmodifiedDefaultBlock"])(blocksForSerialization[0])) {
2407      blocksForSerialization = [];
2408    }
2409  
2410    var content = Object(external_this_wp_blocks_["serialize"])(blocksForSerialization); // For compatibility, treat a post consisting of a
2411    // single freeform block as legacy content and apply
2412    // pre-block-editor removep'd content formatting.
2413  
2414    if (blocksForSerialization.length === 1 && blocksForSerialization[0].name === Object(external_this_wp_blocks_["getFreeformContentHandlerName"])()) {
2415      content = Object(external_this_wp_autop_["removep"])(content);
2416    }
2417  
2418    return content;
2419  }, {
2420    maxSize: 1
2421  });
2422  /* harmony default export */ var serialize_blocks = (serializeBlocks);
2423  
2424  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/utils/url.js
2425  /**
2426   * External dependencies
2427   */
2428  
2429  /**
2430   * WordPress dependencies
2431   */
2432  
2433  
2434  /**
2435   * Returns the URL of a WPAdmin Page.
2436   *
2437   * TODO: This should be moved to a module less specific to the editor.
2438   *
2439   * @param {string} page  Page to navigate to.
2440   * @param {Object} query Query Args.
2441   *
2442   * @return {string} WPAdmin URL.
2443   */
2444  
2445  function getWPAdminURL(page, query) {
2446    return Object(external_this_wp_url_["addQueryArgs"])(page, query);
2447  }
2448  /**
2449   * Performs some basic cleanup of a string for use as a post slug
2450   *
2451   * This replicates some of what sanitize_title() does in WordPress core, but
2452   * is only designed to approximate what the slug will be.
2453   *
2454   * Converts Latin-1 Supplement and Latin Extended-A letters to basic Latin
2455   * letters. Removes combining diacritical marks. Converts whitespace, periods,
2456   * and forward slashes to hyphens. Removes any remaining non-word characters
2457   * except hyphens. Converts remaining string to lowercase. It does not account
2458   * for octets, HTML entities, or other encoded characters.
2459   *
2460   * @param {string} string Title or slug to be processed
2461   *
2462   * @return {string} Processed string
2463   */
2464  
2465  function cleanForSlug(string) {
2466    if (!string) {
2467      return '';
2468    }
2469  
2470    return Object(external_this_lodash_["trim"])(Object(external_this_lodash_["deburr"])(string).replace(/[\s\./]+/g, '-').replace(/[^\w-]+/g, '').toLowerCase(), '-');
2471  }
2472  
2473  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/selectors.js
2474  
2475  
2476  
2477  function selectors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2478  
2479  function selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { selectors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2480  
2481  /**
2482   * External dependencies
2483   */
2484  
2485  /**
2486   * WordPress dependencies
2487   */
2488  
2489  
2490  
2491  
2492  
2493  
2494  
2495  /**
2496   * Internal dependencies
2497   */
2498  
2499  
2500  
2501  
2502  
2503  
2504  /**
2505   * Shared reference to an empty object for cases where it is important to avoid
2506   * returning a new object reference on every invocation, as in a connected or
2507   * other pure component which performs `shouldComponentUpdate` check on props.
2508   * This should be used as a last resort, since the normalized data should be
2509   * maintained by the reducer result in state.
2510   */
2511  
2512  var EMPTY_OBJECT = {};
2513  /**
2514   * Shared reference to an empty array for cases where it is important to avoid
2515   * returning a new array reference on every invocation, as in a connected or
2516   * other pure component which performs `shouldComponentUpdate` check on props.
2517   * This should be used as a last resort, since the normalized data should be
2518   * maintained by the reducer result in state.
2519   */
2520  
2521  var EMPTY_ARRAY = [];
2522  /**
2523   * Returns true if any past editor history snapshots exist, or false otherwise.
2524   *
2525   * @param {Object} state Global application state.
2526   *
2527   * @return {boolean} Whether undo history exists.
2528   */
2529  
2530  var hasEditorUndo = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
2531    return function () {
2532      return select('core').hasUndo();
2533    };
2534  });
2535  /**
2536   * Returns true if any future editor history snapshots exist, or false
2537   * otherwise.
2538   *
2539   * @param {Object} state Global application state.
2540   *
2541   * @return {boolean} Whether redo history exists.
2542   */
2543  
2544  var hasEditorRedo = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
2545    return function () {
2546      return select('core').hasRedo();
2547    };
2548  });
2549  /**
2550   * Returns true if the currently edited post is yet to be saved, or false if
2551   * the post has been saved.
2552   *
2553   * @param {Object} state Global application state.
2554   *
2555   * @return {boolean} Whether the post is new.
2556   */
2557  
2558  function selectors_isEditedPostNew(state) {
2559    return selectors_getCurrentPost(state).status === 'auto-draft';
2560  }
2561  /**
2562   * Returns true if content includes unsaved changes, or false otherwise.
2563   *
2564   * @param {Object} state Editor state.
2565   *
2566   * @return {boolean} Whether content includes unsaved changes.
2567   */
2568  
2569  function hasChangedContent(state) {
2570    var edits = selectors_getPostEdits(state);
2571    return 'blocks' in edits || // `edits` is intended to contain only values which are different from
2572    // the saved post, so the mere presence of a property is an indicator
2573    // that the value is different than what is known to be saved. While
2574    // content in Visual mode is represented by the blocks state, in Text
2575    // mode it is tracked by `edits.content`.
2576    'content' in edits;
2577  }
2578  /**
2579   * Returns true if there are unsaved values for the current edit session, or
2580   * false if the editing state matches the saved or new post.
2581   *
2582   * @param {Object} state Global application state.
2583   *
2584   * @return {boolean} Whether unsaved values exist.
2585   */
2586  
2587  var selectors_isEditedPostDirty = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
2588    return function (state) {
2589      // Edits should contain only fields which differ from the saved post (reset
2590      // at initial load and save complete). Thus, a non-empty edits state can be
2591      // inferred to contain unsaved values.
2592      var postType = selectors_getCurrentPostType(state);
2593      var postId = selectors_getCurrentPostId(state);
2594  
2595      if (select('core').hasEditsForEntityRecord('postType', postType, postId)) {
2596        return true;
2597      }
2598  
2599      return false;
2600    };
2601  });
2602  /**
2603   * Returns true if there are unsaved edits for entities other than
2604   * the editor's post, and false otherwise.
2605   *
2606   * @param {Object} state Global application state.
2607   *
2608   * @return {boolean} Whether there are edits or not.
2609   */
2610  
2611  var selectors_hasNonPostEntityChanges = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
2612    return function (state) {
2613      var enableFullSiteEditing = selectors_getEditorSettings(state).__experimentalEnableFullSiteEditing;
2614  
2615      if (!enableFullSiteEditing) {
2616        return false;
2617      }
2618  
2619      var dirtyEntityRecords = select('core').__experimentalGetDirtyEntityRecords();
2620  
2621      var _getCurrentPost = selectors_getCurrentPost(state),
2622          type = _getCurrentPost.type,
2623          id = _getCurrentPost.id;
2624  
2625      return Object(external_this_lodash_["some"])(dirtyEntityRecords, function (entityRecord) {
2626        return entityRecord.kind !== 'postType' || entityRecord.name !== type || entityRecord.key !== id;
2627      });
2628    };
2629  });
2630  /**
2631   * Returns true if there are no unsaved values for the current edit session and
2632   * if the currently edited post is new (has never been saved before).
2633   *
2634   * @param {Object} state Global application state.
2635   *
2636   * @return {boolean} Whether new post and unsaved values exist.
2637   */
2638  
2639  function selectors_isCleanNewPost(state) {
2640    return !selectors_isEditedPostDirty(state) && selectors_isEditedPostNew(state);
2641  }
2642  /**
2643   * Returns the post currently being edited in its last known saved state, not
2644   * including unsaved edits. Returns an object containing relevant default post
2645   * values if the post has not yet been saved.
2646   *
2647   * @param {Object} state Global application state.
2648   *
2649   * @return {Object} Post object.
2650   */
2651  
2652  var selectors_getCurrentPost = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
2653    return function (state) {
2654      var postId = selectors_getCurrentPostId(state);
2655      var postType = selectors_getCurrentPostType(state);
2656      var post = select('core').getRawEntityRecord('postType', postType, postId);
2657  
2658      if (post) {
2659        return post;
2660      } // This exists for compatibility with the previous selector behavior
2661      // which would guarantee an object return based on the editor reducer's
2662      // default empty object state.
2663  
2664  
2665      return EMPTY_OBJECT;
2666    };
2667  });
2668  /**
2669   * Returns the post type of the post currently being edited.
2670   *
2671   * @param {Object} state Global application state.
2672   *
2673   * @return {string} Post type.
2674   */
2675  
2676  function selectors_getCurrentPostType(state) {
2677    return state.postType;
2678  }
2679  /**
2680   * Returns the ID of the post currently being edited, or null if the post has
2681   * not yet been saved.
2682   *
2683   * @param {Object} state Global application state.
2684   *
2685   * @return {?number} ID of current post.
2686   */
2687  
2688  function selectors_getCurrentPostId(state) {
2689    return state.postId;
2690  }
2691  /**
2692   * Returns the number of revisions of the post currently being edited.
2693   *
2694   * @param {Object} state Global application state.
2695   *
2696   * @return {number} Number of revisions.
2697   */
2698  
2699  function getCurrentPostRevisionsCount(state) {
2700    return Object(external_this_lodash_["get"])(selectors_getCurrentPost(state), ['_links', 'version-history', 0, 'count'], 0);
2701  }
2702  /**
2703   * Returns the last revision ID of the post currently being edited,
2704   * or null if the post has no revisions.
2705   *
2706   * @param {Object} state Global application state.
2707   *
2708   * @return {?number} ID of the last revision.
2709   */
2710  
2711  function getCurrentPostLastRevisionId(state) {
2712    return Object(external_this_lodash_["get"])(selectors_getCurrentPost(state), ['_links', 'predecessor-version', 0, 'id'], null);
2713  }
2714  /**
2715   * Returns any post values which have been changed in the editor but not yet
2716   * been saved.
2717   *
2718   * @param {Object} state Global application state.
2719   *
2720   * @return {Object} Object of key value pairs comprising unsaved edits.
2721   */
2722  
2723  var selectors_getPostEdits = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
2724    return function (state) {
2725      var postType = selectors_getCurrentPostType(state);
2726      var postId = selectors_getCurrentPostId(state);
2727      return select('core').getEntityRecordEdits('postType', postType, postId) || EMPTY_OBJECT;
2728    };
2729  });
2730  /**
2731   * Returns a new reference when edited values have changed. This is useful in
2732   * inferring where an edit has been made between states by comparison of the
2733   * return values using strict equality.
2734   *
2735   * @deprecated since Gutenberg 6.5.0.
2736   *
2737   * @example
2738   *
2739   * ```
2740   * const hasEditOccurred = (
2741   *    getReferenceByDistinctEdits( beforeState ) !==
2742   *    getReferenceByDistinctEdits( afterState )
2743   * );
2744   * ```
2745   *
2746   * @param {Object} state Editor state.
2747   *
2748   * @return {*} A value whose reference will change only when an edit occurs.
2749   */
2750  
2751  var getReferenceByDistinctEdits = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
2752    return function ()
2753    /* state */
2754    {
2755      external_this_wp_deprecated_default()("`wp.data.select( 'core/editor' ).getReferenceByDistinctEdits`", {
2756        alternative: "`wp.data.select( 'core' ).getReferenceByDistinctEdits`"
2757      });
2758      return select('core').getReferenceByDistinctEdits();
2759    };
2760  });
2761  /**
2762   * Returns an attribute value of the saved post.
2763   *
2764   * @param {Object} state         Global application state.
2765   * @param {string} attributeName Post attribute name.
2766   *
2767   * @return {*} Post attribute value.
2768   */
2769  
2770  function selectors_getCurrentPostAttribute(state, attributeName) {
2771    switch (attributeName) {
2772      case 'type':
2773        return selectors_getCurrentPostType(state);
2774  
2775      case 'id':
2776        return selectors_getCurrentPostId(state);
2777  
2778      default:
2779        var post = selectors_getCurrentPost(state);
2780  
2781        if (!post.hasOwnProperty(attributeName)) {
2782          break;
2783        }
2784  
2785        return getPostRawValue(post[attributeName]);
2786    }
2787  }
2788  /**
2789   * Returns a single attribute of the post being edited, preferring the unsaved
2790   * edit if one exists, but merging with the attribute value for the last known
2791   * saved state of the post (this is needed for some nested attributes like meta).
2792   *
2793   * @param {Object} state         Global application state.
2794   * @param {string} attributeName Post attribute name.
2795   *
2796   * @return {*} Post attribute value.
2797   */
2798  
2799  var getNestedEditedPostProperty = function getNestedEditedPostProperty(state, attributeName) {
2800    var edits = selectors_getPostEdits(state);
2801  
2802    if (!edits.hasOwnProperty(attributeName)) {
2803      return selectors_getCurrentPostAttribute(state, attributeName);
2804    }
2805  
2806    return selectors_objectSpread(selectors_objectSpread({}, selectors_getCurrentPostAttribute(state, attributeName)), edits[attributeName]);
2807  };
2808  /**
2809   * Returns a single attribute of the post being edited, preferring the unsaved
2810   * edit if one exists, but falling back to the attribute for the last known
2811   * saved state of the post.
2812   *
2813   * @param {Object} state         Global application state.
2814   * @param {string} attributeName Post attribute name.
2815   *
2816   * @return {*} Post attribute value.
2817   */
2818  
2819  
2820  function selectors_getEditedPostAttribute(state, attributeName) {
2821    // Special cases
2822    switch (attributeName) {
2823      case 'content':
2824        return getEditedPostContent(state);
2825    } // Fall back to saved post value if not edited.
2826  
2827  
2828    var edits = selectors_getPostEdits(state);
2829  
2830    if (!edits.hasOwnProperty(attributeName)) {
2831      return selectors_getCurrentPostAttribute(state, attributeName);
2832    } // Merge properties are objects which contain only the patch edit in state,
2833    // and thus must be merged with the current post attribute.
2834  
2835  
2836    if (EDIT_MERGE_PROPERTIES.has(attributeName)) {
2837      return getNestedEditedPostProperty(state, attributeName);
2838    }
2839  
2840    return edits[attributeName];
2841  }
2842  /**
2843   * Returns an attribute value of the current autosave revision for a post, or
2844   * null if there is no autosave for the post.
2845   *
2846   * @deprecated since 5.6. Callers should use the `getAutosave( postType, postId, userId )` selector
2847   *                from the '@wordpress/core-data' package and access properties on the returned
2848   *                autosave object using getPostRawValue.
2849   *
2850   * @param {Object} state         Global application state.
2851   * @param {string} attributeName Autosave attribute name.
2852   *
2853   * @return {*} Autosave attribute value.
2854   */
2855  
2856  var getAutosaveAttribute = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
2857    return function (state, attributeName) {
2858      if (!Object(external_this_lodash_["includes"])(AUTOSAVE_PROPERTIES, attributeName) && attributeName !== 'preview_link') {
2859        return;
2860      }
2861  
2862      var postType = selectors_getCurrentPostType(state);
2863      var postId = selectors_getCurrentPostId(state);
2864      var currentUserId = Object(external_this_lodash_["get"])(select('core').getCurrentUser(), ['id']);
2865      var autosave = select('core').getAutosave(postType, postId, currentUserId);
2866  
2867      if (autosave) {
2868        return getPostRawValue(autosave[attributeName]);
2869      }
2870    };
2871  });
2872  /**
2873   * Returns the current visibility of the post being edited, preferring the
2874   * unsaved value if different than the saved post. The return value is one of
2875   * "private", "password", or "public".
2876   *
2877   * @param {Object} state Global application state.
2878   *
2879   * @return {string} Post visibility.
2880   */
2881  
2882  function selectors_getEditedPostVisibility(state) {
2883    var status = selectors_getEditedPostAttribute(state, 'status');
2884  
2885    if (status === 'private') {
2886      return 'private';
2887    }
2888  
2889    var password = selectors_getEditedPostAttribute(state, 'password');
2890  
2891    if (password) {
2892      return 'password';
2893    }
2894  
2895    return 'public';
2896  }
2897  /**
2898   * Returns true if post is pending review.
2899   *
2900   * @param {Object} state Global application state.
2901   *
2902   * @return {boolean} Whether current post is pending review.
2903   */
2904  
2905  function isCurrentPostPending(state) {
2906    return selectors_getCurrentPost(state).status === 'pending';
2907  }
2908  /**
2909   * Return true if the current post has already been published.
2910   *
2911   * @param {Object}  state       Global application state.
2912   * @param {Object?} currentPost Explicit current post for bypassing registry selector.
2913   *
2914   * @return {boolean} Whether the post has been published.
2915   */
2916  
2917  function selectors_isCurrentPostPublished(state, currentPost) {
2918    var post = currentPost || selectors_getCurrentPost(state);
2919    return ['publish', 'private'].indexOf(post.status) !== -1 || post.status === 'future' && !Object(external_this_wp_date_["isInTheFuture"])(new Date(Number(Object(external_this_wp_date_["getDate"])(post.date)) - ONE_MINUTE_IN_MS));
2920  }
2921  /**
2922   * Returns true if post is already scheduled.
2923   *
2924   * @param {Object} state Global application state.
2925   *
2926   * @return {boolean} Whether current post is scheduled to be posted.
2927   */
2928  
2929  function selectors_isCurrentPostScheduled(state) {
2930    return selectors_getCurrentPost(state).status === 'future' && !selectors_isCurrentPostPublished(state);
2931  }
2932  /**
2933   * Return true if the post being edited can be published.
2934   *
2935   * @param {Object} state Global application state.
2936   *
2937   * @return {boolean} Whether the post can been published.
2938   */
2939  
2940  function selectors_isEditedPostPublishable(state) {
2941    var post = selectors_getCurrentPost(state); // TODO: Post being publishable should be superset of condition of post
2942    // being saveable. Currently this restriction is imposed at UI.
2943    //
2944    //  See: <PostPublishButton /> (`isButtonEnabled` assigned by `isSaveable`)
2945  
2946    return selectors_isEditedPostDirty(state) || ['publish', 'private', 'future'].indexOf(post.status) === -1;
2947  }
2948  /**
2949   * Returns true if the post can be saved, or false otherwise. A post must
2950   * contain a title, an excerpt, or non-empty content to be valid for save.
2951   *
2952   * @param {Object} state Global application state.
2953   *
2954   * @return {boolean} Whether the post can be saved.
2955   */
2956  
2957  function selectors_isEditedPostSaveable(state) {
2958    if (selectors_isSavingPost(state)) {
2959      return false;
2960    } // TODO: Post should not be saveable if not dirty. Cannot be added here at
2961    // this time since posts where meta boxes are present can be saved even if
2962    // the post is not dirty. Currently this restriction is imposed at UI, but
2963    // should be moved here.
2964    //
2965    //  See: `isEditedPostPublishable` (includes `isEditedPostDirty` condition)
2966    //  See: <PostSavedState /> (`forceIsDirty` prop)
2967    //  See: <PostPublishButton /> (`forceIsDirty` prop)
2968    //  See: https://github.com/WordPress/gutenberg/pull/4184
2969  
2970  
2971    return !!selectors_getEditedPostAttribute(state, 'title') || !!selectors_getEditedPostAttribute(state, 'excerpt') || !isEditedPostEmpty(state) || external_this_wp_element_["Platform"].OS === 'native';
2972  }
2973  /**
2974   * Returns true if the edited post has content. A post has content if it has at
2975   * least one saveable block or otherwise has a non-empty content property
2976   * assigned.
2977   *
2978   * @param {Object} state Global application state.
2979   *
2980   * @return {boolean} Whether post has content.
2981   */
2982  
2983  function isEditedPostEmpty(state) {
2984    // While the condition of truthy content string is sufficient to determine
2985    // emptiness, testing saveable blocks length is a trivial operation. Since
2986    // this function can be called frequently, optimize for the fast case as a
2987    // condition of the mere existence of blocks. Note that the value of edited
2988    // content takes precedent over block content, and must fall through to the
2989    // default logic.
2990    var blocks = selectors_getEditorBlocks(state);
2991  
2992    if (blocks.length) {
2993      // Pierce the abstraction of the serializer in knowing that blocks are
2994      // joined with with newlines such that even if every individual block
2995      // produces an empty save result, the serialized content is non-empty.
2996      if (blocks.length > 1) {
2997        return false;
2998      } // There are two conditions under which the optimization cannot be
2999      // assumed, and a fallthrough to getEditedPostContent must occur:
3000      //
3001      // 1. getBlocksForSerialization has special treatment in omitting a
3002      //    single unmodified default block.
3003      // 2. Comment delimiters are omitted for a freeform or unregistered
3004      //    block in its serialization. The freeform block specifically may
3005      //    produce an empty string in its saved output.
3006      //
3007      // For all other content, the single block is assumed to make a post
3008      // non-empty, if only by virtue of its own comment delimiters.
3009  
3010  
3011      var blockName = blocks[0].name;
3012  
3013      if (blockName !== Object(external_this_wp_blocks_["getDefaultBlockName"])() && blockName !== Object(external_this_wp_blocks_["getFreeformContentHandlerName"])()) {
3014        return false;
3015      }
3016    }
3017  
3018    return !getEditedPostContent(state);
3019  }
3020  /**
3021   * Returns true if the post can be autosaved, or false otherwise.
3022   *
3023   * @param {Object} state    Global application state.
3024   * @param {Object} autosave A raw autosave object from the REST API.
3025   *
3026   * @return {boolean} Whether the post can be autosaved.
3027   */
3028  
3029  var selectors_isEditedPostAutosaveable = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
3030    return function (state) {
3031      // A post must contain a title, an excerpt, or non-empty content to be valid for autosaving.
3032      if (!selectors_isEditedPostSaveable(state)) {
3033        return false;
3034      } // A post is not autosavable when there is a post autosave lock.
3035  
3036  
3037      if (isPostAutosavingLocked(state)) {
3038        return false;
3039      }
3040  
3041      var postType = selectors_getCurrentPostType(state);
3042      var postId = selectors_getCurrentPostId(state);
3043      var hasFetchedAutosave = select('core').hasFetchedAutosaves(postType, postId);
3044      var currentUserId = Object(external_this_lodash_["get"])(select('core').getCurrentUser(), ['id']); // Disable reason - this line causes the side-effect of fetching the autosave
3045      // via a resolver, moving below the return would result in the autosave never
3046      // being fetched.
3047      // eslint-disable-next-line @wordpress/no-unused-vars-before-return
3048  
3049      var autosave = select('core').getAutosave(postType, postId, currentUserId); // If any existing autosaves have not yet been fetched, this function is
3050      // unable to determine if the post is autosaveable, so return false.
3051  
3052      if (!hasFetchedAutosave) {
3053        return false;
3054      } // If we don't already have an autosave, the post is autosaveable.
3055  
3056  
3057      if (!autosave) {
3058        return true;
3059      } // To avoid an expensive content serialization, use the content dirtiness
3060      // flag in place of content field comparison against the known autosave.
3061      // This is not strictly accurate, and relies on a tolerance toward autosave
3062      // request failures for unnecessary saves.
3063  
3064  
3065      if (hasChangedContent(state)) {
3066        return true;
3067      } // If the title or excerpt has changed, the post is autosaveable.
3068  
3069  
3070      return ['title', 'excerpt'].some(function (field) {
3071        return getPostRawValue(autosave[field]) !== selectors_getEditedPostAttribute(state, field);
3072      });
3073    };
3074  });
3075  /**
3076   * Returns the current autosave, or null if one is not set (i.e. if the post
3077   * has yet to be autosaved, or has been saved or published since the last
3078   * autosave).
3079   *
3080   * @deprecated since 5.6. Callers should use the `getAutosave( postType, postId, userId )`
3081   *                selector from the '@wordpress/core-data' package.
3082   *
3083   * @param {Object} state Editor state.
3084   *
3085   * @return {?Object} Current autosave, if exists.
3086   */
3087  
3088  var getAutosave = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
3089    return function (state) {
3090      external_this_wp_deprecated_default()("`wp.data.select( 'core/editor' ).getAutosave()`", {
3091        alternative: "`wp.data.select( 'core' ).getAutosave( postType, postId, userId )`",
3092        plugin: 'Gutenberg'
3093      });
3094      var postType = selectors_getCurrentPostType(state);
3095      var postId = selectors_getCurrentPostId(state);
3096      var currentUserId = Object(external_this_lodash_["get"])(select('core').getCurrentUser(), ['id']);
3097      var autosave = select('core').getAutosave(postType, postId, currentUserId);
3098      return Object(external_this_lodash_["mapValues"])(Object(external_this_lodash_["pick"])(autosave, AUTOSAVE_PROPERTIES), getPostRawValue);
3099    };
3100  });
3101  /**
3102   * Returns the true if there is an existing autosave, otherwise false.
3103   *
3104   * @deprecated since 5.6. Callers should use the `getAutosave( postType, postId, userId )` selector
3105   *             from the '@wordpress/core-data' package and check for a truthy value.
3106   *
3107   * @param {Object} state Global application state.
3108   *
3109   * @return {boolean} Whether there is an existing autosave.
3110   */
3111  
3112  var hasAutosave = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
3113    return function (state) {
3114      external_this_wp_deprecated_default()("`wp.data.select( 'core/editor' ).hasAutosave()`", {
3115        alternative: "`!! wp.data.select( 'core' ).getAutosave( postType, postId, userId )`",
3116        plugin: 'Gutenberg'
3117      });
3118      var postType = selectors_getCurrentPostType(state);
3119      var postId = selectors_getCurrentPostId(state);
3120      var currentUserId = Object(external_this_lodash_["get"])(select('core').getCurrentUser(), ['id']);
3121      return !!select('core').getAutosave(postType, postId, currentUserId);
3122    };
3123  });
3124  /**
3125   * Return true if the post being edited is being scheduled. Preferring the
3126   * unsaved status values.
3127   *
3128   * @param {Object} state Global application state.
3129   *
3130   * @return {boolean} Whether the post has been published.
3131   */
3132  
3133  function selectors_isEditedPostBeingScheduled(state) {
3134    var date = selectors_getEditedPostAttribute(state, 'date'); // Offset the date by one minute (network latency)
3135  
3136    var checkedDate = new Date(Number(Object(external_this_wp_date_["getDate"])(date)) - ONE_MINUTE_IN_MS);
3137    return Object(external_this_wp_date_["isInTheFuture"])(checkedDate);
3138  }
3139  /**
3140   * Returns whether the current post should be considered to have a "floating"
3141   * date (i.e. that it would publish "Immediately" rather than at a set time).
3142   *
3143   * Unlike in the PHP backend, the REST API returns a full date string for posts
3144   * where the 0000-00-00T00:00:00 placeholder is present in the database. To
3145   * infer that a post is set to publish "Immediately" we check whether the date
3146   * and modified date are the same.
3147   *
3148   * @param {Object} state Editor state.
3149   *
3150   * @return {boolean} Whether the edited post has a floating date value.
3151   */
3152  
3153  function isEditedPostDateFloating(state) {
3154    var date = selectors_getEditedPostAttribute(state, 'date');
3155    var modified = selectors_getEditedPostAttribute(state, 'modified');
3156    var status = selectors_getEditedPostAttribute(state, 'status');
3157  
3158    if (status === 'draft' || status === 'auto-draft' || status === 'pending') {
3159      return date === modified || date === null;
3160    }
3161  
3162    return false;
3163  }
3164  /**
3165   * Returns true if the post is currently being saved, or false otherwise.
3166   *
3167   * @param {Object} state Global application state.
3168   *
3169   * @return {boolean} Whether post is being saved.
3170   */
3171  
3172  var selectors_isSavingPost = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
3173    return function (state) {
3174      var postType = selectors_getCurrentPostType(state);
3175      var postId = selectors_getCurrentPostId(state);
3176      return select('core').isSavingEntityRecord('postType', postType, postId);
3177    };
3178  });
3179  /**
3180   * Returns true if a previous post save was attempted successfully, or false
3181   * otherwise.
3182   *
3183   * @param {Object} state Global application state.
3184   *
3185   * @return {boolean} Whether the post was saved successfully.
3186   */
3187  
3188  var didPostSaveRequestSucceed = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
3189    return function (state) {
3190      var postType = selectors_getCurrentPostType(state);
3191      var postId = selectors_getCurrentPostId(state);
3192      return !select('core').getLastEntitySaveError('postType', postType, postId);
3193    };
3194  });
3195  /**
3196   * Returns true if a previous post save was attempted but failed, or false
3197   * otherwise.
3198   *
3199   * @param {Object} state Global application state.
3200   *
3201   * @return {boolean} Whether the post save failed.
3202   */
3203  
3204  var didPostSaveRequestFail = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
3205    return function (state) {
3206      var postType = selectors_getCurrentPostType(state);
3207      var postId = selectors_getCurrentPostId(state);
3208      return !!select('core').getLastEntitySaveError('postType', postType, postId);
3209    };
3210  });
3211  /**
3212   * Returns true if the post is autosaving, or false otherwise.
3213   *
3214   * @param {Object} state Global application state.
3215   *
3216   * @return {boolean} Whether the post is autosaving.
3217   */
3218  
3219  function selectors_isAutosavingPost(state) {
3220    if (!selectors_isSavingPost(state)) {
3221      return false;
3222    }
3223  
3224    return !!Object(external_this_lodash_["get"])(state.saving, ['options', 'isAutosave']);
3225  }
3226  /**
3227   * Returns true if the post is being previewed, or false otherwise.
3228   *
3229   * @param {Object} state Global application state.
3230   *
3231   * @return {boolean} Whether the post is being previewed.
3232   */
3233  
3234  function isPreviewingPost(state) {
3235    if (!selectors_isSavingPost(state)) {
3236      return false;
3237    }
3238  
3239    return !!state.saving.options.isPreview;
3240  }
3241  /**
3242   * Returns the post preview link
3243   *
3244   * @param {Object} state Global application state.
3245   *
3246   * @return {string?} Preview Link.
3247   */
3248  
3249  function selectors_getEditedPostPreviewLink(state) {
3250    if (state.saving.pending || selectors_isSavingPost(state)) {
3251      return;
3252    }
3253  
3254    var previewLink = getAutosaveAttribute(state, 'preview_link');
3255  
3256    if (!previewLink) {
3257      previewLink = selectors_getEditedPostAttribute(state, 'link');
3258  
3259      if (previewLink) {
3260        previewLink = Object(external_this_wp_url_["addQueryArgs"])(previewLink, {
3261          preview: true
3262        });
3263      }
3264    }
3265  
3266    var featuredImageId = selectors_getEditedPostAttribute(state, 'featured_media');
3267  
3268    if (previewLink && featuredImageId) {
3269      return Object(external_this_wp_url_["addQueryArgs"])(previewLink, {
3270        _thumbnail_id: featuredImageId
3271      });
3272    }
3273  
3274    return previewLink;
3275  }
3276  /**
3277   * Returns a suggested post format for the current post, inferred only if there
3278   * is a single block within the post and it is of a type known to match a
3279   * default post format. Returns null if the format cannot be determined.
3280   *
3281   * @param {Object} state Global application state.
3282   *
3283   * @return {?string} Suggested post format.
3284   */
3285  
3286  function selectors_getSuggestedPostFormat(state) {
3287    var blocks = selectors_getEditorBlocks(state);
3288    if (blocks.length > 2) return null;
3289    var name; // If there is only one block in the content of the post grab its name
3290    // so we can derive a suitable post format from it.
3291  
3292    if (blocks.length === 1) {
3293      name = blocks[0].name; // check for core/embed `video` and `audio` eligible suggestions
3294  
3295      if (name === 'core/embed') {
3296        var _blocks$0$attributes;
3297  
3298        var provider = (_blocks$0$attributes = blocks[0].attributes) === null || _blocks$0$attributes === void 0 ? void 0 : _blocks$0$attributes.providerNameSlug;
3299  
3300        if (['youtube', 'vimeo'].includes(provider)) {
3301          name = 'core/video';
3302        } else if (['spotify', 'soundcloud'].includes(provider)) {
3303          name = 'core/audio';
3304        }
3305      }
3306    } // If there are two blocks in the content and the last one is a text blocks
3307    // grab the name of the first one to also suggest a post format from it.
3308  
3309  
3310    if (blocks.length === 2 && blocks[1].name === 'core/paragraph') {
3311      name = blocks[0].name;
3312    } // We only convert to default post formats in core.
3313  
3314  
3315    switch (name) {
3316      case 'core/image':
3317        return 'image';
3318  
3319      case 'core/quote':
3320      case 'core/pullquote':
3321        return 'quote';
3322  
3323      case 'core/gallery':
3324        return 'gallery';
3325  
3326      case 'core/video':
3327        return 'video';
3328  
3329      case 'core/audio':
3330        return 'audio';
3331  
3332      default:
3333        return null;
3334    }
3335  }
3336  /**
3337   * Returns a set of blocks which are to be used in consideration of the post's
3338   * generated save content.
3339   *
3340   * @deprecated since Gutenberg 6.2.0.
3341   *
3342   * @param {Object} state Editor state.
3343   *
3344   * @return {WPBlock[]} Filtered set of blocks for save.
3345   */
3346  
3347  function getBlocksForSerialization(state) {
3348    external_this_wp_deprecated_default()('`core/editor` getBlocksForSerialization selector', {
3349      plugin: 'Gutenberg',
3350      alternative: 'getEditorBlocks',
3351      hint: 'Blocks serialization pre-processing occurs at save time'
3352    });
3353    var blocks = state.editor.present.blocks.value; // WARNING: Any changes to the logic of this function should be verified
3354    // against the implementation of isEditedPostEmpty, which bypasses this
3355    // function for performance' sake, in an assumption of this current logic
3356    // being irrelevant to the optimized condition of emptiness.
3357    // A single unmodified default block is assumed to be equivalent to an
3358    // empty post.
3359  
3360    var isSingleUnmodifiedDefaultBlock = blocks.length === 1 && Object(external_this_wp_blocks_["isUnmodifiedDefaultBlock"])(blocks[0]);
3361  
3362    if (isSingleUnmodifiedDefaultBlock) {
3363      return [];
3364    }
3365  
3366    return blocks;
3367  }
3368  /**
3369   * Returns the content of the post being edited.
3370   *
3371   * @param {Object} state Global application state.
3372   *
3373   * @return {string} Post content.
3374   */
3375  
3376  var getEditedPostContent = Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
3377    return function (state) {
3378      var postId = selectors_getCurrentPostId(state);
3379      var postType = selectors_getCurrentPostType(state);
3380      var record = select('core').getEditedEntityRecord('postType', postType, postId);
3381  
3382      if (record) {
3383        if (typeof record.content === 'function') {
3384          return record.content(record);
3385        } else if (record.blocks) {
3386          return serialize_blocks(record.blocks);
3387        } else if (record.content) {
3388          return record.content;
3389        }
3390      }
3391  
3392      return '';
3393    };
3394  });
3395  /**
3396   * Returns state object prior to a specified optimist transaction ID, or `null`
3397   * if the transaction corresponding to the given ID cannot be found.
3398   *
3399   * @param {Object} state         Current global application state.
3400   * @param {Object} transactionId Optimist transaction ID.
3401   *
3402   * @return {Object} Global application state prior to transaction.
3403   */
3404  
3405  function getStateBeforeOptimisticTransaction(state, transactionId) {
3406    var transaction = Object(external_this_lodash_["find"])(state.optimist, function (entry) {
3407      return entry.beforeState && Object(external_this_lodash_["get"])(entry.action, ['optimist', 'id']) === transactionId;
3408    });
3409    return transaction ? transaction.beforeState : null;
3410  }
3411  /**
3412   * Returns true if the post is being published, or false otherwise.
3413   *
3414   * @param {Object} state Global application state.
3415   *
3416   * @return {boolean} Whether post is being published.
3417   */
3418  
3419  function selectors_isPublishingPost(state) {
3420    if (!selectors_isSavingPost(state)) {
3421      return false;
3422    } // Saving is optimistic, so assume that current post would be marked as
3423    // published if publishing
3424  
3425  
3426    if (!selectors_isCurrentPostPublished(state)) {
3427      return false;
3428    } // Use post update transaction ID to retrieve the state prior to the
3429    // optimistic transaction
3430  
3431  
3432    var stateBeforeRequest = getStateBeforeOptimisticTransaction(state, POST_UPDATE_TRANSACTION_ID); // Consider as publishing when current post prior to request was not
3433    // considered published
3434  
3435    return !!stateBeforeRequest && !selectors_isCurrentPostPublished(null, stateBeforeRequest.currentPost);
3436  }
3437  /**
3438   * Returns whether the permalink is editable or not.
3439   *
3440   * @param {Object} state Editor state.
3441   *
3442   * @return {boolean} Whether or not the permalink is editable.
3443   */
3444  
3445  function isPermalinkEditable(state) {
3446    var permalinkTemplate = selectors_getEditedPostAttribute(state, 'permalink_template');
3447    return PERMALINK_POSTNAME_REGEX.test(permalinkTemplate);
3448  }
3449  /**
3450   * Returns the permalink for the post.
3451   *
3452   * @param {Object} state Editor state.
3453   *
3454   * @return {?string} The permalink, or null if the post is not viewable.
3455   */
3456  
3457  function getPermalink(state) {
3458    var permalinkParts = getPermalinkParts(state);
3459  
3460    if (!permalinkParts) {
3461      return null;
3462    }
3463  
3464    var prefix = permalinkParts.prefix,
3465        postName = permalinkParts.postName,
3466        suffix = permalinkParts.suffix;
3467  
3468    if (isPermalinkEditable(state)) {
3469      return prefix + postName + suffix;
3470    }
3471  
3472    return prefix;
3473  }
3474  /**
3475   * Returns the slug for the post being edited, preferring a manually edited
3476   * value if one exists, then a sanitized version of the current post title, and
3477   * finally the post ID.
3478   *
3479   * @param {Object} state Editor state.
3480   *
3481   * @return {string} The current slug to be displayed in the editor
3482   */
3483  
3484  function getEditedPostSlug(state) {
3485    return selectors_getEditedPostAttribute(state, 'slug') || cleanForSlug(selectors_getEditedPostAttribute(state, 'title')) || selectors_getCurrentPostId(state);
3486  }
3487  /**
3488   * Returns the permalink for a post, split into it's three parts: the prefix,
3489   * the postName, and the suffix.
3490   *
3491   * @param {Object} state Editor state.
3492   *
3493   * @return {Object} An object containing the prefix, postName, and suffix for
3494   *                  the permalink, or null if the post is not viewable.
3495   */
3496  
3497  function getPermalinkParts(state) {
3498    var permalinkTemplate = selectors_getEditedPostAttribute(state, 'permalink_template');
3499  
3500    if (!permalinkTemplate) {
3501      return null;
3502    }
3503  
3504    var postName = selectors_getEditedPostAttribute(state, 'slug') || selectors_getEditedPostAttribute(state, 'generated_slug');
3505  
3506    var _permalinkTemplate$sp = permalinkTemplate.split(PERMALINK_POSTNAME_REGEX),
3507        _permalinkTemplate$sp2 = Object(slicedToArray["a" /* default */])(_permalinkTemplate$sp, 2),
3508        prefix = _permalinkTemplate$sp2[0],
3509        suffix = _permalinkTemplate$sp2[1];
3510  
3511    return {
3512      prefix: prefix,
3513      postName: postName,
3514      suffix: suffix
3515    };
3516  }
3517  /**
3518   * Returns true if an optimistic transaction is pending commit, for which the
3519   * before state satisfies the given predicate function.
3520   *
3521   * @param {Object}   state     Editor state.
3522   * @param {Function} predicate Function given state, returning true if match.
3523   *
3524   * @return {boolean} Whether predicate matches for some history.
3525   */
3526  
3527  function inSomeHistory(state, predicate) {
3528    var optimist = state.optimist; // In recursion, optimist state won't exist. Assume exhausted options.
3529  
3530    if (!optimist) {
3531      return false;
3532    }
3533  
3534    return optimist.some(function (_ref) {
3535      var beforeState = _ref.beforeState;
3536      return beforeState && predicate(beforeState);
3537    });
3538  }
3539  /**
3540   * Returns whether the post is locked.
3541   *
3542   * @param {Object} state Global application state.
3543   *
3544   * @return {boolean} Is locked.
3545   */
3546  
3547  function isPostLocked(state) {
3548    return state.postLock.isLocked;
3549  }
3550  /**
3551   * Returns whether post saving is locked.
3552   *
3553   * @param {Object} state Global application state.
3554   *
3555   * @return {boolean} Is locked.
3556   */
3557  
3558  function selectors_isPostSavingLocked(state) {
3559    return Object.keys(state.postSavingLock).length > 0;
3560  }
3561  /**
3562   * Returns whether post autosaving is locked.
3563   *
3564   * @param {Object} state Global application state.
3565   *
3566   * @return {boolean} Is locked.
3567   */
3568  
3569  function isPostAutosavingLocked(state) {
3570    return Object.keys(state.postAutosavingLock).length > 0;
3571  }
3572  /**
3573   * Returns whether the edition of the post has been taken over.
3574   *
3575   * @param {Object} state Global application state.
3576   *
3577   * @return {boolean} Is post lock takeover.
3578   */
3579  
3580  function isPostLockTakeover(state) {
3581    return state.postLock.isTakeover;
3582  }
3583  /**
3584   * Returns details about the post lock user.
3585   *
3586   * @param {Object} state Global application state.
3587   *
3588   * @return {Object} A user object.
3589   */
3590  
3591  function getPostLockUser(state) {
3592    return state.postLock.user;
3593  }
3594  /**
3595   * Returns the active post lock.
3596   *
3597   * @param {Object} state Global application state.
3598   *
3599   * @return {Object} The lock object.
3600   */
3601  
3602  function getActivePostLock(state) {
3603    return state.postLock.activePostLock;
3604  }
3605  /**
3606   * Returns whether or not the user has the unfiltered_html capability.
3607   *
3608   * @param {Object} state Editor state.
3609   *
3610   * @return {boolean} Whether the user can or can't post unfiltered HTML.
3611   */
3612  
3613  function selectors_canUserUseUnfilteredHTML(state) {
3614    return Object(external_this_lodash_["has"])(selectors_getCurrentPost(state), ['_links', 'wp:action-unfiltered-html']);
3615  }
3616  /**
3617   * Returns whether the pre-publish panel should be shown
3618   * or skipped when the user clicks the "publish" button.
3619   *
3620   * @param {Object} state Global application state.
3621   *
3622   * @return {boolean} Whether the pre-publish panel should be shown or not.
3623   */
3624  
3625  function selectors_isPublishSidebarEnabled(state) {
3626    if (state.preferences.hasOwnProperty('isPublishSidebarEnabled')) {
3627      return state.preferences.isPublishSidebarEnabled;
3628    }
3629  
3630    return PREFERENCES_DEFAULTS.isPublishSidebarEnabled;
3631  }
3632  /**
3633   * Return the current block list.
3634   *
3635   * @param {Object} state
3636   * @return {Array} Block list.
3637   */
3638  
3639  function selectors_getEditorBlocks(state) {
3640    return selectors_getEditedPostAttribute(state, 'blocks') || EMPTY_ARRAY;
3641  }
3642  /**
3643   * A block selection object.
3644   *
3645   * @typedef {Object} WPBlockSelection
3646   *
3647   * @property {string} clientId     A block client ID.
3648   * @property {string} attributeKey A block attribute key.
3649   * @property {number} offset       An attribute value offset, based on the rich
3650   *                                 text value. See `wp.richText.create`.
3651   */
3652  
3653  /**
3654   * Returns the current selection start.
3655   *
3656   * @param {Object} state
3657   * @return {WPBlockSelection} The selection start.
3658   */
3659  
3660  function selectors_getEditorSelectionStart(state) {
3661    return selectors_getEditedPostAttribute(state, 'selectionStart');
3662  }
3663  /**
3664   * Returns the current selection end.
3665   *
3666   * @param {Object} state
3667   * @return {WPBlockSelection} The selection end.
3668   */
3669  
3670  function selectors_getEditorSelectionEnd(state) {
3671    return selectors_getEditedPostAttribute(state, 'selectionEnd');
3672  }
3673  /**
3674   * Is the editor ready
3675   *
3676   * @param {Object} state
3677   * @return {boolean} is Ready.
3678   */
3679  
3680  function __unstableIsEditorReady(state) {
3681    return state.isReady;
3682  }
3683  /**
3684   * Returns the post editor settings.
3685   *
3686   * @param {Object} state Editor state.
3687   *
3688   * @return {Object} The editor settings object.
3689   */
3690  
3691  function selectors_getEditorSettings(state) {
3692    return state.editorSettings;
3693  }
3694  /*
3695   * Backward compatibility
3696   */
3697  
3698  function getBlockEditorSelector(name) {
3699    return Object(external_this_wp_data_["createRegistrySelector"])(function (select) {
3700      return function (state) {
3701        var _select;
3702  
3703        external_this_wp_deprecated_default()("`wp.data.select( 'core/editor' )." + name + '`', {
3704          alternative: "`wp.data.select( 'core/block-editor' )." + name + '`'
3705        });
3706  
3707        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
3708          args[_key - 1] = arguments[_key];
3709        }
3710  
3711        return (_select = select('core/block-editor'))[name].apply(_select, args);
3712      };
3713    });
3714  }
3715  /**
3716   * @see getBlockName in core/block-editor store.
3717   */
3718  
3719  
3720  var getBlockName = getBlockEditorSelector('getBlockName');
3721  /**
3722   * @see isBlockValid in core/block-editor store.
3723   */
3724  
3725  var isBlockValid = getBlockEditorSelector('isBlockValid');
3726  /**
3727   * @see getBlockAttributes in core/block-editor store.
3728   */
3729  
3730  var getBlockAttributes = getBlockEditorSelector('getBlockAttributes');
3731  /**
3732   * @see getBlock in core/block-editor store.
3733   */
3734  
3735  var getBlock = getBlockEditorSelector('getBlock');
3736  /**
3737   * @see getBlocks in core/block-editor store.
3738   */
3739  
3740  var selectors_getBlocks = getBlockEditorSelector('getBlocks');
3741  /**
3742   * @see __unstableGetBlockWithoutInnerBlocks in core/block-editor store.
3743   */
3744  
3745  var __unstableGetBlockWithoutInnerBlocks = getBlockEditorSelector('__unstableGetBlockWithoutInnerBlocks');
3746  /**
3747   * @see getClientIdsOfDescendants in core/block-editor store.
3748   */
3749  
3750  var getClientIdsOfDescendants = getBlockEditorSelector('getClientIdsOfDescendants');
3751  /**
3752   * @see getClientIdsWithDescendants in core/block-editor store.
3753   */
3754  
3755  var getClientIdsWithDescendants = getBlockEditorSelector('getClientIdsWithDescendants');
3756  /**
3757   * @see getGlobalBlockCount in core/block-editor store.
3758   */
3759  
3760  var getGlobalBlockCount = getBlockEditorSelector('getGlobalBlockCount');
3761  /**
3762   * @see getBlocksByClientId in core/block-editor store.
3763   */
3764  
3765  var getBlocksByClientId = getBlockEditorSelector('getBlocksByClientId');
3766  /**
3767   * @see getBlockCount in core/block-editor store.
3768   */
3769  
3770  var getBlockCount = getBlockEditorSelector('getBlockCount');
3771  /**
3772   * @see getBlockSelectionStart in core/block-editor store.
3773   */
3774  
3775  var getBlockSelectionStart = getBlockEditorSelector('getBlockSelectionStart');
3776  /**
3777   * @see getBlockSelectionEnd in core/block-editor store.
3778   */
3779  
3780  var getBlockSelectionEnd = getBlockEditorSelector('getBlockSelectionEnd');
3781  /**
3782   * @see getSelectedBlockCount in core/block-editor store.
3783   */
3784  
3785  var getSelectedBlockCount = getBlockEditorSelector('getSelectedBlockCount');
3786  /**
3787   * @see hasSelectedBlock in core/block-editor store.
3788   */
3789  
3790  var hasSelectedBlock = getBlockEditorSelector('hasSelectedBlock');
3791  /**
3792   * @see getSelectedBlockClientId in core/block-editor store.
3793   */
3794  
3795  var getSelectedBlockClientId = getBlockEditorSelector('getSelectedBlockClientId');
3796  /**
3797   * @see getSelectedBlock in core/block-editor store.
3798   */
3799  
3800  var getSelectedBlock = getBlockEditorSelector('getSelectedBlock');
3801  /**
3802   * @see getBlockRootClientId in core/block-editor store.
3803   */
3804  
3805  var getBlockRootClientId = getBlockEditorSelector('getBlockRootClientId');
3806  /**
3807   * @see getBlockHierarchyRootClientId in core/block-editor store.
3808   */
3809  
3810  var getBlockHierarchyRootClientId = getBlockEditorSelector('getBlockHierarchyRootClientId');
3811  /**
3812   * @see getAdjacentBlockClientId in core/block-editor store.
3813   */
3814  
3815  var getAdjacentBlockClientId = getBlockEditorSelector('getAdjacentBlockClientId');
3816  /**
3817   * @see getPreviousBlockClientId in core/block-editor store.
3818   */
3819  
3820  var getPreviousBlockClientId = getBlockEditorSelector('getPreviousBlockClientId');
3821  /**
3822   * @see getNextBlockClientId in core/block-editor store.
3823   */
3824  
3825  var getNextBlockClientId = getBlockEditorSelector('getNextBlockClientId');
3826  /**
3827   * @see getSelectedBlocksInitialCaretPosition in core/block-editor store.
3828   */
3829  
3830  var getSelectedBlocksInitialCaretPosition = getBlockEditorSelector('getSelectedBlocksInitialCaretPosition');
3831  /**
3832   * @see getMultiSelectedBlockClientIds in core/block-editor store.
3833   */
3834  
3835  var getMultiSelectedBlockClientIds = getBlockEditorSelector('getMultiSelectedBlockClientIds');
3836  /**
3837   * @see getMultiSelectedBlocks in core/block-editor store.
3838   */
3839  
3840  var getMultiSelectedBlocks = getBlockEditorSelector('getMultiSelectedBlocks');
3841  /**
3842   * @see getFirstMultiSelectedBlockClientId in core/block-editor store.
3843   */
3844  
3845  var getFirstMultiSelectedBlockClientId = getBlockEditorSelector('getFirstMultiSelectedBlockClientId');
3846  /**
3847   * @see getLastMultiSelectedBlockClientId in core/block-editor store.
3848   */
3849  
3850  var getLastMultiSelectedBlockClientId = getBlockEditorSelector('getLastMultiSelectedBlockClientId');
3851  /**
3852   * @see isFirstMultiSelectedBlock in core/block-editor store.
3853   */
3854  
3855  var isFirstMultiSelectedBlock = getBlockEditorSelector('isFirstMultiSelectedBlock');
3856  /**
3857   * @see isBlockMultiSelected in core/block-editor store.
3858   */
3859  
3860  var isBlockMultiSelected = getBlockEditorSelector('isBlockMultiSelected');
3861  /**
3862   * @see isAncestorMultiSelected in core/block-editor store.
3863   */
3864  
3865  var isAncestorMultiSelected = getBlockEditorSelector('isAncestorMultiSelected');
3866  /**
3867   * @see getMultiSelectedBlocksStartClientId in core/block-editor store.
3868   */
3869  
3870  var getMultiSelectedBlocksStartClientId = getBlockEditorSelector('getMultiSelectedBlocksStartClientId');
3871  /**
3872   * @see getMultiSelectedBlocksEndClientId in core/block-editor store.
3873   */
3874  
3875  var getMultiSelectedBlocksEndClientId = getBlockEditorSelector('getMultiSelectedBlocksEndClientId');
3876  /**
3877   * @see getBlockOrder in core/block-editor store.
3878   */
3879  
3880  var getBlockOrder = getBlockEditorSelector('getBlockOrder');
3881  /**
3882   * @see getBlockIndex in core/block-editor store.
3883   */
3884  
3885  var getBlockIndex = getBlockEditorSelector('getBlockIndex');
3886  /**
3887   * @see isBlockSelected in core/block-editor store.
3888   */
3889  
3890  var isBlockSelected = getBlockEditorSelector('isBlockSelected');
3891  /**
3892   * @see hasSelectedInnerBlock in core/block-editor store.
3893   */
3894  
3895  var hasSelectedInnerBlock = getBlockEditorSelector('hasSelectedInnerBlock');
3896  /**
3897   * @see isBlockWithinSelection in core/block-editor store.
3898   */
3899  
3900  var isBlockWithinSelection = getBlockEditorSelector('isBlockWithinSelection');
3901  /**
3902   * @see hasMultiSelection in core/block-editor store.
3903   */
3904  
3905  var hasMultiSelection = getBlockEditorSelector('hasMultiSelection');
3906  /**
3907   * @see isMultiSelecting in core/block-editor store.
3908   */
3909  
3910  var isMultiSelecting = getBlockEditorSelector('isMultiSelecting');
3911  /**
3912   * @see isSelectionEnabled in core/block-editor store.
3913   */
3914  
3915  var isSelectionEnabled = getBlockEditorSelector('isSelectionEnabled');
3916  /**
3917   * @see getBlockMode in core/block-editor store.
3918   */
3919  
3920  var getBlockMode = getBlockEditorSelector('getBlockMode');
3921  /**
3922   * @see isTyping in core/block-editor store.
3923   */
3924  
3925  var isTyping = getBlockEditorSelector('isTyping');
3926  /**
3927   * @see isCaretWithinFormattedText in core/block-editor store.
3928   */
3929  
3930  var isCaretWithinFormattedText = getBlockEditorSelector('isCaretWithinFormattedText');
3931  /**
3932   * @see getBlockInsertionPoint in core/block-editor store.
3933   */
3934  
3935  var getBlockInsertionPoint = getBlockEditorSelector('getBlockInsertionPoint');
3936  /**
3937   * @see isBlockInsertionPointVisible in core/block-editor store.
3938   */
3939  
3940  var isBlockInsertionPointVisible = getBlockEditorSelector('isBlockInsertionPointVisible');
3941  /**
3942   * @see isValidTemplate in core/block-editor store.
3943   */
3944  
3945  var isValidTemplate = getBlockEditorSelector('isValidTemplate');
3946  /**
3947   * @see getTemplate in core/block-editor store.
3948   */
3949  
3950  var getTemplate = getBlockEditorSelector('getTemplate');
3951  /**
3952   * @see getTemplateLock in core/block-editor store.
3953   */
3954  
3955  var getTemplateLock = getBlockEditorSelector('getTemplateLock');
3956  /**
3957   * @see canInsertBlockType in core/block-editor store.
3958   */
3959  
3960  var canInsertBlockType = getBlockEditorSelector('canInsertBlockType');
3961  /**
3962   * @see getInserterItems in core/block-editor store.
3963   */
3964  
3965  var getInserterItems = getBlockEditorSelector('getInserterItems');
3966  /**
3967   * @see hasInserterItems in core/block-editor store.
3968   */
3969  
3970  var hasInserterItems = getBlockEditorSelector('hasInserterItems');
3971  /**
3972   * @see getBlockListSettings in core/block-editor store.
3973   */
3974  
3975  var getBlockListSettings = getBlockEditorSelector('getBlockListSettings');
3976  
3977  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
3978  var objectWithoutProperties = __webpack_require__(14);
3979  
3980  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
3981  var toConsumableArray = __webpack_require__(17);
3982  
3983  // EXTERNAL MODULE: external {"this":"regeneratorRuntime"}
3984  var external_this_regeneratorRuntime_ = __webpack_require__(20);
3985  var external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);
3986  
3987  // EXTERNAL MODULE: external {"this":["wp","i18n"]}
3988  var external_this_wp_i18n_ = __webpack_require__(1);
3989  
3990  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/utils/notice-builder.js
3991  /**
3992   * WordPress dependencies
3993   */
3994  
3995  /**
3996   * Internal dependencies
3997   */
3998  
3999  
4000  /**
4001   * External dependencies
4002   */
4003  
4004  
4005  /**
4006   * Builds the arguments for a success notification dispatch.
4007   *
4008   * @param {Object} data Incoming data to build the arguments from.
4009   *
4010   * @return {Array} Arguments for dispatch. An empty array signals no
4011   *                 notification should be sent.
4012   */
4013  
4014  function getNotificationArgumentsForSaveSuccess(data) {
4015    var previousPost = data.previousPost,
4016        post = data.post,
4017        postType = data.postType; // Autosaves are neither shown a notice nor redirected.
4018  
4019    if (Object(external_this_lodash_["get"])(data.options, ['isAutosave'])) {
4020      return [];
4021    }
4022  
4023    var publishStatus = ['publish', 'private', 'future'];
4024    var isPublished = Object(external_this_lodash_["includes"])(publishStatus, previousPost.status);
4025    var willPublish = Object(external_this_lodash_["includes"])(publishStatus, post.status);
4026    var noticeMessage;
4027    var shouldShowLink = Object(external_this_lodash_["get"])(postType, ['viewable'], false);
4028  
4029    if (!isPublished && !willPublish) {
4030      // If saving a non-published post, don't show notice.
4031      noticeMessage = null;
4032    } else if (isPublished && !willPublish) {
4033      // If undoing publish status, show specific notice
4034      noticeMessage = postType.labels.item_reverted_to_draft;
4035      shouldShowLink = false;
4036    } else if (!isPublished && willPublish) {
4037      // If publishing or scheduling a post, show the corresponding
4038      // publish message
4039      noticeMessage = {
4040        publish: postType.labels.item_published,
4041        private: postType.labels.item_published_privately,
4042        future: postType.labels.item_scheduled
4043      }[post.status];
4044    } else {
4045      // Generic fallback notice
4046      noticeMessage = postType.labels.item_updated;
4047    }
4048  
4049    if (noticeMessage) {
4050      var actions = [];
4051  
4052      if (shouldShowLink) {
4053        actions.push({
4054          label: postType.labels.view_item,
4055          url: post.link
4056        });
4057      }
4058  
4059      return [noticeMessage, {
4060        id: SAVE_POST_NOTICE_ID,
4061        type: 'snackbar',
4062        actions: actions
4063      }];
4064    }
4065  
4066    return [];
4067  }
4068  /**
4069   * Builds the fail notification arguments for dispatch.
4070   *
4071   * @param {Object} data Incoming data to build the arguments with.
4072   *
4073   * @return {Array} Arguments for dispatch. An empty array signals no
4074   *                 notification should be sent.
4075   */
4076  
4077  function getNotificationArgumentsForSaveFail(data) {
4078    var post = data.post,
4079        edits = data.edits,
4080        error = data.error;
4081  
4082    if (error && 'rest_autosave_no_changes' === error.code) {
4083      // Autosave requested a new autosave, but there were no changes. This shouldn't
4084      // result in an error notice for the user.
4085      return [];
4086    }
4087  
4088    var publishStatus = ['publish', 'private', 'future'];
4089    var isPublished = publishStatus.indexOf(post.status) !== -1; // If the post was being published, we show the corresponding publish error message
4090    // Unless we publish an "updating failed" message
4091  
4092    var messages = {
4093      publish: Object(external_this_wp_i18n_["__"])('Publishing failed.'),
4094      private: Object(external_this_wp_i18n_["__"])('Publishing failed.'),
4095      future: Object(external_this_wp_i18n_["__"])('Scheduling failed.')
4096    };
4097    var noticeMessage = !isPublished && publishStatus.indexOf(edits.status) !== -1 ? messages[edits.status] : Object(external_this_wp_i18n_["__"])('Updating failed.'); // Check if message string contains HTML. Notice text is currently only
4098    // supported as plaintext, and stripping the tags may muddle the meaning.
4099  
4100    if (error.message && !/<\/?[^>]*>/.test(error.message)) {
4101      noticeMessage = [noticeMessage, error.message].join(' ');
4102    }
4103  
4104    return [noticeMessage, {
4105      id: SAVE_POST_NOTICE_ID
4106    }];
4107  }
4108  /**
4109   * Builds the trash fail notification arguments for dispatch.
4110   *
4111   * @param {Object} data
4112   *
4113   * @return {Array} Arguments for dispatch.
4114   */
4115  
4116  function getNotificationArgumentsForTrashFail(data) {
4117    return [data.error.message && data.error.code !== 'unknown_error' ? data.error.message : Object(external_this_wp_i18n_["__"])('Trashing failed'), {
4118      id: TRASH_POST_NOTICE_ID
4119    }];
4120  }
4121  
4122  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/actions.js
4123  
4124  
4125  
4126  
4127  
4128  function actions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
4129  
4130  function actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { actions_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4131  
4132  var _marked = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(setupEditor),
4133      _marked2 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resetAutosave),
4134      _marked3 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_editPost),
4135      _marked4 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_savePost),
4136      _marked5 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(refreshPost),
4137      _marked6 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(trashPost),
4138      _marked7 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_autosave),
4139      _marked8 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_redo),
4140      _marked9 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_undo),
4141      _marked10 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_resetEditorBlocks);
4142  
4143  /**
4144   * External dependencies
4145   */
4146  
4147  /**
4148   * WordPress dependencies
4149   */
4150  
4151  
4152  
4153  
4154  /**
4155   * Internal dependencies
4156   */
4157  
4158  
4159  
4160  
4161  /**
4162   * Returns an action generator used in signalling that editor has initialized with
4163   * the specified post object and editor settings.
4164   *
4165   * @param {Object} post      Post object.
4166   * @param {Object} edits     Initial edited attributes object.
4167   * @param {Array?} template  Block Template.
4168   */
4169  
4170  function setupEditor(post, edits, template) {
4171    var content, blocks, isNewPost;
4172    return external_this_regeneratorRuntime_default.a.wrap(function setupEditor$(_context) {
4173      while (1) {
4174        switch (_context.prev = _context.next) {
4175          case 0:
4176            // In order to ensure maximum of a single parse during setup, edits are
4177            // included as part of editor setup action. Assume edited content as
4178            // canonical if provided, falling back to post.
4179            if (Object(external_this_lodash_["has"])(edits, ['content'])) {
4180              content = edits.content;
4181            } else {
4182              content = post.content.raw;
4183            }
4184  
4185            blocks = Object(external_this_wp_blocks_["parse"])(content); // Apply a template for new posts only, if exists.
4186  
4187            isNewPost = post.status === 'auto-draft';
4188  
4189            if (isNewPost && template) {
4190              blocks = Object(external_this_wp_blocks_["synchronizeBlocksWithTemplate"])(blocks, template);
4191            }
4192  
4193            _context.next = 6;
4194            return resetPost(post);
4195  
4196          case 6:
4197            _context.next = 8;
4198            return {
4199              type: 'SETUP_EDITOR',
4200              post: post,
4201              edits: edits,
4202              template: template
4203            };
4204  
4205          case 8:
4206            _context.next = 10;
4207            return actions_resetEditorBlocks(blocks, {
4208              __unstableShouldCreateUndoLevel: false
4209            });
4210  
4211          case 10:
4212            _context.next = 12;
4213            return setupEditorState(post);
4214  
4215          case 12:
4216            if (!(edits && Object.keys(edits).some(function (key) {
4217              return edits[key] !== (Object(external_this_lodash_["has"])(post, [key, 'raw']) ? post[key].raw : post[key]);
4218            }))) {
4219              _context.next = 15;
4220              break;
4221            }
4222  
4223            _context.next = 15;
4224            return actions_editPost(edits);
4225  
4226          case 15:
4227          case "end":
4228            return _context.stop();
4229        }
4230      }
4231    }, _marked);
4232  }
4233  /**
4234   * Returns an action object signalling that the editor is being destroyed and
4235   * that any necessary state or side-effect cleanup should occur.
4236   *
4237   * @return {Object} Action object.
4238   */
4239  
4240  function __experimentalTearDownEditor() {
4241    return {
4242      type: 'TEAR_DOWN_EDITOR'
4243    };
4244  }
4245  /**
4246   * Returns an action object used in signalling that the latest version of the
4247   * post has been received, either by initialization or save.
4248   *
4249   * @param {Object} post Post object.
4250   *
4251   * @return {Object} Action object.
4252   */
4253  
4254  function resetPost(post) {
4255    return {
4256      type: 'RESET_POST',
4257      post: post
4258    };
4259  }
4260  /**
4261   * Returns an action object used in signalling that the latest autosave of the
4262   * post has been received, by initialization or autosave.
4263   *
4264   * @deprecated since 5.6. Callers should use the `receiveAutosaves( postId, autosave )`
4265   *                selector from the '@wordpress/core-data' package.
4266   *
4267   * @param {Object} newAutosave Autosave post object.
4268   *
4269   * @return {Object} Action object.
4270   */
4271  
4272  function resetAutosave(newAutosave) {
4273    var postId;
4274    return external_this_regeneratorRuntime_default.a.wrap(function resetAutosave$(_context2) {
4275      while (1) {
4276        switch (_context2.prev = _context2.next) {
4277          case 0:
4278            external_this_wp_deprecated_default()('resetAutosave action (`core/editor` store)', {
4279              alternative: 'receiveAutosaves action (`core` store)',
4280              plugin: 'Gutenberg'
4281            });
4282            _context2.next = 3;
4283            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPostId');
4284  
4285          case 3:
4286            postId = _context2.sent;
4287            _context2.next = 6;
4288            return Object(external_this_wp_dataControls_["dispatch"])('core', 'receiveAutosaves', postId, newAutosave);
4289  
4290          case 6:
4291            return _context2.abrupt("return", {
4292              type: '__INERT__'
4293            });
4294  
4295          case 7:
4296          case "end":
4297            return _context2.stop();
4298        }
4299      }
4300    }, _marked2);
4301  }
4302  /**
4303   * Action for dispatching that a post update request has started.
4304   *
4305   * @param {Object} options
4306   *
4307   * @return {Object} An action object
4308   */
4309  
4310  function __experimentalRequestPostUpdateStart() {
4311    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4312    return {
4313      type: 'REQUEST_POST_UPDATE_START',
4314      options: options
4315    };
4316  }
4317  /**
4318   * Action for dispatching that a post update request has finished.
4319   *
4320   * @param {Object} options
4321   *
4322   * @return {Object} An action object
4323   */
4324  
4325  function __experimentalRequestPostUpdateFinish() {
4326    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4327    return {
4328      type: 'REQUEST_POST_UPDATE_FINISH',
4329      options: options
4330    };
4331  }
4332  /**
4333   * Returns an action object used in signalling that a patch of updates for the
4334   * latest version of the post have been received.
4335   *
4336   * @param {Object} edits Updated post fields.
4337   *
4338   * @return {Object} Action object.
4339   */
4340  
4341  function updatePost(edits) {
4342    return {
4343      type: 'UPDATE_POST',
4344      edits: edits
4345    };
4346  }
4347  /**
4348   * Returns an action object used to setup the editor state when first opening
4349   * an editor.
4350   *
4351   * @param {Object} post   Post object.
4352   *
4353   * @return {Object} Action object.
4354   */
4355  
4356  function setupEditorState(post) {
4357    return {
4358      type: 'SETUP_EDITOR_STATE',
4359      post: post
4360    };
4361  }
4362  /**
4363   * Returns an action object used in signalling that attributes of the post have
4364   * been edited.
4365   *
4366   * @param {Object} edits   Post attributes to edit.
4367   * @param {Object} options Options for the edit.
4368   *
4369   * @yield {Object} Action object or control.
4370   */
4371  
4372  function actions_editPost(edits, options) {
4373    var _yield$select, id, type;
4374  
4375    return external_this_regeneratorRuntime_default.a.wrap(function editPost$(_context3) {
4376      while (1) {
4377        switch (_context3.prev = _context3.next) {
4378          case 0:
4379            _context3.next = 2;
4380            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPost');
4381  
4382          case 2:
4383            _yield$select = _context3.sent;
4384            id = _yield$select.id;
4385            type = _yield$select.type;
4386            _context3.next = 7;
4387            return Object(external_this_wp_dataControls_["dispatch"])('core', 'editEntityRecord', 'postType', type, id, edits, options);
4388  
4389          case 7:
4390          case "end":
4391            return _context3.stop();
4392        }
4393      }
4394    }, _marked3);
4395  }
4396  /**
4397   * Returns action object produced by the updatePost creator augmented by
4398   * an optimist option that signals optimistically applying updates.
4399   *
4400   * @param {Object} edits  Updated post fields.
4401   *
4402   * @return {Object} Action object.
4403   */
4404  
4405  function __experimentalOptimisticUpdatePost(edits) {
4406    return actions_objectSpread(actions_objectSpread({}, updatePost(edits)), {}, {
4407      optimist: {
4408        id: POST_UPDATE_TRANSACTION_ID
4409      }
4410    });
4411  }
4412  /**
4413   * Action generator for saving the current post in the editor.
4414   *
4415   * @param {Object} options
4416   */
4417  
4418  function actions_savePost() {
4419    var options,
4420        edits,
4421        previousRecord,
4422        error,
4423        args,
4424        updatedRecord,
4425        _args4,
4426        _args5 = arguments;
4427  
4428    return external_this_regeneratorRuntime_default.a.wrap(function savePost$(_context4) {
4429      while (1) {
4430        switch (_context4.prev = _context4.next) {
4431          case 0:
4432            options = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {};
4433            _context4.next = 3;
4434            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'isEditedPostSaveable');
4435  
4436          case 3:
4437            if (_context4.sent) {
4438              _context4.next = 5;
4439              break;
4440            }
4441  
4442            return _context4.abrupt("return");
4443  
4444          case 5:
4445            _context4.next = 7;
4446            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getEditedPostContent');
4447  
4448          case 7:
4449            _context4.t0 = _context4.sent;
4450            edits = {
4451              content: _context4.t0
4452            };
4453  
4454            if (options.isAutosave) {
4455              _context4.next = 12;
4456              break;
4457            }
4458  
4459            _context4.next = 12;
4460            return Object(external_this_wp_dataControls_["dispatch"])(STORE_KEY, 'editPost', edits, {
4461              undoIgnore: true
4462            });
4463  
4464          case 12:
4465            _context4.next = 14;
4466            return __experimentalRequestPostUpdateStart(options);
4467  
4468          case 14:
4469            _context4.next = 16;
4470            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPost');
4471  
4472          case 16:
4473            previousRecord = _context4.sent;
4474            _context4.t1 = actions_objectSpread;
4475            _context4.t2 = actions_objectSpread;
4476            _context4.t3 = {
4477              id: previousRecord.id
4478            };
4479            _context4.next = 22;
4480            return Object(external_this_wp_dataControls_["select"])('core', 'getEntityRecordNonTransientEdits', 'postType', previousRecord.type, previousRecord.id);
4481  
4482          case 22:
4483            _context4.t4 = _context4.sent;
4484            _context4.t5 = (0, _context4.t2)(_context4.t3, _context4.t4);
4485            _context4.t6 = edits;
4486            edits = (0, _context4.t1)(_context4.t5, _context4.t6);
4487            _context4.next = 28;
4488            return Object(external_this_wp_dataControls_["dispatch"])('core', 'saveEntityRecord', 'postType', previousRecord.type, edits, options);
4489  
4490          case 28:
4491            _context4.next = 30;
4492            return __experimentalRequestPostUpdateFinish(options);
4493  
4494          case 30:
4495            _context4.next = 32;
4496            return Object(external_this_wp_dataControls_["select"])('core', 'getLastEntitySaveError', 'postType', previousRecord.type, previousRecord.id);
4497  
4498          case 32:
4499            error = _context4.sent;
4500  
4501            if (!error) {
4502              _context4.next = 40;
4503              break;
4504            }
4505  
4506            args = getNotificationArgumentsForSaveFail({
4507              post: previousRecord,
4508              edits: edits,
4509              error: error
4510            });
4511  
4512            if (!args.length) {
4513              _context4.next = 38;
4514              break;
4515            }
4516  
4517            _context4.next = 38;
4518            return external_this_wp_dataControls_["dispatch"].apply(void 0, ['core/notices', 'createErrorNotice'].concat(Object(toConsumableArray["a" /* default */])(args)));
4519  
4520          case 38:
4521            _context4.next = 58;
4522            break;
4523  
4524          case 40:
4525            _context4.next = 42;
4526            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPost');
4527  
4528          case 42:
4529            updatedRecord = _context4.sent;
4530            _context4.t7 = getNotificationArgumentsForSaveSuccess;
4531            _context4.t8 = previousRecord;
4532            _context4.t9 = updatedRecord;
4533            _context4.next = 48;
4534            return Object(external_this_wp_dataControls_["select"])('core', 'getPostType', updatedRecord.type);
4535  
4536          case 48:
4537            _context4.t10 = _context4.sent;
4538            _context4.t11 = options;
4539            _context4.t12 = {
4540              previousPost: _context4.t8,
4541              post: _context4.t9,
4542              postType: _context4.t10,
4543              options: _context4.t11
4544            };
4545            _args4 = (0, _context4.t7)(_context4.t12);
4546  
4547            if (!_args4.length) {
4548              _context4.next = 55;
4549              break;
4550            }
4551  
4552            _context4.next = 55;
4553            return external_this_wp_dataControls_["dispatch"].apply(void 0, ['core/notices', 'createSuccessNotice'].concat(Object(toConsumableArray["a" /* default */])(_args4)));
4554  
4555          case 55:
4556            if (options.isAutosave) {
4557              _context4.next = 58;
4558              break;
4559            }
4560  
4561            _context4.next = 58;
4562            return Object(external_this_wp_dataControls_["dispatch"])('core/block-editor', '__unstableMarkLastChangeAsPersistent');
4563  
4564          case 58:
4565          case "end":
4566            return _context4.stop();
4567        }
4568      }
4569    }, _marked4);
4570  }
4571  /**
4572   * Action generator for handling refreshing the current post.
4573   */
4574  
4575  function refreshPost() {
4576    var post, postTypeSlug, postType, newPost;
4577    return external_this_regeneratorRuntime_default.a.wrap(function refreshPost$(_context5) {
4578      while (1) {
4579        switch (_context5.prev = _context5.next) {
4580          case 0:
4581            _context5.next = 2;
4582            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPost');
4583  
4584          case 2:
4585            post = _context5.sent;
4586            _context5.next = 5;
4587            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPostType');
4588  
4589          case 5:
4590            postTypeSlug = _context5.sent;
4591            _context5.next = 8;
4592            return Object(external_this_wp_dataControls_["select"])('core', 'getPostType', postTypeSlug);
4593  
4594          case 8:
4595            postType = _context5.sent;
4596            _context5.next = 11;
4597            return Object(external_this_wp_dataControls_["apiFetch"])({
4598              // Timestamp arg allows caller to bypass browser caching, which is
4599              // expected for this specific function.
4600              path: "/wp/v2/".concat(postType.rest_base, "/").concat(post.id) + "?context=edit&_timestamp=".concat(Date.now())
4601            });
4602  
4603          case 11:
4604            newPost = _context5.sent;
4605            _context5.next = 14;
4606            return Object(external_this_wp_dataControls_["dispatch"])(STORE_KEY, 'resetPost', newPost);
4607  
4608          case 14:
4609          case "end":
4610            return _context5.stop();
4611        }
4612      }
4613    }, _marked5);
4614  }
4615  /**
4616   * Action generator for trashing the current post in the editor.
4617   */
4618  
4619  function trashPost() {
4620    var postTypeSlug, postType, post;
4621    return external_this_regeneratorRuntime_default.a.wrap(function trashPost$(_context6) {
4622      while (1) {
4623        switch (_context6.prev = _context6.next) {
4624          case 0:
4625            _context6.next = 2;
4626            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPostType');
4627  
4628          case 2:
4629            postTypeSlug = _context6.sent;
4630            _context6.next = 5;
4631            return Object(external_this_wp_dataControls_["select"])('core', 'getPostType', postTypeSlug);
4632  
4633          case 5:
4634            postType = _context6.sent;
4635            _context6.next = 8;
4636            return Object(external_this_wp_dataControls_["dispatch"])('core/notices', 'removeNotice', TRASH_POST_NOTICE_ID);
4637  
4638          case 8:
4639            _context6.prev = 8;
4640            _context6.next = 11;
4641            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPost');
4642  
4643          case 11:
4644            post = _context6.sent;
4645            _context6.next = 14;
4646            return Object(external_this_wp_dataControls_["apiFetch"])({
4647              path: "/wp/v2/".concat(postType.rest_base, "/").concat(post.id),
4648              method: 'DELETE'
4649            });
4650  
4651          case 14:
4652            _context6.next = 16;
4653            return Object(external_this_wp_dataControls_["dispatch"])(STORE_KEY, 'savePost');
4654  
4655          case 16:
4656            _context6.next = 22;
4657            break;
4658  
4659          case 18:
4660            _context6.prev = 18;
4661            _context6.t0 = _context6["catch"](8);
4662            _context6.next = 22;
4663            return external_this_wp_dataControls_["dispatch"].apply(void 0, ['core/notices', 'createErrorNotice'].concat(Object(toConsumableArray["a" /* default */])(getNotificationArgumentsForTrashFail({
4664              error: _context6.t0
4665            }))));
4666  
4667          case 22:
4668          case "end":
4669            return _context6.stop();
4670        }
4671      }
4672    }, _marked6, null, [[8, 18]]);
4673  }
4674  /**
4675   * Action generator used in signalling that the post should autosave.  This
4676   * includes server-side autosaving (default) and client-side (a.k.a. local)
4677   * autosaving (e.g. on the Web, the post might be committed to Session
4678   * Storage).
4679   *
4680   * @param {Object?} options Extra flags to identify the autosave.
4681   */
4682  
4683  function actions_autosave() {
4684    var _ref,
4685        _ref$local,
4686        local,
4687        options,
4688        post,
4689        isPostNew,
4690        title,
4691        content,
4692        excerpt,
4693        _args8 = arguments;
4694  
4695    return external_this_regeneratorRuntime_default.a.wrap(function autosave$(_context7) {
4696      while (1) {
4697        switch (_context7.prev = _context7.next) {
4698          case 0:
4699            _ref = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {}, _ref$local = _ref.local, local = _ref$local === void 0 ? false : _ref$local, options = Object(objectWithoutProperties["a" /* default */])(_ref, ["local"]);
4700  
4701            if (!local) {
4702              _context7.next = 21;
4703              break;
4704            }
4705  
4706            _context7.next = 4;
4707            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPost');
4708  
4709          case 4:
4710            post = _context7.sent;
4711            _context7.next = 7;
4712            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'isEditedPostNew');
4713  
4714          case 7:
4715            isPostNew = _context7.sent;
4716            _context7.next = 10;
4717            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getEditedPostAttribute', 'title');
4718  
4719          case 10:
4720            title = _context7.sent;
4721            _context7.next = 13;
4722            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getEditedPostAttribute', 'content');
4723  
4724          case 13:
4725            content = _context7.sent;
4726            _context7.next = 16;
4727            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getEditedPostAttribute', 'excerpt');
4728  
4729          case 16:
4730            excerpt = _context7.sent;
4731            _context7.next = 19;
4732            return {
4733              type: 'LOCAL_AUTOSAVE_SET',
4734              postId: post.id,
4735              isPostNew: isPostNew,
4736              title: title,
4737              content: content,
4738              excerpt: excerpt
4739            };
4740  
4741          case 19:
4742            _context7.next = 23;
4743            break;
4744  
4745          case 21:
4746            _context7.next = 23;
4747            return Object(external_this_wp_dataControls_["dispatch"])(STORE_KEY, 'savePost', actions_objectSpread({
4748              isAutosave: true
4749            }, options));
4750  
4751          case 23:
4752          case "end":
4753            return _context7.stop();
4754        }
4755      }
4756    }, _marked7);
4757  }
4758  /**
4759   * Returns an action object used in signalling that undo history should
4760   * restore last popped state.
4761   *
4762   * @yield {Object} Action object.
4763   */
4764  
4765  function actions_redo() {
4766    return external_this_regeneratorRuntime_default.a.wrap(function redo$(_context8) {
4767      while (1) {
4768        switch (_context8.prev = _context8.next) {
4769          case 0:
4770            _context8.next = 2;
4771            return Object(external_this_wp_dataControls_["dispatch"])('core', 'redo');
4772  
4773          case 2:
4774          case "end":
4775            return _context8.stop();
4776        }
4777      }
4778    }, _marked8);
4779  }
4780  /**
4781   * Returns an action object used in signalling that undo history should pop.
4782   *
4783   * @yield {Object} Action object.
4784   */
4785  
4786  function actions_undo() {
4787    return external_this_regeneratorRuntime_default.a.wrap(function undo$(_context9) {
4788      while (1) {
4789        switch (_context9.prev = _context9.next) {
4790          case 0:
4791            _context9.next = 2;
4792            return Object(external_this_wp_dataControls_["dispatch"])('core', 'undo');
4793  
4794          case 2:
4795          case "end":
4796            return _context9.stop();
4797        }
4798      }
4799    }, _marked9);
4800  }
4801  /**
4802   * Returns an action object used in signalling that undo history record should
4803   * be created.
4804   *
4805   * @return {Object} Action object.
4806   */
4807  
4808  function createUndoLevel() {
4809    return {
4810      type: 'CREATE_UNDO_LEVEL'
4811    };
4812  }
4813  /**
4814   * Returns an action object used to lock the editor.
4815   *
4816   * @param {Object}  lock Details about the post lock status, user, and nonce.
4817   *
4818   * @return {Object} Action object.
4819   */
4820  
4821  function updatePostLock(lock) {
4822    return {
4823      type: 'UPDATE_POST_LOCK',
4824      lock: lock
4825    };
4826  }
4827  /**
4828   * Returns an action object used in signalling that the user has enabled the
4829   * publish sidebar.
4830   *
4831   * @return {Object} Action object
4832   */
4833  
4834  function enablePublishSidebar() {
4835    return {
4836      type: 'ENABLE_PUBLISH_SIDEBAR'
4837    };
4838  }
4839  /**
4840   * Returns an action object used in signalling that the user has disabled the
4841   * publish sidebar.
4842   *
4843   * @return {Object} Action object
4844   */
4845  
4846  function disablePublishSidebar() {
4847    return {
4848      type: 'DISABLE_PUBLISH_SIDEBAR'
4849    };
4850  }
4851  /**
4852   * Returns an action object used to signal that post saving is locked.
4853   *
4854   * @param  {string} lockName The lock name.
4855   *
4856   * @example
4857   * ```
4858   * const { subscribe } = wp.data;
4859   *
4860   * const initialPostStatus = wp.data.select( 'core/editor' ).getEditedPostAttribute( 'status' );
4861   *
4862   * // Only allow publishing posts that are set to a future date.
4863   * if ( 'publish' !== initialPostStatus ) {
4864   *
4865   *     // Track locking.
4866   *     let locked = false;
4867   *
4868   *     // Watch for the publish event.
4869   *     let unssubscribe = subscribe( () => {
4870   *         const currentPostStatus = wp.data.select( 'core/editor' ).getEditedPostAttribute( 'status' );
4871   *         if ( 'publish' !== currentPostStatus ) {
4872   *
4873   *             // Compare the post date to the current date, lock the post if the date isn't in the future.
4874   *             const postDate = new Date( wp.data.select( 'core/editor' ).getEditedPostAttribute( 'date' ) );
4875   *             const currentDate = new Date();
4876   *             if ( postDate.getTime() <= currentDate.getTime() ) {
4877   *                 if ( ! locked ) {
4878   *                     locked = true;
4879   *                     wp.data.dispatch( 'core/editor' ).lockPostSaving( 'futurelock' );
4880   *                 }
4881   *             } else {
4882   *                 if ( locked ) {
4883   *                     locked = false;
4884   *                     wp.data.dispatch( 'core/editor' ).unlockPostSaving( 'futurelock' );
4885   *                 }
4886   *             }
4887   *         }
4888   *     } );
4889   * }
4890   * ```
4891   *
4892   * @return {Object} Action object
4893   */
4894  
4895  function lockPostSaving(lockName) {
4896    return {
4897      type: 'LOCK_POST_SAVING',
4898      lockName: lockName
4899    };
4900  }
4901  /**
4902   * Returns an action object used to signal that post saving is unlocked.
4903   *
4904   * @param  {string} lockName The lock name.
4905   *
4906   * @example
4907   * ```
4908   * // Unlock post saving with the lock key `mylock`:
4909   * wp.data.dispatch( 'core/editor' ).unlockPostSaving( 'mylock' );
4910   * ```
4911   *
4912   * @return {Object} Action object
4913   */
4914  
4915  function unlockPostSaving(lockName) {
4916    return {
4917      type: 'UNLOCK_POST_SAVING',
4918      lockName: lockName
4919    };
4920  }
4921  /**
4922   * Returns an action object used to signal that post autosaving is locked.
4923   *
4924   * @param  {string} lockName The lock name.
4925   *
4926   * @example
4927   * ```
4928   * // Lock post autosaving with the lock key `mylock`:
4929   * wp.data.dispatch( 'core/editor' ).lockPostAutosaving( 'mylock' );
4930   * ```
4931   *
4932   * @return {Object} Action object
4933   */
4934  
4935  function lockPostAutosaving(lockName) {
4936    return {
4937      type: 'LOCK_POST_AUTOSAVING',
4938      lockName: lockName
4939    };
4940  }
4941  /**
4942   * Returns an action object used to signal that post autosaving is unlocked.
4943   *
4944   * @param  {string} lockName The lock name.
4945   *
4946   * @example
4947   * ```
4948   * // Unlock post saving with the lock key `mylock`:
4949   * wp.data.dispatch( 'core/editor' ).unlockPostAutosaving( 'mylock' );
4950   * ```
4951   *
4952   * @return {Object} Action object
4953   */
4954  
4955  function unlockPostAutosaving(lockName) {
4956    return {
4957      type: 'UNLOCK_POST_AUTOSAVING',
4958      lockName: lockName
4959    };
4960  }
4961  /**
4962   * Returns an action object used to signal that the blocks have been updated.
4963   *
4964   * @param {Array}   blocks  Block Array.
4965   * @param {?Object} options Optional options.
4966   *
4967   * @yield {Object} Action object
4968   */
4969  
4970  function actions_resetEditorBlocks(blocks) {
4971    var options,
4972        __unstableShouldCreateUndoLevel,
4973        selectionStart,
4974        selectionEnd,
4975        edits,
4976        _yield$select2,
4977        id,
4978        type,
4979        noChange,
4980        _args11 = arguments;
4981  
4982    return external_this_regeneratorRuntime_default.a.wrap(function resetEditorBlocks$(_context10) {
4983      while (1) {
4984        switch (_context10.prev = _context10.next) {
4985          case 0:
4986            options = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : {};
4987            __unstableShouldCreateUndoLevel = options.__unstableShouldCreateUndoLevel, selectionStart = options.selectionStart, selectionEnd = options.selectionEnd;
4988            edits = {
4989              blocks: blocks,
4990              selectionStart: selectionStart,
4991              selectionEnd: selectionEnd
4992            };
4993  
4994            if (!(__unstableShouldCreateUndoLevel !== false)) {
4995              _context10.next = 19;
4996              break;
4997            }
4998  
4999            _context10.next = 6;
5000            return Object(external_this_wp_dataControls_["select"])(STORE_KEY, 'getCurrentPost');
5001  
5002          case 6:
5003            _yield$select2 = _context10.sent;
5004            id = _yield$select2.id;
5005            type = _yield$select2.type;
5006            _context10.next = 11;
5007            return Object(external_this_wp_dataControls_["syncSelect"])('core', 'getEditedEntityRecord', 'postType', type, id);
5008  
5009          case 11:
5010            _context10.t0 = _context10.sent.blocks;
5011            _context10.t1 = edits.blocks;
5012            noChange = _context10.t0 === _context10.t1;
5013  
5014            if (!noChange) {
5015              _context10.next = 18;
5016              break;
5017            }
5018  
5019            _context10.next = 17;
5020            return Object(external_this_wp_dataControls_["dispatch"])('core', '__unstableCreateUndoLevel', 'postType', type, id);
5021  
5022          case 17:
5023            return _context10.abrupt("return", _context10.sent);
5024  
5025          case 18:
5026            // We create a new function here on every persistent edit
5027            // to make sure the edit makes the post dirty and creates
5028            // a new undo level.
5029            edits.content = function (_ref2) {
5030              var _ref2$blocks = _ref2.blocks,
5031                  blocksForSerialization = _ref2$blocks === void 0 ? [] : _ref2$blocks;
5032              return serialize_blocks(blocksForSerialization);
5033            };
5034  
5035          case 19:
5036            return _context10.delegateYield(actions_editPost(edits), "t2", 20);
5037  
5038          case 20:
5039          case "end":
5040            return _context10.stop();
5041        }
5042      }
5043    }, _marked10);
5044  }
5045  /*
5046   * Returns an action object used in signalling that the post editor settings have been updated.
5047   *
5048   * @param {Object} settings Updated settings
5049   *
5050   * @return {Object} Action object
5051   */
5052  
5053  function updateEditorSettings(settings) {
5054    return {
5055      type: 'UPDATE_EDITOR_SETTINGS',
5056      settings: settings
5057    };
5058  }
5059  /**
5060   * Backward compatibility
5061   */
5062  
5063  var actions_getBlockEditorAction = function getBlockEditorAction(name) {
5064    return /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee() {
5065      var _len,
5066          args,
5067          _key,
5068          _args12 = arguments;
5069  
5070      return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context11) {
5071        while (1) {
5072          switch (_context11.prev = _context11.next) {
5073            case 0:
5074              external_this_wp_deprecated_default()("`wp.data.dispatch( 'core/editor' )." + name + '`', {
5075                alternative: "`wp.data.dispatch( 'core/block-editor' )." + name + '`'
5076              });
5077  
5078              for (_len = _args12.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
5079                args[_key] = _args12[_key];
5080              }
5081  
5082              _context11.next = 4;
5083              return external_this_wp_dataControls_["dispatch"].apply(void 0, ['core/block-editor', name].concat(args));
5084  
5085            case 4:
5086            case "end":
5087              return _context11.stop();
5088          }
5089        }
5090      }, _callee);
5091    });
5092  };
5093  /**
5094   * @see resetBlocks in core/block-editor store.
5095   */
5096  
5097  
5098  var resetBlocks = actions_getBlockEditorAction('resetBlocks');
5099  /**
5100   * @see receiveBlocks in core/block-editor store.
5101   */
5102  
5103  var receiveBlocks = actions_getBlockEditorAction('receiveBlocks');
5104  /**
5105   * @see updateBlock in core/block-editor store.
5106   */
5107  
5108  var updateBlock = actions_getBlockEditorAction('updateBlock');
5109  /**
5110   * @see updateBlockAttributes in core/block-editor store.
5111   */
5112  
5113  var updateBlockAttributes = actions_getBlockEditorAction('updateBlockAttributes');
5114  /**
5115   * @see selectBlock in core/block-editor store.
5116   */
5117  
5118  var actions_selectBlock = actions_getBlockEditorAction('selectBlock');
5119  /**
5120   * @see startMultiSelect in core/block-editor store.
5121   */
5122  
5123  var startMultiSelect = actions_getBlockEditorAction('startMultiSelect');
5124  /**
5125   * @see stopMultiSelect in core/block-editor store.
5126   */
5127  
5128  var stopMultiSelect = actions_getBlockEditorAction('stopMultiSelect');
5129  /**
5130   * @see multiSelect in core/block-editor store.
5131   */
5132  
5133  var multiSelect = actions_getBlockEditorAction('multiSelect');
5134  /**
5135   * @see clearSelectedBlock in core/block-editor store.
5136   */
5137  
5138  var clearSelectedBlock = actions_getBlockEditorAction('clearSelectedBlock');
5139  /**
5140   * @see toggleSelection in core/block-editor store.
5141   */
5142  
5143  var toggleSelection = actions_getBlockEditorAction('toggleSelection');
5144  /**
5145   * @see replaceBlocks in core/block-editor store.
5146   */
5147  
5148  var actions_replaceBlocks = actions_getBlockEditorAction('replaceBlocks');
5149  /**
5150   * @see replaceBlock in core/block-editor store.
5151   */
5152  
5153  var replaceBlock = actions_getBlockEditorAction('replaceBlock');
5154  /**
5155   * @see moveBlocksDown in core/block-editor store.
5156   */
5157  
5158  var moveBlocksDown = actions_getBlockEditorAction('moveBlocksDown');
5159  /**
5160   * @see moveBlocksUp in core/block-editor store.
5161   */
5162  
5163  var moveBlocksUp = actions_getBlockEditorAction('moveBlocksUp');
5164  /**
5165   * @see moveBlockToPosition in core/block-editor store.
5166   */
5167  
5168  var moveBlockToPosition = actions_getBlockEditorAction('moveBlockToPosition');
5169  /**
5170   * @see insertBlock in core/block-editor store.
5171   */
5172  
5173  var insertBlock = actions_getBlockEditorAction('insertBlock');
5174  /**
5175   * @see insertBlocks in core/block-editor store.
5176   */
5177  
5178  var insertBlocks = actions_getBlockEditorAction('insertBlocks');
5179  /**
5180   * @see showInsertionPoint in core/block-editor store.
5181   */
5182  
5183  var showInsertionPoint = actions_getBlockEditorAction('showInsertionPoint');
5184  /**
5185   * @see hideInsertionPoint in core/block-editor store.
5186   */
5187  
5188  var hideInsertionPoint = actions_getBlockEditorAction('hideInsertionPoint');
5189  /**
5190   * @see setTemplateValidity in core/block-editor store.
5191   */
5192  
5193  var setTemplateValidity = actions_getBlockEditorAction('setTemplateValidity');
5194  /**
5195   * @see synchronizeTemplate in core/block-editor store.
5196   */
5197  
5198  var synchronizeTemplate = actions_getBlockEditorAction('synchronizeTemplate');
5199  /**
5200   * @see mergeBlocks in core/block-editor store.
5201   */
5202  
5203  var mergeBlocks = actions_getBlockEditorAction('mergeBlocks');
5204  /**
5205   * @see removeBlocks in core/block-editor store.
5206   */
5207  
5208  var removeBlocks = actions_getBlockEditorAction('removeBlocks');
5209  /**
5210   * @see removeBlock in core/block-editor store.
5211   */
5212  
5213  var removeBlock = actions_getBlockEditorAction('removeBlock');
5214  /**
5215   * @see toggleBlockMode in core/block-editor store.
5216   */
5217  
5218  var toggleBlockMode = actions_getBlockEditorAction('toggleBlockMode');
5219  /**
5220   * @see startTyping in core/block-editor store.
5221   */
5222  
5223  var startTyping = actions_getBlockEditorAction('startTyping');
5224  /**
5225   * @see stopTyping in core/block-editor store.
5226   */
5227  
5228  var stopTyping = actions_getBlockEditorAction('stopTyping');
5229  /**
5230   * @see enterFormattedText in core/block-editor store.
5231   */
5232  
5233  var enterFormattedText = actions_getBlockEditorAction('enterFormattedText');
5234  /**
5235   * @see exitFormattedText in core/block-editor store.
5236   */
5237  
5238  var exitFormattedText = actions_getBlockEditorAction('exitFormattedText');
5239  /**
5240   * @see insertDefaultBlock in core/block-editor store.
5241   */
5242  
5243  var insertDefaultBlock = actions_getBlockEditorAction('insertDefaultBlock');
5244  /**
5245   * @see updateBlockListSettings in core/block-editor store.
5246   */
5247  
5248  var updateBlockListSettings = actions_getBlockEditorAction('updateBlockListSettings');
5249  
5250  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/controls.js
5251  /**
5252   * Function returning a sessionStorage key to set or retrieve a given post's
5253   * automatic session backup.
5254   *
5255   * Keys are crucially prefixed with 'wp-autosave-' so that wp-login.php's
5256   * `loggedout` handler can clear sessionStorage of any user-private content.
5257   *
5258   * @see https://github.com/WordPress/wordpress-develop/blob/6dad32d2aed47e6c0cf2aee8410645f6d7aba6bd/src/wp-login.php#L103
5259   *
5260   * @param {string}  postId     Post ID.
5261   * @param {boolean} isPostNew  Whether post new.
5262   * @return {string}            sessionStorage key
5263   */
5264  function postKey(postId, isPostNew) {
5265    return "wp-autosave-block-editor-post-".concat(isPostNew ? 'auto-draft' : postId);
5266  }
5267  
5268  function localAutosaveGet(postId, isPostNew) {
5269    return window.sessionStorage.getItem(postKey(postId, isPostNew));
5270  }
5271  function localAutosaveSet(postId, isPostNew, title, content, excerpt) {
5272    window.sessionStorage.setItem(postKey(postId, isPostNew), JSON.stringify({
5273      post_title: title,
5274      content: content,
5275      excerpt: excerpt
5276    }));
5277  }
5278  function localAutosaveClear(postId, isPostNew) {
5279    window.sessionStorage.removeItem(postKey(postId, isPostNew));
5280  }
5281  var controls = {
5282    LOCAL_AUTOSAVE_SET: function LOCAL_AUTOSAVE_SET(_ref) {
5283      var postId = _ref.postId,
5284          isPostNew = _ref.isPostNew,
5285          title = _ref.title,
5286          content = _ref.content,
5287          excerpt = _ref.excerpt;
5288      localAutosaveSet(postId, isPostNew, title, content, excerpt);
5289    }
5290  };
5291  /* harmony default export */ var store_controls = (controls);
5292  
5293  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/index.js
5294  
5295  
5296  function store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5297  
5298  function store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { store_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5299  
5300  /**
5301   * WordPress dependencies
5302   */
5303  
5304  
5305  /**
5306   * Internal dependencies
5307   */
5308  
5309  
5310  
5311  
5312  
5313  
5314  /**
5315   * Post editor data store configuration.
5316   *
5317   * @see https://github.com/WordPress/gutenberg/blob/master/packages/data/README.md#registerStore
5318   *
5319   * @type {Object}
5320   */
5321  
5322  var storeConfig = {
5323    reducer: reducer,
5324    selectors: selectors_namespaceObject,
5325    actions: actions_namespaceObject,
5326    controls: store_objectSpread(store_objectSpread({}, external_this_wp_dataControls_["controls"]), store_controls)
5327  };
5328  var store = Object(external_this_wp_data_["registerStore"])(STORE_KEY, store_objectSpread(store_objectSpread({}, storeConfig), {}, {
5329    persist: ['preferences']
5330  }));
5331  /* harmony default export */ var build_module_store = (store);
5332  
5333  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
5334  var esm_extends = __webpack_require__(8);
5335  
5336  // EXTERNAL MODULE: external {"this":["wp","compose"]}
5337  var external_this_wp_compose_ = __webpack_require__(10);
5338  
5339  // EXTERNAL MODULE: external {"this":["wp","hooks"]}
5340  var external_this_wp_hooks_ = __webpack_require__(33);
5341  
5342  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/hooks/custom-sources-backwards-compatibility.js
5343  
5344  
5345  
5346  
5347  
5348  
5349  function custom_sources_backwards_compatibility_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5350  
5351  function custom_sources_backwards_compatibility_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { custom_sources_backwards_compatibility_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { custom_sources_backwards_compatibility_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5352  
5353  /**
5354   * External dependencies
5355   */
5356  
5357  /**
5358   * WordPress dependencies
5359   */
5360  
5361  
5362  
5363  
5364  
5365  
5366  /** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */
5367  
5368  /** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */
5369  
5370  /**
5371   * Object whose keys are the names of block attributes, where each value
5372   * represents the meta key to which the block attribute is intended to save.
5373   *
5374   * @see https://developer.wordpress.org/reference/functions/register_meta/
5375   *
5376   * @typedef {Object<string,string>} WPMetaAttributeMapping
5377   */
5378  
5379  /**
5380   * Given a mapping of attribute names (meta source attributes) to their
5381   * associated meta key, returns a higher order component that overrides its
5382   * `attributes` and `setAttributes` props to sync any changes with the edited
5383   * post's meta keys.
5384   *
5385   * @param {WPMetaAttributeMapping} metaAttributes Meta attribute mapping.
5386   *
5387   * @return {WPHigherOrderComponent} Higher-order component.
5388   */
5389  
5390  var custom_sources_backwards_compatibility_createWithMetaAttributeSource = function createWithMetaAttributeSource(metaAttributes) {
5391    return Object(external_this_wp_compose_["createHigherOrderComponent"])(function (BlockEdit) {
5392      return function (_ref) {
5393        var attributes = _ref.attributes,
5394            _setAttributes = _ref.setAttributes,
5395            props = Object(objectWithoutProperties["a" /* default */])(_ref, ["attributes", "setAttributes"]);
5396  
5397        var postType = Object(external_this_wp_data_["useSelect"])(function (select) {
5398          return select('core/editor').getCurrentPostType();
5399        }, []);
5400  
5401        var _useEntityProp = Object(external_this_wp_coreData_["useEntityProp"])('postType', postType, 'meta'),
5402            _useEntityProp2 = Object(slicedToArray["a" /* default */])(_useEntityProp, 2),
5403            meta = _useEntityProp2[0],
5404            setMeta = _useEntityProp2[1];
5405  
5406        var mergedAttributes = Object(external_this_wp_element_["useMemo"])(function () {
5407          return custom_sources_backwards_compatibility_objectSpread(custom_sources_backwards_compatibility_objectSpread({}, attributes), Object(external_this_lodash_["mapValues"])(metaAttributes, function (metaKey) {
5408            return meta[metaKey];
5409          }));
5410        }, [attributes, meta]);
5411        return Object(external_this_wp_element_["createElement"])(BlockEdit, Object(esm_extends["a" /* default */])({
5412          attributes: mergedAttributes,
5413          setAttributes: function setAttributes(nextAttributes) {
5414            var nextMeta = Object(external_this_lodash_["mapKeys"])( // Filter to intersection of keys between the updated
5415            // attributes and those with an associated meta key.
5416            Object(external_this_lodash_["pickBy"])(nextAttributes, function (value, key) {
5417              return metaAttributes[key];
5418            }), // Rename the keys to the expected meta key name.
5419            function (value, attributeKey) {
5420              return metaAttributes[attributeKey];
5421            });
5422  
5423            if (!Object(external_this_lodash_["isEmpty"])(nextMeta)) {
5424              setMeta(nextMeta);
5425            }
5426  
5427            _setAttributes(nextAttributes);
5428          }
5429        }, props));
5430      };
5431    }, 'withMetaAttributeSource');
5432  };
5433  /**
5434   * Filters a registered block's settings to enhance a block's `edit` component
5435   * to upgrade meta-sourced attributes to use the post's meta entity property.
5436   *
5437   * @param {WPBlockSettings} settings Registered block settings.
5438   *
5439   * @return {WPBlockSettings} Filtered block settings.
5440   */
5441  
5442  
5443  function shimAttributeSource(settings) {
5444    /** @type {WPMetaAttributeMapping} */
5445    var metaAttributes = Object(external_this_lodash_["mapValues"])(Object(external_this_lodash_["pickBy"])(settings.attributes, {
5446      source: 'meta'
5447    }), 'meta');
5448  
5449    if (!Object(external_this_lodash_["isEmpty"])(metaAttributes)) {
5450      settings.edit = custom_sources_backwards_compatibility_createWithMetaAttributeSource(metaAttributes)(settings.edit);
5451    }
5452  
5453    return settings;
5454  }
5455  
5456  Object(external_this_wp_hooks_["addFilter"])('blocks.registerBlockType', 'core/editor/custom-sources-backwards-compatibility/shim-attribute-source', shimAttributeSource); // The above filter will only capture blocks registered after the filter was
5457  // added. There may already be blocks registered by this point, and those must
5458  // be updated to apply the shim.
5459  //
5460  // The following implementation achieves this, albeit with a couple caveats:
5461  // - Only blocks registered on the global store will be modified.
5462  // - The block settings are directly mutated, since there is currently no
5463  //   mechanism to update an existing block registration. This is the reason for
5464  //   `getBlockType` separate from `getBlockTypes`, since the latter returns a
5465  //   _copy_ of the block registration (i.e. the mutation would not affect the
5466  //   actual registered block settings).
5467  //
5468  // `getBlockTypes` or `getBlockType` implementation could change in the future
5469  // in regards to creating settings clones, but the corresponding end-to-end
5470  // tests for meta blocks should cover against any potential regressions.
5471  //
5472  // In the future, we could support updating block settings, at which point this
5473  // implementation could use that mechanism instead.
5474  
5475  Object(external_this_wp_data_["select"])('core/blocks').getBlockTypes().map(function (_ref2) {
5476    var name = _ref2.name;
5477    return Object(external_this_wp_data_["select"])('core/blocks').getBlockType(name);
5478  }).forEach(shimAttributeSource);
5479  
5480  // EXTERNAL MODULE: external {"this":["wp","apiFetch"]}
5481  var external_this_wp_apiFetch_ = __webpack_require__(47);
5482  var external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);
5483  
5484  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/autocompleters/user.js
5485  
5486  
5487  /**
5488   * WordPress dependencies
5489   */
5490  
5491  /** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */
5492  
5493  /**
5494   * A user mentions completer.
5495   *
5496   * @type {WPCompleter}
5497   */
5498  
5499  /* harmony default export */ var autocompleters_user = ({
5500    name: 'users',
5501    className: 'editor-autocompleters__user',
5502    triggerPrefix: '@',
5503    options: function options(search) {
5504      var payload = '';
5505  
5506      if (search) {
5507        payload = '?search=' + encodeURIComponent(search);
5508      }
5509  
5510      return external_this_wp_apiFetch_default()({
5511        path: '/wp/v2/users' + payload
5512      });
5513    },
5514    isDebounced: true,
5515    getOptionKeywords: function getOptionKeywords(user) {
5516      return [user.slug, user.name];
5517    },
5518    getOptionLabel: function getOptionLabel(user) {
5519      var avatar = user.avatar_urls && user.avatar_urls[24] ? Object(external_this_wp_element_["createElement"])("img", {
5520        key: "avatar",
5521        className: "editor-autocompleters__user-avatar",
5522        alt: "",
5523        src: user.avatar_urls[24]
5524      }) : Object(external_this_wp_element_["createElement"])("span", {
5525        className: "editor-autocompleters__no-avatar"
5526      });
5527      return [avatar, Object(external_this_wp_element_["createElement"])("span", {
5528        key: "name",
5529        className: "editor-autocompleters__user-name"
5530      }, user.name), Object(external_this_wp_element_["createElement"])("span", {
5531        key: "slug",
5532        className: "editor-autocompleters__user-slug"
5533      }, user.slug)];
5534    },
5535    getOptionCompletion: function getOptionCompletion(user) {
5536      return "@".concat(user.slug);
5537    }
5538  });
5539  
5540  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/hooks/default-autocompleters.js
5541  /**
5542   * External dependencies
5543   */
5544  
5545  /**
5546   * WordPress dependencies
5547   */
5548  
5549  
5550  /**
5551   * Internal dependencies
5552   */
5553  
5554  
5555  
5556  function setDefaultCompleters() {
5557    var completers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
5558    // Provide copies so filters may directly modify them.
5559    completers.push(Object(external_this_lodash_["clone"])(autocompleters_user));
5560    return completers;
5561  }
5562  
5563  Object(external_this_wp_hooks_["addFilter"])('editor.Autocomplete.completers', 'editor/autocompleters/set-default-completers', setDefaultCompleters);
5564  
5565  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/hooks/index.js
5566  /**
5567   * Internal dependencies
5568   */
5569  
5570  
5571  
5572  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/autocompleters/index.js
5573  
5574  
5575  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
5576  var classCallCheck = __webpack_require__(21);
5577  
5578  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
5579  var createClass = __webpack_require__(22);
5580  
5581  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
5582  var inherits = __webpack_require__(23);
5583  
5584  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
5585  var possibleConstructorReturn = __webpack_require__(24);
5586  
5587  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
5588  var getPrototypeOf = __webpack_require__(19);
5589  
5590  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/autosave-monitor/index.js
5591  
5592  
5593  
5594  
5595  
5596  
5597  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
5598  
5599  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
5600  
5601  /**
5602   * WordPress dependencies
5603   */
5604  
5605  
5606  
5607  var autosave_monitor_AutosaveMonitor = /*#__PURE__*/function (_Component) {
5608    Object(inherits["a" /* default */])(AutosaveMonitor, _Component);
5609  
5610    var _super = _createSuper(AutosaveMonitor);
5611  
5612    function AutosaveMonitor(props) {
5613      var _this;
5614  
5615      Object(classCallCheck["a" /* default */])(this, AutosaveMonitor);
5616  
5617      _this = _super.call(this, props);
5618      _this.needsAutosave = !!(props.isDirty && props.isAutosaveable);
5619      return _this;
5620    }
5621  
5622    Object(createClass["a" /* default */])(AutosaveMonitor, [{
5623      key: "componentDidMount",
5624      value: function componentDidMount() {
5625        if (!this.props.disableIntervalChecks) {
5626          this.setAutosaveTimer();
5627        }
5628      }
5629    }, {
5630      key: "componentDidUpdate",
5631      value: function componentDidUpdate(prevProps) {
5632        if (this.props.disableIntervalChecks && this.props.editsReference !== prevProps.editsReference) {
5633          this.props.autosave();
5634          return;
5635        }
5636  
5637        if (!this.props.isDirty && prevProps.isDirty) {
5638          this.needsAutosave = false;
5639          return;
5640        }
5641  
5642        if (this.props.isAutosaving && !prevProps.isAutosaving) {
5643          this.needsAutosave = false;
5644          return;
5645        }
5646  
5647        if (this.props.editsReference !== prevProps.editsReference) {
5648          this.needsAutosave = true;
5649        }
5650      }
5651    }, {
5652      key: "componentWillUnmount",
5653      value: function componentWillUnmount() {
5654        clearTimeout(this.timerId);
5655      }
5656    }, {
5657      key: "setAutosaveTimer",
5658      value: function setAutosaveTimer() {
5659        var _this2 = this;
5660  
5661        var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.interval * 1000;
5662        this.timerId = setTimeout(function () {
5663          _this2.autosaveTimerHandler();
5664        }, timeout);
5665      }
5666    }, {
5667      key: "autosaveTimerHandler",
5668      value: function autosaveTimerHandler() {
5669        if (!this.props.isAutosaveable) {
5670          this.setAutosaveTimer(1000);
5671          return;
5672        }
5673  
5674        if (this.needsAutosave) {
5675          this.needsAutosave = false;
5676          this.props.autosave();
5677        }
5678  
5679        this.setAutosaveTimer();
5680      }
5681    }, {
5682      key: "render",
5683      value: function render() {
5684        return null;
5685      }
5686    }]);
5687  
5688    return AutosaveMonitor;
5689  }(external_this_wp_element_["Component"]);
5690  /* harmony default export */ var autosave_monitor = (Object(external_this_wp_compose_["compose"])([Object(external_this_wp_data_["withSelect"])(function (select, ownProps) {
5691    var _select = select('core'),
5692        getReferenceByDistinctEdits = _select.getReferenceByDistinctEdits;
5693  
5694    var _select2 = select('core/editor'),
5695        isEditedPostDirty = _select2.isEditedPostDirty,
5696        isEditedPostAutosaveable = _select2.isEditedPostAutosaveable,
5697        isAutosavingPost = _select2.isAutosavingPost,
5698        getEditorSettings = _select2.getEditorSettings;
5699  
5700    var _ownProps$interval = ownProps.interval,
5701        interval = _ownProps$interval === void 0 ? getEditorSettings().autosaveInterval : _ownProps$interval;
5702    return {
5703      editsReference: getReferenceByDistinctEdits(),
5704      isDirty: isEditedPostDirty(),
5705      isAutosaveable: isEditedPostAutosaveable(),
5706      isAutosaving: isAutosavingPost(),
5707      interval: interval
5708    };
5709  }), Object(external_this_wp_data_["withDispatch"])(function (dispatch, ownProps) {
5710    return {
5711      autosave: function autosave() {
5712        var _ownProps$autosave = ownProps.autosave,
5713            autosave = _ownProps$autosave === void 0 ? dispatch('core/editor').autosave : _ownProps$autosave;
5714        autosave();
5715      }
5716    };
5717  })])(autosave_monitor_AutosaveMonitor));
5718  
5719  // EXTERNAL MODULE: ./node_modules/classnames/index.js
5720  var classnames = __webpack_require__(9);
5721  var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
5722  
5723  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/document-outline/item.js
5724  
5725  
5726  /**
5727   * External dependencies
5728   */
5729  
5730  
5731  var item_TableOfContentsItem = function TableOfContentsItem(_ref) {
5732    var children = _ref.children,
5733        isValid = _ref.isValid,
5734        level = _ref.level,
5735        href = _ref.href,
5736        onSelect = _ref.onSelect;
5737    return Object(external_this_wp_element_["createElement"])("li", {
5738      className: classnames_default()('document-outline__item', "is-".concat(level.toLowerCase()), {
5739        'is-invalid': !isValid
5740      })
5741    }, Object(external_this_wp_element_["createElement"])("a", {
5742      href: href,
5743      className: "document-outline__button",
5744      onClick: onSelect
5745    }, Object(external_this_wp_element_["createElement"])("span", {
5746      className: "document-outline__emdash",
5747      "aria-hidden": "true"
5748    }), Object(external_this_wp_element_["createElement"])("strong", {
5749      className: "document-outline__level"
5750    }, level), Object(external_this_wp_element_["createElement"])("span", {
5751      className: "document-outline__item-content"
5752    }, children)));
5753  };
5754  
5755  /* harmony default export */ var document_outline_item = (item_TableOfContentsItem);
5756  
5757  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/document-outline/index.js
5758  
5759  
5760  
5761  function document_outline_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5762  
5763  function document_outline_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { document_outline_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { document_outline_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5764  
5765  /**
5766   * External dependencies
5767   */
5768  
5769  /**
5770   * WordPress dependencies
5771   */
5772  
5773  
5774  
5775  
5776  
5777  /**
5778   * Internal dependencies
5779   */
5780  
5781  
5782  /**
5783   * Module constants
5784   */
5785  
5786  var emptyHeadingContent = Object(external_this_wp_element_["createElement"])("em", null, Object(external_this_wp_i18n_["__"])('(Empty heading)'));
5787  var incorrectLevelContent = [Object(external_this_wp_element_["createElement"])("br", {
5788    key: "incorrect-break"
5789  }), Object(external_this_wp_element_["createElement"])("em", {
5790    key: "incorrect-message"
5791  }, Object(external_this_wp_i18n_["__"])('(Incorrect heading level)'))];
5792  var singleH1Headings = [Object(external_this_wp_element_["createElement"])("br", {
5793    key: "incorrect-break-h1"
5794  }), Object(external_this_wp_element_["createElement"])("em", {
5795    key: "incorrect-message-h1"
5796  }, Object(external_this_wp_i18n_["__"])('(Your theme may already use a H1 for the post title)'))];
5797  var multipleH1Headings = [Object(external_this_wp_element_["createElement"])("br", {
5798    key: "incorrect-break-multiple-h1"
5799  }), Object(external_this_wp_element_["createElement"])("em", {
5800    key: "incorrect-message-multiple-h1"
5801  }, Object(external_this_wp_i18n_["__"])('(Multiple H1 headings are not recommended)'))];
5802  /**
5803   * Returns an array of heading blocks enhanced with the following properties:
5804   * level   - An integer with the heading level.
5805   * isEmpty - Flag indicating if the heading has no content.
5806   *
5807   * @param {?Array} blocks An array of blocks.
5808   *
5809   * @return {Array} An array of heading blocks enhanced with the properties described above.
5810   */
5811  
5812  var document_outline_computeOutlineHeadings = function computeOutlineHeadings() {
5813    var blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
5814    return Object(external_this_lodash_["flatMap"])(blocks, function () {
5815      var block = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5816  
5817      if (block.name === 'core/heading') {
5818        return document_outline_objectSpread(document_outline_objectSpread({}, block), {}, {
5819          level: block.attributes.level,
5820          isEmpty: isEmptyHeading(block)
5821        });
5822      }
5823  
5824      return computeOutlineHeadings(block.innerBlocks);
5825    });
5826  };
5827  
5828  var isEmptyHeading = function isEmptyHeading(heading) {
5829    return !heading.attributes.content || heading.attributes.content.length === 0;
5830  };
5831  
5832  var document_outline_DocumentOutline = function DocumentOutline(_ref) {
5833    var _ref$blocks = _ref.blocks,
5834        blocks = _ref$blocks === void 0 ? [] : _ref$blocks,
5835        title = _ref.title,
5836        onSelect = _ref.onSelect,
5837        isTitleSupported = _ref.isTitleSupported,
5838        hasOutlineItemsDisabled = _ref.hasOutlineItemsDisabled;
5839    var headings = document_outline_computeOutlineHeadings(blocks);
5840  
5841    if (headings.length < 1) {
5842      return null;
5843    }
5844  
5845    var prevHeadingLevel = 1; // Not great but it's the simplest way to locate the title right now.
5846  
5847    var titleNode = document.querySelector('.editor-post-title__input');
5848    var hasTitle = isTitleSupported && title && titleNode;
5849    var countByLevel = Object(external_this_lodash_["countBy"])(headings, 'level');
5850    var hasMultipleH1 = countByLevel[1] > 1;
5851    return Object(external_this_wp_element_["createElement"])("div", {
5852      className: "document-outline"
5853    }, Object(external_this_wp_element_["createElement"])("ul", null, hasTitle && Object(external_this_wp_element_["createElement"])(document_outline_item, {
5854      level: Object(external_this_wp_i18n_["__"])('Title'),
5855      isValid: true,
5856      onSelect: onSelect,
5857      href: "#".concat(titleNode.id),
5858      isDisabled: hasOutlineItemsDisabled
5859    }, title), headings.map(function (item, index) {
5860      // Headings remain the same, go up by one, or down by any amount.
5861      // Otherwise there are missing levels.
5862      var isIncorrectLevel = item.level > prevHeadingLevel + 1;
5863      var isValid = !item.isEmpty && !isIncorrectLevel && !!item.level && (item.level !== 1 || !hasMultipleH1 && !hasTitle);
5864      prevHeadingLevel = item.level;
5865      return Object(external_this_wp_element_["createElement"])(document_outline_item, {
5866        key: index,
5867        level: "H".concat(item.level),
5868        isValid: isValid,
5869        isDisabled: hasOutlineItemsDisabled,
5870        href: "#block-".concat(item.clientId),
5871        onSelect: onSelect
5872      }, item.isEmpty ? emptyHeadingContent : Object(external_this_wp_richText_["getTextContent"])(Object(external_this_wp_richText_["create"])({
5873        html: item.attributes.content
5874      })), isIncorrectLevel && incorrectLevelContent, item.level === 1 && hasMultipleH1 && multipleH1Headings, hasTitle && item.level === 1 && !hasMultipleH1 && singleH1Headings);
5875    })));
5876  };
5877  /* harmony default export */ var document_outline = (Object(external_this_wp_compose_["compose"])(Object(external_this_wp_data_["withSelect"])(function (select) {
5878    var _select = select('core/block-editor'),
5879        getBlocks = _select.getBlocks;
5880  
5881    var _select2 = select('core/editor'),
5882        getEditedPostAttribute = _select2.getEditedPostAttribute;
5883  
5884    var _select3 = select('core'),
5885        getPostType = _select3.getPostType;
5886  
5887    var postType = getPostType(getEditedPostAttribute('type'));
5888    return {
5889      title: getEditedPostAttribute('title'),
5890      blocks: getBlocks(),
5891      isTitleSupported: Object(external_this_lodash_["get"])(postType, ['supports', 'title'], false)
5892    };
5893  }))(document_outline_DocumentOutline));
5894  
5895  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/document-outline/check.js
5896  /**
5897   * External dependencies
5898   */
5899  
5900  /**
5901   * WordPress dependencies
5902   */
5903  
5904  
5905  
5906  function DocumentOutlineCheck(_ref) {
5907    var blocks = _ref.blocks,
5908        children = _ref.children;
5909    var headings = Object(external_this_lodash_["filter"])(blocks, function (block) {
5910      return block.name === 'core/heading';
5911    });
5912  
5913    if (headings.length < 1) {
5914      return null;
5915    }
5916  
5917    return children;
5918  }
5919  
5920  /* harmony default export */ var check = (Object(external_this_wp_data_["withSelect"])(function (select) {
5921    return {
5922      blocks: select('core/block-editor').getBlocks()
5923    };
5924  })(DocumentOutlineCheck));
5925  
5926  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/save-shortcut.js
5927  /**
5928   * WordPress dependencies
5929   */
5930  
5931  
5932  
5933  
5934  function SaveShortcut(_ref) {
5935    var resetBlocksOnSave = _ref.resetBlocksOnSave;
5936  
5937    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/editor'),
5938        resetEditorBlocks = _useDispatch.resetEditorBlocks,
5939        savePost = _useDispatch.savePost;
5940  
5941    var _useSelect = Object(external_this_wp_data_["useSelect"])(function (select) {
5942      var _select = select('core/editor'),
5943          _isEditedPostDirty = _select.isEditedPostDirty,
5944          _getPostEdits = _select.getPostEdits;
5945  
5946      return {
5947        isEditedPostDirty: _isEditedPostDirty,
5948        getPostEdits: _getPostEdits
5949      };
5950    }, []),
5951        isEditedPostDirty = _useSelect.isEditedPostDirty,
5952        getPostEdits = _useSelect.getPostEdits;
5953  
5954    Object(external_this_wp_keyboardShortcuts_["useShortcut"])('core/editor/save', function (event) {
5955      event.preventDefault(); // TODO: This should be handled in the `savePost` effect in
5956      // considering `isSaveable`. See note on `isEditedPostSaveable`
5957      // selector about dirtiness and meta-boxes.
5958      //
5959      // See: `isEditedPostSaveable`
5960  
5961      if (!isEditedPostDirty()) {
5962        return;
5963      } // The text editor requires that editor blocks are updated for a
5964      // save to work correctly. Usually this happens when the textarea
5965      // for the code editors blurs, but the shortcut can be used without
5966      // blurring the textarea.
5967  
5968  
5969      if (resetBlocksOnSave) {
5970        var postEdits = getPostEdits();
5971  
5972        if (postEdits.content && typeof postEdits.content === 'string') {
5973          var blocks = Object(external_this_wp_blocks_["parse"])(postEdits.content);
5974          resetEditorBlocks(blocks);
5975        }
5976      }
5977  
5978      savePost();
5979    }, {
5980      bindGlobal: true
5981    });
5982    return null;
5983  }
5984  
5985  /* harmony default export */ var save_shortcut = (SaveShortcut);
5986  
5987  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/visual-editor-shortcuts.js
5988  
5989  
5990  /**
5991   * WordPress dependencies
5992   */
5993  
5994  
5995  
5996  
5997  /**
5998   * Internal dependencies
5999   */
6000  
6001  
6002  
6003  function VisualEditorGlobalKeyboardShortcuts() {
6004    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/editor'),
6005        redo = _useDispatch.redo,
6006        undo = _useDispatch.undo;
6007  
6008    Object(external_this_wp_keyboardShortcuts_["useShortcut"])('core/editor/undo', function (event) {
6009      undo();
6010      event.preventDefault();
6011    }, {
6012      bindGlobal: true
6013    });
6014    Object(external_this_wp_keyboardShortcuts_["useShortcut"])('core/editor/redo', function (event) {
6015      redo();
6016      event.preventDefault();
6017    }, {
6018      bindGlobal: true
6019    });
6020    return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["BlockEditorKeyboardShortcuts"], null), Object(external_this_wp_element_["createElement"])(save_shortcut, null));
6021  }
6022  
6023  /* harmony default export */ var visual_editor_shortcuts = (VisualEditorGlobalKeyboardShortcuts);
6024  function EditorGlobalKeyboardShortcuts() {
6025    external_this_wp_deprecated_default()('EditorGlobalKeyboardShortcuts', {
6026      alternative: 'VisualEditorGlobalKeyboardShortcuts',
6027      plugin: 'Gutenberg'
6028    });
6029    return Object(external_this_wp_element_["createElement"])(VisualEditorGlobalKeyboardShortcuts, null);
6030  }
6031  
6032  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/text-editor-shortcuts.js
6033  
6034  
6035  /**
6036   * Internal dependencies
6037   */
6038  
6039  function TextEditorGlobalKeyboardShortcuts() {
6040    return Object(external_this_wp_element_["createElement"])(save_shortcut, {
6041      resetBlocksOnSave: true
6042    });
6043  }
6044  
6045  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/register-shortcuts.js
6046  
6047  
6048  /**
6049   * WordPress dependencies
6050   */
6051  
6052  
6053  
6054  
6055  
6056  function EditorKeyboardShortcutsRegister() {
6057    // Registering the shortcuts
6058    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/keyboard-shortcuts'),
6059        registerShortcut = _useDispatch.registerShortcut;
6060  
6061    Object(external_this_wp_element_["useEffect"])(function () {
6062      registerShortcut({
6063        name: 'core/editor/save',
6064        category: 'global',
6065        description: Object(external_this_wp_i18n_["__"])('Save your changes.'),
6066        keyCombination: {
6067          modifier: 'primary',
6068          character: 's'
6069        }
6070      });
6071      registerShortcut({
6072        name: 'core/editor/undo',
6073        category: 'global',
6074        description: Object(external_this_wp_i18n_["__"])('Undo your last changes.'),
6075        keyCombination: {
6076          modifier: 'primary',
6077          character: 'z'
6078        }
6079      });
6080      registerShortcut({
6081        name: 'core/editor/redo',
6082        category: 'global',
6083        description: Object(external_this_wp_i18n_["__"])('Redo your last undo.'),
6084        keyCombination: {
6085          modifier: 'primaryShift',
6086          character: 'z'
6087        }
6088      });
6089    }, [registerShortcut]);
6090    return Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["BlockEditorKeyboardShortcuts"].Register, null);
6091  }
6092  
6093  /* harmony default export */ var register_shortcuts = (EditorKeyboardShortcutsRegister);
6094  
6095  // EXTERNAL MODULE: external {"this":["wp","components"]}
6096  var external_this_wp_components_ = __webpack_require__(3);
6097  
6098  // EXTERNAL MODULE: external {"this":["wp","keycodes"]}
6099  var external_this_wp_keycodes_ = __webpack_require__(18);
6100  
6101  // EXTERNAL MODULE: external {"this":["wp","primitives"]}
6102  var external_this_wp_primitives_ = __webpack_require__(7);
6103  
6104  // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js
6105  
6106  
6107  /**
6108   * WordPress dependencies
6109   */
6110  
6111  var redo_redo = Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
6112    xmlns: "http://www.w3.org/2000/svg",
6113    viewBox: "0 0 24 24"
6114  }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
6115    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"
6116  }));
6117  /* harmony default export */ var library_redo = (redo_redo);
6118  
6119  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/editor-history/redo.js
6120  
6121  
6122  
6123  /**
6124   * WordPress dependencies
6125   */
6126  
6127  
6128  
6129  
6130  
6131  
6132  
6133  function EditorHistoryRedo(props, ref) {
6134    var hasRedo = Object(external_this_wp_data_["useSelect"])(function (select) {
6135      return select('core/editor').hasEditorRedo();
6136    }, []);
6137  
6138    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/editor'),
6139        redo = _useDispatch.redo;
6140  
6141    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], Object(esm_extends["a" /* default */])({}, props, {
6142      ref: ref,
6143      icon: library_redo
6144      /* translators: button label text should, if possible, be under 16 characters. */
6145      ,
6146      label: Object(external_this_wp_i18n_["__"])('Redo'),
6147      shortcut: external_this_wp_keycodes_["displayShortcut"].primaryShift('z') // If there are no redo levels we don't want to actually disable this
6148      // button, because it will remove focus for keyboard users.
6149      // See: https://github.com/WordPress/gutenberg/issues/3486
6150      ,
6151      "aria-disabled": !hasRedo,
6152      onClick: hasRedo ? redo : undefined,
6153      className: "editor-history__redo"
6154    }));
6155  }
6156  
6157  /* harmony default export */ var editor_history_redo = (Object(external_this_wp_element_["forwardRef"])(EditorHistoryRedo));
6158  
6159  // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js
6160  
6161  
6162  /**
6163   * WordPress dependencies
6164   */
6165  
6166  var undo_undo = Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
6167    xmlns: "http://www.w3.org/2000/svg",
6168    viewBox: "0 0 24 24"
6169  }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
6170    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"
6171  }));
6172  /* harmony default export */ var library_undo = (undo_undo);
6173  
6174  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/editor-history/undo.js
6175  
6176  
6177  
6178  /**
6179   * WordPress dependencies
6180   */
6181  
6182  
6183  
6184  
6185  
6186  
6187  
6188  function EditorHistoryUndo(props, ref) {
6189    var hasUndo = Object(external_this_wp_data_["useSelect"])(function (select) {
6190      return select('core/editor').hasEditorUndo();
6191    }, []);
6192  
6193    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/editor'),
6194        undo = _useDispatch.undo;
6195  
6196    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], Object(esm_extends["a" /* default */])({}, props, {
6197      ref: ref,
6198      icon: library_undo
6199      /* translators: button label text should, if possible, be under 16 characters. */
6200      ,
6201      label: Object(external_this_wp_i18n_["__"])('Undo'),
6202      shortcut: external_this_wp_keycodes_["displayShortcut"].primary('z') // If there are no undo levels we don't want to actually disable this
6203      // button, because it will remove focus for keyboard users.
6204      // See: https://github.com/WordPress/gutenberg/issues/3486
6205      ,
6206      "aria-disabled": !hasUndo,
6207      onClick: hasUndo ? undo : undefined,
6208      className: "editor-history__undo"
6209    }));
6210  }
6211  
6212  /* harmony default export */ var editor_history_undo = (Object(external_this_wp_element_["forwardRef"])(EditorHistoryUndo));
6213  
6214  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/template-validation-notice/index.js
6215  
6216  
6217  
6218  /**
6219   * WordPress dependencies
6220   */
6221  
6222  
6223  
6224  
6225  
6226  function TemplateValidationNotice(_ref) {
6227    var isValid = _ref.isValid,
6228        props = Object(objectWithoutProperties["a" /* default */])(_ref, ["isValid"]);
6229  
6230    if (isValid) {
6231      return null;
6232    }
6233  
6234    var confirmSynchronization = function confirmSynchronization() {
6235      if ( // eslint-disable-next-line no-alert
6236      window.confirm(Object(external_this_wp_i18n_["__"])('Resetting the template may result in loss of content, do you want to continue?'))) {
6237        props.synchronizeTemplate();
6238      }
6239    };
6240  
6241    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Notice"], {
6242      className: "editor-template-validation-notice",
6243      isDismissible: false,
6244      status: "warning",
6245      actions: [{
6246        label: Object(external_this_wp_i18n_["__"])('Keep it as is'),
6247        onClick: props.resetTemplateValidity
6248      }, {
6249        label: Object(external_this_wp_i18n_["__"])('Reset the template'),
6250        onClick: confirmSynchronization,
6251        isPrimary: true
6252      }]
6253    }, Object(external_this_wp_i18n_["__"])('The content of your post doesn’t match the template assigned to your post type.'));
6254  }
6255  
6256  /* harmony default export */ var template_validation_notice = (Object(external_this_wp_compose_["compose"])([Object(external_this_wp_data_["withSelect"])(function (select) {
6257    return {
6258      isValid: select('core/block-editor').isValidTemplate()
6259    };
6260  }), Object(external_this_wp_data_["withDispatch"])(function (dispatch) {
6261    var _dispatch = dispatch('core/block-editor'),
6262        setTemplateValidity = _dispatch.setTemplateValidity,
6263        synchronizeTemplate = _dispatch.synchronizeTemplate;
6264  
6265    return {
6266      resetTemplateValidity: function resetTemplateValidity() {
6267        return setTemplateValidity(true);
6268      },
6269      synchronizeTemplate: synchronizeTemplate
6270    };
6271  })])(TemplateValidationNotice));
6272  
6273  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/editor-notices/index.js
6274  
6275  
6276  /**
6277   * External dependencies
6278   */
6279  
6280  /**
6281   * WordPress dependencies
6282   */
6283  
6284  
6285  
6286  
6287  /**
6288   * Internal dependencies
6289   */
6290  
6291  
6292  function EditorNotices(_ref) {
6293    var notices = _ref.notices,
6294        onRemove = _ref.onRemove;
6295    var dismissibleNotices = Object(external_this_lodash_["filter"])(notices, {
6296      isDismissible: true,
6297      type: 'default'
6298    });
6299    var nonDismissibleNotices = Object(external_this_lodash_["filter"])(notices, {
6300      isDismissible: false,
6301      type: 'default'
6302    });
6303    var snackbarNotices = Object(external_this_lodash_["filter"])(notices, {
6304      type: 'snackbar'
6305    });
6306    return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["NoticeList"], {
6307      notices: nonDismissibleNotices,
6308      className: "components-editor-notices__pinned"
6309    }), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["NoticeList"], {
6310      notices: dismissibleNotices,
6311      className: "components-editor-notices__dismissible",
6312      onRemove: onRemove
6313    }, Object(external_this_wp_element_["createElement"])(template_validation_notice, null)), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["SnackbarList"], {
6314      notices: snackbarNotices,
6315      className: "components-editor-notices__snackbar",
6316      onRemove: onRemove
6317    }));
6318  }
6319  /* harmony default export */ var editor_notices = (Object(external_this_wp_compose_["compose"])([Object(external_this_wp_data_["withSelect"])(function (select) {
6320    return {
6321      notices: select('core/notices').getNotices()
6322    };
6323  }), Object(external_this_wp_data_["withDispatch"])(function (dispatch) {
6324    return {
6325      onRemove: dispatch('core/notices').removeNotice
6326    };
6327  })])(EditorNotices));
6328  
6329  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js
6330  var library_close = __webpack_require__(160);
6331  
6332  // EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js
6333  var layout = __webpack_require__(319);
6334  
6335  // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page.js
6336  
6337  
6338  /**
6339   * WordPress dependencies
6340   */
6341  
6342  var page_page = Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
6343    xmlns: "http://www.w3.org/2000/svg",
6344    viewBox: "0 0 24 24"
6345  }, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
6346    d: "M7 5.5h10a.5.5 0 01.5.5v12a.5.5 0 01-.5.5H7a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM17 4H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V6a2 2 0 00-2-2zm-1 3.75H8v1.5h8v-1.5zM8 11h8v1.5H8V11zm6 3.25H8v1.5h6v-1.5z"
6347  }));
6348  /* harmony default export */ var library_page = (page_page);
6349  
6350  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/entity-record-item.js
6351  
6352  
6353  /**
6354   * WordPress dependencies
6355   */
6356  
6357  
6358  
6359  
6360  function EntityRecordItem(_ref) {
6361    var record = _ref.record,
6362        checked = _ref.checked,
6363        onChange = _ref.onChange,
6364        closePanel = _ref.closePanel;
6365    var name = record.name,
6366        kind = record.kind,
6367        title = record.title,
6368        key = record.key;
6369    var parentBlockId = Object(external_this_wp_data_["useSelect"])(function (select) {
6370      var _blocks$;
6371  
6372      // Get entity's blocks.
6373      var _select$getEditedEnti = select('core').getEditedEntityRecord(kind, name, key),
6374          _select$getEditedEnti2 = _select$getEditedEnti.blocks,
6375          blocks = _select$getEditedEnti2 === void 0 ? [] : _select$getEditedEnti2; // Get parents of the entity's first block.
6376  
6377  
6378      var parents = select('core/block-editor').getBlockParents((_blocks$ = blocks[0]) === null || _blocks$ === void 0 ? void 0 : _blocks$.clientId); // Return closest parent block's clientId.
6379  
6380      return parents[parents.length - 1];
6381    }, []);
6382    var isSelected = Object(external_this_wp_data_["useSelect"])(function (select) {
6383      var selectedBlockId = select('core/block-editor').getSelectedBlockClientId();
6384      return selectedBlockId === parentBlockId;
6385    }, [parentBlockId]);
6386    var isSelectedText = isSelected ? Object(external_this_wp_i18n_["__"])('Selected') : Object(external_this_wp_i18n_["__"])('Select');
6387  
6388    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/block-editor'),
6389        selectBlock = _useDispatch.selectBlock;
6390  
6391    var selectParentBlock = Object(external_this_wp_element_["useCallback"])(function () {
6392      return selectBlock(parentBlockId);
6393    }, [parentBlockId]);
6394    var selectAndDismiss = Object(external_this_wp_element_["useCallback"])(function () {
6395      selectBlock(parentBlockId);
6396      closePanel();
6397    }, [parentBlockId]);
6398    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["PanelRow"], null, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["CheckboxControl"], {
6399      label: Object(external_this_wp_element_["createElement"])("strong", null, title || Object(external_this_wp_i18n_["__"])('Untitled')),
6400      checked: checked,
6401      onChange: onChange
6402    }), parentBlockId ? Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
6403      onClick: selectParentBlock,
6404      className: "entities-saved-states__find-entity",
6405      disabled: isSelected
6406    }, isSelectedText), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
6407      onClick: selectAndDismiss,
6408      className: "entities-saved-states__find-entity-small",
6409      disabled: isSelected
6410    }, isSelectedText)) : null);
6411  }
6412  
6413  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/entity-type-list.js
6414  
6415  
6416  /**
6417   * External dependencies
6418   */
6419  
6420  /**
6421   * WordPress dependencies
6422   */
6423  
6424  
6425  
6426  
6427  /**
6428   * Internal dependencies
6429   */
6430  
6431  
6432  var ENTITY_NAME_ICONS = {
6433    site: layout["a" /* default */],
6434    page: library_page
6435  };
6436  function EntityTypeList(_ref) {
6437    var list = _ref.list,
6438        unselectedEntities = _ref.unselectedEntities,
6439        setUnselectedEntities = _ref.setUnselectedEntities,
6440        closePanel = _ref.closePanel;
6441    var firstRecord = list[0];
6442    var entity = Object(external_this_wp_data_["useSelect"])(function (select) {
6443      return select('core').getEntity(firstRecord.kind, firstRecord.name);
6444    }, [firstRecord.kind, firstRecord.name]); // Set icon based on type of entity.
6445  
6446    var name = firstRecord.name;
6447    var icon = ENTITY_NAME_ICONS[name];
6448    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["PanelBody"], {
6449      title: entity.label,
6450      initialOpen: true,
6451      icon: icon
6452    }, list.map(function (record) {
6453      return Object(external_this_wp_element_["createElement"])(EntityRecordItem, {
6454        key: record.key || 'site',
6455        record: record,
6456        checked: !Object(external_this_lodash_["some"])(unselectedEntities, function (elt) {
6457          return elt.kind === record.kind && elt.name === record.name && elt.key === record.key;
6458        }),
6459        onChange: function onChange(value) {
6460          return setUnselectedEntities(record, value);
6461        },
6462        closePanel: closePanel
6463      });
6464    }));
6465  }
6466  
6467  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/index.js
6468  
6469  
6470  
6471  
6472  /**
6473   * External dependencies
6474   */
6475  
6476  /**
6477   * WordPress dependencies
6478   */
6479  
6480  
6481  
6482  
6483  
6484  
6485  /**
6486   * Internal dependencies
6487   */
6488  
6489  
6490  var ENTITY_NAMES = {
6491    wp_template_part: function wp_template_part(number) {
6492      return Object(external_this_wp_i18n_["_n"])('template part', 'template parts', number);
6493    },
6494    wp_template: function wp_template(number) {
6495      return Object(external_this_wp_i18n_["_n"])('template', 'templates', number);
6496    },
6497    post: function post(number) {
6498      return Object(external_this_wp_i18n_["_n"])('post', 'posts', number);
6499    },
6500    page: function page(number) {
6501      return Object(external_this_wp_i18n_["_n"])('page', 'pages', number);
6502    },
6503    site: function site(number) {
6504      return Object(external_this_wp_i18n_["_n"])('site', 'sites', number);
6505    }
6506  };
6507  var PLACEHOLDER_PHRASES = {
6508    // 0 is a back up, but should never be observed.
6509    0: Object(external_this_wp_i18n_["__"])('There are no changes.'),
6510  
6511    /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */
6512    1: Object(external_this_wp_i18n_["__"])('Changes have been made to your %s.'),
6513  
6514    /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */
6515    2: Object(external_this_wp_i18n_["__"])('Changes have been made to your %1$s and %2$s.'),
6516  
6517    /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */
6518    3: Object(external_this_wp_i18n_["__"])('Changes have been made to your %1$s, %2$s, and %3$s.'),
6519  
6520    /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */
6521    4: Object(external_this_wp_i18n_["__"])('Changes have been made to your %1$s, %2$s, %3$s, and %4$s.'),
6522  
6523    /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */
6524    5: Object(external_this_wp_i18n_["__"])('Changes have been made to your %1$s, %2$s, %3$s, %4$s, and %5$s.')
6525  };
6526  function EntitiesSavedStates(_ref) {
6527    var isOpen = _ref.isOpen,
6528        close = _ref.close;
6529  
6530    var _useSelect = Object(external_this_wp_data_["useSelect"])(function (select) {
6531      return {
6532        dirtyEntityRecords: select('core').__experimentalGetDirtyEntityRecords()
6533      };
6534    }, []),
6535        dirtyEntityRecords = _useSelect.dirtyEntityRecords;
6536  
6537    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core'),
6538        saveEditedEntityRecord = _useDispatch.saveEditedEntityRecord; // To group entities by type.
6539  
6540  
6541    var partitionedSavables = Object.values(Object(external_this_lodash_["groupBy"])(dirtyEntityRecords, 'name')); // Get labels for text-prompt phrase.
6542  
6543    var entityNamesForPrompt = [];
6544    partitionedSavables.forEach(function (list) {
6545      if (ENTITY_NAMES[list[0].name]) {
6546        entityNamesForPrompt.push(ENTITY_NAMES[list[0].name](list.length));
6547      }
6548    }); // Get text-prompt phrase based on number of entity types changed.
6549  
6550    var placeholderPhrase = PLACEHOLDER_PHRASES[entityNamesForPrompt.length] || // Fallback for edge case that should not be observed (more than 5 entity types edited).
6551    Object(external_this_wp_i18n_["__"])('Changes have been made to multiple entity types.'); // eslint-disable-next-line @wordpress/valid-sprintf
6552  
6553  
6554    var promptPhrase = external_this_wp_i18n_["sprintf"].apply(void 0, [placeholderPhrase].concat(entityNamesForPrompt)); // Unchecked entities to be ignored by save function.
6555  
6556    var _useState = Object(external_this_wp_element_["useState"])([]),
6557        _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
6558        unselectedEntities = _useState2[0],
6559        _setUnselectedEntities = _useState2[1];
6560  
6561    var setUnselectedEntities = function setUnselectedEntities(_ref2, checked) {
6562      var kind = _ref2.kind,
6563          name = _ref2.name,
6564          key = _ref2.key;
6565  
6566      if (checked) {
6567        _setUnselectedEntities(unselectedEntities.filter(function (elt) {
6568          return elt.kind !== kind || elt.name !== name || elt.key !== key;
6569        }));
6570      } else {
6571        _setUnselectedEntities([].concat(Object(toConsumableArray["a" /* default */])(unselectedEntities), [{
6572          kind: kind,
6573          name: name,
6574          key: key
6575        }]));
6576      }
6577    };
6578  
6579    var saveCheckedEntities = function saveCheckedEntities() {
6580      var entitiesToSave = dirtyEntityRecords.filter(function (_ref3) {
6581        var kind = _ref3.kind,
6582            name = _ref3.name,
6583            key = _ref3.key;
6584        return !Object(external_this_lodash_["some"])(unselectedEntities, function (elt) {
6585          return elt.kind === kind && elt.name === name && elt.key === key;
6586        });
6587      });
6588      close(entitiesToSave);
6589      entitiesToSave.forEach(function (_ref4) {
6590        var kind = _ref4.kind,
6591            name = _ref4.name,
6592            key = _ref4.key;
6593        saveEditedEntityRecord(kind, name, key);
6594      });
6595    };
6596  
6597    var _useState3 = Object(external_this_wp_element_["useState"])(false),
6598        _useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
6599        isReviewing = _useState4[0],
6600        setIsReviewing = _useState4[1];
6601  
6602    var toggleIsReviewing = function toggleIsReviewing() {
6603      return setIsReviewing(function (value) {
6604        return !value;
6605      });
6606    }; // Explicitly define this with no argument passed.  Using `close` on
6607    // its own will use the event object in place of the expected saved entities.
6608  
6609  
6610    var dismissPanel = Object(external_this_wp_element_["useCallback"])(function () {
6611      return close();
6612    }, [close]);
6613    return isOpen ? Object(external_this_wp_element_["createElement"])("div", {
6614      className: "entities-saved-states__panel"
6615    }, Object(external_this_wp_element_["createElement"])("div", {
6616      className: "entities-saved-states__panel-header"
6617    }, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
6618      isPrimary: true,
6619      disabled: dirtyEntityRecords.length - unselectedEntities.length === 0,
6620      onClick: saveCheckedEntities,
6621      className: "editor-entities-saved-states__save-button"
6622    }, Object(external_this_wp_i18n_["__"])('Save')), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
6623      onClick: dismissPanel,
6624      icon: library_close["a" /* default */],
6625      label: Object(external_this_wp_i18n_["__"])('Close panel')
6626    })), Object(external_this_wp_element_["createElement"])("div", {
6627      className: "entities-saved-states__text-prompt"
6628    }, Object(external_this_wp_element_["createElement"])("strong", null, Object(external_this_wp_i18n_["__"])('Are you ready to save?')), Object(external_this_wp_element_["createElement"])("p", null, promptPhrase), Object(external_this_wp_element_["createElement"])("p", null, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
6629      onClick: toggleIsReviewing,
6630      isLink: true,
6631      className: "entities-saved-states__review-changes-button"
6632    }, isReviewing ? Object(external_this_wp_i18n_["__"])('Hide changes.') : Object(external_this_wp_i18n_["__"])('Review changes.')))), isReviewing && partitionedSavables.map(function (list) {
6633      return Object(external_this_wp_element_["createElement"])(EntityTypeList, {
6634        key: list[0].name,
6635        list: list,
6636        closePanel: dismissPanel,
6637        unselectedEntities: unselectedEntities,
6638        setUnselectedEntities: setUnselectedEntities
6639      });
6640    })) : null;
6641  }
6642  
6643  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
6644  var assertThisInitialized = __webpack_require__(16);
6645  
6646  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/error-boundary/index.js
6647  
6648  
6649  
6650  
6651  
6652  
6653  
6654  
6655  function error_boundary_createSuper(Derived) { var hasNativeReflectConstruct = error_boundary_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
6656  
6657  function error_boundary_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
6658  
6659  /**
6660   * WordPress dependencies
6661   */
6662  
6663  
6664  
6665  
6666  
6667  
6668  var error_boundary_ErrorBoundary = /*#__PURE__*/function (_Component) {
6669    Object(inherits["a" /* default */])(ErrorBoundary, _Component);
6670  
6671    var _super = error_boundary_createSuper(ErrorBoundary);
6672  
6673    function ErrorBoundary() {
6674      var _this;
6675  
6676      Object(classCallCheck["a" /* default */])(this, ErrorBoundary);
6677  
6678      _this = _super.apply(this, arguments);
6679      _this.reboot = _this.reboot.bind(Object(assertThisInitialized["a" /* default */])(_this));
6680      _this.getContent = _this.getContent.bind(Object(assertThisInitialized["a" /* default */])(_this));
6681      _this.state = {
6682        error: null
6683      };
6684      return _this;
6685    }
6686  
6687    Object(createClass["a" /* default */])(ErrorBoundary, [{
6688      key: "componentDidCatch",
6689      value: function componentDidCatch(error) {
6690        this.setState({
6691          error: error
6692        });
6693      }
6694    }, {
6695      key: "reboot",
6696      value: function reboot() {
6697        this.props.onError();
6698      }
6699    }, {
6700      key: "getContent",
6701      value: function getContent() {
6702        try {
6703          // While `select` in a component is generally discouraged, it is
6704          // used here because it (a) reduces the chance of data loss in the
6705          // case of additional errors by performing a direct retrieval and
6706          // (b) avoids the performance cost associated with unnecessary
6707          // content serialization throughout the lifetime of a non-erroring
6708          // application.
6709          return Object(external_this_wp_data_["select"])('core/editor').getEditedPostContent();
6710        } catch (error) {}
6711      }
6712    }, {
6713      key: "render",
6714      value: function render() {
6715        var error = this.state.error;
6716  
6717        if (!error) {
6718          return this.props.children;
6719        }
6720  
6721        return Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["Warning"], {
6722          className: "editor-error-boundary",
6723          actions: [Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
6724            key: "recovery",
6725            onClick: this.reboot,
6726            isSecondary: true
6727          }, Object(external_this_wp_i18n_["__"])('Attempt Recovery')), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["ClipboardButton"], {
6728            key: "copy-post",
6729            text: this.getContent,
6730            isSecondary: true
6731          }, Object(external_this_wp_i18n_["__"])('Copy Post Text')), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["ClipboardButton"], {
6732            key: "copy-error",
6733            text: error.stack,
6734            isSecondary: true
6735          }, Object(external_this_wp_i18n_["__"])('Copy Error'))]
6736        }, Object(external_this_wp_i18n_["__"])('The editor has encountered an unexpected error.'));
6737      }
6738    }]);
6739  
6740    return ErrorBoundary;
6741  }(external_this_wp_element_["Component"]);
6742  
6743  /* harmony default export */ var error_boundary = (error_boundary_ErrorBoundary);
6744  
6745  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/local-autosave-monitor/index.js
6746  
6747  
6748  /**
6749   * External dependencies
6750   */
6751  
6752  /**
6753   * WordPress dependencies
6754   */
6755  
6756  
6757  
6758  
6759  
6760  
6761  /**
6762   * Internal dependencies
6763   */
6764  
6765  
6766  
6767  var requestIdleCallback = window.requestIdleCallback ? window.requestIdleCallback : window.requestAnimationFrame;
6768  /**
6769   * Function which returns true if the current environment supports browser
6770   * sessionStorage, or false otherwise. The result of this function is cached and
6771   * reused in subsequent invocations.
6772   */
6773  
6774  var hasSessionStorageSupport = Object(external_this_lodash_["once"])(function () {
6775    try {
6776      // Private Browsing in Safari 10 and earlier will throw an error when
6777      // attempting to set into sessionStorage. The test here is intentional in
6778      // causing a thrown error as condition bailing from local autosave.
6779      window.sessionStorage.setItem('__wpEditorTestSessionStorage', '');
6780      window.sessionStorage.removeItem('__wpEditorTestSessionStorage');
6781      return true;
6782    } catch (error) {
6783      return false;
6784    }
6785  });
6786  /**
6787   * Custom hook which manages the creation of a notice prompting the user to
6788   * restore a local autosave, if one exists.
6789   */
6790  
6791  function useAutosaveNotice() {
6792    var _useSelect = Object(external_this_wp_data_["useSelect"])(function (select) {
6793      return {
6794        postId: select('core/editor').getCurrentPostId(),
6795        isEditedPostNew: select('core/editor').isEditedPostNew(),
6796        getEditedPostAttribute: select('core/editor').getEditedPostAttribute,
6797        hasRemoteAutosave: !!select('core/editor').getEditorSettings().autosave
6798      };
6799    }, []),
6800        postId = _useSelect.postId,
6801        isEditedPostNew = _useSelect.isEditedPostNew,
6802        getEditedPostAttribute = _useSelect.getEditedPostAttribute,
6803        hasRemoteAutosave = _useSelect.hasRemoteAutosave;
6804  
6805    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/notices'),
6806        createWarningNotice = _useDispatch.createWarningNotice,
6807        removeNotice = _useDispatch.removeNotice;
6808  
6809    var _useDispatch2 = Object(external_this_wp_data_["useDispatch"])('core/editor'),
6810        editPost = _useDispatch2.editPost,
6811        resetEditorBlocks = _useDispatch2.resetEditorBlocks;
6812  
6813    Object(external_this_wp_element_["useEffect"])(function () {
6814      var localAutosave = localAutosaveGet(postId, isEditedPostNew);
6815  
6816      if (!localAutosave) {
6817        return;
6818      }
6819  
6820      try {
6821        localAutosave = JSON.parse(localAutosave);
6822      } catch (error) {
6823        // Not usable if it can't be parsed.
6824        return;
6825      }
6826  
6827      var _localAutosave = localAutosave,
6828          title = _localAutosave.post_title,
6829          content = _localAutosave.content,
6830          excerpt = _localAutosave.excerpt;
6831      var edits = {
6832        title: title,
6833        content: content,
6834        excerpt: excerpt
6835      };
6836      {
6837        // Only display a notice if there is a difference between what has been
6838        // saved and that which is stored in sessionStorage.
6839        var hasDifference = Object.keys(edits).some(function (key) {
6840          return edits[key] !== getEditedPostAttribute(key);
6841        });
6842  
6843        if (!hasDifference) {
6844          // If there is no difference, it can be safely ejected from storage.
6845          localAutosaveClear(postId, isEditedPostNew);
6846          return;
6847        }
6848      }
6849  
6850      if (hasRemoteAutosave) {
6851        return;
6852      }
6853  
6854      var noticeId = Object(external_this_lodash_["uniqueId"])('wpEditorAutosaveRestore');
6855      createWarningNotice(Object(external_this_wp_i18n_["__"])('The backup of this post in your browser is different from the version below.'), {
6856        id: noticeId,
6857        actions: [{
6858          label: Object(external_this_wp_i18n_["__"])('Restore the backup'),
6859          onClick: function onClick() {
6860            editPost(Object(external_this_lodash_["omit"])(edits, ['content']));
6861            resetEditorBlocks(Object(external_this_wp_blocks_["parse"])(edits.content));
6862            removeNotice(noticeId);
6863          }
6864        }]
6865      });
6866    }, [isEditedPostNew, postId]);
6867  }
6868  /**
6869   * Custom hook which ejects a local autosave after a successful save occurs.
6870   */
6871  
6872  
6873  function useAutosavePurge() {
6874    var _useSelect2 = Object(external_this_wp_data_["useSelect"])(function (select) {
6875      return {
6876        postId: select('core/editor').getCurrentPostId(),
6877        isEditedPostNew: select('core/editor').isEditedPostNew(),
6878        isDirty: select('core/editor').isEditedPostDirty(),
6879        isAutosaving: select('core/editor').isAutosavingPost(),
6880        didError: select('core/editor').didPostSaveRequestFail()
6881      };
6882    }, []),
6883        postId = _useSelect2.postId,
6884        isEditedPostNew = _useSelect2.isEditedPostNew,
6885        isDirty = _useSelect2.isDirty,
6886        isAutosaving = _useSelect2.isAutosaving,
6887        didError = _useSelect2.didError;
6888  
6889    var lastIsDirty = Object(external_this_wp_element_["useRef"])(isDirty);
6890    var lastIsAutosaving = Object(external_this_wp_element_["useRef"])(isAutosaving);
6891    Object(external_this_wp_element_["useEffect"])(function () {
6892      if (!didError && (lastIsAutosaving.current && !isAutosaving || lastIsDirty.current && !isDirty)) {
6893        localAutosaveClear(postId, isEditedPostNew);
6894      }
6895  
6896      lastIsDirty.current = isDirty;
6897      lastIsAutosaving.current = isAutosaving;
6898    }, [isDirty, isAutosaving, didError]); // Once the isEditedPostNew changes from true to false, let's clear the auto-draft autosave.
6899  
6900    var wasEditedPostNew = Object(external_this_wp_compose_["usePrevious"])(isEditedPostNew);
6901    var prevPostId = Object(external_this_wp_compose_["usePrevious"])(postId);
6902    Object(external_this_wp_element_["useEffect"])(function () {
6903      if (prevPostId === postId && wasEditedPostNew && !isEditedPostNew) {
6904        localAutosaveClear(postId, true);
6905      }
6906    }, [isEditedPostNew, postId]);
6907  }
6908  
6909  function LocalAutosaveMonitor() {
6910    var _useDispatch3 = Object(external_this_wp_data_["useDispatch"])('core/editor'),
6911        autosave = _useDispatch3.autosave;
6912  
6913    var deferedAutosave = Object(external_this_wp_element_["useCallback"])(function () {
6914      requestIdleCallback(function () {
6915        return autosave({
6916          local: true
6917        });
6918      });
6919    }, []);
6920    useAutosaveNotice();
6921    useAutosavePurge();
6922  
6923    var _useSelect3 = Object(external_this_wp_data_["useSelect"])(function (select) {
6924      return {
6925        localAutosaveInterval: select('core/editor').getEditorSettings().__experimentalLocalAutosaveInterval
6926      };
6927    }, []),
6928        localAutosaveInterval = _useSelect3.localAutosaveInterval;
6929  
6930    return Object(external_this_wp_element_["createElement"])(autosave_monitor, {
6931      interval: localAutosaveInterval,
6932      autosave: deferedAutosave
6933    });
6934  }
6935  
6936  /* harmony default export */ var local_autosave_monitor = (Object(external_this_wp_compose_["ifCondition"])(hasSessionStorageSupport)(LocalAutosaveMonitor));
6937  
6938  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/page-attributes/check.js
6939  /**
6940   * External dependencies
6941   */
6942  
6943  /**
6944   * WordPress dependencies
6945   */
6946  
6947  
6948  function PageAttributesCheck(_ref) {
6949    var availableTemplates = _ref.availableTemplates,
6950        postType = _ref.postType,
6951        children = _ref.children;
6952    var supportsPageAttributes = Object(external_this_lodash_["get"])(postType, ['supports', 'page-attributes'], false); // Only render fields if post type supports page attributes or available templates exist.
6953  
6954    if (!supportsPageAttributes && Object(external_this_lodash_["isEmpty"])(availableTemplates)) {
6955      return null;
6956    }
6957  
6958    return children;
6959  }
6960  /* harmony default export */ var page_attributes_check = (Object(external_this_wp_data_["withSelect"])(function (select) {
6961    var _select = select('core/editor'),
6962        getEditedPostAttribute = _select.getEditedPostAttribute,
6963        getEditorSettings = _select.getEditorSettings;
6964  
6965    var _select2 = select('core'),
6966        getPostType = _select2.getPostType;
6967  
6968    var _getEditorSettings = getEditorSettings(),
6969        availableTemplates = _getEditorSettings.availableTemplates;
6970  
6971    return {
6972      postType: getPostType(getEditedPostAttribute('type')),
6973      availableTemplates: availableTemplates
6974    };
6975  })(PageAttributesCheck));
6976  
6977  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-type-support-check/index.js
6978  /**
6979   * External dependencies
6980   */
6981  
6982  /**
6983   * WordPress dependencies
6984   */
6985  
6986  
6987  /**
6988   * A component which renders its own children only if the current editor post
6989   * type supports one of the given `supportKeys` prop.
6990   *
6991   * @param {Object}    props             Props.
6992   * @param {string}    [props.postType]  Current post type.
6993   * @param {WPElement} props.children    Children to be rendered if post
6994   *                                                                   type supports.
6995   * @param {(string|string[])}                      props.supportKeys String or string array of keys
6996   *                                                                   to test.
6997   *
6998   * @return {WPComponent} The component to be rendered.
6999   */
7000  
7001  function PostTypeSupportCheck(_ref) {
7002    var postType = _ref.postType,
7003        children = _ref.children,
7004        supportKeys = _ref.supportKeys;
7005    var isSupported = true;
7006  
7007    if (postType) {
7008      isSupported = Object(external_this_lodash_["some"])(Object(external_this_lodash_["castArray"])(supportKeys), function (key) {
7009        return !!postType.supports[key];
7010      });
7011    }
7012  
7013    if (!isSupported) {
7014      return null;
7015    }
7016  
7017    return children;
7018  }
7019  /* harmony default export */ var post_type_support_check = (Object(external_this_wp_data_["withSelect"])(function (select) {
7020    var _select = select('core/editor'),
7021        getEditedPostAttribute = _select.getEditedPostAttribute;
7022  
7023    var _select2 = select('core'),
7024        getPostType = _select2.getPostType;
7025  
7026    return {
7027      postType: getPostType(getEditedPostAttribute('type'))
7028    };
7029  })(PostTypeSupportCheck));
7030  
7031  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/page-attributes/order.js
7032  
7033  
7034  /**
7035   * External dependencies
7036   */
7037  
7038  /**
7039   * WordPress dependencies
7040   */
7041  
7042  
7043  
7044  
7045  
7046  /**
7047   * Internal dependencies
7048   */
7049  
7050  
7051  var PageAttributesOrder = Object(external_this_wp_compose_["withState"])({
7052    orderInput: null
7053  })(function (_ref) {
7054    var onUpdateOrder = _ref.onUpdateOrder,
7055        _ref$order = _ref.order,
7056        order = _ref$order === void 0 ? 0 : _ref$order,
7057        orderInput = _ref.orderInput,
7058        setState = _ref.setState;
7059  
7060    var setUpdatedOrder = function setUpdatedOrder(value) {
7061      setState({
7062        orderInput: value
7063      });
7064      var newOrder = Number(value);
7065  
7066      if (Number.isInteger(newOrder) && Object(external_this_lodash_["invoke"])(value, ['trim']) !== '') {
7067        onUpdateOrder(Number(value));
7068      }
7069    };
7070  
7071    var value = orderInput === null ? order : orderInput;
7072    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["TextControl"], {
7073      className: "editor-page-attributes__order",
7074      type: "number",
7075      label: Object(external_this_wp_i18n_["__"])('Order'),
7076      value: value,
7077      onChange: setUpdatedOrder,
7078      size: 6,
7079      onBlur: function onBlur() {
7080        setState({
7081          orderInput: null
7082        });
7083      }
7084    });
7085  });
7086  
7087  function PageAttributesOrderWithChecks(props) {
7088    return Object(external_this_wp_element_["createElement"])(post_type_support_check, {
7089      supportKeys: "page-attributes"
7090    }, Object(external_this_wp_element_["createElement"])(PageAttributesOrder, props));
7091  }
7092  
7093  /* harmony default export */ var page_attributes_order = (Object(external_this_wp_compose_["compose"])([Object(external_this_wp_data_["withSelect"])(function (select) {
7094    return {
7095      order: select('core/editor').getEditedPostAttribute('menu_order')
7096    };
7097  }), Object(external_this_wp_data_["withDispatch"])(function (dispatch) {
7098    return {
7099      onUpdateOrder: function onUpdateOrder(order) {
7100        dispatch('core/editor').editPost({
7101          menu_order: order
7102        });
7103      }
7104    };
7105  })])(PageAttributesOrderWithChecks));
7106  
7107  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/utils/terms.js
7108  
7109  
7110  function terms_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
7111  
7112  function terms_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { terms_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { terms_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7113  
7114  /**
7115   * External dependencies
7116   */
7117  
7118  /**
7119   * Returns terms in a tree form.
7120   *
7121   * @param {Array} flatTerms  Array of terms in flat format.
7122   *
7123   * @return {Array} Array of terms in tree format.
7124   */
7125  
7126  function buildTermsTree(flatTerms) {
7127    var flatTermsWithParentAndChildren = flatTerms.map(function (term) {
7128      return terms_objectSpread({
7129        children: [],
7130        parent: null
7131      }, term);
7132    });
7133    var termsByParent = Object(external_this_lodash_["groupBy"])(flatTermsWithParentAndChildren, 'parent');
7134  
7135    if (termsByParent.null && termsByParent.null.length) {
7136      return flatTermsWithParentAndChildren;
7137    }
7138  
7139    var fillWithChildren = function fillWithChildren(terms) {
7140      return terms.map(function (term) {
7141        var children = termsByParent[term.id];
7142        return terms_objectSpread(terms_objectSpread({}, term), {}, {
7143          children: children && children.length ? fillWithChildren(children) : []
7144        });
7145      });
7146    };
7147  
7148    return fillWithChildren(termsByParent['0'] || []);
7149  }
7150  
7151  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/page-attributes/parent.js
7152  
7153  
7154  
7155  
7156  /**
7157   * External dependencies
7158   */
7159  
7160  /**
7161   * WordPress dependencies
7162   */
7163  
7164  
7165  
7166  
7167  
7168  /**
7169   * Internal dependencies
7170   */
7171  
7172  
7173  
7174  function getTitle(post) {
7175    var _post$title;
7176  
7177    return (post === null || post === void 0 ? void 0 : (_post$title = post.title) === null || _post$title === void 0 ? void 0 : _post$title.rendered) ? post.title.rendered : "#".concat(post.id, " (").concat(Object(external_this_wp_i18n_["__"])('no title'), ")");
7178  }
7179  
7180  function PageAttributesParent() {
7181    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/editor'),
7182        editPost = _useDispatch.editPost;
7183  
7184    var _useState = Object(external_this_wp_element_["useState"])(false),
7185        _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
7186        fieldValue = _useState2[0],
7187        setFieldValue = _useState2[1];
7188  
7189    var isSearching = fieldValue;
7190  
7191    var _useSelect = Object(external_this_wp_data_["useSelect"])(function (select) {
7192      var _select = select('core'),
7193          getPostType = _select.getPostType,
7194          getEntityRecords = _select.getEntityRecords,
7195          getEntityRecord = _select.getEntityRecord;
7196  
7197      var _select2 = select('core/editor'),
7198          getCurrentPostId = _select2.getCurrentPostId,
7199          getEditedPostAttribute = _select2.getEditedPostAttribute;
7200  
7201      var postTypeSlug = getEditedPostAttribute('type');
7202      var pageId = getEditedPostAttribute('parent');
7203      var pType = getPostType(postTypeSlug);
7204      var postId = getCurrentPostId();
7205      var isHierarchical = Object(external_this_lodash_["get"])(pType, ['hierarchical'], false);
7206      var query = {
7207        per_page: 100,
7208        exclude: postId,
7209        parent_exclude: postId,
7210        orderby: 'menu_order',
7211        order: 'asc',
7212        _fields: 'id,title,parent'
7213      }; // Perform a search when the field is changed.
7214  
7215      if (isSearching) {
7216        query.search = fieldValue;
7217      }
7218  
7219      return {
7220        parentPostId: pageId,
7221        parentPost: pageId ? getEntityRecord('postType', postTypeSlug, pageId) : null,
7222        items: isHierarchical ? getEntityRecords('postType', postTypeSlug, query) : [],
7223        postType: pType
7224      };
7225    }, [fieldValue]),
7226        parentPost = _useSelect.parentPost,
7227        parentPostId = _useSelect.parentPostId,
7228        items = _useSelect.items,
7229        postType = _useSelect.postType;
7230  
7231    var isHierarchical = Object(external_this_lodash_["get"])(postType, ['hierarchical'], false);
7232    var parentPageLabel = Object(external_this_lodash_["get"])(postType, ['labels', 'parent_item_colon']);
7233    var pageItems = items || [];
7234  
7235    var getOptionsFromTree = function getOptionsFromTree(tree) {
7236      var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
7237      return Object(external_this_lodash_["flatMap"])(tree, function (treeNode) {
7238        return [{
7239          value: treeNode.id,
7240          label: Object(external_this_lodash_["repeat"])('— ', level) + Object(external_this_lodash_["unescape"])(treeNode.name)
7241        }].concat(Object(toConsumableArray["a" /* default */])(getOptionsFromTree(treeNode.children || [], level + 1)));
7242      });
7243    };
7244  
7245    var parentOptions = Object(external_this_wp_element_["useMemo"])(function () {
7246      var tree = pageItems.map(function (item) {
7247        return {
7248          id: item.id,
7249          parent: item.parent,
7250          name: getTitle(item)
7251        };
7252      }); // Only build a hierarchical tree when not searching.
7253  
7254      if (!isSearching) {
7255        tree = buildTermsTree(tree);
7256      }
7257  
7258      var opts = getOptionsFromTree(tree); // Ensure the current parent is in the options list.
7259  
7260      var optsHasParent = Object(external_this_lodash_["find"])(opts, function (item) {
7261        return item.value === parentPostId;
7262      });
7263  
7264      if (parentPost && !optsHasParent) {
7265        opts.unshift({
7266          value: parentPostId,
7267          label: getTitle(parentPost)
7268        });
7269      }
7270  
7271      return opts;
7272    }, [pageItems]);
7273  
7274    if (!isHierarchical || !parentPageLabel) {
7275      return null;
7276    }
7277    /**
7278     * Handle user input.
7279     *
7280     * @param {string} inputValue The current value of the input field.
7281     */
7282  
7283  
7284    var handleKeydown = function handleKeydown(inputValue) {
7285      setFieldValue(inputValue);
7286    };
7287    /**
7288     * Handle author selection.
7289     *
7290     * @param {Object} selectedPostId The selected Author.
7291     */
7292  
7293  
7294    var handleChange = function handleChange(selectedPostId) {
7295      editPost({
7296        parent: selectedPostId
7297      });
7298    };
7299  
7300    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["ComboboxControl"], {
7301      className: "editor-page-attributes__parent",
7302      label: parentPageLabel,
7303      value: parentPostId,
7304      options: parentOptions,
7305      onFilterValueChange: Object(external_this_lodash_["debounce"])(handleKeydown, 300),
7306      onChange: handleChange
7307    });
7308  }
7309  /* harmony default export */ var page_attributes_parent = (PageAttributesParent);
7310  
7311  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/page-attributes/template.js
7312  
7313  
7314  /**
7315   * External dependencies
7316   */
7317  
7318  /**
7319   * WordPress dependencies
7320   */
7321  
7322  
7323  
7324  
7325  
7326  function PageTemplate(_ref) {
7327    var availableTemplates = _ref.availableTemplates,
7328        selectedTemplate = _ref.selectedTemplate,
7329        onUpdate = _ref.onUpdate;
7330  
7331    if (Object(external_this_lodash_["isEmpty"])(availableTemplates)) {
7332      return null;
7333    }
7334  
7335    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["SelectControl"], {
7336      label: Object(external_this_wp_i18n_["__"])('Template:'),
7337      value: selectedTemplate,
7338      onChange: onUpdate,
7339      className: "editor-page-attributes__template",
7340      options: Object(external_this_lodash_["map"])(availableTemplates, function (templateName, templateSlug) {
7341        return {
7342          value: templateSlug,
7343          label: templateName
7344        };
7345      })
7346    });
7347  }
7348  /* harmony default export */ var page_attributes_template = (Object(external_this_wp_compose_["compose"])(Object(external_this_wp_data_["withSelect"])(function (select) {
7349    var _select = select('core/editor'),
7350        getEditedPostAttribute = _select.getEditedPostAttribute,
7351        getEditorSettings = _select.getEditorSettings;
7352  
7353    var _getEditorSettings = getEditorSettings(),
7354        availableTemplates = _getEditorSettings.availableTemplates;
7355  
7356    return {
7357      selectedTemplate: getEditedPostAttribute('template'),
7358      availableTemplates: availableTemplates
7359    };
7360  }), Object(external_this_wp_data_["withDispatch"])(function (dispatch) {
7361    return {
7362      onUpdate: function onUpdate(templateSlug) {
7363        dispatch('core/editor').editPost({
7364          template: templateSlug || ''
7365        });
7366      }
7367    };
7368  }))(PageTemplate));
7369  
7370  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-author/check.js
7371  
7372  
7373  /**
7374   * External dependencies
7375   */
7376  
7377  /**
7378   * WordPress dependencies
7379   */
7380  
7381  
7382  
7383  /**
7384   * Internal dependencies
7385   */
7386  
7387  
7388  function PostAuthorCheck(_ref) {
7389    var hasAssignAuthorAction = _ref.hasAssignAuthorAction,
7390        authors = _ref.authors,
7391        children = _ref.children;
7392  
7393    if (!hasAssignAuthorAction || !authors || 1 >= authors.length) {
7394      return null;
7395    }
7396  
7397    return Object(external_this_wp_element_["createElement"])(post_type_support_check, {
7398      supportKeys: "author"
7399    }, children);
7400  }
7401  /* harmony default export */ var post_author_check = (Object(external_this_wp_compose_["compose"])([Object(external_this_wp_data_["withSelect"])(function (select) {
7402    var post = select('core/editor').getCurrentPost();
7403    return {
7404      hasAssignAuthorAction: Object(external_this_lodash_["get"])(post, ['_links', 'wp:action-assign-author'], false),
7405      postType: select('core/editor').getCurrentPostType(),
7406      authors: select('core').getAuthors()
7407    };
7408  }), external_this_wp_compose_["withInstanceId"]])(PostAuthorCheck));
7409  
7410  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-author/index.js
7411  
7412  
7413  
7414  
7415  /**
7416   * External dependencies
7417   */
7418  
7419  /**
7420   * WordPress dependencies
7421   */
7422  
7423  
7424  
7425  
7426  
7427  /**
7428   * Internal dependencies
7429   */
7430  
7431  
7432  
7433  function PostAuthor() {
7434    var _useState = Object(external_this_wp_element_["useState"])(),
7435        _useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
7436        fieldValue = _useState2[0],
7437        setFieldValue = _useState2[1];
7438  
7439    var _useSelect = Object(external_this_wp_data_["useSelect"])(function (select) {
7440      var _select = select('core'),
7441          __unstableGetAuthor = _select.__unstableGetAuthor,
7442          getAuthors = _select.getAuthors,
7443          isResolving = _select.isResolving;
7444  
7445      var _select2 = select('core/editor'),
7446          getEditedPostAttribute = _select2.getEditedPostAttribute;
7447  
7448      var author = __unstableGetAuthor(getEditedPostAttribute('author'));
7449  
7450      var query = !fieldValue || '' === fieldValue ? {} : {
7451        search: fieldValue
7452      };
7453      return {
7454        authorId: getEditedPostAttribute('author'),
7455        postAuthor: author,
7456        authors: getAuthors(query),
7457        isLoading: isResolving('core', 'getAuthors', [query])
7458      };
7459    }, [fieldValue]),
7460        authorId = _useSelect.authorId,
7461        isLoading = _useSelect.isLoading,
7462        authors = _useSelect.authors,
7463        postAuthor = _useSelect.postAuthor;
7464  
7465    var _useDispatch = Object(external_this_wp_data_["useDispatch"])('core/editor'),
7466        editPost = _useDispatch.editPost;
7467  
7468    var authorOptions = Object(external_this_wp_element_["useMemo"])(function () {
7469      var fetchedAuthors = (authors !== null && authors !== void 0 ? authors : []).map(function (author) {
7470        return {
7471          value: author.id,
7472          label: author.name
7473        };
7474      }); // Ensure the current author is included in the dropdown list.
7475  
7476      var foundAuthor = fetchedAuthors.findIndex(function (_ref) {
7477        var value = _ref.value;
7478        return (postAuthor === null || postAuthor === void 0 ? void 0 : postAuthor.id) === value;
7479      });
7480  
7481      if (foundAuthor < 0 && postAuthor) {
7482        return [{
7483          value: postAuthor.id,
7484          label: postAuthor.name
7485        }].concat(Object(toConsumableArray["a" /* default */])(fetchedAuthors));
7486      }
7487  
7488      return fetchedAuthors;
7489    }, [authors, postAuthor]); // Initializes the post author properly
7490    // Also ensures external changes are reflected.
7491  
7492    Object(external_this_wp_element_["useEffect"])(function () {
7493      if (postAuthor) {
7494        setFieldValue(postAuthor.name);
7495      }
7496    }, [postAuthor]);
7497    /**
7498     * Handle author selection.
7499     *
7500     * @param {number} postAuthorId The selected Author.
7501     */
7502  
7503    var handleSelect = function handleSelect(postAuthorId) {
7504      if (!postAuthorId) {
7505        return;
7506      }
7507  
7508      editPost({
7509        author: postAuthorId
7510      });
7511    };
7512    /**
7513     * Handle user input.
7514     *
7515     * @param {string} inputValue The current value of the input field.
7516     */
7517  
7518  
7519    var handleKeydown = function handleKeydown(inputValue) {
7520      setFieldValue(inputValue);
7521    };
7522  
7523    if (!postAuthor) {
7524      return null;
7525    }
7526  
7527    return Object(external_this_wp_element_["createElement"])(post_author_check, null, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["ComboboxControl"], {
7528      label: Object(external_this_wp_i18n_["__"])('Author'),
7529      options: authorOptions,
7530      value: authorId,
7531      onFilterValueChange: Object(external_this_lodash_["debounce"])(handleKeydown, 300),
7532      onChange: handleSelect,
7533      isLoading: isLoading,
7534      allowReset: false
7535    }));
7536  }
7537  
7538  /* harmony default export */ var post_author = (PostAuthor);
7539  
7540  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-comments/index.js
7541  
7542  
7543  
7544  /**
7545   * WordPress dependencies
7546   */
7547  
7548  
7549  
7550  
7551  
7552  function PostComments(_ref) {
7553    var _ref$commentStatus = _ref.commentStatus,
7554        commentStatus = _ref$commentStatus === void 0 ? 'open' : _ref$commentStatus,
7555        props = Object(objectWithoutProperties["a" /* default */])(_ref, ["commentStatus"]);
7556  
7557    var onToggleComments = function onToggleComments() {
7558      return props.editPost({
7559        comment_status: commentStatus === 'open' ? 'closed' : 'open'
7560      });
7561    };
7562  
7563    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["CheckboxControl"], {
7564      label: Object(external_this_wp_i18n_["__"])('Allow comments'),
7565      checked: commentStatus === 'open',
7566      onChange: onToggleComments
7567    });
7568  }
7569  
7570  /* harmony default export */ var post_comments = (Object(external_this_wp_compose_["compose"])([Object(external_this_wp_data_["withSelect"])(function (select) {
7571    return {
7572      commentStatus: select('core/editor').getEditedPostAttribute('comment_status')
7573    };
7574  }), Object(external_this_wp_data_["withDispatch"])(function (dispatch) {
7575    return {
7576      editPost: dispatch('core/editor').editPost
7577    };
7578  })])(PostComments));
7579  
7580  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-excerpt/index.js
7581  
7582  
7583  /**
7584   * WordPress dependencies
7585   */
7586  
7587  
7588  
7589  
7590  
7591  function PostExcerpt(_ref) {
7592    var excerpt = _ref.excerpt,
7593        onUpdateExcerpt = _ref.onUpdateExcerpt;
7594    return Object(external_this_wp_element_["createElement"])("div", {
7595      className: "editor-post-excerpt"
7596    }, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["TextareaControl"], {
7597      label: Object(external_this_wp_i18n_["__"])('Write an excerpt (optional)'),
7598      className: "editor-post-excerpt__textarea",
7599      onChange: function onChange(value) {
7600        return onUpdateExcerpt(value);
7601      },
7602      value: excerpt
7603    }), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["ExternalLink"], {
7604      href: Object(external_this_wp_i18n_["__"])('https://wordpress.org/support/article/excerpt/')
7605    }, Object(external_this_wp_i18n_["__"])('Learn more about manual excerpts')));
7606  }
7607  
7608  /* harmony default export */ var post_excerpt = (Object(external_this_wp_compose_["compose"])([Object(external_this_wp_data_["withSelect"])(function (select) {
7609    return {
7610      excerpt: select('core/editor').getEditedPostAttribute('excerpt')
7611    };
7612  }), Object(external_this_wp_data_["withDispatch"])(function (dispatch) {
7613    return {
7614      onUpdateExcerpt: function onUpdateExcerpt(excerpt) {
7615        dispatch('core/editor').editPost({
7616          excerpt: excerpt
7617        });
7618      }
7619    };
7620  })])(PostExcerpt));
7621  
7622  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-excerpt/check.js
7623  
7624  
7625  
7626  /**
7627   * Internal dependencies
7628   */
7629  
7630  
7631  function PostExcerptCheck(props) {
7632    return Object(external_this_wp_element_["createElement"])(post_type_support_check, Object(esm_extends["a" /* default */])({}, props, {
7633      supportKeys: "excerpt"
7634    }));
7635  }
7636  
7637  /* harmony default export */ var post_excerpt_check = (PostExcerptCheck);
7638  
7639  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/theme-support-check/index.js
7640  /**
7641   * External dependencies
7642   */
7643  
7644  /**
7645   * WordPress dependencies
7646   */
7647  
7648  
7649  function ThemeSupportCheck(_ref) {
7650    var themeSupports = _ref.themeSupports,
7651        children = _ref.children,
7652        postType = _ref.postType,
7653        supportKeys = _ref.supportKeys;
7654    var isSupported = Object(external_this_lodash_["some"])(Object(external_this_lodash_["castArray"])(supportKeys), function (key) {
7655      var supported = Object(external_this_lodash_["get"])(themeSupports, [key], false); // 'post-thumbnails' can be boolean or an array of post types.
7656      // In the latter case, we need to verify `postType` exists
7657      // within `supported`. If `postType` isn't passed, then the check
7658      // should fail.
7659  
7660      if ('post-thumbnails' === key && Object(external_this_lodash_["isArray"])(supported)) {
7661        return Object(external_this_lodash_["includes"])(supported, postType);
7662      }
7663  
7664      return supported;
7665    });
7666  
7667    if (!isSupported) {
7668      return null;
7669    }
7670  
7671    return children;
7672  }
7673  /* harmony default export */ var theme_support_check = (Object(external_this_wp_data_["withSelect"])(function (select) {
7674    var _select = select('core'),
7675        getThemeSupports = _select.getThemeSupports;
7676  
7677    var _select2 = select('core/editor'),
7678        getEditedPostAttribute = _select2.getEditedPostAttribute;
7679  
7680    return {
7681      postType: getEditedPostAttribute('type'),
7682      themeSupports: getThemeSupports()
7683    };
7684  })(ThemeSupportCheck));
7685  
7686  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-featured-image/check.js
7687  
7688  
7689  
7690  /**
7691   * Internal dependencies
7692   */
7693  
7694  
7695  
7696  function PostFeaturedImageCheck(props) {
7697    return Object(external_this_wp_element_["createElement"])(theme_support_check, {
7698      supportKeys: "post-thumbnails"
7699    }, Object(external_this_wp_element_["createElement"])(post_type_support_check, Object(esm_extends["a" /* default */])({}, props, {
7700      supportKeys: "thumbnail"
7701    })));
7702  }
7703  
7704  /* harmony default export */ var post_featured_image_check = (PostFeaturedImageCheck);
7705  
7706  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-featured-image/index.js
7707  
7708  
7709  
7710  /**
7711   * External dependencies
7712   */
7713  
7714  /**
7715   * WordPress dependencies
7716   */
7717  
7718  
7719  
7720  
7721  
7722  
7723  
7724  /**
7725   * Internal dependencies
7726   */
7727  
7728  
7729  var ALLOWED_MEDIA_TYPES = ['image']; // Used when labels from post type were not yet loaded or when they are not present.
7730  
7731  var DEFAULT_FEATURE_IMAGE_LABEL = Object(external_this_wp_i18n_["__"])('Featured image');
7732  
7733  var DEFAULT_SET_FEATURE_IMAGE_LABEL = Object(external_this_wp_i18n_["__"])('Set featured image');
7734  
7735  var DEFAULT_REMOVE_FEATURE_IMAGE_LABEL = Object(external_this_wp_i18n_["__"])('Remove image');
7736  
7737  function PostFeaturedImage(_ref) {
7738    var _media$media_details$, _media$media_details$2;
7739  
7740    var currentPostId = _ref.currentPostId,
7741        featuredImageId = _ref.featuredImageId,
7742        onUpdateImage = _ref.onUpdateImage,
7743        onDropImage = _ref.onDropImage,
7744        onRemoveImage = _ref.onRemoveImage,
7745        media = _ref.media,
7746        postType = _ref.postType,
7747        noticeUI = _ref.noticeUI;
7748    var postLabel = Object(external_this_lodash_["get"])(postType, ['labels'], {});
7749    var instructions = Object(external_this_wp_element_["createElement"])("p", null, Object(external_this_wp_i18n_["__"])('To edit the featured image, you need permission to upload media.'));
7750    var mediaWidth, mediaHeight, mediaSourceUrl;
7751  
7752    if (media) {
7753      var mediaSize = Object(external_this_wp_hooks_["applyFilters"])('editor.PostFeaturedImage.imageSize', 'post-thumbnail', media.id, currentPostId);
7754  
7755      if (Object(external_this_lodash_["has"])(media, ['media_details', 'sizes', mediaSize])) {
7756        // use mediaSize when available
7757        mediaWidth = media.media_details.sizes[mediaSize].width;
7758        mediaHeight = media.media_details.sizes[mediaSize].height;
7759        mediaSourceUrl = media.media_details.sizes[mediaSize].source_url;
7760      } else {
7761        // get fallbackMediaSize if mediaSize is not available
7762        var fallbackMediaSize = Object(external_this_wp_hooks_["applyFilters"])('editor.PostFeaturedImage.imageSize', 'thumbnail', media.id, currentPostId);
7763  
7764        if (Object(external_this_lodash_["has"])(media, ['media_details', 'sizes', fallbackMediaSize])) {
7765          // use fallbackMediaSize when mediaSize is not available
7766          mediaWidth = media.media_details.sizes[fallbackMediaSize].width;
7767          mediaHeight = media.media_details.sizes[fallbackMediaSize].height;
7768          mediaSourceUrl = media.media_details.sizes[fallbackMediaSize].source_url;
7769        } else {
7770          // use full image size when mediaFallbackSize and mediaSize are not available
7771          mediaWidth = media.media_details.width;
7772          mediaHeight = media.media_details.height;
7773          mediaSourceUrl = media.source_url;
7774        }
7775      }
7776    }
7777  
7778    return Object(external_this_wp_element_["createElement"])(post_featured_image_check, null, noticeUI, Object(external_this_wp_element_["createElement"])("div", {
7779      className: "editor-post-featured-image"
7780    }, media && Object(external_this_wp_element_["createElement"])("div", {
7781      id: "editor-post-featured-image-".concat(featuredImageId, "-describedby"),
7782      className: "hidden"
7783    }, media.alt_text && Object(external_this_wp_i18n_["sprintf"])( // Translators: %s: The selected image alt text.
7784    Object(external_this_wp_i18n_["__"])('Current image: %s'), media.alt_text), !media.alt_text && Object(external_this_wp_i18n_["sprintf"])( // Translators: %s: The selected image filename.
7785    Object(external_this_wp_i18n_["__"])('The current image has no alternative text. The file name is: %s'), ((_media$media_details$ = media.media_details.sizes) === null || _media$media_details$ === void 0 ? void 0 : (_media$media_details$2 = _media$media_details$.full) === null || _media$media_details$2 === void 0 ? void 0 : _media$media_details$2.file) || media.slug)), Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["MediaUploadCheck"], {
7786      fallback: instructions
7787    }, Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["MediaUpload"], {
7788      title: postLabel.featured_image || DEFAULT_FEATURE_IMAGE_LABEL,
7789      onSelect: onUpdateImage,
7790      unstableFeaturedImageFlow: true,
7791      allowedTypes: ALLOWED_MEDIA_TYPES,
7792      modalClass: "editor-post-featured-image__media-modal",
7793      render: function render(_ref2) {
7794        var open = _ref2.open;
7795        return Object(external_this_wp_element_["createElement"])("div", {
7796          className: "editor-post-featured-image__container"
7797        }, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
7798          className: !featuredImageId ? 'editor-post-featured-image__toggle' : 'editor-post-featured-image__preview',
7799          onClick: open,
7800          "aria-label": !featuredImageId ? null : Object(external_this_wp_i18n_["__"])('Edit or update the image'),
7801          "aria-describedby": !featuredImageId ? null : "editor-post-featured-image-".concat(featuredImageId, "-describedby")
7802        }, !!featuredImageId && media && Object(external_this_wp_element_["createElement"])(external_this_wp_components_["ResponsiveWrapper"], {
7803          naturalWidth: mediaWidth,
7804          naturalHeight: mediaHeight,
7805          isInline: true
7806        }, Object(external_this_wp_element_["createElement"])("img", {
7807          src: mediaSourceUrl,
7808          alt: ""
7809        })), !!featuredImageId && !media && Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Spinner"], null), !featuredImageId && (postLabel.set_featured_image || DEFAULT_SET_FEATURE_IMAGE_LABEL)), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["DropZone"], {
7810          onFilesDrop: onDropImage
7811        }));
7812      },
7813      value: featuredImageId
7814    })), !!featuredImageId && media && !media.isLoading && Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["MediaUploadCheck"], null, Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["MediaUpload"], {
7815      title: postLabel.featured_image || DEFAULT_FEATURE_IMAGE_LABEL,
7816      onSelect: onUpdateImage,
7817      unstableFeaturedImageFlow: true,
7818      allowedTypes: ALLOWED_MEDIA_TYPES,
7819      modalClass: "editor-post-featured-image__media-modal",
7820      render: function render(_ref3) {
7821        var open = _ref3.open;
7822        return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
7823          onClick: open,
7824          isSecondary: true
7825        }, Object(external_this_wp_i18n_["__"])('Replace Image'));
7826      }
7827    })), !!featuredImageId && Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["MediaUploadCheck"], null, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
7828      onClick: onRemoveImage,
7829      isLink: true,
7830      isDestructive: true
7831    }, postLabel.remove_featured_image || DEFAULT_REMOVE_FEATURE_IMAGE_LABEL))));
7832  }
7833  
7834  var applyWithSelect = Object(external_this_wp_data_["withSelect"])(function (select) {
7835    var _select = select('core'),
7836        getMedia = _select.getMedia,
7837        getPostType = _select.getPostType;
7838  
7839    var _select2 = select('core/editor'),
7840        getCurrentPostId = _select2.getCurrentPostId,
7841        getEditedPostAttribute = _select2.getEditedPostAttribute;
7842  
7843    var featuredImageId = getEditedPostAttribute('featured_media');
7844    return {
7845      media: featuredImageId ? getMedia(featuredImageId) : null,
7846      currentPostId: getCurrentPostId(),
7847      postType: getPostType(getEditedPostAttribute('type')),
7848      featuredImageId: featuredImageId
7849    };
7850  });
7851  var applyWithDispatch = Object(external_this_wp_data_["withDispatch"])(function (dispatch, _ref4, _ref5) {
7852    var noticeOperations = _ref4.noticeOperations;
7853    var select = _ref5.select;
7854  
7855    var _dispatch = dispatch('core/editor'),
7856        editPost = _dispatch.editPost;
7857  
7858    return {
7859      onUpdateImage: function onUpdateImage(image) {
7860        editPost({
7861          featured_media: image.id
7862        });
7863      },
7864      onDropImage: function onDropImage(filesList) {
7865        select('core/block-editor').getSettings().mediaUpload({
7866          allowedTypes: ['image'],
7867          filesList: filesList,
7868          onFileChange: function onFileChange(_ref6) {
7869            var _ref7 = Object(slicedToArray["a" /* default */])(_ref6, 1),
7870                image = _ref7[0];
7871  
7872            editPost({
7873              featured_media: image.id
7874            });
7875          },
7876          onError: function onError(message) {
7877            noticeOperations.removeAllNotices();
7878            noticeOperations.createErrorNotice(message);
7879          }
7880        });
7881      },
7882      onRemoveImage: function onRemoveImage() {
7883        editPost({
7884          featured_media: 0
7885        });
7886      }
7887    };
7888  });
7889  /* harmony default export */ var post_featured_image = (Object(external_this_wp_compose_["compose"])(external_this_wp_components_["withNotices"], applyWithSelect, applyWithDispatch, Object(external_this_wp_components_["withFilters"])('editor.PostFeaturedImage'))(PostFeaturedImage));
7890  
7891  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-format/check.js
7892  
7893  
7894  
7895  
7896  /**
7897   * WordPress dependencies
7898   */
7899  
7900  /**
7901   * Internal dependencies
7902   */
7903  
7904  
7905  
7906  function PostFormatCheck(_ref) {
7907    var disablePostFormats = _ref.disablePostFormats,
7908        props = Object(objectWithoutProperties["a" /* default */])(_ref, ["disablePostFormats"]);
7909  
7910    return !disablePostFormats && Object(external_this_wp_element_["createElement"])(post_type_support_check, Object(esm_extends["a" /* default */])({}, props, {
7911      supportKeys: "post-formats"
7912    }));
7913  }
7914  
7915  /* harmony default export */ var post_format_check = (Object(external_this_wp_data_["withSelect"])(function (select) {
7916    var editorSettings = select('core/editor').getEditorSettings();
7917    return {
7918      disablePostFormats: editorSettings.disablePostFormats
7919    };
7920  })(PostFormatCheck));
7921  
7922  // CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-format/index.js
7923  
7924  
7925  /**
7926   * External dependencies
7927   */
7928  
7929  /**