{"version":3,"file":"./build/data/index.min.js","mappings":"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","sources":["webpack://wp/./node_modules/equivalent-key-map/equivalent-key-map.js","webpack://wp/./node_modules/turbo-combine-reducers/index.js","webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/compat get default export","webpack://wp/webpack/runtime/define property getters","webpack://wp/webpack/runtime/hasOwnProperty shorthand","webpack://wp/webpack/runtime/make namespace object","webpack://wp/external window \"lodash\"","webpack://wp/external window [\"wp\",\"deprecated\"]","webpack://wp/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wp/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://wp/./node_modules/redux/es/redux.js","webpack://wp/external window [\"wp\",\"reduxRoutine\"]","webpack://wp/./packages/data/build-module/@wordpress/data/src/factory.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/controls.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/promise-middleware.js","webpack://wp/./node_modules/is-promise/index.mjs","webpack://wp/./packages/data/build-module/store/@wordpress/data/src/store/index.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/resolvers-cache-middleware.js","webpack://wp/./packages/data/build-module/redux-store/metadata/@wordpress/data/src/redux-store/metadata/utils.ts","webpack://wp/./packages/data/build-module/redux-store/metadata/@wordpress/data/src/redux-store/metadata/reducer.ts","webpack://wp/./packages/data/build-module/redux-store/metadata/@wordpress/data/src/redux-store/metadata/selectors.js","webpack://wp/./packages/data/build-module/redux-store/metadata/@wordpress/data/src/redux-store/metadata/actions.js","webpack://wp/./packages/data/build-module/redux-store/@wordpress/data/src/redux-store/index.js","webpack://wp/./packages/data/build-module/redux-store/@wordpress/data/src/redux-store/thunk-middleware.js","webpack://wp/./packages/data/build-module/utils/@wordpress/data/src/utils/emitter.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/registry.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/default-registry.js","webpack://wp/./packages/data/build-module/plugins/persistence/storage/@wordpress/data/src/plugins/persistence/storage/object.js","webpack://wp/./packages/data/build-module/plugins/persistence/storage/@wordpress/data/src/plugins/persistence/storage/default.js","webpack://wp/./packages/data/build-module/plugins/persistence/@wordpress/data/src/plugins/persistence/index.js","webpack://wp/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wp/external window [\"wp\",\"element\"]","webpack://wp/external window [\"wp\",\"compose\"]","webpack://wp/external window \"React\"","webpack://wp/./node_modules/use-memo-one/dist/use-memo-one.esm.js","webpack://wp/external window [\"wp\",\"priorityQueue\"]","webpack://wp/external window [\"wp\",\"isShallowEqual\"]","webpack://wp/./packages/data/build-module/components/registry-provider/@wordpress/data/src/components/registry-provider/context.js","webpack://wp/./packages/data/build-module/components/registry-provider/@wordpress/data/src/components/registry-provider/use-registry.js","webpack://wp/./packages/data/build-module/components/async-mode-provider/@wordpress/data/src/components/async-mode-provider/context.js","webpack://wp/./packages/data/build-module/components/use-select/@wordpress/data/src/components/use-select/index.js","webpack://wp/./packages/data/build-module/components/async-mode-provider/@wordpress/data/src/components/async-mode-provider/use-async-mode.js","webpack://wp/./packages/data/build-module/components/with-select/@wordpress/data/src/components/with-select/index.js","webpack://wp/./packages/data/build-module/components/with-dispatch/@wordpress/data/src/components/with-dispatch/index.js","webpack://wp/./packages/data/build-module/components/use-dispatch/@wordpress/data/src/components/use-dispatch/use-dispatch-with-map.js","webpack://wp/./packages/data/build-module/components/with-registry/@wordpress/data/src/components/with-registry/index.js","webpack://wp/./packages/data/build-module/components/use-dispatch/@wordpress/data/src/components/use-dispatch/use-dispatch.js","webpack://wp/./packages/data/build-module/@wordpress/data/src/index.js"],"sourcesContent":["'use strict';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\n/**\n * Given an instance of EquivalentKeyMap, returns its internal value pair tuple\n * for a key, if one exists. The tuple members consist of the last reference\n * value for the key (used in efficient subsequent lookups) and the value\n * assigned for the key at the leaf node.\n *\n * @param {EquivalentKeyMap} instance EquivalentKeyMap instance.\n * @param {*} key The key for which to return value pair.\n *\n * @return {?Array} Value pair, if exists.\n */\nfunction getValuePair(instance, key) {\n var _map = instance._map,\n _arrayTreeMap = instance._arrayTreeMap,\n _objectTreeMap = instance._objectTreeMap; // Map keeps a reference to the last object-like key used to set the\n // value, which can be used to shortcut immediately to the value.\n\n if (_map.has(key)) {\n return _map.get(key);\n } // Sort keys to ensure stable retrieval from tree.\n\n\n var properties = Object.keys(key).sort(); // Tree by type to avoid conflicts on numeric object keys, empty value.\n\n var map = Array.isArray(key) ? _arrayTreeMap : _objectTreeMap;\n\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n map = map.get(property);\n\n if (map === undefined) {\n return;\n }\n\n var propertyValue = key[property];\n map = map.get(propertyValue);\n\n if (map === undefined) {\n return;\n }\n }\n\n var valuePair = map.get('_ekm_value');\n\n if (!valuePair) {\n return;\n } // If reached, it implies that an object-like key was set with another\n // reference, so delete the reference and replace with the current.\n\n\n _map.delete(valuePair[0]);\n\n valuePair[0] = key;\n map.set('_ekm_value', valuePair);\n\n _map.set(key, valuePair);\n\n return valuePair;\n}\n/**\n * Variant of a Map object which enables lookup by equivalent (deeply equal)\n * object and array keys.\n */\n\n\nvar EquivalentKeyMap =\n/*#__PURE__*/\nfunction () {\n /**\n * Constructs a new instance of EquivalentKeyMap.\n *\n * @param {Iterable.<*>} iterable Initial pair of key, value for map.\n */\n function EquivalentKeyMap(iterable) {\n _classCallCheck(this, EquivalentKeyMap);\n\n this.clear();\n\n if (iterable instanceof EquivalentKeyMap) {\n // Map#forEach is only means of iterating with support for IE11.\n var iterablePairs = [];\n iterable.forEach(function (value, key) {\n iterablePairs.push([key, value]);\n });\n iterable = iterablePairs;\n }\n\n if (iterable != null) {\n for (var i = 0; i < iterable.length; i++) {\n this.set(iterable[i][0], iterable[i][1]);\n }\n }\n }\n /**\n * Accessor property returning the number of elements.\n *\n * @return {number} Number of elements.\n */\n\n\n _createClass(EquivalentKeyMap, [{\n key: \"set\",\n\n /**\n * Add or update an element with a specified key and value.\n *\n * @param {*} key The key of the element to add.\n * @param {*} value The value of the element to add.\n *\n * @return {EquivalentKeyMap} Map instance.\n */\n value: function set(key, value) {\n // Shortcut non-object-like to set on internal Map.\n if (key === null || _typeof(key) !== 'object') {\n this._map.set(key, value);\n\n return this;\n } // Sort keys to ensure stable assignment into tree.\n\n\n var properties = Object.keys(key).sort();\n var valuePair = [key, value]; // Tree by type to avoid conflicts on numeric object keys, empty value.\n\n var map = Array.isArray(key) ? this._arrayTreeMap : this._objectTreeMap;\n\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n\n if (!map.has(property)) {\n map.set(property, new EquivalentKeyMap());\n }\n\n map = map.get(property);\n var propertyValue = key[property];\n\n if (!map.has(propertyValue)) {\n map.set(propertyValue, new EquivalentKeyMap());\n }\n\n map = map.get(propertyValue);\n } // If an _ekm_value exists, there was already an equivalent key. Before\n // overriding, ensure that the old key reference is removed from map to\n // avoid memory leak of accumulating equivalent keys. This is, in a\n // sense, a poor man's WeakMap, while still enabling iterability.\n\n\n var previousValuePair = map.get('_ekm_value');\n\n if (previousValuePair) {\n this._map.delete(previousValuePair[0]);\n }\n\n map.set('_ekm_value', valuePair);\n\n this._map.set(key, valuePair);\n\n return this;\n }\n /**\n * Returns a specified element.\n *\n * @param {*} key The key of the element to return.\n *\n * @return {?*} The element associated with the specified key or undefined\n * if the key can't be found.\n */\n\n }, {\n key: \"get\",\n value: function get(key) {\n // Shortcut non-object-like to get from internal Map.\n if (key === null || _typeof(key) !== 'object') {\n return this._map.get(key);\n }\n\n var valuePair = getValuePair(this, key);\n\n if (valuePair) {\n return valuePair[1];\n }\n }\n /**\n * Returns a boolean indicating whether an element with the specified key\n * exists or not.\n *\n * @param {*} key The key of the element to test for presence.\n *\n * @return {boolean} Whether an element with the specified key exists.\n */\n\n }, {\n key: \"has\",\n value: function has(key) {\n if (key === null || _typeof(key) !== 'object') {\n return this._map.has(key);\n } // Test on the _presence_ of the pair, not its value, as even undefined\n // can be a valid member value for a key.\n\n\n return getValuePair(this, key) !== undefined;\n }\n /**\n * Removes the specified element.\n *\n * @param {*} key The key of the element to remove.\n *\n * @return {boolean} Returns true if an element existed and has been\n * removed, or false if the element does not exist.\n */\n\n }, {\n key: \"delete\",\n value: function _delete(key) {\n if (!this.has(key)) {\n return false;\n } // This naive implementation will leave orphaned child trees. A better\n // implementation should traverse and remove orphans.\n\n\n this.set(key, undefined);\n return true;\n }\n /**\n * Executes a provided function once per each key/value pair, in insertion\n * order.\n *\n * @param {Function} callback Function to execute for each element.\n * @param {*} thisArg Value to use as `this` when executing\n * `callback`.\n */\n\n }, {\n key: \"forEach\",\n value: function forEach(callback) {\n var _this = this;\n\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this;\n\n this._map.forEach(function (value, key) {\n // Unwrap value from object-like value pair.\n if (key !== null && _typeof(key) === 'object') {\n value = value[1];\n }\n\n callback.call(thisArg, value, key, _this);\n });\n }\n /**\n * Removes all elements.\n */\n\n }, {\n key: \"clear\",\n value: function clear() {\n this._map = new Map();\n this._arrayTreeMap = new Map();\n this._objectTreeMap = new Map();\n }\n }, {\n key: \"size\",\n get: function get() {\n return this._map.size;\n }\n }]);\n\n return EquivalentKeyMap;\n}();\n\nmodule.exports = EquivalentKeyMap;\n","function combineReducers( reducers ) {\n\tvar keys = Object.keys( reducers ),\n\t\tgetNextState;\n\n\tgetNextState = ( function() {\n\t\tvar fn, i, key;\n\n\t\tfn = 'return {';\n\t\tfor ( i = 0; i < keys.length; i++ ) {\n\t\t\t// Rely on Quoted escaping of JSON.stringify with guarantee that\n\t\t\t// each member of Object.keys is a string.\n\t\t\t//\n\t\t\t// \"If Type(value) is String, then return the result of calling the\n\t\t\t// abstract operation Quote with argument value. [...] The abstract\n\t\t\t// operation Quote(value) wraps a String value in double quotes and\n\t\t\t// escapes characters within it.\"\n\t\t\t//\n\t\t\t// https://www.ecma-international.org/ecma-262/5.1/#sec-15.12.3\n\t\t\tkey = JSON.stringify( keys[ i ] );\n\n\t\t\tfn += key + ':r[' + key + '](s[' + key + '],a),';\n\t\t}\n\t\tfn += '}';\n\n\t\treturn new Function( 'r,s,a', fn );\n\t} )();\n\n\treturn function combinedReducer( state, action ) {\n\t\tvar nextState, i, key;\n\n\t\t// Assumed changed if initial state.\n\t\tif ( state === undefined ) {\n\t\t\treturn getNextState( reducers, {}, action );\n\t\t}\n\n\t\tnextState = getNextState( reducers, state, action );\n\n\t\t// Determine whether state has changed.\n\t\ti = keys.length;\n\t\twhile ( i-- ) {\n\t\t\tkey = keys[ i ];\n\t\t\tif ( state[ key ] !== nextState[ key ] ) {\n\t\t\t\t// Return immediately if a changed value is encountered.\n\t\t\t\treturn nextState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t};\n}\n\nmodule.exports = combineReducers;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"lodash\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"deprecated\"];","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? 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.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? 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.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? 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.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? 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.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? 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.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"reduxRoutine\"];","/**\n * Creates a selector function that takes additional curried argument with the\n * registry `select` function. While a regular selector has signature\n * ```js\n * ( state, ...selectorArgs ) => ( result )\n * ```\n * that allows to select data from the store's `state`, a registry selector\n * has signature:\n * ```js\n * ( select ) => ( state, ...selectorArgs ) => ( result )\n * ```\n * that supports also selecting from other registered stores.\n *\n * @example\n * ```js\n * const getCurrentPostId = createRegistrySelector( ( select ) => ( state ) => {\n * return select( 'core/editor' ).getCurrentPostId();\n * } );\n *\n * const getPostEdits = createRegistrySelector( ( select ) => ( state ) => {\n * // calling another registry selector just like any other function\n * const postType = getCurrentPostType( state );\n * const postId = getCurrentPostId( state );\n *\t return select( 'core' ).getEntityRecordEdits( 'postType', postType, postId );\n * } );\n * ```\n *\n * Note how the `getCurrentPostId` selector can be called just like any other function,\n * (it works even inside a regular non-registry selector) and we don't need to pass the\n * registry as argument. The registry binding happens automatically when registering the selector\n * with a store.\n *\n * @param {Function} registrySelector Function receiving a registry `select`\n * function and returning a state selector.\n *\n * @return {Function} Registry selector that can be registered with a store.\n */\nexport function createRegistrySelector( registrySelector ) {\n\t// Create a selector function that is bound to the registry referenced by `selector.registry`\n\t// and that has the same API as a regular selector. Binding it in such a way makes it\n\t// possible to call the selector directly from another selector.\n\tconst selector = ( ...args ) =>\n\t\tregistrySelector( selector.registry.select )( ...args );\n\n\t/**\n\t * Flag indicating that the selector is a registry selector that needs the correct registry\n\t * reference to be assigned to `selecto.registry` to make it work correctly.\n\t * be mapped as a registry selector.\n\t *\n\t * @type {boolean}\n\t */\n\tselector.isRegistrySelector = true;\n\n\treturn selector;\n}\n\n/**\n * Creates a control function that takes additional curried argument with the `registry` object.\n * While a regular control has signature\n * ```js\n * ( action ) => ( iteratorOrPromise )\n * ```\n * where the control works with the `action` that it's bound to, a registry control has signature:\n * ```js\n * ( registry ) => ( action ) => ( iteratorOrPromise )\n * ```\n * A registry control is typically used to select data or dispatch an action to a registered\n * store.\n *\n * When registering a control created with `createRegistryControl` with a store, the store\n * knows which calling convention to use when executing the control.\n *\n * @param {Function} registryControl Function receiving a registry object and returning a control.\n *\n * @return {Function} Registry control that can be registered with a store.\n */\nexport function createRegistryControl( registryControl ) {\n\tregistryControl.isRegistryControl = true;\n\n\treturn registryControl;\n}\n","/**\n * External dependencies\n */\nimport { isObject } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { createRegistryControl } from './factory';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\nconst SELECT = '@@data/SELECT';\nconst RESOLVE_SELECT = '@@data/RESOLVE_SELECT';\nconst DISPATCH = '@@data/DISPATCH';\n\n/**\n * Dispatches a control action for triggering a synchronous registry select.\n *\n * Note: This control synchronously returns the current selector value, triggering the\n * resolution, but not waiting for it.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * @param {string} selectorName The name of the selector.\n * @param {Array} args Arguments for the selector.\n *\n * @example\n * ```js\n * import { controls } from '@wordpress/data';\n *\n * // Action generator using `select`.\n * export function* myAction() {\n * const isEditorSideBarOpened = yield controls.select( 'core/edit-post', 'isEditorSideBarOpened' );\n * // Do stuff with the result from the `select`.\n * }\n * ```\n *\n * @return {Object} The control descriptor.\n */\nfunction select( storeNameOrDescriptor, selectorName, ...args ) {\n\treturn {\n\t\ttype: SELECT,\n\t\tstoreKey: isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor,\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Dispatches a control action for triggering and resolving a registry select.\n *\n * Note: when this control action is handled, it automatically considers\n * selectors that may have a resolver. In such case, it will return a `Promise` that resolves\n * after the selector finishes resolving, with the final result value.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * @param {string} selectorName The name of the selector\n * @param {Array} args Arguments for the selector.\n *\n * @example\n * ```js\n * import { controls } from '@wordpress/data';\n *\n * // Action generator using resolveSelect\n * export function* myAction() {\n * \tconst isSidebarOpened = yield controls.resolveSelect( 'core/edit-post', 'isEditorSideBarOpened' );\n * \t// do stuff with the result from the select.\n * }\n * ```\n *\n * @return {Object} The control descriptor.\n */\nfunction resolveSelect( storeNameOrDescriptor, selectorName, ...args ) {\n\treturn {\n\t\ttype: RESOLVE_SELECT,\n\t\tstoreKey: isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor,\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Dispatches a control action for triggering a registry dispatch.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * @param {string} actionName The name of the action to dispatch\n * @param {Array} args Arguments for the dispatch action.\n *\n * @example\n * ```js\n * import { controls } from '@wordpress/data-controls';\n *\n * // Action generator using dispatch\n * export function* myAction() {\n * yield controls.dispatch( 'core/edit-post', 'togglePublishSidebar' );\n * // do some other things.\n * }\n * ```\n *\n * @return {Object} The control descriptor.\n */\nfunction dispatch( storeNameOrDescriptor, actionName, ...args ) {\n\treturn {\n\t\ttype: DISPATCH,\n\t\tstoreKey: isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor,\n\t\tactionName,\n\t\targs,\n\t};\n}\n\nexport const controls = { select, resolveSelect, dispatch };\n\nexport const builtinControls = {\n\t[ SELECT ]: createRegistryControl(\n\t\t( registry ) => ( { storeKey, selectorName, args } ) =>\n\t\t\tregistry.select( storeKey )[ selectorName ]( ...args )\n\t),\n\t[ RESOLVE_SELECT ]: createRegistryControl(\n\t\t( registry ) => ( { storeKey, selectorName, args } ) => {\n\t\t\tconst method = registry.select( storeKey )[ selectorName ]\n\t\t\t\t.hasResolver\n\t\t\t\t? 'resolveSelect'\n\t\t\t\t: 'select';\n\t\t\treturn registry[ method ]( storeKey )[ selectorName ]( ...args );\n\t\t}\n\t),\n\t[ DISPATCH ]: createRegistryControl(\n\t\t( registry ) => ( { storeKey, actionName, args } ) =>\n\t\t\tregistry.dispatch( storeKey )[ actionName ]( ...args )\n\t),\n};\n","/**\n * External dependencies\n */\nimport isPromise from 'is-promise';\n\n/**\n * Simplest possible promise redux middleware.\n *\n * @type {import('redux').Middleware}\n */\nconst promiseMiddleware = () => ( next ) => ( action ) => {\n\tif ( isPromise( action ) ) {\n\t\treturn action.then( ( resolvedAction ) => {\n\t\t\tif ( resolvedAction ) {\n\t\t\t\treturn next( resolvedAction );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn next( action );\n};\n\nexport default promiseMiddleware;\n","export default function isPromise(obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n}\n","const coreDataStore = {\n\tname: 'core/data',\n\tinstantiate( registry ) {\n\t\tconst getCoreDataSelector = ( selectorName ) => ( key, ...args ) => {\n\t\t\treturn registry.select( key )[ selectorName ]( ...args );\n\t\t};\n\n\t\tconst getCoreDataAction = ( actionName ) => ( key, ...args ) => {\n\t\t\treturn registry.dispatch( key )[ actionName ]( ...args );\n\t\t};\n\n\t\treturn {\n\t\t\tgetSelectors() {\n\t\t\t\treturn Object.fromEntries(\n\t\t\t\t\t[\n\t\t\t\t\t\t'getIsResolving',\n\t\t\t\t\t\t'hasStartedResolution',\n\t\t\t\t\t\t'hasFinishedResolution',\n\t\t\t\t\t\t'isResolving',\n\t\t\t\t\t\t'getCachedResolvers',\n\t\t\t\t\t].map( ( selectorName ) => [\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\tgetCoreDataSelector( selectorName ),\n\t\t\t\t\t] )\n\t\t\t\t);\n\t\t\t},\n\n\t\t\tgetActions() {\n\t\t\t\treturn Object.fromEntries(\n\t\t\t\t\t[\n\t\t\t\t\t\t'startResolution',\n\t\t\t\t\t\t'finishResolution',\n\t\t\t\t\t\t'invalidateResolution',\n\t\t\t\t\t\t'invalidateResolutionForStore',\n\t\t\t\t\t\t'invalidateResolutionForStoreSelector',\n\t\t\t\t\t].map( ( actionName ) => [\n\t\t\t\t\t\tactionName,\n\t\t\t\t\t\tgetCoreDataAction( actionName ),\n\t\t\t\t\t] )\n\t\t\t\t);\n\t\t\t},\n\n\t\t\tsubscribe() {\n\t\t\t\t// There's no reasons to trigger any listener when we subscribe to this store\n\t\t\t\t// because there's no state stored in this store that need to retrigger selectors\n\t\t\t\t// if a change happens, the corresponding store where the tracking stated live\n\t\t\t\t// would have already triggered a \"subscribe\" call.\n\t\t\t\treturn () => () => {};\n\t\t\t},\n\t\t};\n\t},\n};\n\nexport default coreDataStore;\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport coreDataStore from './store';\n\n/** @typedef {import('./registry').WPDataRegistry} WPDataRegistry */\n\n/**\n * Creates a middleware handling resolvers cache invalidation.\n *\n * @param {WPDataRegistry} registry The registry reference for which to create\n * the middleware.\n * @param {string} reducerKey The namespace for which to create the\n * middleware.\n *\n * @return {Function} Middleware function.\n */\nconst createResolversCacheMiddleware = ( registry, reducerKey ) => () => (\n\tnext\n) => ( action ) => {\n\tconst resolvers = registry\n\t\t.select( coreDataStore )\n\t\t.getCachedResolvers( reducerKey );\n\tObject.entries( resolvers ).forEach(\n\t\t( [ selectorName, resolversByArgs ] ) => {\n\t\t\tconst resolver = get( registry.stores, [\n\t\t\t\treducerKey,\n\t\t\t\t'resolvers',\n\t\t\t\tselectorName,\n\t\t\t] );\n\t\t\tif ( ! resolver || ! resolver.shouldInvalidate ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolversByArgs.forEach( ( value, args ) => {\n\t\t\t\t// resolversByArgs is the map Map([ args ] => boolean) storing the cache resolution status for a given selector.\n\t\t\t\t// If the value is \"finished\" or \"error\" it means this resolver has finished its resolution which means we need\n\t\t\t\t// to invalidate it, if it's true it means it's inflight and the invalidation is not necessary.\n\t\t\t\tif (\n\t\t\t\t\t( value?.status !== 'finished' &&\n\t\t\t\t\t\tvalue?.status !== 'error' ) ||\n\t\t\t\t\t! resolver.shouldInvalidate( action, ...args )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Trigger cache invalidation\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( coreDataStore )\n\t\t\t\t\t.invalidateResolution( reducerKey, selectorName, args );\n\t\t\t} );\n\t\t}\n\t);\n\treturn next( action );\n};\n\nexport default createResolversCacheMiddleware;\n","/**\n * External dependencies\n */\nimport type { AnyAction, Reducer } from 'redux';\n\n/**\n * Higher-order reducer creator which creates a combined reducer object, keyed\n * by a property on the action object.\n *\n * @param actionProperty Action property by which to key object.\n * @return Higher-order reducer.\n */\nexport const onSubKey = < TState extends unknown, TAction extends AnyAction >(\n\tactionProperty: string\n) => (\n\treducer: Reducer< TState, TAction >\n): Reducer< Record< string, TState >, TAction > => (\n\tstate: Record< string, TState > = {},\n\taction\n) => {\n\t// Retrieve subkey from action. Do not track if undefined; useful for cases\n\t// where reducer is scoped by action shape.\n\tconst key = action[ actionProperty ];\n\tif ( key === undefined ) {\n\t\treturn state;\n\t}\n\n\t// Avoid updating state if unchanged. Note that this also accounts for a\n\t// reducer which returns undefined on a key which is not yet tracked.\n\tconst nextKeyState = reducer( state[ key ], action );\n\tif ( nextKeyState === state[ key ] ) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\t...state,\n\t\t[ key ]: nextKeyState,\n\t};\n};\n\n/**\n * Normalize selector argument array by defaulting `undefined` value to an empty array\n * and removing trailing `undefined` values.\n *\n * @param args Selector argument array\n * @return Normalized state key array\n */\nexport function selectorArgsToStateKey( args: unknown[] | null | undefined ) {\n\tif ( args === undefined || args === null ) {\n\t\treturn [];\n\t}\n\n\tconst len = args.length;\n\tlet idx = len;\n\twhile ( idx > 0 && args[ idx - 1 ] === undefined ) {\n\t\tidx--;\n\t}\n\treturn idx === len ? args : args.slice( 0, idx );\n}\n","/**\n * External dependencies\n */\nimport { omit, has } from 'lodash';\nimport EquivalentKeyMap from 'equivalent-key-map';\nimport type { Reducer } from 'redux';\n\n/**\n * Internal dependencies\n */\nimport { selectorArgsToStateKey, onSubKey } from './utils';\n\ntype Action =\n\t| ReturnType< typeof import('./actions').startResolution >\n\t| ReturnType< typeof import('./actions').finishResolution >\n\t| ReturnType< typeof import('./actions').failResolution >\n\t| ReturnType< typeof import('./actions').startResolutions >\n\t| ReturnType< typeof import('./actions').finishResolutions >\n\t| ReturnType< typeof import('./actions').failResolutions >\n\t| ReturnType< typeof import('./actions').invalidateResolution >\n\t| ReturnType< typeof import('./actions').invalidateResolutionForStore >\n\t| ReturnType<\n\t\t\ttypeof import('./actions').invalidateResolutionForStoreSelector\n\t >;\n\ntype StateKey = unknown[] | unknown;\nexport type StateValue =\n\t| { status: 'resolving' | 'finished' }\n\t| { status: 'error'; error: Error | unknown };\n\nexport type Status = StateValue[ 'status' ];\nexport type State = EquivalentKeyMap< StateKey, StateValue >;\n\n/**\n * Reducer function returning next state for selector resolution of\n * subkeys, object form:\n *\n * selectorName -> EquivalentKeyMap\n */\nconst subKeysIsResolved: Reducer< Record< string, State >, Action > = onSubKey<\n\tState,\n\tAction\n>( 'selectorName' )( ( state = new EquivalentKeyMap(), action: Action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'START_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'resolving',\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FINISH_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'finished',\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FAIL_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'error',\n\t\t\t\terror: action.error,\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'START_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tfor ( const resolutionArgs of action.args ) {\n\t\t\t\tnextState.set( selectorArgsToStateKey( resolutionArgs ), {\n\t\t\t\t\tstatus: 'resolving',\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FINISH_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tfor ( const resolutionArgs of action.args ) {\n\t\t\t\tnextState.set( selectorArgsToStateKey( resolutionArgs ), {\n\t\t\t\t\tstatus: 'finished',\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FAIL_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\taction.args.forEach( ( resolutionArgs, idx ) => {\n\t\t\t\tconst resolutionState: StateValue = {\n\t\t\t\t\tstatus: 'error',\n\t\t\t\t\terror: undefined,\n\t\t\t\t};\n\n\t\t\t\tconst error = action.errors[ idx ];\n\t\t\t\tif ( error ) {\n\t\t\t\t\tresolutionState.error = error;\n\t\t\t\t}\n\n\t\t\t\tnextState.set(\n\t\t\t\t\tselectorArgsToStateKey( resolutionArgs as unknown[] ),\n\t\t\t\t\tresolutionState\n\t\t\t\t);\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'INVALIDATE_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.delete( selectorArgsToStateKey( action.args ) );\n\t\t\treturn nextState;\n\t\t}\n\t}\n\treturn state;\n} );\n\n/**\n * Reducer function returning next state for selector resolution, object form:\n *\n * selectorName -> EquivalentKeyMap\n *\n * @param state Current state.\n * @param action Dispatched action.\n *\n * @return Next state.\n */\nconst isResolved = ( state: Record< string, State > = {}, action: Action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'INVALIDATE_RESOLUTION_FOR_STORE':\n\t\t\treturn {};\n\t\tcase 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR':\n\t\t\treturn has( state, [ action.selectorName ] )\n\t\t\t\t? omit( state, [ action.selectorName ] )\n\t\t\t\t: state;\n\t\tcase 'START_RESOLUTION':\n\t\tcase 'FINISH_RESOLUTION':\n\t\tcase 'FAIL_RESOLUTION':\n\t\tcase 'START_RESOLUTIONS':\n\t\tcase 'FINISH_RESOLUTIONS':\n\t\tcase 'FAIL_RESOLUTIONS':\n\t\tcase 'INVALIDATE_RESOLUTION':\n\t\t\treturn subKeysIsResolved( state, action );\n\t}\n\treturn state;\n};\n\nexport default isResolved;\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { selectorArgsToStateKey } from './utils';\n\n/** @typedef {Record} State */\n/** @typedef {import('./reducer').StateValue} StateValue */\n/** @typedef {import('./reducer').Status} Status */\n\n/**\n * Returns the raw resolution state value for a given selector name,\n * and arguments set. May be undefined if the selector has never been resolved\n * or not resolved for the given set of arguments, otherwise true or false for\n * resolution started and completed respectively.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {StateValue|undefined} isResolving value.\n */\nexport function getResolutionState( state, selectorName, args ) {\n\tconst map = get( state, [ selectorName ] );\n\tif ( ! map ) {\n\t\treturn;\n\t}\n\n\treturn map.get( selectorArgsToStateKey( args ) );\n}\n\n/**\n * Returns the raw `isResolving` value for a given selector name,\n * and arguments set. May be undefined if the selector has never been resolved\n * or not resolved for the given set of arguments, otherwise true or false for\n * resolution started and completed respectively.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean | undefined} isResolving value.\n */\nexport function getIsResolving( state, selectorName, args ) {\n\tconst resolutionState = getResolutionState( state, selectorName, args );\n\n\treturn resolutionState && resolutionState.status === 'resolving';\n}\n\n/**\n * Returns true if resolution has already been triggered for a given\n * selector name, and arguments set.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean} Whether resolution has been triggered.\n */\nexport function hasStartedResolution( state, selectorName, args ) {\n\treturn getResolutionState( state, selectorName, args ) !== undefined;\n}\n\n/**\n * Returns true if resolution has completed for a given selector\n * name, and arguments set.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean} Whether resolution has completed.\n */\nexport function hasFinishedResolution( state, selectorName, args ) {\n\tconst status = getResolutionState( state, selectorName, args )?.status;\n\treturn status === 'finished' || status === 'error';\n}\n\n/**\n * Returns true if resolution has failed for a given selector\n * name, and arguments set.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean} Has resolution failed\n */\nexport function hasResolutionFailed( state, selectorName, args ) {\n\treturn getResolutionState( state, selectorName, args )?.status === 'error';\n}\n\n/**\n * Returns the resolution error for a given selector name, and arguments set.\n * Note it may be of an Error type, but may also be null, undefined, or anything else\n * that can be `throw`-n.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {Error|unknown} Last resolution error\n */\nexport function getResolutionError( state, selectorName, args ) {\n\tconst resolutionState = getResolutionState( state, selectorName, args );\n\treturn resolutionState?.status === 'error' ? resolutionState.error : null;\n}\n\n/**\n * Returns true if resolution has been triggered but has not yet completed for\n * a given selector name, and arguments set.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean} Whether resolution is in progress.\n */\nexport function isResolving( state, selectorName, args ) {\n\treturn (\n\t\tgetResolutionState( state, selectorName, args )?.status === 'resolving'\n\t);\n}\n\n/**\n * Returns the list of the cached resolvers.\n *\n * @param {State} state Data state.\n *\n * @return {State} Resolvers mapped by args and selectorName.\n */\nexport function getCachedResolvers( state ) {\n\treturn state;\n}\n","/**\n * Returns an action object used in signalling that selector resolution has\n * started.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args Arguments to associate for uniqueness.\n *\n * @return {{ type: 'START_RESOLUTION', selectorName: string, args: unknown[] }} Action object.\n */\nexport function startResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'START_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that selector resolution has\n * completed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args Arguments to associate for uniqueness.\n *\n * @return {{ type: 'FINISH_RESOLUTION', selectorName: string, args: unknown[] }} Action object.\n */\nexport function finishResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'FINISH_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that selector resolution has\n * failed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args Arguments to associate for uniqueness.\n * @param {Error|unknown} error The error that caused the failure.\n *\n * @return {{ type: 'FAIL_RESOLUTION', selectorName: string, args: unknown[], error: Error|unknown }} Action object.\n */\nexport function failResolution( selectorName, args, error ) {\n\treturn {\n\t\ttype: 'FAIL_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t\terror,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * started.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[][]} args Array of arguments to associate for uniqueness, each item\n * is associated to a resolution.\n *\n * @return {{ type: 'START_RESOLUTIONS', selectorName: string, args: unknown[][] }} Action object.\n */\nexport function startResolutions( selectorName, args ) {\n\treturn {\n\t\ttype: 'START_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * completed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[][]} args Array of arguments to associate for uniqueness, each item\n * is associated to a resolution.\n *\n * @return {{ type: 'FINISH_RESOLUTIONS', selectorName: string, args: unknown[][] }} Action object.\n */\nexport function finishResolutions( selectorName, args ) {\n\treturn {\n\t\ttype: 'FINISH_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * completed and at least one of them has failed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args Array of arguments to associate for uniqueness, each item\n * is associated to a resolution.\n * @param {(Error|unknown)[]} errors Array of errors to associate for uniqueness, each item\n * is associated to a resolution.\n * @return {{ type: 'FAIL_RESOLUTIONS', selectorName: string, args: unknown[], errors: Array }} Action object.\n */\nexport function failResolutions( selectorName, args, errors ) {\n\treturn {\n\t\ttype: 'FAIL_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t\terrors,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that we should invalidate the resolution cache.\n *\n * @param {string} selectorName Name of selector for which resolver should be invalidated.\n * @param {unknown[]} args Arguments to associate for uniqueness.\n *\n * @return {{ type: 'INVALIDATE_RESOLUTION', selectorName: string, args: any[] }} Action object.\n */\nexport function invalidateResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the resolution\n * should be invalidated.\n *\n * @return {{ type: 'INVALIDATE_RESOLUTION_FOR_STORE' }} Action object.\n */\nexport function invalidateResolutionForStore() {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION_FOR_STORE',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the resolution cache for a\n * given selectorName should be invalidated.\n *\n * @param {string} selectorName Name of selector for which all resolvers should\n * be invalidated.\n *\n * @return {{ type: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR', selectorName: string }} Action object.\n */\nexport function invalidateResolutionForStoreSelector( selectorName ) {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR',\n\t\tselectorName,\n\t};\n}\n","/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\nimport { flowRight, get, mapValues, omit } from 'lodash';\nimport combineReducers from 'turbo-combine-reducers';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * WordPress dependencies\n */\nimport createReduxRoutineMiddleware from '@wordpress/redux-routine';\n\n/**\n * Internal dependencies\n */\nimport { builtinControls } from '../controls';\nimport promise from '../promise-middleware';\nimport createResolversCacheMiddleware from '../resolvers-cache-middleware';\nimport createThunkMiddleware from './thunk-middleware';\nimport metadataReducer from './metadata/reducer';\nimport * as metadataSelectors from './metadata/selectors';\nimport * as metadataActions from './metadata/actions';\n\n/** @typedef {import('../types').DataRegistry} DataRegistry */\n/** @typedef {import('../types').StoreDescriptor} StoreDescriptor */\n/** @typedef {import('../types').ReduxStoreConfig} ReduxStoreConfig */\n\nconst trimUndefinedValues = ( array ) => {\n\tconst result = [ ...array ];\n\tfor ( let i = result.length - 1; i >= 0; i-- ) {\n\t\tif ( result[ i ] === undefined ) {\n\t\t\tresult.splice( i, 1 );\n\t\t}\n\t}\n\treturn result;\n};\n\n/**\n * Create a cache to track whether resolvers started running or not.\n *\n * @return {Object} Resolvers Cache.\n */\nfunction createResolversCache() {\n\tconst cache = {};\n\treturn {\n\t\tisRunning( selectorName, args ) {\n\t\t\treturn (\n\t\t\t\tcache[ selectorName ] &&\n\t\t\t\tcache[ selectorName ].get( trimUndefinedValues( args ) )\n\t\t\t);\n\t\t},\n\n\t\tclear( selectorName, args ) {\n\t\t\tif ( cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ].delete( trimUndefinedValues( args ) );\n\t\t\t}\n\t\t},\n\n\t\tmarkAsRunning( selectorName, args ) {\n\t\t\tif ( ! cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ] = new EquivalentKeyMap();\n\t\t\t}\n\n\t\t\tcache[ selectorName ].set( trimUndefinedValues( args ), true );\n\t\t},\n\t};\n}\n\n/**\n * Creates a data store descriptor for the provided Redux store configuration containing\n * properties describing reducer, actions, selectors, controls and resolvers.\n *\n * @example\n * ```js\n * import { createReduxStore } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n * reducer: ( state = 'OK' ) => state,\n * selectors: {\n * getValue: ( state ) => state,\n * },\n * } );\n * ```\n *\n * @param {string} key Unique namespace identifier.\n * @param {ReduxStoreConfig} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n *\n * @return {StoreDescriptor} Store Object.\n */\nexport default function createReduxStore( key, options ) {\n\treturn {\n\t\tname: key,\n\t\tinstantiate: ( registry ) => {\n\t\t\tconst reducer = options.reducer;\n\t\t\tconst thunkArgs = {\n\t\t\t\tregistry,\n\t\t\t\tget dispatch() {\n\t\t\t\t\treturn Object.assign(\n\t\t\t\t\t\t( action ) => store.dispatch( action ),\n\t\t\t\t\t\tgetActions()\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tget select() {\n\t\t\t\t\treturn Object.assign(\n\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\tselector( store.__unstableOriginalGetState() ),\n\t\t\t\t\t\tgetSelectors()\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tget resolveSelect() {\n\t\t\t\t\treturn getResolveSelectors();\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst store = instantiateReduxStore(\n\t\t\t\tkey,\n\t\t\t\toptions,\n\t\t\t\tregistry,\n\t\t\t\tthunkArgs\n\t\t\t);\n\t\t\tconst resolversCache = createResolversCache();\n\n\t\t\tlet resolvers;\n\t\t\tconst actions = mapActions(\n\t\t\t\t{\n\t\t\t\t\t...metadataActions,\n\t\t\t\t\t...options.actions,\n\t\t\t\t},\n\t\t\t\tstore\n\t\t\t);\n\n\t\t\tlet selectors = mapSelectors(\n\t\t\t\t{\n\t\t\t\t\t...mapValues(\n\t\t\t\t\t\tmetadataSelectors,\n\t\t\t\t\t\t( selector ) => ( state, ...args ) =>\n\t\t\t\t\t\t\tselector( state.metadata, ...args )\n\t\t\t\t\t),\n\t\t\t\t\t...mapValues( options.selectors, ( selector ) => {\n\t\t\t\t\t\tif ( selector.isRegistrySelector ) {\n\t\t\t\t\t\t\tselector.registry = registry;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn ( state, ...args ) =>\n\t\t\t\t\t\t\tselector( state.root, ...args );\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t\tstore\n\t\t\t);\n\t\t\tif ( options.resolvers ) {\n\t\t\t\tconst result = mapResolvers(\n\t\t\t\t\toptions.resolvers,\n\t\t\t\t\tselectors,\n\t\t\t\t\tstore,\n\t\t\t\t\tresolversCache\n\t\t\t\t);\n\t\t\t\tresolvers = result.resolvers;\n\t\t\t\tselectors = result.selectors;\n\t\t\t}\n\n\t\t\tconst resolveSelectors = mapResolveSelectors( selectors, store );\n\n\t\t\tconst getSelectors = () => selectors;\n\t\t\tconst getActions = () => actions;\n\t\t\tconst getResolveSelectors = () => resolveSelectors;\n\n\t\t\t// We have some modules monkey-patching the store object\n\t\t\t// It's wrong to do so but until we refactor all of our effects to controls\n\t\t\t// We need to keep the same \"store\" instance here.\n\t\t\tstore.__unstableOriginalGetState = store.getState;\n\t\t\tstore.getState = () => store.__unstableOriginalGetState().root;\n\n\t\t\t// Customize subscribe behavior to call listeners only on effective change,\n\t\t\t// not on every dispatch.\n\t\t\tconst subscribe =\n\t\t\t\tstore &&\n\t\t\t\t( ( listener ) => {\n\t\t\t\t\tlet lastState = store.__unstableOriginalGetState();\n\t\t\t\t\treturn store.subscribe( () => {\n\t\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\t\tconst hasChanged = state !== lastState;\n\t\t\t\t\t\tlastState = state;\n\n\t\t\t\t\t\tif ( hasChanged ) {\n\t\t\t\t\t\t\tlistener();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t// This can be simplified to just { subscribe, getSelectors, getActions }\n\t\t\t// Once we remove the use function.\n\t\t\treturn {\n\t\t\t\treducer,\n\t\t\t\tstore,\n\t\t\t\tactions,\n\t\t\t\tselectors,\n\t\t\t\tresolvers,\n\t\t\t\tgetSelectors,\n\t\t\t\tgetResolveSelectors,\n\t\t\t\tgetActions,\n\t\t\t\tsubscribe,\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a redux store for a namespace.\n *\n * @param {string} key Unique namespace identifier.\n * @param {Object} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n * @param {DataRegistry} registry Registry reference.\n * @param {Object} thunkArgs Argument object for the thunk middleware.\n * @return {Object} Newly created redux store.\n */\nfunction instantiateReduxStore( key, options, registry, thunkArgs ) {\n\tconst controls = {\n\t\t...options.controls,\n\t\t...builtinControls,\n\t};\n\n\tconst normalizedControls = mapValues( controls, ( control ) =>\n\t\tcontrol.isRegistryControl ? control( registry ) : control\n\t);\n\n\tconst middlewares = [\n\t\tcreateResolversCacheMiddleware( registry, key ),\n\t\tpromise,\n\t\tcreateReduxRoutineMiddleware( normalizedControls ),\n\t\tcreateThunkMiddleware( thunkArgs ),\n\t];\n\n\tconst enhancers = [ applyMiddleware( ...middlewares ) ];\n\tif (\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__REDUX_DEVTOOLS_EXTENSION__\n\t) {\n\t\tenhancers.push(\n\t\t\twindow.__REDUX_DEVTOOLS_EXTENSION__( {\n\t\t\t\tname: key,\n\t\t\t\tinstanceId: key,\n\t\t\t} )\n\t\t);\n\t}\n\n\tconst { reducer, initialState } = options;\n\tconst enhancedReducer = combineReducers( {\n\t\tmetadata: metadataReducer,\n\t\troot: reducer,\n\t} );\n\n\treturn createStore(\n\t\tenhancedReducer,\n\t\t{ root: initialState },\n\t\tflowRight( enhancers )\n\t);\n}\n\n/**\n * Maps selectors to a store.\n *\n * @param {Object} selectors Selectors to register. Keys will be used as the\n * public facing API. Selectors will get passed the\n * state as first argument.\n * @param {Object} store The store to which the selectors should be mapped.\n * @return {Object} Selectors mapped to the provided store.\n */\nfunction mapSelectors( selectors, store ) {\n\tconst createStateSelector = ( registrySelector ) => {\n\t\tconst selector = function runSelector() {\n\t\t\t// This function is an optimized implementation of:\n\t\t\t//\n\t\t\t// selector( store.getState(), ...arguments )\n\t\t\t//\n\t\t\t// Where the above would incur an `Array#concat` in its application,\n\t\t\t// the logic here instead efficiently constructs an arguments array via\n\t\t\t// direct assignment.\n\t\t\tconst argsLength = arguments.length;\n\t\t\tconst args = new Array( argsLength + 1 );\n\t\t\targs[ 0 ] = store.__unstableOriginalGetState();\n\t\t\tfor ( let i = 0; i < argsLength; i++ ) {\n\t\t\t\targs[ i + 1 ] = arguments[ i ];\n\t\t\t}\n\n\t\t\treturn registrySelector( ...args );\n\t\t};\n\t\tselector.hasResolver = false;\n\t\treturn selector;\n\t};\n\n\treturn mapValues( selectors, createStateSelector );\n}\n\n/**\n * Maps actions to dispatch from a given store.\n *\n * @param {Object} actions Actions to register.\n * @param {Object} store The redux store to which the actions should be mapped.\n *\n * @return {Object} Actions mapped to the redux store provided.\n */\nfunction mapActions( actions, store ) {\n\tconst createBoundAction = ( action ) => ( ...args ) => {\n\t\treturn Promise.resolve( store.dispatch( action( ...args ) ) );\n\t};\n\n\treturn mapValues( actions, createBoundAction );\n}\n\n/**\n * Maps selectors to functions that return a resolution promise for them\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their resolution functions.\n */\nfunction mapResolveSelectors( selectors, store ) {\n\treturn mapValues(\n\t\tomit( selectors, [\n\t\t\t'getIsResolving',\n\t\t\t'hasStartedResolution',\n\t\t\t'hasFinishedResolution',\n\t\t\t'isResolving',\n\t\t\t'getCachedResolvers',\n\t\t] ),\n\t\t( selector, selectorName ) => ( ...args ) =>\n\t\t\tnew Promise( ( resolve, reject ) => {\n\t\t\t\tconst hasFinished = () =>\n\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args );\n\t\t\t\tconst finalize = ( result ) => {\n\t\t\t\t\tconst hasFailed = selectors.hasResolutionFailed(\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t\tif ( hasFailed ) {\n\t\t\t\t\t\tconst error = selectors.getResolutionError(\n\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\targs\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject( error );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve( result );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst getResult = () => selector.apply( null, args );\n\t\t\t\t// Trigger the selector (to trigger the resolver)\n\t\t\t\tconst result = getResult();\n\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\treturn finalize( result );\n\t\t\t\t}\n\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\tfinalize( getResult() );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} )\n\t);\n}\n\n/**\n * Returns resolvers with matched selectors for a given namespace.\n * Resolvers are side effects invoked once per argument set of a given selector call,\n * used in ensuring that the data needs for the selector are satisfied.\n *\n * @param {Object} resolvers Resolvers to register.\n * @param {Object} selectors The current selectors to be modified.\n * @param {Object} store The redux store to which the resolvers should be mapped.\n * @param {Object} resolversCache Resolvers Cache.\n */\nfunction mapResolvers( resolvers, selectors, store, resolversCache ) {\n\t// The `resolver` can be either a function that does the resolution, or, in more advanced\n\t// cases, an object with a `fullfill` method and other optional methods like `isFulfilled`.\n\t// Here we normalize the `resolver` function to an object with `fulfill` method.\n\tconst mappedResolvers = mapValues( resolvers, ( resolver ) => {\n\t\tif ( resolver.fulfill ) {\n\t\t\treturn resolver;\n\t\t}\n\n\t\treturn {\n\t\t\t...resolver, // Copy the enumerable properties of the resolver function.\n\t\t\tfulfill: resolver, // Add the fulfill method.\n\t\t};\n\t} );\n\n\tconst mapSelector = ( selector, selectorName ) => {\n\t\tconst resolver = resolvers[ selectorName ];\n\t\tif ( ! resolver ) {\n\t\t\tselector.hasResolver = false;\n\t\t\treturn selector;\n\t\t}\n\n\t\tconst selectorResolver = ( ...args ) => {\n\t\t\tasync function fulfillSelector() {\n\t\t\t\tconst state = store.getState();\n\n\t\t\t\tif (\n\t\t\t\t\tresolversCache.isRunning( selectorName, args ) ||\n\t\t\t\t\t( typeof resolver.isFulfilled === 'function' &&\n\t\t\t\t\t\tresolver.isFulfilled( state, ...args ) )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst { metadata } = store.__unstableOriginalGetState();\n\n\t\t\t\tif (\n\t\t\t\t\tmetadataSelectors.hasStartedResolution(\n\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolversCache.markAsRunning( selectorName, args );\n\n\t\t\t\tsetTimeout( async () => {\n\t\t\t\t\tresolversCache.clear( selectorName, args );\n\t\t\t\t\tstore.dispatch(\n\t\t\t\t\t\tmetadataActions.startResolution( selectorName, args )\n\t\t\t\t\t);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait fulfillResolver(\n\t\t\t\t\t\t\tstore,\n\t\t\t\t\t\t\tmappedResolvers,\n\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\t...args\n\t\t\t\t\t\t);\n\t\t\t\t\t\tstore.dispatch(\n\t\t\t\t\t\t\tmetadataActions.finishResolution(\n\t\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\t\targs\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( error ) {\n\t\t\t\t\t\tstore.dispatch(\n\t\t\t\t\t\t\tmetadataActions.failResolution(\n\t\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\t\targs,\n\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tfulfillSelector( ...args );\n\t\t\treturn selector( ...args );\n\t\t};\n\t\tselectorResolver.hasResolver = true;\n\t\treturn selectorResolver;\n\t};\n\n\treturn {\n\t\tresolvers: mappedResolvers,\n\t\tselectors: mapValues( selectors, mapSelector ),\n\t};\n}\n\n/**\n * Calls a resolver given arguments\n *\n * @param {Object} store Store reference, for fulfilling via resolvers\n * @param {Object} resolvers Store Resolvers\n * @param {string} selectorName Selector name to fulfill.\n * @param {Array} args Selector Arguments.\n */\nasync function fulfillResolver( store, resolvers, selectorName, ...args ) {\n\tconst resolver = get( resolvers, [ selectorName ] );\n\tif ( ! resolver ) {\n\t\treturn;\n\t}\n\n\tconst action = resolver.fulfill( ...args );\n\tif ( action ) {\n\t\tawait store.dispatch( action );\n\t}\n}\n","export default function createThunkMiddleware( args ) {\n\treturn () => ( next ) => ( action ) => {\n\t\tif ( typeof action === 'function' ) {\n\t\t\treturn action( args );\n\t\t}\n\n\t\treturn next( action );\n\t};\n}\n","/**\n * Create an event emitter.\n *\n * @return {import(\"../types\").DataEmitter} Emitter.\n */\nexport function createEmitter() {\n\tlet isPaused = false;\n\tlet isPending = false;\n\tconst listeners = new Set();\n\tconst notifyListeners = () =>\n\t\t// We use Array.from to clone the listeners Set\n\t\t// This ensures that we don't run a listener\n\t\t// that was added as a response to another listener.\n\t\tArray.from( listeners ).forEach( ( listener ) => listener() );\n\n\treturn {\n\t\tget isPaused() {\n\t\t\treturn isPaused;\n\t\t},\n\n\t\tsubscribe( listener ) {\n\t\t\tlisteners.add( listener );\n\t\t\treturn () => listeners.delete( listener );\n\t\t},\n\n\t\tpause() {\n\t\t\tisPaused = true;\n\t\t},\n\n\t\tresume() {\n\t\t\tisPaused = false;\n\t\t\tif ( isPending ) {\n\t\t\t\tisPending = false;\n\t\t\t\tnotifyListeners();\n\t\t\t}\n\t\t},\n\n\t\temit() {\n\t\t\tif ( isPaused ) {\n\t\t\t\tisPending = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnotifyListeners();\n\t\t},\n\t};\n}\n","/**\n * External dependencies\n */\nimport { mapValues, isObject, forEach } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport createReduxStore from './redux-store';\nimport coreDataStore from './store';\nimport { createEmitter } from './utils/emitter';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\n/**\n * @typedef {Object} WPDataRegistry An isolated orchestrator of store registrations.\n *\n * @property {Function} registerGenericStore Given a namespace key and settings\n * object, registers a new generic\n * store.\n * @property {Function} registerStore Given a namespace key and settings\n * object, registers a new namespace\n * store.\n * @property {Function} subscribe Given a function callback, invokes\n * the callback on any change to state\n * within any registered store.\n * @property {Function} select Given a namespace key, returns an\n * object of the store's registered\n * selectors.\n * @property {Function} dispatch Given a namespace key, returns an\n * object of the store's registered\n * action dispatchers.\n */\n\n/**\n * @typedef {Object} WPDataPlugin An object of registry function overrides.\n *\n * @property {Function} registerStore registers store.\n */\n\n/**\n * Creates a new store registry, given an optional object of initial store\n * configurations.\n *\n * @param {Object} storeConfigs Initial store configurations.\n * @param {Object?} parent Parent registry.\n *\n * @return {WPDataRegistry} Data registry.\n */\nexport function createRegistry( storeConfigs = {}, parent = null ) {\n\tconst stores = {};\n\tconst emitter = createEmitter();\n\tconst __experimentalListeningStores = new Set();\n\n\t/**\n\t * Global listener called for each store's update.\n\t */\n\tfunction globalListener() {\n\t\temitter.emit();\n\t}\n\n\t/**\n\t * Subscribe to changes to any data.\n\t *\n\t * @param {Function} listener Listener function.\n\t *\n\t * @return {Function} Unsubscribe function.\n\t */\n\tconst subscribe = ( listener ) => {\n\t\treturn emitter.subscribe( listener );\n\t};\n\n\t/**\n\t * Calls a selector given the current state and extra arguments.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The selector's returned value.\n\t */\n\tfunction select( storeNameOrDescriptor ) {\n\t\tconst storeName = isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor;\n\t\t__experimentalListeningStores.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSelectors();\n\t\t}\n\n\t\treturn parent && parent.select( storeName );\n\t}\n\n\tfunction __experimentalMarkListeningStores( callback, ref ) {\n\t\t__experimentalListeningStores.clear();\n\t\tconst result = callback.call( this );\n\t\tref.current = Array.from( __experimentalListeningStores );\n\t\treturn result;\n\t}\n\n\t/**\n\t * Given the name of a registered store, returns an object containing the store's\n\t * selectors pre-bound to state so that you only need to supply additional arguments,\n\t * and modified so that they return promises that resolve to their eventual values,\n\t * after any resolvers have ran.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {Object} Each key of the object matches the name of a selector.\n\t */\n\tfunction resolveSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor;\n\t\t__experimentalListeningStores.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getResolveSelectors();\n\t\t}\n\n\t\treturn parent && parent.resolveSelect( storeName );\n\t}\n\n\t/**\n\t * Returns the available actions for a part of the state.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The action's returned value.\n\t */\n\tfunction dispatch( storeNameOrDescriptor ) {\n\t\tconst storeName = isObject( storeNameOrDescriptor )\n\t\t\t? storeNameOrDescriptor.name\n\t\t\t: storeNameOrDescriptor;\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getActions();\n\t\t}\n\n\t\treturn parent && parent.dispatch( storeName );\n\t}\n\n\t//\n\t// Deprecated\n\t// TODO: Remove this after `use()` is removed.\n\tfunction withPlugins( attributes ) {\n\t\treturn mapValues( attributes, ( attribute, key ) => {\n\t\t\tif ( typeof attribute !== 'function' ) {\n\t\t\t\treturn attribute;\n\t\t\t}\n\t\t\treturn function () {\n\t\t\t\treturn registry[ key ].apply( null, arguments );\n\t\t\t};\n\t\t} );\n\t}\n\n\t/**\n\t * Registers a store instance.\n\t *\n\t * @param {string} name Store registry name.\n\t * @param {Object} store Store instance object (getSelectors, getActions, subscribe).\n\t */\n\tfunction registerStoreInstance( name, store ) {\n\t\tif ( typeof store.getSelectors !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getSelectors must be a function' );\n\t\t}\n\t\tif ( typeof store.getActions !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getActions must be a function' );\n\t\t}\n\t\tif ( typeof store.subscribe !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.subscribe must be a function' );\n\t\t}\n\t\t// The emitter is used to keep track of active listeners when the registry\n\t\t// get paused, that way, when resumed we should be able to call all these\n\t\t// pending listeners.\n\t\tstore.emitter = createEmitter();\n\t\tconst currentSubscribe = store.subscribe;\n\t\tstore.subscribe = ( listener ) => {\n\t\t\tconst unsubscribeFromEmitter = store.emitter.subscribe( listener );\n\t\t\tconst unsubscribeFromStore = currentSubscribe( () => {\n\t\t\t\tif ( store.emitter.isPaused ) {\n\t\t\t\t\tstore.emitter.emit();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlistener();\n\t\t\t} );\n\n\t\t\treturn () => {\n\t\t\t\tunsubscribeFromStore?.();\n\t\t\t\tunsubscribeFromEmitter?.();\n\t\t\t};\n\t\t};\n\t\tstores[ name ] = store;\n\t\tstore.subscribe( globalListener );\n\t}\n\n\t/**\n\t * Registers a new store given a store descriptor.\n\t *\n\t * @param {StoreDescriptor} store Store descriptor.\n\t */\n\tfunction register( store ) {\n\t\tregisterStoreInstance( store.name, store.instantiate( registry ) );\n\t}\n\n\tfunction registerGenericStore( name, store ) {\n\t\tdeprecated( 'wp.data.registerGenericStore', {\n\t\t\tsince: '5.9',\n\t\t\talternative: 'wp.data.register( storeDescriptor )',\n\t\t} );\n\t\tregisterStoreInstance( name, store );\n\t}\n\n\t/**\n\t * Registers a standard `@wordpress/data` store.\n\t *\n\t * @param {string} storeName Unique namespace identifier.\n\t * @param {Object} options Store description (reducer, actions, selectors, resolvers).\n\t *\n\t * @return {Object} Registered store object.\n\t */\n\tfunction registerStore( storeName, options ) {\n\t\tif ( ! options.reducer ) {\n\t\t\tthrow new TypeError( 'Must specify store reducer' );\n\t\t}\n\n\t\tconst store = createReduxStore( storeName, options ).instantiate(\n\t\t\tregistry\n\t\t);\n\t\tregisterStoreInstance( storeName, store );\n\t\treturn store.store;\n\t}\n\n\t/**\n\t * Subscribe handler to a store.\n\t *\n\t * @param {string[]} storeName The store name.\n\t * @param {Function} handler The function subscribed to the store.\n\t * @return {Function} A function to unsubscribe the handler.\n\t */\n\tfunction __experimentalSubscribeStore( storeName, handler ) {\n\t\tif ( storeName in stores ) {\n\t\t\treturn stores[ storeName ].subscribe( handler );\n\t\t}\n\n\t\t// Trying to access a store that hasn't been registered,\n\t\t// this is a pattern rarely used but seen in some places.\n\t\t// We fallback to regular `subscribe` here for backward-compatibility for now.\n\t\t// See https://github.com/WordPress/gutenberg/pull/27466 for more info.\n\t\tif ( ! parent ) {\n\t\t\treturn subscribe( handler );\n\t\t}\n\n\t\treturn parent.__experimentalSubscribeStore( storeName, handler );\n\t}\n\n\tfunction batch( callback ) {\n\t\temitter.pause();\n\t\tforEach( stores, ( store ) => store.emitter.pause() );\n\t\tcallback();\n\t\temitter.resume();\n\t\tforEach( stores, ( store ) => store.emitter.resume() );\n\t}\n\n\tlet registry = {\n\t\tbatch,\n\t\tstores,\n\t\tnamespaces: stores, // TODO: Deprecate/remove this.\n\t\tsubscribe,\n\t\tselect,\n\t\tresolveSelect,\n\t\tdispatch,\n\t\tuse,\n\t\tregister,\n\t\tregisterGenericStore,\n\t\tregisterStore,\n\t\t__experimentalMarkListeningStores,\n\t\t__experimentalSubscribeStore,\n\t};\n\n\t//\n\t// TODO:\n\t// This function will be deprecated as soon as it is no longer internally referenced.\n\tfunction use( plugin, options ) {\n\t\tif ( ! plugin ) {\n\t\t\treturn;\n\t\t}\n\n\t\tregistry = {\n\t\t\t...registry,\n\t\t\t...plugin( registry, options ),\n\t\t};\n\n\t\treturn registry;\n\t}\n\n\tregistry.register( coreDataStore );\n\n\tfor ( const [ name, config ] of Object.entries( storeConfigs ) ) {\n\t\tregistry.register( createReduxStore( name, config ) );\n\t}\n\n\tif ( parent ) {\n\t\tparent.subscribe( globalListener );\n\t}\n\n\treturn withPlugins( registry );\n}\n","/**\n * Internal dependencies\n */\nimport { createRegistry } from './registry';\n\nexport default createRegistry();\n","let objectStorage;\n\nconst storage = {\n\tgetItem( key ) {\n\t\tif ( ! objectStorage || ! objectStorage[ key ] ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn objectStorage[ key ];\n\t},\n\tsetItem( key, value ) {\n\t\tif ( ! objectStorage ) {\n\t\t\tstorage.clear();\n\t\t}\n\n\t\tobjectStorage[ key ] = String( value );\n\t},\n\tclear() {\n\t\tobjectStorage = Object.create( null );\n\t},\n};\n\nexport default storage;\n","/**\n * Internal dependencies\n */\nimport objectStorage from './object';\n\nlet storage;\n\ntry {\n\t// Private Browsing in Safari 10 and earlier will throw an error when\n\t// attempting to set into localStorage. The test here is intentional in\n\t// causing a thrown error as condition for using fallback object storage.\n\tstorage = window.localStorage;\n\tstorage.setItem( '__wpDataTestLocalStorage', '' );\n\tstorage.removeItem( '__wpDataTestLocalStorage' );\n} catch ( error ) {\n\tstorage = objectStorage;\n}\n\nexport default storage;\n","/**\n * External dependencies\n */\nimport { merge, isPlainObject } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport defaultStorage from './storage/default';\nimport { combineReducers } from '../../';\n\n/** @typedef {import('../../registry').WPDataRegistry} WPDataRegistry */\n\n/** @typedef {import('../../registry').WPDataPlugin} WPDataPlugin */\n\n/**\n * @typedef {Object} WPDataPersistencePluginOptions Persistence plugin options.\n *\n * @property {Storage} storage Persistent storage implementation. This must\n * at least implement `getItem` and `setItem` of\n * the Web Storage API.\n * @property {string} storageKey Key on which to set in persistent storage.\n *\n */\n\n/**\n * Default plugin storage.\n *\n * @type {Storage}\n */\nconst DEFAULT_STORAGE = defaultStorage;\n\n/**\n * Default plugin storage key.\n *\n * @type {string}\n */\nconst DEFAULT_STORAGE_KEY = 'WP_DATA';\n\n/**\n * Higher-order reducer which invokes the original reducer only if state is\n * inequal from that of the action's `nextState` property, otherwise returning\n * the original state reference.\n *\n * @param {Function} reducer Original reducer.\n *\n * @return {Function} Enhanced reducer.\n */\nexport const withLazySameState = ( reducer ) => ( state, action ) => {\n\tif ( action.nextState === state ) {\n\t\treturn state;\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Creates a persistence interface, exposing getter and setter methods (`get`\n * and `set` respectively).\n *\n * @param {WPDataPersistencePluginOptions} options Plugin options.\n *\n * @return {Object} Persistence interface.\n */\nexport function createPersistenceInterface( options ) {\n\tconst {\n\t\tstorage = DEFAULT_STORAGE,\n\t\tstorageKey = DEFAULT_STORAGE_KEY,\n\t} = options;\n\n\tlet data;\n\n\t/**\n\t * Returns the persisted data as an object, defaulting to an empty object.\n\t *\n\t * @return {Object} Persisted data.\n\t */\n\tfunction getData() {\n\t\tif ( data === undefined ) {\n\t\t\t// If unset, getItem is expected to return null. Fall back to\n\t\t\t// empty object.\n\t\t\tconst persisted = storage.getItem( storageKey );\n\t\t\tif ( persisted === null ) {\n\t\t\t\tdata = {};\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse( persisted );\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\t// Similarly, should any error be thrown during parse of\n\t\t\t\t\t// the string (malformed JSON), fall back to empty object.\n\t\t\t\t\tdata = {};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\t/**\n\t * Merges an updated reducer state into the persisted data.\n\t *\n\t * @param {string} key Key to update.\n\t * @param {*} value Updated value.\n\t */\n\tfunction setData( key, value ) {\n\t\tdata = { ...data, [ key ]: value };\n\t\tstorage.setItem( storageKey, JSON.stringify( data ) );\n\t}\n\n\treturn {\n\t\tget: getData,\n\t\tset: setData,\n\t};\n}\n\n/**\n * Data plugin to persist store state into a single storage key.\n *\n * @param {WPDataRegistry} registry Data registry.\n * @param {?WPDataPersistencePluginOptions} pluginOptions Plugin options.\n *\n * @return {WPDataPlugin} Data plugin.\n */\nfunction persistencePlugin( registry, pluginOptions ) {\n\tconst persistence = createPersistenceInterface( pluginOptions );\n\n\t/**\n\t * Creates an enhanced store dispatch function, triggering the state of the\n\t * given store name to be persisted when changed.\n\t *\n\t * @param {Function} getState Function which returns current state.\n\t * @param {string} storeName Store name.\n\t * @param {?Array} keys Optional subset of keys to save.\n\t *\n\t * @return {Function} Enhanced dispatch function.\n\t */\n\tfunction createPersistOnChange( getState, storeName, keys ) {\n\t\tlet getPersistedState;\n\t\tif ( Array.isArray( keys ) ) {\n\t\t\t// Given keys, the persisted state should by produced as an object\n\t\t\t// of the subset of keys. This implementation uses combineReducers\n\t\t\t// to leverage its behavior of returning the same object when none\n\t\t\t// of the property values changes. This allows a strict reference\n\t\t\t// equality to bypass a persistence set on an unchanging state.\n\t\t\tconst reducers = keys.reduce(\n\t\t\t\t( accumulator, key ) =>\n\t\t\t\t\tObject.assign( accumulator, {\n\t\t\t\t\t\t[ key ]: ( state, action ) => action.nextState[ key ],\n\t\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tgetPersistedState = withLazySameState(\n\t\t\t\tcombineReducers( reducers )\n\t\t\t);\n\t\t} else {\n\t\t\tgetPersistedState = ( state, action ) => action.nextState;\n\t\t}\n\n\t\tlet lastState = getPersistedState( undefined, {\n\t\t\tnextState: getState(),\n\t\t} );\n\n\t\treturn () => {\n\t\t\tconst state = getPersistedState( lastState, {\n\t\t\t\tnextState: getState(),\n\t\t\t} );\n\t\t\tif ( state !== lastState ) {\n\t\t\t\tpersistence.set( storeName, state );\n\t\t\t\tlastState = state;\n\t\t\t}\n\t\t};\n\t}\n\n\treturn {\n\t\tregisterStore( storeName, options ) {\n\t\t\tif ( ! options.persist ) {\n\t\t\t\treturn registry.registerStore( storeName, options );\n\t\t\t}\n\n\t\t\t// Load from persistence to use as initial state.\n\t\t\tconst persistedState = persistence.get()[ storeName ];\n\t\t\tif ( persistedState !== undefined ) {\n\t\t\t\tlet initialState = options.reducer( options.initialState, {\n\t\t\t\t\ttype: '@@WP/PERSISTENCE_RESTORE',\n\t\t\t\t} );\n\n\t\t\t\tif (\n\t\t\t\t\tisPlainObject( initialState ) &&\n\t\t\t\t\tisPlainObject( persistedState )\n\t\t\t\t) {\n\t\t\t\t\t// If state is an object, ensure that:\n\t\t\t\t\t// - Other keys are left intact when persisting only a\n\t\t\t\t\t// subset of keys.\n\t\t\t\t\t// - New keys in what would otherwise be used as initial\n\t\t\t\t\t// state are deeply merged as base for persisted value.\n\t\t\t\t\tinitialState = merge( {}, initialState, persistedState );\n\t\t\t\t} else {\n\t\t\t\t\t// If there is a mismatch in object-likeness of default\n\t\t\t\t\t// initial or persisted state, defer to persisted value.\n\t\t\t\t\tinitialState = persistedState;\n\t\t\t\t}\n\n\t\t\t\toptions = {\n\t\t\t\t\t...options,\n\t\t\t\t\tinitialState,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst store = registry.registerStore( storeName, options );\n\n\t\t\tstore.subscribe(\n\t\t\t\tcreatePersistOnChange(\n\t\t\t\t\tstore.getState,\n\t\t\t\t\tstoreName,\n\t\t\t\t\toptions.persist\n\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn store;\n\t\t},\n\t};\n}\n\n/**\n * Move the 'features' object in local storage from the sourceStoreName to the\n * preferences store.\n *\n * @param {Object} persistence The persistence interface.\n * @param {string} sourceStoreName The name of the store that has persisted\n * preferences to migrate to the preferences\n * package.\n */\nexport function migrateFeaturePreferencesToPreferencesStore(\n\tpersistence,\n\tsourceStoreName\n) {\n\tconst preferencesStoreName = 'core/preferences';\n\tconst interfaceStoreName = 'core/interface';\n\n\tconst state = persistence.get();\n\n\t// Features most recently (and briefly) lived in the interface package.\n\t// If data exists there, prioritize using that for the migration. If not\n\t// also check the original package as the user may have updated from an\n\t// older block editor version.\n\tconst interfaceFeatures =\n\t\tstate[ interfaceStoreName ]?.preferences?.features?.[ sourceStoreName ];\n\tconst sourceFeatures = state[ sourceStoreName ]?.preferences?.features;\n\tconst featuresToMigrate = interfaceFeatures\n\t\t? interfaceFeatures\n\t\t: sourceFeatures;\n\n\tif ( featuresToMigrate ) {\n\t\tconst existingPreferences = state[ preferencesStoreName ]?.preferences;\n\n\t\t// Avoid migrating features again if they've previously been migrated.\n\t\tif ( ! existingPreferences?.[ sourceStoreName ] ) {\n\t\t\t// Set the feature values in the interface store, the features\n\t\t\t// object is keyed by 'scope', which matches the store name for\n\t\t\t// the source.\n\t\t\tpersistence.set( preferencesStoreName, {\n\t\t\t\tpreferences: {\n\t\t\t\t\t...existingPreferences,\n\t\t\t\t\t[ sourceStoreName ]: featuresToMigrate,\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// Remove migrated feature preferences from `interface`.\n\t\t\tif ( interfaceFeatures ) {\n\t\t\t\tconst otherInterfaceState = state[ interfaceStoreName ];\n\t\t\t\tconst otherInterfaceScopes =\n\t\t\t\t\tstate[ interfaceStoreName ]?.preferences?.features;\n\n\t\t\t\tpersistence.set( interfaceStoreName, {\n\t\t\t\t\t...otherInterfaceState,\n\t\t\t\t\tpreferences: {\n\t\t\t\t\t\tfeatures: {\n\t\t\t\t\t\t\t...otherInterfaceScopes,\n\t\t\t\t\t\t\t[ sourceStoreName ]: undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Remove migrated feature preferences from the source.\n\t\t\tif ( sourceFeatures ) {\n\t\t\t\tconst otherSourceState = state[ sourceStoreName ];\n\t\t\t\tconst sourcePreferences = state[ sourceStoreName ]?.preferences;\n\n\t\t\t\tpersistence.set( sourceStoreName, {\n\t\t\t\t\t...otherSourceState,\n\t\t\t\t\tpreferences: {\n\t\t\t\t\t\t...sourcePreferences,\n\t\t\t\t\t\tfeatures: undefined,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function migrateIndividualPreferenceToPreferencesStore(\n\tpersistence,\n\tsourceStoreName,\n\tkey\n) {\n\tconst preferencesStoreName = 'core/preferences';\n\tconst state = persistence.get();\n\tconst sourcePreference = state[ sourceStoreName ]?.preferences?.[ key ];\n\n\t// There's nothing to migrate, exit early.\n\tif ( ! sourcePreference ) {\n\t\treturn;\n\t}\n\n\tconst targetPreference =\n\t\tstate[ preferencesStoreName ]?.preferences?.[ sourceStoreName ]?.[\n\t\t\tkey\n\t\t];\n\n\t// There's existing data at the target, so don't overwrite it, exit early.\n\tif ( targetPreference ) {\n\t\treturn;\n\t}\n\n\tconst allPreferences = state[ preferencesStoreName ]?.preferences;\n\tconst targetPreferences =\n\t\tstate[ preferencesStoreName ]?.preferences?.[ sourceStoreName ];\n\n\tpersistence.set( preferencesStoreName, {\n\t\tpreferences: {\n\t\t\t...allPreferences,\n\t\t\t[ sourceStoreName ]: {\n\t\t\t\t...targetPreferences,\n\t\t\t\t[ key ]: sourcePreference,\n\t\t\t},\n\t\t},\n\t} );\n\n\t// Remove migrated feature preferences from the source.\n\tconst otherSourceState = state[ sourceStoreName ];\n\tconst allSourcePreferences = state[ sourceStoreName ]?.preferences;\n\tpersistence.set( sourceStoreName, {\n\t\t...otherSourceState,\n\t\tpreferences: {\n\t\t\t...allSourcePreferences,\n\t\t\t[ key ]: undefined,\n\t\t},\n\t} );\n}\n\nexport function migrateThirdPartyFeaturePreferencesToPreferencesStore(\n\tpersistence\n) {\n\tconst interfaceStoreName = 'core/interface';\n\tconst preferencesStoreName = 'core/preferences';\n\n\tlet state = persistence.get();\n\n\tconst interfaceScopes = state[ interfaceStoreName ]?.preferences?.features;\n\n\tfor ( const scope in interfaceScopes ) {\n\t\t// Don't migrate any core 'scopes'.\n\t\tif ( scope.startsWith( 'core' ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Skip this scope if there are no features to migrates\n\t\tconst featuresToMigrate = interfaceScopes[ scope ];\n\t\tif ( ! featuresToMigrate ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst existingPreferences = state[ preferencesStoreName ]?.preferences;\n\n\t\t// Add the data to the preferences store structure.\n\t\tpersistence.set( preferencesStoreName, {\n\t\t\tpreferences: {\n\t\t\t\t...existingPreferences,\n\t\t\t\t[ scope ]: featuresToMigrate,\n\t\t\t},\n\t\t} );\n\n\t\t// Remove the data from the interface store structure.\n\t\t// Call `persistence.get` again to make sure `state` is up-to-date with\n\t\t// any changes from the previous iteration of this loop.\n\t\tstate = persistence.get();\n\t\tconst otherInterfaceState = state[ interfaceStoreName ];\n\t\tconst otherInterfaceScopes =\n\t\t\tstate[ interfaceStoreName ]?.preferences?.features;\n\n\t\tpersistence.set( interfaceStoreName, {\n\t\t\t...otherInterfaceState,\n\t\t\tpreferences: {\n\t\t\t\tfeatures: {\n\t\t\t\t\t...otherInterfaceScopes,\n\t\t\t\t\t[ scope ]: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t}\n}\n\npersistencePlugin.__unstableMigrate = ( pluginOptions ) => {\n\tconst persistence = createPersistenceInterface( pluginOptions );\n\n\t// Boolean feature preferences.\n\tmigrateFeaturePreferencesToPreferencesStore(\n\t\tpersistence,\n\t\t'core/edit-widgets'\n\t);\n\tmigrateFeaturePreferencesToPreferencesStore(\n\t\tpersistence,\n\t\t'core/customize-widgets'\n\t);\n\tmigrateFeaturePreferencesToPreferencesStore(\n\t\tpersistence,\n\t\t'core/edit-post'\n\t);\n\tmigrateFeaturePreferencesToPreferencesStore(\n\t\tpersistence,\n\t\t'core/edit-site'\n\t);\n\tmigrateThirdPartyFeaturePreferencesToPreferencesStore( persistence );\n\n\t// Other ad-hoc preferences.\n\tmigrateIndividualPreferenceToPreferencesStore(\n\t\tpersistence,\n\t\t'core/edit-post',\n\t\t'hiddenBlockTypes'\n\t);\n\tmigrateIndividualPreferenceToPreferencesStore(\n\t\tpersistence,\n\t\t'core/edit-post',\n\t\t'editorMode'\n\t);\n\tmigrateIndividualPreferenceToPreferencesStore(\n\t\tpersistence,\n\t\t'core/edit-post',\n\t\t'preferredStyleVariations'\n\t);\n\tmigrateIndividualPreferenceToPreferencesStore(\n\t\tpersistence,\n\t\t'core/edit-site',\n\t\t'editorMode'\n\t);\n};\n\nexport default persistencePlugin;\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"element\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"compose\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"React\"];","import { useState, useRef, useEffect } from 'react';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n var initial = useState(function () {\n return {\n inputs: inputs,\n result: getResult()\n };\n })[0];\n var committed = useRef(initial);\n var isInputMatch = Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n var cache = isInputMatch ? committed.current : {\n inputs: inputs,\n result: getResult()\n };\n useEffect(function () {\n committed.current = cache;\n }, [cache]);\n return cache.result;\n}\nfunction useCallbackOne(callback, inputs) {\n return useMemoOne(function () {\n return callback;\n }, inputs);\n}\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\n\nexport { useCallback, useCallbackOne, useMemo, useMemoOne };\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"priorityQueue\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"isShallowEqual\"];","/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport defaultRegistry from '../../default-registry';\n\nexport const Context = createContext( defaultRegistry );\n\nconst { Consumer, Provider } = Context;\n\n/**\n * A custom react Context consumer exposing the provided `registry` to\n * children components. Used along with the RegistryProvider.\n *\n * You can read more about the react context api here:\n * https://reactjs.org/docs/context.html#contextprovider\n *\n * @example\n * ```js\n * import {\n * RegistryProvider,\n * RegistryConsumer,\n * createRegistry\n * } from '@wordpress/data';\n *\n * const registry = createRegistry( {} );\n *\n * const App = ( { props } ) => {\n * return \n *
Hello There
\n * \n * { ( registry ) => (\n * \n *
\n * }\n * ```\n */\nexport const RegistryConsumer = Consumer;\n\n/**\n * A custom Context provider for exposing the provided `registry` to children\n * components via a consumer.\n *\n * See RegistryConsumer documentation for\n * example.\n */\nexport default Provider;\n","/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { Context } from './context';\n\n/**\n * A custom react hook exposing the registry context for use.\n *\n * This exposes the `registry` value provided via the\n * Registry Provider to a component implementing\n * this hook.\n *\n * It acts similarly to the `useContext` react hook.\n *\n * Note: Generally speaking, `useRegistry` is a low level hook that in most cases\n * won't be needed for implementation. Most interactions with the `@wordpress/data`\n * API can be performed via the `useSelect` hook, or the `withSelect` and\n * `withDispatch` higher order components.\n *\n * @example\n * ```js\n * import {\n * RegistryProvider,\n * createRegistry,\n * useRegistry,\n * } from '@wordpress/data';\n *\n * const registry = createRegistry( {} );\n *\n * const SomeChildUsingRegistry = ( props ) => {\n * const registry = useRegistry();\n * // ...logic implementing the registry in other react hooks.\n * };\n *\n *\n * const ParentProvidingRegistry = ( props ) => {\n * return \n * \n * \n * };\n * ```\n *\n * @return {Function} A custom react hook exposing the registry context value.\n */\nexport default function useRegistry() {\n\treturn useContext( Context );\n}\n","/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\nexport const Context = createContext( false );\n\nconst { Consumer, Provider } = Context;\n\nexport const AsyncModeConsumer = Consumer;\n\n/**\n * Context Provider Component used to switch the data module component rerendering\n * between Sync and Async modes.\n *\n * @example\n *\n * ```js\n * import { useSelect, AsyncModeProvider } from '@wordpress/data';\n *\n * function BlockCount() {\n * const count = useSelect( ( select ) => {\n * return select( 'core/block-editor' ).getBlockCount()\n * }, [] );\n *\n * return count;\n * }\n *\n * function App() {\n * return (\n * \n * \n * \n * );\n * }\n * ```\n *\n * In this example, the BlockCount component is rerendered asynchronously.\n * It means if a more critical task is being performed (like typing in an input),\n * the rerendering is delayed until the browser becomes IDLE.\n * It is possible to nest multiple levels of AsyncModeProvider to fine-tune the rendering behavior.\n *\n * @param {boolean} props.value Enable Async Mode.\n * @return {WPComponent} The component to be rendered.\n */\nexport default Provider;\n","/**\n * External dependencies\n */\nimport { useMemoOne } from 'use-memo-one';\n\n/**\n * WordPress dependencies\n */\nimport { createQueue } from '@wordpress/priority-queue';\nimport { useRef, useCallback, useMemo, useReducer } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { useIsomorphicLayoutEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\nimport useAsyncMode from '../async-mode-provider/use-async-mode';\n\nconst noop = () => {};\nconst renderQueue = createQueue();\n\n/** @typedef {import('../../types').StoreDescriptor} StoreDescriptor */\n\n/**\n * Custom react hook for retrieving props from registered selectors.\n *\n * In general, this custom React hook follows the\n * [rules of hooks](https://reactjs.org/docs/hooks-rules.html).\n *\n * @param {Function|StoreDescriptor|string} mapSelect Function called on every state change. The\n * returned value is exposed to the component\n * implementing this hook. The function receives\n * the `registry.select` method on the first\n * argument and the `registry` on the second\n * argument.\n * When a store key is passed, all selectors for\n * the store will be returned. This is only meant\n * for usage of these selectors in event\n * callbacks, not for data needed to create the\n * element tree.\n * @param {Array} deps If provided, this memoizes the mapSelect so the\n * same `mapSelect` is invoked on every state\n * change unless the dependencies change.\n *\n * @example\n * ```js\n * import { useSelect } from '@wordpress/data';\n *\n * function HammerPriceDisplay( { currency } ) {\n * const price = useSelect( ( select ) => {\n * return select( 'my-shop' ).getPrice( 'hammer', currency )\n * }, [ currency ] );\n * return new Intl.NumberFormat( 'en-US', {\n * style: 'currency',\n * currency,\n * } ).format( price );\n * }\n *\n * // Rendered in the application:\n * // \n * ```\n *\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, the price will be retrieved from the store state using the\n * `mapSelect` callback on `useSelect`. If the currency prop changes then\n * any price in the state for that currency is retrieved. If the currency prop\n * doesn't change and other props are passed in that do change, the price will\n * not change because the dependency is just the currency.\n *\n * When data is only used in an event callback, the data should not be retrieved\n * on render, so it may be useful to get the selectors function instead.\n *\n * **Don't use `useSelect` this way when calling the selectors in the render\n * function because your component won't re-render on a data change.**\n *\n * ```js\n * import { useSelect } from '@wordpress/data';\n *\n * function Paste( { children } ) {\n * const { getSettings } = useSelect( 'my-shop' );\n * function onPaste() {\n * // Do something with the settings.\n * const settings = getSettings();\n * }\n * return
{ children }
;\n * }\n * ```\n *\n * @return {Function} A custom react hook.\n */\nexport default function useSelect( mapSelect, deps ) {\n\tconst hasMappingFunction = 'function' === typeof mapSelect;\n\n\t// If we're recalling a store by its name or by\n\t// its descriptor then we won't be caching the\n\t// calls to `mapSelect` because we won't be calling it.\n\tif ( ! hasMappingFunction ) {\n\t\tdeps = [];\n\t}\n\n\t// Because of the \"rule of hooks\" we have to call `useCallback`\n\t// on every invocation whether or not we have a real function\n\t// for `mapSelect`. we'll create this intermediate variable to\n\t// fulfill that need and then reference it with our \"real\"\n\t// `_mapSelect` if we can.\n\tconst callbackMapper = useCallback(\n\t\thasMappingFunction ? mapSelect : noop,\n\t\tdeps\n\t);\n\tconst _mapSelect = hasMappingFunction ? callbackMapper : null;\n\n\tconst registry = useRegistry();\n\tconst isAsync = useAsyncMode();\n\t// React can sometimes clear the `useMemo` cache.\n\t// We use the cache-stable `useMemoOne` to avoid\n\t// losing queues.\n\tconst queueContext = useMemoOne( () => ( { queue: true } ), [ registry ] );\n\tconst [ , forceRender ] = useReducer( ( s ) => s + 1, 0 );\n\n\tconst latestMapSelect = useRef();\n\tconst latestIsAsync = useRef( isAsync );\n\tconst latestMapOutput = useRef();\n\tconst latestMapOutputError = useRef();\n\tconst isMountedAndNotUnsubscribing = useRef();\n\n\t// Keep track of the stores being selected in the _mapSelect function,\n\t// and only subscribe to those stores later.\n\tconst listeningStores = useRef( [] );\n\tconst trapSelect = useCallback(\n\t\t( callback ) =>\n\t\t\tregistry.__experimentalMarkListeningStores(\n\t\t\t\tcallback,\n\t\t\t\tlisteningStores\n\t\t\t),\n\t\t[ registry ]\n\t);\n\n\t// Generate a \"flag\" for used in the effect dependency array.\n\t// It's different than just using `mapSelect` since deps could be undefined,\n\t// in that case, we would still want to memoize it.\n\tconst depsChangedFlag = useMemo( () => ( {} ), deps || [] );\n\n\tlet mapOutput;\n\n\tif ( _mapSelect ) {\n\t\tmapOutput = latestMapOutput.current;\n\t\tconst hasReplacedMapSelect = latestMapSelect.current !== _mapSelect;\n\t\tconst lastMapSelectFailed = !! latestMapOutputError.current;\n\n\t\tif ( hasReplacedMapSelect || lastMapSelectFailed ) {\n\t\t\ttry {\n\t\t\t\tmapOutput = trapSelect( () =>\n\t\t\t\t\t_mapSelect( registry.select, registry )\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet errorMessage = `An error occurred while running 'mapSelect': ${ error.message }`;\n\n\t\t\t\tif ( latestMapOutputError.current ) {\n\t\t\t\t\terrorMessage += `\\nThe error may be correlated with this previous error:\\n`;\n\t\t\t\t\terrorMessage += `${ latestMapOutputError.current.stack }\\n\\n`;\n\t\t\t\t\terrorMessage += 'Original stack trace:';\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( errorMessage );\n\t\t\t}\n\t\t}\n\t}\n\n\tuseIsomorphicLayoutEffect( () => {\n\t\tif ( ! hasMappingFunction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlatestMapSelect.current = _mapSelect;\n\t\tlatestMapOutput.current = mapOutput;\n\t\tlatestMapOutputError.current = undefined;\n\t\tisMountedAndNotUnsubscribing.current = true;\n\n\t\t// This has to run after the other ref updates\n\t\t// to avoid using stale values in the flushed\n\t\t// callbacks or potentially overwriting a\n\t\t// changed `latestMapOutput.current`.\n\t\tif ( latestIsAsync.current !== isAsync ) {\n\t\t\tlatestIsAsync.current = isAsync;\n\t\t\trenderQueue.flush( queueContext );\n\t\t}\n\t} );\n\n\tuseIsomorphicLayoutEffect( () => {\n\t\tif ( ! hasMappingFunction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst onStoreChange = () => {\n\t\t\tif ( isMountedAndNotUnsubscribing.current ) {\n\t\t\t\ttry {\n\t\t\t\t\tconst newMapOutput = trapSelect( () =>\n\t\t\t\t\t\tlatestMapSelect.current( registry.select, registry )\n\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tisShallowEqual( latestMapOutput.current, newMapOutput )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tlatestMapOutput.current = newMapOutput;\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tlatestMapOutputError.current = error;\n\t\t\t\t}\n\t\t\t\tforceRender();\n\t\t\t}\n\t\t};\n\n\t\t// Catch any possible state changes during mount before the subscription\n\t\t// could be set.\n\t\tif ( latestIsAsync.current ) {\n\t\t\trenderQueue.add( queueContext, onStoreChange );\n\t\t} else {\n\t\t\tonStoreChange();\n\t\t}\n\n\t\tconst onChange = () => {\n\t\t\tif ( latestIsAsync.current ) {\n\t\t\t\trenderQueue.add( queueContext, onStoreChange );\n\t\t\t} else {\n\t\t\t\tonStoreChange();\n\t\t\t}\n\t\t};\n\n\t\tconst unsubscribers = listeningStores.current.map( ( storeName ) =>\n\t\t\tregistry.__experimentalSubscribeStore( storeName, onChange )\n\t\t);\n\n\t\treturn () => {\n\t\t\tisMountedAndNotUnsubscribing.current = false;\n\t\t\t// The return value of the subscribe function could be undefined if the store is a custom generic store.\n\t\t\tunsubscribers.forEach( ( unsubscribe ) => unsubscribe?.() );\n\t\t\trenderQueue.flush( queueContext );\n\t\t};\n\t\t// If you're tempted to eliminate the spread dependencies below don't do it!\n\t\t// We're passing these in from the calling function and want to make sure we're\n\t\t// examining every individual value inside the `deps` array.\n\t}, [ registry, trapSelect, hasMappingFunction, depsChangedFlag ] );\n\n\treturn hasMappingFunction ? mapOutput : registry.select( mapSelect );\n}\n","/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { Context } from './context';\n\nexport default function useAsyncMode() {\n\treturn useContext( Context );\n}\n","/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useSelect from '../use-select';\n\n/**\n * Higher-order component used to inject state-derived props using registered\n * selectors.\n *\n * @param {Function} mapSelectToProps Function called on every state change,\n * expected to return object of props to\n * merge with the component's own props.\n *\n * @example\n * ```js\n * import { withSelect } from '@wordpress/data';\n *\n * function PriceDisplay( { price, currency } ) {\n * \treturn new Intl.NumberFormat( 'en-US', {\n * \t\tstyle: 'currency',\n * \t\tcurrency,\n * \t} ).format( price );\n * }\n *\n * const HammerPriceDisplay = withSelect( ( select, ownProps ) => {\n * \tconst { getPrice } = select( 'my-shop' );\n * \tconst { currency } = ownProps;\n *\n * \treturn {\n * \t\tprice: getPrice( 'hammer', currency ),\n * \t};\n * } )( PriceDisplay );\n *\n * // Rendered in the application:\n * //\n * // \n * ```\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, it will pass the price into the underlying `PriceDisplay`\n * component and update automatically if the price of a hammer ever changes in\n * the store.\n *\n * @return {WPComponent} Enhanced component with merged state data props.\n */\nconst withSelect = ( mapSelectToProps ) =>\n\tcreateHigherOrderComponent(\n\t\t( WrappedComponent ) =>\n\t\t\tpure( ( ownProps ) => {\n\t\t\t\tconst mapSelect = ( select, registry ) =>\n\t\t\t\t\tmapSelectToProps( select, ownProps, registry );\n\t\t\t\tconst mergeProps = useSelect( mapSelect );\n\t\t\t\treturn ;\n\t\t\t} ),\n\t\t'withSelect'\n\t);\n\nexport default withSelect;\n","/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useDispatchWithMap } from '../use-dispatch';\n\n/**\n * Higher-order component used to add dispatch props using registered action\n * creators.\n *\n * @param {Function} mapDispatchToProps A function of returning an object of\n * prop names where value is a\n * dispatch-bound action creator, or a\n * function to be called with the\n * component's props and returning an\n * action creator.\n *\n * @example\n * ```jsx\n * function Button( { onClick, children } ) {\n * return ;\n * }\n *\n * import { withDispatch } from '@wordpress/data';\n *\n * const SaleButton = withDispatch( ( dispatch, ownProps ) => {\n * const { startSale } = dispatch( 'my-shop' );\n * const { discountPercent } = ownProps;\n *\n * return {\n * onClick() {\n * startSale( discountPercent );\n * },\n * };\n * } )( Button );\n *\n * // Rendered in the application:\n * //\n * // Start Sale!\n * ```\n *\n * @example\n * In the majority of cases, it will be sufficient to use only two first params\n * passed to `mapDispatchToProps` as illustrated in the previous example.\n * However, there might be some very advanced use cases where using the\n * `registry` object might be used as a tool to optimize the performance of\n * your component. Using `select` function from the registry might be useful\n * when you need to fetch some dynamic data from the store at the time when the\n * event is fired, but at the same time, you never use it to render your\n * component. In such scenario, you can avoid using the `withSelect` higher\n * order component to compute such prop, which might lead to unnecessary\n * re-renders of your component caused by its frequent value change.\n * Keep in mind, that `mapDispatchToProps` must return an object with functions\n * only.\n *\n * ```jsx\n * function Button( { onClick, children } ) {\n * return ;\n * }\n *\n * import { withDispatch } from '@wordpress/data';\n *\n * const SaleButton = withDispatch( ( dispatch, ownProps, { select } ) => {\n * // Stock number changes frequently.\n * const { getStockNumber } = select( 'my-shop' );\n * const { startSale } = dispatch( 'my-shop' );\n * return {\n * onClick() {\n * const discountPercent = getStockNumber() > 50 ? 10 : 20;\n * startSale( discountPercent );\n * },\n * };\n * } )( Button );\n *\n * // Rendered in the application:\n * //\n * // Start Sale!\n * ```\n *\n * _Note:_ It is important that the `mapDispatchToProps` function always\n * returns an object with the same keys. For example, it should not contain\n * conditions under which a different value would be returned.\n *\n * @return {WPComponent} Enhanced component with merged dispatcher props.\n */\nconst withDispatch = ( mapDispatchToProps ) =>\n\tcreateHigherOrderComponent(\n\t\t( WrappedComponent ) => ( ownProps ) => {\n\t\t\tconst mapDispatch = ( dispatch, registry ) =>\n\t\t\t\tmapDispatchToProps( dispatch, ownProps, registry );\n\t\t\tconst dispatchProps = useDispatchWithMap( mapDispatch, [] );\n\t\t\treturn ;\n\t\t},\n\t\t'withDispatch'\n\t);\n\nexport default withDispatch;\n","/**\n * External dependencies\n */\nimport { mapValues } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useRef } from '@wordpress/element';\nimport { useIsomorphicLayoutEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\n\n/**\n * Custom react hook for returning aggregate dispatch actions using the provided\n * dispatchMap.\n *\n * Currently this is an internal api only and is implemented by `withDispatch`\n *\n * @param {Function} dispatchMap Receives the `registry.dispatch` function as\n * the first argument and the `registry` object\n * as the second argument. Should return an\n * object mapping props to functions.\n * @param {Array} deps An array of dependencies for the hook.\n * @return {Object} An object mapping props to functions created by the passed\n * in dispatchMap.\n */\nconst useDispatchWithMap = ( dispatchMap, deps ) => {\n\tconst registry = useRegistry();\n\tconst currentDispatchMap = useRef( dispatchMap );\n\n\tuseIsomorphicLayoutEffect( () => {\n\t\tcurrentDispatchMap.current = dispatchMap;\n\t} );\n\n\treturn useMemo( () => {\n\t\tconst currentDispatchProps = currentDispatchMap.current(\n\t\t\tregistry.dispatch,\n\t\t\tregistry\n\t\t);\n\t\treturn mapValues( currentDispatchProps, ( dispatcher, propName ) => {\n\t\t\tif ( typeof dispatcher !== 'function' ) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`Property ${ propName } returned from dispatchMap in useDispatchWithMap must be a function.`\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn ( ...args ) =>\n\t\t\t\tcurrentDispatchMap\n\t\t\t\t\t.current( registry.dispatch, registry )\n\t\t\t\t\t[ propName ]( ...args );\n\t\t} );\n\t}, [ registry, ...deps ] );\n};\n\nexport default useDispatchWithMap;\n","/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { RegistryConsumer } from '../registry-provider';\n\n/**\n * Higher-order component which renders the original component with the current\n * registry context passed as its `registry` prop.\n *\n * @param {WPComponent} OriginalComponent Original component.\n *\n * @return {WPComponent} Enhanced component.\n */\nconst withRegistry = createHigherOrderComponent(\n\t( OriginalComponent ) => ( props ) => (\n\t\t\n\t\t\t{ ( registry ) => (\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t),\n\t'withRegistry'\n);\n\nexport default withRegistry;\n","/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\n\n/** @typedef {import('../../types').StoreDescriptor} StoreDescriptor */\n\n/**\n * A custom react hook returning the current registry dispatch actions creators.\n *\n * Note: The component using this hook must be within the context of a\n * RegistryProvider.\n *\n * @param {string|StoreDescriptor} [storeNameOrDescriptor] Optionally provide the name of the\n * store or its descriptor from which to\n * retrieve action creators. If not\n * provided, the registry.dispatch\n * function is returned instead.\n *\n * @example\n * This illustrates a pattern where you may need to retrieve dynamic data from\n * the server via the `useSelect` hook to use in combination with the dispatch\n * action.\n *\n * ```jsx\n * import { useDispatch, useSelect } from '@wordpress/data';\n * import { useCallback } from '@wordpress/element';\n *\n * function Button( { onClick, children } ) {\n * return \n * }\n *\n * const SaleButton = ( { children } ) => {\n * const { stockNumber } = useSelect(\n * ( select ) => select( 'my-shop' ).getStockNumber(),\n * []\n * );\n * const { startSale } = useDispatch( 'my-shop' );\n * const onClick = useCallback( () => {\n * const discountPercent = stockNumber > 50 ? 10: 20;\n * startSale( discountPercent );\n * }, [ stockNumber ] );\n * return \n * }\n *\n * // Rendered somewhere in the application:\n * //\n * // Start Sale!\n * ```\n * @return {Function} A custom react hook.\n */\nconst useDispatch = ( storeNameOrDescriptor ) => {\n\tconst { dispatch } = useRegistry();\n\treturn storeNameOrDescriptor === void 0\n\t\t? dispatch\n\t\t: dispatch( storeNameOrDescriptor );\n};\n\nexport default useDispatch;\n","/**\n * External dependencies\n */\nimport combineReducers from 'turbo-combine-reducers';\n\n/**\n * Internal dependencies\n */\nimport defaultRegistry from './default-registry';\nimport * as plugins from './plugins';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\nexport { default as withSelect } from './components/with-select';\nexport { default as withDispatch } from './components/with-dispatch';\nexport { default as withRegistry } from './components/with-registry';\nexport {\n\tRegistryProvider,\n\tRegistryConsumer,\n\tuseRegistry,\n} from './components/registry-provider';\nexport { default as useSelect } from './components/use-select';\nexport { useDispatch } from './components/use-dispatch';\nexport { AsyncModeProvider } from './components/async-mode-provider';\nexport { createRegistry } from './registry';\nexport { createRegistrySelector, createRegistryControl } from './factory';\nexport { controls } from './controls';\nexport { default as createReduxStore } from './redux-store';\n\n/**\n * Object of available plugins to use with a registry.\n *\n * @see [use](#use)\n *\n * @type {Object}\n */\nexport { plugins };\n\n/**\n * The combineReducers helper function turns an object whose values are different\n * reducing functions into a single reducing function you can pass to registerReducer.\n *\n * @param {Object} reducers An object whose values correspond to different reducing\n * functions that need to be combined into one.\n *\n * @example\n * ```js\n * import { combineReducers, createReduxStore, register } from '@wordpress/data';\n *\n * const prices = ( state = {}, action ) => {\n * \treturn action.type === 'SET_PRICE' ?\n * \t\t{\n * \t\t\t...state,\n * \t\t\t[ action.item ]: action.price,\n * \t\t} :\n * \t\tstate;\n * };\n *\n * const discountPercent = ( state = 0, action ) => {\n * \treturn action.type === 'START_SALE' ?\n * \t\taction.discountPercent :\n * \t\tstate;\n * };\n *\n * const store = createReduxStore( 'my-shop', {\n * \treducer: combineReducers( {\n * \t\tprices,\n * \t\tdiscountPercent,\n * \t} ),\n * } );\n * register( store );\n * ```\n *\n * @return {Function} A reducer that invokes every reducer inside the reducers\n * object, and constructs a state object with the same shape.\n */\nexport { combineReducers };\n\n/**\n * Given the name or descriptor of a registered store, returns an object of the store's selectors.\n * The selector functions are been pre-bound to pass the current state automatically.\n * As a consumer, you need only pass arguments of the selector, if applicable.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * or the store descriptor.\n *\n * @example\n * ```js\n * import { select } from '@wordpress/data';\n *\n * select( 'my-shop' ).getPrice( 'hammer' );\n * ```\n *\n * @return {Object} Object containing the store's selectors.\n */\nexport const select = defaultRegistry.select;\n\n/**\n * Given the name of a registered store, returns an object containing the store's\n * selectors pre-bound to state so that you only need to supply additional arguments,\n * and modified so that they return promises that resolve to their eventual values,\n * after any resolvers have ran.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * or the store descriptor.\n *\n * @example\n * ```js\n * import { resolveSelect } from '@wordpress/data';\n *\n * resolveSelect( 'my-shop' ).getPrice( 'hammer' ).then(console.log)\n * ```\n *\n * @return {Object} Object containing the store's promise-wrapped selectors.\n */\nexport const resolveSelect = defaultRegistry.resolveSelect;\n\n/**\n * Given the name of a registered store, returns an object of the store's action creators.\n * Calling an action creator will cause it to be dispatched, updating the state value accordingly.\n *\n * Note: Action creators returned by the dispatch will return a promise when\n * they are called.\n *\n * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n * or the store descriptor.\n *\n * @example\n * ```js\n * import { dispatch } from '@wordpress/data';\n *\n * dispatch( 'my-shop' ).setPrice( 'hammer', 9.75 );\n * ```\n * @return {Object} Object containing the action creators.\n */\nexport const dispatch = defaultRegistry.dispatch;\n\n/**\n * Given a listener function, the function will be called any time the state value\n * of one of the registered stores has changed. This function returns a `unsubscribe`\n * function used to stop the subscription.\n *\n * @param {Function} listener Callback function.\n *\n * @example\n * ```js\n * import { subscribe } from '@wordpress/data';\n *\n * const unsubscribe = subscribe( () => {\n * \t// You could use this opportunity to test whether the derived result of a\n * \t// selector has subsequently changed as the result of a state update.\n * } );\n *\n * // Later, if necessary...\n * unsubscribe();\n * ```\n */\nexport const subscribe = defaultRegistry.subscribe;\n\n/**\n * Registers a generic store instance.\n *\n * @deprecated Use `register( storeDescriptor )` instead.\n *\n * @param {string} name Store registry name.\n * @param {Object} store Store instance (`{ getSelectors, getActions, subscribe }`).\n */\nexport const registerGenericStore = defaultRegistry.registerGenericStore;\n\n/**\n * Registers a standard `@wordpress/data` store.\n *\n * @deprecated Use `register` instead.\n *\n * @param {string} storeName Unique namespace identifier for the store.\n * @param {Object} options Store description (reducer, actions, selectors, resolvers).\n *\n * @return {Object} Registered store object.\n */\nexport const registerStore = defaultRegistry.registerStore;\n\n/**\n * Extends a registry to inherit functionality provided by a given plugin. A\n * plugin is an object with properties aligning to that of a registry, merged\n * to extend the default registry behavior.\n *\n * @param {Object} plugin Plugin object.\n */\nexport const use = defaultRegistry.use;\n\n/**\n * Registers a standard `@wordpress/data` store descriptor.\n *\n * @example\n * ```js\n * import { createReduxStore, register } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n * reducer: ( state = 'OK' ) => state,\n * selectors: {\n * getValue: ( state ) => state,\n * },\n * } );\n * register( store );\n * ```\n *\n * @param {StoreDescriptor} store Store descriptor.\n */\nexport const register = defaultRegistry.register;\n"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","getValuePair","instance","_map","_arrayTreeMap","_objectTreeMap","has","get","properties","keys","sort","map","Array","isArray","property","undefined","propertyValue","valuePair","delete","set","EquivalentKeyMap","iterable","Constructor","TypeError","_classCallCheck","this","clear","iterablePairs","forEach","value","push","protoProps","previousValuePair","callback","_this","thisArg","arguments","call","Map","size","module","exports","reducers","getNextState","fn","JSON","stringify","Function","state","action","nextState","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","prop","hasOwnProperty","r","toStringTag","window","_defineProperty","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","source","getOwnPropertyDescriptors","defineProperties","formatProdErrorMessage","code","$$observable","observable","randomString","Math","random","toString","substring","split","join","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","_ref2","Error","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","slice","getState","subscribe","listener","isSubscribed","index","indexOf","splice","dispatch","type","listeners","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","next","unsubscribe","compose","_len","funcs","_key","arg","reduce","b","applyMiddleware","middlewares","store","_dispatch","middlewareAPI","chain","middleware","createRegistrySelector","registrySelector","selector","registry","select","isRegistrySelector","createRegistryControl","registryControl","isRegistryControl","SELECT","RESOLVE_SELECT","DISPATCH","controls","storeNameOrDescriptor","selectorName","args","storeKey","isObject","name","resolveSelect","actionName","builtinControls","method","hasResolver","then","resolvedAction","instantiate","getCoreDataSelector","getCoreDataAction","getSelectors","fromEntries","getActions","reducerKey","resolvers","coreDataStore","getCachedResolvers","entries","resolversByArgs","resolver","stores","shouldInvalidate","status","invalidateResolution","selectorArgsToStateKey","len","idx","subKeysIsResolved","nextKeyState","error","resolutionArgs","resolutionState","errors","actionProperty","omit","getResolutionState","getIsResolving","hasStartedResolution","hasFinishedResolution","hasResolutionFailed","getResolutionError","isResolving","startResolution","finishResolution","failResolution","startResolutions","finishResolutions","failResolutions","invalidateResolutionForStore","invalidateResolutionForStoreSelector","trimUndefinedValues","array","result","createReduxStore","options","thunkArgs","normalizedControls","mapValues","control","enhancers","createResolversCacheMiddleware","promise","createReduxRoutineMiddleware","__REDUX_DEVTOOLS_EXTENSION__","instanceId","initialState","combineReducers","metadata","metadataReducer","root","flowRight","instantiateReduxStore","assign","__unstableOriginalGetState","getResolveSelectors","resolversCache","cache","isRunning","markAsRunning","createResolversCache","actions","Promise","resolve","mapActions","metadataActions","selectors","argsLength","mapSelectors","metadataSelectors","mappedResolvers","fulfill","selectorResolver","async","fulfillSelector","isFulfilled","setTimeout","fulfillResolver","mapResolvers","resolveSelectors","reject","hasFinished","finalize","getResult","mapResolveSelectors","lastState","hasChanged","createEmitter","isPaused","isPending","Set","notifyListeners","from","add","pause","resume","emit","createRegistry","storeConfigs","parent","emitter","__experimentalListeningStores","globalListener","storeName","__experimentalMarkListeningStores","ref","current","withPlugins","attributes","attribute","registerStoreInstance","currentSubscribe","unsubscribeFromEmitter","unsubscribeFromStore","register","registerGenericStore","deprecated","since","alternative","registerStore","__experimentalSubscribeStore","handler","batch","namespaces","use","plugin","config","objectStorage","storage","getItem","setItem","String","create","localStorage","removeItem","DEFAULT_STORAGE","DEFAULT_STORAGE_KEY","createPersistenceInterface","storageKey","data","persisted","parse","persistencePlugin","pluginOptions","persistence","persist","persistedState","merge","getPersistedState","accumulator","createPersistOnChange","migrateFeaturePreferencesToPreferencesStore","sourceStoreName","interfaceFeatures","interfaceStoreName","preferences","features","sourceFeatures","featuresToMigrate","existingPreferences","preferencesStoreName","otherInterfaceState","otherInterfaceScopes","otherSourceState","sourcePreferences","migrateIndividualPreferenceToPreferencesStore","sourcePreference","allPreferences","targetPreferences","allSourcePreferences","__unstableMigrate","interfaceScopes","scope","startsWith","migrateThirdPartyFeaturePreferencesToPreferencesStore","_extends","Context","createContext","defaultRegistry","Consumer","Provider","RegistryConsumer","useRegistry","useContext","noop","renderQueue","createQueue","useSelect","mapSelect","deps","hasMappingFunction","callbackMapper","useCallback","_mapSelect","isAsync","queueContext","queue","inputs","initial","useState","committed","useRef","Boolean","newInputs","lastInputs","areInputsEqual","useEffect","forceRender","useReducer","s","latestMapSelect","latestIsAsync","latestMapOutput","latestMapOutputError","isMountedAndNotUnsubscribing","listeningStores","trapSelect","depsChangedFlag","useMemo","mapOutput","hasReplacedMapSelect","lastMapSelectFailed","errorMessage","message","stack","console","useIsomorphicLayoutEffect","flush","onStoreChange","newMapOutput","isShallowEqual","onChange","unsubscribers","mapSelectToProps","createHigherOrderComponent","WrappedComponent","pure","ownProps","mergeProps","mapDispatchToProps","dispatchProps","dispatchMap","currentDispatchMap","currentDispatchProps","dispatcher","propName","warn","useDispatchWithMap","OriginalComponent"],"sourceRoot":""}