[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

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

   1  "use strict";
   2  var wp;
   3  (wp ||= {}).data = (() => {
   4    var __create = Object.create;
   5    var __defProp = Object.defineProperty;
   6    var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
   7    var __getOwnPropNames = Object.getOwnPropertyNames;
   8    var __getProtoOf = Object.getPrototypeOf;
   9    var __hasOwnProp = Object.prototype.hasOwnProperty;
  10    var __commonJS = (cb, mod) => function __require() {
  11      return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
  12    };
  13    var __export = (target, all) => {
  14      for (var name in all)
  15        __defProp(target, name, { get: all[name], enumerable: true });
  16    };
  17    var __copyProps = (to, from, except, desc) => {
  18      if (from && typeof from === "object" || typeof from === "function") {
  19        for (let key of __getOwnPropNames(from))
  20          if (!__hasOwnProp.call(to, key) && key !== except)
  21            __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  22      }
  23      return to;
  24    };
  25    var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  26      // If the importer is in node compatibility mode or this is not an ESM
  27      // file that has been converted to a CommonJS file using a Babel-
  28      // compatible transform (i.e. "__esModule" has not been set), then set
  29      // "default" to the CommonJS "module.exports" for node compatibility.
  30      isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  31      mod
  32    ));
  33    var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  34  
  35    // package-external:@wordpress/deprecated
  36    var require_deprecated = __commonJS({
  37      "package-external:@wordpress/deprecated"(exports, module) {
  38        module.exports = window.wp.deprecated;
  39      }
  40    });
  41  
  42    // node_modules/equivalent-key-map/equivalent-key-map.js
  43    var require_equivalent_key_map = __commonJS({
  44      "node_modules/equivalent-key-map/equivalent-key-map.js"(exports, module) {
  45        "use strict";
  46        function _typeof(obj) {
  47          if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
  48            _typeof = function(obj2) {
  49              return typeof obj2;
  50            };
  51          } else {
  52            _typeof = function(obj2) {
  53              return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
  54            };
  55          }
  56          return _typeof(obj);
  57        }
  58        function _classCallCheck(instance, Constructor) {
  59          if (!(instance instanceof Constructor)) {
  60            throw new TypeError("Cannot call a class as a function");
  61          }
  62        }
  63        function _defineProperties(target, props) {
  64          for (var i = 0; i < props.length; i++) {
  65            var descriptor = props[i];
  66            descriptor.enumerable = descriptor.enumerable || false;
  67            descriptor.configurable = true;
  68            if ("value" in descriptor) descriptor.writable = true;
  69            Object.defineProperty(target, descriptor.key, descriptor);
  70          }
  71        }
  72        function _createClass(Constructor, protoProps, staticProps) {
  73          if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  74          if (staticProps) _defineProperties(Constructor, staticProps);
  75          return Constructor;
  76        }
  77        function getValuePair(instance, key) {
  78          var _map = instance._map, _arrayTreeMap = instance._arrayTreeMap, _objectTreeMap = instance._objectTreeMap;
  79          if (_map.has(key)) {
  80            return _map.get(key);
  81          }
  82          var properties = Object.keys(key).sort();
  83          var map = Array.isArray(key) ? _arrayTreeMap : _objectTreeMap;
  84          for (var i = 0; i < properties.length; i++) {
  85            var property = properties[i];
  86            map = map.get(property);
  87            if (map === void 0) {
  88              return;
  89            }
  90            var propertyValue = key[property];
  91            map = map.get(propertyValue);
  92            if (map === void 0) {
  93              return;
  94            }
  95          }
  96          var valuePair = map.get("_ekm_value");
  97          if (!valuePair) {
  98            return;
  99          }
 100          _map.delete(valuePair[0]);
 101          valuePair[0] = key;
 102          map.set("_ekm_value", valuePair);
 103          _map.set(key, valuePair);
 104          return valuePair;
 105        }
 106        var EquivalentKeyMap3 = /* @__PURE__ */ (function() {
 107          function EquivalentKeyMap4(iterable) {
 108            _classCallCheck(this, EquivalentKeyMap4);
 109            this.clear();
 110            if (iterable instanceof EquivalentKeyMap4) {
 111              var iterablePairs = [];
 112              iterable.forEach(function(value, key) {
 113                iterablePairs.push([key, value]);
 114              });
 115              iterable = iterablePairs;
 116            }
 117            if (iterable != null) {
 118              for (var i = 0; i < iterable.length; i++) {
 119                this.set(iterable[i][0], iterable[i][1]);
 120              }
 121            }
 122          }
 123          _createClass(EquivalentKeyMap4, [{
 124            key: "set",
 125            /**
 126             * Add or update an element with a specified key and value.
 127             *
 128             * @param {*} key   The key of the element to add.
 129             * @param {*} value The value of the element to add.
 130             *
 131             * @return {EquivalentKeyMap} Map instance.
 132             */
 133            value: function set(key, value) {
 134              if (key === null || _typeof(key) !== "object") {
 135                this._map.set(key, value);
 136                return this;
 137              }
 138              var properties = Object.keys(key).sort();
 139              var valuePair = [key, value];
 140              var map = Array.isArray(key) ? this._arrayTreeMap : this._objectTreeMap;
 141              for (var i = 0; i < properties.length; i++) {
 142                var property = properties[i];
 143                if (!map.has(property)) {
 144                  map.set(property, new EquivalentKeyMap4());
 145                }
 146                map = map.get(property);
 147                var propertyValue = key[property];
 148                if (!map.has(propertyValue)) {
 149                  map.set(propertyValue, new EquivalentKeyMap4());
 150                }
 151                map = map.get(propertyValue);
 152              }
 153              var previousValuePair = map.get("_ekm_value");
 154              if (previousValuePair) {
 155                this._map.delete(previousValuePair[0]);
 156              }
 157              map.set("_ekm_value", valuePair);
 158              this._map.set(key, valuePair);
 159              return this;
 160            }
 161            /**
 162             * Returns a specified element.
 163             *
 164             * @param {*} key The key of the element to return.
 165             *
 166             * @return {?*} The element associated with the specified key or undefined
 167             *              if the key can't be found.
 168             */
 169          }, {
 170            key: "get",
 171            value: function get(key) {
 172              if (key === null || _typeof(key) !== "object") {
 173                return this._map.get(key);
 174              }
 175              var valuePair = getValuePair(this, key);
 176              if (valuePair) {
 177                return valuePair[1];
 178              }
 179            }
 180            /**
 181             * Returns a boolean indicating whether an element with the specified key
 182             * exists or not.
 183             *
 184             * @param {*} key The key of the element to test for presence.
 185             *
 186             * @return {boolean} Whether an element with the specified key exists.
 187             */
 188          }, {
 189            key: "has",
 190            value: function has(key) {
 191              if (key === null || _typeof(key) !== "object") {
 192                return this._map.has(key);
 193              }
 194              return getValuePair(this, key) !== void 0;
 195            }
 196            /**
 197             * Removes the specified element.
 198             *
 199             * @param {*} key The key of the element to remove.
 200             *
 201             * @return {boolean} Returns true if an element existed and has been
 202             *                   removed, or false if the element does not exist.
 203             */
 204          }, {
 205            key: "delete",
 206            value: function _delete(key) {
 207              if (!this.has(key)) {
 208                return false;
 209              }
 210              this.set(key, void 0);
 211              return true;
 212            }
 213            /**
 214             * Executes a provided function once per each key/value pair, in insertion
 215             * order.
 216             *
 217             * @param {Function} callback Function to execute for each element.
 218             * @param {*}        thisArg  Value to use as `this` when executing
 219             *                            `callback`.
 220             */
 221          }, {
 222            key: "forEach",
 223            value: function forEach(callback) {
 224              var _this = this;
 225              var thisArg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this;
 226              this._map.forEach(function(value, key) {
 227                if (key !== null && _typeof(key) === "object") {
 228                  value = value[1];
 229                }
 230                callback.call(thisArg, value, key, _this);
 231              });
 232            }
 233            /**
 234             * Removes all elements.
 235             */
 236          }, {
 237            key: "clear",
 238            value: function clear() {
 239              this._map = /* @__PURE__ */ new Map();
 240              this._arrayTreeMap = /* @__PURE__ */ new Map();
 241              this._objectTreeMap = /* @__PURE__ */ new Map();
 242            }
 243          }, {
 244            key: "size",
 245            get: function get() {
 246              return this._map.size;
 247            }
 248          }]);
 249          return EquivalentKeyMap4;
 250        })();
 251        module.exports = EquivalentKeyMap3;
 252      }
 253    });
 254  
 255    // package-external:@wordpress/redux-routine
 256    var require_redux_routine = __commonJS({
 257      "package-external:@wordpress/redux-routine"(exports, module) {
 258        module.exports = window.wp.reduxRoutine;
 259      }
 260    });
 261  
 262    // package-external:@wordpress/compose
 263    var require_compose = __commonJS({
 264      "package-external:@wordpress/compose"(exports, module) {
 265        module.exports = window.wp.compose;
 266      }
 267    });
 268  
 269    // package-external:@wordpress/private-apis
 270    var require_private_apis = __commonJS({
 271      "package-external:@wordpress/private-apis"(exports, module) {
 272        module.exports = window.wp.privateApis;
 273      }
 274    });
 275  
 276    // node_modules/deepmerge/dist/cjs.js
 277    var require_cjs = __commonJS({
 278      "node_modules/deepmerge/dist/cjs.js"(exports, module) {
 279        "use strict";
 280        var isMergeableObject = function isMergeableObject2(value) {
 281          return isNonNullObject(value) && !isSpecial(value);
 282        };
 283        function isNonNullObject(value) {
 284          return !!value && typeof value === "object";
 285        }
 286        function isSpecial(value) {
 287          var stringValue = Object.prototype.toString.call(value);
 288          return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value);
 289        }
 290        var canUseSymbol = typeof Symbol === "function" && Symbol.for;
 291        var REACT_ELEMENT_TYPE = canUseSymbol ? /* @__PURE__ */ Symbol.for("react.element") : 60103;
 292        function isReactElement(value) {
 293          return value.$$typeof === REACT_ELEMENT_TYPE;
 294        }
 295        function emptyTarget(val) {
 296          return Array.isArray(val) ? [] : {};
 297        }
 298        function cloneUnlessOtherwiseSpecified(value, options) {
 299          return options.clone !== false && options.isMergeableObject(value) ? deepmerge2(emptyTarget(value), value, options) : value;
 300        }
 301        function defaultArrayMerge(target, source, options) {
 302          return target.concat(source).map(function(element) {
 303            return cloneUnlessOtherwiseSpecified(element, options);
 304          });
 305        }
 306        function getMergeFunction(key, options) {
 307          if (!options.customMerge) {
 308            return deepmerge2;
 309          }
 310          var customMerge = options.customMerge(key);
 311          return typeof customMerge === "function" ? customMerge : deepmerge2;
 312        }
 313        function getEnumerableOwnPropertySymbols(target) {
 314          return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) {
 315            return Object.propertyIsEnumerable.call(target, symbol);
 316          }) : [];
 317        }
 318        function getKeys(target) {
 319          return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));
 320        }
 321        function propertyIsOnObject(object, property) {
 322          try {
 323            return property in object;
 324          } catch (_) {
 325            return false;
 326          }
 327        }
 328        function propertyIsUnsafe(target, key) {
 329          return propertyIsOnObject(target, key) && !(Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key));
 330        }
 331        function mergeObject(target, source, options) {
 332          var destination = {};
 333          if (options.isMergeableObject(target)) {
 334            getKeys(target).forEach(function(key) {
 335              destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
 336            });
 337          }
 338          getKeys(source).forEach(function(key) {
 339            if (propertyIsUnsafe(target, key)) {
 340              return;
 341            }
 342            if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
 343              destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
 344            } else {
 345              destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
 346            }
 347          });
 348          return destination;
 349        }
 350        function deepmerge2(target, source, options) {
 351          options = options || {};
 352          options.arrayMerge = options.arrayMerge || defaultArrayMerge;
 353          options.isMergeableObject = options.isMergeableObject || isMergeableObject;
 354          options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
 355          var sourceIsArray = Array.isArray(source);
 356          var targetIsArray = Array.isArray(target);
 357          var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
 358          if (!sourceAndTargetTypesMatch) {
 359            return cloneUnlessOtherwiseSpecified(source, options);
 360          } else if (sourceIsArray) {
 361            return options.arrayMerge(target, source, options);
 362          } else {
 363            return mergeObject(target, source, options);
 364          }
 365        }
 366        deepmerge2.all = function deepmergeAll(array, options) {
 367          if (!Array.isArray(array)) {
 368            throw new Error("first argument should be an array");
 369          }
 370          return array.reduce(function(prev, next) {
 371            return deepmerge2(prev, next, options);
 372          }, {});
 373        };
 374        var deepmerge_1 = deepmerge2;
 375        module.exports = deepmerge_1;
 376      }
 377    });
 378  
 379    // package-external:@wordpress/element
 380    var require_element = __commonJS({
 381      "package-external:@wordpress/element"(exports, module) {
 382        module.exports = window.wp.element;
 383      }
 384    });
 385  
 386    // package-external:@wordpress/priority-queue
 387    var require_priority_queue = __commonJS({
 388      "package-external:@wordpress/priority-queue"(exports, module) {
 389        module.exports = window.wp.priorityQueue;
 390      }
 391    });
 392  
 393    // package-external:@wordpress/is-shallow-equal
 394    var require_is_shallow_equal = __commonJS({
 395      "package-external:@wordpress/is-shallow-equal"(exports, module) {
 396        module.exports = window.wp.isShallowEqual;
 397      }
 398    });
 399  
 400    // vendor-external:react/jsx-runtime
 401    var require_jsx_runtime = __commonJS({
 402      "vendor-external:react/jsx-runtime"(exports, module) {
 403        module.exports = window.ReactJSXRuntime;
 404      }
 405    });
 406  
 407    // packages/data/build-module/index.mjs
 408    var index_exports = {};
 409    __export(index_exports, {
 410      AsyncModeProvider: () => context_default2,
 411      RegistryConsumer: () => RegistryConsumer,
 412      RegistryProvider: () => context_default,
 413      combineReducers: () => combineReducers2,
 414      controls: () => controls,
 415      createReduxStore: () => createReduxStore,
 416      createRegistry: () => createRegistry,
 417      createRegistryControl: () => createRegistryControl,
 418      createRegistrySelector: () => createRegistrySelector,
 419      createSelector: () => rememo_default,
 420      dispatch: () => dispatch2,
 421      keyedReducer: () => keyedReducer,
 422      plugins: () => plugins_exports,
 423      register: () => register,
 424      registerGenericStore: () => registerGenericStore,
 425      registerStore: () => registerStore,
 426      resolveSelect: () => resolveSelect2,
 427      select: () => select2,
 428      subscribe: () => subscribe,
 429      suspendSelect: () => suspendSelect,
 430      use: () => use,
 431      useDispatch: () => use_dispatch_default,
 432      useRegistry: () => useRegistry,
 433      useSelect: () => useSelect,
 434      useSuspenseSelect: () => useSuspenseSelect,
 435      withDispatch: () => with_dispatch_default,
 436      withRegistry: () => with_registry_default,
 437      withSelect: () => with_select_default
 438    });
 439  
 440    // packages/data/build-module/registry.mjs
 441    var import_deprecated2 = __toESM(require_deprecated(), 1);
 442  
 443    // node_modules/redux/dist/redux.mjs
 444    var $$observable = /* @__PURE__ */ (() => typeof Symbol === "function" && Symbol.observable || "@@observable")();
 445    var symbol_observable_default = $$observable;
 446    var randomString = () => Math.random().toString(36).substring(7).split("").join(".");
 447    var ActionTypes = {
 448      INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,
 449      REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,
 450      PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION$randomString()}`
 451    };
 452    var actionTypes_default = ActionTypes;
 453    function isPlainObject(obj) {
 454      if (typeof obj !== "object" || obj === null)
 455        return false;
 456      let proto = obj;
 457      while (Object.getPrototypeOf(proto) !== null) {
 458        proto = Object.getPrototypeOf(proto);
 459      }
 460      return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;
 461    }
 462    function miniKindOf(val) {
 463      if (val === void 0)
 464        return "undefined";
 465      if (val === null)
 466        return "null";
 467      const type = typeof val;
 468      switch (type) {
 469        case "boolean":
 470        case "string":
 471        case "number":
 472        case "symbol":
 473        case "function": {
 474          return type;
 475        }
 476      }
 477      if (Array.isArray(val))
 478        return "array";
 479      if (isDate(val))
 480        return "date";
 481      if (isError(val))
 482        return "error";
 483      const constructorName = ctorName(val);
 484      switch (constructorName) {
 485        case "Symbol":
 486        case "Promise":
 487        case "WeakMap":
 488        case "WeakSet":
 489        case "Map":
 490        case "Set":
 491          return constructorName;
 492      }
 493      return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\s/g, "");
 494    }
 495    function ctorName(val) {
 496      return typeof val.constructor === "function" ? val.constructor.name : null;
 497    }
 498    function isError(val) {
 499      return val instanceof Error || typeof val.message === "string" && val.constructor && typeof val.constructor.stackTraceLimit === "number";
 500    }
 501    function isDate(val) {
 502      if (val instanceof Date)
 503        return true;
 504      return typeof val.toDateString === "function" && typeof val.getDate === "function" && typeof val.setDate === "function";
 505    }
 506    function kindOf(val) {
 507      let typeOfVal = typeof val;
 508      if (true) {
 509        typeOfVal = miniKindOf(val);
 510      }
 511      return typeOfVal;
 512    }
 513    function createStore(reducer, preloadedState, enhancer) {
 514      if (typeof reducer !== "function") {
 515        throw new Error(false ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '$kindOf(reducer)}'`);
 516      }
 517      if (typeof preloadedState === "function" && typeof enhancer === "function" || typeof enhancer === "function" && typeof arguments[3] === "function") {
 518        throw new Error(false ? formatProdErrorMessage(0) : "It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.");
 519      }
 520      if (typeof preloadedState === "function" && typeof enhancer === "undefined") {
 521        enhancer = preloadedState;
 522        preloadedState = void 0;
 523      }
 524      if (typeof enhancer !== "undefined") {
 525        if (typeof enhancer !== "function") {
 526          throw new Error(false ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '$kindOf(enhancer)}'`);
 527        }
 528        return enhancer(createStore)(reducer, preloadedState);
 529      }
 530      let currentReducer = reducer;
 531      let currentState = preloadedState;
 532      let currentListeners = /* @__PURE__ */ new Map();
 533      let nextListeners = currentListeners;
 534      let listenerIdCounter = 0;
 535      let isDispatching = false;
 536      function ensureCanMutateNextListeners() {
 537        if (nextListeners === currentListeners) {
 538          nextListeners = /* @__PURE__ */ new Map();
 539          currentListeners.forEach((listener, key) => {
 540            nextListeners.set(key, listener);
 541          });
 542        }
 543      }
 544      function getState() {
 545        if (isDispatching) {
 546          throw new Error(false ? formatProdErrorMessage(3) : "You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");
 547        }
 548        return currentState;
 549      }
 550      function subscribe2(listener) {
 551        if (typeof listener !== "function") {
 552          throw new Error(false ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '$kindOf(listener)}'`);
 553        }
 554        if (isDispatching) {
 555          throw new Error(false ? formatProdErrorMessage(5) : "You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.");
 556        }
 557        let isSubscribed = true;
 558        ensureCanMutateNextListeners();
 559        const listenerId = listenerIdCounter++;
 560        nextListeners.set(listenerId, listener);
 561        return function unsubscribe() {
 562          if (!isSubscribed) {
 563            return;
 564          }
 565          if (isDispatching) {
 566            throw new Error(false ? formatProdErrorMessage(6) : "You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.");
 567          }
 568          isSubscribed = false;
 569          ensureCanMutateNextListeners();
 570          nextListeners.delete(listenerId);
 571          currentListeners = null;
 572        };
 573      }
 574      function dispatch3(action) {
 575        if (!isPlainObject(action)) {
 576          throw new Error(false ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '$kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);
 577        }
 578        if (typeof action.type === "undefined") {
 579          throw new Error(false ? formatProdErrorMessage(8) : 'Actions may not have an undefined "type" property. You may have misspelled an action type string constant.');
 580        }
 581        if (typeof action.type !== "string") {
 582          throw new Error(false ? formatProdErrorMessage(17) : `Action "type" property must be a string. Instead, the actual type was: '$kindOf(action.type)}'. Value was: '$action.type}' (stringified)`);
 583        }
 584        if (isDispatching) {
 585          throw new Error(false ? formatProdErrorMessage(9) : "Reducers may not dispatch actions.");
 586        }
 587        try {
 588          isDispatching = true;
 589          currentState = currentReducer(currentState, action);
 590        } finally {
 591          isDispatching = false;
 592        }
 593        const listeners = currentListeners = nextListeners;
 594        listeners.forEach((listener) => {
 595          listener();
 596        });
 597        return action;
 598      }
 599      function replaceReducer(nextReducer) {
 600        if (typeof nextReducer !== "function") {
 601          throw new Error(false ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '$kindOf(nextReducer)}`);
 602        }
 603        currentReducer = nextReducer;
 604        dispatch3({
 605          type: actionTypes_default.REPLACE
 606        });
 607      }
 608      function observable() {
 609        const outerSubscribe = subscribe2;
 610        return {
 611          /**
 612           * The minimal observable subscription method.
 613           * @param observer Any object that can be used as an observer.
 614           * The observer object should have a `next` method.
 615           * @returns An object with an `unsubscribe` method that can
 616           * be used to unsubscribe the observable from the store, and prevent further
 617           * emission of values from the observable.
 618           */
 619          subscribe(observer) {
 620            if (typeof observer !== "object" || observer === null) {
 621              throw new Error(false ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '$kindOf(observer)}'`);
 622            }
 623            function observeState() {
 624              const observerAsObserver = observer;
 625              if (observerAsObserver.next) {
 626                observerAsObserver.next(getState());
 627              }
 628            }
 629            observeState();
 630            const unsubscribe = outerSubscribe(observeState);
 631            return {
 632              unsubscribe
 633            };
 634          },
 635          [symbol_observable_default]() {
 636            return this;
 637          }
 638        };
 639      }
 640      dispatch3({
 641        type: actionTypes_default.INIT
 642      });
 643      const store = {
 644        dispatch: dispatch3,
 645        subscribe: subscribe2,
 646        getState,
 647        replaceReducer,
 648        [symbol_observable_default]: observable
 649      };
 650      return store;
 651    }
 652    function compose(...funcs) {
 653      if (funcs.length === 0) {
 654        return (arg) => arg;
 655      }
 656      if (funcs.length === 1) {
 657        return funcs[0];
 658      }
 659      return funcs.reduce((a, b) => (...args) => a(b(...args)));
 660    }
 661    function applyMiddleware(...middlewares) {
 662      return (createStore2) => (reducer, preloadedState) => {
 663        const store = createStore2(reducer, preloadedState);
 664        let dispatch3 = () => {
 665          throw new Error(false ? formatProdErrorMessage(15) : "Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.");
 666        };
 667        const middlewareAPI = {
 668          getState: store.getState,
 669          dispatch: (action, ...args) => dispatch3(action, ...args)
 670        };
 671        const chain = middlewares.map((middleware) => middleware(middlewareAPI));
 672        dispatch3 = compose(...chain)(store.dispatch);
 673        return {
 674          ...store,
 675          dispatch: dispatch3
 676        };
 677      };
 678    }
 679  
 680    // packages/data/build-module/redux-store/index.mjs
 681    var import_equivalent_key_map2 = __toESM(require_equivalent_key_map(), 1);
 682    var import_redux_routine = __toESM(require_redux_routine(), 1);
 683    var import_compose = __toESM(require_compose(), 1);
 684  
 685    // packages/data/build-module/redux-store/combine-reducers.mjs
 686    function combineReducers(reducers) {
 687      const keys = Object.keys(reducers);
 688      return function combinedReducer(state = {}, action) {
 689        const nextState = {};
 690        let hasChanged = false;
 691        for (const key of keys) {
 692          const reducer = reducers[key];
 693          const prevStateForKey = state[key];
 694          const nextStateForKey = reducer(prevStateForKey, action);
 695          nextState[key] = nextStateForKey;
 696          hasChanged = hasChanged || nextStateForKey !== prevStateForKey;
 697        }
 698        return hasChanged ? nextState : state;
 699      };
 700    }
 701  
 702    // packages/data/build-module/factory.mjs
 703    function createRegistrySelector(registrySelector) {
 704      const selectorsByRegistry = /* @__PURE__ */ new WeakMap();
 705      const wrappedSelector = (...args) => {
 706        let selector = selectorsByRegistry.get(wrappedSelector.registry);
 707        if (!selector) {
 708          selector = registrySelector(wrappedSelector.registry.select);
 709          selectorsByRegistry.set(wrappedSelector.registry, selector);
 710        }
 711        return selector(...args);
 712      };
 713      wrappedSelector.isRegistrySelector = true;
 714      return wrappedSelector;
 715    }
 716    function createRegistryControl(registryControl) {
 717      registryControl.isRegistryControl = true;
 718      return registryControl;
 719    }
 720  
 721    // packages/data/build-module/controls.mjs
 722    var SELECT = "@@data/SELECT";
 723    var RESOLVE_SELECT = "@@data/RESOLVE_SELECT";
 724    var DISPATCH = "@@data/DISPATCH";
 725    function isStoreDescriptor(object) {
 726      return object !== null && typeof object === "object";
 727    }
 728    function select(storeNameOrDescriptor, selectorName, ...args) {
 729      return {
 730        type: SELECT,
 731        storeKey: isStoreDescriptor(storeNameOrDescriptor) ? storeNameOrDescriptor.name : storeNameOrDescriptor,
 732        selectorName,
 733        args
 734      };
 735    }
 736    function resolveSelect(storeNameOrDescriptor, selectorName, ...args) {
 737      return {
 738        type: RESOLVE_SELECT,
 739        storeKey: isStoreDescriptor(storeNameOrDescriptor) ? storeNameOrDescriptor.name : storeNameOrDescriptor,
 740        selectorName,
 741        args
 742      };
 743    }
 744    function dispatch(storeNameOrDescriptor, actionName, ...args) {
 745      return {
 746        type: DISPATCH,
 747        storeKey: isStoreDescriptor(storeNameOrDescriptor) ? storeNameOrDescriptor.name : storeNameOrDescriptor,
 748        actionName,
 749        args
 750      };
 751    }
 752    var controls = { select, resolveSelect, dispatch };
 753    var builtinControls = {
 754      [SELECT]: createRegistryControl(
 755        (registry) => ({ storeKey, selectorName, args }) => registry.select(storeKey)[selectorName](...args)
 756      ),
 757      [RESOLVE_SELECT]: createRegistryControl(
 758        (registry) => ({ storeKey, selectorName, args }) => {
 759          const selector = registry.select(storeKey)[selectorName];
 760          const method = selector.hasResolver ? "resolveSelect" : "select";
 761          return registry[method](storeKey)[selectorName](
 762            ...args
 763          );
 764        }
 765      ),
 766      [DISPATCH]: createRegistryControl(
 767        (registry) => ({ storeKey, actionName, args }) => registry.dispatch(storeKey)[actionName](...args)
 768      )
 769    };
 770  
 771    // packages/data/build-module/lock-unlock.mjs
 772    var import_private_apis = __toESM(require_private_apis(), 1);
 773    var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
 774      "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
 775      "@wordpress/data"
 776    );
 777  
 778    // node_modules/is-promise/index.mjs
 779    function isPromise(obj) {
 780      return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
 781    }
 782  
 783    // packages/data/build-module/promise-middleware.mjs
 784    var promiseMiddleware = () => (next) => (action) => {
 785      if (isPromise(action)) {
 786        return action.then((resolvedAction) => {
 787          if (resolvedAction) {
 788            return next(resolvedAction);
 789          }
 790          return void 0;
 791        });
 792      }
 793      return next(action);
 794    };
 795    var promise_middleware_default = promiseMiddleware;
 796  
 797    // packages/data/build-module/resolvers-cache-middleware.mjs
 798    var createResolversCacheMiddleware = (registry, storeName) => () => (next) => (action) => {
 799      const resolvers = registry.select(storeName).getCachedResolvers();
 800      const resolverEntries = Object.entries(
 801        resolvers
 802      );
 803      resolverEntries.forEach(([selectorName, resolversByArgs]) => {
 804        const resolver = registry.stores[storeName]?.resolvers?.[selectorName];
 805        if (!resolver || !resolver.shouldInvalidate) {
 806          return;
 807        }
 808        const { shouldInvalidate } = resolver;
 809        resolversByArgs.forEach((value, args) => {
 810          if (value === void 0) {
 811            return;
 812          }
 813          if (value.status !== "finished" && value.status !== "error") {
 814            return;
 815          }
 816          if (!shouldInvalidate(action, ...args)) {
 817            return;
 818          }
 819          registry.dispatch(storeName).invalidateResolution(selectorName, args);
 820        });
 821      });
 822      return next(action);
 823    };
 824    var resolvers_cache_middleware_default = createResolversCacheMiddleware;
 825  
 826    // packages/data/build-module/redux-store/thunk-middleware.mjs
 827    function createThunkMiddleware(args) {
 828      return () => (next) => (action) => {
 829        if (typeof action === "function") {
 830          return action(args);
 831        }
 832        return next(action);
 833      };
 834    }
 835  
 836    // packages/data/build-module/redux-store/metadata/reducer.mjs
 837    var import_equivalent_key_map = __toESM(require_equivalent_key_map(), 1);
 838  
 839    // packages/data/build-module/redux-store/keyed-reducer.mjs
 840    var keyedReducer = (actionProperty) => (reducer) => (state = {}, action) => {
 841      const key = action[actionProperty];
 842      if (key === void 0) {
 843        return state;
 844      }
 845      const nextKeyState = reducer(state[key], action);
 846      if (nextKeyState === state[key]) {
 847        return state;
 848      }
 849      return {
 850        ...state,
 851        [key]: nextKeyState
 852      };
 853    };
 854  
 855    // packages/data/build-module/redux-store/metadata/utils.mjs
 856    function selectorArgsToStateKey(args) {
 857      if (args === void 0 || args === null) {
 858        return [];
 859      }
 860      const len = args.length;
 861      let idx = len;
 862      while (idx > 0 && args[idx - 1] === void 0) {
 863        idx--;
 864      }
 865      return idx === len ? args : args.slice(0, idx);
 866    }
 867  
 868    // packages/data/build-module/redux-store/metadata/reducer.mjs
 869    var subKeysIsResolved = keyedReducer("selectorName")((state = new import_equivalent_key_map.default(), action) => {
 870      switch (action.type) {
 871        case "START_RESOLUTION": {
 872          const nextState = new import_equivalent_key_map.default(state);
 873          nextState.set(selectorArgsToStateKey(action.args), {
 874            status: "resolving"
 875          });
 876          return nextState;
 877        }
 878        case "FINISH_RESOLUTION": {
 879          const nextState = new import_equivalent_key_map.default(state);
 880          nextState.set(selectorArgsToStateKey(action.args), {
 881            status: "finished"
 882          });
 883          return nextState;
 884        }
 885        case "FAIL_RESOLUTION": {
 886          const nextState = new import_equivalent_key_map.default(state);
 887          nextState.set(selectorArgsToStateKey(action.args), {
 888            status: "error",
 889            error: action.error
 890          });
 891          return nextState;
 892        }
 893        case "START_RESOLUTIONS": {
 894          const nextState = new import_equivalent_key_map.default(state);
 895          for (const resolutionArgs of action.args) {
 896            nextState.set(selectorArgsToStateKey(resolutionArgs), {
 897              status: "resolving"
 898            });
 899          }
 900          return nextState;
 901        }
 902        case "FINISH_RESOLUTIONS": {
 903          const nextState = new import_equivalent_key_map.default(state);
 904          for (const resolutionArgs of action.args) {
 905            nextState.set(selectorArgsToStateKey(resolutionArgs), {
 906              status: "finished"
 907            });
 908          }
 909          return nextState;
 910        }
 911        case "FAIL_RESOLUTIONS": {
 912          const nextState = new import_equivalent_key_map.default(state);
 913          action.args.forEach((resolutionArgs, idx) => {
 914            const resolutionState = {
 915              status: "error",
 916              error: void 0
 917            };
 918            const error = action.errors[idx];
 919            if (error) {
 920              resolutionState.error = error;
 921            }
 922            nextState.set(
 923              selectorArgsToStateKey(resolutionArgs),
 924              resolutionState
 925            );
 926          });
 927          return nextState;
 928        }
 929        case "INVALIDATE_RESOLUTION": {
 930          const nextState = new import_equivalent_key_map.default(state);
 931          nextState.delete(selectorArgsToStateKey(action.args));
 932          return nextState;
 933        }
 934      }
 935      return state;
 936    });
 937    var isResolved = (state = {}, action) => {
 938      switch (action.type) {
 939        case "INVALIDATE_RESOLUTION_FOR_STORE":
 940          return {};
 941        case "INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR": {
 942          if (action.selectorName in state) {
 943            const {
 944              [action.selectorName]: removedSelector,
 945              ...restState
 946            } = state;
 947            return restState;
 948          }
 949          return state;
 950        }
 951        case "START_RESOLUTION":
 952        case "FINISH_RESOLUTION":
 953        case "FAIL_RESOLUTION":
 954        case "START_RESOLUTIONS":
 955        case "FINISH_RESOLUTIONS":
 956        case "FAIL_RESOLUTIONS":
 957        case "INVALIDATE_RESOLUTION":
 958          return subKeysIsResolved(state, action);
 959        default:
 960          return state;
 961      }
 962    };
 963    var reducer_default = isResolved;
 964  
 965    // packages/data/build-module/redux-store/metadata/selectors.mjs
 966    var selectors_exports = {};
 967    __export(selectors_exports, {
 968      countSelectorsByStatus: () => countSelectorsByStatus,
 969      getCachedResolvers: () => getCachedResolvers,
 970      getIsResolving: () => getIsResolving,
 971      getResolutionError: () => getResolutionError,
 972      getResolutionState: () => getResolutionState,
 973      hasFinishedResolution: () => hasFinishedResolution,
 974      hasResolutionFailed: () => hasResolutionFailed,
 975      hasResolvingSelectors: () => hasResolvingSelectors,
 976      hasStartedResolution: () => hasStartedResolution,
 977      isResolving: () => isResolving
 978    });
 979    var import_deprecated = __toESM(require_deprecated(), 1);
 980  
 981    // node_modules/rememo/rememo.js
 982    var LEAF_KEY = {};
 983    function arrayOf(value) {
 984      return [value];
 985    }
 986    function isObjectLike(value) {
 987      return !!value && "object" === typeof value;
 988    }
 989    function createCache() {
 990      var cache = {
 991        clear: function() {
 992          cache.head = null;
 993        }
 994      };
 995      return cache;
 996    }
 997    function isShallowEqual(a, b, fromIndex) {
 998      var i;
 999      if (a.length !== b.length) {
1000        return false;
1001      }
1002      for (i = fromIndex; i < a.length; i++) {
1003        if (a[i] !== b[i]) {
1004          return false;
1005        }
1006      }
1007      return true;
1008    }
1009    function rememo_default(selector, getDependants) {
1010      var rootCache;
1011      var normalizedGetDependants = getDependants ? getDependants : arrayOf;
1012      function getCache(dependants) {
1013        var caches = rootCache, isUniqueByDependants = true, i, dependant, map, cache;
1014        for (i = 0; i < dependants.length; i++) {
1015          dependant = dependants[i];
1016          if (!isObjectLike(dependant)) {
1017            isUniqueByDependants = false;
1018            break;
1019          }
1020          if (caches.has(dependant)) {
1021            caches = caches.get(dependant);
1022          } else {
1023            map = /* @__PURE__ */ new WeakMap();
1024            caches.set(dependant, map);
1025            caches = map;
1026          }
1027        }
1028        if (!caches.has(LEAF_KEY)) {
1029          cache = createCache();
1030          cache.isUniqueByDependants = isUniqueByDependants;
1031          caches.set(LEAF_KEY, cache);
1032        }
1033        return caches.get(LEAF_KEY);
1034      }
1035      function clear() {
1036        rootCache = /* @__PURE__ */ new WeakMap();
1037      }
1038      function callSelector() {
1039        var len = arguments.length, cache, node, i, args, dependants;
1040        args = new Array(len);
1041        for (i = 0; i < len; i++) {
1042          args[i] = arguments[i];
1043        }
1044        dependants = normalizedGetDependants.apply(null, args);
1045        cache = getCache(dependants);
1046        if (!cache.isUniqueByDependants) {
1047          if (cache.lastDependants && !isShallowEqual(dependants, cache.lastDependants, 0)) {
1048            cache.clear();
1049          }
1050          cache.lastDependants = dependants;
1051        }
1052        node = cache.head;
1053        while (node) {
1054          if (!isShallowEqual(node.args, args, 1)) {
1055            node = node.next;
1056            continue;
1057          }
1058          if (node !== cache.head) {
1059            node.prev.next = node.next;
1060            if (node.next) {
1061              node.next.prev = node.prev;
1062            }
1063            node.next = cache.head;
1064            node.prev = null;
1065            cache.head.prev = node;
1066            cache.head = node;
1067          }
1068          return node.val;
1069        }
1070        node = /** @type {CacheNode} */
1071        {
1072          // Generate the result from original function
1073          val: selector.apply(null, args)
1074        };
1075        args[0] = null;
1076        node.args = args;
1077        if (cache.head) {
1078          cache.head.prev = node;
1079          node.next = cache.head;
1080        }
1081        cache.head = node;
1082        return node.val;
1083      }
1084      callSelector.getDependants = normalizedGetDependants;
1085      callSelector.clear = clear;
1086      clear();
1087      return (
1088        /** @type {S & EnhancedSelector} */
1089        callSelector
1090      );
1091    }
1092  
1093    // packages/data/build-module/redux-store/metadata/selectors.mjs
1094    function getResolutionState(state, selectorName, args) {
1095      const map = state[selectorName];
1096      if (!map) {
1097        return;
1098      }
1099      return map.get(selectorArgsToStateKey(args));
1100    }
1101    function getIsResolving(state, selectorName, args) {
1102      (0, import_deprecated.default)("wp.data.select( store ).getIsResolving", {
1103        since: "6.6",
1104        version: "6.8",
1105        alternative: "wp.data.select( store ).getResolutionState"
1106      });
1107      const resolutionState = getResolutionState(state, selectorName, args);
1108      return resolutionState && resolutionState.status === "resolving";
1109    }
1110    function hasStartedResolution(state, selectorName, args) {
1111      return getResolutionState(state, selectorName, args) !== void 0;
1112    }
1113    function hasFinishedResolution(state, selectorName, args) {
1114      const status = getResolutionState(state, selectorName, args)?.status;
1115      return status === "finished" || status === "error";
1116    }
1117    function hasResolutionFailed(state, selectorName, args) {
1118      return getResolutionState(state, selectorName, args)?.status === "error";
1119    }
1120    function getResolutionError(state, selectorName, args) {
1121      const resolutionState = getResolutionState(state, selectorName, args);
1122      return resolutionState?.status === "error" ? resolutionState.error : null;
1123    }
1124    function isResolving(state, selectorName, args) {
1125      return getResolutionState(state, selectorName, args)?.status === "resolving";
1126    }
1127    function getCachedResolvers(state) {
1128      return state;
1129    }
1130    function hasResolvingSelectors(state) {
1131      return Object.values(state).some(
1132        (selectorState) => (
1133          /**
1134           * This uses the internal `_map` property of `EquivalentKeyMap` for
1135           * optimization purposes, since the `EquivalentKeyMap` implementation
1136           * does not support a `.values()` implementation.
1137           *
1138           * @see https://github.com/aduth/equivalent-key-map
1139           */
1140          Array.from(selectorState._map.values()).some(
1141            (resolution) => resolution[1]?.status === "resolving"
1142          )
1143        )
1144      );
1145    }
1146    var countSelectorsByStatus = rememo_default(
1147      (state) => {
1148        const selectorsByStatus = {};
1149        Object.values(state).forEach(
1150          (selectorState) => (
1151            /**
1152             * This uses the internal `_map` property of `EquivalentKeyMap` for
1153             * optimization purposes, since the `EquivalentKeyMap` implementation
1154             * does not support a `.values()` implementation.
1155             *
1156             * @see https://github.com/aduth/equivalent-key-map
1157             */
1158            Array.from(selectorState._map.values()).forEach(
1159              (resolution) => {
1160                const currentStatus = resolution[1]?.status ?? "error";
1161                if (!selectorsByStatus[currentStatus]) {
1162                  selectorsByStatus[currentStatus] = 0;
1163                }
1164                selectorsByStatus[currentStatus]++;
1165              }
1166            )
1167          )
1168        );
1169        return selectorsByStatus;
1170      },
1171      (state) => [state]
1172    );
1173  
1174    // packages/data/build-module/redux-store/metadata/actions.mjs
1175    var actions_exports = {};
1176    __export(actions_exports, {
1177      failResolution: () => failResolution,
1178      failResolutions: () => failResolutions,
1179      finishResolution: () => finishResolution,
1180      finishResolutions: () => finishResolutions,
1181      invalidateResolution: () => invalidateResolution,
1182      invalidateResolutionForStore: () => invalidateResolutionForStore,
1183      invalidateResolutionForStoreSelector: () => invalidateResolutionForStoreSelector,
1184      startResolution: () => startResolution,
1185      startResolutions: () => startResolutions
1186    });
1187    function startResolution(selectorName, args) {
1188      return {
1189        type: "START_RESOLUTION",
1190        selectorName,
1191        args
1192      };
1193    }
1194    function finishResolution(selectorName, args) {
1195      return {
1196        type: "FINISH_RESOLUTION",
1197        selectorName,
1198        args
1199      };
1200    }
1201    function failResolution(selectorName, args, error) {
1202      return {
1203        type: "FAIL_RESOLUTION",
1204        selectorName,
1205        args,
1206        error
1207      };
1208    }
1209    function startResolutions(selectorName, args) {
1210      return {
1211        type: "START_RESOLUTIONS",
1212        selectorName,
1213        args
1214      };
1215    }
1216    function finishResolutions(selectorName, args) {
1217      return {
1218        type: "FINISH_RESOLUTIONS",
1219        selectorName,
1220        args
1221      };
1222    }
1223    function failResolutions(selectorName, args, errors) {
1224      return {
1225        type: "FAIL_RESOLUTIONS",
1226        selectorName,
1227        args,
1228        errors
1229      };
1230    }
1231    function invalidateResolution(selectorName, args) {
1232      return {
1233        type: "INVALIDATE_RESOLUTION",
1234        selectorName,
1235        args
1236      };
1237    }
1238    function invalidateResolutionForStore() {
1239      return {
1240        type: "INVALIDATE_RESOLUTION_FOR_STORE"
1241      };
1242    }
1243    function invalidateResolutionForStoreSelector(selectorName) {
1244      return {
1245        type: "INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR",
1246        selectorName
1247      };
1248    }
1249  
1250    // packages/data/build-module/redux-store/index.mjs
1251    var trimUndefinedValues = (array) => {
1252      const result = [...array];
1253      for (let i = result.length - 1; i >= 0; i--) {
1254        if (result[i] === void 0) {
1255          result.splice(i, 1);
1256        }
1257      }
1258      return result;
1259    };
1260    var mapValues = (obj, callback) => Object.fromEntries(
1261      Object.entries(obj ?? {}).map(([key, value]) => [
1262        key,
1263        callback(value, key)
1264      ])
1265    );
1266    var devToolsReplacer = (_key, state) => {
1267      if (state instanceof Map) {
1268        return Object.fromEntries(state);
1269      }
1270      if (typeof window !== "undefined" && state instanceof window.HTMLElement) {
1271        return null;
1272      }
1273      return state;
1274    };
1275    function createResolversCache() {
1276      const cache = {};
1277      return {
1278        isRunning(selectorName, args) {
1279          return !!(cache[selectorName] && cache[selectorName].get(trimUndefinedValues(args)));
1280        },
1281        clear(selectorName, args) {
1282          if (cache[selectorName]) {
1283            cache[selectorName].delete(trimUndefinedValues(args));
1284          }
1285        },
1286        markAsRunning(selectorName, args) {
1287          if (!cache[selectorName]) {
1288            cache[selectorName] = new import_equivalent_key_map2.default();
1289          }
1290          cache[selectorName].set(trimUndefinedValues(args), true);
1291        }
1292      };
1293    }
1294    function createBindingCache(getItem, bindItem) {
1295      const cache = /* @__PURE__ */ new WeakMap();
1296      return {
1297        get(itemName) {
1298          const item = getItem(itemName);
1299          if (!item) {
1300            return null;
1301          }
1302          let boundItem = cache.get(item);
1303          if (!boundItem) {
1304            boundItem = bindItem(item, itemName);
1305            cache.set(item, boundItem);
1306          }
1307          return boundItem;
1308        }
1309      };
1310    }
1311    function createPrivateProxy(publicItems, privateItems) {
1312      return new Proxy(publicItems, {
1313        get: (target, itemName) => privateItems.get(itemName) || Reflect.get(target, itemName)
1314      });
1315    }
1316    function createReduxStore(key, options) {
1317      const privateActions = {};
1318      const privateSelectors = {};
1319      const privateRegistrationFunctions = {
1320        privateActions,
1321        registerPrivateActions: (actions) => {
1322          Object.assign(privateActions, actions);
1323        },
1324        privateSelectors,
1325        registerPrivateSelectors: (selectors) => {
1326          Object.assign(privateSelectors, selectors);
1327        }
1328      };
1329      const storeDescriptor = {
1330        name: key,
1331        instantiate: (registry) => {
1332          const listeners = /* @__PURE__ */ new Set();
1333          const reducer = options.reducer;
1334          const thunkArgs = {
1335            registry,
1336            get dispatch() {
1337              return thunkDispatch;
1338            },
1339            get select() {
1340              return thunkSelect;
1341            },
1342            get resolveSelect() {
1343              return resolveSelectors;
1344            }
1345          };
1346          const store = instantiateReduxStore(
1347            key,
1348            options,
1349            registry,
1350            thunkArgs
1351          );
1352          lock(store, privateRegistrationFunctions);
1353          const resolversCache = createResolversCache();
1354          function bindAction(action) {
1355            return (...args) => Promise.resolve(store.dispatch(action(...args)));
1356          }
1357          const actions = {
1358            ...mapValues(
1359              actions_exports,
1360              bindAction
1361            ),
1362            ...mapValues(
1363              options.actions,
1364              bindAction
1365            )
1366          };
1367          const allActions = createPrivateProxy(
1368            actions,
1369            createBindingCache(
1370              (name) => privateActions[name],
1371              bindAction
1372            )
1373          );
1374          const thunkDispatch = new Proxy(
1375            (action) => store.dispatch(action),
1376            {
1377              get: (_target, name) => allActions[name]
1378            }
1379          );
1380          lock(actions, allActions);
1381          const resolvers = options.resolvers ? mapValues(
1382            options.resolvers,
1383            mapResolver
1384          ) : {};
1385          function bindSelector(selector, selectorName) {
1386            if (selector.isRegistrySelector) {
1387              selector.registry = registry;
1388            }
1389            const boundSelector = (...args) => {
1390              args = normalize(selector, args);
1391              const state = store.__unstableOriginalGetState();
1392              if (selector.isRegistrySelector) {
1393                selector.registry = registry;
1394              }
1395              return selector(state.root, ...args);
1396            };
1397            boundSelector.__unstableNormalizeArgs = selector.__unstableNormalizeArgs;
1398            const resolver = resolvers[selectorName];
1399            if (!resolver) {
1400              boundSelector.hasResolver = false;
1401              return boundSelector;
1402            }
1403            return mapSelectorWithResolver(
1404              boundSelector,
1405              selectorName,
1406              resolver,
1407              store,
1408              resolversCache,
1409              boundMetadataSelectors
1410            );
1411          }
1412          function bindMetadataSelector(metaDataSelector) {
1413            const boundSelector = (selectorName, selectorArgs, ...args) => {
1414              if (selectorName) {
1415                const targetSelector = options.selectors?.[selectorName];
1416                if (targetSelector) {
1417                  selectorArgs = normalize(
1418                    targetSelector,
1419                    selectorArgs
1420                  );
1421                }
1422              }
1423              const state = store.__unstableOriginalGetState();
1424              return metaDataSelector(
1425                state.metadata,
1426                selectorName,
1427                selectorArgs,
1428                ...args
1429              );
1430            };
1431            boundSelector.hasResolver = false;
1432            return boundSelector;
1433          }
1434          const boundMetadataSelectors = mapValues(
1435            selectors_exports,
1436            bindMetadataSelector
1437          );
1438          const boundSelectors = mapValues(
1439            options.selectors,
1440            bindSelector
1441          );
1442          const selectors = {
1443            ...boundMetadataSelectors,
1444            ...boundSelectors
1445          };
1446          const boundPrivateSelectors = createBindingCache(
1447            (name) => privateSelectors[name],
1448            bindSelector
1449          );
1450          const allSelectors = createPrivateProxy(
1451            selectors,
1452            boundPrivateSelectors
1453          );
1454          for (const selectorName of Object.keys(privateSelectors)) {
1455            boundPrivateSelectors.get(selectorName);
1456          }
1457          const thunkSelect = new Proxy(
1458            (selector) => selector(store.__unstableOriginalGetState()),
1459            {
1460              get: (_target, name) => allSelectors[name]
1461            }
1462          );
1463          lock(selectors, allSelectors);
1464          const bindResolveSelector = mapResolveSelector(
1465            store,
1466            resolvers,
1467            boundMetadataSelectors
1468          );
1469          const resolveSelectors = mapValues(
1470            boundSelectors,
1471            bindResolveSelector
1472          );
1473          const allResolveSelectors = createPrivateProxy(
1474            resolveSelectors,
1475            createBindingCache(
1476              (name) => boundPrivateSelectors.get(name),
1477              bindResolveSelector
1478            )
1479          );
1480          lock(resolveSelectors, allResolveSelectors);
1481          const bindSuspendSelector = mapSuspendSelector(
1482            store,
1483            boundMetadataSelectors
1484          );
1485          const suspendSelectors = {
1486            ...boundMetadataSelectors,
1487            // no special suspense behavior
1488            ...mapValues(boundSelectors, bindSuspendSelector)
1489          };
1490          const allSuspendSelectors = createPrivateProxy(
1491            suspendSelectors,
1492            createBindingCache(
1493              (name) => boundPrivateSelectors.get(name),
1494              bindSuspendSelector
1495            )
1496          );
1497          lock(suspendSelectors, allSuspendSelectors);
1498          const getSelectors = () => selectors;
1499          const getActions = () => actions;
1500          const getResolveSelectors = () => resolveSelectors;
1501          const getSuspendSelectors = () => suspendSelectors;
1502          store.__unstableOriginalGetState = store.getState;
1503          store.getState = () => store.__unstableOriginalGetState().root;
1504          const subscribe2 = (listener) => {
1505            listeners.add(listener);
1506            return () => listeners.delete(listener);
1507          };
1508          let lastState = store.__unstableOriginalGetState();
1509          store.subscribe(() => {
1510            const state = store.__unstableOriginalGetState();
1511            const hasChanged = state !== lastState;
1512            lastState = state;
1513            if (hasChanged) {
1514              for (const listener of listeners) {
1515                listener();
1516              }
1517            }
1518          });
1519          return {
1520            reducer,
1521            store,
1522            actions,
1523            selectors,
1524            resolvers,
1525            getSelectors,
1526            getResolveSelectors,
1527            getSuspendSelectors,
1528            getActions,
1529            subscribe: subscribe2
1530          };
1531        }
1532      };
1533      lock(storeDescriptor, privateRegistrationFunctions);
1534      return storeDescriptor;
1535    }
1536    function instantiateReduxStore(key, options, registry, thunkArgs) {
1537      const controls2 = {
1538        ...options.controls,
1539        ...builtinControls
1540      };
1541      const normalizedControls = mapValues(
1542        controls2,
1543        (control) => control.isRegistryControl ? control(registry) : control
1544      );
1545      const middlewares = [
1546        resolvers_cache_middleware_default(registry, key),
1547        promise_middleware_default,
1548        (0, import_redux_routine.default)(normalizedControls),
1549        createThunkMiddleware(thunkArgs)
1550      ];
1551      const enhancers = [applyMiddleware(...middlewares)];
1552      if (typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION__) {
1553        enhancers.push(
1554          window.__REDUX_DEVTOOLS_EXTENSION__({
1555            name: key,
1556            instanceId: key,
1557            serialize: {
1558              replacer: devToolsReplacer
1559            }
1560          })
1561        );
1562      }
1563      const { reducer, initialState } = options;
1564      const enhancedReducer = combineReducers({
1565        metadata: reducer_default,
1566        root: reducer
1567      });
1568      return createStore(
1569        enhancedReducer,
1570        { root: initialState },
1571        (0, import_compose.compose)(...enhancers)
1572      );
1573    }
1574    function mapResolveSelector(store, resolvers, boundMetadataSelectors) {
1575      return (selector, selectorName) => {
1576        if (!selector.hasResolver) {
1577          return async (...args) => selector(...args);
1578        }
1579        return (...args) => new Promise((resolve, reject) => {
1580          const resolver = resolvers[selectorName];
1581          const hasFinished = () => {
1582            return boundMetadataSelectors.hasFinishedResolution(
1583              selectorName,
1584              args
1585            ) || typeof resolver.isFulfilled === "function" && resolver.isFulfilled(store.getState(), ...args);
1586          };
1587          const finalize = (result2) => {
1588            const hasFailed = boundMetadataSelectors.hasResolutionFailed(
1589              selectorName,
1590              args
1591            );
1592            if (hasFailed) {
1593              const error = boundMetadataSelectors.getResolutionError(
1594                selectorName,
1595                args
1596              );
1597              reject(error);
1598            } else {
1599              resolve(result2);
1600            }
1601          };
1602          const getResult = () => selector(...args);
1603          const result = getResult();
1604          if (hasFinished()) {
1605            return finalize(result);
1606          }
1607          const unsubscribe = store.subscribe(() => {
1608            if (hasFinished()) {
1609              unsubscribe();
1610              finalize(getResult());
1611            }
1612          });
1613        });
1614      };
1615    }
1616    function mapSuspendSelector(store, boundMetadataSelectors) {
1617      return (selector, selectorName) => {
1618        if (!selector.hasResolver) {
1619          return selector;
1620        }
1621        return (...args) => {
1622          const result = selector(...args);
1623          if (boundMetadataSelectors.hasFinishedResolution(
1624            selectorName,
1625            args
1626          )) {
1627            if (boundMetadataSelectors.hasResolutionFailed(
1628              selectorName,
1629              args
1630            )) {
1631              throw boundMetadataSelectors.getResolutionError(
1632                selectorName,
1633                args
1634              );
1635            }
1636            return result;
1637          }
1638          throw new Promise((resolve) => {
1639            const unsubscribe = store.subscribe(() => {
1640              if (boundMetadataSelectors.hasFinishedResolution(
1641                selectorName,
1642                args
1643              )) {
1644                resolve();
1645                unsubscribe();
1646              }
1647            });
1648          });
1649        };
1650      };
1651    }
1652    function mapResolver(resolver) {
1653      if (resolver.fulfill) {
1654        return resolver;
1655      }
1656      return {
1657        ...resolver,
1658        // Copy the enumerable properties of the resolver function.
1659        fulfill: resolver
1660        // Add the fulfill method.
1661      };
1662    }
1663    function mapSelectorWithResolver(selector, selectorName, resolver, store, resolversCache, boundMetadataSelectors) {
1664      function fulfillSelector(args) {
1665        if (resolversCache.isRunning(selectorName, args) || boundMetadataSelectors.hasStartedResolution(selectorName, args) || typeof resolver.isFulfilled === "function" && resolver.isFulfilled(store.getState(), ...args)) {
1666          return;
1667        }
1668        resolversCache.markAsRunning(selectorName, args);
1669        setTimeout(async () => {
1670          resolversCache.clear(selectorName, args);
1671          store.dispatch(
1672            startResolution(selectorName, args)
1673          );
1674          try {
1675            const action = resolver.fulfill(...args);
1676            if (action) {
1677              await store.dispatch(action);
1678            }
1679            store.dispatch(
1680              finishResolution(selectorName, args)
1681            );
1682          } catch (error) {
1683            store.dispatch(
1684              failResolution(selectorName, args, error)
1685            );
1686          }
1687        }, 0);
1688      }
1689      const selectorResolver = (...args) => {
1690        args = normalize(selector, args);
1691        fulfillSelector(args);
1692        return selector(...args);
1693      };
1694      selectorResolver.hasResolver = true;
1695      return selectorResolver;
1696    }
1697    function normalize(selector, args) {
1698      if (selector.__unstableNormalizeArgs && typeof selector.__unstableNormalizeArgs === "function" && args?.length) {
1699        return selector.__unstableNormalizeArgs(args);
1700      }
1701      return args;
1702    }
1703  
1704    // packages/data/build-module/store/index.mjs
1705    var coreDataStore = {
1706      name: "core/data",
1707      instantiate(registry) {
1708        const getCoreDataSelector = (selectorName) => (key, ...args) => {
1709          return registry.select(key)[selectorName](...args);
1710        };
1711        const getCoreDataAction = (actionName) => (key, ...args) => {
1712          return registry.dispatch(key)[actionName](...args);
1713        };
1714        return {
1715          getSelectors() {
1716            return Object.fromEntries(
1717              [
1718                "getIsResolving",
1719                "hasStartedResolution",
1720                "hasFinishedResolution",
1721                "isResolving",
1722                "getCachedResolvers"
1723              ].map((selectorName) => [
1724                selectorName,
1725                getCoreDataSelector(selectorName)
1726              ])
1727            );
1728          },
1729          getActions() {
1730            return Object.fromEntries(
1731              [
1732                "startResolution",
1733                "finishResolution",
1734                "invalidateResolution",
1735                "invalidateResolutionForStore",
1736                "invalidateResolutionForStoreSelector"
1737              ].map((actionName) => [
1738                actionName,
1739                getCoreDataAction(actionName)
1740              ])
1741            );
1742          },
1743          subscribe() {
1744            return () => () => {
1745            };
1746          }
1747        };
1748      }
1749    };
1750    var store_default = coreDataStore;
1751  
1752    // packages/data/build-module/utils/emitter.mjs
1753    function createEmitter() {
1754      let isPaused = false;
1755      let isPending = false;
1756      const listeners = /* @__PURE__ */ new Set();
1757      const notifyListeners = () => (
1758        // We use Array.from to clone the listeners Set
1759        // This ensures that we don't run a listener
1760        // that was added as a response to another listener.
1761        Array.from(listeners).forEach((listener) => listener())
1762      );
1763      return {
1764        get isPaused() {
1765          return isPaused;
1766        },
1767        subscribe(listener) {
1768          listeners.add(listener);
1769          return () => listeners.delete(listener);
1770        },
1771        pause() {
1772          isPaused = true;
1773        },
1774        resume() {
1775          isPaused = false;
1776          if (isPending) {
1777            isPending = false;
1778            notifyListeners();
1779          }
1780        },
1781        emit() {
1782          if (isPaused) {
1783            isPending = true;
1784            return;
1785          }
1786          notifyListeners();
1787        }
1788      };
1789    }
1790  
1791    // packages/data/build-module/registry.mjs
1792    function getStoreName(storeNameOrDescriptor) {
1793      return typeof storeNameOrDescriptor === "string" ? storeNameOrDescriptor : storeNameOrDescriptor.name;
1794    }
1795    function createRegistry(storeConfigs = {}, parent = null) {
1796      const stores = {};
1797      const emitter = createEmitter();
1798      let listeningStores = null;
1799      function globalListener() {
1800        emitter.emit();
1801      }
1802      const subscribe2 = (listener, storeNameOrDescriptor) => {
1803        if (!storeNameOrDescriptor) {
1804          return emitter.subscribe(listener);
1805        }
1806        const storeName = getStoreName(storeNameOrDescriptor);
1807        const store = stores[storeName];
1808        if (store) {
1809          return store.subscribe(listener);
1810        }
1811        if (!parent) {
1812          return emitter.subscribe(listener);
1813        }
1814        return parent.subscribe(listener, storeNameOrDescriptor);
1815      };
1816      function select3(storeNameOrDescriptor) {
1817        const storeName = getStoreName(storeNameOrDescriptor);
1818        listeningStores?.add(storeName);
1819        const store = stores[storeName];
1820        if (store) {
1821          return store.getSelectors();
1822        }
1823        return parent?.select(storeName);
1824      }
1825      function __unstableMarkListeningStores(callback, ref) {
1826        listeningStores = /* @__PURE__ */ new Set();
1827        try {
1828          return callback.call(this);
1829        } finally {
1830          ref.current = Array.from(listeningStores);
1831          listeningStores = null;
1832        }
1833      }
1834      function resolveSelect3(storeNameOrDescriptor) {
1835        const storeName = getStoreName(storeNameOrDescriptor);
1836        listeningStores?.add(storeName);
1837        const store = stores[storeName];
1838        if (store) {
1839          return store.getResolveSelectors();
1840        }
1841        return parent && parent.resolveSelect(storeName);
1842      }
1843      function suspendSelect2(storeNameOrDescriptor) {
1844        const storeName = getStoreName(storeNameOrDescriptor);
1845        listeningStores?.add(storeName);
1846        const store = stores[storeName];
1847        if (store) {
1848          return store.getSuspendSelectors();
1849        }
1850        return parent && parent.suspendSelect(storeName);
1851      }
1852      function dispatch3(storeNameOrDescriptor) {
1853        const storeName = getStoreName(storeNameOrDescriptor);
1854        const store = stores[storeName];
1855        if (store) {
1856          return store.getActions();
1857        }
1858        return parent && parent.dispatch(storeName);
1859      }
1860      function withPlugins(attributes) {
1861        return Object.fromEntries(
1862          Object.entries(attributes).map(([key, attribute]) => {
1863            if (typeof attribute !== "function") {
1864              return [key, attribute];
1865            }
1866            return [
1867              key,
1868              (...args) => {
1869                return registry[key](...args);
1870              }
1871            ];
1872          })
1873        );
1874      }
1875      function registerStoreInstance(name, createStoreFunc) {
1876        if (stores[name]) {
1877          console.error('Store "' + name + '" is already registered.');
1878          return stores[name];
1879        }
1880        const store = createStoreFunc();
1881        if (typeof store.getSelectors !== "function") {
1882          throw new TypeError("store.getSelectors must be a function");
1883        }
1884        if (typeof store.getActions !== "function") {
1885          throw new TypeError("store.getActions must be a function");
1886        }
1887        if (typeof store.subscribe !== "function") {
1888          throw new TypeError("store.subscribe must be a function");
1889        }
1890        store.emitter = createEmitter();
1891        const currentSubscribe = store.subscribe;
1892        store.subscribe = (listener) => {
1893          const unsubscribeFromEmitter = store.emitter.subscribe(listener);
1894          const unsubscribeFromStore = currentSubscribe(() => {
1895            if (store.emitter.isPaused) {
1896              store.emitter.emit();
1897              return;
1898            }
1899            listener();
1900          });
1901          return () => {
1902            unsubscribeFromStore?.();
1903            unsubscribeFromEmitter?.();
1904          };
1905        };
1906        stores[name] = store;
1907        store.subscribe(globalListener);
1908        if (parent) {
1909          try {
1910            unlock(store.store).registerPrivateActions(
1911              unlock(parent).privateActionsOf(name)
1912            );
1913            unlock(store.store).registerPrivateSelectors(
1914              unlock(parent).privateSelectorsOf(name)
1915            );
1916          } catch {
1917          }
1918        }
1919        return store;
1920      }
1921      function register2(store) {
1922        registerStoreInstance(
1923          store.name,
1924          () => store.instantiate(registry)
1925        );
1926      }
1927      function registerGenericStore2(name, store) {
1928        (0, import_deprecated2.default)("wp.data.registerGenericStore", {
1929          since: "5.9",
1930          alternative: "wp.data.register( storeDescriptor )"
1931        });
1932        registerStoreInstance(name, () => store);
1933      }
1934      function registerStore2(storeName, options) {
1935        if (!options.reducer) {
1936          throw new TypeError("Must specify store reducer");
1937        }
1938        const store = registerStoreInstance(
1939          storeName,
1940          () => createReduxStore(storeName, options).instantiate(
1941            registry
1942          )
1943        );
1944        return store.store;
1945      }
1946      function batch(callback) {
1947        if (emitter.isPaused) {
1948          callback();
1949          return;
1950        }
1951        emitter.pause();
1952        Object.values(stores).forEach((store) => store.emitter.pause());
1953        try {
1954          callback();
1955        } finally {
1956          emitter.resume();
1957          Object.values(stores).forEach(
1958            (store) => store.emitter.resume()
1959          );
1960        }
1961      }
1962      let registry = {
1963        batch,
1964        stores,
1965        namespaces: stores,
1966        // TODO: Deprecate/remove this.
1967        subscribe: subscribe2,
1968        select: select3,
1969        resolveSelect: resolveSelect3,
1970        suspendSelect: suspendSelect2,
1971        dispatch: dispatch3,
1972        use: use2,
1973        register: register2,
1974        registerGenericStore: registerGenericStore2,
1975        registerStore: registerStore2,
1976        __unstableMarkListeningStores
1977      };
1978      function use2(plugin, options) {
1979        if (!plugin) {
1980          return;
1981        }
1982        registry = {
1983          ...registry,
1984          ...plugin(registry, options)
1985        };
1986        return registry;
1987      }
1988      registry.register(store_default);
1989      for (const [name, config] of Object.entries(storeConfigs)) {
1990        registry.register(createReduxStore(name, config));
1991      }
1992      if (parent) {
1993        parent.subscribe(globalListener);
1994      }
1995      const registryWithPlugins = withPlugins(
1996        registry
1997      );
1998      lock(registryWithPlugins, {
1999        privateActionsOf: (name) => {
2000          try {
2001            return unlock(stores[name].store).privateActions;
2002          } catch {
2003            return {};
2004          }
2005        },
2006        privateSelectorsOf: (name) => {
2007          try {
2008            return unlock(stores[name].store).privateSelectors;
2009          } catch {
2010            return {};
2011          }
2012        }
2013      });
2014      return registryWithPlugins;
2015    }
2016  
2017    // packages/data/build-module/default-registry.mjs
2018    var defaultRegistry = createRegistry();
2019    var default_registry_default = defaultRegistry;
2020  
2021    // packages/data/build-module/plugins/index.mjs
2022    var plugins_exports = {};
2023    __export(plugins_exports, {
2024      persistence: () => persistence_default
2025    });
2026  
2027    // node_modules/is-plain-object/dist/is-plain-object.mjs
2028    function isObject(o) {
2029      return Object.prototype.toString.call(o) === "[object Object]";
2030    }
2031    function isPlainObject2(o) {
2032      var ctor, prot;
2033      if (isObject(o) === false) return false;
2034      ctor = o.constructor;
2035      if (ctor === void 0) return true;
2036      prot = ctor.prototype;
2037      if (isObject(prot) === false) return false;
2038      if (prot.hasOwnProperty("isPrototypeOf") === false) {
2039        return false;
2040      }
2041      return true;
2042    }
2043  
2044    // packages/data/build-module/plugins/persistence/index.mjs
2045    var import_deepmerge = __toESM(require_cjs(), 1);
2046  
2047    // packages/data/build-module/plugins/persistence/storage/object.mjs
2048    var objectStorage;
2049    var storage = {
2050      getItem(key) {
2051        if (!objectStorage || !objectStorage[key]) {
2052          return null;
2053        }
2054        return objectStorage[key];
2055      },
2056      setItem(key, value) {
2057        if (!objectStorage) {
2058          storage.clear();
2059        }
2060        objectStorage[key] = String(value);
2061      },
2062      clear() {
2063        objectStorage = /* @__PURE__ */ Object.create(null);
2064      }
2065    };
2066    var object_default = storage;
2067  
2068    // packages/data/build-module/plugins/persistence/storage/default.mjs
2069    var storage2;
2070    try {
2071      storage2 = window.localStorage;
2072      storage2.setItem("__wpDataTestLocalStorage", "");
2073      storage2.removeItem("__wpDataTestLocalStorage");
2074    } catch {
2075      storage2 = object_default;
2076    }
2077    var default_default = storage2;
2078  
2079    // packages/data/build-module/plugins/persistence/index.mjs
2080    var DEFAULT_STORAGE = default_default;
2081    var DEFAULT_STORAGE_KEY = "WP_DATA";
2082    var withLazySameState = (reducer) => (state, action) => {
2083      if (action.nextState === state) {
2084        return state;
2085      }
2086      return reducer(state, action);
2087    };
2088    function createPersistenceInterface(options) {
2089      const { storage: storage3 = DEFAULT_STORAGE, storageKey = DEFAULT_STORAGE_KEY } = options;
2090      let data;
2091      function getData() {
2092        if (data === void 0) {
2093          const persisted = storage3.getItem(storageKey);
2094          if (persisted === null) {
2095            data = {};
2096          } else {
2097            try {
2098              data = JSON.parse(persisted);
2099            } catch {
2100              data = {};
2101            }
2102          }
2103        }
2104        return data;
2105      }
2106      function setData(key, value) {
2107        data = { ...data, [key]: value };
2108        storage3.setItem(storageKey, JSON.stringify(data));
2109      }
2110      return {
2111        get: getData,
2112        set: setData
2113      };
2114    }
2115    function persistencePlugin(registry, pluginOptions) {
2116      const persistence = createPersistenceInterface(pluginOptions);
2117      function createPersistOnChange(getState, storeName, keys) {
2118        let getPersistedState;
2119        if (Array.isArray(keys)) {
2120          const reducers = keys.reduce(
2121            (accumulator, key) => Object.assign(accumulator, {
2122              [key]: (state, action) => action.nextState[key]
2123            }),
2124            {}
2125          );
2126          getPersistedState = withLazySameState(
2127            combineReducers2(reducers)
2128          );
2129        } else {
2130          getPersistedState = (_state, action) => action.nextState;
2131        }
2132        let lastState = getPersistedState(void 0, {
2133          nextState: getState()
2134        });
2135        return () => {
2136          const state = getPersistedState(lastState, {
2137            nextState: getState()
2138          });
2139          if (state !== lastState) {
2140            persistence.set(storeName, state);
2141            lastState = state;
2142          }
2143        };
2144      }
2145      return {
2146        registerStore(storeName, options) {
2147          if (!options.persist) {
2148            return registry.registerStore(storeName, options);
2149          }
2150          const persistedState = persistence.get()[storeName];
2151          if (persistedState !== void 0) {
2152            let initialState = options.reducer(options.initialState, {
2153              type: "@@WP/PERSISTENCE_RESTORE"
2154            });
2155            if (isPlainObject2(initialState) && isPlainObject2(persistedState)) {
2156              initialState = (0, import_deepmerge.default)(
2157                initialState,
2158                persistedState,
2159                {
2160                  isMergeableObject: isPlainObject2
2161                }
2162              );
2163            } else {
2164              initialState = persistedState;
2165            }
2166            options = {
2167              ...options,
2168              initialState
2169            };
2170          }
2171          const store = registry.registerStore(storeName, options);
2172          store.subscribe(
2173            createPersistOnChange(
2174              store.getState,
2175              storeName,
2176              options.persist
2177            )
2178          );
2179          return store;
2180        }
2181      };
2182    }
2183    var persistence_default = Object.assign(persistencePlugin, {
2184      __unstableMigrate: () => {
2185      }
2186    });
2187  
2188    // packages/data/build-module/components/with-select/index.mjs
2189    var import_compose2 = __toESM(require_compose(), 1);
2190    var import_element6 = __toESM(require_element(), 1);
2191  
2192    // packages/data/build-module/components/use-select/index.mjs
2193    var import_priority_queue = __toESM(require_priority_queue(), 1);
2194    var import_element5 = __toESM(require_element(), 1);
2195    var import_is_shallow_equal = __toESM(require_is_shallow_equal(), 1);
2196  
2197    // packages/data/build-module/components/registry-provider/use-registry.mjs
2198    var import_element2 = __toESM(require_element(), 1);
2199  
2200    // packages/data/build-module/components/registry-provider/context.mjs
2201    var import_element = __toESM(require_element(), 1);
2202    var Context = (0, import_element.createContext)(default_registry_default);
2203    Context.displayName = "RegistryProviderContext";
2204    var { Consumer, Provider } = Context;
2205    var RegistryConsumer = Consumer;
2206    var context_default = Provider;
2207  
2208    // packages/data/build-module/components/registry-provider/use-registry.mjs
2209    function useRegistry() {
2210      return (0, import_element2.useContext)(Context);
2211    }
2212  
2213    // packages/data/build-module/components/async-mode-provider/use-async-mode.mjs
2214    var import_element4 = __toESM(require_element(), 1);
2215  
2216    // packages/data/build-module/components/async-mode-provider/context.mjs
2217    var import_element3 = __toESM(require_element(), 1);
2218    var Context2 = (0, import_element3.createContext)(false);
2219    Context2.displayName = "AsyncModeContext";
2220    var { Consumer: Consumer2, Provider: Provider2 } = Context2;
2221    var context_default2 = Provider2;
2222  
2223    // packages/data/build-module/components/async-mode-provider/use-async-mode.mjs
2224    function useAsyncMode() {
2225      return (0, import_element4.useContext)(Context2);
2226    }
2227  
2228    // packages/data/build-module/components/use-select/index.mjs
2229    var renderQueue = (0, import_priority_queue.createQueue)();
2230    function warnOnUnstableReference(a, b) {
2231      if (!a || !b) {
2232        return;
2233      }
2234      const keys = typeof a === "object" && typeof b === "object" ? Object.keys(a).filter((k) => a[k] !== b[k]) : [];
2235      console.warn(
2236        "The `useSelect` hook returns different values when called with the same state and parameters.\nThis can lead to unnecessary re-renders and performance issues if not fixed.\n\nNon-equal value keys: %s\n\n",
2237        keys.join(", ")
2238      );
2239    }
2240    function Store(registry, suspense) {
2241      const select3 = suspense ? registry.suspendSelect : registry.select;
2242      const queueContext = {};
2243      let lastMapSelect;
2244      let lastMapResult;
2245      let lastMapResultValid = false;
2246      let lastIsAsync;
2247      let subscriber;
2248      let didWarnUnstableReference;
2249      const storeStatesOnMount = /* @__PURE__ */ new Map();
2250      function getStoreState(name) {
2251        return registry.stores[name]?.store?.getState?.() ?? {};
2252      }
2253      const createSubscriber = (stores) => {
2254        const activeStores = [...stores];
2255        const activeSubscriptions = /* @__PURE__ */ new Set();
2256        function subscribe2(listener) {
2257          if (lastMapResultValid) {
2258            for (const name of activeStores) {
2259              if (storeStatesOnMount.get(name) !== getStoreState(name)) {
2260                lastMapResultValid = false;
2261              }
2262            }
2263          }
2264          storeStatesOnMount.clear();
2265          const onStoreChange = () => {
2266            lastMapResultValid = false;
2267            listener();
2268          };
2269          const onChange = () => {
2270            if (lastIsAsync) {
2271              renderQueue.add(queueContext, onStoreChange);
2272            } else {
2273              onStoreChange();
2274            }
2275          };
2276          const unsubs = [];
2277          function subscribeStore(storeName) {
2278            unsubs.push(registry.subscribe(onChange, storeName));
2279          }
2280          for (const storeName of activeStores) {
2281            subscribeStore(storeName);
2282          }
2283          activeSubscriptions.add(subscribeStore);
2284          return () => {
2285            activeSubscriptions.delete(subscribeStore);
2286            for (const unsub of unsubs.values()) {
2287              unsub?.();
2288            }
2289            renderQueue.cancel(queueContext);
2290          };
2291        }
2292        function updateStores(newStores) {
2293          for (const newStore of newStores) {
2294            if (activeStores.includes(newStore)) {
2295              continue;
2296            }
2297            activeStores.push(newStore);
2298            for (const subscription of activeSubscriptions) {
2299              subscription(newStore);
2300            }
2301          }
2302        }
2303        return { subscribe: subscribe2, updateStores };
2304      };
2305      return (mapSelect, isAsync) => {
2306        function updateValue() {
2307          if (lastMapResultValid && mapSelect === lastMapSelect) {
2308            return;
2309          }
2310          const listeningStores = { current: null };
2311          const mapResult = registry.__unstableMarkListeningStores(
2312            () => mapSelect(select3, registry),
2313            listeningStores
2314          );
2315          if (true) {
2316            if (!didWarnUnstableReference) {
2317              const secondMapResult = mapSelect(select3, registry);
2318              if (!(0, import_is_shallow_equal.isShallowEqual)(mapResult, secondMapResult)) {
2319                warnOnUnstableReference(mapResult, secondMapResult);
2320                didWarnUnstableReference = true;
2321              }
2322            }
2323          }
2324          if (!subscriber) {
2325            for (const name of listeningStores.current) {
2326              storeStatesOnMount.set(name, getStoreState(name));
2327            }
2328            subscriber = createSubscriber(listeningStores.current);
2329          } else {
2330            subscriber.updateStores(listeningStores.current);
2331          }
2332          if (!(0, import_is_shallow_equal.isShallowEqual)(lastMapResult, mapResult)) {
2333            lastMapResult = mapResult;
2334          }
2335          lastMapSelect = mapSelect;
2336          lastMapResultValid = true;
2337        }
2338        function getValue() {
2339          updateValue();
2340          return lastMapResult;
2341        }
2342        if (lastIsAsync && !isAsync) {
2343          lastMapResultValid = false;
2344          renderQueue.cancel(queueContext);
2345        }
2346        updateValue();
2347        lastIsAsync = isAsync;
2348        return { subscribe: subscriber.subscribe, getValue };
2349      };
2350    }
2351    function _useStaticSelect(storeName) {
2352      return useRegistry().select(storeName);
2353    }
2354    function _useMappingSelect(suspense, mapSelect, deps) {
2355      const registry = useRegistry();
2356      const isAsync = useAsyncMode();
2357      const store = (0, import_element5.useMemo)(
2358        () => Store(registry, suspense),
2359        [registry, suspense]
2360      );
2361      const selector = (0, import_element5.useCallback)(mapSelect, deps);
2362      const { subscribe: subscribe2, getValue } = store(selector, isAsync);
2363      const result = (0, import_element5.useSyncExternalStore)(subscribe2, getValue, getValue);
2364      (0, import_element5.useDebugValue)(result);
2365      return result;
2366    }
2367    function useSelect(mapSelect, deps) {
2368      const staticSelectMode = typeof mapSelect !== "function";
2369      const staticSelectModeRef = (0, import_element5.useRef)(staticSelectMode);
2370      if (staticSelectMode !== staticSelectModeRef.current) {
2371        const prevMode = staticSelectModeRef.current ? "static" : "mapping";
2372        const nextMode = staticSelectMode ? "static" : "mapping";
2373        throw new Error(
2374          `Switching useSelect from $prevMode} to $nextMode} is not allowed`
2375        );
2376      }
2377      return staticSelectMode ? _useStaticSelect(mapSelect) : _useMappingSelect(false, mapSelect, deps);
2378    }
2379    function useSuspenseSelect(mapSelect, deps) {
2380      return _useMappingSelect(true, mapSelect, deps);
2381    }
2382  
2383    // packages/data/build-module/components/with-select/index.mjs
2384    var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
2385    var withSelect = (mapSelectToProps) => (0, import_compose2.createHigherOrderComponent)(
2386      (WrappedComponent) => (0, import_element6.memo)(
2387        (0, import_element6.forwardRef)(function WithSelect(ownProps, ref) {
2388          const mapSelect = (select3, registry) => mapSelectToProps(select3, ownProps, registry);
2389          const mergeProps = useSelect(mapSelect);
2390          return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
2391            WrappedComponent,
2392            {
2393              ref,
2394              ...ownProps,
2395              ...mergeProps
2396            }
2397          );
2398        })
2399      ),
2400      "withSelect"
2401    );
2402    var with_select_default = withSelect;
2403  
2404    // packages/data/build-module/components/with-dispatch/index.mjs
2405    var import_compose4 = __toESM(require_compose(), 1);
2406  
2407    // packages/data/build-module/components/use-dispatch/use-dispatch.mjs
2408    var useDispatch = (storeNameOrDescriptor) => {
2409      const { dispatch: dispatch3 } = useRegistry();
2410      return storeNameOrDescriptor === void 0 ? dispatch3 : dispatch3(storeNameOrDescriptor);
2411    };
2412    var use_dispatch_default = useDispatch;
2413  
2414    // packages/data/build-module/components/use-dispatch/use-dispatch-with-map.mjs
2415    var import_element7 = __toESM(require_element(), 1);
2416    var import_compose3 = __toESM(require_compose(), 1);
2417    var useDispatchWithMap = (dispatchMap, deps) => {
2418      const registry = useRegistry();
2419      const currentDispatchMapRef = (0, import_element7.useRef)(dispatchMap);
2420      (0, import_compose3.useIsomorphicLayoutEffect)(() => {
2421        currentDispatchMapRef.current = dispatchMap;
2422      });
2423      return (0, import_element7.useMemo)(() => {
2424        const currentDispatchProps = currentDispatchMapRef.current(
2425          registry.dispatch,
2426          registry
2427        );
2428        return Object.fromEntries(
2429          Object.entries(currentDispatchProps).map(
2430            ([propName, dispatcher]) => {
2431              if (typeof dispatcher !== "function") {
2432                console.warn(
2433                  `Property $propName} returned from dispatchMap in useDispatchWithMap must be a function.`
2434                );
2435              }
2436              return [
2437                propName,
2438                (...args) => currentDispatchMapRef.current(registry.dispatch, registry)[propName](...args)
2439              ];
2440            }
2441          )
2442        );
2443      }, [registry, ...deps]);
2444    };
2445    var use_dispatch_with_map_default = useDispatchWithMap;
2446  
2447    // packages/data/build-module/components/with-dispatch/index.mjs
2448    var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
2449    var withDispatch = (mapDispatchToProps) => (0, import_compose4.createHigherOrderComponent)(
2450      (WrappedComponent) => (ownProps) => {
2451        const mapDispatch = (dispatch3, registry) => mapDispatchToProps(dispatch3, ownProps, registry);
2452        const dispatchProps = use_dispatch_with_map_default(mapDispatch, []);
2453        return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WrappedComponent, { ...ownProps, ...dispatchProps });
2454      },
2455      "withDispatch"
2456    );
2457    var with_dispatch_default = withDispatch;
2458  
2459    // packages/data/build-module/components/with-registry/index.mjs
2460    var import_compose5 = __toESM(require_compose(), 1);
2461    var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
2462    var withRegistry = (0, import_compose5.createHigherOrderComponent)(
2463      (OriginalComponent) => (props) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(RegistryConsumer, { children: (registry) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(OriginalComponent, { ...props, registry }) }),
2464      "withRegistry"
2465    );
2466    var with_registry_default = withRegistry;
2467  
2468    // packages/data/build-module/dispatch.mjs
2469    function dispatch2(storeNameOrDescriptor) {
2470      return default_registry_default.dispatch(
2471        storeNameOrDescriptor
2472      );
2473    }
2474  
2475    // packages/data/build-module/select.mjs
2476    function select2(storeNameOrDescriptor) {
2477      return default_registry_default.select(
2478        storeNameOrDescriptor
2479      );
2480    }
2481  
2482    // packages/data/build-module/index.mjs
2483    var combineReducers2 = combineReducers;
2484    function resolveSelect2(storeNameOrDescriptor) {
2485      return default_registry_default.resolveSelect(
2486        storeNameOrDescriptor
2487      );
2488    }
2489    var suspendSelect = (storeNameOrDescriptor) => default_registry_default.suspendSelect(storeNameOrDescriptor);
2490    var subscribe = (listener, storeNameOrDescriptor) => default_registry_default.subscribe(listener, storeNameOrDescriptor);
2491    var registerGenericStore = default_registry_default.registerGenericStore;
2492    var registerStore = default_registry_default.registerStore;
2493    var use = default_registry_default.use;
2494    var register = (store) => default_registry_default.register(store);
2495    return __toCommonJS(index_exports);
2496  })();
2497  /*! Bundled license information:
2498  
2499  is-plain-object/dist/is-plain-object.mjs:
2500    (*!
2501     * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
2502     *
2503     * Copyright (c) 2014-2017, Jon Schlinkert.
2504     * Released under the MIT License.
2505     *)
2506  */


Generated : Fri Jul 10 08:20:14 2026 Cross-referenced by PHPXref