[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

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

   1  this["wp"] = this["wp"] || {}; this["wp"]["blockEditor"] =
   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 = "tr0p");
  86  /******/ })
  87  /************************************************************************/
  88  /******/ ({
  89  
  90  /***/ "//Lo":
  91  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  92  
  93  "use strict";
  94  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
  95  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
  96  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
  97  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
  98  
  99  
 100  /**
 101   * WordPress dependencies
 102   */
 103  
 104  const blockDefault = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 105    xmlns: "http://www.w3.org/2000/svg",
 106    viewBox: "0 0 24 24"
 107  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 108    d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"
 109  }));
 110  /* harmony default export */ __webpack_exports__["a"] = (blockDefault);
 111  
 112  
 113  /***/ }),
 114  
 115  /***/ "16Al":
 116  /***/ (function(module, exports, __webpack_require__) {
 117  
 118  "use strict";
 119  /**
 120   * Copyright (c) 2013-present, Facebook, Inc.
 121   *
 122   * This source code is licensed under the MIT license found in the
 123   * LICENSE file in the root directory of this source tree.
 124   */
 125  
 126  
 127  
 128  var ReactPropTypesSecret = __webpack_require__("WbBG");
 129  
 130  function emptyFunction() {}
 131  function emptyFunctionWithReset() {}
 132  emptyFunctionWithReset.resetWarningCache = emptyFunction;
 133  
 134  module.exports = function() {
 135    function shim(props, propName, componentName, location, propFullName, secret) {
 136      if (secret === ReactPropTypesSecret) {
 137        // It is still safe when called from React.
 138        return;
 139      }
 140      var err = new Error(
 141        'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
 142        'Use PropTypes.checkPropTypes() to call them. ' +
 143        'Read more at http://fb.me/use-check-prop-types'
 144      );
 145      err.name = 'Invariant Violation';
 146      throw err;
 147    };
 148    shim.isRequired = shim;
 149    function getShim() {
 150      return shim;
 151    };
 152    // Important!
 153    // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
 154    var ReactPropTypes = {
 155      array: shim,
 156      bool: shim,
 157      func: shim,
 158      number: shim,
 159      object: shim,
 160      string: shim,
 161      symbol: shim,
 162  
 163      any: shim,
 164      arrayOf: getShim,
 165      element: shim,
 166      elementType: shim,
 167      instanceOf: getShim,
 168      node: shim,
 169      objectOf: getShim,
 170      oneOf: getShim,
 171      oneOfType: getShim,
 172      shape: getShim,
 173      exact: getShim,
 174  
 175      checkPropTypes: emptyFunctionWithReset,
 176      resetWarningCache: emptyFunction
 177    };
 178  
 179    ReactPropTypes.PropTypes = ReactPropTypes;
 180  
 181    return ReactPropTypes;
 182  };
 183  
 184  
 185  /***/ }),
 186  
 187  /***/ "17x9":
 188  /***/ (function(module, exports, __webpack_require__) {
 189  
 190  /**
 191   * Copyright (c) 2013-present, Facebook, Inc.
 192   *
 193   * This source code is licensed under the MIT license found in the
 194   * LICENSE file in the root directory of this source tree.
 195   */
 196  
 197  if (false) { var throwOnDirectAccess, ReactIs; } else {
 198    // By explicitly using `prop-types` you are opting into new production behavior.
 199    // http://fb.me/prop-types-in-prod
 200    module.exports = __webpack_require__("16Al")();
 201  }
 202  
 203  
 204  /***/ }),
 205  
 206  /***/ "1CF3":
 207  /***/ (function(module, exports) {
 208  
 209  (function() { module.exports = window["wp"]["dom"]; }());
 210  
 211  /***/ }),
 212  
 213  /***/ "1ZqX":
 214  /***/ (function(module, exports) {
 215  
 216  (function() { module.exports = window["wp"]["data"]; }());
 217  
 218  /***/ }),
 219  
 220  /***/ "1iEr":
 221  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 222  
 223  "use strict";
 224  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
 225  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
 226  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
 227  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
 228  
 229  
 230  /**
 231   * WordPress dependencies
 232   */
 233  
 234  const chevronRight = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 235    xmlns: "http://www.w3.org/2000/svg",
 236    viewBox: "0 0 24 24"
 237  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 238    d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"
 239  }));
 240  /* harmony default export */ __webpack_exports__["a"] = (chevronRight);
 241  
 242  
 243  /***/ }),
 244  
 245  /***/ "2gm7":
 246  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 247  
 248  "use strict";
 249  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
 250  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
 251  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
 252  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
 253  
 254  
 255  /**
 256   * WordPress dependencies
 257   */
 258  
 259  const chevronLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 260    xmlns: "http://www.w3.org/2000/svg",
 261    viewBox: "0 0 24 24"
 262  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 263    d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"
 264  }));
 265  /* harmony default export */ __webpack_exports__["a"] = (chevronLeft);
 266  
 267  
 268  /***/ }),
 269  
 270  /***/ "4eJC":
 271  /***/ (function(module, exports, __webpack_require__) {
 272  
 273  /**
 274   * Memize options object.
 275   *
 276   * @typedef MemizeOptions
 277   *
 278   * @property {number} [maxSize] Maximum size of the cache.
 279   */
 280  
 281  /**
 282   * Internal cache entry.
 283   *
 284   * @typedef MemizeCacheNode
 285   *
 286   * @property {?MemizeCacheNode|undefined} [prev] Previous node.
 287   * @property {?MemizeCacheNode|undefined} [next] Next node.
 288   * @property {Array<*>}                   args   Function arguments for cache
 289   *                                               entry.
 290   * @property {*}                          val    Function result.
 291   */
 292  
 293  /**
 294   * Properties of the enhanced function for controlling cache.
 295   *
 296   * @typedef MemizeMemoizedFunction
 297   *
 298   * @property {()=>void} clear Clear the cache.
 299   */
 300  
 301  /**
 302   * Accepts a function to be memoized, and returns a new memoized function, with
 303   * optional options.
 304   *
 305   * @template {Function} F
 306   *
 307   * @param {F}             fn        Function to memoize.
 308   * @param {MemizeOptions} [options] Options object.
 309   *
 310   * @return {F & MemizeMemoizedFunction} Memoized function.
 311   */
 312  function memize( fn, options ) {
 313      var size = 0;
 314  
 315      /** @type {?MemizeCacheNode|undefined} */
 316      var head;
 317  
 318      /** @type {?MemizeCacheNode|undefined} */
 319      var tail;
 320  
 321      options = options || {};
 322  
 323  	function memoized( /* ...args */ ) {
 324          var node = head,
 325              len = arguments.length,
 326              args, i;
 327  
 328          searchCache: while ( node ) {
 329              // Perform a shallow equality test to confirm that whether the node
 330              // under test is a candidate for the arguments passed. Two arrays
 331              // are shallowly equal if their length matches and each entry is
 332              // strictly equal between the two sets. Avoid abstracting to a
 333              // function which could incur an arguments leaking deoptimization.
 334  
 335              // Check whether node arguments match arguments length
 336              if ( node.args.length !== arguments.length ) {
 337                  node = node.next;
 338                  continue;
 339              }
 340  
 341              // Check whether node arguments match arguments values
 342              for ( i = 0; i < len; i++ ) {
 343                  if ( node.args[ i ] !== arguments[ i ] ) {
 344                      node = node.next;
 345                      continue searchCache;
 346                  }
 347              }
 348  
 349              // At this point we can assume we've found a match
 350  
 351              // Surface matched node to head if not already
 352              if ( node !== head ) {
 353                  // As tail, shift to previous. Must only shift if not also
 354                  // head, since if both head and tail, there is no previous.
 355                  if ( node === tail ) {
 356                      tail = node.prev;
 357                  }
 358  
 359                  // Adjust siblings to point to each other. If node was tail,
 360                  // this also handles new tail's empty `next` assignment.
 361                  /** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;
 362                  if ( node.next ) {
 363                      node.next.prev = node.prev;
 364                  }
 365  
 366                  node.next = head;
 367                  node.prev = null;
 368                  /** @type {MemizeCacheNode} */ ( head ).prev = node;
 369                  head = node;
 370              }
 371  
 372              // Return immediately
 373              return node.val;
 374          }
 375  
 376          // No cached value found. Continue to insertion phase:
 377  
 378          // Create a copy of arguments (avoid leaking deoptimization)
 379          args = new Array( len );
 380          for ( i = 0; i < len; i++ ) {
 381              args[ i ] = arguments[ i ];
 382          }
 383  
 384          node = {
 385              args: args,
 386  
 387              // Generate the result from original function
 388              val: fn.apply( null, args ),
 389          };
 390  
 391          // Don't need to check whether node is already head, since it would
 392          // have been returned above already if it was
 393  
 394          // Shift existing head down list
 395          if ( head ) {
 396              head.prev = node;
 397              node.next = head;
 398          } else {
 399              // If no head, follows that there's no tail (at initial or reset)
 400              tail = node;
 401          }
 402  
 403          // Trim tail if we're reached max size and are pending cache insertion
 404          if ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {
 405              tail = /** @type {MemizeCacheNode} */ ( tail ).prev;
 406              /** @type {MemizeCacheNode} */ ( tail ).next = null;
 407          } else {
 408              size++;
 409          }
 410  
 411          head = node;
 412  
 413          return node.val;
 414      }
 415  
 416      memoized.clear = function() {
 417          head = null;
 418          tail = null;
 419          size = 0;
 420      };
 421  
 422      if ( false ) {}
 423  
 424      // Ignore reason: There's not a clear solution to create an intersection of
 425      // the function with additional properties, where the goal is to retain the
 426      // function signature of the incoming argument and add control properties
 427      // on the return value.
 428  
 429      // @ts-ignore
 430      return memoized;
 431  }
 432  
 433  module.exports = memize;
 434  
 435  
 436  /***/ }),
 437  
 438  /***/ "6fKw":
 439  /***/ (function(module, exports, __webpack_require__) {
 440  
 441  "use strict";
 442  /*
 443  Copyright (c) 2014, Yahoo! Inc. All rights reserved.
 444  Copyrights licensed under the New BSD License.
 445  See the accompanying LICENSE file for terms.
 446  */
 447  
 448  
 449  
 450  exports.match = matchQuery;
 451  exports.parse = parseQuery;
 452  
 453  // -----------------------------------------------------------------------------
 454  
 455  var RE_MEDIA_QUERY     = /(?:(only|not)?\s*([^\s\(\)]+)(?:\s*and)?\s*)?(.+)?/i,
 456      RE_MQ_EXPRESSION   = /\(\s*([^\s\:\)]+)\s*(?:\:\s*([^\s\)]+))?\s*\)/,
 457      RE_MQ_FEATURE      = /^(?:(min|max)-)?(.+)/,
 458      RE_LENGTH_UNIT     = /(em|rem|px|cm|mm|in|pt|pc)?$/,
 459      RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;
 460  
 461  function matchQuery(mediaQuery, values) {
 462      return parseQuery(mediaQuery).some(function (query) {
 463          var inverse = query.inverse;
 464  
 465          // Either the parsed or specified `type` is "all", or the types must be
 466          // equal for a match.
 467          var typeMatch = query.type === 'all' || values.type === query.type;
 468  
 469          // Quit early when `type` doesn't match, but take "not" into account.
 470          if ((typeMatch && inverse) || !(typeMatch || inverse)) {
 471              return false;
 472          }
 473  
 474          var expressionsMatch = query.expressions.every(function (expression) {
 475              var feature  = expression.feature,
 476                  modifier = expression.modifier,
 477                  expValue = expression.value,
 478                  value    = values[feature];
 479  
 480              // Missing or falsy values don't match.
 481              if (!value) { return false; }
 482  
 483              switch (feature) {
 484                  case 'orientation':
 485                  case 'scan':
 486                      return value.toLowerCase() === expValue.toLowerCase();
 487  
 488                  case 'width':
 489                  case 'height':
 490                  case 'device-width':
 491                  case 'device-height':
 492                      expValue = toPx(expValue);
 493                      value    = toPx(value);
 494                      break;
 495  
 496                  case 'resolution':
 497                      expValue = toDpi(expValue);
 498                      value    = toDpi(value);
 499                      break;
 500  
 501                  case 'aspect-ratio':
 502                  case 'device-aspect-ratio':
 503                  case /* Deprecated */ 'device-pixel-ratio':
 504                      expValue = toDecimal(expValue);
 505                      value    = toDecimal(value);
 506                      break;
 507  
 508                  case 'grid':
 509                  case 'color':
 510                  case 'color-index':
 511                  case 'monochrome':
 512                      expValue = parseInt(expValue, 10) || 1;
 513                      value    = parseInt(value, 10) || 0;
 514                      break;
 515              }
 516  
 517              switch (modifier) {
 518                  case 'min': return value >= expValue;
 519                  case 'max': return value <= expValue;
 520                  default   : return value === expValue;
 521              }
 522          });
 523  
 524          return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);
 525      });
 526  }
 527  
 528  function parseQuery(mediaQuery) {
 529      return mediaQuery.split(',').map(function (query) {
 530          query = query.trim();
 531  
 532          var captures    = query.match(RE_MEDIA_QUERY),
 533              modifier    = captures[1],
 534              type        = captures[2],
 535              expressions = captures[3] || '',
 536              parsed      = {};
 537  
 538          parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';
 539          parsed.type    = type ? type.toLowerCase() : 'all';
 540  
 541          // Split expressions into a list.
 542          expressions = expressions.match(/\([^\)]+\)/g) || [];
 543  
 544          parsed.expressions = expressions.map(function (expression) {
 545              var captures = expression.match(RE_MQ_EXPRESSION),
 546                  feature  = captures[1].toLowerCase().match(RE_MQ_FEATURE);
 547  
 548              return {
 549                  modifier: feature[1],
 550                  feature : feature[2],
 551                  value   : captures[2]
 552              };
 553          });
 554  
 555          return parsed;
 556      });
 557  }
 558  
 559  // -- Utilities ----------------------------------------------------------------
 560  
 561  function toDecimal(ratio) {
 562      var decimal = Number(ratio),
 563          numbers;
 564  
 565      if (!decimal) {
 566          numbers = ratio.match(/^(\d+)\s*\/\s*(\d+)$/);
 567          decimal = numbers[1] / numbers[2];
 568      }
 569  
 570      return decimal;
 571  }
 572  
 573  function toDpi(resolution) {
 574      var value = parseFloat(resolution),
 575          units = String(resolution).match(RE_RESOLUTION_UNIT)[1];
 576  
 577      switch (units) {
 578          case 'dpcm': return value / 2.54;
 579          case 'dppx': return value * 96;
 580          default    : return value;
 581      }
 582  }
 583  
 584  function toPx(length) {
 585      var value = parseFloat(length),
 586          units = String(length).match(RE_LENGTH_UNIT)[1];
 587  
 588      switch (units) {
 589          case 'em' : return value * 16;
 590          case 'rem': return value * 16;
 591          case 'cm' : return value * 96 / 2.54;
 592          case 'mm' : return value * 96 / 2.54 / 10;
 593          case 'in' : return value * 96;
 594          case 'pt' : return value * 72;
 595          case 'pc' : return value * 72 / 12;
 596          default   : return value;
 597      }
 598  }
 599  
 600  
 601  /***/ }),
 602  
 603  /***/ "7fqt":
 604  /***/ (function(module, exports) {
 605  
 606  (function() { module.exports = window["wp"]["wordcount"]; }());
 607  
 608  /***/ }),
 609  
 610  /***/ "8OQS":
 611  /***/ (function(module, exports) {
 612  
 613  function _objectWithoutPropertiesLoose(source, excluded) {
 614    if (source == null) return {};
 615    var target = {};
 616    var sourceKeys = Object.keys(source);
 617    var key, i;
 618  
 619    for (i = 0; i < sourceKeys.length; i++) {
 620      key = sourceKeys[i];
 621      if (excluded.indexOf(key) >= 0) continue;
 622      target[key] = source[key];
 623    }
 624  
 625    return target;
 626  }
 627  
 628  module.exports = _objectWithoutPropertiesLoose;
 629  module.exports["default"] = module.exports, module.exports.__esModule = true;
 630  
 631  /***/ }),
 632  
 633  /***/ "9Do8":
 634  /***/ (function(module, exports, __webpack_require__) {
 635  
 636  "use strict";
 637  
 638  
 639  module.exports = __webpack_require__("zt9T");
 640  
 641  /***/ }),
 642  
 643  /***/ "B9Az":
 644  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 645  
 646  "use strict";
 647  
 648  // EXTERNAL MODULE: external ["wp","element"]
 649  var external_wp_element_ = __webpack_require__("GRId");
 650  
 651  // EXTERNAL MODULE: external ["wp","primitives"]
 652  var external_wp_primitives_ = __webpack_require__("Tqx9");
 653  
 654  // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js
 655  
 656  
 657  /**
 658   * WordPress dependencies
 659   */
 660  
 661  const pencil = Object(external_wp_element_["createElement"])(external_wp_primitives_["SVG"], {
 662    xmlns: "http://www.w3.org/2000/svg",
 663    viewBox: "0 0 24 24"
 664  }, Object(external_wp_element_["createElement"])(external_wp_primitives_["Path"], {
 665    d: "M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z"
 666  }));
 667  /* harmony default export */ var library_pencil = (pencil);
 668  
 669  // CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js
 670  /**
 671   * Internal dependencies
 672   */
 673  
 674  /* harmony default export */ var edit = __webpack_exports__["a"] = (library_pencil);
 675  
 676  
 677  /***/ }),
 678  
 679  /***/ "BLeD":
 680  /***/ (function(module, exports) {
 681  
 682  (function() { module.exports = window["wp"]["tokenList"]; }());
 683  
 684  /***/ }),
 685  
 686  /***/ "Bpkj":
 687  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 688  
 689  "use strict";
 690  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
 691  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
 692  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
 693  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
 694  
 695  
 696  /**
 697   * WordPress dependencies
 698   */
 699  
 700  const link = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 701    xmlns: "http://www.w3.org/2000/svg",
 702    viewBox: "0 0 24 24"
 703  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 704    d: "M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"
 705  }));
 706  /* harmony default export */ __webpack_exports__["a"] = (link);
 707  
 708  
 709  /***/ }),
 710  
 711  /***/ "CNgt":
 712  /***/ (function(module, exports, __webpack_require__) {
 713  
 714  "use strict";
 715  
 716  var __extends = (this && this.__extends) || (function () {
 717      var extendStatics = Object.setPrototypeOf ||
 718          ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
 719          function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 720      return function (d, b) {
 721          extendStatics(d, b);
 722          function __() { this.constructor = d; }
 723          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 724      };
 725  })();
 726  var __assign = (this && this.__assign) || Object.assign || function(t) {
 727      for (var s, i = 1, n = arguments.length; i < n; i++) {
 728          s = arguments[i];
 729          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
 730              t[p] = s[p];
 731      }
 732      return t;
 733  };
 734  var __rest = (this && this.__rest) || function (s, e) {
 735      var t = {};
 736      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
 737          t[p] = s[p];
 738      if (s != null && typeof Object.getOwnPropertySymbols === "function")
 739          for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
 740              t[p[i]] = s[p[i]];
 741      return t;
 742  };
 743  exports.__esModule = true;
 744  var React = __webpack_require__("cDcd");
 745  var PropTypes = __webpack_require__("17x9");
 746  var autosize = __webpack_require__("GemG");
 747  var _getLineHeight = __webpack_require__("Rk8H");
 748  var getLineHeight = _getLineHeight;
 749  var RESIZED = "autosize:resized";
 750  /**
 751   * A light replacement for built-in textarea component
 752   * which automaticaly adjusts its height to match the content
 753   */
 754  var TextareaAutosizeClass = /** @class */ (function (_super) {
 755      __extends(TextareaAutosizeClass, _super);
 756      function TextareaAutosizeClass() {
 757          var _this = _super !== null && _super.apply(this, arguments) || this;
 758          _this.state = {
 759              lineHeight: null
 760          };
 761          _this.textarea = null;
 762          _this.onResize = function (e) {
 763              if (_this.props.onResize) {
 764                  _this.props.onResize(e);
 765              }
 766          };
 767          _this.updateLineHeight = function () {
 768              if (_this.textarea) {
 769                  _this.setState({
 770                      lineHeight: getLineHeight(_this.textarea)
 771                  });
 772              }
 773          };
 774          _this.onChange = function (e) {
 775              var onChange = _this.props.onChange;
 776              _this.currentValue = e.currentTarget.value;
 777              onChange && onChange(e);
 778          };
 779          return _this;
 780      }
 781      TextareaAutosizeClass.prototype.componentDidMount = function () {
 782          var _this = this;
 783          var _a = this.props, maxRows = _a.maxRows, async = _a.async;
 784          if (typeof maxRows === "number") {
 785              this.updateLineHeight();
 786          }
 787          if (typeof maxRows === "number" || async) {
 788              /*
 789                the defer is needed to:
 790                  - force "autosize" to activate the scrollbar when this.props.maxRows is passed
 791                  - support StyledComponents (see #71)
 792              */
 793              setTimeout(function () { return _this.textarea && autosize(_this.textarea); });
 794          }
 795          else {
 796              this.textarea && autosize(this.textarea);
 797          }
 798          if (this.textarea) {
 799              this.textarea.addEventListener(RESIZED, this.onResize);
 800          }
 801      };
 802      TextareaAutosizeClass.prototype.componentWillUnmount = function () {
 803          if (this.textarea) {
 804              this.textarea.removeEventListener(RESIZED, this.onResize);
 805              autosize.destroy(this.textarea);
 806          }
 807      };
 808      TextareaAutosizeClass.prototype.render = function () {
 809          var _this = this;
 810          var _a = this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, children = _b.children, props = __rest(_b, ["onResize", "maxRows", "onChange", "style", "innerRef", "children"]), lineHeight = _a.state.lineHeight;
 811          var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;
 812          return (React.createElement("textarea", __assign({}, props, { onChange: this.onChange, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, ref: function (element) {
 813                  _this.textarea = element;
 814                  if (typeof _this.props.innerRef === 'function') {
 815                      _this.props.innerRef(element);
 816                  }
 817                  else if (_this.props.innerRef) {
 818                      _this.props.innerRef.current = element;
 819                  }
 820              } }), children));
 821      };
 822      TextareaAutosizeClass.prototype.componentDidUpdate = function () {
 823          this.textarea && autosize.update(this.textarea);
 824      };
 825      TextareaAutosizeClass.defaultProps = {
 826          rows: 1,
 827          async: false
 828      };
 829      TextareaAutosizeClass.propTypes = {
 830          rows: PropTypes.number,
 831          maxRows: PropTypes.number,
 832          onResize: PropTypes.func,
 833          innerRef: PropTypes.any,
 834          async: PropTypes.bool
 835      };
 836      return TextareaAutosizeClass;
 837  }(React.Component));
 838  exports.TextareaAutosize = React.forwardRef(function (props, ref) {
 839      return React.createElement(TextareaAutosizeClass, __assign({}, props, { innerRef: ref }));
 840  });
 841  
 842  
 843  /***/ }),
 844  
 845  /***/ "Civd":
 846  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 847  
 848  "use strict";
 849  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
 850  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
 851  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
 852  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
 853  
 854  
 855  /**
 856   * WordPress dependencies
 857   */
 858  
 859  const layout = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 860    xmlns: "http://www.w3.org/2000/svg",
 861    viewBox: "0 0 24 24"
 862  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 863    d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
 864  }));
 865  /* harmony default export */ __webpack_exports__["a"] = (layout);
 866  
 867  
 868  /***/ }),
 869  
 870  /***/ "Crq9":
 871  /***/ (function(module, __webpack_exports__, __webpack_require__) {
 872  
 873  "use strict";
 874  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
 875  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
 876  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
 877  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
 878  
 879  
 880  /**
 881   * WordPress dependencies
 882   */
 883  
 884  const formatStrikethrough = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
 885    xmlns: "http://www.w3.org/2000/svg",
 886    viewBox: "0 0 24 24"
 887  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
 888    d: "M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z"
 889  }));
 890  /* harmony default export */ __webpack_exports__["a"] = (formatStrikethrough);
 891  
 892  
 893  /***/ }),
 894  
 895  /***/ "GRId":
 896  /***/ (function(module, exports) {
 897  
 898  (function() { module.exports = window["wp"]["element"]; }());
 899  
 900  /***/ }),
 901  
 902  /***/ "GemG":
 903  /***/ (function(module, exports, __webpack_require__) {
 904  
 905  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
 906      autosize 4.0.4
 907      license: MIT
 908      http://www.jacklmoore.com/autosize
 909  */
 910  (function (global, factory) {
 911      if (true) {
 912          !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
 913                  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
 914                  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
 915                  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
 916      } else { var mod; }
 917  })(this, function (module, exports) {
 918      'use strict';
 919  
 920      var map = typeof Map === "function" ? new Map() : function () {
 921          var keys = [];
 922          var values = [];
 923  
 924          return {
 925              has: function has(key) {
 926                  return keys.indexOf(key) > -1;
 927              },
 928              get: function get(key) {
 929                  return values[keys.indexOf(key)];
 930              },
 931              set: function set(key, value) {
 932                  if (keys.indexOf(key) === -1) {
 933                      keys.push(key);
 934                      values.push(value);
 935                  }
 936              },
 937              delete: function _delete(key) {
 938                  var index = keys.indexOf(key);
 939                  if (index > -1) {
 940                      keys.splice(index, 1);
 941                      values.splice(index, 1);
 942                  }
 943              }
 944          };
 945      }();
 946  
 947      var createEvent = function createEvent(name) {
 948          return new Event(name, { bubbles: true });
 949      };
 950      try {
 951          new Event('test');
 952      } catch (e) {
 953          // IE does not support `new Event()`
 954          createEvent = function createEvent(name) {
 955              var evt = document.createEvent('Event');
 956              evt.initEvent(name, true, false);
 957              return evt;
 958          };
 959      }
 960  
 961  	function assign(ta) {
 962          if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;
 963  
 964          var heightOffset = null;
 965          var clientWidth = null;
 966          var cachedHeight = null;
 967  
 968  		function init() {
 969              var style = window.getComputedStyle(ta, null);
 970  
 971              if (style.resize === 'vertical') {
 972                  ta.style.resize = 'none';
 973              } else if (style.resize === 'both') {
 974                  ta.style.resize = 'horizontal';
 975              }
 976  
 977              if (style.boxSizing === 'content-box') {
 978                  heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));
 979              } else {
 980                  heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
 981              }
 982              // Fix when a textarea is not on document body and heightOffset is Not a Number
 983              if (isNaN(heightOffset)) {
 984                  heightOffset = 0;
 985              }
 986  
 987              update();
 988          }
 989  
 990  		function changeOverflow(value) {
 991              {
 992                  // Chrome/Safari-specific fix:
 993                  // When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
 994                  // made available by removing the scrollbar. The following forces the necessary text reflow.
 995                  var width = ta.style.width;
 996                  ta.style.width = '0px';
 997                  // Force reflow:
 998                  /* jshint ignore:start */
 999                  ta.offsetWidth;
1000                  /* jshint ignore:end */
1001                  ta.style.width = width;
1002              }
1003  
1004              ta.style.overflowY = value;
1005          }
1006  
1007  		function getParentOverflows(el) {
1008              var arr = [];
1009  
1010              while (el && el.parentNode && el.parentNode instanceof Element) {
1011                  if (el.parentNode.scrollTop) {
1012                      arr.push({
1013                          node: el.parentNode,
1014                          scrollTop: el.parentNode.scrollTop
1015                      });
1016                  }
1017                  el = el.parentNode;
1018              }
1019  
1020              return arr;
1021          }
1022  
1023  		function resize() {
1024              if (ta.scrollHeight === 0) {
1025                  // If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
1026                  return;
1027              }
1028  
1029              var overflows = getParentOverflows(ta);
1030              var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)
1031  
1032              ta.style.height = '';
1033              ta.style.height = ta.scrollHeight + heightOffset + 'px';
1034  
1035              // used to check if an update is actually necessary on window.resize
1036              clientWidth = ta.clientWidth;
1037  
1038              // prevents scroll-position jumping
1039              overflows.forEach(function (el) {
1040                  el.node.scrollTop = el.scrollTop;
1041              });
1042  
1043              if (docTop) {
1044                  document.documentElement.scrollTop = docTop;
1045              }
1046          }
1047  
1048  		function update() {
1049              resize();
1050  
1051              var styleHeight = Math.round(parseFloat(ta.style.height));
1052              var computed = window.getComputedStyle(ta, null);
1053  
1054              // Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box
1055              var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;
1056  
1057              // The actual height not matching the style height (set via the resize method) indicates that 
1058              // the max-height has been exceeded, in which case the overflow should be allowed.
1059              if (actualHeight < styleHeight) {
1060                  if (computed.overflowY === 'hidden') {
1061                      changeOverflow('scroll');
1062                      resize();
1063                      actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
1064                  }
1065              } else {
1066                  // Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.
1067                  if (computed.overflowY !== 'hidden') {
1068                      changeOverflow('hidden');
1069                      resize();
1070                      actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
1071                  }
1072              }
1073  
1074              if (cachedHeight !== actualHeight) {
1075                  cachedHeight = actualHeight;
1076                  var evt = createEvent('autosize:resized');
1077                  try {
1078                      ta.dispatchEvent(evt);
1079                  } catch (err) {
1080                      // Firefox will throw an error on dispatchEvent for a detached element
1081                      // https://bugzilla.mozilla.org/show_bug.cgi?id=889376
1082                  }
1083              }
1084          }
1085  
1086          var pageResize = function pageResize() {
1087              if (ta.clientWidth !== clientWidth) {
1088                  update();
1089              }
1090          };
1091  
1092          var destroy = function (style) {
1093              window.removeEventListener('resize', pageResize, false);
1094              ta.removeEventListener('input', update, false);
1095              ta.removeEventListener('keyup', update, false);
1096              ta.removeEventListener('autosize:destroy', destroy, false);
1097              ta.removeEventListener('autosize:update', update, false);
1098  
1099              Object.keys(style).forEach(function (key) {
1100                  ta.style[key] = style[key];
1101              });
1102  
1103              map.delete(ta);
1104          }.bind(ta, {
1105              height: ta.style.height,
1106              resize: ta.style.resize,
1107              overflowY: ta.style.overflowY,
1108              overflowX: ta.style.overflowX,
1109              wordWrap: ta.style.wordWrap
1110          });
1111  
1112          ta.addEventListener('autosize:destroy', destroy, false);
1113  
1114          // IE9 does not fire onpropertychange or oninput for deletions,
1115          // so binding to onkeyup to catch most of those events.
1116          // There is no way that I know of to detect something like 'cut' in IE9.
1117          if ('onpropertychange' in ta && 'oninput' in ta) {
1118              ta.addEventListener('keyup', update, false);
1119          }
1120  
1121          window.addEventListener('resize', pageResize, false);
1122          ta.addEventListener('input', update, false);
1123          ta.addEventListener('autosize:update', update, false);
1124          ta.style.overflowX = 'hidden';
1125          ta.style.wordWrap = 'break-word';
1126  
1127          map.set(ta, {
1128              destroy: destroy,
1129              update: update
1130          });
1131  
1132          init();
1133      }
1134  
1135  	function destroy(ta) {
1136          var methods = map.get(ta);
1137          if (methods) {
1138              methods.destroy();
1139          }
1140      }
1141  
1142  	function update(ta) {
1143          var methods = map.get(ta);
1144          if (methods) {
1145              methods.update();
1146          }
1147      }
1148  
1149      var autosize = null;
1150  
1151      // Do nothing in Node.js environment and IE8 (or lower)
1152      if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {
1153          autosize = function autosize(el) {
1154              return el;
1155          };
1156          autosize.destroy = function (el) {
1157              return el;
1158          };
1159          autosize.update = function (el) {
1160              return el;
1161          };
1162      } else {
1163          autosize = function autosize(el, options) {
1164              if (el) {
1165                  Array.prototype.forEach.call(el.length ? el : [el], function (x) {
1166                      return assign(x, options);
1167                  });
1168              }
1169              return el;
1170          };
1171          autosize.destroy = function (el) {
1172              if (el) {
1173                  Array.prototype.forEach.call(el.length ? el : [el], destroy);
1174              }
1175              return el;
1176          };
1177          autosize.update = function (el) {
1178              if (el) {
1179                  Array.prototype.forEach.call(el.length ? el : [el], update);
1180              }
1181              return el;
1182          };
1183      }
1184  
1185      exports.default = autosize;
1186      module.exports = exports['default'];
1187  });
1188  
1189  /***/ }),
1190  
1191  /***/ "HSyU":
1192  /***/ (function(module, exports) {
1193  
1194  (function() { module.exports = window["wp"]["blocks"]; }());
1195  
1196  /***/ }),
1197  
1198  /***/ "K9lf":
1199  /***/ (function(module, exports) {
1200  
1201  (function() { module.exports = window["wp"]["compose"]; }());
1202  
1203  /***/ }),
1204  
1205  /***/ "Mmq9":
1206  /***/ (function(module, exports) {
1207  
1208  (function() { module.exports = window["wp"]["url"]; }());
1209  
1210  /***/ }),
1211  
1212  /***/ "NMb1":
1213  /***/ (function(module, exports) {
1214  
1215  (function() { module.exports = window["wp"]["deprecated"]; }());
1216  
1217  /***/ }),
1218  
1219  /***/ "NTP4":
1220  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1221  
1222  "use strict";
1223  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1224  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1225  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1226  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1227  
1228  
1229  /**
1230   * WordPress dependencies
1231   */
1232  
1233  const upload = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1234    xmlns: "http://www.w3.org/2000/svg",
1235    viewBox: "0 0 24 24"
1236  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1237    d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"
1238  }));
1239  /* harmony default export */ __webpack_exports__["a"] = (upload);
1240  
1241  
1242  /***/ }),
1243  
1244  /***/ "NWDH":
1245  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1246  
1247  "use strict";
1248  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1249  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1250  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1251  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1252  
1253  
1254  /**
1255   * WordPress dependencies
1256   */
1257  
1258  const chevronDown = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1259    viewBox: "0 0 24 24",
1260    xmlns: "http://www.w3.org/2000/svg"
1261  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1262    d: "M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
1263  }));
1264  /* harmony default export */ __webpack_exports__["a"] = (chevronDown);
1265  
1266  
1267  /***/ }),
1268  
1269  /***/ "O6Fj":
1270  /***/ (function(module, exports, __webpack_require__) {
1271  
1272  "use strict";
1273  
1274  exports.__esModule = true;
1275  var TextareaAutosize_1 = __webpack_require__("CNgt");
1276  exports["default"] = TextareaAutosize_1.TextareaAutosize;
1277  
1278  
1279  /***/ }),
1280  
1281  /***/ "OzlF":
1282  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1283  
1284  "use strict";
1285  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1286  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1287  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1288  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1289  
1290  
1291  /**
1292   * WordPress dependencies
1293   */
1294  
1295  const listView = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1296    viewBox: "0 0 24 24",
1297    xmlns: "http://www.w3.org/2000/svg"
1298  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1299    d: "M13.8 5.2H3v1.5h10.8V5.2zm-3.6 12v1.5H21v-1.5H10.2zm7.2-6H6.6v1.5h10.8v-1.5z"
1300  }));
1301  /* harmony default export */ __webpack_exports__["a"] = (listView);
1302  
1303  
1304  /***/ }),
1305  
1306  /***/ "P7XM":
1307  /***/ (function(module, exports) {
1308  
1309  if (typeof Object.create === 'function') {
1310    // implementation from standard node.js 'util' module
1311    module.exports = function inherits(ctor, superCtor) {
1312      if (superCtor) {
1313        ctor.super_ = superCtor
1314        ctor.prototype = Object.create(superCtor.prototype, {
1315          constructor: {
1316            value: ctor,
1317            enumerable: false,
1318            writable: true,
1319            configurable: true
1320          }
1321        })
1322      }
1323    };
1324  } else {
1325    // old school shim for old browsers
1326    module.exports = function inherits(ctor, superCtor) {
1327      if (superCtor) {
1328        ctor.super_ = superCtor
1329        var TempCtor = function () {}
1330        TempCtor.prototype = superCtor.prototype
1331        ctor.prototype = new TempCtor()
1332        ctor.prototype.constructor = ctor
1333      }
1334    }
1335  }
1336  
1337  
1338  /***/ }),
1339  
1340  /***/ "PJYZ":
1341  /***/ (function(module, exports) {
1342  
1343  function _assertThisInitialized(self) {
1344    if (self === void 0) {
1345      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1346    }
1347  
1348    return self;
1349  }
1350  
1351  module.exports = _assertThisInitialized;
1352  module.exports["default"] = module.exports, module.exports.__esModule = true;
1353  
1354  /***/ }),
1355  
1356  /***/ "Q4Sy":
1357  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1358  
1359  "use strict";
1360  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1361  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1362  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1363  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1364  
1365  
1366  /**
1367   * WordPress dependencies
1368   */
1369  
1370  const plus = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1371    xmlns: "http://www.w3.org/2000/svg",
1372    viewBox: "0 0 24 24"
1373  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1374    d: "M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z"
1375  }));
1376  /* harmony default export */ __webpack_exports__["a"] = (plus);
1377  
1378  
1379  /***/ }),
1380  
1381  /***/ "RMJe":
1382  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1383  
1384  "use strict";
1385  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1386  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1387  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1388  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1389  
1390  
1391  /**
1392   * WordPress dependencies
1393   */
1394  
1395  const check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1396    xmlns: "http://www.w3.org/2000/svg",
1397    viewBox: "0 0 24 24"
1398  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1399    d: "M18.3 5.6L9.9 16.9l-4.6-3.4-.9 1.2 5.8 4.3 9.3-12.6z"
1400  }));
1401  /* harmony default export */ __webpack_exports__["a"] = (check);
1402  
1403  
1404  /***/ }),
1405  
1406  /***/ "Rk8H":
1407  /***/ (function(module, exports, __webpack_require__) {
1408  
1409  // Load in dependencies
1410  var computedStyle = __webpack_require__("jTPX");
1411  
1412  /**
1413   * Calculate the `line-height` of a given node
1414   * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.
1415   * @returns {Number} `line-height` of the element in pixels
1416   */
1417  function lineHeight(node) {
1418    // Grab the line-height via style
1419    var lnHeightStr = computedStyle(node, 'line-height');
1420    var lnHeight = parseFloat(lnHeightStr, 10);
1421  
1422    // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')
1423    if (lnHeightStr === lnHeight + '') {
1424      // Save the old lineHeight style and update the em unit to the element
1425      var _lnHeightStyle = node.style.lineHeight;
1426      node.style.lineHeight = lnHeightStr + 'em';
1427  
1428      // Calculate the em based height
1429      lnHeightStr = computedStyle(node, 'line-height');
1430      lnHeight = parseFloat(lnHeightStr, 10);
1431  
1432      // Revert the lineHeight style
1433      if (_lnHeightStyle) {
1434        node.style.lineHeight = _lnHeightStyle;
1435      } else {
1436        delete node.style.lineHeight;
1437      }
1438    }
1439  
1440    // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)
1441    // DEV: `em` units are converted to `pt` in IE6
1442    // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length
1443    if (lnHeightStr.indexOf('pt') !== -1) {
1444      lnHeight *= 4;
1445      lnHeight /= 3;
1446    // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)
1447    } else if (lnHeightStr.indexOf('mm') !== -1) {
1448      lnHeight *= 96;
1449      lnHeight /= 25.4;
1450    // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)
1451    } else if (lnHeightStr.indexOf('cm') !== -1) {
1452      lnHeight *= 96;
1453      lnHeight /= 2.54;
1454    // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)
1455    } else if (lnHeightStr.indexOf('in') !== -1) {
1456      lnHeight *= 96;
1457    // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)
1458    } else if (lnHeightStr.indexOf('pc') !== -1) {
1459      lnHeight *= 16;
1460    }
1461  
1462    // Continue our computation
1463    lnHeight = Math.round(lnHeight);
1464  
1465    // If the line-height is "normal", calculate by font-size
1466    if (lnHeightStr === 'normal') {
1467      // Create a temporary node
1468      var nodeName = node.nodeName;
1469      var _node = document.createElement(nodeName);
1470      _node.innerHTML = '&nbsp;';
1471  
1472      // If we have a text area, reset it to only 1 row
1473      // https://github.com/twolfson/line-height/issues/4
1474      if (nodeName.toUpperCase() === 'TEXTAREA') {
1475        _node.setAttribute('rows', '1');
1476      }
1477  
1478      // Set the font-size of the element
1479      var fontSizeStr = computedStyle(node, 'font-size');
1480      _node.style.fontSize = fontSizeStr;
1481  
1482      // Remove default padding/border which can affect offset height
1483      // https://github.com/twolfson/line-height/issues/4
1484      // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight
1485      _node.style.padding = '0px';
1486      _node.style.border = '0px';
1487  
1488      // Append it to the body
1489      var body = document.body;
1490      body.appendChild(_node);
1491  
1492      // Assume the line height of the element is the height
1493      var height = _node.offsetHeight;
1494      lnHeight = height;
1495  
1496      // Remove our child from the DOM
1497      body.removeChild(_node);
1498    }
1499  
1500    // Return the calculated height
1501    return lnHeight;
1502  }
1503  
1504  // Export lineHeight
1505  module.exports = lineHeight;
1506  
1507  
1508  /***/ }),
1509  
1510  /***/ "RxS6":
1511  /***/ (function(module, exports) {
1512  
1513  (function() { module.exports = window["wp"]["keycodes"]; }());
1514  
1515  /***/ }),
1516  
1517  /***/ "SVSp":
1518  /***/ (function(module, exports) {
1519  
1520  (function() { module.exports = window["wp"]["shortcode"]; }());
1521  
1522  /***/ }),
1523  
1524  /***/ "SksO":
1525  /***/ (function(module, exports) {
1526  
1527  function _setPrototypeOf(o, p) {
1528    module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
1529      o.__proto__ = p;
1530      return o;
1531    };
1532  
1533    module.exports["default"] = module.exports, module.exports.__esModule = true;
1534    return _setPrototypeOf(o, p);
1535  }
1536  
1537  module.exports = _setPrototypeOf;
1538  module.exports["default"] = module.exports, module.exports.__esModule = true;
1539  
1540  /***/ }),
1541  
1542  /***/ "TSYQ":
1543  /***/ (function(module, exports, __webpack_require__) {
1544  
1545  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
1546    Copyright (c) 2018 Jed Watson.
1547    Licensed under the MIT License (MIT), see
1548    http://jedwatson.github.io/classnames
1549  */
1550  /* global define */
1551  
1552  (function () {
1553      'use strict';
1554  
1555      var hasOwn = {}.hasOwnProperty;
1556  
1557  	function classNames() {
1558          var classes = [];
1559  
1560          for (var i = 0; i < arguments.length; i++) {
1561              var arg = arguments[i];
1562              if (!arg) continue;
1563  
1564              var argType = typeof arg;
1565  
1566              if (argType === 'string' || argType === 'number') {
1567                  classes.push(arg);
1568              } else if (Array.isArray(arg)) {
1569                  if (arg.length) {
1570                      var inner = classNames.apply(null, arg);
1571                      if (inner) {
1572                          classes.push(inner);
1573                      }
1574                  }
1575              } else if (argType === 'object') {
1576                  if (arg.toString === Object.prototype.toString) {
1577                      for (var key in arg) {
1578                          if (hasOwn.call(arg, key) && arg[key]) {
1579                              classes.push(key);
1580                          }
1581                      }
1582                  } else {
1583                      classes.push(arg.toString());
1584                  }
1585              }
1586          }
1587  
1588          return classes.join(' ');
1589      }
1590  
1591      if ( true && module.exports) {
1592          classNames.default = classNames;
1593          module.exports = classNames;
1594      } else if (true) {
1595          // register as 'classnames', consistent with npm package name
1596          !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
1597              return classNames;
1598          }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
1599                  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
1600      } else {}
1601  }());
1602  
1603  
1604  /***/ }),
1605  
1606  /***/ "Tqx9":
1607  /***/ (function(module, exports) {
1608  
1609  (function() { module.exports = window["wp"]["primitives"]; }());
1610  
1611  /***/ }),
1612  
1613  /***/ "VKE3":
1614  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1615  
1616  "use strict";
1617  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1618  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1619  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1620  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1621  
1622  
1623  /**
1624   * WordPress dependencies
1625   */
1626  
1627  const moreVertical = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1628    xmlns: "http://www.w3.org/2000/svg",
1629    viewBox: "0 0 24 24"
1630  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1631    d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
1632  }));
1633  /* harmony default export */ __webpack_exports__["a"] = (moreVertical);
1634  
1635  
1636  /***/ }),
1637  
1638  /***/ "VbXa":
1639  /***/ (function(module, exports, __webpack_require__) {
1640  
1641  var setPrototypeOf = __webpack_require__("SksO");
1642  
1643  function _inheritsLoose(subClass, superClass) {
1644    subClass.prototype = Object.create(superClass.prototype);
1645    subClass.prototype.constructor = subClass;
1646    setPrototypeOf(subClass, superClass);
1647  }
1648  
1649  module.exports = _inheritsLoose;
1650  module.exports["default"] = module.exports, module.exports.__esModule = true;
1651  
1652  /***/ }),
1653  
1654  /***/ "WbBG":
1655  /***/ (function(module, exports, __webpack_require__) {
1656  
1657  "use strict";
1658  /**
1659   * Copyright (c) 2013-present, Facebook, Inc.
1660   *
1661   * This source code is licensed under the MIT license found in the
1662   * LICENSE file in the root directory of this source tree.
1663   */
1664  
1665  
1666  
1667  var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
1668  
1669  module.exports = ReactPropTypesSecret;
1670  
1671  
1672  /***/ }),
1673  
1674  /***/ "XgzB":
1675  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1676  
1677  "use strict";
1678  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
1679  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
1680  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
1681  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
1682  
1683  
1684  /**
1685   * WordPress dependencies
1686   */
1687  
1688  const chevronUp = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
1689    viewBox: "0 0 24 24",
1690    xmlns: "http://www.w3.org/2000/svg"
1691  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
1692    d: "M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z"
1693  }));
1694  /* harmony default export */ __webpack_exports__["a"] = (chevronUp);
1695  
1696  
1697  /***/ }),
1698  
1699  /***/ "YLtl":
1700  /***/ (function(module, exports) {
1701  
1702  (function() { module.exports = window["lodash"]; }());
1703  
1704  /***/ }),
1705  
1706  /***/ "ZO3Q":
1707  /***/ (function(module, exports, __webpack_require__) {
1708  
1709  "use strict";
1710  
1711  
1712  Object.defineProperty(exports, '__esModule', { value: true });
1713  
1714  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
1715  
1716  var _extends = _interopDefault(__webpack_require__("pVnL"));
1717  var _objectWithoutPropertiesLoose = _interopDefault(__webpack_require__("8OQS"));
1718  var React = __webpack_require__("cDcd");
1719  var React__default = _interopDefault(React);
1720  var _inheritsLoose = _interopDefault(__webpack_require__("VbXa"));
1721  var _assertThisInitialized = _interopDefault(__webpack_require__("PJYZ"));
1722  
1723  var is = {
1724    arr: Array.isArray,
1725    obj: function obj(a) {
1726      return Object.prototype.toString.call(a) === '[object Object]';
1727    },
1728    fun: function fun(a) {
1729      return typeof a === 'function';
1730    },
1731    str: function str(a) {
1732      return typeof a === 'string';
1733    },
1734    num: function num(a) {
1735      return typeof a === 'number';
1736    },
1737    und: function und(a) {
1738      return a === void 0;
1739    },
1740    nul: function nul(a) {
1741      return a === null;
1742    },
1743    set: function set(a) {
1744      return a instanceof Set;
1745    },
1746    map: function map(a) {
1747      return a instanceof Map;
1748    },
1749    equ: function equ(a, b) {
1750      if (typeof a !== typeof b) return false;
1751      if (is.str(a) || is.num(a)) return a === b;
1752      if (is.obj(a) && is.obj(b) && Object.keys(a).length + Object.keys(b).length === 0) return true;
1753      var i;
1754  
1755      for (i in a) {
1756        if (!(i in b)) return false;
1757      }
1758  
1759      for (i in b) {
1760        if (a[i] !== b[i]) return false;
1761      }
1762  
1763      return is.und(i) ? a === b : true;
1764    }
1765  };
1766  function merge(target, lowercase) {
1767    if (lowercase === void 0) {
1768      lowercase = true;
1769    }
1770  
1771    return function (object) {
1772      return (is.arr(object) ? object : Object.keys(object)).reduce(function (acc, element) {
1773        var key = lowercase ? element[0].toLowerCase() + element.substring(1) : element;
1774        acc[key] = target(key);
1775        return acc;
1776      }, target);
1777    };
1778  }
1779  function useForceUpdate() {
1780    var _useState = React.useState(false),
1781        f = _useState[1];
1782  
1783    var forceUpdate = React.useCallback(function () {
1784      return f(function (v) {
1785        return !v;
1786      });
1787    }, []);
1788    return forceUpdate;
1789  }
1790  function withDefault(value, defaultValue) {
1791    return is.und(value) || is.nul(value) ? defaultValue : value;
1792  }
1793  function toArray(a) {
1794    return !is.und(a) ? is.arr(a) ? a : [a] : [];
1795  }
1796  function callProp(obj) {
1797    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1798      args[_key - 1] = arguments[_key];
1799    }
1800  
1801    return is.fun(obj) ? obj.apply(void 0, args) : obj;
1802  }
1803  
1804  function getForwardProps(props) {
1805    var to = props.to,
1806        from = props.from,
1807        config = props.config,
1808        onStart = props.onStart,
1809        onRest = props.onRest,
1810        onFrame = props.onFrame,
1811        children = props.children,
1812        reset = props.reset,
1813        reverse = props.reverse,
1814        force = props.force,
1815        immediate = props.immediate,
1816        delay = props.delay,
1817        attach = props.attach,
1818        destroyed = props.destroyed,
1819        interpolateTo = props.interpolateTo,
1820        ref = props.ref,
1821        lazy = props.lazy,
1822        forward = _objectWithoutPropertiesLoose(props, ["to", "from", "config", "onStart", "onRest", "onFrame", "children", "reset", "reverse", "force", "immediate", "delay", "attach", "destroyed", "interpolateTo", "ref", "lazy"]);
1823  
1824    return forward;
1825  }
1826  
1827  function interpolateTo(props) {
1828    var forward = getForwardProps(props);
1829    if (is.und(forward)) return _extends({
1830      to: forward
1831    }, props);
1832    var rest = Object.keys(props).reduce(function (a, k) {
1833      var _extends2;
1834  
1835      return !is.und(forward[k]) ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = props[k], _extends2));
1836    }, {});
1837    return _extends({
1838      to: forward
1839    }, rest);
1840  }
1841  function handleRef(ref, forward) {
1842    if (forward) {
1843      // If it's a function, assume it's a ref callback
1844      if (is.fun(forward)) forward(ref);else if (is.obj(forward)) {
1845        forward.current = ref;
1846      }
1847    }
1848  
1849    return ref;
1850  }
1851  
1852  var Animated =
1853  /*#__PURE__*/
1854  function () {
1855    function Animated() {
1856      this.payload = void 0;
1857      this.children = [];
1858    }
1859  
1860    var _proto = Animated.prototype;
1861  
1862    _proto.getAnimatedValue = function getAnimatedValue() {
1863      return this.getValue();
1864    };
1865  
1866    _proto.getPayload = function getPayload() {
1867      return this.payload || this;
1868    };
1869  
1870    _proto.attach = function attach() {};
1871  
1872    _proto.detach = function detach() {};
1873  
1874    _proto.getChildren = function getChildren() {
1875      return this.children;
1876    };
1877  
1878    _proto.addChild = function addChild(child) {
1879      if (this.children.length === 0) this.attach();
1880      this.children.push(child);
1881    };
1882  
1883    _proto.removeChild = function removeChild(child) {
1884      var index = this.children.indexOf(child);
1885      this.children.splice(index, 1);
1886      if (this.children.length === 0) this.detach();
1887    };
1888  
1889    return Animated;
1890  }();
1891  var AnimatedArray =
1892  /*#__PURE__*/
1893  function (_Animated) {
1894    _inheritsLoose(AnimatedArray, _Animated);
1895  
1896    function AnimatedArray() {
1897      var _this;
1898  
1899      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1900        args[_key] = arguments[_key];
1901      }
1902  
1903      _this = _Animated.call.apply(_Animated, [this].concat(args)) || this;
1904      _this.payload = [];
1905  
1906      _this.attach = function () {
1907        return _this.payload.forEach(function (p) {
1908          return p instanceof Animated && p.addChild(_assertThisInitialized(_this));
1909        });
1910      };
1911  
1912      _this.detach = function () {
1913        return _this.payload.forEach(function (p) {
1914          return p instanceof Animated && p.removeChild(_assertThisInitialized(_this));
1915        });
1916      };
1917  
1918      return _this;
1919    }
1920  
1921    return AnimatedArray;
1922  }(Animated);
1923  var AnimatedObject =
1924  /*#__PURE__*/
1925  function (_Animated2) {
1926    _inheritsLoose(AnimatedObject, _Animated2);
1927  
1928    function AnimatedObject() {
1929      var _this2;
1930  
1931      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1932        args[_key3] = arguments[_key3];
1933      }
1934  
1935      _this2 = _Animated2.call.apply(_Animated2, [this].concat(args)) || this;
1936      _this2.payload = {};
1937  
1938      _this2.attach = function () {
1939        return Object.values(_this2.payload).forEach(function (s) {
1940          return s instanceof Animated && s.addChild(_assertThisInitialized(_this2));
1941        });
1942      };
1943  
1944      _this2.detach = function () {
1945        return Object.values(_this2.payload).forEach(function (s) {
1946          return s instanceof Animated && s.removeChild(_assertThisInitialized(_this2));
1947        });
1948      };
1949  
1950      return _this2;
1951    }
1952  
1953    var _proto2 = AnimatedObject.prototype;
1954  
1955    _proto2.getValue = function getValue(animated) {
1956      if (animated === void 0) {
1957        animated = false;
1958      }
1959  
1960      var payload = {};
1961  
1962      for (var _key4 in this.payload) {
1963        var value = this.payload[_key4];
1964        if (animated && !(value instanceof Animated)) continue;
1965        payload[_key4] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;
1966      }
1967  
1968      return payload;
1969    };
1970  
1971    _proto2.getAnimatedValue = function getAnimatedValue() {
1972      return this.getValue(true);
1973    };
1974  
1975    return AnimatedObject;
1976  }(Animated);
1977  
1978  var applyAnimatedValues;
1979  function injectApplyAnimatedValues(fn, transform) {
1980    applyAnimatedValues = {
1981      fn: fn,
1982      transform: transform
1983    };
1984  }
1985  var colorNames;
1986  function injectColorNames(names) {
1987    colorNames = names;
1988  }
1989  var requestFrame = function requestFrame(cb) {
1990    return typeof window !== 'undefined' ? window.requestAnimationFrame(cb) : -1;
1991  };
1992  var cancelFrame = function cancelFrame(id) {
1993    typeof window !== 'undefined' && window.cancelAnimationFrame(id);
1994  };
1995  function injectFrame(raf, caf) {
1996    requestFrame = raf;
1997    cancelFrame = caf;
1998  }
1999  var interpolation;
2000  function injectStringInterpolator(fn) {
2001    interpolation = fn;
2002  }
2003  var now = function now() {
2004    return Date.now();
2005  };
2006  function injectNow(nowFn) {
2007    now = nowFn;
2008  }
2009  var defaultElement;
2010  function injectDefaultElement(el) {
2011    defaultElement = el;
2012  }
2013  var animatedApi = function animatedApi(node) {
2014    return node.current;
2015  };
2016  function injectAnimatedApi(fn) {
2017    animatedApi = fn;
2018  }
2019  var createAnimatedStyle;
2020  function injectCreateAnimatedStyle(factory) {
2021    createAnimatedStyle = factory;
2022  }
2023  var manualFrameloop;
2024  function injectManualFrameloop(callback) {
2025    manualFrameloop = callback;
2026  }
2027  
2028  var Globals = /*#__PURE__*/Object.freeze({
2029    get applyAnimatedValues () { return applyAnimatedValues; },
2030    injectApplyAnimatedValues: injectApplyAnimatedValues,
2031    get colorNames () { return colorNames; },
2032    injectColorNames: injectColorNames,
2033    get requestFrame () { return requestFrame; },
2034    get cancelFrame () { return cancelFrame; },
2035    injectFrame: injectFrame,
2036    get interpolation () { return interpolation; },
2037    injectStringInterpolator: injectStringInterpolator,
2038    get now () { return now; },
2039    injectNow: injectNow,
2040    get defaultElement () { return defaultElement; },
2041    injectDefaultElement: injectDefaultElement,
2042    get animatedApi () { return animatedApi; },
2043    injectAnimatedApi: injectAnimatedApi,
2044    get createAnimatedStyle () { return createAnimatedStyle; },
2045    injectCreateAnimatedStyle: injectCreateAnimatedStyle,
2046    get manualFrameloop () { return manualFrameloop; },
2047    injectManualFrameloop: injectManualFrameloop
2048  });
2049  
2050  /**
2051   * Wraps the `style` property with `AnimatedStyle`.
2052   */
2053  
2054  var AnimatedProps =
2055  /*#__PURE__*/
2056  function (_AnimatedObject) {
2057    _inheritsLoose(AnimatedProps, _AnimatedObject);
2058  
2059    function AnimatedProps(props, callback) {
2060      var _this;
2061  
2062      _this = _AnimatedObject.call(this) || this;
2063      _this.update = void 0;
2064      _this.payload = !props.style ? props : _extends({}, props, {
2065        style: createAnimatedStyle(props.style)
2066      });
2067      _this.update = callback;
2068  
2069      _this.attach();
2070  
2071      return _this;
2072    }
2073  
2074    return AnimatedProps;
2075  }(AnimatedObject);
2076  
2077  var isFunctionComponent = function isFunctionComponent(val) {
2078    return is.fun(val) && !(val.prototype instanceof React__default.Component);
2079  };
2080  
2081  var createAnimatedComponent = function createAnimatedComponent(Component) {
2082    var AnimatedComponent = React.forwardRef(function (props, ref) {
2083      var forceUpdate = useForceUpdate();
2084      var mounted = React.useRef(true);
2085      var propsAnimated = React.useRef(null);
2086      var node = React.useRef(null);
2087      var attachProps = React.useCallback(function (props) {
2088        var oldPropsAnimated = propsAnimated.current;
2089  
2090        var callback = function callback() {
2091          var didUpdate = false;
2092  
2093          if (node.current) {
2094            didUpdate = applyAnimatedValues.fn(node.current, propsAnimated.current.getAnimatedValue());
2095          }
2096  
2097          if (!node.current || didUpdate === false) {
2098            // If no referenced node has been found, or the update target didn't have a
2099            // native-responder, then forceUpdate the animation ...
2100            forceUpdate();
2101          }
2102        };
2103  
2104        propsAnimated.current = new AnimatedProps(props, callback);
2105        oldPropsAnimated && oldPropsAnimated.detach();
2106      }, []);
2107      React.useEffect(function () {
2108        return function () {
2109          mounted.current = false;
2110          propsAnimated.current && propsAnimated.current.detach();
2111        };
2112      }, []);
2113      React.useImperativeHandle(ref, function () {
2114        return animatedApi(node, mounted, forceUpdate);
2115      });
2116      attachProps(props);
2117  
2118      var _getValue = propsAnimated.current.getValue(),
2119          scrollTop = _getValue.scrollTop,
2120          scrollLeft = _getValue.scrollLeft,
2121          animatedProps = _objectWithoutPropertiesLoose(_getValue, ["scrollTop", "scrollLeft"]); // Functions cannot have refs, see:
2122      // See: https://github.com/react-spring/react-spring/issues/569
2123  
2124  
2125      var refFn = isFunctionComponent(Component) ? undefined : function (childRef) {
2126        return node.current = handleRef(childRef, ref);
2127      };
2128      return React__default.createElement(Component, _extends({}, animatedProps, {
2129        ref: refFn
2130      }));
2131    });
2132    return AnimatedComponent;
2133  };
2134  
2135  var active = false;
2136  var controllers = new Set();
2137  
2138  var update = function update() {
2139    if (!active) return false;
2140    var time = now();
2141  
2142    for (var _iterator = controllers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
2143      var _ref;
2144  
2145      if (_isArray) {
2146        if (_i >= _iterator.length) break;
2147        _ref = _iterator[_i++];
2148      } else {
2149        _i = _iterator.next();
2150        if (_i.done) break;
2151        _ref = _i.value;
2152      }
2153  
2154      var controller = _ref;
2155      var isActive = false;
2156  
2157      for (var configIdx = 0; configIdx < controller.configs.length; configIdx++) {
2158        var config = controller.configs[configIdx];
2159        var endOfAnimation = void 0,
2160            lastTime = void 0;
2161  
2162        for (var valIdx = 0; valIdx < config.animatedValues.length; valIdx++) {
2163          var animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude
2164  
2165          if (animation.done) continue;
2166          var from = config.fromValues[valIdx];
2167          var to = config.toValues[valIdx];
2168          var position = animation.lastPosition;
2169          var isAnimated = to instanceof Animated;
2170          var velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity;
2171          if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state
2172  
2173          if (config.immediate) {
2174            animation.setValue(to);
2175            animation.done = true;
2176            continue;
2177          } // Break animation when string values are involved
2178  
2179  
2180          if (typeof from === 'string' || typeof to === 'string') {
2181            animation.setValue(to);
2182            animation.done = true;
2183            continue;
2184          }
2185  
2186          if (config.duration !== void 0) {
2187            /** Duration easing */
2188            position = from + config.easing((time - animation.startTime) / config.duration) * (to - from);
2189            endOfAnimation = time >= animation.startTime + config.duration;
2190          } else if (config.decay) {
2191            /** Decay easing */
2192            position = from + velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - animation.startTime)));
2193            endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;
2194            if (endOfAnimation) to = position;
2195          } else {
2196            /** Spring easing */
2197            lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;
2198            velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end.
2199  
2200            if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/
2201  
2202            var numSteps = Math.floor(time - lastTime);
2203  
2204            for (var i = 0; i < numSteps; ++i) {
2205              var force = -config.tension * (position - to);
2206              var damping = -config.friction * velocity;
2207              var acceleration = (force + damping) / config.mass;
2208              velocity = velocity + acceleration * 1 / 1000;
2209              position = position + velocity * 1 / 1000;
2210            } // Conditions for stopping the spring animation
2211  
2212  
2213            var isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false;
2214            var isVelocity = Math.abs(velocity) <= config.precision;
2215            var isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true;
2216            endOfAnimation = isOvershooting || isVelocity && isDisplacement;
2217            animation.lastVelocity = velocity;
2218            animation.lastTime = time;
2219          } // Trails aren't done until their parents conclude
2220  
2221  
2222          if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false;
2223  
2224          if (endOfAnimation) {
2225            // Ensure that we end up with a round value
2226            if (animation.value !== to) position = to;
2227            animation.done = true;
2228          } else isActive = true;
2229  
2230          animation.setValue(position);
2231          animation.lastPosition = position;
2232        } // Keep track of updated values only when necessary
2233  
2234  
2235        if (controller.props.onFrame) controller.values[config.name] = config.interpolation.getValue();
2236      } // Update callbacks in the end of the frame
2237  
2238  
2239      if (controller.props.onFrame) controller.props.onFrame(controller.values); // Either call onEnd or next frame
2240  
2241      if (!isActive) {
2242        controllers.delete(controller);
2243        controller.stop(true);
2244      }
2245    } // Loop over as long as there are controllers ...
2246  
2247  
2248    if (controllers.size) {
2249      if (manualFrameloop) manualFrameloop();else requestFrame(update);
2250    } else {
2251      active = false;
2252    }
2253  
2254    return active;
2255  };
2256  
2257  var start = function start(controller) {
2258    if (!controllers.has(controller)) controllers.add(controller);
2259  
2260    if (!active) {
2261      active = true;
2262      if (manualFrameloop) requestFrame(manualFrameloop);else requestFrame(update);
2263    }
2264  };
2265  
2266  var stop = function stop(controller) {
2267    if (controllers.has(controller)) controllers.delete(controller);
2268  };
2269  
2270  function createInterpolator(range, output, extrapolate) {
2271    if (typeof range === 'function') {
2272      return range;
2273    }
2274  
2275    if (Array.isArray(range)) {
2276      return createInterpolator({
2277        range: range,
2278        output: output,
2279        extrapolate: extrapolate
2280      });
2281    }
2282  
2283    if (interpolation && typeof range.output[0] === 'string') {
2284      return interpolation(range);
2285    }
2286  
2287    var config = range;
2288    var outputRange = config.output;
2289    var inputRange = config.range || [0, 1];
2290    var extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';
2291    var extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';
2292  
2293    var easing = config.easing || function (t) {
2294      return t;
2295    };
2296  
2297    return function (input) {
2298      var range = findRange(input, inputRange);
2299      return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);
2300    };
2301  }
2302  
2303  function interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {
2304    var result = map ? map(input) : input; // Extrapolate
2305  
2306    if (result < inputMin) {
2307      if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;
2308    }
2309  
2310    if (result > inputMax) {
2311      if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;
2312    }
2313  
2314    if (outputMin === outputMax) return outputMin;
2315    if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range
2316  
2317    if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing
2318  
2319    result = easing(result); // Output Range
2320  
2321    if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;
2322    return result;
2323  }
2324  
2325  function findRange(input, inputRange) {
2326    for (var i = 1; i < inputRange.length - 1; ++i) {
2327      if (inputRange[i] >= input) break;
2328    }
2329  
2330    return i - 1;
2331  }
2332  
2333  var AnimatedInterpolation =
2334  /*#__PURE__*/
2335  function (_AnimatedArray) {
2336    _inheritsLoose(AnimatedInterpolation, _AnimatedArray);
2337  
2338    function AnimatedInterpolation(parents, range, output, extrapolate) {
2339      var _this;
2340  
2341      _this = _AnimatedArray.call(this) || this;
2342      _this.calc = void 0;
2343      _this.payload = parents instanceof AnimatedArray && !(parents instanceof AnimatedInterpolation) ? parents.getPayload() : Array.isArray(parents) ? parents : [parents];
2344      _this.calc = createInterpolator(range, output, extrapolate);
2345      return _this;
2346    }
2347  
2348    var _proto = AnimatedInterpolation.prototype;
2349  
2350    _proto.getValue = function getValue() {
2351      return this.calc.apply(this, this.payload.map(function (value) {
2352        return value.getValue();
2353      }));
2354    };
2355  
2356    _proto.updateConfig = function updateConfig(range, output, extrapolate) {
2357      this.calc = createInterpolator(range, output, extrapolate);
2358    };
2359  
2360    _proto.interpolate = function interpolate(range, output, extrapolate) {
2361      return new AnimatedInterpolation(this, range, output, extrapolate);
2362    };
2363  
2364    return AnimatedInterpolation;
2365  }(AnimatedArray);
2366  
2367  var interpolate$1 = function interpolate(parents, range, output) {
2368    return parents && new AnimatedInterpolation(parents, range, output);
2369  };
2370  
2371  var config = {
2372    default: {
2373      tension: 170,
2374      friction: 26
2375    },
2376    gentle: {
2377      tension: 120,
2378      friction: 14
2379    },
2380    wobbly: {
2381      tension: 180,
2382      friction: 12
2383    },
2384    stiff: {
2385      tension: 210,
2386      friction: 20
2387    },
2388    slow: {
2389      tension: 280,
2390      friction: 60
2391    },
2392    molasses: {
2393      tension: 280,
2394      friction: 120
2395    }
2396  };
2397  
2398  /** API
2399   *  useChain(references, timeSteps, timeFrame)
2400   */
2401  
2402  function useChain(refs, timeSteps, timeFrame) {
2403    if (timeFrame === void 0) {
2404      timeFrame = 1000;
2405    }
2406  
2407    var previous = React.useRef();
2408    React.useEffect(function () {
2409      if (is.equ(refs, previous.current)) refs.forEach(function (_ref) {
2410        var current = _ref.current;
2411        return current && current.start();
2412      });else if (timeSteps) {
2413        refs.forEach(function (_ref2, index) {
2414          var current = _ref2.current;
2415  
2416          if (current) {
2417            var ctrls = current.controllers;
2418  
2419            if (ctrls.length) {
2420              var t = timeFrame * timeSteps[index];
2421              ctrls.forEach(function (ctrl) {
2422                ctrl.queue = ctrl.queue.map(function (e) {
2423                  return _extends({}, e, {
2424                    delay: e.delay + t
2425                  });
2426                });
2427                ctrl.start();
2428              });
2429            }
2430          }
2431        });
2432      } else refs.reduce(function (q, _ref3, rI) {
2433        var current = _ref3.current;
2434        return q = q.then(function () {
2435          return current.start();
2436        });
2437      }, Promise.resolve());
2438      previous.current = refs;
2439    });
2440  }
2441  
2442  /**
2443   * Animated works by building a directed acyclic graph of dependencies
2444   * transparently when you render your Animated components.
2445   *
2446   *               new Animated.Value(0)
2447   *     .interpolate()        .interpolate()    new Animated.Value(1)
2448   *         opacity               translateY      scale
2449   *          style                         transform
2450   *         View#234                         style
2451   *                                         View#123
2452   *
2453   * A) Top Down phase
2454   * When an AnimatedValue is updated, we recursively go down through this
2455   * graph in order to find leaf nodes: the views that we flag as needing
2456   * an update.
2457   *
2458   * B) Bottom Up phase
2459   * When a view is flagged as needing an update, we recursively go back up
2460   * in order to build the new value that it needs. The reason why we need
2461   * this two-phases process is to deal with composite props such as
2462   * transform which can receive values from multiple parents.
2463   */
2464  function addAnimatedStyles(node, styles) {
2465    if ('update' in node) {
2466      styles.add(node);
2467    } else {
2468      node.getChildren().forEach(function (child) {
2469        return addAnimatedStyles(child, styles);
2470      });
2471    }
2472  }
2473  
2474  var AnimatedValue =
2475  /*#__PURE__*/
2476  function (_Animated) {
2477    _inheritsLoose(AnimatedValue, _Animated);
2478  
2479    function AnimatedValue(_value) {
2480      var _this;
2481  
2482      _this = _Animated.call(this) || this;
2483      _this.animatedStyles = new Set();
2484      _this.value = void 0;
2485      _this.startPosition = void 0;
2486      _this.lastPosition = void 0;
2487      _this.lastVelocity = void 0;
2488      _this.startTime = void 0;
2489      _this.lastTime = void 0;
2490      _this.done = false;
2491  
2492      _this.setValue = function (value, flush) {
2493        if (flush === void 0) {
2494          flush = true;
2495        }
2496  
2497        _this.value = value;
2498        if (flush) _this.flush();
2499      };
2500  
2501      _this.value = _value;
2502      _this.startPosition = _value;
2503      _this.lastPosition = _value;
2504      return _this;
2505    }
2506  
2507    var _proto = AnimatedValue.prototype;
2508  
2509    _proto.flush = function flush() {
2510      if (this.animatedStyles.size === 0) {
2511        addAnimatedStyles(this, this.animatedStyles);
2512      }
2513  
2514      this.animatedStyles.forEach(function (animatedStyle) {
2515        return animatedStyle.update();
2516      });
2517    };
2518  
2519    _proto.clearStyles = function clearStyles() {
2520      this.animatedStyles.clear();
2521    };
2522  
2523    _proto.getValue = function getValue() {
2524      return this.value;
2525    };
2526  
2527    _proto.interpolate = function interpolate(range, output, extrapolate) {
2528      return new AnimatedInterpolation(this, range, output, extrapolate);
2529    };
2530  
2531    return AnimatedValue;
2532  }(Animated);
2533  
2534  var AnimatedValueArray =
2535  /*#__PURE__*/
2536  function (_AnimatedArray) {
2537    _inheritsLoose(AnimatedValueArray, _AnimatedArray);
2538  
2539    function AnimatedValueArray(values) {
2540      var _this;
2541  
2542      _this = _AnimatedArray.call(this) || this;
2543      _this.payload = values.map(function (n) {
2544        return new AnimatedValue(n);
2545      });
2546      return _this;
2547    }
2548  
2549    var _proto = AnimatedValueArray.prototype;
2550  
2551    _proto.setValue = function setValue(value, flush) {
2552      var _this2 = this;
2553  
2554      if (flush === void 0) {
2555        flush = true;
2556      }
2557  
2558      if (Array.isArray(value)) {
2559        if (value.length === this.payload.length) {
2560          value.forEach(function (v, i) {
2561            return _this2.payload[i].setValue(v, flush);
2562          });
2563        }
2564      } else {
2565        this.payload.forEach(function (p) {
2566          return p.setValue(value, flush);
2567        });
2568      }
2569    };
2570  
2571    _proto.getValue = function getValue() {
2572      return this.payload.map(function (v) {
2573        return v.getValue();
2574      });
2575    };
2576  
2577    _proto.interpolate = function interpolate(range, output) {
2578      return new AnimatedInterpolation(this, range, output);
2579    };
2580  
2581    return AnimatedValueArray;
2582  }(AnimatedArray);
2583  
2584  var G = 0;
2585  
2586  var Controller =
2587  /*#__PURE__*/
2588  function () {
2589    function Controller() {
2590      var _this = this;
2591  
2592      this.id = void 0;
2593      this.idle = true;
2594      this.hasChanged = false;
2595      this.guid = 0;
2596      this.local = 0;
2597      this.props = {};
2598      this.merged = {};
2599      this.animations = {};
2600      this.interpolations = {};
2601      this.values = {};
2602      this.configs = [];
2603      this.listeners = [];
2604      this.queue = [];
2605      this.localQueue = void 0;
2606  
2607      this.getValues = function () {
2608        return _this.interpolations;
2609      };
2610  
2611      this.id = G++;
2612    }
2613    /** update(props)
2614     *  This function filters input props and creates an array of tasks which are executed in .start()
2615     *  Each task is allowed to carry a delay, which means it can execute asnychroneously */
2616  
2617  
2618    var _proto = Controller.prototype;
2619  
2620    _proto.update = function update$$1(args) {
2621      //this._id = n + this.id
2622      if (!args) return this; // Extract delay and the to-prop from props
2623  
2624      var _ref = interpolateTo(args),
2625          _ref$delay = _ref.delay,
2626          delay = _ref$delay === void 0 ? 0 : _ref$delay,
2627          to = _ref.to,
2628          props = _objectWithoutPropertiesLoose(_ref, ["delay", "to"]);
2629  
2630      if (is.arr(to) || is.fun(to)) {
2631        // If config is either a function or an array queue it up as is
2632        this.queue.push(_extends({}, props, {
2633          delay: delay,
2634          to: to
2635        }));
2636      } else if (to) {
2637        // Otherwise go through each key since it could be delayed individually
2638        var ops = {};
2639        Object.entries(to).forEach(function (_ref2) {
2640          var _to;
2641  
2642          var k = _ref2[0],
2643              v = _ref2[1];
2644  
2645          // Fetch delay and create an entry, consisting of the to-props, the delay, and basic props
2646          var entry = _extends({
2647            to: (_to = {}, _to[k] = v, _to),
2648            delay: callProp(delay, k)
2649          }, props);
2650  
2651          var previous = ops[entry.delay] && ops[entry.delay].to;
2652          ops[entry.delay] = _extends({}, ops[entry.delay], entry, {
2653            to: _extends({}, previous, entry.to)
2654          });
2655        });
2656        this.queue = Object.values(ops);
2657      } // Sort queue, so that async calls go last
2658  
2659  
2660      this.queue = this.queue.sort(function (a, b) {
2661        return a.delay - b.delay;
2662      }); // Diff the reduced props immediately (they'll contain the from-prop and some config)
2663  
2664      this.diff(props);
2665      return this;
2666    }
2667    /** start(onEnd)
2668     *  This function either executes a queue, if present, or starts the frameloop, which animates */
2669    ;
2670  
2671    _proto.start = function start$$1(onEnd) {
2672      var _this2 = this;
2673  
2674      // If a queue is present we must excecute it
2675      if (this.queue.length) {
2676        this.idle = false; // Updates can interrupt trailing queues, in that case we just merge values
2677  
2678        if (this.localQueue) {
2679          this.localQueue.forEach(function (_ref3) {
2680            var _ref3$from = _ref3.from,
2681                from = _ref3$from === void 0 ? {} : _ref3$from,
2682                _ref3$to = _ref3.to,
2683                to = _ref3$to === void 0 ? {} : _ref3$to;
2684            if (is.obj(from)) _this2.merged = _extends({}, from, _this2.merged);
2685            if (is.obj(to)) _this2.merged = _extends({}, _this2.merged, to);
2686          });
2687        } // The guid helps us tracking frames, a new queue over an old one means an override
2688        // We discard async calls in that caseÍ
2689  
2690  
2691        var local = this.local = ++this.guid;
2692        var queue = this.localQueue = this.queue;
2693        this.queue = []; // Go through each entry and execute it
2694  
2695        queue.forEach(function (_ref4, index) {
2696          var delay = _ref4.delay,
2697              props = _objectWithoutPropertiesLoose(_ref4, ["delay"]);
2698  
2699          var cb = function cb(finished) {
2700            if (index === queue.length - 1 && local === _this2.guid && finished) {
2701              _this2.idle = true;
2702              if (_this2.props.onRest) _this2.props.onRest(_this2.merged);
2703            }
2704  
2705            if (onEnd) onEnd();
2706          }; // Entries can be delayed, ansyc or immediate
2707  
2708  
2709          var async = is.arr(props.to) || is.fun(props.to);
2710  
2711          if (delay) {
2712            setTimeout(function () {
2713              if (local === _this2.guid) {
2714                if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb);
2715              }
2716            }, delay);
2717          } else if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb);
2718        });
2719      } // Otherwise we kick of the frameloop
2720      else {
2721          if (is.fun(onEnd)) this.listeners.push(onEnd);
2722          if (this.props.onStart) this.props.onStart();
2723  
2724          start(this);
2725        }
2726  
2727      return this;
2728    };
2729  
2730    _proto.stop = function stop$$1(finished) {
2731      this.listeners.forEach(function (onEnd) {
2732        return onEnd(finished);
2733      });
2734      this.listeners = [];
2735      return this;
2736    }
2737    /** Pause sets onEnd listeners free, but also removes the controller from the frameloop */
2738    ;
2739  
2740    _proto.pause = function pause(finished) {
2741      this.stop(true);
2742      if (finished) stop(this);
2743      return this;
2744    };
2745  
2746    _proto.runAsync = function runAsync(_ref5, onEnd) {
2747      var _this3 = this;
2748  
2749      var delay = _ref5.delay,
2750          props = _objectWithoutPropertiesLoose(_ref5, ["delay"]);
2751  
2752      var local = this.local; // If "to" is either a function or an array it will be processed async, therefor "to" should be empty right now
2753      // If the view relies on certain values "from" has to be present
2754  
2755      var queue = Promise.resolve(undefined);
2756  
2757      if (is.arr(props.to)) {
2758        var _loop = function _loop(i) {
2759          var index = i;
2760  
2761          var fresh = _extends({}, props, interpolateTo(props.to[index]));
2762  
2763          if (is.arr(fresh.config)) fresh.config = fresh.config[index];
2764          queue = queue.then(function () {
2765            //this.stop()
2766            if (local === _this3.guid) return new Promise(function (r) {
2767              return _this3.diff(fresh).start(r);
2768            });
2769          });
2770        };
2771  
2772        for (var i = 0; i < props.to.length; i++) {
2773          _loop(i);
2774        }
2775      } else if (is.fun(props.to)) {
2776        var index = 0;
2777        var last;
2778        queue = queue.then(function () {
2779          return props.to( // next(props)
2780          function (p) {
2781            var fresh = _extends({}, props, interpolateTo(p));
2782  
2783            if (is.arr(fresh.config)) fresh.config = fresh.config[index];
2784            index++; //this.stop()
2785  
2786            if (local === _this3.guid) return last = new Promise(function (r) {
2787              return _this3.diff(fresh).start(r);
2788            });
2789            return;
2790          }, // cancel()
2791          function (finished) {
2792            if (finished === void 0) {
2793              finished = true;
2794            }
2795  
2796            return _this3.stop(finished);
2797          }).then(function () {
2798            return last;
2799          });
2800        });
2801      }
2802  
2803      queue.then(onEnd);
2804    };
2805  
2806    _proto.diff = function diff(props) {
2807      var _this4 = this;
2808  
2809      this.props = _extends({}, this.props, props);
2810      var _this$props = this.props,
2811          _this$props$from = _this$props.from,
2812          from = _this$props$from === void 0 ? {} : _this$props$from,
2813          _this$props$to = _this$props.to,
2814          to = _this$props$to === void 0 ? {} : _this$props$to,
2815          _this$props$config = _this$props.config,
2816          config = _this$props$config === void 0 ? {} : _this$props$config,
2817          reverse = _this$props.reverse,
2818          attach = _this$props.attach,
2819          reset = _this$props.reset,
2820          immediate = _this$props.immediate; // Reverse values when requested
2821  
2822      if (reverse) {
2823        var _ref6 = [to, from];
2824        from = _ref6[0];
2825        to = _ref6[1];
2826      } // This will collect all props that were ever set, reset merged props when necessary
2827  
2828  
2829      this.merged = _extends({}, from, this.merged, to);
2830      this.hasChanged = false; // Attachment handling, trailed springs can "attach" themselves to a previous spring
2831  
2832      var target = attach && attach(this); // Reduces input { name: value } pairs into animated values
2833  
2834      this.animations = Object.entries(this.merged).reduce(function (acc, _ref7) {
2835        var name = _ref7[0],
2836            value = _ref7[1];
2837        // Issue cached entries, except on reset
2838        var entry = acc[name] || {}; // Figure out what the value is supposed to be
2839  
2840        var isNumber = is.num(value);
2841        var isString = is.str(value) && !value.startsWith('#') && !/\d/.test(value) && !colorNames[value];
2842        var isArray = is.arr(value);
2843        var isInterpolation = !isNumber && !isArray && !isString;
2844        var fromValue = !is.und(from[name]) ? from[name] : value;
2845        var toValue = isNumber || isArray ? value : isString ? value : 1;
2846        var toConfig = callProp(config, name);
2847        if (target) toValue = target.animations[name].parent;
2848        var parent = entry.parent,
2849            interpolation$$1 = entry.interpolation,
2850            toValues = toArray(target ? toValue.getPayload() : toValue),
2851            animatedValues;
2852        var newValue = value;
2853        if (isInterpolation) newValue = interpolation({
2854          range: [0, 1],
2855          output: [value, value]
2856        })(1);
2857        var currentValue = interpolation$$1 && interpolation$$1.getValue(); // Change detection flags
2858  
2859        var isFirst = is.und(parent);
2860        var isActive = !isFirst && entry.animatedValues.some(function (v) {
2861          return !v.done;
2862        });
2863        var currentValueDiffersFromGoal = !is.equ(newValue, currentValue);
2864        var hasNewGoal = !is.equ(newValue, entry.previous);
2865        var hasNewConfig = !is.equ(toConfig, entry.config); // Change animation props when props indicate a new goal (new value differs from previous one)
2866        // and current values differ from it. Config changes trigger a new update as well (though probably shouldn't?)
2867  
2868        if (reset || hasNewGoal && currentValueDiffersFromGoal || hasNewConfig) {
2869          var _extends2;
2870  
2871          // Convert regular values into animated values, ALWAYS re-use if possible
2872          if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedValueArray(fromValue);else if (isInterpolation) {
2873            var prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);
2874            prev = prev !== void 0 && !reset ? prev : fromValue;
2875  
2876            if (entry.parent) {
2877              parent = entry.parent;
2878              parent.setValue(0, false);
2879            } else parent = new AnimatedValue(0);
2880  
2881            var range = {
2882              output: [prev, value]
2883            };
2884  
2885            if (entry.interpolation) {
2886              interpolation$$1 = entry.interpolation;
2887              entry.interpolation.updateConfig(range);
2888            } else interpolation$$1 = parent.interpolate(range);
2889          }
2890          toValues = toArray(target ? toValue.getPayload() : toValue);
2891          animatedValues = toArray(parent.getPayload());
2892          if (reset && !isInterpolation) parent.setValue(fromValue, false);
2893          _this4.hasChanged = true; // Reset animated values
2894  
2895          animatedValues.forEach(function (value) {
2896            value.startPosition = value.value;
2897            value.lastPosition = value.value;
2898            value.lastVelocity = isActive ? value.lastVelocity : undefined;
2899            value.lastTime = isActive ? value.lastTime : undefined;
2900            value.startTime = now();
2901            value.done = false;
2902            value.animatedStyles.clear();
2903          }); // Set immediate values
2904  
2905          if (callProp(immediate, name)) {
2906            parent.setValue(isInterpolation ? toValue : value, false);
2907          }
2908  
2909          return _extends({}, acc, (_extends2 = {}, _extends2[name] = _extends({}, entry, {
2910            name: name,
2911            parent: parent,
2912            interpolation: interpolation$$1,
2913            animatedValues: animatedValues,
2914            toValues: toValues,
2915            previous: newValue,
2916            config: toConfig,
2917            fromValues: toArray(parent.getValue()),
2918            immediate: callProp(immediate, name),
2919            initialVelocity: withDefault(toConfig.velocity, 0),
2920            clamp: withDefault(toConfig.clamp, false),
2921            precision: withDefault(toConfig.precision, 0.01),
2922            tension: withDefault(toConfig.tension, 170),
2923            friction: withDefault(toConfig.friction, 26),
2924            mass: withDefault(toConfig.mass, 1),
2925            duration: toConfig.duration,
2926            easing: withDefault(toConfig.easing, function (t) {
2927              return t;
2928            }),
2929            decay: toConfig.decay
2930          }), _extends2));
2931        } else {
2932          if (!currentValueDiffersFromGoal) {
2933            var _extends3;
2934  
2935            // So ... the current target value (newValue) appears to be different from the previous value,
2936            // which normally constitutes an update, but the actual value (currentValue) matches the target!
2937            // In order to resolve this without causing an animation update we silently flag the animation as done,
2938            // which it technically is. Interpolations also needs a config update with their target set to 1.
2939            if (isInterpolation) {
2940              parent.setValue(1, false);
2941              interpolation$$1.updateConfig({
2942                output: [newValue, newValue]
2943              });
2944            }
2945  
2946            parent.done = true;
2947            _this4.hasChanged = true;
2948            return _extends({}, acc, (_extends3 = {}, _extends3[name] = _extends({}, acc[name], {
2949              previous: newValue
2950            }), _extends3));
2951          }
2952  
2953          return acc;
2954        }
2955      }, this.animations);
2956  
2957      if (this.hasChanged) {
2958        // Make animations available to frameloop
2959        this.configs = Object.values(this.animations);
2960        this.values = {};
2961        this.interpolations = {};
2962  
2963        for (var key in this.animations) {
2964          this.interpolations[key] = this.animations[key].interpolation;
2965          this.values[key] = this.animations[key].interpolation.getValue();
2966        }
2967      }
2968  
2969      return this;
2970    };
2971  
2972    _proto.destroy = function destroy() {
2973      this.stop();
2974      this.props = {};
2975      this.merged = {};
2976      this.animations = {};
2977      this.interpolations = {};
2978      this.values = {};
2979      this.configs = [];
2980      this.local = 0;
2981    };
2982  
2983    return Controller;
2984  }();
2985  
2986  /** API
2987   * const props = useSprings(number, [{ ... }, { ... }, ...])
2988   * const [props, set] = useSprings(number, (i, controller) => ({ ... }))
2989   */
2990  
2991  var useSprings = function useSprings(length, props) {
2992    var mounted = React.useRef(false);
2993    var ctrl = React.useRef();
2994    var isFn = is.fun(props); // The controller maintains the animation values, starts and stops animations
2995  
2996    var _useMemo = React.useMemo(function () {
2997      // Remove old controllers
2998      if (ctrl.current) {
2999        ctrl.current.map(function (c) {
3000          return c.destroy();
3001        });
3002        ctrl.current = undefined;
3003      }
3004  
3005      var ref;
3006      return [new Array(length).fill().map(function (_, i) {
3007        var ctrl = new Controller();
3008        var newProps = isFn ? callProp(props, i, ctrl) : props[i];
3009        if (i === 0) ref = newProps.ref;
3010        ctrl.update(newProps);
3011        if (!ref) ctrl.start();
3012        return ctrl;
3013      }), ref];
3014    }, [length]),
3015        controllers = _useMemo[0],
3016        ref = _useMemo[1];
3017  
3018    ctrl.current = controllers; // The hooks reference api gets defined here ...
3019  
3020    var api = React.useImperativeHandle(ref, function () {
3021      return {
3022        start: function start() {
3023          return Promise.all(ctrl.current.map(function (c) {
3024            return new Promise(function (r) {
3025              return c.start(r);
3026            });
3027          }));
3028        },
3029        stop: function stop(finished) {
3030          return ctrl.current.forEach(function (c) {
3031            return c.stop(finished);
3032          });
3033        },
3034  
3035        get controllers() {
3036          return ctrl.current;
3037        }
3038  
3039      };
3040    }); // This function updates the controllers
3041  
3042    var updateCtrl = React.useMemo(function () {
3043      return function (updateProps) {
3044        return ctrl.current.map(function (c, i) {
3045          c.update(isFn ? callProp(updateProps, i, c) : updateProps[i]);
3046          if (!ref) c.start();
3047        });
3048      };
3049    }, [length]); // Update controller if props aren't functional
3050  
3051    React.useEffect(function () {
3052      if (mounted.current) {
3053        if (!isFn) updateCtrl(props);
3054      } else if (!ref) ctrl.current.forEach(function (c) {
3055        return c.start();
3056      });
3057    }); // Update mounted flag and destroy controller on unmount
3058  
3059    React.useEffect(function () {
3060      return mounted.current = true, function () {
3061        return ctrl.current.forEach(function (c) {
3062          return c.destroy();
3063        });
3064      };
3065    }, []); // Return animated props, or, anim-props + the update-setter above
3066  
3067    var propValues = ctrl.current.map(function (c) {
3068      return c.getValues();
3069    });
3070    return isFn ? [propValues, updateCtrl, function (finished) {
3071      return ctrl.current.forEach(function (c) {
3072        return c.pause(finished);
3073      });
3074    }] : propValues;
3075  };
3076  
3077  /** API
3078   * const props = useSpring({ ... })
3079   * const [props, set] = useSpring(() => ({ ... }))
3080   */
3081  
3082  var useSpring = function useSpring(props) {
3083    var isFn = is.fun(props);
3084  
3085    var _useSprings = useSprings(1, isFn ? props : [props]),
3086        result = _useSprings[0],
3087        set = _useSprings[1],
3088        pause = _useSprings[2];
3089  
3090    return isFn ? [result[0], set, pause] : result;
3091  };
3092  
3093  /** API
3094   * const trails = useTrail(number, { ... })
3095   * const [trails, set] = useTrail(number, () => ({ ... }))
3096   */
3097  
3098  var useTrail = function useTrail(length, props) {
3099    var mounted = React.useRef(false);
3100    var isFn = is.fun(props);
3101    var updateProps = callProp(props);
3102    var instances = React.useRef();
3103  
3104    var _useSprings = useSprings(length, function (i, ctrl) {
3105      if (i === 0) instances.current = [];
3106      instances.current.push(ctrl);
3107      return _extends({}, updateProps, {
3108        config: callProp(updateProps.config, i),
3109        attach: i > 0 && function () {
3110          return instances.current[i - 1];
3111        }
3112      });
3113    }),
3114        result = _useSprings[0],
3115        set = _useSprings[1],
3116        pause = _useSprings[2]; // Set up function to update controller
3117  
3118  
3119    var updateCtrl = React.useMemo(function () {
3120      return function (props) {
3121        return set(function (i, ctrl) {
3122          var last = props.reverse ? i === 0 : length - 1 === i;
3123          var attachIdx = props.reverse ? i + 1 : i - 1;
3124          var attachController = instances.current[attachIdx];
3125          return _extends({}, props, {
3126            config: callProp(props.config || updateProps.config, i),
3127            attach: attachController && function () {
3128              return attachController;
3129            }
3130          });
3131        });
3132      };
3133    }, [length, updateProps.reverse]); // Update controller if props aren't functional
3134  
3135    React.useEffect(function () {
3136      return void (mounted.current && !isFn && updateCtrl(props));
3137    }); // Update mounted flag and destroy controller on unmount
3138  
3139    React.useEffect(function () {
3140      return void (mounted.current = true);
3141    }, []);
3142    return isFn ? [result, updateCtrl, pause] : result;
3143  };
3144  
3145  /** API
3146   * const transitions = useTransition(items, itemKeys, { ... })
3147   * const [transitions, update] = useTransition(items, itemKeys, () => ({ ... }))
3148   */
3149  
3150  var guid = 0;
3151  var ENTER = 'enter';
3152  var LEAVE = 'leave';
3153  var UPDATE = 'update';
3154  
3155  var mapKeys = function mapKeys(items, keys) {
3156    return (typeof keys === 'function' ? items.map(keys) : toArray(keys)).map(String);
3157  };
3158  
3159  var get = function get(props) {
3160    var items = props.items,
3161        _props$keys = props.keys,
3162        keys = _props$keys === void 0 ? function (item) {
3163      return item;
3164    } : _props$keys,
3165        rest = _objectWithoutPropertiesLoose(props, ["items", "keys"]);
3166  
3167    items = toArray(items !== void 0 ? items : null);
3168    return _extends({
3169      items: items,
3170      keys: mapKeys(items, keys)
3171    }, rest);
3172  };
3173  
3174  function useTransition(input, keyTransform, config) {
3175    var props = _extends({
3176      items: input,
3177      keys: keyTransform || function (i) {
3178        return i;
3179      }
3180    }, config);
3181  
3182    var _get = get(props),
3183        _get$lazy = _get.lazy,
3184        lazy = _get$lazy === void 0 ? false : _get$lazy,
3185        _get$unique = _get.unique,
3186        _get$reset = _get.reset,
3187        reset = _get$reset === void 0 ? false : _get$reset,
3188        enter = _get.enter,
3189        leave = _get.leave,
3190        update = _get.update,
3191        onDestroyed = _get.onDestroyed,
3192        keys = _get.keys,
3193        items = _get.items,
3194        onFrame = _get.onFrame,
3195        _onRest = _get.onRest,
3196        onStart = _get.onStart,
3197        ref = _get.ref,
3198        extra = _objectWithoutPropertiesLoose(_get, ["lazy", "unique", "reset", "enter", "leave", "update", "onDestroyed", "keys", "items", "onFrame", "onRest", "onStart", "ref"]);
3199  
3200    var forceUpdate = useForceUpdate();
3201    var mounted = React.useRef(false);
3202    var state = React.useRef({
3203      mounted: false,
3204      first: true,
3205      deleted: [],
3206      current: {},
3207      transitions: [],
3208      prevProps: {},
3209      paused: !!props.ref,
3210      instances: !mounted.current && new Map(),
3211      forceUpdate: forceUpdate
3212    });
3213    React.useImperativeHandle(props.ref, function () {
3214      return {
3215        start: function start() {
3216          return Promise.all(Array.from(state.current.instances).map(function (_ref) {
3217            var c = _ref[1];
3218            return new Promise(function (r) {
3219              return c.start(r);
3220            });
3221          }));
3222        },
3223        stop: function stop(finished) {
3224          return Array.from(state.current.instances).forEach(function (_ref2) {
3225            var c = _ref2[1];
3226            return c.stop(finished);
3227          });
3228        },
3229  
3230        get controllers() {
3231          return Array.from(state.current.instances).map(function (_ref3) {
3232            var c = _ref3[1];
3233            return c;
3234          });
3235        }
3236  
3237      };
3238    }); // Update state
3239  
3240    state.current = diffItems(state.current, props);
3241  
3242    if (state.current.changed) {
3243      // Update state
3244      state.current.transitions.forEach(function (transition) {
3245        var slot = transition.slot,
3246            from = transition.from,
3247            to = transition.to,
3248            config = transition.config,
3249            trail = transition.trail,
3250            key = transition.key,
3251            item = transition.item;
3252        if (!state.current.instances.has(key)) state.current.instances.set(key, new Controller()); // update the map object
3253  
3254        var ctrl = state.current.instances.get(key);
3255  
3256        var newProps = _extends({}, extra, {
3257          to: to,
3258          from: from,
3259          config: config,
3260          ref: ref,
3261          onRest: function onRest(values) {
3262            if (state.current.mounted) {
3263              if (transition.destroyed) {
3264                // If no ref is given delete destroyed items immediately
3265                if (!ref && !lazy) cleanUp(state, key);
3266                if (onDestroyed) onDestroyed(item);
3267              } // A transition comes to rest once all its springs conclude
3268  
3269  
3270              var curInstances = Array.from(state.current.instances);
3271              var active = curInstances.some(function (_ref4) {
3272                var c = _ref4[1];
3273                return !c.idle;
3274              });
3275              if (!active && (ref || lazy) && state.current.deleted.length > 0) cleanUp(state);
3276              if (_onRest) _onRest(item, slot, values);
3277            }
3278          },
3279          onStart: onStart && function () {
3280            return onStart(item, slot);
3281          },
3282          onFrame: onFrame && function (values) {
3283            return onFrame(item, slot, values);
3284          },
3285          delay: trail,
3286          reset: reset && slot === ENTER // Update controller
3287  
3288        });
3289  
3290        ctrl.update(newProps);
3291        if (!state.current.paused) ctrl.start();
3292      });
3293    }
3294  
3295    React.useEffect(function () {
3296      state.current.mounted = mounted.current = true;
3297      return function () {
3298        state.current.mounted = mounted.current = false;
3299        Array.from(state.current.instances).map(function (_ref5) {
3300          var c = _ref5[1];
3301          return c.destroy();
3302        });
3303        state.current.instances.clear();
3304      };
3305    }, []);
3306    return state.current.transitions.map(function (_ref6) {
3307      var item = _ref6.item,
3308          slot = _ref6.slot,
3309          key = _ref6.key;
3310      return {
3311        item: item,
3312        key: key,
3313        state: slot,
3314        props: state.current.instances.get(key).getValues()
3315      };
3316    });
3317  }
3318  
3319  function cleanUp(state, filterKey) {
3320    var deleted = state.current.deleted;
3321  
3322    var _loop = function _loop() {
3323      if (_isArray) {
3324        if (_i >= _iterator.length) return "break";
3325        _ref8 = _iterator[_i++];
3326      } else {
3327        _i = _iterator.next();
3328        if (_i.done) return "break";
3329        _ref8 = _i.value;
3330      }
3331  
3332      var _ref7 = _ref8;
3333      var key = _ref7.key;
3334  
3335      var filter = function filter(t) {
3336        return t.key !== key;
3337      };
3338  
3339      if (is.und(filterKey) || filterKey === key) {
3340        state.current.instances.delete(key);
3341        state.current.transitions = state.current.transitions.filter(filter);
3342        state.current.deleted = state.current.deleted.filter(filter);
3343      }
3344    };
3345  
3346    for (var _iterator = deleted, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
3347      var _ref8;
3348  
3349      var _ret = _loop();
3350  
3351      if (_ret === "break") break;
3352    }
3353  
3354    state.current.forceUpdate();
3355  }
3356  
3357  function diffItems(_ref9, props) {
3358    var first = _ref9.first,
3359        prevProps = _ref9.prevProps,
3360        state = _objectWithoutPropertiesLoose(_ref9, ["first", "prevProps"]);
3361  
3362    var _get2 = get(props),
3363        items = _get2.items,
3364        keys = _get2.keys,
3365        initial = _get2.initial,
3366        from = _get2.from,
3367        enter = _get2.enter,
3368        leave = _get2.leave,
3369        update = _get2.update,
3370        _get2$trail = _get2.trail,
3371        trail = _get2$trail === void 0 ? 0 : _get2$trail,
3372        unique = _get2.unique,
3373        config = _get2.config,
3374        _get2$order = _get2.order,
3375        order = _get2$order === void 0 ? [ENTER, LEAVE, UPDATE] : _get2$order;
3376  
3377    var _get3 = get(prevProps),
3378        _keys = _get3.keys,
3379        _items = _get3.items;
3380  
3381    var current = _extends({}, state.current);
3382  
3383    var deleted = [].concat(state.deleted); // Compare next keys with current keys
3384  
3385    var currentKeys = Object.keys(current);
3386    var currentSet = new Set(currentKeys);
3387    var nextSet = new Set(keys);
3388    var added = keys.filter(function (item) {
3389      return !currentSet.has(item);
3390    });
3391    var removed = state.transitions.filter(function (item) {
3392      return !item.destroyed && !nextSet.has(item.originalKey);
3393    }).map(function (i) {
3394      return i.originalKey;
3395    });
3396    var updated = keys.filter(function (item) {
3397      return currentSet.has(item);
3398    });
3399    var delay = -trail;
3400  
3401    while (order.length) {
3402      var changeType = order.shift();
3403  
3404      switch (changeType) {
3405        case ENTER:
3406          {
3407            added.forEach(function (key, index) {
3408              // In unique mode, remove fading out transitions if their key comes in again
3409              if (unique && deleted.find(function (d) {
3410                return d.originalKey === key;
3411              })) deleted = deleted.filter(function (t) {
3412                return t.originalKey !== key;
3413              });
3414              var keyIndex = keys.indexOf(key);
3415              var item = items[keyIndex];
3416              var slot = first && initial !== void 0 ? 'initial' : ENTER;
3417              current[key] = {
3418                slot: slot,
3419                originalKey: key,
3420                key: unique ? String(key) : guid++,
3421                item: item,
3422                trail: delay = delay + trail,
3423                config: callProp(config, item, slot),
3424                from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),
3425                to: callProp(enter, item)
3426              };
3427            });
3428            break;
3429          }
3430  
3431        case LEAVE:
3432          {
3433            removed.forEach(function (key) {
3434              var keyIndex = _keys.indexOf(key);
3435  
3436              var item = _items[keyIndex];
3437              var slot = LEAVE;
3438              deleted.unshift(_extends({}, current[key], {
3439                slot: slot,
3440                destroyed: true,
3441                left: _keys[Math.max(0, keyIndex - 1)],
3442                right: _keys[Math.min(_keys.length, keyIndex + 1)],
3443                trail: delay = delay + trail,
3444                config: callProp(config, item, slot),
3445                to: callProp(leave, item)
3446              }));
3447              delete current[key];
3448            });
3449            break;
3450          }
3451  
3452        case UPDATE:
3453          {
3454            updated.forEach(function (key) {
3455              var keyIndex = keys.indexOf(key);
3456              var item = items[keyIndex];
3457              var slot = UPDATE;
3458              current[key] = _extends({}, current[key], {
3459                item: item,
3460                slot: slot,
3461                trail: delay = delay + trail,
3462                config: callProp(config, item, slot),
3463                to: callProp(update, item)
3464              });
3465            });
3466            break;
3467          }
3468      }
3469    }
3470  
3471    var out = keys.map(function (key) {
3472      return current[key];
3473    }); // This tries to restore order for deleted items by finding their last known siblings
3474    // only using the left sibling to keep order placement consistent for all deleted items
3475  
3476    deleted.forEach(function (_ref10) {
3477      var left = _ref10.left,
3478          right = _ref10.right,
3479          item = _objectWithoutPropertiesLoose(_ref10, ["left", "right"]);
3480  
3481      var pos; // Was it the element on the left, if yes, move there ...
3482  
3483      if ((pos = out.findIndex(function (t) {
3484        return t.originalKey === left;
3485      })) !== -1) pos += 1; // And if nothing else helps, move it to the start ¯\_(ツ)_/¯
3486  
3487      pos = Math.max(0, pos);
3488      out = [].concat(out.slice(0, pos), [item], out.slice(pos));
3489    });
3490    return _extends({}, state, {
3491      changed: added.length || removed.length || updated.length,
3492      first: first && added.length === 0,
3493      transitions: out,
3494      current: current,
3495      deleted: deleted,
3496      prevProps: props
3497    });
3498  }
3499  
3500  var AnimatedStyle =
3501  /*#__PURE__*/
3502  function (_AnimatedObject) {
3503    _inheritsLoose(AnimatedStyle, _AnimatedObject);
3504  
3505    function AnimatedStyle(style) {
3506      var _this;
3507  
3508      if (style === void 0) {
3509        style = {};
3510      }
3511  
3512      _this = _AnimatedObject.call(this) || this;
3513  
3514      if (style.transform && !(style.transform instanceof Animated)) {
3515        style = applyAnimatedValues.transform(style);
3516      }
3517  
3518      _this.payload = style;
3519      return _this;
3520    }
3521  
3522    return AnimatedStyle;
3523  }(AnimatedObject);
3524  
3525  // http://www.w3.org/TR/css3-color/#svg-color
3526  var colors = {
3527    transparent: 0x00000000,
3528    aliceblue: 0xf0f8ffff,
3529    antiquewhite: 0xfaebd7ff,
3530    aqua: 0x00ffffff,
3531    aquamarine: 0x7fffd4ff,
3532    azure: 0xf0ffffff,
3533    beige: 0xf5f5dcff,
3534    bisque: 0xffe4c4ff,
3535    black: 0x000000ff,
3536    blanchedalmond: 0xffebcdff,
3537    blue: 0x0000ffff,
3538    blueviolet: 0x8a2be2ff,
3539    brown: 0xa52a2aff,
3540    burlywood: 0xdeb887ff,
3541    burntsienna: 0xea7e5dff,
3542    cadetblue: 0x5f9ea0ff,
3543    chartreuse: 0x7fff00ff,
3544    chocolate: 0xd2691eff,
3545    coral: 0xff7f50ff,
3546    cornflowerblue: 0x6495edff,
3547    cornsilk: 0xfff8dcff,
3548    crimson: 0xdc143cff,
3549    cyan: 0x00ffffff,
3550    darkblue: 0x00008bff,
3551    darkcyan: 0x008b8bff,
3552    darkgoldenrod: 0xb8860bff,
3553    darkgray: 0xa9a9a9ff,
3554    darkgreen: 0x006400ff,
3555    darkgrey: 0xa9a9a9ff,
3556    darkkhaki: 0xbdb76bff,
3557    darkmagenta: 0x8b008bff,
3558    darkolivegreen: 0x556b2fff,
3559    darkorange: 0xff8c00ff,
3560    darkorchid: 0x9932ccff,
3561    darkred: 0x8b0000ff,
3562    darksalmon: 0xe9967aff,
3563    darkseagreen: 0x8fbc8fff,
3564    darkslateblue: 0x483d8bff,
3565    darkslategray: 0x2f4f4fff,
3566    darkslategrey: 0x2f4f4fff,
3567    darkturquoise: 0x00ced1ff,
3568    darkviolet: 0x9400d3ff,
3569    deeppink: 0xff1493ff,
3570    deepskyblue: 0x00bfffff,
3571    dimgray: 0x696969ff,
3572    dimgrey: 0x696969ff,
3573    dodgerblue: 0x1e90ffff,
3574    firebrick: 0xb22222ff,
3575    floralwhite: 0xfffaf0ff,
3576    forestgreen: 0x228b22ff,
3577    fuchsia: 0xff00ffff,
3578    gainsboro: 0xdcdcdcff,
3579    ghostwhite: 0xf8f8ffff,
3580    gold: 0xffd700ff,
3581    goldenrod: 0xdaa520ff,
3582    gray: 0x808080ff,
3583    green: 0x008000ff,
3584    greenyellow: 0xadff2fff,
3585    grey: 0x808080ff,
3586    honeydew: 0xf0fff0ff,
3587    hotpink: 0xff69b4ff,
3588    indianred: 0xcd5c5cff,
3589    indigo: 0x4b0082ff,
3590    ivory: 0xfffff0ff,
3591    khaki: 0xf0e68cff,
3592    lavender: 0xe6e6faff,
3593    lavenderblush: 0xfff0f5ff,
3594    lawngreen: 0x7cfc00ff,
3595    lemonchiffon: 0xfffacdff,
3596    lightblue: 0xadd8e6ff,
3597    lightcoral: 0xf08080ff,
3598    lightcyan: 0xe0ffffff,
3599    lightgoldenrodyellow: 0xfafad2ff,
3600    lightgray: 0xd3d3d3ff,
3601    lightgreen: 0x90ee90ff,
3602    lightgrey: 0xd3d3d3ff,
3603    lightpink: 0xffb6c1ff,
3604    lightsalmon: 0xffa07aff,
3605    lightseagreen: 0x20b2aaff,
3606    lightskyblue: 0x87cefaff,
3607    lightslategray: 0x778899ff,
3608    lightslategrey: 0x778899ff,
3609    lightsteelblue: 0xb0c4deff,
3610    lightyellow: 0xffffe0ff,
3611    lime: 0x00ff00ff,
3612    limegreen: 0x32cd32ff,
3613    linen: 0xfaf0e6ff,
3614    magenta: 0xff00ffff,
3615    maroon: 0x800000ff,
3616    mediumaquamarine: 0x66cdaaff,
3617    mediumblue: 0x0000cdff,
3618    mediumorchid: 0xba55d3ff,
3619    mediumpurple: 0x9370dbff,
3620    mediumseagreen: 0x3cb371ff,
3621    mediumslateblue: 0x7b68eeff,
3622    mediumspringgreen: 0x00fa9aff,
3623    mediumturquoise: 0x48d1ccff,
3624    mediumvioletred: 0xc71585ff,
3625    midnightblue: 0x191970ff,
3626    mintcream: 0xf5fffaff,
3627    mistyrose: 0xffe4e1ff,
3628    moccasin: 0xffe4b5ff,
3629    navajowhite: 0xffdeadff,
3630    navy: 0x000080ff,
3631    oldlace: 0xfdf5e6ff,
3632    olive: 0x808000ff,
3633    olivedrab: 0x6b8e23ff,
3634    orange: 0xffa500ff,
3635    orangered: 0xff4500ff,
3636    orchid: 0xda70d6ff,
3637    palegoldenrod: 0xeee8aaff,
3638    palegreen: 0x98fb98ff,
3639    paleturquoise: 0xafeeeeff,
3640    palevioletred: 0xdb7093ff,
3641    papayawhip: 0xffefd5ff,
3642    peachpuff: 0xffdab9ff,
3643    peru: 0xcd853fff,
3644    pink: 0xffc0cbff,
3645    plum: 0xdda0ddff,
3646    powderblue: 0xb0e0e6ff,
3647    purple: 0x800080ff,
3648    rebeccapurple: 0x663399ff,
3649    red: 0xff0000ff,
3650    rosybrown: 0xbc8f8fff,
3651    royalblue: 0x4169e1ff,
3652    saddlebrown: 0x8b4513ff,
3653    salmon: 0xfa8072ff,
3654    sandybrown: 0xf4a460ff,
3655    seagreen: 0x2e8b57ff,
3656    seashell: 0xfff5eeff,
3657    sienna: 0xa0522dff,
3658    silver: 0xc0c0c0ff,
3659    skyblue: 0x87ceebff,
3660    slateblue: 0x6a5acdff,
3661    slategray: 0x708090ff,
3662    slategrey: 0x708090ff,
3663    snow: 0xfffafaff,
3664    springgreen: 0x00ff7fff,
3665    steelblue: 0x4682b4ff,
3666    tan: 0xd2b48cff,
3667    teal: 0x008080ff,
3668    thistle: 0xd8bfd8ff,
3669    tomato: 0xff6347ff,
3670    turquoise: 0x40e0d0ff,
3671    violet: 0xee82eeff,
3672    wheat: 0xf5deb3ff,
3673    white: 0xffffffff,
3674    whitesmoke: 0xf5f5f5ff,
3675    yellow: 0xffff00ff,
3676    yellowgreen: 0x9acd32ff
3677  };
3678  
3679  // const INTEGER = '[-+]?\\d+';
3680  var NUMBER = '[-+]?\\d*\\.?\\d+';
3681  var PERCENTAGE = NUMBER + '%';
3682  
3683  function call() {
3684    for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {
3685      parts[_key] = arguments[_key];
3686    }
3687  
3688    return '\\(\\s*(' + parts.join(')\\s*,\\s*(') + ')\\s*\\)';
3689  }
3690  
3691  var rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));
3692  var rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));
3693  var hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));
3694  var hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));
3695  var hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;
3696  var hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;
3697  var hex6 = /^#([0-9a-fA-F]{6})$/;
3698  var hex8 = /^#([0-9a-fA-F]{8})$/;
3699  
3700  /*
3701  https://github.com/react-community/normalize-css-color
3702  
3703  BSD 3-Clause License
3704  
3705  Copyright (c) 2016, React Community
3706  All rights reserved.
3707  
3708  Redistribution and use in source and binary forms, with or without
3709  modification, are permitted provided that the following conditions are met:
3710  
3711  * Redistributions of source code must retain the above copyright notice, this
3712    list of conditions and the following disclaimer.
3713  
3714  * Redistributions in binary form must reproduce the above copyright notice,
3715    this list of conditions and the following disclaimer in the documentation
3716    and/or other materials provided with the distribution.
3717  
3718  * Neither the name of the copyright holder nor the names of its
3719    contributors may be used to endorse or promote products derived from
3720    this software without specific prior written permission.
3721  
3722  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
3723  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
3724  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
3725  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
3726  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
3727  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
3728  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
3729  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
3730  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3731  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3732  */
3733  function normalizeColor(color) {
3734    var match;
3735  
3736    if (typeof color === 'number') {
3737      return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;
3738    } // Ordered based on occurrences on Facebook codebase
3739  
3740  
3741    if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;
3742    if (colors.hasOwnProperty(color)) return colors[color];
3743  
3744    if (match = rgb.exec(color)) {
3745      return (parse255(match[1]) << 24 | // r
3746      parse255(match[2]) << 16 | // g
3747      parse255(match[3]) << 8 | // b
3748      0x000000ff) >>> // a
3749      0;
3750    }
3751  
3752    if (match = rgba.exec(color)) {
3753      return (parse255(match[1]) << 24 | // r
3754      parse255(match[2]) << 16 | // g
3755      parse255(match[3]) << 8 | // b
3756      parse1(match[4])) >>> // a
3757      0;
3758    }
3759  
3760    if (match = hex3.exec(color)) {
3761      return parseInt(match[1] + match[1] + // r
3762      match[2] + match[2] + // g
3763      match[3] + match[3] + // b
3764      'ff', // a
3765      16) >>> 0;
3766    } // https://drafts.csswg.org/css-color-4/#hex-notation
3767  
3768  
3769    if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;
3770  
3771    if (match = hex4.exec(color)) {
3772      return parseInt(match[1] + match[1] + // r
3773      match[2] + match[2] + // g
3774      match[3] + match[3] + // b
3775      match[4] + match[4], // a
3776      16) >>> 0;
3777    }
3778  
3779    if (match = hsl.exec(color)) {
3780      return (hslToRgb(parse360(match[1]), // h
3781      parsePercentage(match[2]), // s
3782      parsePercentage(match[3]) // l
3783      ) | 0x000000ff) >>> // a
3784      0;
3785    }
3786  
3787    if (match = hsla.exec(color)) {
3788      return (hslToRgb(parse360(match[1]), // h
3789      parsePercentage(match[2]), // s
3790      parsePercentage(match[3]) // l
3791      ) | parse1(match[4])) >>> // a
3792      0;
3793    }
3794  
3795    return null;
3796  }
3797  
3798  function hue2rgb(p, q, t) {
3799    if (t < 0) t += 1;
3800    if (t > 1) t -= 1;
3801    if (t < 1 / 6) return p + (q - p) * 6 * t;
3802    if (t < 1 / 2) return q;
3803    if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
3804    return p;
3805  }
3806  
3807  function hslToRgb(h, s, l) {
3808    var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
3809    var p = 2 * l - q;
3810    var r = hue2rgb(p, q, h + 1 / 3);
3811    var g = hue2rgb(p, q, h);
3812    var b = hue2rgb(p, q, h - 1 / 3);
3813    return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;
3814  }
3815  
3816  function parse255(str) {
3817    var int = parseInt(str, 10);
3818    if (int < 0) return 0;
3819    if (int > 255) return 255;
3820    return int;
3821  }
3822  
3823  function parse360(str) {
3824    var int = parseFloat(str);
3825    return (int % 360 + 360) % 360 / 360;
3826  }
3827  
3828  function parse1(str) {
3829    var num = parseFloat(str);
3830    if (num < 0) return 0;
3831    if (num > 1) return 255;
3832    return Math.round(num * 255);
3833  }
3834  
3835  function parsePercentage(str) {
3836    // parseFloat conveniently ignores the final %
3837    var int = parseFloat(str);
3838    if (int < 0) return 0;
3839    if (int > 100) return 1;
3840    return int / 100;
3841  }
3842  
3843  function colorToRgba(input) {
3844    var int32Color = normalizeColor(input);
3845    if (int32Color === null) return input;
3846    int32Color = int32Color || 0;
3847    var r = (int32Color & 0xff000000) >>> 24;
3848    var g = (int32Color & 0x00ff0000) >>> 16;
3849    var b = (int32Color & 0x0000ff00) >>> 8;
3850    var a = (int32Color & 0x000000ff) / 255;
3851    return "rgba(" + r + ", " + g + ", " + b + ", " + a + ")";
3852  } // Problem: https://github.com/animatedjs/animated/pull/102
3853  // Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662
3854  
3855  
3856  var stringShapeRegex = /[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; // Covers rgb, rgba, hsl, hsla
3857  // Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e
3858  
3859  var colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi; // Covers color names (transparent, blue, etc.)
3860  
3861  var colorNamesRegex = new RegExp("(" + Object.keys(colors).join('|') + ")", 'g');
3862  /**
3863   * Supports string shapes by extracting numbers so new values can be computed,
3864   * and recombines those values into new strings of the same shape.  Supports
3865   * things like:
3866   *
3867   *   rgba(123, 42, 99, 0.36)           // colors
3868   *   -45deg                            // values with units
3869   *   0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows
3870   */
3871  
3872  var createStringInterpolator = function createStringInterpolator(config) {
3873    // Replace colors with rgba
3874    var outputRange = config.output.map(function (rangeValue) {
3875      return rangeValue.replace(colorRegex, colorToRgba);
3876    }).map(function (rangeValue) {
3877      return rangeValue.replace(colorNamesRegex, colorToRgba);
3878    });
3879    var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {
3880      return [];
3881    });
3882    outputRange.forEach(function (value) {
3883      value.match(stringShapeRegex).forEach(function (number, i) {
3884        return outputRanges[i].push(+number);
3885      });
3886    });
3887    var interpolations = outputRange[0].match(stringShapeRegex).map(function (_value, i) {
3888      return createInterpolator(_extends({}, config, {
3889        output: outputRanges[i]
3890      }));
3891    });
3892    return function (input) {
3893      var i = 0;
3894      return outputRange[0] // 'rgba(0, 100, 200, 0)'
3895      // ->
3896      // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'
3897      .replace(stringShapeRegex, function () {
3898        return interpolations[i++](input);
3899      }) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to
3900      // round the opacity (4th column).
3901      .replace(/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi, function (_, p1, p2, p3, p4) {
3902        return "rgba(" + Math.round(p1) + ", " + Math.round(p2) + ", " + Math.round(p3) + ", " + p4 + ")";
3903      });
3904    };
3905  };
3906  
3907  var isUnitlessNumber = {
3908    animationIterationCount: true,
3909    borderImageOutset: true,
3910    borderImageSlice: true,
3911    borderImageWidth: true,
3912    boxFlex: true,
3913    boxFlexGroup: true,
3914    boxOrdinalGroup: true,
3915    columnCount: true,
3916    columns: true,
3917    flex: true,
3918    flexGrow: true,
3919    flexPositive: true,
3920    flexShrink: true,
3921    flexNegative: true,
3922    flexOrder: true,
3923    gridRow: true,
3924    gridRowEnd: true,
3925    gridRowSpan: true,
3926    gridRowStart: true,
3927    gridColumn: true,
3928    gridColumnEnd: true,
3929    gridColumnSpan: true,
3930    gridColumnStart: true,
3931    fontWeight: true,
3932    lineClamp: true,
3933    lineHeight: true,
3934    opacity: true,
3935    order: true,
3936    orphans: true,
3937    tabSize: true,
3938    widows: true,
3939    zIndex: true,
3940    zoom: true,
3941    // SVG-related properties
3942    fillOpacity: true,
3943    floodOpacity: true,
3944    stopOpacity: true,
3945    strokeDasharray: true,
3946    strokeDashoffset: true,
3947    strokeMiterlimit: true,
3948    strokeOpacity: true,
3949    strokeWidth: true
3950  };
3951  
3952  var prefixKey = function prefixKey(prefix, key) {
3953    return prefix + key.charAt(0).toUpperCase() + key.substring(1);
3954  };
3955  
3956  var prefixes = ['Webkit', 'Ms', 'Moz', 'O'];
3957  isUnitlessNumber = Object.keys(isUnitlessNumber).reduce(function (acc, prop) {
3958    prefixes.forEach(function (prefix) {
3959      return acc[prefixKey(prefix, prop)] = acc[prop];
3960    });
3961    return acc;
3962  }, isUnitlessNumber);
3963  
3964  function dangerousStyleValue(name, value, isCustomProperty) {
3965    if (value == null || typeof value === 'boolean' || value === '') return '';
3966    if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers
3967  
3968    return ('' + value).trim();
3969  }
3970  
3971  var attributeCache = {};
3972  injectCreateAnimatedStyle(function (style) {
3973    return new AnimatedStyle(style);
3974  });
3975  injectDefaultElement('div');
3976  injectStringInterpolator(createStringInterpolator);
3977  injectColorNames(colors);
3978  injectApplyAnimatedValues(function (instance, props) {
3979    if (instance.nodeType && instance.setAttribute !== undefined) {
3980      var style = props.style,
3981          children = props.children,
3982          scrollTop = props.scrollTop,
3983          scrollLeft = props.scrollLeft,
3984          attributes = _objectWithoutPropertiesLoose(props, ["style", "children", "scrollTop", "scrollLeft"]);
3985  
3986      var filter = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';
3987      if (scrollTop !== void 0) instance.scrollTop = scrollTop;
3988      if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value
3989  
3990      if (children !== void 0) instance.textContent = children; // Set styles ...
3991  
3992      for (var styleName in style) {
3993        if (!style.hasOwnProperty(styleName)) continue;
3994        var isCustomProperty = styleName.indexOf('--') === 0;
3995        var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty);
3996        if (styleName === 'float') styleName = 'cssFloat';
3997        if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue;
3998      } // Set attributes ...
3999  
4000  
4001      for (var name in attributes) {
4002        // Attributes are written in dash case
4003        var dashCase = filter ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, function (n) {
4004          return '-' + n.toLowerCase();
4005        }));
4006        if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]);
4007      }
4008  
4009      return;
4010    } else return false;
4011  }, function (style) {
4012    return style;
4013  });
4014  
4015  var domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG
4016  'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];
4017  // Extend animated with all the available THREE elements
4018  var apply = merge(createAnimatedComponent, false);
4019  var extendedAnimated = apply(domElements);
4020  
4021  exports.apply = apply;
4022  exports.config = config;
4023  exports.update = update;
4024  exports.animated = extendedAnimated;
4025  exports.a = extendedAnimated;
4026  exports.interpolate = interpolate$1;
4027  exports.Globals = Globals;
4028  exports.useSpring = useSpring;
4029  exports.useTrail = useTrail;
4030  exports.useTransition = useTransition;
4031  exports.useChain = useChain;
4032  exports.useSprings = useSprings;
4033  
4034  
4035  /***/ }),
4036  
4037  /***/ "Zss7":
4038  /***/ (function(module, exports, __webpack_require__) {
4039  
4040  var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.2
4041  // https://github.com/bgrins/TinyColor
4042  // Brian Grinstead, MIT License
4043  
4044  (function(Math) {
4045  
4046  var trimLeft = /^\s+/,
4047      trimRight = /\s+$/,
4048      tinyCounter = 0,
4049      mathRound = Math.round,
4050      mathMin = Math.min,
4051      mathMax = Math.max,
4052      mathRandom = Math.random;
4053  
4054  function tinycolor (color, opts) {
4055  
4056      color = (color) ? color : '';
4057      opts = opts || { };
4058  
4059      // If input is already a tinycolor, return itself
4060      if (color instanceof tinycolor) {
4061         return color;
4062      }
4063      // If we are called as a function, call using new instead
4064      if (!(this instanceof tinycolor)) {
4065          return new tinycolor(color, opts);
4066      }
4067  
4068      var rgb = inputToRGB(color);
4069      this._originalInput = color,
4070      this._r = rgb.r,
4071      this._g = rgb.g,
4072      this._b = rgb.b,
4073      this._a = rgb.a,
4074      this._roundA = mathRound(100*this._a) / 100,
4075      this._format = opts.format || rgb.format;
4076      this._gradientType = opts.gradientType;
4077  
4078      // Don't let the range of [0,255] come back in [0,1].
4079      // Potentially lose a little bit of precision here, but will fix issues where
4080      // .5 gets interpreted as half of the total, instead of half of 1
4081      // If it was supposed to be 128, this was already taken care of by `inputToRgb`
4082      if (this._r < 1) { this._r = mathRound(this._r); }
4083      if (this._g < 1) { this._g = mathRound(this._g); }
4084      if (this._b < 1) { this._b = mathRound(this._b); }
4085  
4086      this._ok = rgb.ok;
4087      this._tc_id = tinyCounter++;
4088  }
4089  
4090  tinycolor.prototype = {
4091      isDark: function() {
4092          return this.getBrightness() < 128;
4093      },
4094      isLight: function() {
4095          return !this.isDark();
4096      },
4097      isValid: function() {
4098          return this._ok;
4099      },
4100      getOriginalInput: function() {
4101        return this._originalInput;
4102      },
4103      getFormat: function() {
4104          return this._format;
4105      },
4106      getAlpha: function() {
4107          return this._a;
4108      },
4109      getBrightness: function() {
4110          //http://www.w3.org/TR/AERT#color-contrast
4111          var rgb = this.toRgb();
4112          return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
4113      },
4114      getLuminance: function() {
4115          //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
4116          var rgb = this.toRgb();
4117          var RsRGB, GsRGB, BsRGB, R, G, B;
4118          RsRGB = rgb.r/255;
4119          GsRGB = rgb.g/255;
4120          BsRGB = rgb.b/255;
4121  
4122          if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}
4123          if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}
4124          if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}
4125          return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);
4126      },
4127      setAlpha: function(value) {
4128          this._a = boundAlpha(value);
4129          this._roundA = mathRound(100*this._a) / 100;
4130          return this;
4131      },
4132      toHsv: function() {
4133          var hsv = rgbToHsv(this._r, this._g, this._b);
4134          return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
4135      },
4136      toHsvString: function() {
4137          var hsv = rgbToHsv(this._r, this._g, this._b);
4138          var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
4139          return (this._a == 1) ?
4140            "hsv("  + h + ", " + s + "%, " + v + "%)" :
4141            "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
4142      },
4143      toHsl: function() {
4144          var hsl = rgbToHsl(this._r, this._g, this._b);
4145          return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
4146      },
4147      toHslString: function() {
4148          var hsl = rgbToHsl(this._r, this._g, this._b);
4149          var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
4150          return (this._a == 1) ?
4151            "hsl("  + h + ", " + s + "%, " + l + "%)" :
4152            "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
4153      },
4154      toHex: function(allow3Char) {
4155          return rgbToHex(this._r, this._g, this._b, allow3Char);
4156      },
4157      toHexString: function(allow3Char) {
4158          return '#' + this.toHex(allow3Char);
4159      },
4160      toHex8: function(allow4Char) {
4161          return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);
4162      },
4163      toHex8String: function(allow4Char) {
4164          return '#' + this.toHex8(allow4Char);
4165      },
4166      toRgb: function() {
4167          return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
4168      },
4169      toRgbString: function() {
4170          return (this._a == 1) ?
4171            "rgb("  + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
4172            "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
4173      },
4174      toPercentageRgb: function() {
4175          return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
4176      },
4177      toPercentageRgbString: function() {
4178          return (this._a == 1) ?
4179            "rgb("  + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
4180            "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
4181      },
4182      toName: function() {
4183          if (this._a === 0) {
4184              return "transparent";
4185          }
4186  
4187          if (this._a < 1) {
4188              return false;
4189          }
4190  
4191          return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
4192      },
4193      toFilter: function(secondColor) {
4194          var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);
4195          var secondHex8String = hex8String;
4196          var gradientType = this._gradientType ? "GradientType = 1, " : "";
4197  
4198          if (secondColor) {
4199              var s = tinycolor(secondColor);
4200              secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);
4201          }
4202  
4203          return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
4204      },
4205      toString: function(format) {
4206          var formatSet = !!format;
4207          format = format || this._format;
4208  
4209          var formattedString = false;
4210          var hasAlpha = this._a < 1 && this._a >= 0;
4211          var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name");
4212  
4213          if (needsAlphaFormat) {
4214              // Special case for "transparent", all other non-alpha formats
4215              // will return rgba when there is transparency.
4216              if (format === "name" && this._a === 0) {
4217                  return this.toName();
4218              }
4219              return this.toRgbString();
4220          }
4221          if (format === "rgb") {
4222              formattedString = this.toRgbString();
4223          }
4224          if (format === "prgb") {
4225              formattedString = this.toPercentageRgbString();
4226          }
4227          if (format === "hex" || format === "hex6") {
4228              formattedString = this.toHexString();
4229          }
4230          if (format === "hex3") {
4231              formattedString = this.toHexString(true);
4232          }
4233          if (format === "hex4") {
4234              formattedString = this.toHex8String(true);
4235          }
4236          if (format === "hex8") {
4237              formattedString = this.toHex8String();
4238          }
4239          if (format === "name") {
4240              formattedString = this.toName();
4241          }
4242          if (format === "hsl") {
4243              formattedString = this.toHslString();
4244          }
4245          if (format === "hsv") {
4246              formattedString = this.toHsvString();
4247          }
4248  
4249          return formattedString || this.toHexString();
4250      },
4251      clone: function() {
4252          return tinycolor(this.toString());
4253      },
4254  
4255      _applyModification: function(fn, args) {
4256          var color = fn.apply(null, [this].concat([].slice.call(args)));
4257          this._r = color._r;
4258          this._g = color._g;
4259          this._b = color._b;
4260          this.setAlpha(color._a);
4261          return this;
4262      },
4263      lighten: function() {
4264          return this._applyModification(lighten, arguments);
4265      },
4266      brighten: function() {
4267          return this._applyModification(brighten, arguments);
4268      },
4269      darken: function() {
4270          return this._applyModification(darken, arguments);
4271      },
4272      desaturate: function() {
4273          return this._applyModification(desaturate, arguments);
4274      },
4275      saturate: function() {
4276          return this._applyModification(saturate, arguments);
4277      },
4278      greyscale: function() {
4279          return this._applyModification(greyscale, arguments);
4280      },
4281      spin: function() {
4282          return this._applyModification(spin, arguments);
4283      },
4284  
4285      _applyCombination: function(fn, args) {
4286          return fn.apply(null, [this].concat([].slice.call(args)));
4287      },
4288      analogous: function() {
4289          return this._applyCombination(analogous, arguments);
4290      },
4291      complement: function() {
4292          return this._applyCombination(complement, arguments);
4293      },
4294      monochromatic: function() {
4295          return this._applyCombination(monochromatic, arguments);
4296      },
4297      splitcomplement: function() {
4298          return this._applyCombination(splitcomplement, arguments);
4299      },
4300      triad: function() {
4301          return this._applyCombination(triad, arguments);
4302      },
4303      tetrad: function() {
4304          return this._applyCombination(tetrad, arguments);
4305      }
4306  };
4307  
4308  // If input is an object, force 1 into "1.0" to handle ratios properly
4309  // String input requires "1.0" as input, so 1 will be treated as 1
4310  tinycolor.fromRatio = function(color, opts) {
4311      if (typeof color == "object") {
4312          var newColor = {};
4313          for (var i in color) {
4314              if (color.hasOwnProperty(i)) {
4315                  if (i === "a") {
4316                      newColor[i] = color[i];
4317                  }
4318                  else {
4319                      newColor[i] = convertToPercentage(color[i]);
4320                  }
4321              }
4322          }
4323          color = newColor;
4324      }
4325  
4326      return tinycolor(color, opts);
4327  };
4328  
4329  // Given a string or object, convert that input to RGB
4330  // Possible string inputs:
4331  //
4332  //     "red"
4333  //     "#f00" or "f00"
4334  //     "#ff0000" or "ff0000"
4335  //     "#ff000000" or "ff000000"
4336  //     "rgb 255 0 0" or "rgb (255, 0, 0)"
4337  //     "rgb 1.0 0 0" or "rgb (1, 0, 0)"
4338  //     "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
4339  //     "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
4340  //     "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
4341  //     "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
4342  //     "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
4343  //
4344  function inputToRGB(color) {
4345  
4346      var rgb = { r: 0, g: 0, b: 0 };
4347      var a = 1;
4348      var s = null;
4349      var v = null;
4350      var l = null;
4351      var ok = false;
4352      var format = false;
4353  
4354      if (typeof color == "string") {
4355          color = stringInputToObject(color);
4356      }
4357  
4358      if (typeof color == "object") {
4359          if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
4360              rgb = rgbToRgb(color.r, color.g, color.b);
4361              ok = true;
4362              format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
4363          }
4364          else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
4365              s = convertToPercentage(color.s);
4366              v = convertToPercentage(color.v);
4367              rgb = hsvToRgb(color.h, s, v);
4368              ok = true;
4369              format = "hsv";
4370          }
4371          else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
4372              s = convertToPercentage(color.s);
4373              l = convertToPercentage(color.l);
4374              rgb = hslToRgb(color.h, s, l);
4375              ok = true;
4376              format = "hsl";
4377          }
4378  
4379          if (color.hasOwnProperty("a")) {
4380              a = color.a;
4381          }
4382      }
4383  
4384      a = boundAlpha(a);
4385  
4386      return {
4387          ok: ok,
4388          format: color.format || format,
4389          r: mathMin(255, mathMax(rgb.r, 0)),
4390          g: mathMin(255, mathMax(rgb.g, 0)),
4391          b: mathMin(255, mathMax(rgb.b, 0)),
4392          a: a
4393      };
4394  }
4395  
4396  
4397  // Conversion Functions
4398  // --------------------
4399  
4400  // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
4401  // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>
4402  
4403  // `rgbToRgb`
4404  // Handle bounds / percentage checking to conform to CSS color spec
4405  // <http://www.w3.org/TR/css3-color/>
4406  // *Assumes:* r, g, b in [0, 255] or [0, 1]
4407  // *Returns:* { r, g, b } in [0, 255]
4408  function rgbToRgb(r, g, b){
4409      return {
4410          r: bound01(r, 255) * 255,
4411          g: bound01(g, 255) * 255,
4412          b: bound01(b, 255) * 255
4413      };
4414  }
4415  
4416  // `rgbToHsl`
4417  // Converts an RGB color value to HSL.
4418  // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
4419  // *Returns:* { h, s, l } in [0,1]
4420  function rgbToHsl(r, g, b) {
4421  
4422      r = bound01(r, 255);
4423      g = bound01(g, 255);
4424      b = bound01(b, 255);
4425  
4426      var max = mathMax(r, g, b), min = mathMin(r, g, b);
4427      var h, s, l = (max + min) / 2;
4428  
4429      if(max == min) {
4430          h = s = 0; // achromatic
4431      }
4432      else {
4433          var d = max - min;
4434          s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
4435          switch(max) {
4436              case r: h = (g - b) / d + (g < b ? 6 : 0); break;
4437              case g: h = (b - r) / d + 2; break;
4438              case b: h = (r - g) / d + 4; break;
4439          }
4440  
4441          h /= 6;
4442      }
4443  
4444      return { h: h, s: s, l: l };
4445  }
4446  
4447  // `hslToRgb`
4448  // Converts an HSL color value to RGB.
4449  // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
4450  // *Returns:* { r, g, b } in the set [0, 255]
4451  function hslToRgb(h, s, l) {
4452      var r, g, b;
4453  
4454      h = bound01(h, 360);
4455      s = bound01(s, 100);
4456      l = bound01(l, 100);
4457  
4458      function hue2rgb(p, q, t) {
4459          if(t < 0) t += 1;
4460          if(t > 1) t -= 1;
4461          if(t < 1/6) return p + (q - p) * 6 * t;
4462          if(t < 1/2) return q;
4463          if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
4464          return p;
4465      }
4466  
4467      if(s === 0) {
4468          r = g = b = l; // achromatic
4469      }
4470      else {
4471          var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
4472          var p = 2 * l - q;
4473          r = hue2rgb(p, q, h + 1/3);
4474          g = hue2rgb(p, q, h);
4475          b = hue2rgb(p, q, h - 1/3);
4476      }
4477  
4478      return { r: r * 255, g: g * 255, b: b * 255 };
4479  }
4480  
4481  // `rgbToHsv`
4482  // Converts an RGB color value to HSV
4483  // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
4484  // *Returns:* { h, s, v } in [0,1]
4485  function rgbToHsv(r, g, b) {
4486  
4487      r = bound01(r, 255);
4488      g = bound01(g, 255);
4489      b = bound01(b, 255);
4490  
4491      var max = mathMax(r, g, b), min = mathMin(r, g, b);
4492      var h, s, v = max;
4493  
4494      var d = max - min;
4495      s = max === 0 ? 0 : d / max;
4496  
4497      if(max == min) {
4498          h = 0; // achromatic
4499      }
4500      else {
4501          switch(max) {
4502              case r: h = (g - b) / d + (g < b ? 6 : 0); break;
4503              case g: h = (b - r) / d + 2; break;
4504              case b: h = (r - g) / d + 4; break;
4505          }
4506          h /= 6;
4507      }
4508      return { h: h, s: s, v: v };
4509  }
4510  
4511  // `hsvToRgb`
4512  // Converts an HSV color value to RGB.
4513  // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
4514  // *Returns:* { r, g, b } in the set [0, 255]
4515   function hsvToRgb(h, s, v) {
4516  
4517      h = bound01(h, 360) * 6;
4518      s = bound01(s, 100);
4519      v = bound01(v, 100);
4520  
4521      var i = Math.floor(h),
4522          f = h - i,
4523          p = v * (1 - s),
4524          q = v * (1 - f * s),
4525          t = v * (1 - (1 - f) * s),
4526          mod = i % 6,
4527          r = [v, q, p, p, t, v][mod],
4528          g = [t, v, v, q, p, p][mod],
4529          b = [p, p, t, v, v, q][mod];
4530  
4531      return { r: r * 255, g: g * 255, b: b * 255 };
4532  }
4533  
4534  // `rgbToHex`
4535  // Converts an RGB color to hex
4536  // Assumes r, g, and b are contained in the set [0, 255]
4537  // Returns a 3 or 6 character hex
4538  function rgbToHex(r, g, b, allow3Char) {
4539  
4540      var hex = [
4541          pad2(mathRound(r).toString(16)),
4542          pad2(mathRound(g).toString(16)),
4543          pad2(mathRound(b).toString(16))
4544      ];
4545  
4546      // Return a 3 character hex if possible
4547      if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
4548          return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
4549      }
4550  
4551      return hex.join("");
4552  }
4553  
4554  // `rgbaToHex`
4555  // Converts an RGBA color plus alpha transparency to hex
4556  // Assumes r, g, b are contained in the set [0, 255] and
4557  // a in [0, 1]. Returns a 4 or 8 character rgba hex
4558  function rgbaToHex(r, g, b, a, allow4Char) {
4559  
4560      var hex = [
4561          pad2(mathRound(r).toString(16)),
4562          pad2(mathRound(g).toString(16)),
4563          pad2(mathRound(b).toString(16)),
4564          pad2(convertDecimalToHex(a))
4565      ];
4566  
4567      // Return a 4 character hex if possible
4568      if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {
4569          return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
4570      }
4571  
4572      return hex.join("");
4573  }
4574  
4575  // `rgbaToArgbHex`
4576  // Converts an RGBA color to an ARGB Hex8 string
4577  // Rarely used, but required for "toFilter()"
4578  function rgbaToArgbHex(r, g, b, a) {
4579  
4580      var hex = [
4581          pad2(convertDecimalToHex(a)),
4582          pad2(mathRound(r).toString(16)),
4583          pad2(mathRound(g).toString(16)),
4584          pad2(mathRound(b).toString(16))
4585      ];
4586  
4587      return hex.join("");
4588  }
4589  
4590  // `equals`
4591  // Can be called with any tinycolor input
4592  tinycolor.equals = function (color1, color2) {
4593      if (!color1 || !color2) { return false; }
4594      return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
4595  };
4596  
4597  tinycolor.random = function() {
4598      return tinycolor.fromRatio({
4599          r: mathRandom(),
4600          g: mathRandom(),
4601          b: mathRandom()
4602      });
4603  };
4604  
4605  
4606  // Modification Functions
4607  // ----------------------
4608  // Thanks to less.js for some of the basics here
4609  // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>
4610  
4611  function desaturate(color, amount) {
4612      amount = (amount === 0) ? 0 : (amount || 10);
4613      var hsl = tinycolor(color).toHsl();
4614      hsl.s -= amount / 100;
4615      hsl.s = clamp01(hsl.s);
4616      return tinycolor(hsl);
4617  }
4618  
4619  function saturate(color, amount) {
4620      amount = (amount === 0) ? 0 : (amount || 10);
4621      var hsl = tinycolor(color).toHsl();
4622      hsl.s += amount / 100;
4623      hsl.s = clamp01(hsl.s);
4624      return tinycolor(hsl);
4625  }
4626  
4627  function greyscale(color) {
4628      return tinycolor(color).desaturate(100);
4629  }
4630  
4631  function lighten (color, amount) {
4632      amount = (amount === 0) ? 0 : (amount || 10);
4633      var hsl = tinycolor(color).toHsl();
4634      hsl.l += amount / 100;
4635      hsl.l = clamp01(hsl.l);
4636      return tinycolor(hsl);
4637  }
4638  
4639  function brighten(color, amount) {
4640      amount = (amount === 0) ? 0 : (amount || 10);
4641      var rgb = tinycolor(color).toRgb();
4642      rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
4643      rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
4644      rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
4645      return tinycolor(rgb);
4646  }
4647  
4648  function darken (color, amount) {
4649      amount = (amount === 0) ? 0 : (amount || 10);
4650      var hsl = tinycolor(color).toHsl();
4651      hsl.l -= amount / 100;
4652      hsl.l = clamp01(hsl.l);
4653      return tinycolor(hsl);
4654  }
4655  
4656  // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
4657  // Values outside of this range will be wrapped into this range.
4658  function spin(color, amount) {
4659      var hsl = tinycolor(color).toHsl();
4660      var hue = (hsl.h + amount) % 360;
4661      hsl.h = hue < 0 ? 360 + hue : hue;
4662      return tinycolor(hsl);
4663  }
4664  
4665  // Combination Functions
4666  // ---------------------
4667  // Thanks to jQuery xColor for some of the ideas behind these
4668  // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>
4669  
4670  function complement(color) {
4671      var hsl = tinycolor(color).toHsl();
4672      hsl.h = (hsl.h + 180) % 360;
4673      return tinycolor(hsl);
4674  }
4675  
4676  function triad(color) {
4677      var hsl = tinycolor(color).toHsl();
4678      var h = hsl.h;
4679      return [
4680          tinycolor(color),
4681          tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
4682          tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
4683      ];
4684  }
4685  
4686  function tetrad(color) {
4687      var hsl = tinycolor(color).toHsl();
4688      var h = hsl.h;
4689      return [
4690          tinycolor(color),
4691          tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
4692          tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
4693          tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
4694      ];
4695  }
4696  
4697  function splitcomplement(color) {
4698      var hsl = tinycolor(color).toHsl();
4699      var h = hsl.h;
4700      return [
4701          tinycolor(color),
4702          tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
4703          tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
4704      ];
4705  }
4706  
4707  function analogous(color, results, slices) {
4708      results = results || 6;
4709      slices = slices || 30;
4710  
4711      var hsl = tinycolor(color).toHsl();
4712      var part = 360 / slices;
4713      var ret = [tinycolor(color)];
4714  
4715      for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
4716          hsl.h = (hsl.h + part) % 360;
4717          ret.push(tinycolor(hsl));
4718      }
4719      return ret;
4720  }
4721  
4722  function monochromatic(color, results) {
4723      results = results || 6;
4724      var hsv = tinycolor(color).toHsv();
4725      var h = hsv.h, s = hsv.s, v = hsv.v;
4726      var ret = [];
4727      var modification = 1 / results;
4728  
4729      while (results--) {
4730          ret.push(tinycolor({ h: h, s: s, v: v}));
4731          v = (v + modification) % 1;
4732      }
4733  
4734      return ret;
4735  }
4736  
4737  // Utility Functions
4738  // ---------------------
4739  
4740  tinycolor.mix = function(color1, color2, amount) {
4741      amount = (amount === 0) ? 0 : (amount || 50);
4742  
4743      var rgb1 = tinycolor(color1).toRgb();
4744      var rgb2 = tinycolor(color2).toRgb();
4745  
4746      var p = amount / 100;
4747  
4748      var rgba = {
4749          r: ((rgb2.r - rgb1.r) * p) + rgb1.r,
4750          g: ((rgb2.g - rgb1.g) * p) + rgb1.g,
4751          b: ((rgb2.b - rgb1.b) * p) + rgb1.b,
4752          a: ((rgb2.a - rgb1.a) * p) + rgb1.a
4753      };
4754  
4755      return tinycolor(rgba);
4756  };
4757  
4758  
4759  // Readability Functions
4760  // ---------------------
4761  // <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)
4762  
4763  // `contrast`
4764  // Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)
4765  tinycolor.readability = function(color1, color2) {
4766      var c1 = tinycolor(color1);
4767      var c2 = tinycolor(color2);
4768      return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);
4769  };
4770  
4771  // `isReadable`
4772  // Ensure that foreground and background color combinations meet WCAG2 guidelines.
4773  // The third argument is an optional Object.
4774  //      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';
4775  //      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.
4776  // If the entire object is absent, isReadable defaults to {level:"AA",size:"small"}.
4777  
4778  // *Example*
4779  //    tinycolor.isReadable("#000", "#111") => false
4780  //    tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false
4781  tinycolor.isReadable = function(color1, color2, wcag2) {
4782      var readability = tinycolor.readability(color1, color2);
4783      var wcag2Parms, out;
4784  
4785      out = false;
4786  
4787      wcag2Parms = validateWCAG2Parms(wcag2);
4788      switch (wcag2Parms.level + wcag2Parms.size) {
4789          case "AAsmall":
4790          case "AAAlarge":
4791              out = readability >= 4.5;
4792              break;
4793          case "AAlarge":
4794              out = readability >= 3;
4795              break;
4796          case "AAAsmall":
4797              out = readability >= 7;
4798              break;
4799      }
4800      return out;
4801  
4802  };
4803  
4804  // `mostReadable`
4805  // Given a base color and a list of possible foreground or background
4806  // colors for that base, returns the most readable color.
4807  // Optionally returns Black or White if the most readable color is unreadable.
4808  // *Example*
4809  //    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255"
4810  //    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString();  // "#ffffff"
4811  //    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3"
4812  //    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff"
4813  tinycolor.mostReadable = function(baseColor, colorList, args) {
4814      var bestColor = null;
4815      var bestScore = 0;
4816      var readability;
4817      var includeFallbackColors, level, size ;
4818      args = args || {};
4819      includeFallbackColors = args.includeFallbackColors ;
4820      level = args.level;
4821      size = args.size;
4822  
4823      for (var i= 0; i < colorList.length ; i++) {
4824          readability = tinycolor.readability(baseColor, colorList[i]);
4825          if (readability > bestScore) {
4826              bestScore = readability;
4827              bestColor = tinycolor(colorList[i]);
4828          }
4829      }
4830  
4831      if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) {
4832          return bestColor;
4833      }
4834      else {
4835          args.includeFallbackColors=false;
4836          return tinycolor.mostReadable(baseColor,["#fff", "#000"],args);
4837      }
4838  };
4839  
4840  
4841  // Big List of Colors
4842  // ------------------
4843  // <http://www.w3.org/TR/css3-color/#svg-color>
4844  var names = tinycolor.names = {
4845      aliceblue: "f0f8ff",
4846      antiquewhite: "faebd7",
4847      aqua: "0ff",
4848      aquamarine: "7fffd4",
4849      azure: "f0ffff",
4850      beige: "f5f5dc",
4851      bisque: "ffe4c4",
4852      black: "000",
4853      blanchedalmond: "ffebcd",
4854      blue: "00f",
4855      blueviolet: "8a2be2",
4856      brown: "a52a2a",
4857      burlywood: "deb887",
4858      burntsienna: "ea7e5d",
4859      cadetblue: "5f9ea0",
4860      chartreuse: "7fff00",
4861      chocolate: "d2691e",
4862      coral: "ff7f50",
4863      cornflowerblue: "6495ed",
4864      cornsilk: "fff8dc",
4865      crimson: "dc143c",
4866      cyan: "0ff",
4867      darkblue: "00008b",
4868      darkcyan: "008b8b",
4869      darkgoldenrod: "b8860b",
4870      darkgray: "a9a9a9",
4871      darkgreen: "006400",
4872      darkgrey: "a9a9a9",
4873      darkkhaki: "bdb76b",
4874      darkmagenta: "8b008b",
4875      darkolivegreen: "556b2f",
4876      darkorange: "ff8c00",
4877      darkorchid: "9932cc",
4878      darkred: "8b0000",
4879      darksalmon: "e9967a",
4880      darkseagreen: "8fbc8f",
4881      darkslateblue: "483d8b",
4882      darkslategray: "2f4f4f",
4883      darkslategrey: "2f4f4f",
4884      darkturquoise: "00ced1",
4885      darkviolet: "9400d3",
4886      deeppink: "ff1493",
4887      deepskyblue: "00bfff",
4888      dimgray: "696969",
4889      dimgrey: "696969",
4890      dodgerblue: "1e90ff",
4891      firebrick: "b22222",
4892      floralwhite: "fffaf0",
4893      forestgreen: "228b22",
4894      fuchsia: "f0f",
4895      gainsboro: "dcdcdc",
4896      ghostwhite: "f8f8ff",
4897      gold: "ffd700",
4898      goldenrod: "daa520",
4899      gray: "808080",
4900      green: "008000",
4901      greenyellow: "adff2f",
4902      grey: "808080",
4903      honeydew: "f0fff0",
4904      hotpink: "ff69b4",
4905      indianred: "cd5c5c",
4906      indigo: "4b0082",
4907      ivory: "fffff0",
4908      khaki: "f0e68c",
4909      lavender: "e6e6fa",
4910      lavenderblush: "fff0f5",
4911      lawngreen: "7cfc00",
4912      lemonchiffon: "fffacd",
4913      lightblue: "add8e6",
4914      lightcoral: "f08080",
4915      lightcyan: "e0ffff",
4916      lightgoldenrodyellow: "fafad2",
4917      lightgray: "d3d3d3",
4918      lightgreen: "90ee90",
4919      lightgrey: "d3d3d3",
4920      lightpink: "ffb6c1",
4921      lightsalmon: "ffa07a",
4922      lightseagreen: "20b2aa",
4923      lightskyblue: "87cefa",
4924      lightslategray: "789",
4925      lightslategrey: "789",
4926      lightsteelblue: "b0c4de",
4927      lightyellow: "ffffe0",
4928      lime: "0f0",
4929      limegreen: "32cd32",
4930      linen: "faf0e6",
4931      magenta: "f0f",
4932      maroon: "800000",
4933      mediumaquamarine: "66cdaa",
4934      mediumblue: "0000cd",
4935      mediumorchid: "ba55d3",
4936      mediumpurple: "9370db",
4937      mediumseagreen: "3cb371",
4938      mediumslateblue: "7b68ee",
4939      mediumspringgreen: "00fa9a",
4940      mediumturquoise: "48d1cc",
4941      mediumvioletred: "c71585",
4942      midnightblue: "191970",
4943      mintcream: "f5fffa",
4944      mistyrose: "ffe4e1",
4945      moccasin: "ffe4b5",
4946      navajowhite: "ffdead",
4947      navy: "000080",
4948      oldlace: "fdf5e6",
4949      olive: "808000",
4950      olivedrab: "6b8e23",
4951      orange: "ffa500",
4952      orangered: "ff4500",
4953      orchid: "da70d6",
4954      palegoldenrod: "eee8aa",
4955      palegreen: "98fb98",
4956      paleturquoise: "afeeee",
4957      palevioletred: "db7093",
4958      papayawhip: "ffefd5",
4959      peachpuff: "ffdab9",
4960      peru: "cd853f",
4961      pink: "ffc0cb",
4962      plum: "dda0dd",
4963      powderblue: "b0e0e6",
4964      purple: "800080",
4965      rebeccapurple: "663399",
4966      red: "f00",
4967      rosybrown: "bc8f8f",
4968      royalblue: "4169e1",
4969      saddlebrown: "8b4513",
4970      salmon: "fa8072",
4971      sandybrown: "f4a460",
4972      seagreen: "2e8b57",
4973      seashell: "fff5ee",
4974      sienna: "a0522d",
4975      silver: "c0c0c0",
4976      skyblue: "87ceeb",
4977      slateblue: "6a5acd",
4978      slategray: "708090",
4979      slategrey: "708090",
4980      snow: "fffafa",
4981      springgreen: "00ff7f",
4982      steelblue: "4682b4",
4983      tan: "d2b48c",
4984      teal: "008080",
4985      thistle: "d8bfd8",
4986      tomato: "ff6347",
4987      turquoise: "40e0d0",
4988      violet: "ee82ee",
4989      wheat: "f5deb3",
4990      white: "fff",
4991      whitesmoke: "f5f5f5",
4992      yellow: "ff0",
4993      yellowgreen: "9acd32"
4994  };
4995  
4996  // Make it easy to access colors via `hexNames[hex]`
4997  var hexNames = tinycolor.hexNames = flip(names);
4998  
4999  
5000  // Utilities
5001  // ---------
5002  
5003  // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
5004  function flip(o) {
5005      var flipped = { };
5006      for (var i in o) {
5007          if (o.hasOwnProperty(i)) {
5008              flipped[o[i]] = i;
5009          }
5010      }
5011      return flipped;
5012  }
5013  
5014  // Return a valid alpha value [0,1] with all invalid values being set to 1
5015  function boundAlpha(a) {
5016      a = parseFloat(a);
5017  
5018      if (isNaN(a) || a < 0 || a > 1) {
5019          a = 1;
5020      }
5021  
5022      return a;
5023  }
5024  
5025  // Take input from [0, n] and return it as [0, 1]
5026  function bound01(n, max) {
5027      if (isOnePointZero(n)) { n = "100%"; }
5028  
5029      var processPercent = isPercentage(n);
5030      n = mathMin(max, mathMax(0, parseFloat(n)));
5031  
5032      // Automatically convert percentage into number
5033      if (processPercent) {
5034          n = parseInt(n * max, 10) / 100;
5035      }
5036  
5037      // Handle floating point rounding errors
5038      if ((Math.abs(n - max) < 0.000001)) {
5039          return 1;
5040      }
5041  
5042      // Convert into [0, 1] range if it isn't already
5043      return (n % max) / parseFloat(max);
5044  }
5045  
5046  // Force a number between 0 and 1
5047  function clamp01(val) {
5048      return mathMin(1, mathMax(0, val));
5049  }
5050  
5051  // Parse a base-16 hex value into a base-10 integer
5052  function parseIntFromHex(val) {
5053      return parseInt(val, 16);
5054  }
5055  
5056  // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
5057  // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
5058  function isOnePointZero(n) {
5059      return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
5060  }
5061  
5062  // Check to see if string passed in is a percentage
5063  function isPercentage(n) {
5064      return typeof n === "string" && n.indexOf('%') != -1;
5065  }
5066  
5067  // Force a hex value to have 2 characters
5068  function pad2(c) {
5069      return c.length == 1 ? '0' + c : '' + c;
5070  }
5071  
5072  // Replace a decimal with it's percentage value
5073  function convertToPercentage(n) {
5074      if (n <= 1) {
5075          n = (n * 100) + "%";
5076      }
5077  
5078      return n;
5079  }
5080  
5081  // Converts a decimal to a hex value
5082  function convertDecimalToHex(d) {
5083      return Math.round(parseFloat(d) * 255).toString(16);
5084  }
5085  // Converts a hex value to a decimal
5086  function convertHexToDecimal(h) {
5087      return (parseIntFromHex(h) / 255);
5088  }
5089  
5090  var matchers = (function() {
5091  
5092      // <http://www.w3.org/TR/css3-values/#integers>
5093      var CSS_INTEGER = "[-\\+]?\\d+%?";
5094  
5095      // <http://www.w3.org/TR/css3-values/#number-value>
5096      var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
5097  
5098      // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
5099      var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
5100  
5101      // Actual matching.
5102      // Parentheses and commas are optional, but not required.
5103      // Whitespace can take the place of commas or opening paren
5104      var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
5105      var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
5106  
5107      return {
5108          CSS_UNIT: new RegExp(CSS_UNIT),
5109          rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
5110          rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
5111          hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
5112          hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
5113          hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
5114          hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
5115          hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
5116          hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
5117          hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
5118          hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
5119      };
5120  })();
5121  
5122  // `isValidCSSUnit`
5123  // Take in a single string / number and check to see if it looks like a CSS unit
5124  // (see `matchers` above for definition).
5125  function isValidCSSUnit(color) {
5126      return !!matchers.CSS_UNIT.exec(color);
5127  }
5128  
5129  // `stringInputToObject`
5130  // Permissive string parsing.  Take in a number of formats, and output an object
5131  // based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
5132  function stringInputToObject(color) {
5133  
5134      color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
5135      var named = false;
5136      if (names[color]) {
5137          color = names[color];
5138          named = true;
5139      }
5140      else if (color == 'transparent') {
5141          return { r: 0, g: 0, b: 0, a: 0, format: "name" };
5142      }
5143  
5144      // Try to match string input using regular expressions.
5145      // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
5146      // Just return an object and let the conversion functions handle that.
5147      // This way the result will be the same whether the tinycolor is initialized with string or object.
5148      var match;
5149      if ((match = matchers.rgb.exec(color))) {
5150          return { r: match[1], g: match[2], b: match[3] };
5151      }
5152      if ((match = matchers.rgba.exec(color))) {
5153          return { r: match[1], g: match[2], b: match[3], a: match[4] };
5154      }
5155      if ((match = matchers.hsl.exec(color))) {
5156          return { h: match[1], s: match[2], l: match[3] };
5157      }
5158      if ((match = matchers.hsla.exec(color))) {
5159          return { h: match[1], s: match[2], l: match[3], a: match[4] };
5160      }
5161      if ((match = matchers.hsv.exec(color))) {
5162          return { h: match[1], s: match[2], v: match[3] };
5163      }
5164      if ((match = matchers.hsva.exec(color))) {
5165          return { h: match[1], s: match[2], v: match[3], a: match[4] };
5166      }
5167      if ((match = matchers.hex8.exec(color))) {
5168          return {
5169              r: parseIntFromHex(match[1]),
5170              g: parseIntFromHex(match[2]),
5171              b: parseIntFromHex(match[3]),
5172              a: convertHexToDecimal(match[4]),
5173              format: named ? "name" : "hex8"
5174          };
5175      }
5176      if ((match = matchers.hex6.exec(color))) {
5177          return {
5178              r: parseIntFromHex(match[1]),
5179              g: parseIntFromHex(match[2]),
5180              b: parseIntFromHex(match[3]),
5181              format: named ? "name" : "hex"
5182          };
5183      }
5184      if ((match = matchers.hex4.exec(color))) {
5185          return {
5186              r: parseIntFromHex(match[1] + '' + match[1]),
5187              g: parseIntFromHex(match[2] + '' + match[2]),
5188              b: parseIntFromHex(match[3] + '' + match[3]),
5189              a: convertHexToDecimal(match[4] + '' + match[4]),
5190              format: named ? "name" : "hex8"
5191          };
5192      }
5193      if ((match = matchers.hex3.exec(color))) {
5194          return {
5195              r: parseIntFromHex(match[1] + '' + match[1]),
5196              g: parseIntFromHex(match[2] + '' + match[2]),
5197              b: parseIntFromHex(match[3] + '' + match[3]),
5198              format: named ? "name" : "hex"
5199          };
5200      }
5201  
5202      return false;
5203  }
5204  
5205  function validateWCAG2Parms(parms) {
5206      // return valid WCAG2 parms for isReadable.
5207      // If input parms are invalid, return {"level":"AA", "size":"small"}
5208      var level, size;
5209      parms = parms || {"level":"AA", "size":"small"};
5210      level = (parms.level || "AA").toUpperCase();
5211      size = (parms.size || "small").toLowerCase();
5212      if (level !== "AA" && level !== "AAA") {
5213          level = "AA";
5214      }
5215      if (size !== "small" && size !== "large") {
5216          size = "small";
5217      }
5218      return {"level":level, "size":size};
5219  }
5220  
5221  // Node: Export function
5222  if ( true && module.exports) {
5223      module.exports = tinycolor;
5224  }
5225  // AMD/requirejs: Define the module
5226  else if (true) {
5227      !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),
5228                  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
5229  }
5230  // Browser: Expose to window
5231  else {}
5232  
5233  })(Math);
5234  
5235  
5236  /***/ }),
5237  
5238  /***/ "b2RC":
5239  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5240  
5241  "use strict";
5242  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
5243  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
5244  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
5245  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
5246  
5247  
5248  /**
5249   * WordPress dependencies
5250   */
5251  
5252  const grid = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
5253    xmlns: "http://www.w3.org/2000/svg",
5254    viewBox: "0 0 24 24"
5255  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
5256    d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7.8 16.5H5c-.3 0-.5-.2-.5-.5v-6.2h6.8v6.7zm0-8.3H4.5V5c0-.3.2-.5.5-.5h6.2v6.7zm8.3 7.8c0 .3-.2.5-.5.5h-6.2v-6.8h6.8V19zm0-7.8h-6.8V4.5H19c.3 0 .5.2.5.5v6.2z",
5257    fillRule: "evenodd",
5258    clipRule: "evenodd"
5259  }));
5260  /* harmony default export */ __webpack_exports__["a"] = (grid);
5261  
5262  
5263  /***/ }),
5264  
5265  /***/ "bWcr":
5266  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5267  
5268  "use strict";
5269  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
5270  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
5271  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
5272  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
5273  
5274  
5275  /**
5276   * WordPress dependencies
5277   */
5278  
5279  const closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
5280    xmlns: "http://www.w3.org/2000/svg",
5281    viewBox: "0 0 24 24"
5282  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
5283    d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"
5284  }));
5285  /* harmony default export */ __webpack_exports__["a"] = (closeSmall);
5286  
5287  
5288  /***/ }),
5289  
5290  /***/ "btIw":
5291  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5292  
5293  "use strict";
5294  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
5295  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
5296  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
5297  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
5298  
5299  
5300  /**
5301   * WordPress dependencies
5302   */
5303  
5304  const keyboardReturn = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
5305    xmlns: "http://www.w3.org/2000/svg",
5306    viewBox: "-2 -2 24 24"
5307  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
5308    d: "M6.734 16.106l2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.157 1.093-1.027-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734z"
5309  }));
5310  /* harmony default export */ __webpack_exports__["a"] = (keyboardReturn);
5311  
5312  
5313  /***/ }),
5314  
5315  /***/ "cDcd":
5316  /***/ (function(module, exports) {
5317  
5318  (function() { module.exports = window["React"]; }());
5319  
5320  /***/ }),
5321  
5322  /***/ "cGtP":
5323  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5324  
5325  "use strict";
5326  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
5327  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
5328  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
5329  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
5330  
5331  
5332  /**
5333   * WordPress dependencies
5334   */
5335  
5336  const search = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
5337    xmlns: "http://www.w3.org/2000/svg",
5338    viewBox: "0 0 24 24"
5339  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
5340    d: "M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"
5341  }));
5342  /* harmony default export */ __webpack_exports__["a"] = (search);
5343  
5344  
5345  /***/ }),
5346  
5347  /***/ "cjQ8":
5348  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5349  
5350  "use strict";
5351  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
5352  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
5353  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
5354  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
5355  
5356  
5357  /**
5358   * WordPress dependencies
5359   */
5360  
5361  const arrowLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
5362    xmlns: "http://www.w3.org/2000/svg",
5363    viewBox: "0 0 24 24"
5364  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
5365    d: "M20 10.8H6.7l4.1-4.5-1.1-1.1-5.8 6.3 5.8 5.8 1.1-1.1-4-3.9H20z"
5366  }));
5367  /* harmony default export */ __webpack_exports__["a"] = (arrowLeft);
5368  
5369  
5370  /***/ }),
5371  
5372  /***/ "eGrx":
5373  /***/ (function(module, exports) {
5374  
5375  var traverse = module.exports = function (obj) {
5376      return new Traverse(obj);
5377  };
5378  
5379  function Traverse (obj) {
5380      this.value = obj;
5381  }
5382  
5383  Traverse.prototype.get = function (ps) {
5384      var node = this.value;
5385      for (var i = 0; i < ps.length; i ++) {
5386          var key = ps[i];
5387          if (!node || !hasOwnProperty.call(node, key)) {
5388              node = undefined;
5389              break;
5390          }
5391          node = node[key];
5392      }
5393      return node;
5394  };
5395  
5396  Traverse.prototype.has = function (ps) {
5397      var node = this.value;
5398      for (var i = 0; i < ps.length; i ++) {
5399          var key = ps[i];
5400          if (!node || !hasOwnProperty.call(node, key)) {
5401              return false;
5402          }
5403          node = node[key];
5404      }
5405      return true;
5406  };
5407  
5408  Traverse.prototype.set = function (ps, value) {
5409      var node = this.value;
5410      for (var i = 0; i < ps.length - 1; i ++) {
5411          var key = ps[i];
5412          if (!hasOwnProperty.call(node, key)) node[key] = {};
5413          node = node[key];
5414      }
5415      node[ps[i]] = value;
5416      return value;
5417  };
5418  
5419  Traverse.prototype.map = function (cb) {
5420      return walk(this.value, cb, true);
5421  };
5422  
5423  Traverse.prototype.forEach = function (cb) {
5424      this.value = walk(this.value, cb, false);
5425      return this.value;
5426  };
5427  
5428  Traverse.prototype.reduce = function (cb, init) {
5429      var skip = arguments.length === 1;
5430      var acc = skip ? this.value : init;
5431      this.forEach(function (x) {
5432          if (!this.isRoot || !skip) {
5433              acc = cb.call(this, acc, x);
5434          }
5435      });
5436      return acc;
5437  };
5438  
5439  Traverse.prototype.paths = function () {
5440      var acc = [];
5441      this.forEach(function (x) {
5442          acc.push(this.path); 
5443      });
5444      return acc;
5445  };
5446  
5447  Traverse.prototype.nodes = function () {
5448      var acc = [];
5449      this.forEach(function (x) {
5450          acc.push(this.node);
5451      });
5452      return acc;
5453  };
5454  
5455  Traverse.prototype.clone = function () {
5456      var parents = [], nodes = [];
5457      
5458      return (function clone (src) {
5459          for (var i = 0; i < parents.length; i++) {
5460              if (parents[i] === src) {
5461                  return nodes[i];
5462              }
5463          }
5464          
5465          if (typeof src === 'object' && src !== null) {
5466              var dst = copy(src);
5467              
5468              parents.push(src);
5469              nodes.push(dst);
5470              
5471              forEach(objectKeys(src), function (key) {
5472                  dst[key] = clone(src[key]);
5473              });
5474              
5475              parents.pop();
5476              nodes.pop();
5477              return dst;
5478          }
5479          else {
5480              return src;
5481          }
5482      })(this.value);
5483  };
5484  
5485  function walk (root, cb, immutable) {
5486      var path = [];
5487      var parents = [];
5488      var alive = true;
5489      
5490      return (function walker (node_) {
5491          var node = immutable ? copy(node_) : node_;
5492          var modifiers = {};
5493          
5494          var keepGoing = true;
5495          
5496          var state = {
5497              node : node,
5498              node_ : node_,
5499              path : [].concat(path),
5500              parent : parents[parents.length - 1],
5501              parents : parents,
5502              key : path.slice(-1)[0],
5503              isRoot : path.length === 0,
5504              level : path.length,
5505              circular : null,
5506              update : function (x, stopHere) {
5507                  if (!state.isRoot) {
5508                      state.parent.node[state.key] = x;
5509                  }
5510                  state.node = x;
5511                  if (stopHere) keepGoing = false;
5512              },
5513              'delete' : function (stopHere) {
5514                  delete state.parent.node[state.key];
5515                  if (stopHere) keepGoing = false;
5516              },
5517              remove : function (stopHere) {
5518                  if (isArray(state.parent.node)) {
5519                      state.parent.node.splice(state.key, 1);
5520                  }
5521                  else {
5522                      delete state.parent.node[state.key];
5523                  }
5524                  if (stopHere) keepGoing = false;
5525              },
5526              keys : null,
5527              before : function (f) { modifiers.before = f },
5528              after : function (f) { modifiers.after = f },
5529              pre : function (f) { modifiers.pre = f },
5530              post : function (f) { modifiers.post = f },
5531              stop : function () { alive = false },
5532              block : function () { keepGoing = false }
5533          };
5534          
5535          if (!alive) return state;
5536          
5537          function updateState() {
5538              if (typeof state.node === 'object' && state.node !== null) {
5539                  if (!state.keys || state.node_ !== state.node) {
5540                      state.keys = objectKeys(state.node)
5541                  }
5542                  
5543                  state.isLeaf = state.keys.length == 0;
5544                  
5545                  for (var i = 0; i < parents.length; i++) {
5546                      if (parents[i].node_ === node_) {
5547                          state.circular = parents[i];
5548                          break;
5549                      }
5550                  }
5551              }
5552              else {
5553                  state.isLeaf = true;
5554                  state.keys = null;
5555              }
5556              
5557              state.notLeaf = !state.isLeaf;
5558              state.notRoot = !state.isRoot;
5559          }
5560          
5561          updateState();
5562          
5563          // use return values to update if defined
5564          var ret = cb.call(state, state.node);
5565          if (ret !== undefined && state.update) state.update(ret);
5566          
5567          if (modifiers.before) modifiers.before.call(state, state.node);
5568          
5569          if (!keepGoing) return state;
5570          
5571          if (typeof state.node == 'object'
5572          && state.node !== null && !state.circular) {
5573              parents.push(state);
5574              
5575              updateState();
5576              
5577              forEach(state.keys, function (key, i) {
5578                  path.push(key);
5579                  
5580                  if (modifiers.pre) modifiers.pre.call(state, state.node[key], key);
5581                  
5582                  var child = walker(state.node[key]);
5583                  if (immutable && hasOwnProperty.call(state.node, key)) {
5584                      state.node[key] = child.node;
5585                  }
5586                  
5587                  child.isLast = i == state.keys.length - 1;
5588                  child.isFirst = i == 0;
5589                  
5590                  if (modifiers.post) modifiers.post.call(state, child);
5591                  
5592                  path.pop();
5593              });
5594              parents.pop();
5595          }
5596          
5597          if (modifiers.after) modifiers.after.call(state, state.node);
5598          
5599          return state;
5600      })(root).node;
5601  }
5602  
5603  function copy (src) {
5604      if (typeof src === 'object' && src !== null) {
5605          var dst;
5606          
5607          if (isArray(src)) {
5608              dst = [];
5609          }
5610          else if (isDate(src)) {
5611              dst = new Date(src.getTime ? src.getTime() : src);
5612          }
5613          else if (isRegExp(src)) {
5614              dst = new RegExp(src);
5615          }
5616          else if (isError(src)) {
5617              dst = { message: src.message };
5618          }
5619          else if (isBoolean(src)) {
5620              dst = new Boolean(src);
5621          }
5622          else if (isNumber(src)) {
5623              dst = new Number(src);
5624          }
5625          else if (isString(src)) {
5626              dst = new String(src);
5627          }
5628          else if (Object.create && Object.getPrototypeOf) {
5629              dst = Object.create(Object.getPrototypeOf(src));
5630          }
5631          else if (src.constructor === Object) {
5632              dst = {};
5633          }
5634          else {
5635              var proto =
5636                  (src.constructor && src.constructor.prototype)
5637                  || src.__proto__
5638                  || {}
5639              ;
5640              var T = function () {};
5641              T.prototype = proto;
5642              dst = new T;
5643          }
5644          
5645          forEach(objectKeys(src), function (key) {
5646              dst[key] = src[key];
5647          });
5648          return dst;
5649      }
5650      else return src;
5651  }
5652  
5653  var objectKeys = Object.keys || function keys (obj) {
5654      var res = [];
5655      for (var key in obj) res.push(key)
5656      return res;
5657  };
5658  
5659  function toS (obj) { return Object.prototype.toString.call(obj) }
5660  function isDate (obj) { return toS(obj) === '[object Date]' }
5661  function isRegExp (obj) { return toS(obj) === '[object RegExp]' }
5662  function isError (obj) { return toS(obj) === '[object Error]' }
5663  function isBoolean (obj) { return toS(obj) === '[object Boolean]' }
5664  function isNumber (obj) { return toS(obj) === '[object Number]' }
5665  function isString (obj) { return toS(obj) === '[object String]' }
5666  
5667  var isArray = Array.isArray || function isArray (xs) {
5668      return Object.prototype.toString.call(xs) === '[object Array]';
5669  };
5670  
5671  var forEach = function (xs, fn) {
5672      if (xs.forEach) return xs.forEach(fn)
5673      else for (var i = 0; i < xs.length; i++) {
5674          fn(xs[i], i, xs);
5675      }
5676  };
5677  
5678  forEach(objectKeys(Traverse.prototype), function (key) {
5679      traverse[key] = function (obj) {
5680          var args = [].slice.call(arguments, 1);
5681          var t = new Traverse(obj);
5682          return t[key].apply(t, args);
5683      };
5684  });
5685  
5686  var hasOwnProperty = Object.hasOwnProperty || function (obj, key) {
5687      return key in obj;
5688  };
5689  
5690  
5691  /***/ }),
5692  
5693  /***/ "fPbg":
5694  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5695  
5696  "use strict";
5697  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
5698  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
5699  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
5700  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
5701  
5702  
5703  /**
5704   * WordPress dependencies
5705   */
5706  
5707  const alignLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
5708    xmlns: "http://www.w3.org/2000/svg",
5709    viewBox: "0 0 24 24"
5710  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
5711    d: "M4 19.8h8.9v-1.5H4v1.5zm8.9-15.6H4v1.5h8.9V4.2zm-8.9 7v1.5h16v-1.5H4z"
5712  }));
5713  /* harmony default export */ __webpack_exports__["a"] = (alignLeft);
5714  
5715  
5716  /***/ }),
5717  
5718  /***/ "g56x":
5719  /***/ (function(module, exports) {
5720  
5721  (function() { module.exports = window["wp"]["hooks"]; }());
5722  
5723  /***/ }),
5724  
5725  /***/ "gdqT":
5726  /***/ (function(module, exports) {
5727  
5728  (function() { module.exports = window["wp"]["a11y"]; }());
5729  
5730  /***/ }),
5731  
5732  /***/ "hF7m":
5733  /***/ (function(module, exports) {
5734  
5735  (function() { module.exports = window["wp"]["keyboardShortcuts"]; }());
5736  
5737  /***/ }),
5738  
5739  /***/ "iA5R":
5740  /***/ (function(module, exports, __webpack_require__) {
5741  
5742  "use strict";
5743  /*istanbul ignore start*/
5744  
5745  
5746  Object.defineProperty(exports, "__esModule", {
5747    value: true
5748  });
5749  exports.diffChars = diffChars;
5750  exports.characterDiff = void 0;
5751  
5752  /*istanbul ignore end*/
5753  var
5754  /*istanbul ignore start*/
5755  _base = _interopRequireDefault(__webpack_require__("smQA"))
5756  /*istanbul ignore end*/
5757  ;
5758  
5759  /*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5760  
5761  /*istanbul ignore end*/
5762  var characterDiff = new
5763  /*istanbul ignore start*/
5764  _base
5765  /*istanbul ignore end*/
5766  .
5767  /*istanbul ignore start*/
5768  default
5769  /*istanbul ignore end*/
5770  ();
5771  
5772  /*istanbul ignore start*/
5773  exports.characterDiff = characterDiff;
5774  
5775  /*istanbul ignore end*/
5776  function diffChars(oldStr, newStr, options) {
5777    return characterDiff.diff(oldStr, newStr, options);
5778  }
5779  
5780  
5781  /***/ }),
5782  
5783  /***/ "iClF":
5784  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5785  
5786  "use strict";
5787  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
5788  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
5789  /**
5790   * WordPress dependencies
5791   */
5792  
5793  /** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
5794  
5795  /**
5796   * Return an SVG icon.
5797   *
5798   * @param {IconProps} props icon is the SVG component to render
5799   *                          size is a number specifiying the icon size in pixels
5800   *                          Other props will be passed to wrapped SVG component
5801   *
5802   * @return {JSX.Element}  Icon component
5803   */
5804  
5805  function Icon({
5806    icon,
5807    size = 24,
5808    ...props
5809  }) {
5810    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["cloneElement"])(icon, {
5811      width: size,
5812      height: size,
5813      ...props
5814    });
5815  }
5816  
5817  /* harmony default export */ __webpack_exports__["a"] = (Icon);
5818  
5819  
5820  /***/ }),
5821  
5822  /***/ "jB5C":
5823  /***/ (function(module, exports, __webpack_require__) {
5824  
5825  "use strict";
5826  
5827  
5828  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; };
5829  
5830  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
5831  
5832  var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
5833  
5834  function getClientPosition(elem) {
5835    var box = undefined;
5836    var x = undefined;
5837    var y = undefined;
5838    var doc = elem.ownerDocument;
5839    var body = doc.body;
5840    var docElem = doc && doc.documentElement;
5841    // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
5842    box = elem.getBoundingClientRect();
5843  
5844    // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
5845    // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
5846    // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
5847  
5848    x = box.left;
5849    y = box.top;
5850  
5851    // In IE, most of the time, 2 extra pixels are added to the top and left
5852    // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and
5853    // IE6 standards mode, this border can be overridden by setting the
5854    // document element's border to zero -- thus, we cannot rely on the
5855    // offset always being 2 pixels.
5856  
5857    // In quirks mode, the offset can be determined by querying the body's
5858    // clientLeft/clientTop, but in standards mode, it is found by querying
5859    // the document element's clientLeft/clientTop.  Since we already called
5860    // getClientBoundingRect we have already forced a reflow, so it is not
5861    // too expensive just to query them all.
5862  
5863    // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
5864    // 窗口边框标准是设 documentElement ,quirks 时设置 body
5865    // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
5866    // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
5867    // 标准 ie 下 docElem.clientTop 就是 border-top
5868    // ie7 html 即窗口边框改变不了。永远为 2
5869    // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
5870  
5871    x -= docElem.clientLeft || body.clientLeft || 0;
5872    y -= docElem.clientTop || body.clientTop || 0;
5873  
5874    return {
5875      left: x,
5876      top: y
5877    };
5878  }
5879  
5880  function getScroll(w, top) {
5881    var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
5882    var method = 'scroll' + (top ? 'Top' : 'Left');
5883    if (typeof ret !== 'number') {
5884      var d = w.document;
5885      // ie6,7,8 standard mode
5886      ret = d.documentElement[method];
5887      if (typeof ret !== 'number') {
5888        // quirks mode
5889        ret = d.body[method];
5890      }
5891    }
5892    return ret;
5893  }
5894  
5895  function getScrollLeft(w) {
5896    return getScroll(w);
5897  }
5898  
5899  function getScrollTop(w) {
5900    return getScroll(w, true);
5901  }
5902  
5903  function getOffset(el) {
5904    var pos = getClientPosition(el);
5905    var doc = el.ownerDocument;
5906    var w = doc.defaultView || doc.parentWindow;
5907    pos.left += getScrollLeft(w);
5908    pos.top += getScrollTop(w);
5909    return pos;
5910  }
5911  function _getComputedStyle(elem, name, computedStyle_) {
5912    var val = '';
5913    var d = elem.ownerDocument;
5914    var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);
5915  
5916    // https://github.com/kissyteam/kissy/issues/61
5917    if (computedStyle) {
5918      val = computedStyle.getPropertyValue(name) || computedStyle[name];
5919    }
5920  
5921    return val;
5922  }
5923  
5924  var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
5925  var RE_POS = /^(top|right|bottom|left)$/;
5926  var CURRENT_STYLE = 'currentStyle';
5927  var RUNTIME_STYLE = 'runtimeStyle';
5928  var LEFT = 'left';
5929  var PX = 'px';
5930  
5931  function _getComputedStyleIE(elem, name) {
5932    // currentStyle maybe null
5933    // http://msdn.microsoft.com/en-us/library/ms535231.aspx
5934    var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
5935  
5936    // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
5937    // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
5938    // 在 ie 下不对,需要直接用 offset 方式
5939    // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
5940  
5941    // From the awesome hack by Dean Edwards
5942    // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
5943    // If we're not dealing with a regular pixel number
5944    // but a number that has a weird ending, we need to convert it to pixels
5945    // exclude left right for relativity
5946    if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
5947      // Remember the original values
5948      var style = elem.style;
5949      var left = style[LEFT];
5950      var rsLeft = elem[RUNTIME_STYLE][LEFT];
5951  
5952      // prevent flashing of content
5953      elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
5954  
5955      // Put in the new values to get a computed value out
5956      style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
5957      ret = style.pixelLeft + PX;
5958  
5959      // Revert the changed values
5960      style[LEFT] = left;
5961  
5962      elem[RUNTIME_STYLE][LEFT] = rsLeft;
5963    }
5964    return ret === '' ? 'auto' : ret;
5965  }
5966  
5967  var getComputedStyleX = undefined;
5968  if (typeof window !== 'undefined') {
5969    getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
5970  }
5971  
5972  function each(arr, fn) {
5973    for (var i = 0; i < arr.length; i++) {
5974      fn(arr[i]);
5975    }
5976  }
5977  
5978  function isBorderBoxFn(elem) {
5979    return getComputedStyleX(elem, 'boxSizing') === 'border-box';
5980  }
5981  
5982  var BOX_MODELS = ['margin', 'border', 'padding'];
5983  var CONTENT_INDEX = -1;
5984  var PADDING_INDEX = 2;
5985  var BORDER_INDEX = 1;
5986  var MARGIN_INDEX = 0;
5987  
5988  function swap(elem, options, callback) {
5989    var old = {};
5990    var style = elem.style;
5991    var name = undefined;
5992  
5993    // Remember the old values, and insert the new ones
5994    for (name in options) {
5995      if (options.hasOwnProperty(name)) {
5996        old[name] = style[name];
5997        style[name] = options[name];
5998      }
5999    }
6000  
6001    callback.call(elem);
6002  
6003    // Revert the old values
6004    for (name in options) {
6005      if (options.hasOwnProperty(name)) {
6006        style[name] = old[name];
6007      }
6008    }
6009  }
6010  
6011  function getPBMWidth(elem, props, which) {
6012    var value = 0;
6013    var prop = undefined;
6014    var j = undefined;
6015    var i = undefined;
6016    for (j = 0; j < props.length; j++) {
6017      prop = props[j];
6018      if (prop) {
6019        for (i = 0; i < which.length; i++) {
6020          var cssProp = undefined;
6021          if (prop === 'border') {
6022            cssProp = prop + which[i] + 'Width';
6023          } else {
6024            cssProp = prop + which[i];
6025          }
6026          value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
6027        }
6028      }
6029    }
6030    return value;
6031  }
6032  
6033  /**
6034   * A crude way of determining if an object is a window
6035   * @member util
6036   */
6037  function isWindow(obj) {
6038    // must use == for ie8
6039    /* eslint eqeqeq:0 */
6040    return obj != null && obj == obj.window;
6041  }
6042  
6043  var domUtils = {};
6044  
6045  each(['Width', 'Height'], function (name) {
6046    domUtils['doc' + name] = function (refWin) {
6047      var d = refWin.document;
6048      return Math.max(
6049      // firefox chrome documentElement.scrollHeight< body.scrollHeight
6050      // ie standard mode : documentElement.scrollHeight> body.scrollHeight
6051      d.documentElement['scroll' + name],
6052      // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
6053      d.body['scroll' + name], domUtils['viewport' + name](d));
6054    };
6055  
6056    domUtils['viewport' + name] = function (win) {
6057      // pc browser includes scrollbar in window.innerWidth
6058      var prop = 'client' + name;
6059      var doc = win.document;
6060      var body = doc.body;
6061      var documentElement = doc.documentElement;
6062      var documentElementProp = documentElement[prop];
6063      // 标准模式取 documentElement
6064      // backcompat 取 body
6065      return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
6066    };
6067  });
6068  
6069  /*
6070   得到元素的大小信息
6071   @param elem
6072   @param name
6073   @param {String} [extra]  'padding' : (css width) + padding
6074   'border' : (css width) + padding + border
6075   'margin' : (css width) + padding + border + margin
6076   */
6077  function getWH(elem, name, extra) {
6078    if (isWindow(elem)) {
6079      return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
6080    } else if (elem.nodeType === 9) {
6081      return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
6082    }
6083    var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
6084    var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;
6085    var computedStyle = getComputedStyleX(elem);
6086    var isBorderBox = isBorderBoxFn(elem, computedStyle);
6087    var cssBoxValue = 0;
6088    if (borderBoxValue == null || borderBoxValue <= 0) {
6089      borderBoxValue = undefined;
6090      // Fall back to computed then un computed css if necessary
6091      cssBoxValue = getComputedStyleX(elem, name);
6092      if (cssBoxValue == null || Number(cssBoxValue) < 0) {
6093        cssBoxValue = elem.style[name] || 0;
6094      }
6095      // Normalize '', auto, and prepare for extra
6096      cssBoxValue = parseFloat(cssBoxValue) || 0;
6097    }
6098    if (extra === undefined) {
6099      extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
6100    }
6101    var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
6102    var val = borderBoxValue || cssBoxValue;
6103    if (extra === CONTENT_INDEX) {
6104      if (borderBoxValueOrIsBorderBox) {
6105        return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
6106      }
6107      return cssBoxValue;
6108    }
6109    if (borderBoxValueOrIsBorderBox) {
6110      var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);
6111      return val + (extra === BORDER_INDEX ? 0 : padding);
6112    }
6113    return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
6114  }
6115  
6116  var cssShow = {
6117    position: 'absolute',
6118    visibility: 'hidden',
6119    display: 'block'
6120  };
6121  
6122  // fix #119 : https://github.com/kissyteam/kissy/issues/119
6123  function getWHIgnoreDisplay(elem) {
6124    var val = undefined;
6125    var args = arguments;
6126    // in case elem is window
6127    // elem.offsetWidth === undefined
6128    if (elem.offsetWidth !== 0) {
6129      val = getWH.apply(undefined, args);
6130    } else {
6131      swap(elem, cssShow, function () {
6132        val = getWH.apply(undefined, args);
6133      });
6134    }
6135    return val;
6136  }
6137  
6138  function css(el, name, v) {
6139    var value = v;
6140    if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
6141      for (var i in name) {
6142        if (name.hasOwnProperty(i)) {
6143          css(el, i, name[i]);
6144        }
6145      }
6146      return undefined;
6147    }
6148    if (typeof value !== 'undefined') {
6149      if (typeof value === 'number') {
6150        value += 'px';
6151      }
6152      el.style[name] = value;
6153      return undefined;
6154    }
6155    return getComputedStyleX(el, name);
6156  }
6157  
6158  each(['width', 'height'], function (name) {
6159    var first = name.charAt(0).toUpperCase() + name.slice(1);
6160    domUtils['outer' + first] = function (el, includeMargin) {
6161      return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
6162    };
6163    var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
6164  
6165    domUtils[name] = function (elem, val) {
6166      if (val !== undefined) {
6167        if (elem) {
6168          var computedStyle = getComputedStyleX(elem);
6169          var isBorderBox = isBorderBoxFn(elem);
6170          if (isBorderBox) {
6171            val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
6172          }
6173          return css(elem, name, val);
6174        }
6175        return undefined;
6176      }
6177      return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
6178    };
6179  });
6180  
6181  // 设置 elem 相对 elem.ownerDocument 的坐标
6182  function setOffset(elem, offset) {
6183    // set position first, in-case top/left are set even on static elem
6184    if (css(elem, 'position') === 'static') {
6185      elem.style.position = 'relative';
6186    }
6187  
6188    var old = getOffset(elem);
6189    var ret = {};
6190    var current = undefined;
6191    var key = undefined;
6192  
6193    for (key in offset) {
6194      if (offset.hasOwnProperty(key)) {
6195        current = parseFloat(css(elem, key)) || 0;
6196        ret[key] = current + offset[key] - old[key];
6197      }
6198    }
6199    css(elem, ret);
6200  }
6201  
6202  module.exports = _extends({
6203    getWindow: function getWindow(node) {
6204      var doc = node.ownerDocument || node;
6205      return doc.defaultView || doc.parentWindow;
6206    },
6207    offset: function offset(el, value) {
6208      if (typeof value !== 'undefined') {
6209        setOffset(el, value);
6210      } else {
6211        return getOffset(el);
6212      }
6213    },
6214  
6215    isWindow: isWindow,
6216    each: each,
6217    css: css,
6218    clone: function clone(obj) {
6219      var ret = {};
6220      for (var i in obj) {
6221        if (obj.hasOwnProperty(i)) {
6222          ret[i] = obj[i];
6223        }
6224      }
6225      var overflow = obj.overflow;
6226      if (overflow) {
6227        for (var i in obj) {
6228          if (obj.hasOwnProperty(i)) {
6229            ret.overflow[i] = obj.overflow[i];
6230          }
6231        }
6232      }
6233      return ret;
6234    },
6235    scrollLeft: function scrollLeft(w, v) {
6236      if (isWindow(w)) {
6237        if (v === undefined) {
6238          return getScrollLeft(w);
6239        }
6240        window.scrollTo(v, getScrollTop(w));
6241      } else {
6242        if (v === undefined) {
6243          return w.scrollLeft;
6244        }
6245        w.scrollLeft = v;
6246      }
6247    },
6248    scrollTop: function scrollTop(w, v) {
6249      if (isWindow(w)) {
6250        if (v === undefined) {
6251          return getScrollTop(w);
6252        }
6253        window.scrollTo(getScrollLeft(w), v);
6254      } else {
6255        if (v === undefined) {
6256          return w.scrollTop;
6257        }
6258        w.scrollTop = v;
6259      }
6260    },
6261  
6262    viewportWidth: 0,
6263    viewportHeight: 0
6264  }, domUtils);
6265  
6266  /***/ }),
6267  
6268  /***/ "jTPX":
6269  /***/ (function(module, exports) {
6270  
6271  // This code has been refactored for 140 bytes
6272  // You can see the original here: https://github.com/twolfson/computedStyle/blob/04cd1da2e30fa45844f95f5cb1ac898e9b9ef050/lib/computedStyle.js
6273  var computedStyle = function (el, prop, getComputedStyle) {
6274    getComputedStyle = window.getComputedStyle;
6275  
6276    // In one fell swoop
6277    return (
6278      // If we have getComputedStyle
6279      getComputedStyle ?
6280        // Query it
6281        // TODO: From CSS-Query notes, we might need (node, null) for FF
6282        getComputedStyle(el) :
6283  
6284      // Otherwise, we are in IE and use currentStyle
6285        el.currentStyle
6286    )[
6287      // Switch to camelCase for CSSOM
6288      // DEV: Grabbed from jQuery
6289      // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194
6290      // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597
6291      prop.replace(/-(\w)/gi, function (word, letter) {
6292        return letter.toUpperCase();
6293      })
6294    ];
6295  };
6296  
6297  module.exports = computedStyle;
6298  
6299  
6300  /***/ }),
6301  
6302  /***/ "l3Sj":
6303  /***/ (function(module, exports) {
6304  
6305  (function() { module.exports = window["wp"]["i18n"]; }());
6306  
6307  /***/ }),
6308  
6309  /***/ "onLe":
6310  /***/ (function(module, exports) {
6311  
6312  (function() { module.exports = window["wp"]["notices"]; }());
6313  
6314  /***/ }),
6315  
6316  /***/ "pPDe":
6317  /***/ (function(module, __webpack_exports__, __webpack_require__) {
6318  
6319  "use strict";
6320  
6321  
6322  var LEAF_KEY, hasWeakMap;
6323  
6324  /**
6325   * Arbitrary value used as key for referencing cache object in WeakMap tree.
6326   *
6327   * @type {Object}
6328   */
6329  LEAF_KEY = {};
6330  
6331  /**
6332   * Whether environment supports WeakMap.
6333   *
6334   * @type {boolean}
6335   */
6336  hasWeakMap = typeof WeakMap !== 'undefined';
6337  
6338  /**
6339   * Returns the first argument as the sole entry in an array.
6340   *
6341   * @param {*} value Value to return.
6342   *
6343   * @return {Array} Value returned as entry in array.
6344   */
6345  function arrayOf( value ) {
6346      return [ value ];
6347  }
6348  
6349  /**
6350   * Returns true if the value passed is object-like, or false otherwise. A value
6351   * is object-like if it can support property assignment, e.g. object or array.
6352   *
6353   * @param {*} value Value to test.
6354   *
6355   * @return {boolean} Whether value is object-like.
6356   */
6357  function isObjectLike( value ) {
6358      return !! value && 'object' === typeof value;
6359  }
6360  
6361  /**
6362   * Creates and returns a new cache object.
6363   *
6364   * @return {Object} Cache object.
6365   */
6366  function createCache() {
6367      var cache = {
6368          clear: function() {
6369              cache.head = null;
6370          },
6371      };
6372  
6373      return cache;
6374  }
6375  
6376  /**
6377   * Returns true if entries within the two arrays are strictly equal by
6378   * reference from a starting index.
6379   *
6380   * @param {Array}  a         First array.
6381   * @param {Array}  b         Second array.
6382   * @param {number} fromIndex Index from which to start comparison.
6383   *
6384   * @return {boolean} Whether arrays are shallowly equal.
6385   */
6386  function isShallowEqual( a, b, fromIndex ) {
6387      var i;
6388  
6389      if ( a.length !== b.length ) {
6390          return false;
6391      }
6392  
6393      for ( i = fromIndex; i < a.length; i++ ) {
6394          if ( a[ i ] !== b[ i ] ) {
6395              return false;
6396          }
6397      }
6398  
6399      return true;
6400  }
6401  
6402  /**
6403   * Returns a memoized selector function. The getDependants function argument is
6404   * called before the memoized selector and is expected to return an immutable
6405   * reference or array of references on which the selector depends for computing
6406   * its own return value. The memoize cache is preserved only as long as those
6407   * dependant references remain the same. If getDependants returns a different
6408   * reference(s), the cache is cleared and the selector value regenerated.
6409   *
6410   * @param {Function} selector      Selector function.
6411   * @param {Function} getDependants Dependant getter returning an immutable
6412   *                                 reference or array of reference used in
6413   *                                 cache bust consideration.
6414   *
6415   * @return {Function} Memoized selector.
6416   */
6417  /* harmony default export */ __webpack_exports__["a"] = (function( selector, getDependants ) {
6418      var rootCache, getCache;
6419  
6420      // Use object source as dependant if getter not provided
6421      if ( ! getDependants ) {
6422          getDependants = arrayOf;
6423      }
6424  
6425      /**
6426       * Returns the root cache. If WeakMap is supported, this is assigned to the
6427       * root WeakMap cache set, otherwise it is a shared instance of the default
6428       * cache object.
6429       *
6430       * @return {(WeakMap|Object)} Root cache object.
6431       */
6432  	function getRootCache() {
6433          return rootCache;
6434      }
6435  
6436      /**
6437       * Returns the cache for a given dependants array. When possible, a WeakMap
6438       * will be used to create a unique cache for each set of dependants. This
6439       * is feasible due to the nature of WeakMap in allowing garbage collection
6440       * to occur on entries where the key object is no longer referenced. Since
6441       * WeakMap requires the key to be an object, this is only possible when the
6442       * dependant is object-like. The root cache is created as a hierarchy where
6443       * each top-level key is the first entry in a dependants set, the value a
6444       * WeakMap where each key is the next dependant, and so on. This continues
6445       * so long as the dependants are object-like. If no dependants are object-
6446       * like, then the cache is shared across all invocations.
6447       *
6448       * @see isObjectLike
6449       *
6450       * @param {Array} dependants Selector dependants.
6451       *
6452       * @return {Object} Cache object.
6453       */
6454  	function getWeakMapCache( dependants ) {
6455          var caches = rootCache,
6456              isUniqueByDependants = true,
6457              i, dependant, map, cache;
6458  
6459          for ( i = 0; i < dependants.length; i++ ) {
6460              dependant = dependants[ i ];
6461  
6462              // Can only compose WeakMap from object-like key.
6463              if ( ! isObjectLike( dependant ) ) {
6464                  isUniqueByDependants = false;
6465                  break;
6466              }
6467  
6468              // Does current segment of cache already have a WeakMap?
6469              if ( caches.has( dependant ) ) {
6470                  // Traverse into nested WeakMap.
6471                  caches = caches.get( dependant );
6472              } else {
6473                  // Create, set, and traverse into a new one.
6474                  map = new WeakMap();
6475                  caches.set( dependant, map );
6476                  caches = map;
6477              }
6478          }
6479  
6480          // We use an arbitrary (but consistent) object as key for the last item
6481          // in the WeakMap to serve as our running cache.
6482          if ( ! caches.has( LEAF_KEY ) ) {
6483              cache = createCache();
6484              cache.isUniqueByDependants = isUniqueByDependants;
6485              caches.set( LEAF_KEY, cache );
6486          }
6487  
6488          return caches.get( LEAF_KEY );
6489      }
6490  
6491      // Assign cache handler by availability of WeakMap
6492      getCache = hasWeakMap ? getWeakMapCache : getRootCache;
6493  
6494      /**
6495       * Resets root memoization cache.
6496       */
6497  	function clear() {
6498          rootCache = hasWeakMap ? new WeakMap() : createCache();
6499      }
6500  
6501      // eslint-disable-next-line jsdoc/check-param-names
6502      /**
6503       * The augmented selector call, considering first whether dependants have
6504       * changed before passing it to underlying memoize function.
6505       *
6506       * @param {Object} source    Source object for derivation.
6507       * @param {...*}   extraArgs Additional arguments to pass to selector.
6508       *
6509       * @return {*} Selector result.
6510       */
6511  	function callSelector( /* source, ...extraArgs */ ) {
6512          var len = arguments.length,
6513              cache, node, i, args, dependants;
6514  
6515          // Create copy of arguments (avoid leaking deoptimization).
6516          args = new Array( len );
6517          for ( i = 0; i < len; i++ ) {
6518              args[ i ] = arguments[ i ];
6519          }
6520  
6521          dependants = getDependants.apply( null, args );
6522          cache = getCache( dependants );
6523  
6524          // If not guaranteed uniqueness by dependants (primitive type or lack
6525          // of WeakMap support), shallow compare against last dependants and, if
6526          // references have changed, destroy cache to recalculate result.
6527          if ( ! cache.isUniqueByDependants ) {
6528              if ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {
6529                  cache.clear();
6530              }
6531  
6532              cache.lastDependants = dependants;
6533          }
6534  
6535          node = cache.head;
6536          while ( node ) {
6537              // Check whether node arguments match arguments
6538              if ( ! isShallowEqual( node.args, args, 1 ) ) {
6539                  node = node.next;
6540                  continue;
6541              }
6542  
6543              // At this point we can assume we've found a match
6544  
6545              // Surface matched node to head if not already
6546              if ( node !== cache.head ) {
6547                  // Adjust siblings to point to each other.
6548                  node.prev.next = node.next;
6549                  if ( node.next ) {
6550                      node.next.prev = node.prev;
6551                  }
6552  
6553                  node.next = cache.head;
6554                  node.prev = null;
6555                  cache.head.prev = node;
6556                  cache.head = node;
6557              }
6558  
6559              // Return immediately
6560              return node.val;
6561          }
6562  
6563          // No cached value found. Continue to insertion phase:
6564  
6565          node = {
6566              // Generate the result from original function
6567              val: selector.apply( null, args ),
6568          };
6569  
6570          // Avoid including the source object in the cache.
6571          args[ 0 ] = null;
6572          node.args = args;
6573  
6574          // Don't need to check whether node is already head, since it would
6575          // have been returned above already if it was
6576  
6577          // Shift existing head down list
6578          if ( cache.head ) {
6579              cache.head.prev = node;
6580              node.next = cache.head;
6581          }
6582  
6583          cache.head = node;
6584  
6585          return node.val;
6586      }
6587  
6588      callSelector.getDependants = getDependants;
6589      callSelector.clear = clear;
6590      clear();
6591  
6592      return callSelector;
6593  });
6594  
6595  
6596  /***/ }),
6597  
6598  /***/ "pVnL":
6599  /***/ (function(module, exports) {
6600  
6601  function _extends() {
6602    module.exports = _extends = Object.assign || function (target) {
6603      for (var i = 1; i < arguments.length; i++) {
6604        var source = arguments[i];
6605  
6606        for (var key in source) {
6607          if (Object.prototype.hasOwnProperty.call(source, key)) {
6608            target[key] = source[key];
6609          }
6610        }
6611      }
6612  
6613      return target;
6614    };
6615  
6616    module.exports["default"] = module.exports, module.exports.__esModule = true;
6617    return _extends.apply(this, arguments);
6618  }
6619  
6620  module.exports = _extends;
6621  module.exports["default"] = module.exports, module.exports.__esModule = true;
6622  
6623  /***/ }),
6624  
6625  /***/ "plpT":
6626  /***/ (function(module, __webpack_exports__, __webpack_require__) {
6627  
6628  "use strict";
6629  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
6630  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
6631  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
6632  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
6633  
6634  
6635  /**
6636   * WordPress dependencies
6637   */
6638  
6639  const alignCenter = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
6640    xmlns: "http://www.w3.org/2000/svg",
6641    viewBox: "0 0 24 24"
6642  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
6643    d: "M16.4 4.2H7.6v1.5h8.9V4.2zM4 11.2v1.5h16v-1.5H4zm3.6 8.6h8.9v-1.5H7.6v1.5z"
6644  }));
6645  /* harmony default export */ __webpack_exports__["a"] = (alignCenter);
6646  
6647  
6648  /***/ }),
6649  
6650  /***/ "qRz9":
6651  /***/ (function(module, exports) {
6652  
6653  (function() { module.exports = window["wp"]["richText"]; }());
6654  
6655  /***/ }),
6656  
6657  /***/ "rH4q":
6658  /***/ (function(module, __webpack_exports__, __webpack_require__) {
6659  
6660  "use strict";
6661  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GRId");
6662  /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
6663  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Tqx9");
6664  /* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
6665  
6666  
6667  /**
6668   * WordPress dependencies
6669   */
6670  
6671  const media = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["SVG"], {
6672    xmlns: "http://www.w3.org/2000/svg",
6673    viewBox: "0 0 24 24"
6674  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__["Path"], {
6675    d: "M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"
6676  }));
6677  /* harmony default export */ __webpack_exports__["a"] = (media);
6678  
6679  
6680  /***/ }),
6681  
6682  /***/ "rl8x":
6683  /***/ (function(module, exports) {
6684  
6685  (function() { module.exports = window["wp"]["isShallowEqual"]; }());
6686  
6687  /***/ }),
6688  
6689  /***/ "rmEH":
6690  /***/ (function(module, exports) {
6691  
6692  (function() { module.exports = window["wp"]["htmlEntities"]; }());
6693  
6694  /***/ }),
6695  
6696  /***/ "smQA":
6697  /***/ (function(module, exports, __webpack_require__) {
6698  
6699  "use strict";
6700  /*istanbul ignore start*/
6701  
6702  
6703  Object.defineProperty(exports, "__esModule", {
6704    value: true
6705  });
6706  exports.default = Diff;
6707  
6708  /*istanbul ignore end*/
6709  function Diff() {}
6710  
6711  Diff.prototype = {
6712    /*istanbul ignore start*/
6713  
6714    /*istanbul ignore end*/
6715    diff: function diff(oldString, newString) {
6716      /*istanbul ignore start*/
6717      var
6718      /*istanbul ignore end*/
6719      options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
6720      var callback = options.callback;
6721  
6722      if (typeof options === 'function') {
6723        callback = options;
6724        options = {};
6725      }
6726  
6727      this.options = options;
6728      var self = this;
6729  
6730      function done(value) {
6731        if (callback) {
6732          setTimeout(function () {
6733            callback(undefined, value);
6734          }, 0);
6735          return true;
6736        } else {
6737          return value;
6738        }
6739      } // Allow subclasses to massage the input prior to running
6740  
6741  
6742      oldString = this.castInput(oldString);
6743      newString = this.castInput(newString);
6744      oldString = this.removeEmpty(this.tokenize(oldString));
6745      newString = this.removeEmpty(this.tokenize(newString));
6746      var newLen = newString.length,
6747          oldLen = oldString.length;
6748      var editLength = 1;
6749      var maxEditLength = newLen + oldLen;
6750      var bestPath = [{
6751        newPos: -1,
6752        components: []
6753      }]; // Seed editLength = 0, i.e. the content starts with the same values
6754  
6755      var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
6756  
6757      if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
6758        // Identity per the equality and tokenizer
6759        return done([{
6760          value: this.join(newString),
6761          count: newString.length
6762        }]);
6763      } // Main worker method. checks all permutations of a given edit length for acceptance.
6764  
6765  
6766      function execEditLength() {
6767        for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
6768          var basePath =
6769          /*istanbul ignore start*/
6770          void 0
6771          /*istanbul ignore end*/
6772          ;
6773  
6774          var addPath = bestPath[diagonalPath - 1],
6775              removePath = bestPath[diagonalPath + 1],
6776              _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
6777  
6778          if (addPath) {
6779            // No one else is going to attempt to use this value, clear it
6780            bestPath[diagonalPath - 1] = undefined;
6781          }
6782  
6783          var canAdd = addPath && addPath.newPos + 1 < newLen,
6784              canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
6785  
6786          if (!canAdd && !canRemove) {
6787            // If this path is a terminal then prune
6788            bestPath[diagonalPath] = undefined;
6789            continue;
6790          } // Select the diagonal that we want to branch from. We select the prior
6791          // path whose position in the new string is the farthest from the origin
6792          // and does not pass the bounds of the diff graph
6793  
6794  
6795          if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
6796            basePath = clonePath(removePath);
6797            self.pushComponent(basePath.components, undefined, true);
6798          } else {
6799            basePath = addPath; // No need to clone, we've pulled it from the list
6800  
6801            basePath.newPos++;
6802            self.pushComponent(basePath.components, true, undefined);
6803          }
6804  
6805          _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done
6806  
6807          if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
6808            return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
6809          } else {
6810            // Otherwise track this path as a potential candidate and continue.
6811            bestPath[diagonalPath] = basePath;
6812          }
6813        }
6814  
6815        editLength++;
6816      } // Performs the length of edit iteration. Is a bit fugly as this has to support the
6817      // sync and async mode which is never fun. Loops over execEditLength until a value
6818      // is produced.
6819  
6820  
6821      if (callback) {
6822        (function exec() {
6823          setTimeout(function () {
6824            // This should not happen, but we want to be safe.
6825  
6826            /* istanbul ignore next */
6827            if (editLength > maxEditLength) {
6828              return callback();
6829            }
6830  
6831            if (!execEditLength()) {
6832              exec();
6833            }
6834          }, 0);
6835        })();
6836      } else {
6837        while (editLength <= maxEditLength) {
6838          var ret = execEditLength();
6839  
6840          if (ret) {
6841            return ret;
6842          }
6843        }
6844      }
6845    },
6846  
6847    /*istanbul ignore start*/
6848  
6849    /*istanbul ignore end*/
6850    pushComponent: function pushComponent(components, added, removed) {
6851      var last = components[components.length - 1];
6852  
6853      if (last && last.added === added && last.removed === removed) {
6854        // We need to clone here as the component clone operation is just
6855        // as shallow array clone
6856        components[components.length - 1] = {
6857          count: last.count + 1,
6858          added: added,
6859          removed: removed
6860        };
6861      } else {
6862        components.push({
6863          count: 1,
6864          added: added,
6865          removed: removed
6866        });
6867      }
6868    },
6869  
6870    /*istanbul ignore start*/
6871  
6872    /*istanbul ignore end*/
6873    extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
6874      var newLen = newString.length,
6875          oldLen = oldString.length,
6876          newPos = basePath.newPos,
6877          oldPos = newPos - diagonalPath,
6878          commonCount = 0;
6879  
6880      while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
6881        newPos++;
6882        oldPos++;
6883        commonCount++;
6884      }
6885  
6886      if (commonCount) {
6887        basePath.components.push({
6888          count: commonCount
6889        });
6890      }
6891  
6892      basePath.newPos = newPos;
6893      return oldPos;
6894    },
6895  
6896    /*istanbul ignore start*/
6897  
6898    /*istanbul ignore end*/
6899    equals: function equals(left, right) {
6900      if (this.options.comparator) {
6901        return this.options.comparator(left, right);
6902      } else {
6903        return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
6904      }
6905    },
6906  
6907    /*istanbul ignore start*/
6908  
6909    /*istanbul ignore end*/
6910    removeEmpty: function removeEmpty(array) {
6911      var ret = [];
6912  
6913      for (var i = 0; i < array.length; i++) {
6914        if (array[i]) {
6915          ret.push(array[i]);
6916        }
6917      }
6918  
6919      return ret;
6920    },
6921  
6922    /*istanbul ignore start*/
6923  
6924    /*istanbul ignore end*/
6925    castInput: function castInput(value) {
6926      return value;
6927    },
6928  
6929    /*istanbul ignore start*/
6930  
6931    /*istanbul ignore end*/
6932    tokenize: function tokenize(value) {
6933      return value.split('');
6934    },
6935  
6936    /*istanbul ignore start*/
6937  
6938    /*istanbul ignore end*/
6939    join: function join(chars) {
6940      return chars.join('');
6941    }
6942  };
6943  
6944  function buildValues(diff, components, newString, oldString, useLongestToken) {
6945    var componentPos = 0,
6946        componentLen = components.length,
6947        newPos = 0,
6948        oldPos = 0;
6949  
6950    for (; componentPos < componentLen; componentPos++) {
6951      var component = components[componentPos];
6952  
6953      if (!component.removed) {
6954        if (!component.added && useLongestToken) {
6955          var value = newString.slice(newPos, newPos + component.count);
6956          value = value.map(function (value, i) {
6957            var oldValue = oldString[oldPos + i];
6958            return oldValue.length > value.length ? oldValue : value;
6959          });
6960          component.value = diff.join(value);
6961        } else {
6962          component.value = diff.join(newString.slice(newPos, newPos + component.count));
6963        }
6964  
6965        newPos += component.count; // Common case
6966  
6967        if (!component.added) {
6968          oldPos += component.count;
6969        }
6970      } else {
6971        component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
6972        oldPos += component.count; // Reverse add and remove so removes are output first to match common convention
6973        // The diffing algorithm is tied to add then remove output and this is the simplest
6974        // route to get the desired output with minimal overhead.
6975  
6976        if (componentPos && components[componentPos - 1].added) {
6977          var tmp = components[componentPos - 1];
6978          components[componentPos - 1] = components[componentPos];
6979          components[componentPos] = tmp;
6980        }
6981      }
6982    } // Special case handle for when one terminal is ignored (i.e. whitespace).
6983    // For this case we merge the terminal into the prior string and drop the change.
6984    // This is only available for string mode.
6985  
6986  
6987    var lastComponent = components[componentLen - 1];
6988  
6989    if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
6990      components[componentLen - 2].value += lastComponent.value;
6991      components.pop();
6992    }
6993  
6994    return components;
6995  }
6996  
6997  function clonePath(path) {
6998    return {
6999      newPos: path.newPos,
7000      components: path.components.slice(0)
7001    };
7002  }
7003  
7004  
7005  /***/ }),
7006  
7007  /***/ "tI+e":
7008  /***/ (function(module, exports) {
7009  
7010  (function() { module.exports = window["wp"]["components"]; }());
7011  
7012  /***/ }),
7013  
7014  /***/ "tr0p":
7015  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7016  
7017  "use strict";
7018  // ESM COMPAT FLAG
7019  __webpack_require__.r(__webpack_exports__);
7020  
7021  // EXPORTS
7022  __webpack_require__.d(__webpack_exports__, "__experimentalGetBorderClassesAndStyles", function() { return /* reexport */ getBorderClassesAndStyles; });
7023  __webpack_require__.d(__webpack_exports__, "__experimentalUseBorderProps", function() { return /* reexport */ useBorderProps; });
7024  __webpack_require__.d(__webpack_exports__, "__experimentalGetColorClassesAndStyles", function() { return /* reexport */ getColorClassesAndStyles; });
7025  __webpack_require__.d(__webpack_exports__, "__experimentalUseColorProps", function() { return /* reexport */ useColorProps; });
7026  __webpack_require__.d(__webpack_exports__, "__experimentalUseCustomSides", function() { return /* reexport */ useCustomSides; });
7027  __webpack_require__.d(__webpack_exports__, "getColorClassName", function() { return /* reexport */ getColorClassName; });
7028  __webpack_require__.d(__webpack_exports__, "getColorObjectByAttributeValues", function() { return /* reexport */ getColorObjectByAttributeValues; });
7029  __webpack_require__.d(__webpack_exports__, "getColorObjectByColorValue", function() { return /* reexport */ getColorObjectByColorValue; });
7030  __webpack_require__.d(__webpack_exports__, "createCustomColorsHOC", function() { return /* reexport */ createCustomColorsHOC; });
7031  __webpack_require__.d(__webpack_exports__, "withColors", function() { return /* reexport */ withColors; });
7032  __webpack_require__.d(__webpack_exports__, "__experimentalUseColors", function() { return /* reexport */ __experimentalUseColors; });
7033  __webpack_require__.d(__webpack_exports__, "__experimentalGetGradientClass", function() { return /* reexport */ __experimentalGetGradientClass; });
7034  __webpack_require__.d(__webpack_exports__, "getGradientValueBySlug", function() { return /* reexport */ getGradientValueBySlug; });
7035  __webpack_require__.d(__webpack_exports__, "__experimentalGetGradientObjectByGradientValue", function() { return /* reexport */ __experimentalGetGradientObjectByGradientValue; });
7036  __webpack_require__.d(__webpack_exports__, "getGradientSlugByValue", function() { return /* reexport */ getGradientSlugByValue; });
7037  __webpack_require__.d(__webpack_exports__, "__experimentalUseGradient", function() { return /* reexport */ __experimentalUseGradient; });
7038  __webpack_require__.d(__webpack_exports__, "getFontSize", function() { return /* reexport */ getFontSize; });
7039  __webpack_require__.d(__webpack_exports__, "getFontSizeClass", function() { return /* reexport */ getFontSizeClass; });
7040  __webpack_require__.d(__webpack_exports__, "getFontSizeObjectByValue", function() { return /* reexport */ getFontSizeObjectByValue; });
7041  __webpack_require__.d(__webpack_exports__, "FontSizePicker", function() { return /* reexport */ font_size_picker; });
7042  __webpack_require__.d(__webpack_exports__, "withFontSizes", function() { return /* reexport */ with_font_sizes; });
7043  __webpack_require__.d(__webpack_exports__, "AlignmentControl", function() { return /* reexport */ AlignmentControl; });
7044  __webpack_require__.d(__webpack_exports__, "AlignmentToolbar", function() { return /* reexport */ AlignmentToolbar; });
7045  __webpack_require__.d(__webpack_exports__, "Autocomplete", function() { return /* reexport */ autocomplete; });
7046  __webpack_require__.d(__webpack_exports__, "BlockAlignmentControl", function() { return /* reexport */ BlockAlignmentControl; });
7047  __webpack_require__.d(__webpack_exports__, "BlockAlignmentToolbar", function() { return /* reexport */ BlockAlignmentToolbar; });
7048  __webpack_require__.d(__webpack_exports__, "__experimentalBlockFullHeightAligmentControl", function() { return /* reexport */ block_full_height_alignment_control; });
7049  __webpack_require__.d(__webpack_exports__, "__experimentalBlockAlignmentMatrixControl", function() { return /* reexport */ block_alignment_matrix_control; });
7050  __webpack_require__.d(__webpack_exports__, "BlockBreadcrumb", function() { return /* reexport */ block_breadcrumb; });
7051  __webpack_require__.d(__webpack_exports__, "BlockContextProvider", function() { return /* reexport */ BlockContextProvider; });
7052  __webpack_require__.d(__webpack_exports__, "BlockControls", function() { return /* reexport */ block_controls; });
7053  __webpack_require__.d(__webpack_exports__, "BlockFormatControls", function() { return /* reexport */ BlockFormatControls; });
7054  __webpack_require__.d(__webpack_exports__, "BlockColorsStyleSelector", function() { return /* reexport */ color_style_selector; });
7055  __webpack_require__.d(__webpack_exports__, "BlockEdit", function() { return /* reexport */ block_edit_BlockEdit; });
7056  __webpack_require__.d(__webpack_exports__, "useBlockEditContext", function() { return /* reexport */ useBlockEditContext; });
7057  __webpack_require__.d(__webpack_exports__, "BlockIcon", function() { return /* reexport */ BlockIcon; });
7058  __webpack_require__.d(__webpack_exports__, "BlockNavigationDropdown", function() { return /* reexport */ dropdown; });
7059  __webpack_require__.d(__webpack_exports__, "__experimentalBlockNavigationBlockFill", function() { return /* reexport */ BlockNavigationBlockFill; });
7060  __webpack_require__.d(__webpack_exports__, "__experimentalBlockNavigationEditor", function() { return /* reexport */ BlockNavigationEditor; });
7061  __webpack_require__.d(__webpack_exports__, "__experimentalBlockNavigationTree", function() { return /* reexport */ BlockNavigationTree; });
7062  __webpack_require__.d(__webpack_exports__, "__experimentalBlockVariationPicker", function() { return /* reexport */ block_variation_picker; });
7063  __webpack_require__.d(__webpack_exports__, "__experimentalBlockPatternSetup", function() { return /* reexport */ block_pattern_setup; });
7064  __webpack_require__.d(__webpack_exports__, "__experimentalBlockVariationTransforms", function() { return /* reexport */ block_variation_transforms; });
7065  __webpack_require__.d(__webpack_exports__, "BlockVerticalAlignmentToolbar", function() { return /* reexport */ BlockVerticalAlignmentToolbar; });
7066  __webpack_require__.d(__webpack_exports__, "BlockVerticalAlignmentControl", function() { return /* reexport */ BlockVerticalAlignmentControl; });
7067  __webpack_require__.d(__webpack_exports__, "__experimentalBorderStyleControl", function() { return /* reexport */ BorderStyleControl; });
7068  __webpack_require__.d(__webpack_exports__, "ButtonBlockerAppender", function() { return /* reexport */ button_block_appender; });
7069  __webpack_require__.d(__webpack_exports__, "ColorPalette", function() { return /* reexport */ color_palette; });
7070  __webpack_require__.d(__webpack_exports__, "ColorPaletteControl", function() { return /* reexport */ ColorPaletteControl; });
7071  __webpack_require__.d(__webpack_exports__, "ContrastChecker", function() { return /* reexport */ contrast_checker; });
7072  __webpack_require__.d(__webpack_exports__, "__experimentalDuotoneControl", function() { return /* reexport */ duotone_control; });
7073  __webpack_require__.d(__webpack_exports__, "__experimentalGradientPicker", function() { return /* reexport */ gradient_picker; });
7074  __webpack_require__.d(__webpack_exports__, "__experimentalGradientPickerControl", function() { return /* reexport */ GradientPickerControl; });
7075  __webpack_require__.d(__webpack_exports__, "__experimentalGradientPickerPanel", function() { return /* reexport */ GradientPanel; });
7076  __webpack_require__.d(__webpack_exports__, "__experimentalFontAppearanceControl", function() { return /* reexport */ FontAppearanceControl; });
7077  __webpack_require__.d(__webpack_exports__, "__experimentalFontFamilyControl", function() { return /* reexport */ FontFamilyControl; });
7078  __webpack_require__.d(__webpack_exports__, "__experimentalColorGradientControl", function() { return /* reexport */ control; });
7079  __webpack_require__.d(__webpack_exports__, "__experimentalPanelColorGradientSettings", function() { return /* reexport */ panel_color_gradient_settings; });
7080  __webpack_require__.d(__webpack_exports__, "__experimentalImageSizeControl", function() { return /* reexport */ ImageSizeControl; });
7081  __webpack_require__.d(__webpack_exports__, "InnerBlocks", function() { return /* reexport */ inner_blocks; });
7082  __webpack_require__.d(__webpack_exports__, "__experimentalUseInnerBlocksProps", function() { return /* reexport */ useInnerBlocksProps; });
7083  __webpack_require__.d(__webpack_exports__, "InspectorAdvancedControls", function() { return /* reexport */ inspector_advanced_controls; });
7084  __webpack_require__.d(__webpack_exports__, "InspectorControls", function() { return /* reexport */ inspector_controls; });
7085  __webpack_require__.d(__webpack_exports__, "JustifyToolbar", function() { return /* reexport */ JustifyToolbar; });
7086  __webpack_require__.d(__webpack_exports__, "JustifyContentControl", function() { return /* reexport */ JustifyContentControl; });
7087  __webpack_require__.d(__webpack_exports__, "__experimentalLinkControl", function() { return /* reexport */ link_control; });
7088  __webpack_require__.d(__webpack_exports__, "__experimentalLinkControlSearchInput", function() { return /* reexport */ search_input; });
7089  __webpack_require__.d(__webpack_exports__, "__experimentalLinkControlSearchResults", function() { return /* reexport */ LinkControlSearchResults; });
7090  __webpack_require__.d(__webpack_exports__, "__experimentalLinkControlSearchItem", function() { return /* reexport */ search_item; });
7091  __webpack_require__.d(__webpack_exports__, "LineHeightControl", function() { return /* reexport */ LineHeightControl; });
7092  __webpack_require__.d(__webpack_exports__, "MediaReplaceFlow", function() { return /* reexport */ media_replace_flow; });
7093  __webpack_require__.d(__webpack_exports__, "MediaPlaceholder", function() { return /* reexport */ media_placeholder; });
7094  __webpack_require__.d(__webpack_exports__, "MediaUpload", function() { return /* reexport */ media_upload; });
7095  __webpack_require__.d(__webpack_exports__, "MediaUploadCheck", function() { return /* reexport */ check; });
7096  __webpack_require__.d(__webpack_exports__, "PanelColorSettings", function() { return /* reexport */ panel_color_settings; });
7097  __webpack_require__.d(__webpack_exports__, "PlainText", function() { return /* reexport */ plain_text; });
7098  __webpack_require__.d(__webpack_exports__, "__experimentalResponsiveBlockControl", function() { return /* reexport */ responsive_block_control; });
7099  __webpack_require__.d(__webpack_exports__, "RichText", function() { return /* reexport */ rich_text; });
7100  __webpack_require__.d(__webpack_exports__, "RichTextShortcut", function() { return /* reexport */ RichTextShortcut; });
7101  __webpack_require__.d(__webpack_exports__, "RichTextToolbarButton", function() { return /* reexport */ RichTextToolbarButton; });
7102  __webpack_require__.d(__webpack_exports__, "__unstableRichTextInputEvent", function() { return /* reexport */ input_event_unstableRichTextInputEvent; });
7103  __webpack_require__.d(__webpack_exports__, "ToolSelector", function() { return /* reexport */ tool_selector; });
7104  __webpack_require__.d(__webpack_exports__, "__experimentalUnitControl", function() { return /* reexport */ UnitControl; });
7105  __webpack_require__.d(__webpack_exports__, "URLInput", function() { return /* reexport */ url_input; });
7106  __webpack_require__.d(__webpack_exports__, "URLInputButton", function() { return /* reexport */ url_input_button; });
7107  __webpack_require__.d(__webpack_exports__, "URLPopover", function() { return /* reexport */ url_popover; });
7108  __webpack_require__.d(__webpack_exports__, "__experimentalImageURLInputUI", function() { return /* reexport */ ImageURLInputUI; });
7109  __webpack_require__.d(__webpack_exports__, "withColorContext", function() { return /* reexport */ with_color_context; });
7110  __webpack_require__.d(__webpack_exports__, "__unstableBlockSettingsMenuFirstItem", function() { return /* reexport */ block_settings_menu_first_item; });
7111  __webpack_require__.d(__webpack_exports__, "__unstableInserterMenuExtension", function() { return /* reexport */ inserter_menu_extension; });
7112  __webpack_require__.d(__webpack_exports__, "__experimentalPreviewOptions", function() { return /* reexport */ PreviewOptions; });
7113  __webpack_require__.d(__webpack_exports__, "__experimentalUseResizeCanvas", function() { return /* reexport */ useResizeCanvas; });
7114  __webpack_require__.d(__webpack_exports__, "BlockInspector", function() { return /* reexport */ block_inspector; });
7115  __webpack_require__.d(__webpack_exports__, "BlockList", function() { return /* reexport */ BlockList; });
7116  __webpack_require__.d(__webpack_exports__, "useBlockProps", function() { return /* reexport */ useBlockProps; });
7117  __webpack_require__.d(__webpack_exports__, "__experimentalLayoutStyle", function() { return /* reexport */ LayoutStyle; });
7118  __webpack_require__.d(__webpack_exports__, "BlockMover", function() { return /* reexport */ block_mover; });
7119  __webpack_require__.d(__webpack_exports__, "BlockPreview", function() { return /* reexport */ block_preview; });
7120  __webpack_require__.d(__webpack_exports__, "BlockSelectionClearer", function() { return /* reexport */ BlockSelectionClearer; });
7121  __webpack_require__.d(__webpack_exports__, "__unstableUseBlockSelectionClearer", function() { return /* reexport */ useBlockSelectionClearer; });
7122  __webpack_require__.d(__webpack_exports__, "BlockSettingsMenu", function() { return /* reexport */ block_settings_menu; });
7123  __webpack_require__.d(__webpack_exports__, "BlockSettingsMenuControls", function() { return /* reexport */ block_settings_menu_controls; });
7124  __webpack_require__.d(__webpack_exports__, "BlockTitle", function() { return /* reexport */ BlockTitle; });
7125  __webpack_require__.d(__webpack_exports__, "BlockToolbar", function() { return /* reexport */ BlockToolbar; });
7126  __webpack_require__.d(__webpack_exports__, "BlockTools", function() { return /* reexport */ BlockTools; });
7127  __webpack_require__.d(__webpack_exports__, "CopyHandler", function() { return /* reexport */ copy_handler; });
7128  __webpack_require__.d(__webpack_exports__, "__unstableUseClipboardHandler", function() { return /* reexport */ useClipboardHandler; });
7129  __webpack_require__.d(__webpack_exports__, "DefaultBlockAppender", function() { return /* reexport */ default_block_appender; });
7130  __webpack_require__.d(__webpack_exports__, "__unstableEditorStyles", function() { return /* reexport */ EditorStyles; });
7131  __webpack_require__.d(__webpack_exports__, "Inserter", function() { return /* reexport */ inserter; });
7132  __webpack_require__.d(__webpack_exports__, "__experimentalLibrary", function() { return /* reexport */ library; });
7133  __webpack_require__.d(__webpack_exports__, "__experimentalSearchForm", function() { return /* reexport */ search_form; });
7134  __webpack_require__.d(__webpack_exports__, "BlockEditorKeyboardShortcuts", function() { return /* reexport */ keyboard_shortcuts; });
7135  __webpack_require__.d(__webpack_exports__, "MultiSelectScrollIntoView", function() { return /* reexport */ MultiSelectScrollIntoView; });
7136  __webpack_require__.d(__webpack_exports__, "NavigableToolbar", function() { return /* reexport */ navigable_toolbar; });
7137  __webpack_require__.d(__webpack_exports__, "ObserveTyping", function() { return /* reexport */ observe_typing; });
7138  __webpack_require__.d(__webpack_exports__, "__unstableUseTypingObserver", function() { return /* reexport */ useTypingObserver; });
7139  __webpack_require__.d(__webpack_exports__, "__unstableUseMouseMoveTypingReset", function() { return /* reexport */ useMouseMoveTypingReset; });
7140  __webpack_require__.d(__webpack_exports__, "PreserveScrollInReorder", function() { return /* reexport */ PreserveScrollInReorder; });
7141  __webpack_require__.d(__webpack_exports__, "SkipToSelectedBlock", function() { return /* reexport */ skip_to_selected_block; });
7142  __webpack_require__.d(__webpack_exports__, "Typewriter", function() { return /* reexport */ typewriter; });
7143  __webpack_require__.d(__webpack_exports__, "__unstableUseTypewriter", function() { return /* reexport */ useTypewriter; });
7144  __webpack_require__.d(__webpack_exports__, "Warning", function() { return /* reexport */ warning; });
7145  __webpack_require__.d(__webpack_exports__, "WritingFlow", function() { return /* reexport */ WritingFlow; });
7146  __webpack_require__.d(__webpack_exports__, "__unstableUseCanvasClickRedirect", function() { return /* reexport */ useCanvasClickRedirect; });
7147  __webpack_require__.d(__webpack_exports__, "useBlockDisplayInformation", function() { return /* reexport */ useBlockDisplayInformation; });
7148  __webpack_require__.d(__webpack_exports__, "__unstableIframe", function() { return /* reexport */ iframe; });
7149  __webpack_require__.d(__webpack_exports__, "__experimentalUseNoRecursiveRenders", function() { return /* reexport */ useNoRecursiveRenders; });
7150  __webpack_require__.d(__webpack_exports__, "BlockEditorProvider", function() { return /* reexport */ provider; });
7151  __webpack_require__.d(__webpack_exports__, "__experimentalUseSimulatedMediaQuery", function() { return /* reexport */ useSimulatedMediaQuery; });
7152  __webpack_require__.d(__webpack_exports__, "useSetting", function() { return /* reexport */ useSetting; });
7153  __webpack_require__.d(__webpack_exports__, "transformStyles", function() { return /* reexport */ transform_styles; });
7154  __webpack_require__.d(__webpack_exports__, "validateThemeColors", function() { return /* reexport */ validateThemeColors; });
7155  __webpack_require__.d(__webpack_exports__, "validateThemeGradients", function() { return /* reexport */ validateThemeGradients; });
7156  __webpack_require__.d(__webpack_exports__, "__experimentalGetMatchingVariation", function() { return /* reexport */ __experimentalGetMatchingVariation; });
7157  __webpack_require__.d(__webpack_exports__, "storeConfig", function() { return /* reexport */ storeConfig; });
7158  __webpack_require__.d(__webpack_exports__, "store", function() { return /* reexport */ store; });
7159  __webpack_require__.d(__webpack_exports__, "SETTINGS_DEFAULTS", function() { return /* reexport */ SETTINGS_DEFAULTS; });
7160  
7161  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/selectors.js
7162  var selectors_namespaceObject = {};
7163  __webpack_require__.r(selectors_namespaceObject);
7164  __webpack_require__.d(selectors_namespaceObject, "getBlockName", function() { return selectors_getBlockName; });
7165  __webpack_require__.d(selectors_namespaceObject, "isBlockValid", function() { return selectors_isBlockValid; });
7166  __webpack_require__.d(selectors_namespaceObject, "getBlockAttributes", function() { return selectors_getBlockAttributes; });
7167  __webpack_require__.d(selectors_namespaceObject, "getBlock", function() { return selectors_getBlock; });
7168  __webpack_require__.d(selectors_namespaceObject, "__unstableGetBlockWithoutInnerBlocks", function() { return selectors_unstableGetBlockWithoutInnerBlocks; });
7169  __webpack_require__.d(selectors_namespaceObject, "getBlocks", function() { return selectors_getBlocks; });
7170  __webpack_require__.d(selectors_namespaceObject, "__unstableGetBlockWithBlockTree", function() { return __unstableGetBlockWithBlockTree; });
7171  __webpack_require__.d(selectors_namespaceObject, "__unstableGetBlockTree", function() { return __unstableGetBlockTree; });
7172  __webpack_require__.d(selectors_namespaceObject, "__unstableGetClientIdWithClientIdsTree", function() { return selectors_unstableGetClientIdWithClientIdsTree; });
7173  __webpack_require__.d(selectors_namespaceObject, "__unstableGetClientIdsTree", function() { return selectors_unstableGetClientIdsTree; });
7174  __webpack_require__.d(selectors_namespaceObject, "getClientIdsOfDescendants", function() { return selectors_getClientIdsOfDescendants; });
7175  __webpack_require__.d(selectors_namespaceObject, "getClientIdsWithDescendants", function() { return getClientIdsWithDescendants; });
7176  __webpack_require__.d(selectors_namespaceObject, "getGlobalBlockCount", function() { return selectors_getGlobalBlockCount; });
7177  __webpack_require__.d(selectors_namespaceObject, "getBlocksByClientId", function() { return selectors_getBlocksByClientId; });
7178  __webpack_require__.d(selectors_namespaceObject, "getBlockCount", function() { return selectors_getBlockCount; });
7179  __webpack_require__.d(selectors_namespaceObject, "getSelectionStart", function() { return selectors_getSelectionStart; });
7180  __webpack_require__.d(selectors_namespaceObject, "getSelectionEnd", function() { return selectors_getSelectionEnd; });
7181  __webpack_require__.d(selectors_namespaceObject, "getBlockSelectionStart", function() { return selectors_getBlockSelectionStart; });
7182  __webpack_require__.d(selectors_namespaceObject, "getBlockSelectionEnd", function() { return selectors_getBlockSelectionEnd; });
7183  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlockCount", function() { return selectors_getSelectedBlockCount; });
7184  __webpack_require__.d(selectors_namespaceObject, "hasSelectedBlock", function() { return selectors_hasSelectedBlock; });
7185  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlockClientId", function() { return selectors_getSelectedBlockClientId; });
7186  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlock", function() { return selectors_getSelectedBlock; });
7187  __webpack_require__.d(selectors_namespaceObject, "getBlockRootClientId", function() { return selectors_getBlockRootClientId; });
7188  __webpack_require__.d(selectors_namespaceObject, "getBlockParents", function() { return selectors_getBlockParents; });
7189  __webpack_require__.d(selectors_namespaceObject, "getBlockParentsByBlockName", function() { return getBlockParentsByBlockName; });
7190  __webpack_require__.d(selectors_namespaceObject, "getBlockHierarchyRootClientId", function() { return selectors_getBlockHierarchyRootClientId; });
7191  __webpack_require__.d(selectors_namespaceObject, "getLowestCommonAncestorWithSelectedBlock", function() { return getLowestCommonAncestorWithSelectedBlock; });
7192  __webpack_require__.d(selectors_namespaceObject, "getAdjacentBlockClientId", function() { return getAdjacentBlockClientId; });
7193  __webpack_require__.d(selectors_namespaceObject, "getPreviousBlockClientId", function() { return selectors_getPreviousBlockClientId; });
7194  __webpack_require__.d(selectors_namespaceObject, "getNextBlockClientId", function() { return selectors_getNextBlockClientId; });
7195  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlocksInitialCaretPosition", function() { return selectors_getSelectedBlocksInitialCaretPosition; });
7196  __webpack_require__.d(selectors_namespaceObject, "getSelectedBlockClientIds", function() { return selectors_getSelectedBlockClientIds; });
7197  __webpack_require__.d(selectors_namespaceObject, "getMultiSelectedBlockClientIds", function() { return selectors_getMultiSelectedBlockClientIds; });
7198  __webpack_require__.d(selectors_namespaceObject, "getMultiSelectedBlocks", function() { return selectors_getMultiSelectedBlocks; });
7199  __webpack_require__.d(selectors_namespaceObject, "getFirstMultiSelectedBlockClientId", function() { return selectors_getFirstMultiSelectedBlockClientId; });
7200  __webpack_require__.d(selectors_namespaceObject, "getLastMultiSelectedBlockClientId", function() { return selectors_getLastMultiSelectedBlockClientId; });
7201  __webpack_require__.d(selectors_namespaceObject, "isFirstMultiSelectedBlock", function() { return selectors_isFirstMultiSelectedBlock; });
7202  __webpack_require__.d(selectors_namespaceObject, "isBlockMultiSelected", function() { return selectors_isBlockMultiSelected; });
7203  __webpack_require__.d(selectors_namespaceObject, "isAncestorMultiSelected", function() { return selectors_isAncestorMultiSelected; });
7204  __webpack_require__.d(selectors_namespaceObject, "getMultiSelectedBlocksStartClientId", function() { return selectors_getMultiSelectedBlocksStartClientId; });
7205  __webpack_require__.d(selectors_namespaceObject, "getMultiSelectedBlocksEndClientId", function() { return selectors_getMultiSelectedBlocksEndClientId; });
7206  __webpack_require__.d(selectors_namespaceObject, "getBlockOrder", function() { return selectors_getBlockOrder; });
7207  __webpack_require__.d(selectors_namespaceObject, "getBlockIndex", function() { return selectors_getBlockIndex; });
7208  __webpack_require__.d(selectors_namespaceObject, "isBlockSelected", function() { return selectors_isBlockSelected; });
7209  __webpack_require__.d(selectors_namespaceObject, "hasSelectedInnerBlock", function() { return selectors_hasSelectedInnerBlock; });
7210  __webpack_require__.d(selectors_namespaceObject, "isBlockWithinSelection", function() { return isBlockWithinSelection; });
7211  __webpack_require__.d(selectors_namespaceObject, "hasMultiSelection", function() { return selectors_hasMultiSelection; });
7212  __webpack_require__.d(selectors_namespaceObject, "isMultiSelecting", function() { return selectors_isMultiSelecting; });
7213  __webpack_require__.d(selectors_namespaceObject, "isSelectionEnabled", function() { return selectors_isSelectionEnabled; });
7214  __webpack_require__.d(selectors_namespaceObject, "getBlockMode", function() { return selectors_getBlockMode; });
7215  __webpack_require__.d(selectors_namespaceObject, "isTyping", function() { return selectors_isTyping; });
7216  __webpack_require__.d(selectors_namespaceObject, "isDraggingBlocks", function() { return isDraggingBlocks; });
7217  __webpack_require__.d(selectors_namespaceObject, "getDraggedBlockClientIds", function() { return selectors_getDraggedBlockClientIds; });
7218  __webpack_require__.d(selectors_namespaceObject, "isBlockBeingDragged", function() { return selectors_isBlockBeingDragged; });
7219  __webpack_require__.d(selectors_namespaceObject, "isAncestorBeingDragged", function() { return selectors_isAncestorBeingDragged; });
7220  __webpack_require__.d(selectors_namespaceObject, "isCaretWithinFormattedText", function() { return selectors_isCaretWithinFormattedText; });
7221  __webpack_require__.d(selectors_namespaceObject, "getBlockInsertionPoint", function() { return selectors_getBlockInsertionPoint; });
7222  __webpack_require__.d(selectors_namespaceObject, "isBlockInsertionPointVisible", function() { return selectors_isBlockInsertionPointVisible; });
7223  __webpack_require__.d(selectors_namespaceObject, "isValidTemplate", function() { return selectors_isValidTemplate; });
7224  __webpack_require__.d(selectors_namespaceObject, "getTemplate", function() { return getTemplate; });
7225  __webpack_require__.d(selectors_namespaceObject, "getTemplateLock", function() { return selectors_getTemplateLock; });
7226  __webpack_require__.d(selectors_namespaceObject, "canInsertBlockType", function() { return selectors_canInsertBlockType; });
7227  __webpack_require__.d(selectors_namespaceObject, "canInsertBlocks", function() { return selectors_canInsertBlocks; });
7228  __webpack_require__.d(selectors_namespaceObject, "getInserterItems", function() { return selectors_getInserterItems; });
7229  __webpack_require__.d(selectors_namespaceObject, "getBlockTransformItems", function() { return selectors_getBlockTransformItems; });
7230  __webpack_require__.d(selectors_namespaceObject, "hasInserterItems", function() { return selectors_hasInserterItems; });
7231  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetAllowedBlocks", function() { return selectors_experimentalGetAllowedBlocks; });
7232  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetParsedPattern", function() { return __experimentalGetParsedPattern; });
7233  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetAllowedPatterns", function() { return selectors_experimentalGetAllowedPatterns; });
7234  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetPatternsByBlockTypes", function() { return selectors_experimentalGetPatternsByBlockTypes; });
7235  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetPatternTransformItems", function() { return selectors_experimentalGetPatternTransformItems; });
7236  __webpack_require__.d(selectors_namespaceObject, "getBlockListSettings", function() { return selectors_getBlockListSettings; });
7237  __webpack_require__.d(selectors_namespaceObject, "getSettings", function() { return selectors_getSettings; });
7238  __webpack_require__.d(selectors_namespaceObject, "isLastBlockChangePersistent", function() { return selectors_isLastBlockChangePersistent; });
7239  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetBlockListSettingsForBlocks", function() { return selectors_experimentalGetBlockListSettingsForBlocks; });
7240  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetParsedReusableBlock", function() { return __experimentalGetParsedReusableBlock; });
7241  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetReusableBlockTitle", function() { return selectors_experimentalGetReusableBlockTitle; });
7242  __webpack_require__.d(selectors_namespaceObject, "__unstableIsLastBlockChangeIgnored", function() { return selectors_unstableIsLastBlockChangeIgnored; });
7243  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetLastBlockAttributeChanges", function() { return __experimentalGetLastBlockAttributeChanges; });
7244  __webpack_require__.d(selectors_namespaceObject, "isNavigationMode", function() { return selectors_isNavigationMode; });
7245  __webpack_require__.d(selectors_namespaceObject, "hasBlockMovingClientId", function() { return selectors_hasBlockMovingClientId; });
7246  __webpack_require__.d(selectors_namespaceObject, "didAutomaticChange", function() { return selectors_didAutomaticChange; });
7247  __webpack_require__.d(selectors_namespaceObject, "isBlockHighlighted", function() { return selectors_isBlockHighlighted; });
7248  __webpack_require__.d(selectors_namespaceObject, "areInnerBlocksControlled", function() { return areInnerBlocksControlled; });
7249  __webpack_require__.d(selectors_namespaceObject, "__experimentalGetActiveBlockIdByBlockNames", function() { return __experimentalGetActiveBlockIdByBlockNames; });
7250  __webpack_require__.d(selectors_namespaceObject, "wasBlockJustInserted", function() { return wasBlockJustInserted; });
7251  
7252  // NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/actions.js
7253  var actions_namespaceObject = {};
7254  __webpack_require__.r(actions_namespaceObject);
7255  __webpack_require__.d(actions_namespaceObject, "resetBlocks", function() { return actions_resetBlocks; });
7256  __webpack_require__.d(actions_namespaceObject, "validateBlocksToTemplate", function() { return validateBlocksToTemplate; });
7257  __webpack_require__.d(actions_namespaceObject, "resetSelection", function() { return actions_resetSelection; });
7258  __webpack_require__.d(actions_namespaceObject, "receiveBlocks", function() { return receiveBlocks; });
7259  __webpack_require__.d(actions_namespaceObject, "updateBlockAttributes", function() { return actions_updateBlockAttributes; });
7260  __webpack_require__.d(actions_namespaceObject, "updateBlock", function() { return actions_updateBlock; });
7261  __webpack_require__.d(actions_namespaceObject, "selectBlock", function() { return actions_selectBlock; });
7262  __webpack_require__.d(actions_namespaceObject, "selectPreviousBlock", function() { return selectPreviousBlock; });
7263  __webpack_require__.d(actions_namespaceObject, "selectNextBlock", function() { return selectNextBlock; });
7264  __webpack_require__.d(actions_namespaceObject, "startMultiSelect", function() { return actions_startMultiSelect; });
7265  __webpack_require__.d(actions_namespaceObject, "stopMultiSelect", function() { return actions_stopMultiSelect; });
7266  __webpack_require__.d(actions_namespaceObject, "multiSelect", function() { return actions_multiSelect; });
7267  __webpack_require__.d(actions_namespaceObject, "clearSelectedBlock", function() { return actions_clearSelectedBlock; });
7268  __webpack_require__.d(actions_namespaceObject, "toggleSelection", function() { return actions_toggleSelection; });
7269  __webpack_require__.d(actions_namespaceObject, "replaceBlocks", function() { return actions_replaceBlocks; });
7270  __webpack_require__.d(actions_namespaceObject, "replaceBlock", function() { return actions_replaceBlock; });
7271  __webpack_require__.d(actions_namespaceObject, "moveBlocksDown", function() { return actions_moveBlocksDown; });
7272  __webpack_require__.d(actions_namespaceObject, "moveBlocksUp", function() { return actions_moveBlocksUp; });
7273  __webpack_require__.d(actions_namespaceObject, "moveBlocksToPosition", function() { return actions_moveBlocksToPosition; });
7274  __webpack_require__.d(actions_namespaceObject, "moveBlockToPosition", function() { return actions_moveBlockToPosition; });
7275  __webpack_require__.d(actions_namespaceObject, "insertBlock", function() { return actions_insertBlock; });
7276  __webpack_require__.d(actions_namespaceObject, "insertBlocks", function() { return actions_insertBlocks; });
7277  __webpack_require__.d(actions_namespaceObject, "showInsertionPoint", function() { return actions_showInsertionPoint; });
7278  __webpack_require__.d(actions_namespaceObject, "hideInsertionPoint", function() { return actions_hideInsertionPoint; });
7279  __webpack_require__.d(actions_namespaceObject, "setTemplateValidity", function() { return setTemplateValidity; });
7280  __webpack_require__.d(actions_namespaceObject, "synchronizeTemplate", function() { return synchronizeTemplate; });
7281  __webpack_require__.d(actions_namespaceObject, "mergeBlocks", function() { return actions_mergeBlocks; });
7282  __webpack_require__.d(actions_namespaceObject, "removeBlocks", function() { return actions_removeBlocks; });
7283  __webpack_require__.d(actions_namespaceObject, "removeBlock", function() { return actions_removeBlock; });
7284  __webpack_require__.d(actions_namespaceObject, "replaceInnerBlocks", function() { return actions_replaceInnerBlocks; });
7285  __webpack_require__.d(actions_namespaceObject, "toggleBlockMode", function() { return toggleBlockMode; });
7286  __webpack_require__.d(actions_namespaceObject, "startTyping", function() { return actions_startTyping; });
7287  __webpack_require__.d(actions_namespaceObject, "stopTyping", function() { return actions_stopTyping; });
7288  __webpack_require__.d(actions_namespaceObject, "startDraggingBlocks", function() { return actions_startDraggingBlocks; });
7289  __webpack_require__.d(actions_namespaceObject, "stopDraggingBlocks", function() { return actions_stopDraggingBlocks; });
7290  __webpack_require__.d(actions_namespaceObject, "enterFormattedText", function() { return actions_enterFormattedText; });
7291  __webpack_require__.d(actions_namespaceObject, "exitFormattedText", function() { return actions_exitFormattedText; });
7292  __webpack_require__.d(actions_namespaceObject, "selectionChange", function() { return actions_selectionChange; });
7293  __webpack_require__.d(actions_namespaceObject, "insertDefaultBlock", function() { return actions_insertDefaultBlock; });
7294  __webpack_require__.d(actions_namespaceObject, "updateBlockListSettings", function() { return actions_updateBlockListSettings; });
7295  __webpack_require__.d(actions_namespaceObject, "updateSettings", function() { return actions_updateSettings; });
7296  __webpack_require__.d(actions_namespaceObject, "__unstableSaveReusableBlock", function() { return __unstableSaveReusableBlock; });
7297  __webpack_require__.d(actions_namespaceObject, "__unstableMarkLastChangeAsPersistent", function() { return actions_unstableMarkLastChangeAsPersistent; });
7298  __webpack_require__.d(actions_namespaceObject, "__unstableMarkNextChangeAsNotPersistent", function() { return actions_unstableMarkNextChangeAsNotPersistent; });
7299  __webpack_require__.d(actions_namespaceObject, "__unstableMarkAutomaticChange", function() { return actions_unstableMarkAutomaticChange; });
7300  __webpack_require__.d(actions_namespaceObject, "__unstableMarkAutomaticChangeFinal", function() { return __unstableMarkAutomaticChangeFinal; });
7301  __webpack_require__.d(actions_namespaceObject, "setNavigationMode", function() { return actions_setNavigationMode; });
7302  __webpack_require__.d(actions_namespaceObject, "setBlockMovingClientId", function() { return actions_setBlockMovingClientId; });
7303  __webpack_require__.d(actions_namespaceObject, "duplicateBlocks", function() { return actions_duplicateBlocks; });
7304  __webpack_require__.d(actions_namespaceObject, "insertBeforeBlock", function() { return actions_insertBeforeBlock; });
7305  __webpack_require__.d(actions_namespaceObject, "insertAfterBlock", function() { return actions_insertAfterBlock; });
7306  __webpack_require__.d(actions_namespaceObject, "toggleBlockHighlight", function() { return actions_toggleBlockHighlight; });
7307  __webpack_require__.d(actions_namespaceObject, "flashBlock", function() { return actions_flashBlock; });
7308  __webpack_require__.d(actions_namespaceObject, "setHasControlledInnerBlocks", function() { return actions_setHasControlledInnerBlocks; });
7309  
7310  // EXTERNAL MODULE: external ["wp","richText"]
7311  var external_wp_richText_ = __webpack_require__("qRz9");
7312  
7313  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
7314  var esm_extends = __webpack_require__("wx14");
7315  
7316  // EXTERNAL MODULE: external ["wp","element"]
7317  var external_wp_element_ = __webpack_require__("GRId");
7318  
7319  // EXTERNAL MODULE: ./node_modules/classnames/index.js
7320  var classnames = __webpack_require__("TSYQ");
7321  var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
7322  
7323  // EXTERNAL MODULE: external "lodash"
7324  var external_lodash_ = __webpack_require__("YLtl");
7325  
7326  // EXTERNAL MODULE: external ["wp","compose"]
7327  var external_wp_compose_ = __webpack_require__("K9lf");
7328  
7329  // EXTERNAL MODULE: external ["wp","hooks"]
7330  var external_wp_hooks_ = __webpack_require__("g56x");
7331  
7332  // EXTERNAL MODULE: external ["wp","blocks"]
7333  var external_wp_blocks_ = __webpack_require__("HSyU");
7334  
7335  // EXTERNAL MODULE: external ["wp","components"]
7336  var external_wp_components_ = __webpack_require__("tI+e");
7337  
7338  // EXTERNAL MODULE: external ["wp","data"]
7339  var external_wp_data_ = __webpack_require__("1ZqX");
7340  
7341  // CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/context.js
7342  /**
7343   * WordPress dependencies
7344   */
7345  
7346  const Context = Object(external_wp_element_["createContext"])({
7347    name: '',
7348    isSelected: false,
7349    clientId: null
7350  });
7351  const {
7352    Provider: context_Provider
7353  } = Context;
7354  
7355  /**
7356   * A hook that returns the block edit context.
7357   *
7358   * @return {Object} Block edit context
7359   */
7360  
7361  function useBlockEditContext() {
7362    return Object(external_wp_element_["useContext"])(Context);
7363  }
7364  
7365  // EXTERNAL MODULE: external ["wp","i18n"]
7366  var external_wp_i18n_ = __webpack_require__("l3Sj");
7367  
7368  // CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/defaults.js
7369  /**
7370   * WordPress dependencies
7371   */
7372  
7373  const PREFERENCES_DEFAULTS = {
7374    insertUsage: {}
7375  };
7376  /**
7377   * The default editor settings
7378   *
7379   * @typedef {Object} SETTINGS_DEFAULT
7380   * @property {boolean} alignWide Enable/Disable Wide/Full Alignments
7381   * @property {boolean} supportsLayout Enable/disable layouts support in container blocks.
7382   * @property {boolean} imageEditing Image Editing settings set to false to disable.
7383   * @property {Array} imageSizes Available image sizes
7384   * @property {number} maxWidth Max width to constraint resizing
7385   * @property {boolean|Array} allowedBlockTypes Allowed block types
7386   * @property {boolean} hasFixedToolbar Whether or not the editor toolbar is fixed
7387   * @property {boolean} focusMode Whether the focus mode is enabled or not
7388   * @property {Array} styles Editor Styles
7389   * @property {boolean} keepCaretInsideBlock Whether caret should move between blocks in edit mode
7390   * @property {string} bodyPlaceholder Empty post placeholder
7391   * @property {string} titlePlaceholder Empty title placeholder
7392   * @property {boolean} codeEditingEnabled Whether or not the user can switch to the code editor
7393   * @property {boolean} __experimentalCanUserUseUnfilteredHTML Whether the user should be able to use unfiltered HTML or the HTML should be filtered e.g., to remove elements considered insecure like iframes.
7394   * @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory
7395   * @property {Array} __experimentalBlockPatterns Array of objects representing the block patterns
7396   * @property {Array} __experimentalBlockPatternCategories Array of objects representing the block pattern categories
7397   */
7398  
7399  const SETTINGS_DEFAULTS = {
7400    alignWide: false,
7401    supportsLayout: true,
7402    // colors setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.
7403    // The setting is only kept for backward compatibility purposes.
7404    colors: [{
7405      name: Object(external_wp_i18n_["__"])('Black'),
7406      slug: 'black',
7407      color: '#000000'
7408    }, {
7409      name: Object(external_wp_i18n_["__"])('Cyan bluish gray'),
7410      slug: 'cyan-bluish-gray',
7411      color: '#abb8c3'
7412    }, {
7413      name: Object(external_wp_i18n_["__"])('White'),
7414      slug: 'white',
7415      color: '#ffffff'
7416    }, {
7417      name: Object(external_wp_i18n_["__"])('Pale pink'),
7418      slug: 'pale-pink',
7419      color: '#f78da7'
7420    }, {
7421      name: Object(external_wp_i18n_["__"])('Vivid red'),
7422      slug: 'vivid-red',
7423      color: '#cf2e2e'
7424    }, {
7425      name: Object(external_wp_i18n_["__"])('Luminous vivid orange'),
7426      slug: 'luminous-vivid-orange',
7427      color: '#ff6900'
7428    }, {
7429      name: Object(external_wp_i18n_["__"])('Luminous vivid amber'),
7430      slug: 'luminous-vivid-amber',
7431      color: '#fcb900'
7432    }, {
7433      name: Object(external_wp_i18n_["__"])('Light green cyan'),
7434      slug: 'light-green-cyan',
7435      color: '#7bdcb5'
7436    }, {
7437      name: Object(external_wp_i18n_["__"])('Vivid green cyan'),
7438      slug: 'vivid-green-cyan',
7439      color: '#00d084'
7440    }, {
7441      name: Object(external_wp_i18n_["__"])('Pale cyan blue'),
7442      slug: 'pale-cyan-blue',
7443      color: '#8ed1fc'
7444    }, {
7445      name: Object(external_wp_i18n_["__"])('Vivid cyan blue'),
7446      slug: 'vivid-cyan-blue',
7447      color: '#0693e3'
7448    }, {
7449      name: Object(external_wp_i18n_["__"])('Vivid purple'),
7450      slug: 'vivid-purple',
7451      color: '#9b51e0'
7452    }],
7453    // fontSizes setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.
7454    // The setting is only kept for backward compatibility purposes.
7455    fontSizes: [{
7456      name: Object(external_wp_i18n_["_x"])('Small', 'font size name'),
7457      size: 13,
7458      slug: 'small'
7459    }, {
7460      name: Object(external_wp_i18n_["_x"])('Normal', 'font size name'),
7461      size: 16,
7462      slug: 'normal'
7463    }, {
7464      name: Object(external_wp_i18n_["_x"])('Medium', 'font size name'),
7465      size: 20,
7466      slug: 'medium'
7467    }, {
7468      name: Object(external_wp_i18n_["_x"])('Large', 'font size name'),
7469      size: 36,
7470      slug: 'large'
7471    }, {
7472      name: Object(external_wp_i18n_["_x"])('Huge', 'font size name'),
7473      size: 42,
7474      slug: 'huge'
7475    }],
7476    // Image default size slug.
7477    imageDefaultSize: 'large',
7478    imageSizes: [{
7479      slug: 'thumbnail',
7480      name: Object(external_wp_i18n_["__"])('Thumbnail')
7481    }, {
7482      slug: 'medium',
7483      name: Object(external_wp_i18n_["__"])('Medium')
7484    }, {
7485      slug: 'large',
7486      name: Object(external_wp_i18n_["__"])('Large')
7487    }, {
7488      slug: 'full',
7489      name: Object(external_wp_i18n_["__"])('Full Size')
7490    }],
7491    // Allow plugin to disable Image Editor if need be
7492    imageEditing: true,
7493    // This is current max width of the block inner area
7494    // It's used to constraint image resizing and this value could be overridden later by themes
7495    maxWidth: 580,
7496    // Allowed block types for the editor, defaulting to true (all supported).
7497    allowedBlockTypes: true,
7498    // Maximum upload size in bytes allowed for the site.
7499    maxUploadFileSize: 0,
7500    // List of allowed mime types and file extensions.
7501    allowedMimeTypes: null,
7502    __experimentalCanUserUseUnfilteredHTML: false,
7503    __experimentalBlockDirectory: false,
7504    __mobileEnablePageTemplates: false,
7505    __experimentalBlockPatterns: [],
7506    __experimentalBlockPatternCategories: [],
7507    __experimentalSpotlightEntityBlocks: [],
7508    // gradients setting is not used anymore now defaults are passed from theme.json on the server and core has its own defaults.
7509    // The setting is only kept for backward compatibility purposes.
7510    gradients: [{
7511      name: Object(external_wp_i18n_["__"])('Vivid cyan blue to vivid purple'),
7512      gradient: 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
7513      slug: 'vivid-cyan-blue-to-vivid-purple'
7514    }, {
7515      name: Object(external_wp_i18n_["__"])('Light green cyan to vivid green cyan'),
7516      gradient: 'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)',
7517      slug: 'light-green-cyan-to-vivid-green-cyan'
7518    }, {
7519      name: Object(external_wp_i18n_["__"])('Luminous vivid amber to luminous vivid orange'),
7520      gradient: 'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)',
7521      slug: 'luminous-vivid-amber-to-luminous-vivid-orange'
7522    }, {
7523      name: Object(external_wp_i18n_["__"])('Luminous vivid orange to vivid red'),
7524      gradient: 'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)',
7525      slug: 'luminous-vivid-orange-to-vivid-red'
7526    }, {
7527      name: Object(external_wp_i18n_["__"])('Very light gray to cyan bluish gray'),
7528      gradient: 'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)',
7529      slug: 'very-light-gray-to-cyan-bluish-gray'
7530    }, {
7531      name: Object(external_wp_i18n_["__"])('Cool to warm spectrum'),
7532      gradient: 'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)',
7533      slug: 'cool-to-warm-spectrum'
7534    }, {
7535      name: Object(external_wp_i18n_["__"])('Blush light purple'),
7536      gradient: 'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)',
7537      slug: 'blush-light-purple'
7538    }, {
7539      name: Object(external_wp_i18n_["__"])('Blush bordeaux'),
7540      gradient: 'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)',
7541      slug: 'blush-bordeaux'
7542    }, {
7543      name: Object(external_wp_i18n_["__"])('Luminous dusk'),
7544      gradient: 'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)',
7545      slug: 'luminous-dusk'
7546    }, {
7547      name: Object(external_wp_i18n_["__"])('Pale ocean'),
7548      gradient: 'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)',
7549      slug: 'pale-ocean'
7550    }, {
7551      name: Object(external_wp_i18n_["__"])('Electric grass'),
7552      gradient: 'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)',
7553      slug: 'electric-grass'
7554    }, {
7555      name: Object(external_wp_i18n_["__"])('Midnight'),
7556      gradient: 'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)',
7557      slug: 'midnight'
7558    }]
7559  };
7560  
7561  // CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/array.js
7562  /**
7563   * External dependencies
7564   */
7565  
7566  /**
7567   * Insert one or multiple elements into a given position of an array.
7568   *
7569   * @param {Array}  array    Source array.
7570   * @param {*}      elements Elements to insert.
7571   * @param {number} index    Insert Position.
7572   *
7573   * @return {Array}          Result.
7574   */
7575  
7576  function insertAt(array, elements, index) {
7577    return [...array.slice(0, index), ...Object(external_lodash_["castArray"])(elements), ...array.slice(index)];
7578  }
7579  /**
7580   * Moves an element in an array.
7581   *
7582   * @param {Array}  array Source array.
7583   * @param {number} from  Source index.
7584   * @param {number} to    Destination index.
7585   * @param {number} count Number of elements to move.
7586   *
7587   * @return {Array}       Result.
7588   */
7589  
7590  function moveTo(array, from, to, count = 1) {
7591    const withoutMovedElements = [...array];
7592    withoutMovedElements.splice(from, count);
7593    return insertAt(withoutMovedElements, array.slice(from, from + count), to);
7594  }
7595  
7596  // CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/reducer.js
7597  /**
7598   * External dependencies
7599   */
7600  
7601  /**
7602   * WordPress dependencies
7603   */
7604  
7605  
7606  
7607  /**
7608   * Internal dependencies
7609   */
7610  
7611  
7612  
7613  /**
7614   * Given an array of blocks, returns an object where each key is a nesting
7615   * context, the value of which is an array of block client IDs existing within
7616   * that nesting context.
7617   *
7618   * @param {Array}   blocks       Blocks to map.
7619   * @param {?string} rootClientId Assumed root client ID.
7620   *
7621   * @return {Object} Block order map object.
7622   */
7623  
7624  function mapBlockOrder(blocks, rootClientId = '') {
7625    const result = {
7626      [rootClientId]: []
7627    };
7628    blocks.forEach(block => {
7629      const {
7630        clientId,
7631        innerBlocks
7632      } = block;
7633      result[rootClientId].push(clientId);
7634      Object.assign(result, mapBlockOrder(innerBlocks, clientId));
7635    });
7636    return result;
7637  }
7638  /**
7639   * Given an array of blocks, returns an object where each key contains
7640   * the clientId of the block and the value is the parent of the block.
7641   *
7642   * @param {Array}   blocks       Blocks to map.
7643   * @param {?string} rootClientId Assumed root client ID.
7644   *
7645   * @return {Object} Block order map object.
7646   */
7647  
7648  
7649  function mapBlockParents(blocks, rootClientId = '') {
7650    return blocks.reduce((result, block) => Object.assign(result, {
7651      [block.clientId]: rootClientId
7652    }, mapBlockParents(block.innerBlocks, block.clientId)), {});
7653  }
7654  /**
7655   * Helper method to iterate through all blocks, recursing into inner blocks,
7656   * applying a transformation function to each one.
7657   * Returns a flattened object with the transformed blocks.
7658   *
7659   * @param {Array} blocks Blocks to flatten.
7660   * @param {Function} transform Transforming function to be applied to each block.
7661   *
7662   * @return {Object} Flattened object.
7663   */
7664  
7665  
7666  function flattenBlocks(blocks, transform = external_lodash_["identity"]) {
7667    const result = {};
7668    const stack = [...blocks];
7669  
7670    while (stack.length) {
7671      const {
7672        innerBlocks,
7673        ...block
7674      } = stack.shift();
7675      stack.push(...innerBlocks);
7676      result[block.clientId] = transform(block);
7677    }
7678  
7679    return result;
7680  }
7681  /**
7682   * Given an array of blocks, returns an object containing all blocks, without
7683   * attributes, recursing into inner blocks. Keys correspond to the block client
7684   * ID, the value of which is the attributes object.
7685   *
7686   * @param {Array} blocks Blocks to flatten.
7687   *
7688   * @return {Object} Flattened block attributes object.
7689   */
7690  
7691  
7692  function getFlattenedBlocksWithoutAttributes(blocks) {
7693    return flattenBlocks(blocks, block => Object(external_lodash_["omit"])(block, 'attributes'));
7694  }
7695  /**
7696   * Given an array of blocks, returns an object containing all block attributes,
7697   * recursing into inner blocks. Keys correspond to the block client ID, the
7698   * value of which is the attributes object.
7699   *
7700   * @param {Array} blocks Blocks to flatten.
7701   *
7702   * @return {Object} Flattened block attributes object.
7703   */
7704  
7705  
7706  function getFlattenedBlockAttributes(blocks) {
7707    return flattenBlocks(blocks, block => block.attributes);
7708  }
7709  /**
7710   * Given a block order map object, returns *all* of the block client IDs that are
7711   * a descendant of the given root client ID.
7712   *
7713   * Calling this with `rootClientId` set to `''` results in a list of client IDs
7714   * that are in the post. That is, it excludes blocks like fetched reusable
7715   * blocks which are stored into state but not visible. It also excludes
7716   * InnerBlocks controllers, like template parts.
7717   *
7718   * It is important to exclude the full inner block controller and not just the
7719   * inner blocks because in many cases, we need to persist the previous value of
7720   * an inner block controller. To do so, it must be excluded from the list of
7721   * client IDs which are considered to be part of the top-level entity.
7722   *
7723   * @param {Object}  blocksOrder  Object that maps block client IDs to a list of
7724   *                               nested block client IDs.
7725   * @param {?string} rootClientId The root client ID to search. Defaults to ''.
7726   * @param {?Object} controlledInnerBlocks The InnerBlocks controller state.
7727   *
7728   * @return {Array} List of descendant client IDs.
7729   */
7730  
7731  
7732  function getNestedBlockClientIds(blocksOrder, rootClientId = '', controlledInnerBlocks = {}) {
7733    return Object(external_lodash_["reduce"])(blocksOrder[rootClientId], (result, clientId) => {
7734      if (!!controlledInnerBlocks[clientId]) {
7735        return result;
7736      }
7737  
7738      return [...result, clientId, ...getNestedBlockClientIds(blocksOrder, clientId)];
7739    }, []);
7740  }
7741  /**
7742   * Returns an object against which it is safe to perform mutating operations,
7743   * given the original object and its current working copy.
7744   *
7745   * @param {Object} original Original object.
7746   * @param {Object} working  Working object.
7747   *
7748   * @return {Object} Mutation-safe object.
7749   */
7750  
7751  
7752  function getMutateSafeObject(original, working) {
7753    if (original === working) {
7754      return { ...original
7755      };
7756    }
7757  
7758    return working;
7759  }
7760  /**
7761   * Returns true if the two object arguments have the same keys, or false
7762   * otherwise.
7763   *
7764   * @param {Object} a First object.
7765   * @param {Object} b Second object.
7766   *
7767   * @return {boolean} Whether the two objects have the same keys.
7768   */
7769  
7770  
7771  function hasSameKeys(a, b) {
7772    return Object(external_lodash_["isEqual"])(Object(external_lodash_["keys"])(a), Object(external_lodash_["keys"])(b));
7773  }
7774  /**
7775   * Returns true if, given the currently dispatching action and the previously
7776   * dispatched action, the two actions are updating the same block attribute, or
7777   * false otherwise.
7778   *
7779   * @param {Object} action     Currently dispatching action.
7780   * @param {Object} lastAction Previously dispatched action.
7781   *
7782   * @return {boolean} Whether actions are updating the same block attribute.
7783   */
7784  
7785  function isUpdatingSameBlockAttribute(action, lastAction) {
7786    return action.type === 'UPDATE_BLOCK_ATTRIBUTES' && lastAction !== undefined && lastAction.type === 'UPDATE_BLOCK_ATTRIBUTES' && Object(external_lodash_["isEqual"])(action.clientIds, lastAction.clientIds) && hasSameKeys(action.attributes, lastAction.attributes);
7787  }
7788  /**
7789   * Utility returning an object with an empty object value for each key.
7790   *
7791   * @param {Array} objectKeys Keys to fill.
7792   * @return {Object} Object filled with empty object as values for each clientId.
7793   */
7794  
7795  const fillKeysWithEmptyObject = objectKeys => {
7796    return objectKeys.reduce((result, key) => {
7797      result[key] = {};
7798      return result;
7799    }, {});
7800  };
7801  /**
7802   * Higher-order reducer intended to compute a cache key for each block in the post.
7803   * A new instance of the cache key (empty object) is created each time the block object
7804   * needs to be refreshed (for any change in the block or its children).
7805   *
7806   * @param {Function} reducer Original reducer function.
7807   *
7808   * @return {Function} Enhanced reducer function.
7809   */
7810  
7811  
7812  const withBlockCache = reducer => (state = {}, action) => {
7813    const newState = reducer(state, action);
7814  
7815    if (newState === state) {
7816      return state;
7817    }
7818  
7819    newState.cache = state.cache ? state.cache : {};
7820    /**
7821     * For each clientId provided, traverses up parents, adding the provided clientIds
7822     * and each parent's clientId to the returned array.
7823     *
7824     * When calling this function consider that it uses the old state, so any state
7825     * modifications made by the `reducer` will not be present.
7826     *
7827     * @param {Array} clientIds an Array of block clientIds.
7828     *
7829     * @return {Array} The provided clientIds and all of their parent clientIds.
7830     */
7831  
7832    const getBlocksWithParentsClientIds = clientIds => {
7833      return clientIds.reduce((result, clientId) => {
7834        let current = clientId;
7835  
7836        do {
7837          result.push(current);
7838          current = state.parents[current];
7839        } while (current && !state.controlledInnerBlocks[current]);
7840  
7841        return result;
7842      }, []);
7843    };
7844  
7845    switch (action.type) {
7846      case 'RESET_BLOCKS':
7847        newState.cache = Object(external_lodash_["mapValues"])(flattenBlocks(action.blocks), () => ({}));
7848        break;
7849  
7850      case 'RECEIVE_BLOCKS':
7851      case 'INSERT_BLOCKS':
7852        {
7853          const updatedBlockUids = Object(external_lodash_["keys"])(flattenBlocks(action.blocks));
7854  
7855          if (action.rootClientId && !state.controlledInnerBlocks[action.rootClientId]) {
7856            updatedBlockUids.push(action.rootClientId);
7857          }
7858  
7859          newState.cache = { ...newState.cache,
7860            ...fillKeysWithEmptyObject(getBlocksWithParentsClientIds(updatedBlockUids))
7861          };
7862          break;
7863        }
7864  
7865      case 'UPDATE_BLOCK':
7866        newState.cache = { ...newState.cache,
7867          ...fillKeysWithEmptyObject(getBlocksWithParentsClientIds([action.clientId]))
7868        };
7869        break;
7870  
7871      case 'UPDATE_BLOCK_ATTRIBUTES':
7872        newState.cache = { ...newState.cache,
7873          ...fillKeysWithEmptyObject(getBlocksWithParentsClientIds(action.clientIds))
7874        };
7875        break;
7876  
7877      case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN':
7878        const parentClientIds = fillKeysWithEmptyObject(getBlocksWithParentsClientIds(action.replacedClientIds));
7879        newState.cache = { ...Object(external_lodash_["omit"])(newState.cache, action.replacedClientIds),
7880          ...Object(external_lodash_["omit"])(parentClientIds, action.replacedClientIds),
7881          ...fillKeysWithEmptyObject(Object(external_lodash_["keys"])(flattenBlocks(action.blocks)))
7882        };
7883        break;
7884  
7885      case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN':
7886        newState.cache = { ...Object(external_lodash_["omit"])(newState.cache, action.removedClientIds),
7887          ...fillKeysWithEmptyObject(Object(external_lodash_["difference"])(getBlocksWithParentsClientIds(action.clientIds), action.clientIds))
7888        };
7889        break;
7890  
7891      case 'MOVE_BLOCKS_TO_POSITION':
7892        {
7893          const updatedBlockUids = [...action.clientIds];
7894  
7895          if (action.fromRootClientId) {
7896            updatedBlockUids.push(action.fromRootClientId);
7897          }
7898  
7899          if (action.toRootClientId) {
7900            updatedBlockUids.push(action.toRootClientId);
7901          }
7902  
7903          newState.cache = { ...newState.cache,
7904            ...fillKeysWithEmptyObject(getBlocksWithParentsClientIds(updatedBlockUids))
7905          };
7906          break;
7907        }
7908  
7909      case 'MOVE_BLOCKS_UP':
7910      case 'MOVE_BLOCKS_DOWN':
7911        {
7912          const updatedBlockUids = [];
7913  
7914          if (action.rootClientId) {
7915            updatedBlockUids.push(action.rootClientId);
7916          }
7917  
7918          newState.cache = { ...newState.cache,
7919            ...fillKeysWithEmptyObject(getBlocksWithParentsClientIds(updatedBlockUids))
7920          };
7921          break;
7922        }
7923  
7924      case 'SAVE_REUSABLE_BLOCK_SUCCESS':
7925        {
7926          const updatedBlockUids = Object(external_lodash_["keys"])(Object(external_lodash_["omitBy"])(newState.attributes, (attributes, clientId) => {
7927            return newState.byClientId[clientId].name !== 'core/block' || attributes.ref !== action.updatedId;
7928          }));
7929          newState.cache = { ...newState.cache,
7930            ...fillKeysWithEmptyObject(getBlocksWithParentsClientIds(updatedBlockUids))
7931          };
7932        }
7933    }
7934  
7935    return newState;
7936  };
7937  /**
7938   * Higher-order reducer intended to augment the blocks reducer, assigning an
7939   * `isPersistentChange` property value corresponding to whether a change in
7940   * state can be considered as persistent. All changes are considered persistent
7941   * except when updating the same block attribute as in the previous action.
7942   *
7943   * @param {Function} reducer Original reducer function.
7944   *
7945   * @return {Function} Enhanced reducer function.
7946   */
7947  
7948  
7949  function withPersistentBlockChange(reducer) {
7950    let lastAction;
7951    let markNextChangeAsNotPersistent = false;
7952    return (state, action) => {
7953      let nextState = reducer(state, action);
7954      const isExplicitPersistentChange = action.type === 'MARK_LAST_CHANGE_AS_PERSISTENT' || markNextChangeAsNotPersistent; // Defer to previous state value (or default) unless changing or
7955      // explicitly marking as persistent.
7956  
7957      if (state === nextState && !isExplicitPersistentChange) {
7958        var _state$isPersistentCh;
7959  
7960        markNextChangeAsNotPersistent = action.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT';
7961        const nextIsPersistentChange = (_state$isPersistentCh = state === null || state === void 0 ? void 0 : state.isPersistentChange) !== null && _state$isPersistentCh !== void 0 ? _state$isPersistentCh : true;
7962  
7963        if (state.isPersistentChange === nextIsPersistentChange) {
7964          return state;
7965        }
7966  
7967        return { ...nextState,
7968          isPersistentChange: nextIsPersistentChange
7969        };
7970      }
7971  
7972      nextState = { ...nextState,
7973        isPersistentChange: isExplicitPersistentChange ? !markNextChangeAsNotPersistent : !isUpdatingSameBlockAttribute(action, lastAction)
7974      }; // In comparing against the previous action, consider only those which
7975      // would have qualified as one which would have been ignored or not
7976      // have resulted in a changed state.
7977  
7978      lastAction = action;
7979      markNextChangeAsNotPersistent = action.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT';
7980      return nextState;
7981    };
7982  }
7983  /**
7984   * Higher-order reducer intended to augment the blocks reducer, assigning an
7985   * `isIgnoredChange` property value corresponding to whether a change in state
7986   * can be considered as ignored. A change is considered ignored when the result
7987   * of an action not incurred by direct user interaction.
7988   *
7989   * @param {Function} reducer Original reducer function.
7990   *
7991   * @return {Function} Enhanced reducer function.
7992   */
7993  
7994  
7995  function withIgnoredBlockChange(reducer) {
7996    /**
7997     * Set of action types for which a blocks state change should be ignored.
7998     *
7999     * @type {Set}
8000     */
8001    const IGNORED_ACTION_TYPES = new Set(['RECEIVE_BLOCKS']);
8002    return (state, action) => {
8003      const nextState = reducer(state, action);
8004  
8005      if (nextState !== state) {
8006        nextState.isIgnoredChange = IGNORED_ACTION_TYPES.has(action.type);
8007      }
8008  
8009      return nextState;
8010    };
8011  }
8012  /**
8013   * Higher-order reducer targeting the combined blocks reducer, augmenting
8014   * block client IDs in remove action to include cascade of inner blocks.
8015   *
8016   * @param {Function} reducer Original reducer function.
8017   *
8018   * @return {Function} Enhanced reducer function.
8019   */
8020  
8021  
8022  const withInnerBlocksRemoveCascade = reducer => (state, action) => {
8023    // Gets all children which need to be removed.
8024    const getAllChildren = clientIds => {
8025      let result = clientIds;
8026  
8027      for (let i = 0; i < result.length; i++) {
8028        if (!state.order[result[i]] || action.keepControlledInnerBlocks && action.keepControlledInnerBlocks[result[i]]) {
8029          continue;
8030        }
8031  
8032        if (result === clientIds) {
8033          result = [...result];
8034        }
8035  
8036        result.push(...state.order[result[i]]);
8037      }
8038  
8039      return result;
8040    };
8041  
8042    if (state) {
8043      switch (action.type) {
8044        case 'REMOVE_BLOCKS':
8045          action = { ...action,
8046            type: 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN',
8047            removedClientIds: getAllChildren(action.clientIds)
8048          };
8049          break;
8050  
8051        case 'REPLACE_BLOCKS':
8052          action = { ...action,
8053            type: 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN',
8054            replacedClientIds: getAllChildren(action.clientIds)
8055          };
8056          break;
8057      }
8058    }
8059  
8060    return reducer(state, action);
8061  };
8062  /**
8063   * Higher-order reducer which targets the combined blocks reducer and handles
8064   * the `RESET_BLOCKS` action. When dispatched, this action will replace all
8065   * blocks that exist in the post, leaving blocks that exist only in state (e.g.
8066   * reusable blocks and blocks controlled by inner blocks controllers) alone.
8067   *
8068   * @param {Function} reducer Original reducer function.
8069   *
8070   * @return {Function} Enhanced reducer function.
8071   */
8072  
8073  
8074  const withBlockReset = reducer => (state, action) => {
8075    if (state && action.type === 'RESET_BLOCKS') {
8076      /**
8077       * A list of client IDs associated with the top level entity (like a
8078       * post or template). It excludes the client IDs of blocks associated
8079       * with other entities, like inner block controllers or reusable blocks.
8080       */
8081      const visibleClientIds = getNestedBlockClientIds(state.order, '', state.controlledInnerBlocks); // pickBy returns only the truthy values from controlledInnerBlocks
8082  
8083      const controlledInnerBlocks = Object.keys(Object(external_lodash_["pickBy"])(state.controlledInnerBlocks));
8084      /**
8085       * Each update operation consists of a few parts:
8086       * 1. First, the client IDs associated with the top level entity are
8087       *    removed from the existing state key, leaving in place controlled
8088       *    blocks (like reusable blocks and inner block controllers).
8089       * 2. Second, the blocks from the reset action are used to calculate the
8090       *    individual state keys. This will re-populate the clientIDs which
8091       *    were removed in step 1.
8092       * 3. In some cases, we remove the recalculated inner block controllers,
8093       *    letting their old values persist. We need to do this because the
8094       *    reset block action from a top-level entity is not aware of any
8095       *    inner blocks inside InnerBlock controllers. So if the new values
8096       *    were used, it would not take into account the existing InnerBlocks
8097       *    which already exist in the state for inner block controllers. For
8098       *    example, `attributes` uses the newly computed value for controllers
8099       *    since attributes are stored in the top-level entity. But `order`
8100       *    uses the previous value for the controllers since the new value
8101       *    does not include the order of controlled inner blocks. So if the
8102       *    new value was used, template parts would disappear from the editor
8103       *    whenever you try to undo a change in the top level entity.
8104       */
8105  
8106      return { ...state,
8107        byClientId: { ...Object(external_lodash_["omit"])(state.byClientId, visibleClientIds),
8108          ...getFlattenedBlocksWithoutAttributes(action.blocks)
8109        },
8110        attributes: { ...Object(external_lodash_["omit"])(state.attributes, visibleClientIds),
8111          ...getFlattenedBlockAttributes(action.blocks)
8112        },
8113        order: { ...Object(external_lodash_["omit"])(state.order, visibleClientIds),
8114          ...Object(external_lodash_["omit"])(mapBlockOrder(action.blocks), controlledInnerBlocks)
8115        },
8116        parents: { ...Object(external_lodash_["omit"])(state.parents, visibleClientIds),
8117          ...mapBlockParents(action.blocks)
8118        },
8119        cache: { ...Object(external_lodash_["omit"])(state.cache, visibleClientIds),
8120          ...Object(external_lodash_["omit"])(Object(external_lodash_["mapValues"])(flattenBlocks(action.blocks), () => ({})), controlledInnerBlocks)
8121        }
8122      };
8123    }
8124  
8125    return reducer(state, action);
8126  };
8127  /**
8128   * Higher-order reducer which targets the combined blocks reducer and handles
8129   * the `REPLACE_INNER_BLOCKS` action. When dispatched, this action the state
8130