3412 lines
		
	
	
	
		
			100 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			3412 lines
		
	
	
	
		
			100 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | this["wp"] = this["wp"] || {}; this["wp"]["coreData"] = | ||
|  | /******/ (function(modules) { // webpackBootstrap
 | ||
|  | /******/ 	// The module cache
 | ||
|  | /******/ 	var installedModules = {}; | ||
|  | /******/ | ||
|  | /******/ 	// The require function
 | ||
|  | /******/ 	function __webpack_require__(moduleId) { | ||
|  | /******/ | ||
|  | /******/ 		// Check if module is in cache
 | ||
|  | /******/ 		if(installedModules[moduleId]) { | ||
|  | /******/ 			return installedModules[moduleId].exports; | ||
|  | /******/ 		} | ||
|  | /******/ 		// Create a new module (and put it into the cache)
 | ||
|  | /******/ 		var module = installedModules[moduleId] = { | ||
|  | /******/ 			i: moduleId, | ||
|  | /******/ 			l: false, | ||
|  | /******/ 			exports: {} | ||
|  | /******/ 		}; | ||
|  | /******/ | ||
|  | /******/ 		// Execute the module function
 | ||
|  | /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
|  | /******/ | ||
|  | /******/ 		// Flag the module as loaded
 | ||
|  | /******/ 		module.l = true; | ||
|  | /******/ | ||
|  | /******/ 		// Return the exports of the module
 | ||
|  | /******/ 		return module.exports; | ||
|  | /******/ 	} | ||
|  | /******/ | ||
|  | /******/ | ||
|  | /******/ 	// expose the modules object (__webpack_modules__)
 | ||
|  | /******/ 	__webpack_require__.m = modules; | ||
|  | /******/ | ||
|  | /******/ 	// expose the module cache
 | ||
|  | /******/ 	__webpack_require__.c = installedModules; | ||
|  | /******/ | ||
|  | /******/ 	// define getter function for harmony exports
 | ||
|  | /******/ 	__webpack_require__.d = function(exports, name, getter) { | ||
|  | /******/ 		if(!__webpack_require__.o(exports, name)) { | ||
|  | /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter }); | ||
|  | /******/ 		} | ||
|  | /******/ 	}; | ||
|  | /******/ | ||
|  | /******/ 	// define __esModule on exports
 | ||
|  | /******/ 	__webpack_require__.r = function(exports) { | ||
|  | /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | ||
|  | /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
|  | /******/ 		} | ||
|  | /******/ 		Object.defineProperty(exports, '__esModule', { value: true }); | ||
|  | /******/ 	}; | ||
|  | /******/ | ||
|  | /******/ 	// create a fake namespace object
 | ||
|  | /******/ 	// mode & 1: value is a module id, require it
 | ||
|  | /******/ 	// mode & 2: merge all properties of value into the ns
 | ||
|  | /******/ 	// mode & 4: return value when already ns object
 | ||
|  | /******/ 	// mode & 8|1: behave like require
 | ||
|  | /******/ 	__webpack_require__.t = function(value, mode) { | ||
|  | /******/ 		if(mode & 1) value = __webpack_require__(value); | ||
|  | /******/ 		if(mode & 8) return value; | ||
|  | /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; | ||
|  | /******/ 		var ns = Object.create(null); | ||
|  | /******/ 		__webpack_require__.r(ns); | ||
|  | /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value }); | ||
|  | /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); | ||
|  | /******/ 		return ns; | ||
|  | /******/ 	}; | ||
|  | /******/ | ||
|  | /******/ 	// getDefaultExport function for compatibility with non-harmony modules
 | ||
|  | /******/ 	__webpack_require__.n = function(module) { | ||
|  | /******/ 		var getter = module && module.__esModule ? | ||
|  | /******/ 			function getDefault() { return module['default']; } : | ||
|  | /******/ 			function getModuleExports() { return module; }; | ||
|  | /******/ 		__webpack_require__.d(getter, 'a', getter); | ||
|  | /******/ 		return getter; | ||
|  | /******/ 	}; | ||
|  | /******/ | ||
|  | /******/ 	// Object.prototype.hasOwnProperty.call
 | ||
|  | /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | ||
|  | /******/ | ||
|  | /******/ 	// __webpack_public_path__
 | ||
|  | /******/ 	__webpack_require__.p = ""; | ||
|  | /******/ | ||
|  | /******/ | ||
|  | /******/ 	// Load entry module and return exports
 | ||
|  | /******/ 	return __webpack_require__(__webpack_require__.s = 309); | ||
|  | /******/ }) | ||
|  | /************************************************************************/ | ||
|  | /******/ ({ | ||
|  | 
 | ||
|  | /***/ 120: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | module.exports = function(originalModule) { | ||
|  | 	if (!originalModule.webpackPolyfill) { | ||
|  | 		var module = Object.create(originalModule); | ||
|  | 		// module.parent = undefined by default
 | ||
|  | 		if (!module.children) module.children = []; | ||
|  | 		Object.defineProperty(module, "loaded", { | ||
|  | 			enumerable: true, | ||
|  | 			get: function() { | ||
|  | 				return module.l; | ||
|  | 			} | ||
|  | 		}); | ||
|  | 		Object.defineProperty(module, "id", { | ||
|  | 			enumerable: true, | ||
|  | 			get: function() { | ||
|  | 				return module.i; | ||
|  | 			} | ||
|  | 		}); | ||
|  | 		Object.defineProperty(module, "exports", { | ||
|  | 			enumerable: true | ||
|  | 		}); | ||
|  | 		module.webpackPolyfill = 1; | ||
|  | 	} | ||
|  | 	return module; | ||
|  | }; | ||
|  | 
 | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 15: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; }); | ||
