[ 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: () => createSelector,
 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/create-selector.mjs
1094    var createSelector = rememo_default;
1095  
1096    // packages/data/build-module/redux-store/metadata/selectors.mjs
1097    function getResolutionState(state, selectorName, args) {
1098      const map = state[selectorName];
1099      if (!map) {
1100        return;
1101      }
1102      return map.get(selectorArgsToStateKey(args));
1103    }
1104    function getIsResolving(state, selectorName, args) {
1105      (0, import_deprecated.default)("wp.data.select( store ).getIsResolving", {
1106        since: "6.6",
1107        version: "6.8",
1108        alternative: "wp.data.select( store ).getResolutionState"
1109      });
1110      const resolutionState = getResolutionState(state, selectorName, args);
1111      return resolutionState && resolutionState.status === "resolving";
1112    }
1113    function hasStartedResolution(state, selectorName, args) {
1114      return getResolutionState(state, selectorName, args) !== void 0;
1115    }
1116    function hasFinishedResolution(state, selectorName, args) {
1117      const status = getResolutionState(state, selectorName, args)?.status;
1118      return status === "finished" || status === "error";
1119    }
1120    function hasResolutionFailed(state, selectorName, args) {
1121      return getResolutionState(state, selectorName, args)?.status === "error";
1122    }
1123    function getResolutionError(state, selectorName, args) {
1124      const resolutionState = getResolutionState(state, selectorName, args);
1125      return resolutionState?.status === "error" ? resolutionState.error : null;
1126    }
1127    function isResolving(state, selectorName, args) {
1128      return getResolutionState(state, selectorName, args)?.status === "resolving";
1129    }
1130    function getCachedResolvers(state) {
1131      return state;
1132    }
1133    function hasResolvingSelectors(state) {
1134      return Object.values(state).some(
1135        (selectorState) => (
1136          /**
1137           * This uses the internal `_map` property of `EquivalentKeyMap` for
1138           * optimization purposes, since the `EquivalentKeyMap` implementation
1139           * does not support a `.values()` implementation.
1140           *
1141           * @see https://github.com/aduth/equivalent-key-map
1142           */
1143          Array.from(selectorState._map.values()).some(
1144            (resolution) => resolution[1]?.status === "resolving"
1145          )
1146        )
1147      );
1148    }
1149    var countSelectorsByStatus = createSelector(
1150      (state) => {
1151        const selectorsByStatus = {};
1152        Object.values(state).forEach(
1153          (selectorState) => (
1154            /**
1155             * This uses the internal `_map` property of `EquivalentKeyMap` for
1156             * optimization purposes, since the `EquivalentKeyMap` implementation
1157             * does not support a `.values()` implementation.
1158             *
1159             * @see https://github.com/aduth/equivalent-key-map
1160             */
1161            Array.from(selectorState._map.values()).forEach(
1162              (resolution) => {
1163                const currentStatus = resolution[1]?.status ?? "error";
1164                if (!selectorsByStatus[currentStatus]) {
1165                  selectorsByStatus[currentStatus] = 0;
1166                }
1167                selectorsByStatus[currentStatus]++;
1168              }
1169            )
1170          )
1171        );
1172        return selectorsByStatus;
1173      },
1174      (state) => [state]
1175    );
1176  
1177    // packages/data/build-module/redux-store/metadata/actions.mjs
1178    var actions_exports = {};
1179    __export(actions_exports, {
1180      failResolution: () => failResolution,
1181      failResolutions: () => failResolutions,
1182      finishResolution: () => finishResolution,
1183      finishResolutions: () => finishResolutions,
1184      invalidateResolution: () => invalidateResolution,
1185      invalidateResolutionForStore: () => invalidateResolutionForStore,
1186      invalidateResolutionForStoreSelector: () => invalidateResolutionForStoreSelector,
1187      startResolution: () => startResolution,
1188      startResolutions: () => startResolutions
1189    });
1190    function startResolution(selectorName, args) {
1191      return {
1192        type: "START_RESOLUTION",
1193        selectorName,
1194        args
1195      };
1196    }
1197    function finishResolution(selectorName, args) {
1198      return {
1199        type: "FINISH_RESOLUTION",
1200        selectorName,
1201        args
1202      };
1203    }
1204    function failResolution(selectorName, args, error) {
1205      return {
1206        type: "FAIL_RESOLUTION",
1207        selectorName,
1208        args,
1209        error
1210      };
1211    }
1212    function startResolutions(selectorName, args) {
1213      return {
1214        type: "START_RESOLUTIONS",
1215        selectorName,
1216        args
1217      };
1218    }
1219    function finishResolutions(selectorName, args) {
1220      return {
1221        type: "FINISH_RESOLUTIONS",
1222        selectorName,
1223        args
1224      };
1225    }
1226    function failResolutions(selectorName, args, errors) {
1227      return {
1228        type: "FAIL_RESOLUTIONS",
1229        selectorName,
1230        args,
1231        errors
1232      };
1233    }
1234    function invalidateResolution(selectorName, args) {
1235      return {
1236        type: "INVALIDATE_RESOLUTION",
1237        selectorName,
1238        args
1239      };
1240    }
1241    function invalidateResolutionForStore() {
1242      return {
1243        type: "INVALIDATE_RESOLUTION_FOR_STORE"
1244      };
1245    }
1246    function invalidateResolutionForStoreSelector(selectorName) {
1247      return {
1248        type: "INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR",
1249        selectorName
1250      };
1251    }
1252  
1253    // packages/data/build-module/redux-store/index.mjs
1254    var trimUndefinedValues = (array) => {
1255      const result = [...array];
1256      for (let i = result.length - 1; i >= 0; i--) {
1257        if (result[i] === void 0) {
1258          result.splice(i, 1);
1259        }
1260      }
1261      return result;
1262    };
1263    var mapValues = (obj, callback) => Object.fromEntries(
1264      Object.entries(obj ?? {}).map(([key, value]) => [
1265        key,
1266        callback(value, key)
1267      ])
1268    );
1269    var devToolsReplacer = (_key, state) => {
1270      if (state instanceof Map) {
1271        return Object.fromEntries(state);
1272      }
1273      if (typeof window !== "undefined" && state instanceof window.HTMLElement) {
1274        return null;
1275      }
1276      return state;
1277    };
1278    function createResolversCache() {
1279      const cache = {};
1280      return {
1281        isRunning(selectorName, args) {
1282          return !!(cache[selectorName] && cache[selectorName].get(trimUndefinedValues(args)));
1283        },
1284        clear(selectorName, args) {
1285          if (cache[selectorName]) {
1286            cache[selectorName].delete(trimUndefinedValues(args));
1287          }
1288        },
1289        markAsRunning(selectorName, args) {
1290          if (!cache[selectorName]) {
1291            cache[selectorName] = new import_equivalent_key_map2.default();
1292          }
1293          cache[selectorName].set(trimUndefinedValues(args), true);
1294        }
1295      };
1296    }
1297    function createBindingCache(getItem, bindItem) {
1298      const cache = /* @__PURE__ */ new WeakMap();
1299      return {
1300        get(itemName) {
1301          const item = getItem(itemName);
1302          if (!item) {
1303            return null;
1304          }
1305          let boundItem = cache.get(item);
1306          if (!boundItem) {
1307            boundItem = bindItem(item, itemName);
1308            cache.set(item, boundItem);
1309          }
1310          return boundItem;
1311        }
1312      };
1313    }
1314    function createPrivateProxy(publicItems, privateItems) {
1315      return new Proxy(publicItems, {
1316        get: (target, itemName) => privateItems.get(itemName) || Reflect.get(target, itemName)
1317      });
1318    }
1319    function createReduxStore(key, options) {
1320      const privateActions = {};
1321      const privateSelectors = {};
1322      const privateRegistrationFunctions = {
1323        privateActions,
1324        registerPrivateActions: (actions) => {
1325          Object.assign(privateActions, actions);
1326        },
1327        privateSelectors,
1328        registerPrivateSelectors: (selectors) => {
1329          Object.assign(privateSelectors, selectors);
1330        }
1331      };
1332      const storeDescriptor = {
1333        name: key,
1334        instantiate: (registry) => {
1335          const listeners = /* @__PURE__ */ new Set();
1336          const reducer = options.reducer;
1337          const thunkArgs = {
1338            registry,
1339            get dispatch() {
1340              return thunkDispatch;
1341            },
1342            get select() {
1343              return thunkSelect;
1344            },
1345            get resolveSelect() {
1346              return resolveSelectors;
1347            }
1348          };
1349          const store = instantiateReduxStore(
1350            key,
1351            options,
1352            registry,
1353            thunkArgs
1354          );
1355          lock(store, privateRegistrationFunctions);
1356          const resolversCache = createResolversCache();
1357          function bindAction(action) {
1358            return (...args) => Promise.resolve(store.dispatch(action(...args)));
1359          }
1360          const actions = {
1361            ...mapValues(
1362              actions_exports,
1363              bindAction
1364            ),
1365            ...mapValues(
1366              options.actions,
1367              bindAction
1368            )
1369          };
1370          const allActions = createPrivateProxy(
1371            actions,
1372            createBindingCache(
1373              (name) => privateActions[name],
1374              bindAction
1375            )
1376          );
1377          const thunkDispatch = new Proxy(
1378            (action) => store.dispatch(action),
1379            {
1380              get: (_target, name) => allActions[name]
1381            }
1382          );
1383          lock(actions, allActions);
1384          const resolvers = options.resolvers ? mapValues(
1385            options.resolvers,
1386            mapResolver
1387          ) : {};
1388          function bindSelector(selector, selectorName) {
1389            if (selector.isRegistrySelector) {
1390              selector.registry = registry;
1391            }
1392            const boundSelector = (...args) => {
1393              args = normalize(selector, args);
1394              const state = store.__unstableOriginalGetState();
1395              if (selector.isRegistrySelector) {
1396                selector.registry = registry;
1397              }
1398              return selector(state.root, ...args);
1399            };
1400            boundSelector.__unstableNormalizeArgs = selector.__unstableNormalizeArgs;
1401            const resolver = resolvers[selectorName];
1402            if (!resolver) {
1403              boundSelector.hasResolver = false;
1404              return boundSelector;
1405            }
1406            return mapSelectorWithResolver(
1407              boundSelector,
1408              selectorName,
1409              resolver,
1410              store,
1411              resolversCache,
1412              boundMetadataSelectors
1413            );
1414          }
1415          function bindMetadataSelector(metaDataSelector) {
1416            const boundSelector = (selectorName, selectorArgs, ...args) => {
1417              if (selectorName) {
1418                const targetSelector = options.selectors?.[selectorName];
1419                if (targetSelector) {
1420                  selectorArgs = normalize(
1421                    targetSelector,
1422                    selectorArgs
1423                  );
1424                }
1425              }
1426              const state = store.__unstableOriginalGetState();
1427              return metaDataSelector(
1428                state.metadata,
1429                selectorName,
1430                selectorArgs,
1431                ...args
1432              );
1433            };
1434            boundSelector.hasResolver = false;
1435            return boundSelector;
1436          }
1437          const boundMetadataSelectors = mapValues(
1438            selectors_exports,
1439            bindMetadataSelector
1440          );
1441          const boundSelectors = mapValues(
1442            options.selectors,
1443            bindSelector
1444          );
1445          const selectors = {
1446            ...boundMetadataSelectors,
1447            ...boundSelectors
1448          };
1449          const boundPrivateSelectors = createBindingCache(
1450            (name) => privateSelectors[name],
1451            bindSelector
1452          );
1453          const allSelectors = createPrivateProxy(
1454            selectors,
1455            boundPrivateSelectors
1456          );
1457          for (const selectorName of Object.keys(privateSelectors)) {
1458            boundPrivateSelectors.get(selectorName);
1459          }
1460          const thunkSelect = new Proxy(
1461            (selector) => selector(store.__unstableOriginalGetState()),
1462            {
1463              get: (_target, name) => allSelectors[name]
1464            }
1465          );
1466          lock(selectors, allSelectors);
1467          const bindResolveSelector = mapResolveSelector(
1468            store,
1469            resolvers,
1470            boundMetadataSelectors
1471          );
1472          const resolveSelectors = mapValues(
1473            boundSelectors,
1474            bindResolveSelector
1475          );
1476          const allResolveSelectors = createPrivateProxy(
1477            resolveSelectors,
1478            createBindingCache(
1479              (name) => boundPrivateSelectors.get(name),
1480              bindResolveSelector
1481            )
1482          );
1483          lock(resolveSelectors, allResolveSelectors);
1484          const bindSuspendSelector = mapSuspendSelector(
1485            store,
1486            boundMetadataSelectors
1487          );
1488          const suspendSelectors = {
1489            ...boundMetadataSelectors,
1490            // no special suspense behavior
1491            ...mapValues(boundSelectors, bindSuspendSelector)
1492          };
1493          const allSuspendSelectors = createPrivateProxy(
1494            suspendSelectors,
1495            createBindingCache(
1496              (name) => boundPrivateSelectors.get(name),
1497              bindSuspendSelector
1498            )
1499          );
1500          lock(suspendSelectors, allSuspendSelectors);
1501          const getSelectors = () => selectors;
1502          const getActions = () => actions;
1503          const getResolveSelectors = () => resolveSelectors;
1504          const getSuspendSelectors = () => suspendSelectors;
1505          store.__unstableOriginalGetState = store.getState;
1506          store.getState = () => store.__unstableOriginalGetState().root;
1507          const subscribe2 = (listener) => {
1508            listeners.add(listener);
1509            return () => listeners.delete(listener);
1510          };
1511          let lastState = store.__unstableOriginalGetState();
1512          store.subscribe(() => {
1513            const state = store.__unstableOriginalGetState();
1514            const hasChanged = state !== lastState;
1515            lastState = state;
1516            if (hasChanged) {
1517              for (const listener of listeners) {
1518                listener();
1519              }
1520            }
1521          });
1522          return {
1523            reducer,
1524            store,
1525            actions,
1526            selectors,
1527            resolvers,
1528            getSelectors,
1529            getResolveSelectors,
1530            getSuspendSelectors,
1531            getActions,
1532            subscribe: subscribe2
1533          };
1534        }
1535      };
1536      lock(storeDescriptor, privateRegistrationFunctions);
1537      return storeDescriptor;
1538    }
1539    function instantiateReduxStore(key, options, registry, thunkArgs) {
1540      const controls2 = {
1541        ...options.controls,
1542        ...builtinControls
1543      };
1544      const normalizedControls = mapValues(
1545        controls2,
1546        (control) => control.isRegistryControl ? control(registry) : control
1547      );
1548      const middlewares = [
1549        resolvers_cache_middleware_default(registry, key),
1550        promise_middleware_default,
1551        (0, import_redux_routine.default)(normalizedControls),
1552        createThunkMiddleware(thunkArgs)
1553      ];
1554      const enhancers = [applyMiddleware(...middlewares)];
1555      if (typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION__) {
1556        enhancers.push(
1557          window.__REDUX_DEVTOOLS_EXTENSION__({
1558            name: key,
1559            instanceId: key,
1560            serialize: {
1561              replacer: devToolsReplacer
1562            }
1563          })
1564        );
1565      }
1566      const { reducer, initialState } = options;
1567      const enhancedReducer = combineReducers({
1568        metadata: reducer_default,
1569        root: reducer
1570      });
1571      return createStore(
1572        enhancedReducer,
1573        { root: initialState },
1574        (0, import_compose.compose)(...enhancers)
1575      );
1576    }
1577    function mapResolveSelector(store, resolvers, boundMetadataSelectors) {
1578      return (selector, selectorName) => {
1579        if (!selector.hasResolver) {
1580          return async (...args) => selector(...args);
1581        }
1582        return (...args) => new Promise((resolve, reject) => {
1583          const resolver = resolvers[selectorName];
1584          const hasFinished = () => {
1585            return boundMetadataSelectors.hasFinishedResolution(
1586              selectorName,
1587              args
1588            ) || typeof resolver.isFulfilled === "function" && resolver.isFulfilled(store.getState(), ...args);
1589          };
1590          const finalize = (result2) => {
1591            const hasFailed = boundMetadataSelectors.hasResolutionFailed(
1592              selectorName,
1593              args
1594            );
1595            if (hasFailed) {
1596              const error = boundMetadataSelectors.getResolutionError(
1597                selectorName,
1598                args
1599              );
1600              reject(error);
1601            } else {
1602              resolve(result2);
1603            }
1604          };
1605          const getResult = () => selector(...args);
1606          const result = getResult();
1607          if (hasFinished()) {
1608            return finalize(result);
1609          }
1610          const unsubscribe = store.subscribe(() => {
1611            if (hasFinished()) {
1612              unsubscribe();
1613              finalize(getResult());
1614            }
1615          });
1616        });
1617      };
1618    }
1619    function mapSuspendSelector(store, boundMetadataSelectors) {
1620      return (selector, selectorName) => {
1621        if (!selector.hasResolver) {
1622          return selector;
1623        }
1624        return (...args) => {
1625          const result = selector(...args);
1626          if (boundMetadataSelectors.hasFinishedResolution(
1627            selectorName,
1628            args
1629          )) {
1630            if (boundMetadataSelectors.hasResolutionFailed(
1631              selectorName,
1632              args
1633            )) {
1634              throw boundMetadataSelectors.getResolutionError(
1635                selectorName,
1636                args
1637              );
1638            }
1639            return result;
1640          }
1641          throw new Promise((resolve) => {
1642            const unsubscribe = store.subscribe(() => {
1643              if (boundMetadataSelectors.hasFinishedResolution(
1644                selectorName,
1645                args
1646              )) {
1647                resolve();
1648                unsubscribe();
1649              }
1650            });
1651          });
1652        };
1653      };
1654    }
1655    function mapResolver(resolver) {
1656      if (resolver.fulfill) {
1657        return resolver;
1658      }
1659      return {
1660        ...resolver,
1661        // Copy the enumerable properties of the resolver function.
1662        fulfill: resolver
1663        // Add the fulfill method.
1664      };
1665    }
1666    function mapSelectorWithResolver(selector, selectorName, resolver, store, resolversCache, boundMetadataSelectors) {
1667      function fulfillSelector(args) {
1668        if (resolversCache.isRunning(selectorName, args) || boundMetadataSelectors.hasStartedResolution(selectorName, args) || typeof resolver.isFulfilled === "function" && resolver.isFulfilled(store.getState(), ...args)) {
1669          return;
1670        }
1671        resolversCache.markAsRunning(selectorName, args);
1672        setTimeout(async () => {
1673          resolversCache.clear(selectorName, args);
1674          store.dispatch(
1675            startResolution(selectorName, args)
1676          );
1677          try {
1678            const action = resolver.fulfill(...args);
1679            if (action) {
1680              await store.dispatch(action);
1681            }
1682            store.dispatch(
1683              finishResolution(selectorName, args)
1684            );
1685          } catch (error) {
1686            store.dispatch(
1687              failResolution(selectorName, args, error)
1688            );
1689          }
1690        }, 0);
1691      }
1692      const selectorResolver = (...args) => {
1693        args = normalize(selector, args);
1694        fulfillSelector(args);
1695        return selector(...args);
1696      };
1697      selectorResolver.hasResolver = true;
1698      return selectorResolver;
1699    }
1700    function normalize(selector, args) {
1701      if (selector.__unstableNormalizeArgs && typeof selector.__unstableNormalizeArgs === "function" && args?.length) {
1702        return selector.__unstableNormalizeArgs(args);
1703      }
1704      return args;
1705    }
1706  
1707    // packages/data/build-module/store/index.mjs
1708    var coreDataStore = {
1709      name: "core/data",
1710      instantiate(registry) {
1711        const getCoreDataSelector = (selectorName) => (key, ...args) => {
1712          return registry.select(key)[selectorName](...args);
1713        };
1714        const getCoreDataAction = (actionName) => (key, ...args) => {
1715          return registry.dispatch(key)[actionName](...args);
1716        };
1717        return {
1718          getSelectors() {
1719            return Object.fromEntries(
1720              [
1721                "getIsResolving",
1722                "hasStartedResolution",
1723                "hasFinishedResolution",
1724                "isResolving",
1725                "getCachedResolvers"
1726              ].map((selectorName) => [
1727                selectorName,
1728                getCoreDataSelector(selectorName)
1729              ])
1730            );
1731          },
1732          getActions() {
1733            return Object.fromEntries(
1734              [
1735                "startResolution",
1736                "finishResolution",
1737                "invalidateResolution",
1738                "invalidateResolutionForStore",
1739                "invalidateResolutionForStoreSelector"
1740              ].map((actionName) => [
1741                actionName,
1742                getCoreDataAction(actionName)
1743              ])
1744            );
1745          },
1746          subscribe() {
1747            return () => () => {
1748            };
1749          }
1750        };
1751      }
1752    };
1753    var store_default = coreDataStore;
1754  
1755    // packages/data/build-module/utils/emitter.mjs
1756    function createEmitter() {
1757      let isPaused = false;
1758      let isPending = false;
1759      const listeners = /* @__PURE__ */ new Set();
1760      const notifyListeners = () => (
1761        // We use Array.from to clone the listeners Set
1762        // This ensures that we don't run a listener
1763        // that was added as a response to another listener.
1764        Array.from(listeners).forEach((listener) => listener())
1765      );
1766      return {
1767        get isPaused() {
1768          return isPaused;
1769        },
1770        subscribe(listener) {
1771          listeners.add(listener);
1772          return () => listeners.delete(listener);
1773        },
1774        pause() {
1775          isPaused = true;
1776        },
1777        resume() {
1778          isPaused = false;
1779          if (isPending) {
1780            isPending = false;
1781            notifyListeners();
1782          }
1783        },
1784        emit() {
1785          if (isPaused) {
1786            isPending = true;
1787            return;
1788          }
1789          notifyListeners();
1790        }
1791      };
1792    }
1793  
1794    // packages/data/build-module/registry.mjs
1795    function getStoreName(storeNameOrDescriptor) {
1796      return typeof storeNameOrDescriptor === "string" ? storeNameOrDescriptor : storeNameOrDescriptor.name;
1797    }
1798    function createRegistry(storeConfigs = {}, parent = null) {
1799      const stores = {};
1800      const emitter = createEmitter();
1801      let listeningStores = null;
1802      function globalListener() {
1803        emitter.emit();
1804      }
1805      const subscribe2 = (listener, storeNameOrDescriptor) => {
1806        if (!storeNameOrDescriptor) {
1807          return emitter.subscribe(listener);
1808        }
1809        const storeName = getStoreName(storeNameOrDescriptor);
1810        const store = stores[storeName];
1811        if (store) {
1812          return store.subscribe(listener);
1813        }
1814        if (!parent) {
1815          return emitter.subscribe(listener);
1816        }
1817        return parent.subscribe(listener, storeNameOrDescriptor);
1818      };
1819      function select3(storeNameOrDescriptor) {
1820        const storeName = getStoreName(storeNameOrDescriptor);
1821        listeningStores?.add(storeName);
1822        const store = stores[storeName];
1823        if (store) {
1824          return store.getSelectors();
1825        }
1826        return parent?.select(storeName);
1827      }
1828      function __unstableMarkListeningStores(callback, ref) {
1829        listeningStores = /* @__PURE__ */ new Set();
1830        try {
1831          return callback.call(this);
1832        } finally {
1833          ref.current = Array.from(listeningStores);
1834          listeningStores = null;
1835        }
1836      }
1837      function resolveSelect3(storeNameOrDescriptor) {
1838        const storeName = getStoreName(storeNameOrDescriptor);
1839        listeningStores?.add(storeName);
1840        const store = stores[storeName];
1841        if (store) {
1842          return store.getResolveSelectors();
1843        }
1844        return parent && parent.resolveSelect(storeName);
1845      }
1846      function suspendSelect2(storeNameOrDescriptor) {
1847        const storeName = getStoreName(storeNameOrDescriptor);
1848        listeningStores?.add(storeName);
1849        const store = stores[storeName];
1850        if (store) {
1851          return store.getSuspendSelectors();
1852        }
1853        return parent && parent.suspendSelect(storeName);
1854      }
1855      function dispatch3(storeNameOrDescriptor) {
1856        const storeName = getStoreName(storeNameOrDescriptor);
1857        const store = stores[storeName];
1858        if (store) {
1859          return store.getActions();
1860        }
1861        return parent && parent.dispatch(storeName);
1862      }
1863      function withPlugins(attributes) {
1864        return Object.fromEntries(
1865          Object.entries(attributes).map(([key, attribute]) => {
1866            if (typeof attribute !== "function") {
1867              return [key, attribute];
1868            }
1869            return [
1870              key,
1871              (...args) => {
1872                return registry[key](...args);
1873              }
1874            ];
1875          })
1876        );
1877      }
1878      function registerStoreInstance(name, createStoreFunc) {
1879        if (stores[name]) {
1880          console.error('Store "' + name + '" is already registered.');
1881          return stores[name];
1882        }
1883        const store = createStoreFunc();
1884        if (typeof store.getSelectors !== "function") {
1885          throw new TypeError("store.getSelectors must be a function");
1886        }
1887        if (typeof store.getActions !== "function") {
1888          throw new TypeError("store.getActions must be a function");
1889        }
1890        if (typeof store.subscribe !== "function") {
1891          throw new TypeError("store.subscribe must be a function");
1892        }
1893        store.emitter = createEmitter();
1894        const currentSubscribe = store.subscribe;
1895        store.subscribe = (listener) => {
1896          const unsubscribeFromEmitter = store.emitter.subscribe(listener);
1897          const unsubscribeFromStore = currentSubscribe(() => {
1898            if (store.emitter.isPaused) {
1899              store.emitter.emit();
1900              return;
1901            }
1902            listener();
1903          });
1904          return () => {
1905            unsubscribeFromStore?.();
1906            unsubscribeFromEmitter?.();
1907          };
1908        };
1909        stores[name] = store;
1910        store.subscribe(globalListener);
1911        if (parent) {
1912          try {
1913            unlock(store.store).registerPrivateActions(
1914              unlock(parent).privateActionsOf(name)
1915            );
1916            unlock(store.store).registerPrivateSelectors(
1917              unlock(parent).privateSelectorsOf(name)
1918            );
1919          } catch {
1920          }
1921        }
1922        return store;
1923      }
1924      function register2(store) {
1925        registerStoreInstance(
1926          store.name,
1927          () => store.instantiate(registry)
1928        );
1929      }
1930      function registerGenericStore2(name, store) {
1931        (0, import_deprecated2.default)("wp.data.registerGenericStore", {
1932          since: "5.9",
1933          alternative: "wp.data.register( storeDescriptor )"
1934        });
1935        registerStoreInstance(name, () => store);
1936      }
1937      function registerStore2(storeName, options) {
1938        if (!options.reducer) {
1939          throw new TypeError("Must specify store reducer");
1940        }
1941        const store = registerStoreInstance(
1942          storeName,
1943          () => createReduxStore(storeName, options).instantiate(
1944            registry
1945          )
1946        );
1947        return store.store;
1948      }
1949      function batch(callback) {
1950        if (emitter.isPaused) {
1951          callback();
1952          return;
1953        }
1954        emitter.pause();
1955        Object.values(stores).forEach((store) => store.emitter.pause());
1956        try {
1957          callback();
1958        } finally {
1959          emitter.resume();
1960          Object.values(stores).forEach(
1961            (store) => store.emitter.resume()
1962          );
1963        }
1964      }
1965      let registry = {
1966        batch,
1967        stores,
1968        namespaces: stores,
1969        // TODO: Deprecate/remove this.
1970        subscribe: subscribe2,
1971        select: select3,
1972        resolveSelect: resolveSelect3,
1973        suspendSelect: suspendSelect2,
1974        dispatch: dispatch3,
1975        use: use2,
1976        register: register2,
1977        registerGenericStore: registerGenericStore2,
1978        registerStore: registerStore2,
1979        __unstableMarkListeningStores
1980      };
1981      function use2(plugin, options) {
1982        if (!plugin) {
1983          return;
1984        }
1985        registry = {
1986          ...registry,
1987          ...plugin(registry, options)
1988        };
1989        return registry;
1990      }
1991      registry.register(store_default);
1992      for (const [name, config] of Object.entries(storeConfigs)) {
1993        registry.register(createReduxStore(name, config));
1994      }
1995      if (parent) {
1996        parent.subscribe(globalListener);
1997      }
1998      const registryWithPlugins = withPlugins(
1999        registry
2000      );
2001      lock(registryWithPlugins, {
2002        privateActionsOf: (name) => {
2003          try {
2004            return unlock(stores[name].store).privateActions;
2005          } catch {
2006            return {};
2007          }
2008        },
2009        privateSelectorsOf: (name) => {
2010          try {
2011            return unlock(stores[name].store).privateSelectors;
2012          } catch {
2013            return {};
2014          }
2015        }
2016      });
2017      return registryWithPlugins;
2018    }
2019  
2020    // packages/data/build-module/default-registry.mjs
2021    var defaultRegistry = createRegistry();
2022    var default_registry_default = defaultRegistry;
2023  
2024    // packages/data/build-module/plugins/index.mjs
2025    var plugins_exports = {};
2026    __export(plugins_exports, {
2027      persistence: () => persistence_default
2028    });
2029  
2030    // node_modules/is-plain-object/dist/is-plain-object.mjs
2031    function isObject(o) {
2032      return Object.prototype.toString.call(o) === "[object Object]";
2033    }
2034    function isPlainObject2(o) {
2035      var ctor, prot;
2036      if (isObject(o) === false) return false;
2037      ctor = o.constructor;
2038      if (ctor === void 0) return true;
2039      prot = ctor.prototype;
2040      if (isObject(prot) === false) return false;
2041      if (prot.hasOwnProperty("isPrototypeOf") === false) {
2042        return false;
2043      }
2044      return true;
2045    }
2046  
2047    // packages/data/build-module/plugins/persistence/index.mjs
2048    var import_deepmerge = __toESM(require_cjs(), 1);
2049  
2050    // packages/data/build-module/plugins/persistence/storage/object.mjs
2051    var objectStorage;
2052    var storage = {
2053      getItem(key) {
2054        if (!objectStorage || !objectStorage[key]) {
2055          return null;
2056        }
2057        return objectStorage[key];
2058      },
2059      setItem(key, value) {
2060        if (!objectStorage) {
2061          storage.clear();
2062        }
2063        objectStorage[key] = String(value);
2064      },
2065      clear() {
2066        objectStorage = /* @__PURE__ */ Object.create(null);
2067      }
2068    };
2069    var object_default = storage;
2070  
2071    // packages/data/build-module/plugins/persistence/storage/default.mjs
2072    var storage2;
2073    try {
2074      storage2 = window.localStorage;
2075      storage2.setItem("__wpDataTestLocalStorage", "");
2076      storage2.removeItem("__wpDataTestLocalStorage");
2077    } catch {
2078      storage2 = object_default;
2079    }
2080    var default_default = storage2;
2081  
2082    // packages/data/build-module/plugins/persistence/index.mjs
2083    var DEFAULT_STORAGE = default_default;
2084    var DEFAULT_STORAGE_KEY = "WP_DATA";
2085    var withLazySameState = (reducer) => (state, action) => {
2086      if (action.nextState === state) {
2087        return state;
2088      }
2089      return reducer(state, action);
2090    };
2091    function createPersistenceInterface(options) {
2092      const { storage: storage3 = DEFAULT_STORAGE, storageKey = DEFAULT_STORAGE_KEY } = options;
2093      let data;
2094      function getData() {
2095        if (data === void 0) {
2096          const persisted = storage3.getItem(storageKey);
2097          if (persisted === null) {
2098            data = {};
2099          } else {
2100            try {
2101              data = JSON.parse(persisted);
2102            } catch {
2103              data = {};
2104            }
2105          }
2106        }
2107        return data;
2108      }
2109      function setData(key, value) {
2110        data = { ...data, [key]: value };
2111        storage3.setItem(storageKey, JSON.stringify(data));
2112      }
2113      return {
2114        get: getData,
2115        set: setData
2116      };
2117    }
2118    function persistencePlugin(registry, pluginOptions) {
2119      const persistence = createPersistenceInterface(pluginOptions);
2120      function createPersistOnChange(getState, storeName, keys) {
2121        let getPersistedState;
2122        if (Array.isArray(keys)) {
2123          const reducers = keys.reduce(
2124            (accumulator, key) => Object.assign(accumulator, {
2125              [key]: (state, action) => action.nextState[key]
2126            }),
2127            {}
2128          );
2129          getPersistedState = withLazySameState(
2130            combineReducers2(reducers)
2131          );
2132        } else {
2133          getPersistedState = (_state, action) => action.nextState;
2134        }
2135        let lastState = getPersistedState(void 0, {
2136          nextState: getState()
2137        });
2138        return () => {
2139          const state = getPersistedState(lastState, {
2140            nextState: getState()
2141          });
2142          if (state !== lastState) {
2143            persistence.set(storeName, state);
2144            lastState = state;
2145          }
2146        };
2147      }
2148      return {
2149        registerStore(storeName, options) {
2150          if (!options.persist) {
2151            return registry.registerStore(storeName, options);
2152          }
2153          const persistedState = persistence.get()[storeName];
2154          if (persistedState !== void 0) {
2155            let initialState = options.reducer(options.initialState, {
2156              type: "@@WP/PERSISTENCE_RESTORE"
2157            });
2158            if (isPlainObject2(initialState) && isPlainObject2(persistedState)) {
2159              initialState = (0, import_deepmerge.default)(
2160                initialState,
2161                persistedState,
2162                {
2163                  isMergeableObject: isPlainObject2
2164                }
2165              );
2166            } else {
2167              initialState = persistedState;
2168            }
2169            options = {
2170              ...options,
2171              initialState
2172            };
2173          }
2174          const store = registry.registerStore(storeName, options);
2175          store.subscribe(
2176            createPersistOnChange(
2177              store.getState,
2178              storeName,
2179              options.persist
2180            )
2181          );
2182          return store;
2183        }
2184      };
2185    }
2186    var persistence_default = Object.assign(persistencePlugin, {
2187      __unstableMigrate: () => {
2188      }
2189    });
2190  
2191    // packages/data/build-module/components/with-select/index.mjs
2192    var import_compose2 = __toESM(require_compose(), 1);
2193    var import_element6 = __toESM(require_element(), 1);
2194  
2195    // packages/data/build-module/components/use-select/index.mjs
2196    var import_priority_queue = __toESM(require_priority_queue(), 1);
2197    var import_element5 = __toESM(require_element(), 1);
2198    var import_is_shallow_equal = __toESM(require_is_shallow_equal(), 1);
2199  
2200    // packages/data/build-module/components/registry-provider/use-registry.mjs
2201    var import_element2 = __toESM(require_element(), 1);
2202  
2203    // packages/data/build-module/components/registry-provider/context.mjs
2204    var import_element = __toESM(require_element(), 1);
2205    var Context = (0, import_element.createContext)(default_registry_default);
2206    Context.displayName = "RegistryProviderContext";
2207    var { Consumer, Provider } = Context;
2208    var RegistryConsumer = Consumer;
2209    var context_default = Provider;
2210  
2211    // packages/data/build-module/components/registry-provider/use-registry.mjs
2212    function useRegistry() {
2213      return (0, import_element2.useContext)(Context);
2214    }
2215  
2216    // packages/data/build-module/components/async-mode-provider/use-async-mode.mjs
2217    var import_element4 = __toESM(require_element(), 1);
2218  
2219    // packages/data/build-module/components/async-mode-provider/context.mjs
2220    var import_element3 = __toESM(require_element(), 1);
2221    var Context2 = (0, import_element3.createContext)(false);
2222    Context2.displayName = "AsyncModeContext";
2223    var { Consumer: Consumer2, Provider: Provider2 } = Context2;
2224    var context_default2 = Provider2;
2225  
2226    // packages/data/build-module/components/async-mode-provider/use-async-mode.mjs
2227    function useAsyncMode() {
2228      return (0, import_element4.useContext)(Context2);
2229    }
2230  
2231    // packages/data/build-module/components/use-select/index.mjs
2232    var renderQueue = (0, import_priority_queue.createQueue)();
2233    function warnOnUnstableReference(a, b) {
2234      if (!a || !b) {
2235        return;
2236      }
2237      const keys = typeof a === "object" && typeof b === "object" ? Object.keys(a).filter((k) => a[k] !== b[k]) : [];
2238      console.warn(
2239        "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",
2240        keys.join(", ")
2241      );
2242    }
2243    function Store(registry, suspense) {
2244      const select3 = suspense ? registry.suspendSelect : registry.select;
2245      const queueContext = {};
2246      let lastMapSelect;
2247      let lastMapResult;
2248      let lastMapResultValid = false;
2249      let lastIsAsync;
2250      let subscriber;
2251      let didWarnUnstableReference;
2252      const storeStatesOnMount = /* @__PURE__ */ new Map();
2253      function getStoreState(name) {
2254        return registry.stores[name]?.store?.getState?.() ?? {};
2255      }
2256      const createSubscriber = (stores) => {
2257        const activeStores = [...stores];
2258        const activeSubscriptions = /* @__PURE__ */ new Set();
2259        function subscribe2(listener) {
2260          if (lastMapResultValid) {
2261            for (const name of activeStores) {
2262              if (storeStatesOnMount.get(name) !== getStoreState(name)) {
2263                lastMapResultValid = false;
2264              }
2265            }
2266          }
2267          storeStatesOnMount.clear();
2268          const onStoreChange = () => {
2269            lastMapResultValid = false;
2270            listener();
2271          };
2272          const onChange = () => {
2273            if (lastIsAsync) {
2274              renderQueue.add(queueContext, onStoreChange);
2275            } else {
2276              onStoreChange();
2277            }
2278          };
2279          const unsubs = [];
2280          function subscribeStore(storeName) {
2281            unsubs.push(registry.subscribe(onChange, storeName));
2282          }
2283          for (const storeName of activeStores) {
2284            subscribeStore(storeName);
2285          }
2286          activeSubscriptions.add(subscribeStore);
2287          return () => {
2288            activeSubscriptions.delete(subscribeStore);
2289            for (const unsub of unsubs.values()) {
2290              unsub?.();
2291            }
2292            renderQueue.cancel(queueContext);
2293          };
2294        }
2295        function updateStores(newStores) {
2296          for (const newStore of newStores) {
2297            if (activeStores.includes(newStore)) {
2298              continue;
2299            }
2300            activeStores.push(newStore);
2301            for (const subscription of activeSubscriptions) {
2302              subscription(newStore);
2303            }
2304          }
2305        }
2306        return { subscribe: subscribe2, updateStores };
2307      };
2308      return (mapSelect, isAsync) => {
2309        function updateValue() {
2310          if (lastMapResultValid && mapSelect === lastMapSelect) {
2311            return;
2312          }
2313          const listeningStores = { current: null };
2314          const mapResult = registry.__unstableMarkListeningStores(
2315            () => mapSelect(select3, registry),
2316            listeningStores
2317          );
2318          if (true) {
2319            if (!didWarnUnstableReference) {
2320              const secondMapResult = mapSelect(select3, registry);
2321              if (!(0, import_is_shallow_equal.isShallowEqual)(mapResult, secondMapResult)) {
2322                warnOnUnstableReference(mapResult, secondMapResult);
2323                didWarnUnstableReference = true;
2324              }
2325            }
2326          }
2327          if (!subscriber) {
2328            for (const name of listeningStores.current) {
2329              storeStatesOnMount.set(name, getStoreState(name));
2330            }
2331            subscriber = createSubscriber(listeningStores.current);
2332          } else {
2333            subscriber.updateStores(listeningStores.current);
2334          }
2335          if (!(0, import_is_shallow_equal.isShallowEqual)(lastMapResult, mapResult)) {
2336            lastMapResult = mapResult;
2337          }
2338          lastMapSelect = mapSelect;
2339          lastMapResultValid = true;
2340        }
2341        function getValue() {
2342          updateValue();
2343          return lastMapResult;
2344        }
2345        if (lastIsAsync && !isAsync) {
2346          lastMapResultValid = false;
2347          renderQueue.cancel(queueContext);
2348        }
2349        updateValue();
2350        lastIsAsync = isAsync;
2351        return { subscribe: subscriber.subscribe, getValue };
2352      };
2353    }
2354    function _useStaticSelect(storeName) {
2355      return useRegistry().select(storeName);
2356    }
2357    function _useMappingSelect(suspense, mapSelect, deps) {
2358      const registry = useRegistry();
2359      const isAsync = useAsyncMode();
2360      const store = (0, import_element5.useMemo)(
2361        () => Store(registry, suspense),
2362        [registry, suspense]
2363      );
2364      const selector = (0, import_element5.useCallback)(mapSelect, deps);
2365      const { subscribe: subscribe2, getValue } = store(selector, isAsync);
2366      const result = (0, import_element5.useSyncExternalStore)(subscribe2, getValue, getValue);
2367      (0, import_element5.useDebugValue)(result);
2368      return result;
2369    }
2370    function useSelect(mapSelect, deps) {
2371      const staticSelectMode = typeof mapSelect !== "function";
2372      const staticSelectModeRef = (0, import_element5.useRef)(staticSelectMode);
2373      if (staticSelectMode !== staticSelectModeRef.current) {
2374        const prevMode = staticSelectModeRef.current ? "static" : "mapping";
2375        const nextMode = staticSelectMode ? "static" : "mapping";
2376        throw new Error(
2377          `Switching useSelect from $prevMode} to $nextMode} is not allowed`
2378        );
2379      }
2380      return staticSelectMode ? _useStaticSelect(mapSelect) : _useMappingSelect(false, mapSelect, deps);
2381    }
2382    function useSuspenseSelect(mapSelect, deps) {
2383      return _useMappingSelect(true, mapSelect, deps);
2384    }
2385  
2386    // packages/data/build-module/components/with-select/index.mjs
2387    var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
2388    var withSelect = (mapSelectToProps) => (0, import_compose2.createHigherOrderComponent)(
2389      (WrappedComponent) => (0, import_element6.memo)(
2390        (0, import_element6.forwardRef)(function WithSelect(ownProps, ref) {
2391          const mapSelect = (select3, registry) => mapSelectToProps(select3, ownProps, registry);
2392          const mergeProps = useSelect(mapSelect);
2393          return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
2394            WrappedComponent,
2395            {
2396              ref,
2397              ...ownProps,
2398              ...mergeProps
2399            }
2400          );
2401        })
2402      ),
2403      "withSelect"
2404    );
2405    var with_select_default = withSelect;
2406  
2407    // packages/data/build-module/components/with-dispatch/index.mjs
2408    var import_compose4 = __toESM(require_compose(), 1);
2409  
2410    // packages/data/build-module/components/use-dispatch/use-dispatch.mjs
2411    var useDispatch = (storeNameOrDescriptor) => {
2412      const { dispatch: dispatch3 } = useRegistry();
2413      return storeNameOrDescriptor === void 0 ? dispatch3 : dispatch3(storeNameOrDescriptor);
2414    };
2415    var use_dispatch_default = useDispatch;
2416  
2417    // packages/data/build-module/components/use-dispatch/use-dispatch-with-map.mjs
2418    var import_element7 = __toESM(require_element(), 1);
2419    var import_compose3 = __toESM(require_compose(), 1);
2420    var useDispatchWithMap = (dispatchMap, deps) => {
2421      const registry = useRegistry();
2422      const currentDispatchMapRef = (0, import_element7.useRef)(dispatchMap);
2423      (0, import_compose3.useIsomorphicLayoutEffect)(() => {
2424        currentDispatchMapRef.current = dispatchMap;
2425      });
2426      return (0, import_element7.useMemo)(() => {
2427        const currentDispatchProps = currentDispatchMapRef.current(
2428          registry.dispatch,
2429          registry
2430        );
2431        return Object.fromEntries(
2432          Object.entries(currentDispatchProps).map(
2433            ([propName, dispatcher]) => {
2434              if (typeof dispatcher !== "function") {
2435                console.warn(
2436                  `Property $propName} returned from dispatchMap in useDispatchWithMap must be a function.`
2437                );
2438              }
2439              return [
2440                propName,
2441                (...args) => currentDispatchMapRef.current(registry.dispatch, registry)[propName](...args)
2442              ];
2443            }
2444          )
2445        );
2446      }, [registry, ...deps]);
2447    };
2448    var use_dispatch_with_map_default = useDispatchWithMap;
2449  
2450    // packages/data/build-module/components/with-dispatch/index.mjs
2451    var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
2452    var withDispatch = (mapDispatchToProps) => (0, import_compose4.createHigherOrderComponent)(
2453      (WrappedComponent) => (ownProps) => {
2454        const mapDispatch = (dispatch3, registry) => mapDispatchToProps(dispatch3, ownProps, registry);
2455        const dispatchProps = use_dispatch_with_map_default(mapDispatch, []);
2456        return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WrappedComponent, { ...ownProps, ...dispatchProps });
2457      },
2458      "withDispatch"
2459    );
2460    var with_dispatch_default = withDispatch;
2461  
2462    // packages/data/build-module/components/with-registry/index.mjs
2463    var import_compose5 = __toESM(require_compose(), 1);
2464    var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
2465    var withRegistry = (0, import_compose5.createHigherOrderComponent)(
2466      (OriginalComponent) => (props) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(RegistryConsumer, { children: (registry) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(OriginalComponent, { ...props, registry }) }),
2467      "withRegistry"
2468    );
2469    var with_registry_default = withRegistry;
2470  
2471    // packages/data/build-module/dispatch.mjs
2472    function dispatch2(storeNameOrDescriptor) {
2473      return default_registry_default.dispatch(
2474        storeNameOrDescriptor
2475      );
2476    }
2477  
2478    // packages/data/build-module/select.mjs
2479    function select2(storeNameOrDescriptor) {
2480      return default_registry_default.select(
2481        storeNameOrDescriptor
2482      );
2483    }
2484  
2485    // packages/data/build-module/index.mjs
2486    var combineReducers2 = combineReducers;
2487    function resolveSelect2(storeNameOrDescriptor) {
2488      return default_registry_default.resolveSelect(
2489        storeNameOrDescriptor
2490      );
2491    }
2492    var suspendSelect = (storeNameOrDescriptor) => default_registry_default.suspendSelect(storeNameOrDescriptor);
2493    var subscribe = (listener, storeNameOrDescriptor) => default_registry_default.subscribe(listener, storeNameOrDescriptor);
2494    var registerGenericStore = default_registry_default.registerGenericStore;
2495    var registerStore = default_registry_default.registerStore;
2496    var use = default_registry_default.use;
2497    var register = (store) => default_registry_default.register(store);
2498    return __toCommonJS(index_exports);
2499  })();
2500  /*! Bundled license information:
2501  
2502  is-plain-object/dist/is-plain-object.mjs:
2503    (*!
2504     * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
2505     *
2506     * Copyright (c) 2014-2017, Jon Schlinkert.
2507     * Released under the MIT License.
2508     *)
2509  */


Generated : Fri Jul 31 08:20:18 2026 Cross-referenced by PHPXref