[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

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

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


Generated : Thu Aug 20 08:20:25 2026 Cross-referenced by PHPXref