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


Generated : Sat Jun 13 09:38:55 2026 Cross-referenced by PHPXref