|  | function _defineProperty(obj, key, value) { | ||
|  |   if (key in obj) { | ||
|  |     Object.defineProperty(obj, key, { | ||
|  |       value: value, | ||
|  |       enumerable: true, | ||
|  |       configurable: true, | ||
|  |       writable: true | ||
|  |     }); | ||
|  |   } else { | ||
|  |     obj[key] = value; | ||
|  |   } | ||
|  | 
 | ||
|  |   return obj; | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 19: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
 | ||
|  | function _arrayWithoutHoles(arr) { | ||
|  |   if (Array.isArray(arr)) { | ||
|  |     for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { | ||
|  |       arr2[i] = arr[i]; | ||
|  |     } | ||
|  | 
 | ||
|  |     return arr2; | ||
|  |   } | ||
|  | } | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
 | ||
|  | var iterableToArray = __webpack_require__(33); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
 | ||
|  | function _nonIterableSpread() { | ||
|  |   throw new TypeError("Invalid attempt to spread non-iterable instance"); | ||
|  | } | ||
|  | // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
 | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _toConsumableArray; }); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | function _toConsumableArray(arr) { | ||
|  |   return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || _nonIterableSpread(); | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 2: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["lodash"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 24: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["wp"]["url"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 25: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
 | ||
|  | var arrayWithHoles = __webpack_require__(35); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
 | ||
|  | function _iterableToArrayLimit(arr, i) { | ||
|  |   var _arr = []; | ||
|  |   var _n = true; | ||
|  |   var _d = false; | ||
|  |   var _e = undefined; | ||
|  | 
 | ||
|  |   try { | ||
|  |     for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { | ||
|  |       _arr.push(_s.value); | ||
|  | 
 | ||
|  |       if (i && _arr.length === i) break; | ||
|  |     } | ||
|  |   } catch (err) { | ||
|  |     _d = true; | ||
|  |     _e = err; | ||
|  |   } finally { | ||
|  |     try { | ||
|  |       if (!_n && _i["return"] != null) _i["return"](); | ||
|  |     } finally { | ||
|  |       if (_d) throw _e; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   return _arr; | ||
|  | } | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
 | ||
|  | var nonIterableRest = __webpack_require__(36); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
 | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _slicedToArray; }); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | function _slicedToArray(arr, i) { | ||
|  |   return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(nonIterableRest["a" /* default */])(); | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 30: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["wp"]["apiFetch"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 309: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | __webpack_require__.r(__webpack_exports__); | ||
|  | var build_module_actions_namespaceObject = {}; | ||
|  | __webpack_require__.r(build_module_actions_namespaceObject); | ||
|  | __webpack_require__.d(build_module_actions_namespaceObject, "receiveUserQuery", function() { return receiveUserQuery; }); | ||
|  | __webpack_require__.d(build_module_actions_namespaceObject, "addEntities", function() { return addEntities; }); | ||
|  | __webpack_require__.d(build_module_actions_namespaceObject, "receiveEntityRecords", function() { return receiveEntityRecords; }); | ||
|  | __webpack_require__.d(build_module_actions_namespaceObject, "receiveThemeSupports", function() { return receiveThemeSupports; }); | ||
|  | __webpack_require__.d(build_module_actions_namespaceObject, "receiveEmbedPreview", function() { return receiveEmbedPreview; }); | ||
|  | __webpack_require__.d(build_module_actions_namespaceObject, "saveEntityRecord", function() { return saveEntityRecord; }); | ||
|  | __webpack_require__.d(build_module_actions_namespaceObject, "receiveUploadPermissions", function() { return receiveUploadPermissions; }); | ||
|  | var build_module_selectors_namespaceObject = {}; | ||
|  | __webpack_require__.r(build_module_selectors_namespaceObject); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "isRequestingEmbedPreview", function() { return isRequestingEmbedPreview; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "getAuthors", function() { return getAuthors; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "getUserQueryResults", function() { return getUserQueryResults; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "getEntitiesByKind", function() { return getEntitiesByKind; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "getEntity", function() { return getEntity; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "getEntityRecord", function() { return getEntityRecord; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "getEntityRecords", function() { return getEntityRecords; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "getThemeSupports", function() { return getThemeSupports; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "getEmbedPreview", function() { return getEmbedPreview; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "isPreviewEmbedFallback", function() { return isPreviewEmbedFallback; }); | ||
|  | __webpack_require__.d(build_module_selectors_namespaceObject, "hasUploadPermissions", function() { return selectors_hasUploadPermissions; }); | ||
|  | var resolvers_namespaceObject = {}; | ||
|  | __webpack_require__.r(resolvers_namespaceObject); | ||
|  | __webpack_require__.d(resolvers_namespaceObject, "getAuthors", function() { return resolvers_getAuthors; }); | ||
|  | __webpack_require__.d(resolvers_namespaceObject, "getEntityRecord", function() { return resolvers_getEntityRecord; }); | ||
|  | __webpack_require__.d(resolvers_namespaceObject, "getEntityRecords", function() { return resolvers_getEntityRecords; }); | ||
|  | __webpack_require__.d(resolvers_namespaceObject, "getThemeSupports", function() { return resolvers_getThemeSupports; }); | ||
|  | __webpack_require__.d(resolvers_namespaceObject, "getEmbedPreview", function() { return resolvers_getEmbedPreview; }); | ||
|  | __webpack_require__.d(resolvers_namespaceObject, "hasUploadPermissions", function() { return resolvers_hasUploadPermissions; }); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread.js
 | ||
|  | var objectSpread = __webpack_require__(8); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external {"this":["wp","data"]}
 | ||
|  | var external_this_wp_data_ = __webpack_require__(5); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
 | ||
|  | var slicedToArray = __webpack_require__(25); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
 | ||
|  | var toConsumableArray = __webpack_require__(19); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
 | ||
|  | var defineProperty = __webpack_require__(15); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external "lodash"
 | ||
|  | var external_lodash_ = __webpack_require__(2); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/if-matching-action.js
 | ||
|  | /** | ||
|  |  * A higher-order reducer creator which invokes the original reducer only if | ||
|  |  * the dispatching action matches the given predicate, **OR** if state is | ||
|  |  * initializing (undefined). | ||
|  |  * | ||
|  |  * @param {Function} isMatch Function predicate for allowing reducer call. | ||
|  |  * | ||
|  |  * @return {Function} Higher-order reducer. | ||
|  |  */ | ||
|  | var ifMatchingAction = function ifMatchingAction(isMatch) { | ||
|  |   return function (reducer) { | ||
|  |     return function (state, action) { | ||
|  |       if (state === undefined || isMatch(action)) { | ||
|  |         return reducer(state, action); | ||
|  |       } | ||
|  | 
 | ||
|  |       return state; | ||
|  |     }; | ||
|  |   }; | ||
|  | }; | ||
|  | 
 | ||
|  | /* harmony default export */ var if_matching_action = (ifMatchingAction); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/on-sub-key.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Higher-order reducer creator which creates a combined reducer object, keyed | ||
|  |  * by a property on the action object. | ||
|  |  * | ||
|  |  * @param {string} actionProperty Action property by which to key object. | ||
|  |  * | ||
|  |  * @return {Function} Higher-order reducer. | ||
|  |  */ | ||
|  | var on_sub_key_onSubKey = function onSubKey(actionProperty) { | ||
|  |   return function (reducer) { | ||
|  |     return function () { | ||
|  |       var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
|  |       var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  |       // Retrieve subkey from action. Do not track if undefined; useful for cases
 | ||
|  |       // where reducer is scoped by action shape.
 | ||
|  |       var key = action[actionProperty]; | ||
|  | 
 | ||
|  |       if (key === undefined) { | ||
|  |         return state; | ||
|  |       } // Avoid updating state if unchanged. Note that this also accounts for a
 | ||
|  |       // reducer which returns undefined on a key which is not yet tracked.
 | ||
|  | 
 | ||
|  | 
 | ||
|  |       var nextKeyState = reducer(state[key], action); | ||
|  | 
 | ||
|  |       if (nextKeyState === state[key]) { | ||
|  |         return state; | ||
|  |       } | ||
|  | 
 | ||
|  |       return Object(objectSpread["a" /* default */])({}, state, Object(defineProperty["a" /* default */])({}, key, nextKeyState)); | ||
|  |     }; | ||
|  |   }; | ||
|  | }; | ||
|  | /* harmony default export */ var on_sub_key = (on_sub_key_onSubKey); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/replace-action.js
 | ||
|  | /** | ||
|  |  * Higher-order reducer creator which substitutes the action object before | ||
|  |  * passing to the original reducer. | ||
|  |  * | ||
|  |  * @param {Function} replacer Function mapping original action to replacement. | ||
|  |  * | ||
|  |  * @return {Function} Higher-order reducer. | ||
|  |  */ | ||
|  | var replaceAction = function replaceAction(replacer) { | ||
|  |   return function (reducer) { | ||
|  |     return function (state, action) { | ||
|  |       return reducer(state, replacer(action)); | ||
|  |     }; | ||
|  |   }; | ||
|  | }; | ||
|  | 
 | ||
|  | /* harmony default export */ var replace_action = (replaceAction); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/with-weak-map-cache.js
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * Given a function, returns an enhanced function which caches the result and | ||
|  |  * tracks in WeakMap. The result is only cached if the original function is | ||
|  |  * passed a valid object-like argument (requirement for WeakMap key). | ||
|  |  * | ||
|  |  * @param {Function} fn Original function. | ||
|  |  * | ||
|  |  * @return {Function} Enhanced caching function. | ||
|  |  */ | ||
|  | 
 | ||
|  | function withWeakMapCache(fn) { | ||
|  |   var cache = new WeakMap(); | ||
|  |   return function (key) { | ||
|  |     var value; | ||
|  | 
 | ||
|  |     if (cache.has(key)) { | ||
|  |       value = cache.get(key); | ||
|  |     } else { | ||
|  |       value = fn(key); // Can reach here if key is not valid for WeakMap, since `has`
 | ||
|  |       // will return false for invalid key. Since `set` will throw,
 | ||
|  |       // ensure that key is valid before setting into cache.
 | ||
|  | 
 | ||
|  |       if (Object(external_lodash_["isObjectLike"])(key)) { | ||
|  |         cache.set(key, value); | ||
|  |       } | ||
|  |     } | ||
|  | 
 | ||
|  |     return value; | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | /* harmony default export */ var with_weak_map_cache = (withWeakMapCache); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/index.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/actions.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * Returns an action object used in signalling that items have been received. | ||
|  |  * | ||
|  |  * @param {Array} items Items received. | ||
|  |  * | ||
|  |  * @return {Object} Action object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function receiveItems(items) { | ||
|  |   return { | ||
|  |     type: 'RECEIVE_ITEMS', | ||
|  |     items: Object(external_lodash_["castArray"])(items) | ||
|  |   }; | ||
|  | } | ||
|  | /** | ||
|  |  * Returns an action object used in signalling that queried data has been | ||
|  |  * received. | ||
|  |  * | ||
|  |  * @param {Array}   items Queried items received. | ||
|  |  * @param {?Object} query Optional query object. | ||
|  |  * | ||
|  |  * @return {Object} Action object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function receiveQueriedItems(items) { | ||
|  |   var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
|  |   return Object(objectSpread["a" /* default */])({}, receiveItems(items), { | ||
|  |     query: query | ||
|  |   }); | ||
|  | } | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js
 | ||
|  | var rememo = __webpack_require__(31); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/equivalent-key-map/equivalent-key-map.js
 | ||
|  | var equivalent_key_map = __webpack_require__(66); | ||
|  | var equivalent_key_map_default = /*#__PURE__*/__webpack_require__.n(equivalent_key_map); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external {"this":["wp","url"]}
 | ||
|  | var external_this_wp_url_ = __webpack_require__(24); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/get-query-parts.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * An object of properties describing a specific query. | ||
|  |  * | ||
|  |  * @typedef {WPQueriedDataQueryParts} | ||
|  |  * | ||
|  |  * @property {number} page      The query page (1-based index, default 1). | ||
|  |  * @property {number} perPage   Items per page for query (default 10). | ||
|  |  * @property {string} stableKey An encoded stable string of all non-pagination | ||
|  |  *                              query parameters. | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * Given a query object, returns an object of parts, including pagination | ||
|  |  * details (`page` and `perPage`, or default values). All other properties are | ||
|  |  * encoded into a stable (idempotent) `stableKey` value. | ||
|  |  * | ||
|  |  * @param {Object} query Optional query object. | ||
|  |  * | ||
|  |  * @return {WPQueriedDataQueryParts} Query parts. | ||
|  |  */ | ||
|  | 
 | ||
|  | function getQueryParts(query) { | ||
|  |   /** | ||
|  |    * @type {WPQueriedDataQueryParts} | ||
|  |    */ | ||
|  |   var parts = { | ||
|  |     stableKey: '', | ||
|  |     page: 1, | ||
|  |     perPage: 10 | ||
|  |   }; // Ensure stable key by sorting keys. Also more efficient for iterating.
 | ||
|  | 
 | ||
|  |   var keys = Object.keys(query).sort(); | ||
|  | 
 | ||
|  |   for (var i = 0; i < keys.length; i++) { | ||
|  |     var key = keys[i]; | ||
|  |     var value = query[key]; | ||
|  | 
 | ||
|  |     switch (key) { | ||
|  |       case 'page': | ||
|  |         parts[key] = Number(value); | ||
|  |         break; | ||
|  | 
 | ||
|  |       case 'per_page': | ||
|  |         parts.perPage = Number(value); | ||
|  |         break; | ||
|  | 
 | ||
|  |       default: | ||
|  |         // While it could be any deterministic string, for simplicity's
 | ||
|  |         // sake mimic querystring encoding for stable key.
 | ||
|  |         //
 | ||
|  |         // TODO: For consistency with PHP implementation, addQueryArgs
 | ||
|  |         // should accept a key value pair, which may optimize its
 | ||
|  |         // implementation for our use here, vs. iterating an object
 | ||
|  |         // with only a single key.
 | ||
|  |         parts.stableKey += (parts.stableKey ? '&' : '') + Object(external_this_wp_url_["addQueryArgs"])('', Object(defineProperty["a" /* default */])({}, key, value)).slice(1); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   return parts; | ||
|  | } | ||
|  | /* harmony default export */ var get_query_parts = (with_weak_map_cache(getQueryParts)); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/selectors.js
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Cache of state keys to EquivalentKeyMap where the inner map tracks queries | ||
|  |  * to their resulting items set. WeakMap allows garbage collection on expired | ||
|  |  * state references. | ||
|  |  * | ||
|  |  * @type {WeakMap<Object,EquivalentKeyMap>} | ||
|  |  */ | ||
|  | 
 | ||
|  | var queriedItemsCacheByState = new WeakMap(); | ||
|  | /** | ||
|  |  * Returns items for a given query, or null if the items are not known. | ||
|  |  * | ||
|  |  * @param {Object}  state State object. | ||
|  |  * @param {?Object} query Optional query. | ||
|  |  * | ||
|  |  * @return {?Array} Query items. | ||
|  |  */ | ||
|  | 
 | ||
|  | function getQueriedItemsUncached(state, query) { | ||
|  |   var _getQueryParts = get_query_parts(query), | ||
|  |       stableKey = _getQueryParts.stableKey, | ||
|  |       page = _getQueryParts.page, | ||
|  |       perPage = _getQueryParts.perPage; | ||
|  | 
 | ||
|  |   if (!state.queries[stableKey]) { | ||
|  |     return null; | ||
|  |   } | ||
|  | 
 | ||
|  |   var itemIds = state.queries[stableKey]; | ||
|  | 
 | ||
|  |   if (!itemIds) { | ||
|  |     return null; | ||
|  |   } | ||
|  | 
 | ||
|  |   var startOffset = perPage === -1 ? 0 : (page - 1) * perPage; | ||
|  |   var endOffset = perPage === -1 ? itemIds.length : Math.min(startOffset + perPage, itemIds.length); | ||
|  |   var items = []; | ||
|  | 
 | ||
|  |   for (var i = startOffset; i < endOffset; i++) { | ||
|  |     var itemId = itemIds[i]; | ||
|  |     items.push(state.items[itemId]); | ||
|  |   } | ||
|  | 
 | ||
|  |   return items; | ||
|  | } | ||
|  | /** | ||
|  |  * Returns items for a given query, or null if the items are not known. Caches | ||
|  |  * result both per state (by reference) and per query (by deep equality). | ||
|  |  * The caching approach is intended to be durable to query objects which are | ||
|  |  * deeply but not referentially equal, since otherwise: | ||
|  |  * | ||
|  |  * `getQueriedItems( state, {} ) !== getQueriedItems( state, {} )` | ||
|  |  * | ||
|  |  * @param {Object}  state State object. | ||
|  |  * @param {?Object} query Optional query. | ||
|  |  * | ||
|  |  * @return {?Array} Query items. | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | var getQueriedItems = Object(rememo["a" /* default */])(function (state) { | ||
|  |   var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
|  |   var queriedItemsCache = queriedItemsCacheByState.get(state); | ||
|  | 
 | ||
|  |   if (queriedItemsCache) { | ||
|  |     var queriedItems = queriedItemsCache.get(query); | ||
|  | 
 | ||
|  |     if (queriedItems !== undefined) { | ||
|  |       return queriedItems; | ||
|  |     } | ||
|  |   } else { | ||
|  |     queriedItemsCache = new equivalent_key_map_default.a(); | ||
|  |     queriedItemsCacheByState.set(state, queriedItemsCache); | ||
|  |   } | ||
|  | 
 | ||
|  |   var items = getQueriedItemsUncached(state, query); | ||
|  |   queriedItemsCache.set(query, items); | ||
|  |   return items; | ||
|  | }); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/redux/es/redux.js
 | ||
|  | var redux = __webpack_require__(62); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external {"this":["wp","apiFetch"]}
 | ||
|  | var external_this_wp_apiFetch_ = __webpack_require__(30); | ||
|  | var external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/controls.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Trigger an API Fetch request. | ||
|  |  * | ||
|  |  * @param {Object} request API Fetch Request Object. | ||
|  |  * @return {Object} control descriptor. | ||
|  |  */ | ||
|  | 
 | ||
|  | function apiFetch(request) { | ||
|  |   return { | ||
|  |     type: 'API_FETCH', | ||
|  |     request: request | ||
|  |   }; | ||
|  | } | ||
|  | /** | ||
|  |  * Calls a selector using the current state. | ||
|  |  * @param {string} selectorName Selector name. | ||
|  |  * @param  {Array} args         Selector arguments. | ||
|  |  * | ||
|  |  * @return {Object} control descriptor. | ||
|  |  */ | ||
|  | 
 | ||
|  | function controls_select(selectorName) { | ||
|  |   for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
|  |     args[_key - 1] = arguments[_key]; | ||
|  |   } | ||
|  | 
 | ||
|  |   return { | ||
|  |     type: 'SELECT', | ||
|  |     selectorName: selectorName, | ||
|  |     args: args | ||
|  |   }; | ||
|  | } | ||
|  | var controls = { | ||
|  |   API_FETCH: function API_FETCH(_ref) { | ||
|  |     var request = _ref.request; | ||
|  |     return external_this_wp_apiFetch_default()(request); | ||
|  |   }, | ||
|  |   SELECT: function SELECT(_ref2) { | ||
|  |     var _selectData; | ||
|  | 
 | ||
|  |     var selectorName = _ref2.selectorName, | ||
|  |         args = _ref2.args; | ||
|  |     return (_selectData = Object(external_this_wp_data_["select"])('core'))[selectorName].apply(_selectData, Object(toConsumableArray["a" /* default */])(args)); | ||
|  |   } | ||
|  | }; | ||
|  | /* harmony default export */ var build_module_controls = (controls); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/actions.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | var _marked = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(saveEntityRecord); | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Returns an action object used in signalling that authors have been received. | ||
|  |  * | ||
|  |  * @param {string}       queryID Query ID. | ||
|  |  * @param {Array|Object} users   Users received. | ||
|  |  * | ||
|  |  * @return {Object} Action object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function receiveUserQuery(queryID, users) { | ||
|  |   return { | ||
|  |     type: 'RECEIVE_USER_QUERY', | ||
|  |     users: Object(external_lodash_["castArray"])(users), | ||
|  |     queryID: queryID | ||
|  |   }; | ||
|  | } | ||
|  | /** | ||
|  |  * Returns an action object used in adding new entities. | ||
|  |  * | ||
|  |  * @param {Array} entities  Entities received. | ||
|  |  * | ||
|  |  * @return {Object} Action object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function addEntities(entities) { | ||
|  |   return { | ||
|  |     type: 'ADD_ENTITIES', | ||
|  |     entities: entities | ||
|  |   }; | ||
|  | } | ||
|  | /** | ||
|  |  * Returns an action object used in signalling that entity records have been received. | ||
|  |  * | ||
|  |  * @param {string}       kind            Kind of the received entity. | ||
|  |  * @param {string}       name            Name of the received entity. | ||
|  |  * @param {Array|Object} records         Records received. | ||
|  |  * @param {?Object}      query           Query Object. | ||
|  |  * @param {?boolean}     invalidateCache Should invalidate query caches | ||
|  |  * | ||
|  |  * @return {Object} Action object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function receiveEntityRecords(kind, name, records, query) { | ||
|  |   var invalidateCache = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; | ||
|  |   var action; | ||
|  | 
 | ||
|  |   if (query) { | ||
|  |     action = receiveQueriedItems(records, query); | ||
|  |   } else { | ||
|  |     action = receiveItems(records); | ||
|  |   } | ||
|  | 
 | ||
|  |   return Object(objectSpread["a" /* default */])({}, action, { | ||
|  |     kind: kind, | ||
|  |     name: name, | ||
|  |     invalidateCache: invalidateCache | ||
|  |   }); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns an action object used in signalling that the index has been received. | ||
|  |  * | ||
|  |  * @param {Object} themeSupports Theme support for the current theme. | ||
|  |  * | ||
|  |  * @return {Object} Action object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function receiveThemeSupports(themeSupports) { | ||
|  |   return { | ||
|  |     type: 'RECEIVE_THEME_SUPPORTS', | ||
|  |     themeSupports: themeSupports | ||
|  |   }; | ||
|  | } | ||
|  | /** | ||
|  |  * Returns an action object used in signalling that the preview data for | ||
|  |  * a given URl has been received. | ||
|  |  * | ||
|  |  * @param {string}  url      URL to preview the embed for. | ||
|  |  * @param {Mixed}   preview  Preview data. | ||
|  |  * | ||
|  |  * @return {Object} Action object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function receiveEmbedPreview(url, preview) { | ||
|  |   return { | ||
|  |     type: 'RECEIVE_EMBED_PREVIEW', | ||
|  |     url: url, | ||
|  |     preview: preview | ||
|  |   }; | ||
|  | } | ||
|  | /** | ||
|  |  * Action triggered to save an entity record. | ||
|  |  * | ||
|  |  * @param {string} kind    Kind of the received entity. | ||
|  |  * @param {string} name    Name of the received entity. | ||
|  |  * @param {Object} record  Record to be saved. | ||
|  |  * | ||
|  |  * @return {Object} Updated record. | ||
|  |  */ | ||
|  | 
 | ||
|  | function saveEntityRecord(kind, name, record) { | ||
|  |   var entities, entity, key, recordId, updatedRecord; | ||
|  |   return regeneratorRuntime.wrap(function saveEntityRecord$(_context) { | ||
|  |     while (1) { | ||
|  |       switch (_context.prev = _context.next) { | ||
|  |         case 0: | ||
|  |           _context.next = 2; | ||
|  |           return getKindEntities(kind); | ||
|  | 
 | ||
|  |         case 2: | ||
|  |           entities = _context.sent; | ||
|  |           entity = Object(external_lodash_["find"])(entities, { | ||
|  |             kind: kind, | ||
|  |             name: name | ||
|  |           }); | ||
|  | 
 | ||
|  |           if (entity) { | ||
|  |             _context.next = 6; | ||
|  |             break; | ||
|  |           } | ||
|  | 
 | ||
|  |           return _context.abrupt("return"); | ||
|  | 
 | ||
|  |         case 6: | ||
|  |           key = entity.key || DEFAULT_ENTITY_KEY; | ||
|  |           recordId = record[key]; | ||
|  |           _context.next = 10; | ||
|  |           return apiFetch({ | ||
|  |             path: "".concat(entity.baseURL).concat(recordId ? '/' + recordId : ''), | ||
|  |             method: recordId ? 'PUT' : 'POST', | ||
|  |             data: record | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 10: | ||
|  |           updatedRecord = _context.sent; | ||
|  |           _context.next = 13; | ||
|  |           return receiveEntityRecords(kind, name, updatedRecord, undefined, true); | ||
|  | 
 | ||
|  |         case 13: | ||
|  |           return _context.abrupt("return", updatedRecord); | ||
|  | 
 | ||
|  |         case 14: | ||
|  |         case "end": | ||
|  |           return _context.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, _marked, this); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns an action object used in signalling that Upload permissions have been received. | ||
|  |  * | ||
|  |  * @param {boolean} hasUploadPermissions Does the user have permission to upload files? | ||
|  |  * | ||
|  |  * @return {Object} Action object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function receiveUploadPermissions(hasUploadPermissions) { | ||
|  |   return { | ||
|  |     type: 'RECEIVE_UPLOAD_PERMISSIONS', | ||
|  |     hasUploadPermissions: hasUploadPermissions | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/entities.js
 | ||
|  | var entities_marked = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(loadPostTypeEntities), | ||
|  |     _marked2 = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(loadTaxonomyEntities), | ||
|  |     _marked3 = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(getKindEntities); | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | var DEFAULT_ENTITY_KEY = 'id'; | ||
|  | var defaultEntities = [{ | ||
|  |   name: 'postType', | ||
|  |   kind: 'root', | ||
|  |   key: 'slug', | ||
|  |   baseURL: '/wp/v2/types' | ||
|  | }, { | ||
|  |   name: 'media', | ||
|  |   kind: 'root', | ||
|  |   baseURL: '/wp/v2/media', | ||
|  |   plural: 'mediaItems' | ||
|  | }, { | ||
|  |   name: 'taxonomy', | ||
|  |   kind: 'root', | ||
|  |   key: 'slug', | ||
|  |   baseURL: '/wp/v2/taxonomies', | ||
|  |   plural: 'taxonomies' | ||
|  | }]; | ||
|  | var kinds = [{ | ||
|  |   name: 'postType', | ||
|  |   loadEntities: loadPostTypeEntities | ||
|  | }, { | ||
|  |   name: 'taxonomy', | ||
|  |   loadEntities: loadTaxonomyEntities | ||
|  | }]; | ||
|  | /** | ||
|  |  * Returns the list of post type entities. | ||
|  |  * | ||
|  |  * @return {Promise} Entities promise | ||
|  |  */ | ||
|  | 
 | ||
|  | function loadPostTypeEntities() { | ||
|  |   var postTypes; | ||
|  |   return regeneratorRuntime.wrap(function loadPostTypeEntities$(_context) { | ||
|  |     while (1) { | ||
|  |       switch (_context.prev = _context.next) { | ||
|  |         case 0: | ||
|  |           _context.next = 2; | ||
|  |           return apiFetch({ | ||
|  |             path: '/wp/v2/types?context=edit' | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 2: | ||
|  |           postTypes = _context.sent; | ||
|  |           return _context.abrupt("return", Object(external_lodash_["map"])(postTypes, function (postType, name) { | ||
|  |             return { | ||
|  |               kind: 'postType', | ||
|  |               baseURL: '/wp/v2/' + postType.rest_base, | ||
|  |               name: name | ||
|  |             }; | ||
|  |           })); | ||
|  | 
 | ||
|  |         case 4: | ||
|  |         case "end": | ||
|  |           return _context.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, entities_marked, this); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns the list of the taxonomies entities. | ||
|  |  * | ||
|  |  * @return {Promise} Entities promise | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | function loadTaxonomyEntities() { | ||
|  |   var taxonomies; | ||
|  |   return regeneratorRuntime.wrap(function loadTaxonomyEntities$(_context2) { | ||
|  |     while (1) { | ||
|  |       switch (_context2.prev = _context2.next) { | ||
|  |         case 0: | ||
|  |           _context2.next = 2; | ||
|  |           return apiFetch({ | ||
|  |             path: '/wp/v2/taxonomies?context=edit' | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 2: | ||
|  |           taxonomies = _context2.sent; | ||
|  |           return _context2.abrupt("return", Object(external_lodash_["map"])(taxonomies, function (taxonomy, name) { | ||
|  |             return { | ||
|  |               kind: 'taxonomy', | ||
|  |               baseURL: '/wp/v2/' + taxonomy.rest_base, | ||
|  |               name: name | ||
|  |             }; | ||
|  |           })); | ||
|  | 
 | ||
|  |         case 4: | ||
|  |         case "end": | ||
|  |           return _context2.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, _marked2, this); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns the entity's getter method name given its kind and name. | ||
|  |  * | ||
|  |  * @param {string}  kind      Entity kind. | ||
|  |  * @param {string}  name      Entity name. | ||
|  |  * @param {string}  prefix    Function prefix. | ||
|  |  * @param {boolean} usePlural Whether to use the plural form or not. | ||
|  |  * | ||
|  |  * @return {string} Method name | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | var entities_getMethodName = function getMethodName(kind, name) { | ||
|  |   var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'get'; | ||
|  |   var usePlural = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; | ||
|  |   var entity = Object(external_lodash_["find"])(defaultEntities, { | ||
|  |     kind: kind, | ||
|  |     name: name | ||
|  |   }); | ||
|  |   var kindPrefix = kind === 'root' ? '' : Object(external_lodash_["upperFirst"])(Object(external_lodash_["camelCase"])(kind)); | ||
|  |   var nameSuffix = Object(external_lodash_["upperFirst"])(Object(external_lodash_["camelCase"])(name)) + (usePlural ? 's' : ''); | ||
|  |   var suffix = usePlural && entity.plural ? Object(external_lodash_["upperFirst"])(Object(external_lodash_["camelCase"])(entity.plural)) : nameSuffix; | ||
|  |   return "".concat(prefix).concat(kindPrefix).concat(suffix); | ||
|  | }; | ||
|  | /** | ||
|  |  * Loads the kind entities into the store. | ||
|  |  * | ||
|  |  * @param {string} kind  Kind | ||
|  |  * | ||
|  |  * @return {Array} Entities | ||
|  |  */ | ||
|  | 
 | ||
|  | function getKindEntities(kind) { | ||
|  |   var entities, kindConfig; | ||
|  |   return regeneratorRuntime.wrap(function getKindEntities$(_context3) { | ||
|  |     while (1) { | ||
|  |       switch (_context3.prev = _context3.next) { | ||
|  |         case 0: | ||
|  |           _context3.next = 2; | ||
|  |           return controls_select('getEntitiesByKind', kind); | ||
|  | 
 | ||
|  |         case 2: | ||
|  |           entities = _context3.sent; | ||
|  | 
 | ||
|  |           if (!(entities && entities.length !== 0)) { | ||
|  |             _context3.next = 5; | ||
|  |             break; | ||
|  |           } | ||
|  | 
 | ||
|  |           return _context3.abrupt("return", entities); | ||
|  | 
 | ||
|  |         case 5: | ||
|  |           kindConfig = Object(external_lodash_["find"])(kinds, { | ||
|  |             name: kind | ||
|  |           }); | ||
|  | 
 | ||
|  |           if (kindConfig) { | ||
|  |             _context3.next = 8; | ||
|  |             break; | ||
|  |           } | ||
|  | 
 | ||
|  |           return _context3.abrupt("return", []); | ||
|  | 
 | ||
|  |         case 8: | ||
|  |           _context3.next = 10; | ||
|  |           return kindConfig.loadEntities(); | ||
|  | 
 | ||
|  |         case 10: | ||
|  |           entities = _context3.sent; | ||
|  |           _context3.next = 13; | ||
|  |           return addEntities(entities); | ||
|  | 
 | ||
|  |         case 13: | ||
|  |           return _context3.abrupt("return", entities); | ||
|  | 
 | ||
|  |         case 14: | ||
|  |         case "end": | ||
|  |           return _context3.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, _marked3, this); | ||
|  | } | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/reducer.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Returns a merged array of item IDs, given details of the received paginated | ||
|  |  * items. The array is sparse-like with `undefined` entries where holes exist. | ||
|  |  * | ||
|  |  * @param {?Array<number>} itemIds     Original item IDs (default empty array). | ||
|  |  * @param {number[]}       nextItemIds Item IDs to merge. | ||
|  |  * @param {number}         page        Page of items merged. | ||
|  |  * @param {number}         perPage     Number of items per page. | ||
|  |  * | ||
|  |  * @return {number[]} Merged array of item IDs. | ||
|  |  */ | ||
|  | 
 | ||
|  | function getMergedItemIds(itemIds, nextItemIds, page, perPage) { | ||
|  |   var nextItemIdsStartIndex = (page - 1) * perPage; // If later page has already been received, default to the larger known
 | ||
|  |   // size of the existing array, else calculate as extending the existing.
 | ||
|  | 
 | ||
|  |   var size = Math.max(itemIds.length, nextItemIdsStartIndex + nextItemIds.length); // Preallocate array since size is known.
 | ||
|  | 
 | ||
|  |   var mergedItemIds = new Array(size); | ||
|  | 
 | ||
|  |   for (var i = 0; i < size; i++) { | ||
|  |     // Preserve existing item ID except for subset of range of next items.
 | ||
|  |     var isInNextItemsRange = i >= nextItemIdsStartIndex && i < nextItemIdsStartIndex + nextItemIds.length; | ||
|  |     mergedItemIds[i] = isInNextItemsRange ? nextItemIds[i - nextItemIdsStartIndex] : itemIds[i]; | ||
|  |   } | ||
|  | 
 | ||
|  |   return mergedItemIds; | ||
|  | } | ||
|  | /** | ||
|  |  * Reducer tracking items state, keyed by ID. Items are assumed to be normal, | ||
|  |  * where identifiers are common across all queries. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Next state. | ||
|  |  */ | ||
|  | 
 | ||
|  | function reducer_items() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  | 
 | ||
|  |   switch (action.type) { | ||
|  |     case 'RECEIVE_ITEMS': | ||
|  |       return Object(objectSpread["a" /* default */])({}, state, Object(external_lodash_["keyBy"])(action.items, action.key || DEFAULT_ENTITY_KEY)); | ||
|  |   } | ||
|  | 
 | ||
|  |   return state; | ||
|  | } | ||
|  | /** | ||
|  |  * Reducer tracking queries state, keyed by stable query key. Each reducer | ||
|  |  * query object includes `itemIds` and `requestingPageByPerPage`. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Next state. | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | var queries = Object(external_lodash_["flowRight"])([// Limit to matching action type so we don't attempt to replace action on
 | ||
|  | // an unhandled action.
 | ||
|  | if_matching_action(function (action) { | ||
|  |   return 'query' in action; | ||
|  | }), // Inject query parts into action for use both in `onSubKey` and reducer.
 | ||
|  | replace_action(function (action) { | ||
|  |   // `ifMatchingAction` still passes on initialization, where state is
 | ||
|  |   // undefined and a query is not assigned. Avoid attempting to parse
 | ||
|  |   // parts. `onSubKey` will omit by lack of `stableKey`.
 | ||
|  |   if (action.query) { | ||
|  |     return Object(objectSpread["a" /* default */])({}, action, get_query_parts(action.query)); | ||
|  |   } | ||
|  | 
 | ||
|  |   return action; | ||
|  | }), // Queries shape is shared, but keyed by query `stableKey` part. Original
 | ||
|  | // reducer tracks only a single query object.
 | ||
|  | on_sub_key('stableKey')])(function () { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  |   var type = action.type, | ||
|  |       page = action.page, | ||
|  |       perPage = action.perPage, | ||
|  |       _action$key = action.key, | ||
|  |       key = _action$key === void 0 ? DEFAULT_ENTITY_KEY : _action$key; | ||
|  | 
 | ||
|  |   if (type !== 'RECEIVE_ITEMS') { | ||
|  |     return state; | ||
|  |   } | ||
|  | 
 | ||
|  |   return getMergedItemIds(state || [], Object(external_lodash_["map"])(action.items, key), page, perPage); | ||
|  | }); | ||
|  | /* harmony default export */ var queried_data_reducer = (Object(redux["b" /* combineReducers */])({ | ||
|  |   items: reducer_items, | ||
|  |   queries: queries | ||
|  | })); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/index.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/reducer.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Reducer managing terms state. Keyed by taxonomy slug, the value is either | ||
|  |  * undefined (if no request has been made for given taxonomy), null (if a | ||
|  |  * request is in-flight for given taxonomy), or the array of terms for the | ||
|  |  * taxonomy. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Updated state. | ||
|  |  */ | ||
|  | 
 | ||
|  | function terms() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  | 
 | ||
|  |   switch (action.type) { | ||
|  |     case 'RECEIVE_TERMS': | ||
|  |       return Object(objectSpread["a" /* default */])({}, state, Object(defineProperty["a" /* default */])({}, action.taxonomy, action.terms)); | ||
|  |   } | ||
|  | 
 | ||
|  |   return state; | ||
|  | } | ||
|  | /** | ||
|  |  * Reducer managing authors state. Keyed by id. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Updated state. | ||
|  |  */ | ||
|  | 
 | ||
|  | function reducer_users() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { | ||
|  |     byId: {}, | ||
|  |     queries: {} | ||
|  |   }; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  | 
 | ||
|  |   switch (action.type) { | ||
|  |     case 'RECEIVE_USER_QUERY': | ||
|  |       return { | ||
|  |         byId: Object(objectSpread["a" /* default */])({}, state.byId, Object(external_lodash_["keyBy"])(action.users, 'id')), | ||
|  |         queries: Object(objectSpread["a" /* default */])({}, state.queries, Object(defineProperty["a" /* default */])({}, action.queryID, Object(external_lodash_["map"])(action.users, function (user) { | ||
|  |           return user.id; | ||
|  |         }))) | ||
|  |       }; | ||
|  |   } | ||
|  | 
 | ||
|  |   return state; | ||
|  | } | ||
|  | /** | ||
|  |  * Reducer managing taxonomies. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Updated state. | ||
|  |  */ | ||
|  | 
 | ||
|  | function reducer_taxonomies() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  | 
 | ||
|  |   switch (action.type) { | ||
|  |     case 'RECEIVE_TAXONOMIES': | ||
|  |       return action.taxonomies; | ||
|  |   } | ||
|  | 
 | ||
|  |   return state; | ||
|  | } | ||
|  | /** | ||
|  |  * Reducer managing theme supports data. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Updated state. | ||
|  |  */ | ||
|  | 
 | ||
|  | function themeSupports() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  | 
 | ||
|  |   switch (action.type) { | ||
|  |     case 'RECEIVE_THEME_SUPPORTS': | ||
|  |       return Object(objectSpread["a" /* default */])({}, state, action.themeSupports); | ||
|  |   } | ||
|  | 
 | ||
|  |   return state; | ||
|  | } | ||
|  | /** | ||
|  |  * Higher Order Reducer for a given entity config. It supports: | ||
|  |  * | ||
|  |  *  - Fetching a record by primary key | ||
|  |  * | ||
|  |  * @param {Object} entityConfig  Entity config. | ||
|  |  * | ||
|  |  * @return {Function} Reducer. | ||
|  |  */ | ||
|  | 
 | ||
|  | function reducer_entity(entityConfig) { | ||
|  |   return Object(external_lodash_["flowRight"])([// Limit to matching action type so we don't attempt to replace action on
 | ||
|  |   // an unhandled action.
 | ||
|  |   if_matching_action(function (action) { | ||
|  |     return action.name && action.kind && action.name === entityConfig.name && action.kind === entityConfig.kind; | ||
|  |   }), // Inject the entity config into the action.
 | ||
|  |   replace_action(function (action) { | ||
|  |     return Object(objectSpread["a" /* default */])({}, action, { | ||
|  |       key: entityConfig.key || DEFAULT_ENTITY_KEY | ||
|  |     }); | ||
|  |   })])(queried_data_reducer); | ||
|  | } | ||
|  | /** | ||
|  |  * Reducer keeping track of the registered entities. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Updated state. | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | function entitiesConfig() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultEntities; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  | 
 | ||
|  |   switch (action.type) { | ||
|  |     case 'ADD_ENTITIES': | ||
|  |       return Object(toConsumableArray["a" /* default */])(state).concat(Object(toConsumableArray["a" /* default */])(action.entities)); | ||
|  |   } | ||
|  | 
 | ||
|  |   return state; | ||
|  | } | ||
|  | /** | ||
|  |  * Reducer keeping track of the registered entities config and data. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Updated state. | ||
|  |  */ | ||
|  | 
 | ||
|  | var reducer_entities = function entities() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  |   var newConfig = entitiesConfig(state.config, action); // Generates a dynamic reducer for the entities
 | ||
|  | 
 | ||
|  |   var entitiesDataReducer = state.reducer; | ||
|  | 
 | ||
|  |   if (!entitiesDataReducer || newConfig !== state.config) { | ||
|  |     var entitiesByKind = Object(external_lodash_["groupBy"])(newConfig, 'kind'); | ||
|  |     entitiesDataReducer = Object(external_this_wp_data_["combineReducers"])(Object.entries(entitiesByKind).reduce(function (memo, _ref) { | ||
|  |       var _ref2 = Object(slicedToArray["a" /* default */])(_ref, 2), | ||
|  |           kind = _ref2[0], | ||
|  |           subEntities = _ref2[1]; | ||
|  | 
 | ||
|  |       var kindReducer = Object(external_this_wp_data_["combineReducers"])(subEntities.reduce(function (kindMemo, entityConfig) { | ||
|  |         return Object(objectSpread["a" /* default */])({}, kindMemo, Object(defineProperty["a" /* default */])({}, entityConfig.name, reducer_entity(entityConfig))); | ||
|  |       }, {})); | ||
|  |       memo[kind] = kindReducer; | ||
|  |       return memo; | ||
|  |     }, {})); | ||
|  |   } | ||
|  | 
 | ||
|  |   var newData = entitiesDataReducer(state.data, action); | ||
|  | 
 | ||
|  |   if (newData === state.data && newConfig === state.config && entitiesDataReducer === state.reducer) { | ||
|  |     return state; | ||
|  |   } | ||
|  | 
 | ||
|  |   return { | ||
|  |     reducer: entitiesDataReducer, | ||
|  |     data: newData, | ||
|  |     config: newConfig | ||
|  |   }; | ||
|  | }; | ||
|  | /** | ||
|  |  * Reducer managing embed preview data. | ||
|  |  * | ||
|  |  * @param {Object} state  Current state. | ||
|  |  * @param {Object} action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Updated state. | ||
|  |  */ | ||
|  | 
 | ||
|  | function embedPreviews() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  | 
 | ||
|  |   switch (action.type) { | ||
|  |     case 'RECEIVE_EMBED_PREVIEW': | ||
|  |       var url = action.url, | ||
|  |           preview = action.preview; | ||
|  |       return Object(objectSpread["a" /* default */])({}, state, Object(defineProperty["a" /* default */])({}, url, preview)); | ||
|  |   } | ||
|  | 
 | ||
|  |   return state; | ||
|  | } | ||
|  | /** | ||
|  |  * Reducer managing Upload permissions. | ||
|  |  * | ||
|  |  * @param  {Object}  state  Current state. | ||
|  |  * @param  {Object}  action Dispatched action. | ||
|  |  * | ||
|  |  * @return {Object} Updated state. | ||
|  |  */ | ||
|  | 
 | ||
|  | function hasUploadPermissions() { | ||
|  |   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; | ||
|  |   var action = arguments.length > 1 ? arguments[1] : undefined; | ||
|  | 
 | ||
|  |   switch (action.type) { | ||
|  |     case 'RECEIVE_UPLOAD_PERMISSIONS': | ||
|  |       return action.hasUploadPermissions; | ||
|  |   } | ||
|  | 
 | ||
|  |   return state; | ||
|  | } | ||
|  | /* harmony default export */ var build_module_reducer = (Object(external_this_wp_data_["combineReducers"])({ | ||
|  |   terms: terms, | ||
|  |   users: reducer_users, | ||
|  |   taxonomies: reducer_taxonomies, | ||
|  |   themeSupports: themeSupports, | ||
|  |   entities: reducer_entities, | ||
|  |   embedPreviews: embedPreviews, | ||
|  |   hasUploadPermissions: hasUploadPermissions | ||
|  | })); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/name.js
 | ||
|  | /** | ||
|  |  * The reducer key used by core data in store registration. | ||
|  |  * This is defined in a separate file to avoid cycle-dependency | ||
|  |  * | ||
|  |  * @type {string} | ||
|  |  */ | ||
|  | var REDUCER_KEY = 'core'; | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/selectors.js
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Returns true if resolution is in progress for the core selector of the given | ||
|  |  * name and arguments. | ||
|  |  * | ||
|  |  * @param {string} selectorName Core data selector name. | ||
|  |  * @param {...*}   args         Arguments passed to selector. | ||
|  |  * | ||
|  |  * @return {boolean} Whether resolution is in progress. | ||
|  |  */ | ||
|  | 
 | ||
|  | function isResolving(selectorName) { | ||
|  |   for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
|  |     args[_key - 1] = arguments[_key]; | ||
|  |   } | ||
|  | 
 | ||
|  |   return Object(external_this_wp_data_["select"])('core/data').isResolving(REDUCER_KEY, selectorName, args); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns true if a request is in progress for embed preview data, or false | ||
|  |  * otherwise. | ||
|  |  * | ||
|  |  * @param {Object} state Data state. | ||
|  |  * @param {string} url   URL the preview would be for. | ||
|  |  * | ||
|  |  * @return {boolean} Whether a request is in progress for an embed preview. | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | function isRequestingEmbedPreview(state, url) { | ||
|  |   return isResolving('getEmbedPreview', url); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns all available authors. | ||
|  |  * | ||
|  |  * @param {Object} state Data state. | ||
|  |  * | ||
|  |  * @return {Array} Authors list. | ||
|  |  */ | ||
|  | 
 | ||
|  | function getAuthors(state) { | ||
|  |   return getUserQueryResults(state, 'authors'); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns all the users returned by a query ID. | ||
|  |  * | ||
|  |  * @param {Object} state   Data state. | ||
|  |  * @param {string} queryID Query ID. | ||
|  |  * | ||
|  |  * @return {Array} Users list. | ||
|  |  */ | ||
|  | 
 | ||
|  | var getUserQueryResults = Object(rememo["a" /* default */])(function (state, queryID) { | ||
|  |   var queryResults = state.users.queries[queryID]; | ||
|  |   return Object(external_lodash_["map"])(queryResults, function (id) { | ||
|  |     return state.users.byId[id]; | ||
|  |   }); | ||
|  | }, function (state, queryID) { | ||
|  |   return [state.users.queries[queryID], state.users.byId]; | ||
|  | }); | ||
|  | /** | ||
|  |  * Returns whether the entities for the give kind are loaded. | ||
|  |  * | ||
|  |  * @param {Object} state   Data state. | ||
|  |  * @param {string} kind  Entity kind. | ||
|  |  * | ||
|  |  * @return {boolean} Whether the entities are loaded | ||
|  |  */ | ||
|  | 
 | ||
|  | function getEntitiesByKind(state, kind) { | ||
|  |   return Object(external_lodash_["filter"])(state.entities.config, { | ||
|  |     kind: kind | ||
|  |   }); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns the entity object given its kind and name. | ||
|  |  * | ||
|  |  * @param {Object} state   Data state. | ||
|  |  * @param {string} kind  Entity kind. | ||
|  |  * @param {string} name  Entity name. | ||
|  |  * | ||
|  |  * @return {Object} Entity | ||
|  |  */ | ||
|  | 
 | ||
|  | function getEntity(state, kind, name) { | ||
|  |   return Object(external_lodash_["find"])(state.entities.config, { | ||
|  |     kind: kind, | ||
|  |     name: name | ||
|  |   }); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns the Entity's record object by key. | ||
|  |  * | ||
|  |  * @param {Object} state  State tree | ||
|  |  * @param {string} kind   Entity kind. | ||
|  |  * @param {string} name   Entity name. | ||
|  |  * @param {number} key    Record's key | ||
|  |  * | ||
|  |  * @return {Object?} Record. | ||
|  |  */ | ||
|  | 
 | ||
|  | function getEntityRecord(state, kind, name, key) { | ||
|  |   return Object(external_lodash_["get"])(state.entities.data, [kind, name, 'items', key]); | ||
|  | } | ||
|  | /** | ||
|  |  * Returns the Entity's records. | ||
|  |  * | ||
|  |  * @param {Object}  state  State tree | ||
|  |  * @param {string}  kind   Entity kind. | ||
|  |  * @param {string}  name   Entity name. | ||
|  |  * @param {?Object} query  Optional terms query. | ||
|  |  * | ||
|  |  * @return {Array} Records. | ||
|  |  */ | ||
|  | 
 | ||
|  | function getEntityRecords(state, kind, name, query) { | ||
|  |   var queriedState = Object(external_lodash_["get"])(state.entities.data, [kind, name]); | ||
|  | 
 | ||
|  |   if (!queriedState) { | ||
|  |     return []; | ||
|  |   } | ||
|  | 
 | ||
|  |   return getQueriedItems(queriedState, query); | ||
|  | } | ||
|  | /** | ||
|  |  * Return theme supports data in the index. | ||
|  |  * | ||
|  |  * @param {Object} state Data state. | ||
|  |  * | ||
|  |  * @return {*}           Index data. | ||
|  |  */ | ||
|  | 
 | ||
|  | function getThemeSupports(state) { | ||
|  |   return state.themeSupports; | ||
|  | } | ||
|  | /** | ||
|  |  * Returns the embed preview for the given URL. | ||
|  |  * | ||
|  |  * @param {Object} state    Data state. | ||
|  |  * @param {string} url      Embedded URL. | ||
|  |  * | ||
|  |  * @return {*} Undefined if the preview has not been fetched, otherwise, the preview fetched from the embed preview API. | ||
|  |  */ | ||
|  | 
 | ||
|  | function getEmbedPreview(state, url) { | ||
|  |   return state.embedPreviews[url]; | ||
|  | } | ||
|  | /** | ||
|  |  * Determines if the returned preview is an oEmbed link fallback. | ||
|  |  * | ||
|  |  * WordPress can be configured to return a simple link to a URL if it is not embeddable. | ||
|  |  * We need to be able to determine if a URL is embeddable or not, based on what we | ||
|  |  * get back from the oEmbed preview API. | ||
|  |  * | ||
|  |  * @param {Object} state    Data state. | ||
|  |  * @param {string} url      Embedded URL. | ||
|  |  * | ||
|  |  * @return {booleans} Is the preview for the URL an oEmbed link fallback. | ||
|  |  */ | ||
|  | 
 | ||
|  | function isPreviewEmbedFallback(state, url) { | ||
|  |   var preview = state.embedPreviews[url]; | ||
|  |   var oEmbedLinkCheck = '<a href="' + url + '">' + url + '</a>'; | ||
|  | 
 | ||
|  |   if (!preview) { | ||
|  |     return false; | ||
|  |   } | ||
|  | 
 | ||
|  |   return preview.html === oEmbedLinkCheck; | ||
|  | } | ||
|  | /** | ||
|  |  * Return Upload Permissions. | ||
|  |  * | ||
|  |  * @param  {Object}  state State tree. | ||
|  |  * | ||
|  |  * @return {boolean} Upload Permissions. | ||
|  |  */ | ||
|  | 
 | ||
|  | function selectors_hasUploadPermissions(state) { | ||
|  |   return state.hasUploadPermissions; | ||
|  | } | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/resolvers.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | var resolvers_marked = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(resolvers_getAuthors), | ||
|  |     resolvers_marked2 = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(resolvers_getEntityRecord), | ||
|  |     resolvers_marked3 = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(resolvers_getEntityRecords), | ||
|  |     _marked4 = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(resolvers_getThemeSupports), | ||
|  |     _marked5 = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(resolvers_getEmbedPreview), | ||
|  |     _marked6 = | ||
|  | /*#__PURE__*/ | ||
|  | regeneratorRuntime.mark(resolvers_hasUploadPermissions); | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Requests authors from the REST API. | ||
|  |  */ | ||
|  | 
 | ||
|  | function resolvers_getAuthors() { | ||
|  |   var users; | ||
|  |   return regeneratorRuntime.wrap(function getAuthors$(_context) { | ||
|  |     while (1) { | ||
|  |       switch (_context.prev = _context.next) { | ||
|  |         case 0: | ||
|  |           _context.next = 2; | ||
|  |           return apiFetch({ | ||
|  |             path: '/wp/v2/users/?who=authors&per_page=-1' | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 2: | ||
|  |           users = _context.sent; | ||
|  |           _context.next = 5; | ||
|  |           return receiveUserQuery('authors', users); | ||
|  | 
 | ||
|  |         case 5: | ||
|  |         case "end": | ||
|  |           return _context.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, resolvers_marked, this); | ||
|  | } | ||
|  | /** | ||
|  |  * Requests an entity's record from the REST API. | ||
|  |  * | ||
|  |  * @param {string} kind   Entity kind. | ||
|  |  * @param {string} name   Entity name. | ||
|  |  * @param {number} key    Record's key | ||
|  |  */ | ||
|  | 
 | ||
|  | function resolvers_getEntityRecord(kind, name, key) { | ||
|  |   var entities, entity, record; | ||
|  |   return regeneratorRuntime.wrap(function getEntityRecord$(_context2) { | ||
|  |     while (1) { | ||
|  |       switch (_context2.prev = _context2.next) { | ||
|  |         case 0: | ||
|  |           _context2.next = 2; | ||
|  |           return getKindEntities(kind); | ||
|  | 
 | ||
|  |         case 2: | ||
|  |           entities = _context2.sent; | ||
|  |           entity = Object(external_lodash_["find"])(entities, { | ||
|  |             kind: kind, | ||
|  |             name: name | ||
|  |           }); | ||
|  | 
 | ||
|  |           if (entity) { | ||
|  |             _context2.next = 6; | ||
|  |             break; | ||
|  |           } | ||
|  | 
 | ||
|  |           return _context2.abrupt("return"); | ||
|  | 
 | ||
|  |         case 6: | ||
|  |           _context2.next = 8; | ||
|  |           return apiFetch({ | ||
|  |             path: "".concat(entity.baseURL, "/").concat(key, "?context=edit") | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 8: | ||
|  |           record = _context2.sent; | ||
|  |           _context2.next = 11; | ||
|  |           return receiveEntityRecords(kind, name, record); | ||
|  | 
 | ||
|  |         case 11: | ||
|  |         case "end": | ||
|  |           return _context2.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, resolvers_marked2, this); | ||
|  | } | ||
|  | /** | ||
|  |  * Requests the entity's records from the REST API. | ||
|  |  * | ||
|  |  * @param {string}  kind   Entity kind. | ||
|  |  * @param {string}  name   Entity name. | ||
|  |  * @param {Object?} query  Query Object. | ||
|  |  */ | ||
|  | 
 | ||
|  | function resolvers_getEntityRecords(kind, name) { | ||
|  |   var query, | ||
|  |       entities, | ||
|  |       entity, | ||
|  |       path, | ||
|  |       records, | ||
|  |       _args3 = arguments; | ||
|  |   return regeneratorRuntime.wrap(function getEntityRecords$(_context3) { | ||
|  |     while (1) { | ||
|  |       switch (_context3.prev = _context3.next) { | ||
|  |         case 0: | ||
|  |           query = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {}; | ||
|  |           _context3.next = 3; | ||
|  |           return getKindEntities(kind); | ||
|  | 
 | ||
|  |         case 3: | ||
|  |           entities = _context3.sent; | ||
|  |           entity = Object(external_lodash_["find"])(entities, { | ||
|  |             kind: kind, | ||
|  |             name: name | ||
|  |           }); | ||
|  | 
 | ||
|  |           if (entity) { | ||
|  |             _context3.next = 7; | ||
|  |             break; | ||
|  |           } | ||
|  | 
 | ||
|  |           return _context3.abrupt("return"); | ||
|  | 
 | ||
|  |         case 7: | ||
|  |           path = Object(external_this_wp_url_["addQueryArgs"])(entity.baseURL, Object(objectSpread["a" /* default */])({}, query, { | ||
|  |             context: 'edit' | ||
|  |           })); | ||
|  |           _context3.next = 10; | ||
|  |           return apiFetch({ | ||
|  |             path: path | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 10: | ||
|  |           records = _context3.sent; | ||
|  |           _context3.next = 13; | ||
|  |           return receiveEntityRecords(kind, name, Object.values(records), query); | ||
|  | 
 | ||
|  |         case 13: | ||
|  |         case "end": | ||
|  |           return _context3.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, resolvers_marked3, this); | ||
|  | } | ||
|  | 
 | ||
|  | resolvers_getEntityRecords.shouldInvalidate = function (action, kind, name) { | ||
|  |   return action.type === 'RECEIVE_ITEMS' && action.invalidateCache && kind === action.kind && name === action.name; | ||
|  | }; | ||
|  | /** | ||
|  |  * Requests theme supports data from the index. | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | function resolvers_getThemeSupports() { | ||
|  |   var activeThemes; | ||
|  |   return regeneratorRuntime.wrap(function getThemeSupports$(_context4) { | ||
|  |     while (1) { | ||
|  |       switch (_context4.prev = _context4.next) { | ||
|  |         case 0: | ||
|  |           _context4.next = 2; | ||
|  |           return apiFetch({ | ||
|  |             path: '/wp/v2/themes?status=active' | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 2: | ||
|  |           activeThemes = _context4.sent; | ||
|  |           _context4.next = 5; | ||
|  |           return receiveThemeSupports(activeThemes[0].theme_supports); | ||
|  | 
 | ||
|  |         case 5: | ||
|  |         case "end": | ||
|  |           return _context4.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, _marked4, this); | ||
|  | } | ||
|  | /** | ||
|  |  * Requests a preview from the from the Embed API. | ||
|  |  * | ||
|  |  * @param {string} url   URL to get the preview for. | ||
|  |  */ | ||
|  | 
 | ||
|  | function resolvers_getEmbedPreview(url) { | ||
|  |   var embedProxyResponse; | ||
|  |   return regeneratorRuntime.wrap(function getEmbedPreview$(_context5) { | ||
|  |     while (1) { | ||
|  |       switch (_context5.prev = _context5.next) { | ||
|  |         case 0: | ||
|  |           _context5.prev = 0; | ||
|  |           _context5.next = 3; | ||
|  |           return apiFetch({ | ||
|  |             path: Object(external_this_wp_url_["addQueryArgs"])('/oembed/1.0/proxy', { | ||
|  |               url: url | ||
|  |             }) | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 3: | ||
|  |           embedProxyResponse = _context5.sent; | ||
|  |           _context5.next = 6; | ||
|  |           return receiveEmbedPreview(url, embedProxyResponse); | ||
|  | 
 | ||
|  |         case 6: | ||
|  |           _context5.next = 12; | ||
|  |           break; | ||
|  | 
 | ||
|  |         case 8: | ||
|  |           _context5.prev = 8; | ||
|  |           _context5.t0 = _context5["catch"](0); | ||
|  |           _context5.next = 12; | ||
|  |           return receiveEmbedPreview(url, false); | ||
|  | 
 | ||
|  |         case 12: | ||
|  |         case "end": | ||
|  |           return _context5.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, _marked5, this, [[0, 8]]); | ||
|  | } | ||
|  | /** | ||
|  |  * Requests Upload Permissions from the REST API. | ||
|  |  */ | ||
|  | 
 | ||
|  | function resolvers_hasUploadPermissions() { | ||
|  |   var response, allowHeader; | ||
|  |   return regeneratorRuntime.wrap(function hasUploadPermissions$(_context6) { | ||
|  |     while (1) { | ||
|  |       switch (_context6.prev = _context6.next) { | ||
|  |         case 0: | ||
|  |           _context6.next = 2; | ||
|  |           return apiFetch({ | ||
|  |             path: '/wp/v2/media', | ||
|  |             method: 'OPTIONS', | ||
|  |             parse: false | ||
|  |           }); | ||
|  | 
 | ||
|  |         case 2: | ||
|  |           response = _context6.sent; | ||
|  | 
 | ||
|  |           if (Object(external_lodash_["hasIn"])(response, ['headers', 'get'])) { | ||
|  |             // If the request is fetched using the fetch api, the header can be
 | ||
|  |             // retrieved using the 'get' method.
 | ||
|  |             allowHeader = response.headers.get('allow'); | ||
|  |           } else { | ||
|  |             // If the request was preloaded server-side and is returned by the
 | ||
|  |             // preloading middleware, the header will be a simple property.
 | ||
|  |             allowHeader = Object(external_lodash_["get"])(response, ['headers', 'Allow'], ''); | ||
|  |           } | ||
|  | 
 | ||
|  |           _context6.next = 6; | ||
|  |           return receiveUploadPermissions(Object(external_lodash_["includes"])(allowHeader, 'POST')); | ||
|  | 
 | ||
|  |         case 6: | ||
|  |         case "end": | ||
|  |           return _context6.stop(); | ||
|  |       } | ||
|  |     } | ||
|  |   }, _marked6, this); | ||
|  | } | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/index.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |  // The entity selectors/resolvers and actions are shortcuts to their generic equivalents
 | ||
|  | // (getEntityRecord, getEntityRecords, updateEntityRecord, updateEntityRecordss)
 | ||
|  | // Instead of getEntityRecord, the consumer could use more user-frieldly named selector: getPostType, getTaxonomy...
 | ||
|  | // The "kind" and the "name" of the entity are combined to generate these shortcuts.
 | ||
|  | 
 | ||
|  | var entitySelectors = defaultEntities.reduce(function (result, entity) { | ||
|  |   var kind = entity.kind, | ||
|  |       name = entity.name; | ||
|  | 
 | ||
|  |   result[entities_getMethodName(kind, name)] = function (state, key) { | ||
|  |     return getEntityRecord(state, kind, name, key); | ||
|  |   }; | ||
|  | 
 | ||
|  |   result[entities_getMethodName(kind, name, 'get', true)] = function (state) { | ||
|  |     for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
|  |       args[_key - 1] = arguments[_key]; | ||
|  |     } | ||
|  | 
 | ||
|  |     return getEntityRecords.apply(build_module_selectors_namespaceObject, [state, kind, name].concat(args)); | ||
|  |   }; | ||
|  | 
 | ||
|  |   return result; | ||
|  | }, {}); | ||
|  | var entityResolvers = defaultEntities.reduce(function (result, entity) { | ||
|  |   var kind = entity.kind, | ||
|  |       name = entity.name; | ||
|  | 
 | ||
|  |   result[entities_getMethodName(kind, name)] = function (key) { | ||
|  |     return resolvers_getEntityRecord(kind, name, key); | ||
|  |   }; | ||
|  | 
 | ||
|  |   var pluralMethodName = entities_getMethodName(kind, name, 'get', true); | ||
|  | 
 | ||
|  |   result[pluralMethodName] = function () { | ||
|  |     for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
|  |       args[_key2] = arguments[_key2]; | ||
|  |     } | ||
|  | 
 | ||
|  |     return resolvers_getEntityRecords.apply(resolvers_namespaceObject, [kind, name].concat(args)); | ||
|  |   }; | ||
|  | 
 | ||
|  |   result[pluralMethodName].shouldInvalidate = function (action) { | ||
|  |     var _resolvers$getEntityR; | ||
|  | 
 | ||
|  |     for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { | ||
|  |       args[_key3 - 1] = arguments[_key3]; | ||
|  |     } | ||
|  | 
 | ||
|  |     return (_resolvers$getEntityR = resolvers_getEntityRecords).shouldInvalidate.apply(_resolvers$getEntityR, [action, kind, name].concat(args)); | ||
|  |   }; | ||
|  | 
 | ||
|  |   return result; | ||
|  | }, {}); | ||
|  | var entityActions = defaultEntities.reduce(function (result, entity) { | ||
|  |   var kind = entity.kind, | ||
|  |       name = entity.name; | ||
|  | 
 | ||
|  |   result[entities_getMethodName(kind, name, 'save')] = function (key) { | ||
|  |     return saveEntityRecord(kind, name, key); | ||
|  |   }; | ||
|  | 
 | ||
|  |   return result; | ||
|  | }, {}); | ||
|  | Object(external_this_wp_data_["registerStore"])(REDUCER_KEY, { | ||
|  |   reducer: build_module_reducer, | ||
|  |   controls: build_module_controls, | ||
|  |   actions: Object(objectSpread["a" /* default */])({}, build_module_actions_namespaceObject, entityActions), | ||
|  |   selectors: Object(objectSpread["a" /* default */])({}, build_module_selectors_namespaceObject, entitySelectors), | ||
|  |   resolvers: Object(objectSpread["a" /* default */])({}, resolvers_namespaceObject, entityResolvers) | ||
|  | }); | ||
|  | 
 | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 31: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | 
 | ||
|  | var LEAF_KEY, hasWeakMap; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Arbitrary value used as key for referencing cache object in WeakMap tree. | ||
|  |  * | ||
|  |  * @type {Object} | ||
|  |  */ | ||
|  | LEAF_KEY = {}; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Whether environment supports WeakMap. | ||
|  |  * | ||
|  |  * @type {boolean} | ||
|  |  */ | ||
|  | hasWeakMap = typeof WeakMap !== 'undefined'; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Returns the first argument as the sole entry in an array. | ||
|  |  * | ||
|  |  * @param {*} value Value to return. | ||
|  |  * | ||
|  |  * @return {Array} Value returned as entry in array. | ||
|  |  */ | ||
|  | function arrayOf( value ) { | ||
|  | 	return [ value ]; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Returns true if the value passed is object-like, or false otherwise. A value | ||
|  |  * is object-like if it can support property assignment, e.g. object or array. | ||
|  |  * | ||
|  |  * @param {*} value Value to test. | ||
|  |  * | ||
|  |  * @return {boolean} Whether value is object-like. | ||
|  |  */ | ||
|  | function isObjectLike( value ) { | ||
|  | 	return !! value && 'object' === typeof value; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Creates and returns a new cache object. | ||
|  |  * | ||
|  |  * @return {Object} Cache object. | ||
|  |  */ | ||
|  | function createCache() { | ||
|  | 	var cache = { | ||
|  | 		clear: function() { | ||
|  | 			cache.head = null; | ||
|  | 		}, | ||
|  | 	}; | ||
|  | 
 | ||
|  | 	return cache; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Returns true if entries within the two arrays are strictly equal by | ||
|  |  * reference from a starting index. | ||
|  |  * | ||
|  |  * @param {Array}  a         First array. | ||
|  |  * @param {Array}  b         Second array. | ||
|  |  * @param {number} fromIndex Index from which to start comparison. | ||
|  |  * | ||
|  |  * @return {boolean} Whether arrays are shallowly equal. | ||
|  |  */ | ||
|  | function isShallowEqual( a, b, fromIndex ) { | ||
|  | 	var i; | ||
|  | 
 | ||
|  | 	if ( a.length !== b.length ) { | ||
|  | 		return false; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	for ( i = fromIndex; i < a.length; i++ ) { | ||
|  | 		if ( a[ i ] !== b[ i ] ) { | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return true; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Returns a memoized selector function. The getDependants function argument is | ||
|  |  * called before the memoized selector and is expected to return an immutable | ||
|  |  * reference or array of references on which the selector depends for computing | ||
|  |  * its own return value. The memoize cache is preserved only as long as those | ||
|  |  * dependant references remain the same. If getDependants returns a different | ||
|  |  * reference(s), the cache is cleared and the selector value regenerated. | ||
|  |  * | ||
|  |  * @param {Function} selector      Selector function. | ||
|  |  * @param {Function} getDependants Dependant getter returning an immutable | ||
|  |  *                                 reference or array of reference used in | ||
|  |  *                                 cache bust consideration. | ||
|  |  * | ||
|  |  * @return {Function} Memoized selector. | ||
|  |  */ | ||
|  | /* harmony default export */ __webpack_exports__["a"] = (function( selector, getDependants ) { | ||
|  | 	var rootCache, getCache; | ||
|  | 
 | ||
|  | 	// Use object source as dependant if getter not provided
 | ||
|  | 	if ( ! getDependants ) { | ||
|  | 		getDependants = arrayOf; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Returns the root cache. If WeakMap is supported, this is assigned to the | ||
|  | 	 * root WeakMap cache set, otherwise it is a shared instance of the default | ||
|  | 	 * cache object. | ||
|  | 	 * | ||
|  | 	 * @return {(WeakMap|Object)} Root cache object. | ||
|  | 	 */ | ||
|  | 	function getRootCache() { | ||
|  | 		return rootCache; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Returns the cache for a given dependants array. When possible, a WeakMap | ||
|  | 	 * will be used to create a unique cache for each set of dependants. This | ||
|  | 	 * is feasible due to the nature of WeakMap in allowing garbage collection | ||
|  | 	 * to occur on entries where the key object is no longer referenced. Since | ||
|  | 	 * WeakMap requires the key to be an object, this is only possible when the | ||
|  | 	 * dependant is object-like. The root cache is created as a hierarchy where | ||
|  | 	 * each top-level key is the first entry in a dependants set, the value a | ||
|  | 	 * WeakMap where each key is the next dependant, and so on. This continues | ||
|  | 	 * so long as the dependants are object-like. If no dependants are object- | ||
|  | 	 * like, then the cache is shared across all invocations. | ||
|  | 	 * | ||
|  | 	 * @see isObjectLike | ||
|  | 	 * | ||
|  | 	 * @param {Array} dependants Selector dependants. | ||
|  | 	 * | ||
|  | 	 * @return {Object} Cache object. | ||
|  | 	 */ | ||
|  | 	function getWeakMapCache( dependants ) { | ||
|  | 		var caches = rootCache, | ||
|  | 			isUniqueByDependants = true, | ||
|  | 			i, dependant, map, cache; | ||
|  | 
 | ||
|  | 		for ( i = 0; i < dependants.length; i++ ) { | ||
|  | 			dependant = dependants[ i ]; | ||
|  | 
 | ||
|  | 			// Can only compose WeakMap from object-like key.
 | ||
|  | 			if ( ! isObjectLike( dependant ) ) { | ||
|  | 				isUniqueByDependants = false; | ||
|  | 				break; | ||
|  | 			} | ||
|  | 
 | ||
|  | 			// Does current segment of cache already have a WeakMap?
 | ||
|  | 			if ( caches.has( dependant ) ) { | ||
|  | 				// Traverse into nested WeakMap.
 | ||
|  | 				caches = caches.get( dependant ); | ||
|  | 			} else { | ||
|  | 				// Create, set, and traverse into a new one.
 | ||
|  | 				map = new WeakMap(); | ||
|  | 				caches.set( dependant, map ); | ||
|  | 				caches = map; | ||
|  | 			} | ||
|  | 		} | ||
|  | 
 | ||
|  | 		// We use an arbitrary (but consistent) object as key for the last item
 | ||
|  | 		// in the WeakMap to serve as our running cache.
 | ||
|  | 		if ( ! caches.has( LEAF_KEY ) ) { | ||
|  | 			cache = createCache(); | ||
|  | 			cache.isUniqueByDependants = isUniqueByDependants; | ||
|  | 			caches.set( LEAF_KEY, cache ); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return caches.get( LEAF_KEY ); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// Assign cache handler by availability of WeakMap
 | ||
|  | 	getCache = hasWeakMap ? getWeakMapCache : getRootCache; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 	 * Resets root memoization cache. | ||
|  | 	 */ | ||
|  | 	function clear() { | ||
|  | 		rootCache = hasWeakMap ? new WeakMap() : createCache(); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// eslint-disable-next-line jsdoc/check-param-names
 | ||
|  | 	/** | ||
|  | 	 * The augmented selector call, considering first whether dependants have | ||
|  | 	 * changed before passing it to underlying memoize function. | ||
|  | 	 * | ||
|  | 	 * @param {Object} source    Source object for derivation. | ||
|  | 	 * @param {...*}   extraArgs Additional arguments to pass to selector. | ||
|  | 	 * | ||
|  | 	 * @return {*} Selector result. | ||
|  | 	 */ | ||
|  | 	function callSelector( /* source, ...extraArgs */ ) { | ||
|  | 		var len = arguments.length, | ||
|  | 			cache, node, i, args, dependants; | ||
|  | 
 | ||
|  | 		// Create copy of arguments (avoid leaking deoptimization).
 | ||
|  | 		args = new Array( len ); | ||
|  | 		for ( i = 0; i < len; i++ ) { | ||
|  | 			args[ i ] = arguments[ i ]; | ||
|  | 		} | ||
|  | 
 | ||
|  | 		dependants = getDependants.apply( null, args ); | ||
|  | 		cache = getCache( dependants ); | ||
|  | 
 | ||
|  | 		// If not guaranteed uniqueness by dependants (primitive type or lack
 | ||
|  | 		// of WeakMap support), shallow compare against last dependants and, if
 | ||
|  | 		// references have changed, destroy cache to recalculate result.
 | ||
|  | 		if ( ! cache.isUniqueByDependants ) { | ||
|  | 			if ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) { | ||
|  | 				cache.clear(); | ||
|  | 			} | ||
|  | 
 | ||
|  | 			cache.lastDependants = dependants; | ||
|  | 		} | ||
|  | 
 | ||
|  | 		node = cache.head; | ||
|  | 		while ( node ) { | ||
|  | 			// Check whether node arguments match arguments
 | ||
|  | 			if ( ! isShallowEqual( node.args, args, 1 ) ) { | ||
|  | 				node = node.next; | ||
|  | 				continue; | ||
|  | 			} | ||
|  | 
 | ||
|  | 			// At this point we can assume we've found a match
 | ||
|  | 
 | ||
|  | 			// Surface matched node to head if not already
 | ||
|  | 			if ( node !== cache.head ) { | ||
|  | 				// Adjust siblings to point to each other.
 | ||
|  | 				node.prev.next = node.next; | ||
|  | 				if ( node.next ) { | ||
|  | 					node.next.prev = node.prev; | ||
|  | 				} | ||
|  | 
 | ||
|  | 				node.next = cache.head; | ||
|  | 				node.prev = null; | ||
|  | 				cache.head.prev = node; | ||
|  | 				cache.head = node; | ||
|  | 			} | ||
|  | 
 | ||
|  | 			// Return immediately
 | ||
|  | 			return node.val; | ||
|  | 		} | ||
|  | 
 | ||
|  | 		// No cached value found. Continue to insertion phase:
 | ||
|  | 
 | ||
|  | 		node = { | ||
|  | 			// Generate the result from original function
 | ||
|  | 			val: selector.apply( null, args ), | ||
|  | 		}; | ||
|  | 
 | ||
|  | 		// Avoid including the source object in the cache.
 | ||
|  | 		args[ 0 ] = null; | ||
|  | 		node.args = args; | ||
|  | 
 | ||
|  | 		// Don't need to check whether node is already head, since it would
 | ||
|  | 		// have been returned above already if it was
 | ||
|  | 
 | ||
|  | 		// Shift existing head down list
 | ||
|  | 		if ( cache.head ) { | ||
|  | 			cache.head.prev = node; | ||
|  | 			node.next = cache.head; | ||
|  | 		} | ||
|  | 
 | ||
|  | 		cache.head = node; | ||
|  | 
 | ||
|  | 		return node.val; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	callSelector.getDependants = getDependants; | ||
|  | 	callSelector.clear = clear; | ||
|  | 	clear(); | ||
|  | 
 | ||
|  | 	return callSelector; | ||
|  | }); | ||
|  | 
 | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 33: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; }); | ||
|  | function _iterableToArray(iter) { | ||
|  |   if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 35: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayWithHoles; }); | ||
|  | function _arrayWithHoles(arr) { | ||
|  |   if (Array.isArray(arr)) return arr; | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 36: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _nonIterableRest; }); | ||
|  | function _nonIterableRest() { | ||
|  |   throw new TypeError("Invalid attempt to destructure non-iterable instance"); | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 5: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["wp"]["data"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 51: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | var g; | ||
|  | 
 | ||
|  | // This works in non-strict mode
 | ||
|  | g = (function() { | ||
|  | 	return this; | ||
|  | })(); | ||
|  | 
 | ||
|  | try { | ||
|  | 	// This works if eval is allowed (see CSP)
 | ||
|  | 	g = g || Function("return this")() || (1, eval)("this"); | ||
|  | } catch (e) { | ||
|  | 	// This works if the window reference is available
 | ||
|  | 	if (typeof window === "object") g = window; | ||
|  | } | ||
|  | 
 | ||
|  | // g can still be undefined, but nothing to do about it...
 | ||
|  | // We return undefined, instead of nothing here, so it's
 | ||
|  | // easier to handle this case. if(!global) { ...}
 | ||
|  | 
 | ||
|  | module.exports = g; | ||
|  | 
 | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 62: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return createStore; }); | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return combineReducers; }); | ||
|  | /* unused harmony export bindActionCreators */ | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return applyMiddleware; }); | ||
|  | /* unused harmony export compose */ | ||
|  | /* unused harmony export __DO_NOT_USE__ActionTypes */ | ||
|  | /* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67); | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * These are private action types reserved by Redux. | ||
|  |  * For any unknown actions, you must return the current state. | ||
|  |  * If the current state is undefined, you must return the initial state. | ||
|  |  * Do not reference these action types directly in your code. | ||
|  |  */ | ||
|  | var randomString = function randomString() { | ||
|  |   return Math.random().toString(36).substring(7).split('').join('.'); | ||
|  | }; | ||
|  | 
 | ||
|  | var ActionTypes = { | ||
|  |   INIT: "@@redux/INIT" + randomString(), | ||
|  |   REPLACE: "@@redux/REPLACE" + randomString(), | ||
|  |   PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() { | ||
|  |     return "@@redux/PROBE_UNKNOWN_ACTION" + randomString(); | ||
|  |   } | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * @param {any} obj The object to inspect. | ||
|  |  * @returns {boolean} True if the argument appears to be a plain object. | ||
|  |  */ | ||
|  | function isPlainObject(obj) { | ||
|  |   if (typeof obj !== 'object' || obj === null) return false; | ||
|  |   var proto = obj; | ||
|  | 
 | ||
|  |   while (Object.getPrototypeOf(proto) !== null) { | ||
|  |     proto = Object.getPrototypeOf(proto); | ||
|  |   } | ||
|  | 
 | ||
|  |   return Object.getPrototypeOf(obj) === proto; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Creates a Redux store that holds the state tree. | ||
|  |  * The only way to change the data in the store is to call `dispatch()` on it. | ||
|  |  * | ||
|  |  * There should only be a single store in your app. To specify how different | ||
|  |  * parts of the state tree respond to actions, you may combine several reducers | ||
|  |  * into a single reducer function by using `combineReducers`. | ||
|  |  * | ||
|  |  * @param {Function} reducer A function that returns the next state tree, given | ||
|  |  * the current state tree and the action to handle. | ||
|  |  * | ||
|  |  * @param {any} [preloadedState] The initial state. You may optionally specify it | ||
|  |  * to hydrate the state from the server in universal apps, or to restore a | ||
|  |  * previously serialized user session. | ||
|  |  * If you use `combineReducers` to produce the root reducer function, this must be | ||
|  |  * an object with the same shape as `combineReducers` keys. | ||
|  |  * | ||
|  |  * @param {Function} [enhancer] The store enhancer. You may optionally specify it | ||
|  |  * to enhance the store with third-party capabilities such as middleware, | ||
|  |  * time travel, persistence, etc. The only store enhancer that ships with Redux | ||
|  |  * is `applyMiddleware()`. | ||
|  |  * | ||
|  |  * @returns {Store} A Redux store that lets you read the state, dispatch actions | ||
|  |  * and subscribe to changes. | ||
|  |  */ | ||
|  | 
 | ||
|  | function createStore(reducer, preloadedState, enhancer) { | ||
|  |   var _ref2; | ||
|  | 
 | ||
|  |   if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') { | ||
|  |     throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function'); | ||
|  |   } | ||
|  | 
 | ||
|  |   if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { | ||
|  |     enhancer = preloadedState; | ||
|  |     preloadedState = undefined; | ||
|  |   } | ||
|  | 
 | ||
|  |   if (typeof enhancer !== 'undefined') { | ||
|  |     if (typeof enhancer !== 'function') { | ||
|  |       throw new Error('Expected the enhancer to be a function.'); | ||
|  |     } | ||
|  | 
 | ||
|  |     return enhancer(createStore)(reducer, preloadedState); | ||
|  |   } | ||
|  | 
 | ||
|  |   if (typeof reducer !== 'function') { | ||
|  |     throw new Error('Expected the reducer to be a function.'); | ||
|  |   } | ||
|  | 
 | ||
|  |   var currentReducer = reducer; | ||
|  |   var currentState = preloadedState; | ||
|  |   var currentListeners = []; | ||
|  |   var nextListeners = currentListeners; | ||
|  |   var isDispatching = false; | ||
|  | 
 | ||
|  |   function ensureCanMutateNextListeners() { | ||
|  |     if (nextListeners === currentListeners) { | ||
|  |       nextListeners = currentListeners.slice(); | ||
|  |     } | ||
|  |   } | ||
|  |   /** | ||
|  |    * Reads the state tree managed by the store. | ||
|  |    * | ||
|  |    * @returns {any} The current state tree of your application. | ||
|  |    */ | ||
|  | 
 | ||
|  | 
 | ||
|  |   function getState() { | ||
|  |     if (isDispatching) { | ||
|  |       throw new Error('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.'); | ||
|  |     } | ||
|  | 
 | ||
|  |     return currentState; | ||
|  |   } | ||
|  |   /** | ||
|  |    * Adds a change listener. It will be called any time an action is dispatched, | ||
|  |    * and some part of the state tree may potentially have changed. You may then | ||
|  |    * call `getState()` to read the current state tree inside the callback. | ||
|  |    * | ||
|  |    * You may call `dispatch()` from a change listener, with the following | ||
|  |    * caveats: | ||
|  |    * | ||
|  |    * 1. The subscriptions are snapshotted just before every `dispatch()` call. | ||
|  |    * If you subscribe or unsubscribe while the listeners are being invoked, this | ||
|  |    * will not have any effect on the `dispatch()` that is currently in progress. | ||
|  |    * However, the next `dispatch()` call, whether nested or not, will use a more | ||
|  |    * recent snapshot of the subscription list. | ||
|  |    * | ||
|  |    * 2. The listener should not expect to see all state changes, as the state | ||
|  |    * might have been updated multiple times during a nested `dispatch()` before | ||
|  |    * the listener is called. It is, however, guaranteed that all subscribers | ||
|  |    * registered before the `dispatch()` started will be called with the latest | ||
|  |    * state by the time it exits. | ||
|  |    * | ||
|  |    * @param {Function} listener A callback to be invoked on every dispatch. | ||
|  |    * @returns {Function} A function to remove this change listener. | ||
|  |    */ | ||
|  | 
 | ||
|  | 
 | ||
|  |   function subscribe(listener) { | ||
|  |     if (typeof listener !== 'function') { | ||
|  |       throw new Error('Expected the listener to be a function.'); | ||
|  |     } | ||
|  | 
 | ||
|  |     if (isDispatching) { | ||
|  |       throw new Error('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-reference/store#subscribe(listener) for more details.'); | ||
|  |     } | ||
|  | 
 | ||
|  |     var isSubscribed = true; | ||
|  |     ensureCanMutateNextListeners(); | ||
|  |     nextListeners.push(listener); | ||
|  |     return function unsubscribe() { | ||
|  |       if (!isSubscribed) { | ||
|  |         return; | ||
|  |       } | ||
|  | 
 | ||
|  |       if (isDispatching) { | ||
|  |         throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.'); | ||
|  |       } | ||
|  | 
 | ||
|  |       isSubscribed = false; | ||
|  |       ensureCanMutateNextListeners(); | ||
|  |       var index = nextListeners.indexOf(listener); | ||
|  |       nextListeners.splice(index, 1); | ||
|  |     }; | ||
|  |   } | ||
|  |   /** | ||
|  |    * Dispatches an action. It is the only way to trigger a state change. | ||
|  |    * | ||
|  |    * The `reducer` function, used to create the store, will be called with the | ||
|  |    * current state tree and the given `action`. Its return value will | ||
|  |    * be considered the **next** state of the tree, and the change listeners | ||
|  |    * will be notified. | ||
|  |    * | ||
|  |    * The base implementation only supports plain object actions. If you want to | ||
|  |    * dispatch a Promise, an Observable, a thunk, or something else, you need to | ||
|  |    * wrap your store creating function into the corresponding middleware. For | ||
|  |    * example, see the documentation for the `redux-thunk` package. Even the | ||
|  |    * middleware will eventually dispatch plain object actions using this method. | ||
|  |    * | ||
|  |    * @param {Object} action A plain object representing “what changed”. It is | ||
|  |    * a good idea to keep actions serializable so you can record and replay user | ||
|  |    * sessions, or use the time travelling `redux-devtools`. An action must have | ||
|  |    * a `type` property which may not be `undefined`. It is a good idea to use | ||
|  |    * string constants for action types. | ||
|  |    * | ||
|  |    * @returns {Object} For convenience, the same action object you dispatched. | ||
|  |    * | ||
|  |    * Note that, if you use a custom middleware, it may wrap `dispatch()` to | ||
|  |    * return something else (for example, a Promise you can await). | ||
|  |    */ | ||
|  | 
 | ||
|  | 
 | ||
|  |   function dispatch(action) { | ||
|  |     if (!isPlainObject(action)) { | ||
|  |       throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); | ||
|  |     } | ||
|  | 
 | ||
|  |     if (typeof action.type === 'undefined') { | ||
|  |       throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); | ||
|  |     } | ||
|  | 
 | ||
|  |     if (isDispatching) { | ||
|  |       throw new Error('Reducers may not dispatch actions.'); | ||
|  |     } | ||
|  | 
 | ||
|  |     try { | ||
|  |       isDispatching = true; | ||
|  |       currentState = currentReducer(currentState, action); | ||
|  |     } finally { | ||
|  |       isDispatching = false; | ||
|  |     } | ||
|  | 
 | ||
|  |     var listeners = currentListeners = nextListeners; | ||
|  | 
 | ||
|  |     for (var i = 0; i < listeners.length; i++) { | ||
|  |       var listener = listeners[i]; | ||
|  |       listener(); | ||
|  |     } | ||
|  | 
 | ||
|  |     return action; | ||
|  |   } | ||
|  |   /** | ||
|  |    * Replaces the reducer currently used by the store to calculate the state. | ||
|  |    * | ||
|  |    * You might need this if your app implements code splitting and you want to | ||
|  |    * load some of the reducers dynamically. You might also need this if you | ||
|  |    * implement a hot reloading mechanism for Redux. | ||
|  |    * | ||
|  |    * @param {Function} nextReducer The reducer for the store to use instead. | ||
|  |    * @returns {void} | ||
|  |    */ | ||
|  | 
 | ||
|  | 
 | ||
|  |   function replaceReducer(nextReducer) { | ||
|  |     if (typeof nextReducer !== 'function') { | ||
|  |       throw new Error('Expected the nextReducer to be a function.'); | ||
|  |     } | ||
|  | 
 | ||
|  |     currentReducer = nextReducer; | ||
|  |     dispatch({ | ||
|  |       type: ActionTypes.REPLACE | ||
|  |     }); | ||
|  |   } | ||
|  |   /** | ||
|  |    * Interoperability point for observable/reactive libraries. | ||
|  |    * @returns {observable} A minimal observable of state changes. | ||
|  |    * For more information, see the observable proposal: | ||
|  |    * https://github.com/tc39/proposal-observable
 | ||
|  |    */ | ||
|  | 
 | ||
|  | 
 | ||
|  |   function observable() { | ||
|  |     var _ref; | ||
|  | 
 | ||
|  |     var outerSubscribe = subscribe; | ||
|  |     return _ref = { | ||
|  |       /** | ||
|  |        * The minimal observable subscription method. | ||
|  |        * @param {Object} observer Any object that can be used as an observer. | ||
|  |        * The observer object should have a `next` method. | ||
|  |        * @returns {subscription} An object with an `unsubscribe` method that can | ||
|  |        * be used to unsubscribe the observable from the store, and prevent further | ||
|  |        * emission of values from the observable. | ||
|  |        */ | ||
|  |       subscribe: function subscribe(observer) { | ||
|  |         if (typeof observer !== 'object' || observer === null) { | ||
|  |           throw new TypeError('Expected the observer to be an object.'); | ||
|  |         } | ||
|  | 
 | ||
|  |         function observeState() { | ||
|  |           if (observer.next) { | ||
|  |             observer.next(getState()); | ||
|  |           } | ||
|  |         } | ||
|  | 
 | ||
|  |         observeState(); | ||
|  |         var unsubscribe = outerSubscribe(observeState); | ||
|  |         return { | ||
|  |           unsubscribe: unsubscribe | ||
|  |         }; | ||
|  |       } | ||
|  |     }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]] = function () { | ||
|  |       return this; | ||
|  |     }, _ref; | ||
|  |   } // When a store is created, an "INIT" action is dispatched so that every
 | ||
|  |   // reducer returns their initial state. This effectively populates
 | ||
|  |   // the initial state tree.
 | ||
|  | 
 | ||
|  | 
 | ||
|  |   dispatch({ | ||
|  |     type: ActionTypes.INIT | ||
|  |   }); | ||
|  |   return _ref2 = { | ||
|  |     dispatch: dispatch, | ||
|  |     subscribe: subscribe, | ||
|  |     getState: getState, | ||
|  |     replaceReducer: replaceReducer | ||
|  |   }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]] = observable, _ref2; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Prints a warning in the console if it exists. | ||
|  |  * | ||
|  |  * @param {String} message The warning message. | ||
|  |  * @returns {void} | ||
|  |  */ | ||
|  | function warning(message) { | ||
|  |   /* eslint-disable no-console */ | ||
|  |   if (typeof console !== 'undefined' && typeof console.error === 'function') { | ||
|  |     console.error(message); | ||
|  |   } | ||
|  |   /* eslint-enable no-console */ | ||
|  | 
 | ||
|  | 
 | ||
|  |   try { | ||
|  |     // This error was thrown as a convenience so that if you enable
 | ||
|  |     // "break on all exceptions" in your console,
 | ||
|  |     // it would pause the execution at this line.
 | ||
|  |     throw new Error(message); | ||
|  |   } catch (e) {} // eslint-disable-line no-empty
 | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | function getUndefinedStateErrorMessage(key, action) { | ||
|  |   var actionType = action && action.type; | ||
|  |   var actionDescription = actionType && "action \"" + String(actionType) + "\"" || 'an action'; | ||
|  |   return "Given " + actionDescription + ", reducer \"" + 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."; | ||
|  | } | ||
|  | 
 | ||
|  | function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) { | ||
|  |   var reducerKeys = Object.keys(reducers); | ||
|  |   var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; | ||
|  | 
 | ||
|  |   if (reducerKeys.length === 0) { | ||
|  |     return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; | ||
|  |   } | ||
|  | 
 | ||
|  |   if (!isPlainObject(inputState)) { | ||
|  |     return "The " + argumentName + " has unexpected type of \"" + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\""); | ||
|  |   } | ||
|  | 
 | ||
|  |   var unexpectedKeys = Object.keys(inputState).filter(function (key) { | ||
|  |     return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; | ||
|  |   }); | ||
|  |   unexpectedKeys.forEach(function (key) { | ||
|  |     unexpectedKeyCache[key] = true; | ||
|  |   }); | ||
|  |   if (action && action.type === ActionTypes.REPLACE) return; | ||
|  | 
 | ||
|  |   if (unexpectedKeys.length > 0) { | ||
|  |     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."); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | function assertReducerShape(reducers) { | ||
|  |   Object.keys(reducers).forEach(function (key) { | ||
|  |     var reducer = reducers[key]; | ||
|  |     var initialState = reducer(undefined, { | ||
|  |       type: ActionTypes.INIT | ||
|  |     }); | ||
|  | 
 | ||
|  |     if (typeof initialState === 'undefined') { | ||
|  |       throw new Error("Reducer \"" + 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."); | ||
|  |     } | ||
|  | 
 | ||
|  |     if (typeof reducer(undefined, { | ||
|  |       type: ActionTypes.PROBE_UNKNOWN_ACTION() | ||
|  |     }) === 'undefined') { | ||
|  |       throw new Error("Reducer \"" + 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."); | ||
|  |     } | ||
|  |   }); | ||
|  | } | ||
|  | /** | ||
|  |  * Turns an object whose values are different reducer functions, into a single | ||
|  |  * reducer function. It will call every child reducer, and gather their results | ||
|  |  * into a single state object, whose keys correspond to the keys of the passed | ||
|  |  * reducer functions. | ||
|  |  * | ||
|  |  * @param {Object} reducers An object whose values correspond to different | ||
|  |  * reducer functions that need to be combined into one. One handy way to obtain | ||
|  |  * it is to use ES6 `import * as reducers` syntax. The reducers may never return | ||
|  |  * undefined for any action. Instead, they should return their initial state | ||
|  |  * if the state passed to them was undefined, and the current state for any | ||
|  |  * unrecognized action. | ||
|  |  * | ||
|  |  * @returns {Function} A reducer function that invokes every reducer inside the | ||
|  |  * passed object, and builds a state object with the same shape. | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | function combineReducers(reducers) { | ||
|  |   var reducerKeys = Object.keys(reducers); | ||
|  |   var finalReducers = {}; | ||
|  | 
 | ||
|  |   for (var i = 0; i < reducerKeys.length; i++) { | ||
|  |     var key = reducerKeys[i]; | ||
|  | 
 | ||
|  |     if (false) {} | ||
|  | 
 | ||
|  |     if (typeof reducers[key] === 'function') { | ||
|  |       finalReducers[key] = reducers[key]; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   var finalReducerKeys = Object.keys(finalReducers); | ||
|  |   var unexpectedKeyCache; | ||
|  | 
 | ||
|  |   if (false) {} | ||
|  | 
 | ||
|  |   var shapeAssertionError; | ||
|  | 
 | ||
|  |   try { | ||
|  |     assertReducerShape(finalReducers); | ||
|  |   } catch (e) { | ||
|  |     shapeAssertionError = e; | ||
|  |   } | ||
|  | 
 | ||
|  |   return function combination(state, action) { | ||
|  |     if (state === void 0) { | ||
|  |       state = {}; | ||
|  |     } | ||
|  | 
 | ||
|  |     if (shapeAssertionError) { | ||
|  |       throw shapeAssertionError; | ||
|  |     } | ||
|  | 
 | ||
|  |     if (false) { var warningMessage; } | ||
|  | 
 | ||
|  |     var hasChanged = false; | ||
|  |     var nextState = {}; | ||
|  | 
 | ||
|  |     for (var _i = 0; _i < finalReducerKeys.length; _i++) { | ||
|  |       var _key = finalReducerKeys[_i]; | ||
|  |       var reducer = finalReducers[_key]; | ||
|  |       var previousStateForKey = state[_key]; | ||
|  |       var nextStateForKey = reducer(previousStateForKey, action); | ||
|  | 
 | ||
|  |       if (typeof nextStateForKey === 'undefined') { | ||
|  |         var errorMessage = getUndefinedStateErrorMessage(_key, action); | ||
|  |         throw new Error(errorMessage); | ||
|  |       } | ||
|  | 
 | ||
|  |       nextState[_key] = nextStateForKey; | ||
|  |       hasChanged = hasChanged || nextStateForKey !== previousStateForKey; | ||
|  |     } | ||
|  | 
 | ||
|  |     return hasChanged ? nextState : state; | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | function bindActionCreator(actionCreator, dispatch) { | ||
|  |   return function () { | ||
|  |     return dispatch(actionCreator.apply(this, arguments)); | ||
|  |   }; | ||
|  | } | ||
|  | /** | ||
|  |  * Turns an object whose values are action creators, into an object with the | ||
|  |  * same keys, but with every function wrapped into a `dispatch` call so they | ||
|  |  * may be invoked directly. This is just a convenience method, as you can call | ||
|  |  * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. | ||
|  |  * | ||
|  |  * For convenience, you can also pass a single function as the first argument, | ||
|  |  * and get a function in return. | ||
|  |  * | ||
|  |  * @param {Function|Object} actionCreators An object whose values are action | ||
|  |  * creator functions. One handy way to obtain it is to use ES6 `import * as` | ||
|  |  * syntax. You may also pass a single function. | ||
|  |  * | ||
|  |  * @param {Function} dispatch The `dispatch` function available on your Redux | ||
|  |  * store. | ||
|  |  * | ||
|  |  * @returns {Function|Object} The object mimicking the original object, but with | ||
|  |  * every action creator wrapped into the `dispatch` call. If you passed a | ||
|  |  * function as `actionCreators`, the return value will also be a single | ||
|  |  * function. | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | function bindActionCreators(actionCreators, dispatch) { | ||
|  |   if (typeof actionCreators === 'function') { | ||
|  |     return bindActionCreator(actionCreators, dispatch); | ||
|  |   } | ||
|  | 
 | ||
|  |   if (typeof actionCreators !== 'object' || actionCreators === null) { | ||
|  |     throw new Error("bindActionCreators expected an object or a function, instead received " + (actionCreators === null ? 'null' : typeof actionCreators) + ". " + "Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?"); | ||
|  |   } | ||
|  | 
 | ||
|  |   var keys = Object.keys(actionCreators); | ||
|  |   var boundActionCreators = {}; | ||
|  | 
 | ||
|  |   for (var i = 0; i < keys.length; i++) { | ||
|  |     var key = keys[i]; | ||
|  |     var actionCreator = actionCreators[key]; | ||
|  | 
 | ||
|  |     if (typeof actionCreator === 'function') { | ||
|  |       boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   return boundActionCreators; | ||
|  | } | ||
|  | 
 | ||
|  | function _defineProperty(obj, key, value) { | ||
|  |   if (key in obj) { | ||
|  |     Object.defineProperty(obj, key, { | ||
|  |       value: value, | ||
|  |       enumerable: true, | ||
|  |       configurable: true, | ||
|  |       writable: true | ||
|  |     }); | ||
|  |   } else { | ||
|  |     obj[key] = value; | ||
|  |   } | ||
|  | 
 | ||
|  |   return obj; | ||
|  | } | ||
|  | 
 | ||
|  | function _objectSpread(target) { | ||
|  |   for (var i = 1; i < arguments.length; i++) { | ||
|  |     var source = arguments[i] != null ? arguments[i] : {}; | ||
|  |     var ownKeys = Object.keys(source); | ||
|  | 
 | ||
|  |     if (typeof Object.getOwnPropertySymbols === 'function') { | ||
|  |       ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { | ||
|  |         return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
|  |       })); | ||
|  |     } | ||
|  | 
 | ||
|  |     ownKeys.forEach(function (key) { | ||
|  |       _defineProperty(target, key, source[key]); | ||
|  |     }); | ||
|  |   } | ||
|  | 
 | ||
|  |   return target; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Composes single-argument functions from right to left. The rightmost | ||
|  |  * function can take multiple arguments as it provides the signature for | ||
|  |  * the resulting composite function. | ||
|  |  * | ||
|  |  * @param {...Function} funcs The functions to compose. | ||
|  |  * @returns {Function} A function obtained by composing the argument functions | ||
|  |  * from right to left. For example, compose(f, g, h) is identical to doing | ||
|  |  * (...args) => f(g(h(...args))). | ||
|  |  */ | ||
|  | function compose() { | ||
|  |   for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { | ||
|  |     funcs[_key] = arguments[_key]; | ||
|  |   } | ||
|  | 
 | ||
|  |   if (funcs.length === 0) { | ||
|  |     return function (arg) { | ||
|  |       return arg; | ||
|  |     }; | ||
|  |   } | ||
|  | 
 | ||
|  |   if (funcs.length === 1) { | ||
|  |     return funcs[0]; | ||
|  |   } | ||
|  | 
 | ||
|  |   return funcs.reduce(function (a, b) { | ||
|  |     return function () { | ||
|  |       return a(b.apply(void 0, arguments)); | ||
|  |     }; | ||
|  |   }); | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Creates a store enhancer that applies middleware to the dispatch method | ||
|  |  * of the Redux store. This is handy for a variety of tasks, such as expressing | ||
|  |  * asynchronous actions in a concise manner, or logging every action payload. | ||
|  |  * | ||
|  |  * See `redux-thunk` package as an example of the Redux middleware. | ||
|  |  * | ||
|  |  * Because middleware is potentially asynchronous, this should be the first | ||
|  |  * store enhancer in the composition chain. | ||
|  |  * | ||
|  |  * Note that each middleware will be given the `dispatch` and `getState` functions | ||
|  |  * as named arguments. | ||
|  |  * | ||
|  |  * @param {...Function} middlewares The middleware chain to be applied. | ||
|  |  * @returns {Function} A store enhancer applying the middleware. | ||
|  |  */ | ||
|  | 
 | ||
|  | function applyMiddleware() { | ||
|  |   for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) { | ||
|  |     middlewares[_key] = arguments[_key]; | ||
|  |   } | ||
|  | 
 | ||
|  |   return function (createStore) { | ||
|  |     return function () { | ||
|  |       var store = createStore.apply(void 0, arguments); | ||
|  | 
 | ||
|  |       var _dispatch = function dispatch() { | ||
|  |         throw new Error("Dispatching while constructing your middleware is not allowed. " + "Other middleware would not be applied to this dispatch."); | ||
|  |       }; | ||
|  | 
 | ||
|  |       var middlewareAPI = { | ||
|  |         getState: store.getState, | ||
|  |         dispatch: function dispatch() { | ||
|  |           return _dispatch.apply(void 0, arguments); | ||
|  |         } | ||
|  |       }; | ||
|  |       var chain = middlewares.map(function (middleware) { | ||
|  |         return middleware(middlewareAPI); | ||
|  |       }); | ||
|  |       _dispatch = compose.apply(void 0, chain)(store.dispatch); | ||
|  |       return _objectSpread({}, store, { | ||
|  |         dispatch: _dispatch | ||
|  |       }); | ||
|  |     }; | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * This is a dummy function to check if the function name has been altered by minification. | ||
|  |  * If the function has been minified and NODE_ENV !== 'production', warn the user. | ||
|  |  */ | ||
|  | 
 | ||
|  | function isCrushed() {} | ||
|  | 
 | ||
|  | if (false) {} | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 66: | ||
|  | /***/ (function(module, exports, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | 
 | ||
|  | function _typeof(obj) { | ||
|  |   if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { | ||
|  |     _typeof = function (obj) { | ||
|  |       return typeof obj; | ||
|  |     }; | ||
|  |   } else { | ||
|  |     _typeof = function (obj) { | ||
|  |       return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | ||
|  |     }; | ||
|  |   } | ||
|  | 
 | ||
|  |   return _typeof(obj); | ||
|  | } | ||
|  | 
 | ||
|  | function _classCallCheck(instance, Constructor) { | ||
|  |   if (!(instance instanceof Constructor)) { | ||
|  |     throw new TypeError("Cannot call a class as a function"); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | function _defineProperties(target, props) { | ||
|  |   for (var i = 0; i < props.length; i++) { | ||
|  |     var descriptor = props[i]; | ||
|  |     descriptor.enumerable = descriptor.enumerable || false; | ||
|  |     descriptor.configurable = true; | ||
|  |     if ("value" in descriptor) descriptor.writable = true; | ||
|  |     Object.defineProperty(target, descriptor.key, descriptor); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | function _createClass(Constructor, protoProps, staticProps) { | ||
|  |   if (protoProps) _defineProperties(Constructor.prototype, protoProps); | ||
|  |   if (staticProps) _defineProperties(Constructor, staticProps); | ||
|  |   return Constructor; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Given an instance of EquivalentKeyMap, returns its internal value pair tuple | ||
|  |  * for a key, if one exists. The tuple members consist of the last reference | ||
|  |  * value for the key (used in efficient subsequent lookups) and the value | ||
|  |  * assigned for the key at the leaf node. | ||
|  |  * | ||
|  |  * @param {EquivalentKeyMap} instance EquivalentKeyMap instance. | ||
|  |  * @param {*} key                     The key for which to return value pair. | ||
|  |  * | ||
|  |  * @return {?Array} Value pair, if exists. | ||
|  |  */ | ||
|  | function getValuePair(instance, key) { | ||
|  |   var _map = instance._map, | ||
|  |       _arrayTreeMap = instance._arrayTreeMap, | ||
|  |       _objectTreeMap = instance._objectTreeMap; // Map keeps a reference to the last object-like key used to set the
 | ||
|  |   // value, which can be used to shortcut immediately to the value.
 | ||
|  | 
 | ||
|  |   if (_map.has(key)) { | ||
|  |     return _map.get(key); | ||
|  |   } // Sort keys to ensure stable retrieval from tree.
 | ||
|  | 
 | ||
|  | 
 | ||
|  |   var properties = Object.keys(key).sort(); // Tree by type to avoid conflicts on numeric object keys, empty value.
 | ||
|  | 
 | ||
|  |   var map = Array.isArray(key) ? _arrayTreeMap : _objectTreeMap; | ||
|  | 
 | ||
|  |   for (var i = 0; i < properties.length; i++) { | ||
|  |     var property = properties[i]; | ||
|  |     map = map.get(property); | ||
|  | 
 | ||
|  |     if (map === undefined) { | ||
|  |       return; | ||
|  |     } | ||
|  | 
 | ||
|  |     var propertyValue = key[property]; | ||
|  |     map = map.get(propertyValue); | ||
|  | 
 | ||
|  |     if (map === undefined) { | ||
|  |       return; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   var valuePair = map.get('_ekm_value'); | ||
|  | 
 | ||
|  |   if (!valuePair) { | ||
|  |     return; | ||
|  |   } // If reached, it implies that an object-like key was set with another
 | ||
|  |   // reference, so delete the reference and replace with the current.
 | ||
|  | 
 | ||
|  | 
 | ||
|  |   _map.delete(valuePair[0]); | ||
|  | 
 | ||
|  |   valuePair[0] = key; | ||
|  |   map.set('_ekm_value', valuePair); | ||
|  | 
 | ||
|  |   _map.set(key, valuePair); | ||
|  | 
 | ||
|  |   return valuePair; | ||
|  | } | ||
|  | /** | ||
|  |  * Variant of a Map object which enables lookup by equivalent (deeply equal) | ||
|  |  * object and array keys. | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | var EquivalentKeyMap = | ||
|  | /*#__PURE__*/ | ||
|  | function () { | ||
|  |   /** | ||
|  |    * Constructs a new instance of EquivalentKeyMap. | ||
|  |    * | ||
|  |    * @param {Iterable.<*>} iterable Initial pair of key, value for map. | ||
|  |    */ | ||
|  |   function EquivalentKeyMap(iterable) { | ||
|  |     _classCallCheck(this, EquivalentKeyMap); | ||
|  | 
 | ||
|  |     this.clear(); | ||
|  | 
 | ||
|  |     if (iterable instanceof EquivalentKeyMap) { | ||
|  |       // Map#forEach is only means of iterating with support for IE11.
 | ||
|  |       var iterablePairs = []; | ||
|  |       iterable.forEach(function (value, key) { | ||
|  |         iterablePairs.push([key, value]); | ||
|  |       }); | ||
|  |       iterable = iterablePairs; | ||
|  |     } | ||
|  | 
 | ||
|  |     if (iterable != null) { | ||
|  |       for (var i = 0; i < iterable.length; i++) { | ||
|  |         this.set(iterable[i][0], iterable[i][1]); | ||
|  |       } | ||
|  |     } | ||
|  |   } | ||
|  |   /** | ||
|  |    * Accessor property returning the number of elements. | ||
|  |    * | ||
|  |    * @return {number} Number of elements. | ||
|  |    */ | ||
|  | 
 | ||
|  | 
 | ||
|  |   _createClass(EquivalentKeyMap, [{ | ||
|  |     key: "set", | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Add or update an element with a specified key and value. | ||
|  |      * | ||
|  |      * @param {*} key   The key of the element to add. | ||
|  |      * @param {*} value The value of the element to add. | ||
|  |      * | ||
|  |      * @return {EquivalentKeyMap} Map instance. | ||
|  |      */ | ||
|  |     value: function set(key, value) { | ||
|  |       // Shortcut non-object-like to set on internal Map.
 | ||
|  |       if (key === null || _typeof(key) !== 'object') { | ||
|  |         this._map.set(key, value); | ||
|  | 
 | ||
|  |         return this; | ||
|  |       } // Sort keys to ensure stable assignment into tree.
 | ||
|  | 
 | ||
|  | 
 | ||
|  |       var properties = Object.keys(key).sort(); | ||
|  |       var valuePair = [key, value]; // Tree by type to avoid conflicts on numeric object keys, empty value.
 | ||
|  | 
 | ||
|  |       var map = Array.isArray(key) ? this._arrayTreeMap : this._objectTreeMap; | ||
|  | 
 | ||
|  |       for (var i = 0; i < properties.length; i++) { | ||
|  |         var property = properties[i]; | ||
|  | 
 | ||
|  |         if (!map.has(property)) { | ||
|  |           map.set(property, new EquivalentKeyMap()); | ||
|  |         } | ||
|  | 
 | ||
|  |         map = map.get(property); | ||
|  |         var propertyValue = key[property]; | ||
|  | 
 | ||
|  |         if (!map.has(propertyValue)) { | ||
|  |           map.set(propertyValue, new EquivalentKeyMap()); | ||
|  |         } | ||
|  | 
 | ||
|  |         map = map.get(propertyValue); | ||
|  |       } // If an _ekm_value exists, there was already an equivalent key. Before
 | ||
|  |       // overriding, ensure that the old key reference is removed from map to
 | ||
|  |       // avoid memory leak of accumulating equivalent keys. This is, in a
 | ||
|  |       // sense, a poor man's WeakMap, while still enabling iterability.
 | ||
|  | 
 | ||
|  | 
 | ||
|  |       var previousValuePair = map.get('_ekm_value'); | ||
|  | 
 | ||
|  |       if (previousValuePair) { | ||
|  |         this._map.delete(previousValuePair[0]); | ||
|  |       } | ||
|  | 
 | ||
|  |       map.set('_ekm_value', valuePair); | ||
|  | 
 | ||
|  |       this._map.set(key, valuePair); | ||
|  | 
 | ||
|  |       return this; | ||
|  |     } | ||
|  |     /** | ||
|  |      * Returns a specified element. | ||
|  |      * | ||
|  |      * @param {*} key The key of the element to return. | ||
|  |      * | ||
|  |      * @return {?*} The element associated with the specified key or undefined | ||
|  |      *              if the key can't be found. | ||
|  |      */ | ||
|  | 
 | ||
|  |   }, { | ||
|  |     key: "get", | ||
|  |     value: function get(key) { | ||
|  |       // Shortcut non-object-like to get from internal Map.
 | ||
|  |       if (key === null || _typeof(key) !== 'object') { | ||
|  |         return this._map.get(key); | ||
|  |       } | ||
|  | 
 | ||
|  |       var valuePair = getValuePair(this, key); | ||
|  | 
 | ||
|  |       if (valuePair) { | ||
|  |         return valuePair[1]; | ||
|  |       } | ||
|  |     } | ||
|  |     /** | ||
|  |      * Returns a boolean indicating whether an element with the specified key | ||
|  |      * exists or not. | ||
|  |      * | ||
|  |      * @param {*} key The key of the element to test for presence. | ||
|  |      * | ||
|  |      * @return {boolean} Whether an element with the specified key exists. | ||
|  |      */ | ||
|  | 
 | ||
|  |   }, { | ||
|  |     key: "has", | ||
|  |     value: function has(key) { | ||
|  |       if (key === null || _typeof(key) !== 'object') { | ||
|  |         return this._map.has(key); | ||
|  |       } // Test on the _presence_ of the pair, not its value, as even undefined
 | ||
|  |       // can be a valid member value for a key.
 | ||
|  | 
 | ||
|  | 
 | ||
|  |       return getValuePair(this, key) !== undefined; | ||
|  |     } | ||
|  |     /** | ||
|  |      * Removes the specified element. | ||
|  |      * | ||
|  |      * @param {*} key The key of the element to remove. | ||
|  |      * | ||
|  |      * @return {boolean} Returns true if an element existed and has been | ||
|  |      *                   removed, or false if the element does not exist. | ||
|  |      */ | ||
|  | 
 | ||
|  |   }, { | ||
|  |     key: "delete", | ||
|  |     value: function _delete(key) { | ||
|  |       if (!this.has(key)) { | ||
|  |         return false; | ||
|  |       } // This naive implementation will leave orphaned child trees. A better
 | ||
|  |       // implementation should traverse and remove orphans.
 | ||
|  | 
 | ||
|  | 
 | ||
|  |       this.set(key, undefined); | ||
|  |       return true; | ||
|  |     } | ||
|  |     /** | ||
|  |      * Executes a provided function once per each key/value pair, in insertion | ||
|  |      * order. | ||
|  |      * | ||
|  |      * @param {Function} callback Function to execute for each element. | ||
|  |      * @param {*}        thisArg  Value to use as `this` when executing | ||
|  |      *                            `callback`. | ||
|  |      */ | ||
|  | 
 | ||
|  |   }, { | ||
|  |     key: "forEach", | ||
|  |     value: function forEach(callback) { | ||
|  |       var _this = this; | ||
|  | 
 | ||
|  |       var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this; | ||
|  | 
 | ||
|  |       this._map.forEach(function (value, key) { | ||
|  |         // Unwrap value from object-like value pair.
 | ||
|  |         if (key !== null && _typeof(key) === 'object') { | ||
|  |           value = value[1]; | ||
|  |         } | ||
|  | 
 | ||
|  |         callback.call(thisArg, value, key, _this); | ||
|  |       }); | ||
|  |     } | ||
|  |     /** | ||
|  |      * Removes all elements. | ||
|  |      */ | ||
|  | 
 | ||
|  |   }, { | ||
|  |     key: "clear", | ||
|  |     value: function clear() { | ||
|  |       this._map = new Map(); | ||
|  |       this._arrayTreeMap = new Map(); | ||
|  |       this._objectTreeMap = new Map(); | ||
|  |     } | ||
|  |   }, { | ||
|  |     key: "size", | ||
|  |     get: function get() { | ||
|  |       return this._map.size; | ||
|  |     } | ||
|  |   }]); | ||
|  | 
 | ||
|  |   return EquivalentKeyMap; | ||
|  | }(); | ||
|  | 
 | ||
|  | module.exports = EquivalentKeyMap; | ||
|  | 
 | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 67: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85); | ||
|  | /* global window */ | ||
|  | 
 | ||
|  | 
 | ||
|  | var root; | ||
|  | 
 | ||
|  | if (typeof self !== 'undefined') { | ||
|  |   root = self; | ||
|  | } else if (typeof window !== 'undefined') { | ||
|  |   root = window; | ||
|  | } else if (typeof global !== 'undefined') { | ||
|  |   root = global; | ||
|  | } else if (true) { | ||
|  |   root = module; | ||
|  | } else {} | ||
|  | 
 | ||
|  | var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(root); | ||
|  | /* harmony default export */ __webpack_exports__["a"] = (result); | ||
|  | 
 | ||
|  | /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(51), __webpack_require__(120)(module))) | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 8: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectSpread; }); | ||
|  | /* harmony import */ var _defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15); | ||
|  | 
 | ||
|  | function _objectSpread(target) { | ||
|  |   for (var i = 1; i < arguments.length; i++) { | ||
|  |     var source = arguments[i] != null ? arguments[i] : {}; | ||
|  |     var ownKeys = Object.keys(source); | ||
|  | 
 | ||
|  |     if (typeof Object.getOwnPropertySymbols === 'function') { | ||
|  |       ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { | ||
|  |         return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
|  |       })); | ||
|  |     } | ||
|  | 
 | ||
|  |     ownKeys.forEach(function (key) { | ||
|  |       Object(_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]); | ||
|  |     }); | ||
|  |   } | ||
|  | 
 | ||
|  |   return target; | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 85: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return symbolObservablePonyfill; }); | ||
|  | function symbolObservablePonyfill(root) { | ||
|  | 	var result; | ||
|  | 	var Symbol = root.Symbol; | ||
|  | 
 | ||
|  | 	if (typeof Symbol === 'function') { | ||
|  | 		if (Symbol.observable) { | ||
|  | 			result = Symbol.observable; | ||
|  | 		} else { | ||
|  | 			result = Symbol('observable'); | ||
|  | 			Symbol.observable = result; | ||
|  | 		} | ||
|  | 	} else { | ||
|  | 		result = '@@observable'; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return result; | ||
|  | }; | ||
|  | 
 | ||
|  | 
 | ||
|  | /***/ }) | ||
|  | 
 | ||
|  | /******/ }); |