mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-24 01:57:53 +01:00
8614d14887
We decided to split the media webpack config into it's own file. The main webpack config then combines this file with the packages config. Include vendor scripts by copying them. We copy the minified files if they are available. If they aren't available we minify the original files ourselves. Props omarreiss, herregroen, gziolo, youknowriad, netweb, adamsilverstein. Merges [43719] to trunk. See #45065. Built from https://develop.svn.wordpress.org/trunk@44112 git-svn-id: http://core.svn.wordpress.org/trunk@43942 1a063a9b-81f0-0310-95a4-ce76da25c4cd
3617 lines
129 KiB
JavaScript
3617 lines
129 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 = "./node_modules/@wordpress/core-data/build-module/index.js");
|
|
/******/ })
|
|
/************************************************************************/
|
|
/******/ ({
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
|
|
/*!*******************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
|
|
\*******************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _arrayWithHoles; });
|
|
function _arrayWithHoles(arr) {
|
|
if (Array.isArray(arr)) return arr;
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
|
|
/*!**********************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
|
|
\**********************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _arrayWithoutHoles; });
|
|
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;
|
|
}
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
|
|
/*!*******************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
|
|
\*******************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", 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;
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
|
|
/*!********************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
|
|
\********************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _iterableToArray; });
|
|
function _iterableToArray(iter) {
|
|
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":
|
|
/*!*************************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
|
|
\*************************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _iterableToArrayLimit; });
|
|
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;
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
|
|
/*!********************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
|
|
\********************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _nonIterableRest; });
|
|
function _nonIterableRest() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance");
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
|
|
/*!**********************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
|
|
\**********************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _nonIterableSpread; });
|
|
function _nonIterableSpread() {
|
|
throw new TypeError("Invalid attempt to spread non-iterable instance");
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js":
|
|
/*!*****************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/objectSpread.js ***!
|
|
\*****************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _objectSpread; });
|
|
/* harmony import */ var _defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
|
|
|
|
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"])(target, key, source[key]);
|
|
});
|
|
}
|
|
|
|
return target;
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js":
|
|
/*!******************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
|
|
\******************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _slicedToArray; });
|
|
/* harmony import */ var _arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles */ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js");
|
|
/* harmony import */ var _iterableToArrayLimit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit */ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js");
|
|
/* harmony import */ var _nonIterableRest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nonIterableRest */ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js");
|
|
|
|
|
|
|
|
function _slicedToArray(arr, i) {
|
|
return Object(_arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__["default"])(arr) || Object(_iterableToArrayLimit__WEBPACK_IMPORTED_MODULE_1__["default"])(arr, i) || Object(_nonIterableRest__WEBPACK_IMPORTED_MODULE_2__["default"])();
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
|
|
/*!**********************************************************************!*\
|
|
!*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
|
|
\**********************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _toConsumableArray; });
|
|
/* harmony import */ var _arrayWithoutHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles */ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js");
|
|
/* harmony import */ var _iterableToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray */ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js");
|
|
/* harmony import */ var _nonIterableSpread__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nonIterableSpread */ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js");
|
|
|
|
|
|
|
|
function _toConsumableArray(arr) {
|
|
return Object(_arrayWithoutHoles__WEBPACK_IMPORTED_MODULE_0__["default"])(arr) || Object(_iterableToArray__WEBPACK_IMPORTED_MODULE_1__["default"])(arr) || Object(_nonIterableSpread__WEBPACK_IMPORTED_MODULE_2__["default"])();
|
|
}
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/actions.js":
|
|
/*!*******************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/actions.js ***!
|
|
\*******************************************************************/
|
|
/*! exports provided: receiveUserQuery, addEntities, receiveEntityRecords, receiveThemeSupportsFromIndex, receiveEmbedPreview */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "receiveUserQuery", function() { return receiveUserQuery; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEntities", function() { return addEntities; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "receiveEntityRecords", function() { return receiveEntityRecords; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "receiveThemeSupportsFromIndex", function() { return receiveThemeSupportsFromIndex; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "receiveEmbedPreview", function() { return receiveEmbedPreview; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread */ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _queried_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./queried-data */ "./node_modules/@wordpress/core-data/build-module/queried-data/index.js");
|
|
|
|
|
|
/**
|
|
* 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(lodash__WEBPACK_IMPORTED_MODULE_1__["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.
|
|
*
|
|
* @return {Object} Action object.
|
|
*/
|
|
|
|
function receiveEntityRecords(kind, name, records, query) {
|
|
var action;
|
|
|
|
if (query) {
|
|
action = Object(_queried_data__WEBPACK_IMPORTED_MODULE_2__["receiveQueriedItems"])(records, query);
|
|
} else {
|
|
action = Object(_queried_data__WEBPACK_IMPORTED_MODULE_2__["receiveItems"])(records);
|
|
}
|
|
|
|
return Object(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__["default"])({}, action, {
|
|
kind: kind,
|
|
name: name
|
|
});
|
|
}
|
|
/**
|
|
* Returns an action object used in signalling that the index has been received.
|
|
*
|
|
* @param {Object} index Index received.
|
|
*
|
|
* @return {Object} Action object.
|
|
*/
|
|
|
|
function receiveThemeSupportsFromIndex(index) {
|
|
return {
|
|
type: 'RECEIVE_THEME_SUPPORTS',
|
|
themeSupports: index.theme_supports
|
|
};
|
|
}
|
|
/**
|
|
* 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
|
|
};
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/controls.js":
|
|
/*!********************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/controls.js ***!
|
|
\********************************************************************/
|
|
/*! exports provided: apiFetch, select, default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "apiFetch", function() { return apiFetch; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "select", function() { return select; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js");
|
|
/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch");
|
|
/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
|
|
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__);
|
|
|
|
|
|
/**
|
|
* 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 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 _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1___default()(request);
|
|
},
|
|
SELECT: function SELECT(_ref2) {
|
|
var _selectData;
|
|
|
|
var selectorName = _ref2.selectorName,
|
|
args = _ref2.args;
|
|
return (_selectData = Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__["select"])('core'))[selectorName].apply(_selectData, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(args));
|
|
}
|
|
};
|
|
/* harmony default export */ __webpack_exports__["default"] = (controls);
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/entities.js":
|
|
/*!********************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/entities.js ***!
|
|
\********************************************************************/
|
|
/*! exports provided: defaultEntities, kinds, getMethodName, getKindEntities */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultEntities", function() { return defaultEntities; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "kinds", function() { return kinds; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMethodName", function() { return getMethodName; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getKindEntities", function() { return getKindEntities; });
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./actions */ "./node_modules/@wordpress/core-data/build-module/actions.js");
|
|
/* harmony import */ var _controls__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./controls */ "./node_modules/@wordpress/core-data/build-module/controls.js");
|
|
var _marked =
|
|
/*#__PURE__*/
|
|
regeneratorRuntime.mark(loadPostTypeEntities),
|
|
_marked2 =
|
|
/*#__PURE__*/
|
|
regeneratorRuntime.mark(loadTaxonomyEntities),
|
|
_marked3 =
|
|
/*#__PURE__*/
|
|
regeneratorRuntime.mark(getKindEntities);
|
|
|
|
/**
|
|
* External dependencies
|
|
*/
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
|
|
|
|
|
|
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 Object(_controls__WEBPACK_IMPORTED_MODULE_2__["apiFetch"])({
|
|
path: '/wp/v2/types?context=edit'
|
|
});
|
|
|
|
case 2:
|
|
postTypes = _context.sent;
|
|
return _context.abrupt("return", Object(lodash__WEBPACK_IMPORTED_MODULE_0__["map"])(postTypes, function (postType, name) {
|
|
return {
|
|
kind: 'postType',
|
|
baseURL: '/wp/v2/' + postType.rest_base,
|
|
name: name
|
|
};
|
|
}));
|
|
|
|
case 4:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}
|
|
}, _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 Object(_controls__WEBPACK_IMPORTED_MODULE_2__["apiFetch"])({
|
|
path: '/wp/v2/taxonomies?context=edit'
|
|
});
|
|
|
|
case 2:
|
|
taxonomies = _context2.sent;
|
|
return _context2.abrupt("return", Object(lodash__WEBPACK_IMPORTED_MODULE_0__["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 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(lodash__WEBPACK_IMPORTED_MODULE_0__["find"])(defaultEntities, {
|
|
kind: kind,
|
|
name: name
|
|
});
|
|
var kindPrefix = kind === 'root' ? '' : Object(lodash__WEBPACK_IMPORTED_MODULE_0__["upperFirst"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["camelCase"])(kind));
|
|
var nameSuffix = Object(lodash__WEBPACK_IMPORTED_MODULE_0__["upperFirst"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["camelCase"])(name)) + (usePlural ? 's' : '');
|
|
var suffix = usePlural && entity.plural ? Object(lodash__WEBPACK_IMPORTED_MODULE_0__["upperFirst"])(Object(lodash__WEBPACK_IMPORTED_MODULE_0__["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 Object(_controls__WEBPACK_IMPORTED_MODULE_2__["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(lodash__WEBPACK_IMPORTED_MODULE_0__["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 Object(_actions__WEBPACK_IMPORTED_MODULE_1__["addEntities"])(entities);
|
|
|
|
case 13:
|
|
return _context3.abrupt("return", entities);
|
|
|
|
case 14:
|
|
case "end":
|
|
return _context3.stop();
|
|
}
|
|
}
|
|
}, _marked3, this);
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/index.js":
|
|
/*!*****************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/index.js ***!
|
|
\*****************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread */ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js");
|
|
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
|
|
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reducer */ "./node_modules/@wordpress/core-data/build-module/reducer.js");
|
|
/* harmony import */ var _controls__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./controls */ "./node_modules/@wordpress/core-data/build-module/controls.js");
|
|
/* harmony import */ var _selectors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./selectors */ "./node_modules/@wordpress/core-data/build-module/selectors.js");
|
|
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./actions */ "./node_modules/@wordpress/core-data/build-module/actions.js");
|
|
/* harmony import */ var _resolvers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./resolvers */ "./node_modules/@wordpress/core-data/build-module/resolvers.js");
|
|
/* harmony import */ var _entities__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./entities */ "./node_modules/@wordpress/core-data/build-module/entities.js");
|
|
/* harmony import */ var _name__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./name */ "./node_modules/@wordpress/core-data/build-module/name.js");
|
|
|
|
|
|
/**
|
|
* WordPress dependencies
|
|
*/
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var createEntityRecordSelector = function createEntityRecordSelector(source) {
|
|
return _entities__WEBPACK_IMPORTED_MODULE_7__["defaultEntities"].reduce(function (result, entity) {
|
|
var kind = entity.kind,
|
|
name = entity.name;
|
|
|
|
result[Object(_entities__WEBPACK_IMPORTED_MODULE_7__["getMethodName"])(kind, name)] = function (state, key) {
|
|
return source.getEntityRecord(state, kind, name, key);
|
|
};
|
|
|
|
result[Object(_entities__WEBPACK_IMPORTED_MODULE_7__["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 source.getEntityRecords.apply(source, [state, kind, name].concat(args));
|
|
};
|
|
|
|
return result;
|
|
}, {});
|
|
};
|
|
|
|
var createEntityRecordResolver = function createEntityRecordResolver(source) {
|
|
return _entities__WEBPACK_IMPORTED_MODULE_7__["defaultEntities"].reduce(function (result, entity) {
|
|
var kind = entity.kind,
|
|
name = entity.name;
|
|
|
|
result[Object(_entities__WEBPACK_IMPORTED_MODULE_7__["getMethodName"])(kind, name)] = function (key) {
|
|
return source.getEntityRecord(kind, name, key);
|
|
};
|
|
|
|
result[Object(_entities__WEBPACK_IMPORTED_MODULE_7__["getMethodName"])(kind, name, 'get', true)] = function () {
|
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
args[_key2] = arguments[_key2];
|
|
}
|
|
|
|
return source.getEntityRecords.apply(source, [kind, name].concat(args));
|
|
};
|
|
|
|
return result;
|
|
}, {});
|
|
};
|
|
|
|
var entityResolvers = createEntityRecordResolver(_resolvers__WEBPACK_IMPORTED_MODULE_6__);
|
|
var entitySelectors = createEntityRecordSelector(_selectors__WEBPACK_IMPORTED_MODULE_4__);
|
|
var store = Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__["registerStore"])(_name__WEBPACK_IMPORTED_MODULE_8__["REDUCER_KEY"], {
|
|
reducer: _reducer__WEBPACK_IMPORTED_MODULE_2__["default"],
|
|
actions: _actions__WEBPACK_IMPORTED_MODULE_5__,
|
|
controls: _controls__WEBPACK_IMPORTED_MODULE_3__["default"],
|
|
selectors: Object(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__["default"])({}, _selectors__WEBPACK_IMPORTED_MODULE_4__, entitySelectors),
|
|
resolvers: Object(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__["default"])({}, _resolvers__WEBPACK_IMPORTED_MODULE_6__, entityResolvers)
|
|
});
|
|
/* harmony default export */ __webpack_exports__["default"] = (store);
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/name.js":
|
|
/*!****************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/name.js ***!
|
|
\****************************************************************/
|
|
/*! exports provided: REDUCER_KEY */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "REDUCER_KEY", function() { return REDUCER_KEY; });
|
|
/**
|
|
* 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';
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/queried-data/actions.js":
|
|
/*!********************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/queried-data/actions.js ***!
|
|
\********************************************************************************/
|
|
/*! exports provided: receiveItems, receiveQueriedItems */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "receiveItems", function() { return receiveItems; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "receiveQueriedItems", function() { return receiveQueriedItems; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread */ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
|
|
|
|
|
|
/**
|
|
* 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(lodash__WEBPACK_IMPORTED_MODULE_1__["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(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__["default"])({}, receiveItems(items), {
|
|
query: query
|
|
});
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/queried-data/get-query-parts.js":
|
|
/*!****************************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/queried-data/get-query-parts.js ***!
|
|
\****************************************************************************************/
|
|
/*! exports provided: getQueryParts, default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getQueryParts", function() { return getQueryParts; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
|
|
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/url */ "@wordpress/url");
|
|
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_url__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./node_modules/@wordpress/core-data/build-module/utils/index.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(_wordpress_url__WEBPACK_IMPORTED_MODULE_1__["addQueryArgs"])('', Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])({}, key, value)).slice(1);
|
|
}
|
|
}
|
|
|
|
return parts;
|
|
}
|
|
/* harmony default export */ __webpack_exports__["default"] = (Object(_utils__WEBPACK_IMPORTED_MODULE_2__["withWeakMapCache"])(getQueryParts));
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/queried-data/index.js":
|
|
/*!******************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/queried-data/index.js ***!
|
|
\******************************************************************************/
|
|
/*! exports provided: reducer, receiveItems, receiveQueriedItems, getQueriedItems */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./actions */ "./node_modules/@wordpress/core-data/build-module/queried-data/actions.js");
|
|
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "receiveItems", function() { return _actions__WEBPACK_IMPORTED_MODULE_0__["receiveItems"]; });
|
|
|
|
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "receiveQueriedItems", function() { return _actions__WEBPACK_IMPORTED_MODULE_0__["receiveQueriedItems"]; });
|
|
|
|
/* harmony import */ var _selectors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectors */ "./node_modules/@wordpress/core-data/build-module/queried-data/selectors.js");
|
|
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getQueriedItems", function() { return _selectors__WEBPACK_IMPORTED_MODULE_1__["getQueriedItems"]; });
|
|
|
|
/* harmony import */ var _reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./reducer */ "./node_modules/@wordpress/core-data/build-module/queried-data/reducer.js");
|
|
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reducer", function() { return _reducer__WEBPACK_IMPORTED_MODULE_2__["default"]; });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/queried-data/reducer.js":
|
|
/*!********************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/queried-data/reducer.js ***!
|
|
\********************************************************************************/
|
|
/*! exports provided: getMergedItemIds, default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMergedItemIds", function() { return getMergedItemIds; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread */ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js");
|
|
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! redux */ "./node_modules/redux/es/redux.js");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "lodash");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
|
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./node_modules/@wordpress/core-data/build-module/utils/index.js");
|
|
/* harmony import */ var _get_query_parts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./get-query-parts */ "./node_modules/@wordpress/core-data/build-module/queried-data/get-query-parts.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 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(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__["default"])({}, state, Object(lodash__WEBPACK_IMPORTED_MODULE_2__["keyBy"])(action.items, action.key || 'id'));
|
|
}
|
|
|
|
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(lodash__WEBPACK_IMPORTED_MODULE_2__["flowRight"])([// Limit to matching action type so we don't attempt to replace action on
|
|
// an unhandled action.
|
|
Object(_utils__WEBPACK_IMPORTED_MODULE_3__["ifMatchingAction"])(function (action) {
|
|
return 'query' in action;
|
|
}), // Inject query parts into action for use both in `onSubKey` and reducer.
|
|
Object(_utils__WEBPACK_IMPORTED_MODULE_3__["replaceAction"])(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(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__["default"])({}, action, Object(_get_query_parts__WEBPACK_IMPORTED_MODULE_4__["default"])(action.query));
|
|
}
|
|
|
|
return action;
|
|
}), // Queries shape is shared, but keyed by query `stableKey` part. Original
|
|
// reducer tracks only a single query object.
|
|
Object(_utils__WEBPACK_IMPORTED_MODULE_3__["onSubKey"])('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 ? 'id' : _action$key;
|
|
|
|
if (type !== 'RECEIVE_ITEMS') {
|
|
return state;
|
|
}
|
|
|
|
return getMergedItemIds(state || [], Object(lodash__WEBPACK_IMPORTED_MODULE_2__["map"])(action.items, key), page, perPage);
|
|
});
|
|
/* harmony default export */ __webpack_exports__["default"] = (Object(redux__WEBPACK_IMPORTED_MODULE_1__["combineReducers"])({
|
|
items: items,
|
|
queries: queries
|
|
}));
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/queried-data/selectors.js":
|
|
/*!**********************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/queried-data/selectors.js ***!
|
|
\**********************************************************************************/
|
|
/*! exports provided: getQueriedItems */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getQueriedItems", function() { return getQueriedItems; });
|
|
/* harmony import */ var rememo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rememo */ "./node_modules/rememo/es/rememo.js");
|
|
/* harmony import */ var equivalent_key_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! equivalent-key-map */ "./node_modules/equivalent-key-map/equivalent-key-map.js");
|
|
/* harmony import */ var equivalent_key_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(equivalent_key_map__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _get_query_parts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./get-query-parts */ "./node_modules/@wordpress/core-data/build-module/queried-data/get-query-parts.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 = Object(_get_query_parts__WEBPACK_IMPORTED_MODULE_2__["default"])(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__WEBPACK_IMPORTED_MODULE_0__["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__WEBPACK_IMPORTED_MODULE_1___default.a();
|
|
queriedItemsCacheByState.set(state, queriedItemsCache);
|
|
}
|
|
|
|
var items = getQueriedItemsUncached(state, query);
|
|
queriedItemsCache.set(query, items);
|
|
return items;
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/reducer.js":
|
|
/*!*******************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/reducer.js ***!
|
|
\*******************************************************************/
|
|
/*! exports provided: terms, users, taxonomies, themeSupports, entitiesConfig, entities, embedPreviews, default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "terms", function() { return terms; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "users", function() { return users; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "taxonomies", function() { return taxonomies; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "themeSupports", function() { return themeSupports; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "entitiesConfig", function() { return entitiesConfig; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "entities", function() { return entities; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "embedPreviews", function() { return embedPreviews; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js");
|
|
/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js");
|
|
/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
|
|
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread */ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ "lodash");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);
|
|
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
|
|
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__);
|
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils */ "./node_modules/@wordpress/core-data/build-module/utils/index.js");
|
|
/* harmony import */ var _queried_data__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./queried-data */ "./node_modules/@wordpress/core-data/build-module/queried-data/index.js");
|
|
/* harmony import */ var _entities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./entities */ "./node_modules/@wordpress/core-data/build-module/entities.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(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_3__["default"])({}, state, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__["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 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(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_3__["default"])({}, state.byId, Object(lodash__WEBPACK_IMPORTED_MODULE_4__["keyBy"])(action.users, 'id')),
|
|
queries: Object(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_3__["default"])({}, state.queries, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__["default"])({}, action.queryID, Object(lodash__WEBPACK_IMPORTED_MODULE_4__["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 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(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_3__["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 entity(entityConfig) {
|
|
return Object(lodash__WEBPACK_IMPORTED_MODULE_4__["flowRight"])([// Limit to matching action type so we don't attempt to replace action on
|
|
// an unhandled action.
|
|
Object(_utils__WEBPACK_IMPORTED_MODULE_6__["ifMatchingAction"])(function (action) {
|
|
return action.name && action.kind && action.name === entityConfig.name && action.kind === entityConfig.kind;
|
|
}), // Inject the entity config into the action.
|
|
Object(_utils__WEBPACK_IMPORTED_MODULE_6__["replaceAction"])(function (action) {
|
|
return Object(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_3__["default"])({}, action, {
|
|
key: entityConfig.key || 'id'
|
|
});
|
|
})])(_queried_data__WEBPACK_IMPORTED_MODULE_7__["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] : _entities__WEBPACK_IMPORTED_MODULE_8__["defaultEntities"];
|
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
|
|
switch (action.type) {
|
|
case 'ADD_ENTITIES':
|
|
return Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__["default"])(state).concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__["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 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(lodash__WEBPACK_IMPORTED_MODULE_4__["groupBy"])(newConfig, 'kind');
|
|
entitiesDataReducer = Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__["combineReducers"])(Object.entries(entitiesByKind).reduce(function (memo, _ref) {
|
|
var _ref2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__["default"])(_ref, 2),
|
|
kind = _ref2[0],
|
|
subEntities = _ref2[1];
|
|
|
|
var kindReducer = Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__["combineReducers"])(subEntities.reduce(function (kindMemo, entityConfig) {
|
|
return Object(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_3__["default"])({}, kindMemo, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__["default"])({}, entityConfig.name, 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(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_3__["default"])({}, state, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__["default"])({}, url, preview));
|
|
}
|
|
|
|
return state;
|
|
}
|
|
/* harmony default export */ __webpack_exports__["default"] = (Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__["combineReducers"])({
|
|
terms: terms,
|
|
users: users,
|
|
taxonomies: taxonomies,
|
|
themeSupports: themeSupports,
|
|
entities: entities,
|
|
embedPreviews: embedPreviews
|
|
}));
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/resolvers.js":
|
|
/*!*********************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/resolvers.js ***!
|
|
\*********************************************************************/
|
|
/*! exports provided: getAuthors, getEntityRecord, getEntityRecords, getThemeSupports, getEmbedPreview */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAuthors", function() { return getAuthors; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEntityRecord", function() { return getEntityRecord; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEntityRecords", function() { return getEntityRecords; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeSupports", function() { return getThemeSupports; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEmbedPreview", function() { return getEmbedPreview; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread */ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/url */ "@wordpress/url");
|
|
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_url__WEBPACK_IMPORTED_MODULE_2__);
|
|
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions */ "./node_modules/@wordpress/core-data/build-module/actions.js");
|
|
/* harmony import */ var _entities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./entities */ "./node_modules/@wordpress/core-data/build-module/entities.js");
|
|
/* harmony import */ var _controls__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./controls */ "./node_modules/@wordpress/core-data/build-module/controls.js");
|
|
|
|
|
|
var _marked =
|
|
/*#__PURE__*/
|
|
regeneratorRuntime.mark(getAuthors),
|
|
_marked2 =
|
|
/*#__PURE__*/
|
|
regeneratorRuntime.mark(getEntityRecord),
|
|
_marked3 =
|
|
/*#__PURE__*/
|
|
regeneratorRuntime.mark(getEntityRecords),
|
|
_marked4 =
|
|
/*#__PURE__*/
|
|
regeneratorRuntime.mark(getThemeSupports),
|
|
_marked5 =
|
|
/*#__PURE__*/
|
|
regeneratorRuntime.mark(getEmbedPreview);
|
|
|
|
/**
|
|
* External dependencies
|
|
*/
|
|
|
|
/**
|
|
* WordPress dependencies
|
|
*/
|
|
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Requests authors from the REST API.
|
|
*/
|
|
|
|
function getAuthors() {
|
|
var users;
|
|
return regeneratorRuntime.wrap(function getAuthors$(_context) {
|
|
while (1) {
|
|
switch (_context.prev = _context.next) {
|
|
case 0:
|
|
_context.next = 2;
|
|
return Object(_controls__WEBPACK_IMPORTED_MODULE_5__["apiFetch"])({
|
|
path: '/wp/v2/users/?who=authors&per_page=-1'
|
|
});
|
|
|
|
case 2:
|
|
users = _context.sent;
|
|
_context.next = 5;
|
|
return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["receiveUserQuery"])('authors', users);
|
|
|
|
case 5:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}
|
|
}, _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 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 Object(_entities__WEBPACK_IMPORTED_MODULE_4__["getKindEntities"])(kind);
|
|
|
|
case 2:
|
|
entities = _context2.sent;
|
|
entity = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["find"])(entities, {
|
|
kind: kind,
|
|
name: name
|
|
});
|
|
|
|
if (entity) {
|
|
_context2.next = 6;
|
|
break;
|
|
}
|
|
|
|
return _context2.abrupt("return");
|
|
|
|
case 6:
|
|
_context2.next = 8;
|
|
return Object(_controls__WEBPACK_IMPORTED_MODULE_5__["apiFetch"])({
|
|
path: "".concat(entity.baseURL, "/").concat(key, "?context=edit")
|
|
});
|
|
|
|
case 8:
|
|
record = _context2.sent;
|
|
_context2.next = 11;
|
|
return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["receiveEntityRecords"])(kind, name, record);
|
|
|
|
case 11:
|
|
case "end":
|
|
return _context2.stop();
|
|
}
|
|
}
|
|
}, _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 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 Object(_entities__WEBPACK_IMPORTED_MODULE_4__["getKindEntities"])(kind);
|
|
|
|
case 3:
|
|
entities = _context3.sent;
|
|
entity = Object(lodash__WEBPACK_IMPORTED_MODULE_1__["find"])(entities, {
|
|
kind: kind,
|
|
name: name
|
|
});
|
|
|
|
if (entity) {
|
|
_context3.next = 7;
|
|
break;
|
|
}
|
|
|
|
return _context3.abrupt("return");
|
|
|
|
case 7:
|
|
path = Object(_wordpress_url__WEBPACK_IMPORTED_MODULE_2__["addQueryArgs"])(entity.baseURL, Object(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__["default"])({}, query, {
|
|
context: 'edit'
|
|
}));
|
|
_context3.next = 10;
|
|
return Object(_controls__WEBPACK_IMPORTED_MODULE_5__["apiFetch"])({
|
|
path: path
|
|
});
|
|
|
|
case 10:
|
|
records = _context3.sent;
|
|
_context3.next = 13;
|
|
return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["receiveEntityRecords"])(kind, name, Object.values(records), query);
|
|
|
|
case 13:
|
|
case "end":
|
|
return _context3.stop();
|
|
}
|
|
}
|
|
}, _marked3, this);
|
|
}
|
|
/**
|
|
* Requests theme supports data from the index.
|
|
*/
|
|
|
|
function getThemeSupports() {
|
|
var index;
|
|
return regeneratorRuntime.wrap(function getThemeSupports$(_context4) {
|
|
while (1) {
|
|
switch (_context4.prev = _context4.next) {
|
|
case 0:
|
|
_context4.next = 2;
|
|
return Object(_controls__WEBPACK_IMPORTED_MODULE_5__["apiFetch"])({
|
|
path: '/'
|
|
});
|
|
|
|
case 2:
|
|
index = _context4.sent;
|
|
_context4.next = 5;
|
|
return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["receiveThemeSupportsFromIndex"])(index);
|
|
|
|
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 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 Object(_controls__WEBPACK_IMPORTED_MODULE_5__["apiFetch"])({
|
|
path: Object(_wordpress_url__WEBPACK_IMPORTED_MODULE_2__["addQueryArgs"])('/oembed/1.0/proxy', {
|
|
url: url
|
|
})
|
|
});
|
|
|
|
case 3:
|
|
embedProxyResponse = _context5.sent;
|
|
_context5.next = 6;
|
|
return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["receiveEmbedPreview"])(url, embedProxyResponse);
|
|
|
|
case 6:
|
|
_context5.next = 12;
|
|
break;
|
|
|
|
case 8:
|
|
_context5.prev = 8;
|
|
_context5.t0 = _context5["catch"](0);
|
|
_context5.next = 12;
|
|
return Object(_actions__WEBPACK_IMPORTED_MODULE_3__["receiveEmbedPreview"])(url, false);
|
|
|
|
case 12:
|
|
case "end":
|
|
return _context5.stop();
|
|
}
|
|
}
|
|
}, _marked5, this, [[0, 8]]);
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/selectors.js":
|
|
/*!*********************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/selectors.js ***!
|
|
\*********************************************************************/
|
|
/*! exports provided: isRequestingEmbedPreview, getAuthors, getUserQueryResults, getEntitiesByKind, getEntity, getEntityRecord, getEntityRecords, getThemeSupports, getEmbedPreview, isPreviewEmbedFallback */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRequestingEmbedPreview", function() { return isRequestingEmbedPreview; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAuthors", function() { return getAuthors; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUserQueryResults", function() { return getUserQueryResults; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEntitiesByKind", function() { return getEntitiesByKind; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEntity", function() { return getEntity; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEntityRecord", function() { return getEntityRecord; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEntityRecords", function() { return getEntityRecords; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeSupports", function() { return getThemeSupports; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEmbedPreview", function() { return getEmbedPreview; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPreviewEmbedFallback", function() { return isPreviewEmbedFallback; });
|
|
/* harmony import */ var rememo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rememo */ "./node_modules/rememo/es/rememo.js");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
|
|
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
|
|
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__);
|
|
/* harmony import */ var _name__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./name */ "./node_modules/@wordpress/core-data/build-module/name.js");
|
|
/* harmony import */ var _queried_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./queried-data */ "./node_modules/@wordpress/core-data/build-module/queried-data/index.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(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__["select"])('core/data').isResolving(_name__WEBPACK_IMPORTED_MODULE_3__["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__WEBPACK_IMPORTED_MODULE_0__["default"])(function (state, queryID) {
|
|
var queryResults = state.users.queries[queryID];
|
|
return Object(lodash__WEBPACK_IMPORTED_MODULE_1__["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(lodash__WEBPACK_IMPORTED_MODULE_1__["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(lodash__WEBPACK_IMPORTED_MODULE_1__["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(lodash__WEBPACK_IMPORTED_MODULE_1__["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(lodash__WEBPACK_IMPORTED_MODULE_1__["get"])(state.entities.data, [kind, name]);
|
|
|
|
if (!queriedState) {
|
|
return [];
|
|
}
|
|
|
|
return Object(_queried_data__WEBPACK_IMPORTED_MODULE_4__["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;
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/utils/if-matching-action.js":
|
|
/*!************************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/utils/if-matching-action.js ***!
|
|
\************************************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/**
|
|
* 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 */ __webpack_exports__["default"] = (ifMatchingAction);
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/utils/index.js":
|
|
/*!***********************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/utils/index.js ***!
|
|
\***********************************************************************/
|
|
/*! exports provided: ifMatchingAction, onSubKey, replaceAction, withWeakMapCache */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony import */ var _if_matching_action__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./if-matching-action */ "./node_modules/@wordpress/core-data/build-module/utils/if-matching-action.js");
|
|
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ifMatchingAction", function() { return _if_matching_action__WEBPACK_IMPORTED_MODULE_0__["default"]; });
|
|
|
|
/* harmony import */ var _on_sub_key__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./on-sub-key */ "./node_modules/@wordpress/core-data/build-module/utils/on-sub-key.js");
|
|
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onSubKey", function() { return _on_sub_key__WEBPACK_IMPORTED_MODULE_1__["default"]; });
|
|
|
|
/* harmony import */ var _replace_action__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./replace-action */ "./node_modules/@wordpress/core-data/build-module/utils/replace-action.js");
|
|
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "replaceAction", function() { return _replace_action__WEBPACK_IMPORTED_MODULE_2__["default"]; });
|
|
|
|
/* harmony import */ var _with_weak_map_cache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./with-weak-map-cache */ "./node_modules/@wordpress/core-data/build-module/utils/with-weak-map-cache.js");
|
|
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withWeakMapCache", function() { return _with_weak_map_cache__WEBPACK_IMPORTED_MODULE_3__["default"]; });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/utils/on-sub-key.js":
|
|
/*!****************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/utils/on-sub-key.js ***!
|
|
\****************************************************************************/
|
|
/*! exports provided: onSubKey, default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onSubKey", function() { return onSubKey; });
|
|
/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
|
|
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread */ "./node_modules/@babel/runtime/helpers/esm/objectSpread.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 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(_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__["default"])({}, state, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])({}, key, nextKeyState));
|
|
};
|
|
};
|
|
};
|
|
/* harmony default export */ __webpack_exports__["default"] = (onSubKey);
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/utils/replace-action.js":
|
|
/*!********************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/utils/replace-action.js ***!
|
|
\********************************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/**
|
|
* 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 */ __webpack_exports__["default"] = (replaceAction);
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/@wordpress/core-data/build-module/utils/with-weak-map-cache.js":
|
|
/*!*************************************************************************************!*\
|
|
!*** ./node_modules/@wordpress/core-data/build-module/utils/with-weak-map-cache.js ***!
|
|
\*************************************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "lodash");
|
|
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
|
|
/**
|
|
* 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(lodash__WEBPACK_IMPORTED_MODULE_0__["isObjectLike"])(key)) {
|
|
cache.set(key, value);
|
|
}
|
|
}
|
|
|
|
return value;
|
|
};
|
|
}
|
|
|
|
/* harmony default export */ __webpack_exports__["default"] = (withWeakMapCache);
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/equivalent-key-map/equivalent-key-map.js":
|
|
/*!***************************************************************!*\
|
|
!*** ./node_modules/equivalent-key-map/equivalent-key-map.js ***!
|
|
\***************************************************************/
|
|
/*! no static exports found */
|
|
/***/ (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;
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/redux/es/redux.js":
|
|
/*!****************************************!*\
|
|
!*** ./node_modules/redux/es/redux.js ***!
|
|
\****************************************/
|
|
/*! exports provided: createStore, combineReducers, bindActionCreators, applyMiddleware, compose, __DO_NOT_USE__ActionTypes */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return createStore; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return combineReducers; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return bindActionCreators; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return applyMiddleware; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return compose; });
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__DO_NOT_USE__ActionTypes", function() { return ActionTypes; });
|
|
/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! symbol-observable */ "./node_modules/redux/node_modules/symbol-observable/es/index.js");
|
|
|
|
|
|
/**
|
|
* 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"]] = 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"]] = 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 (true) {
|
|
if (typeof reducers[key] === 'undefined') {
|
|
warning("No reducer provided for key \"" + key + "\"");
|
|
}
|
|
}
|
|
|
|
if (typeof reducers[key] === 'function') {
|
|
finalReducers[key] = reducers[key];
|
|
}
|
|
}
|
|
|
|
var finalReducerKeys = Object.keys(finalReducers);
|
|
var unexpectedKeyCache;
|
|
|
|
if (true) {
|
|
unexpectedKeyCache = {};
|
|
}
|
|
|
|
var shapeAssertionError;
|
|
|
|
try {
|
|
assertReducerShape(finalReducers);
|
|
} catch (e) {
|
|
shapeAssertionError = e;
|
|
}
|
|
|
|
return function combination(state, action) {
|
|
if (state === void 0) {
|
|
state = {};
|
|
}
|
|
|
|
if (shapeAssertionError) {
|
|
throw shapeAssertionError;
|
|
}
|
|
|
|
if (true) {
|
|
var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);
|
|
|
|
if (warningMessage) {
|
|
warning(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 ( true && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {
|
|
warning('You are currently using minified code outside of NODE_ENV === "production". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');
|
|
}
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/redux/node_modules/symbol-observable/es/index.js":
|
|
/*!***********************************************************************!*\
|
|
!*** ./node_modules/redux/node_modules/symbol-observable/es/index.js ***!
|
|
\***********************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ponyfill.js */ "./node_modules/redux/node_modules/symbol-observable/es/ponyfill.js");
|
|
/* 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"])(root);
|
|
/* harmony default export */ __webpack_exports__["default"] = (result);
|
|
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../../../../webpack/buildin/harmony-module.js */ "./node_modules/webpack/buildin/harmony-module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/redux/node_modules/symbol-observable/es/ponyfill.js":
|
|
/*!**************************************************************************!*\
|
|
!*** ./node_modules/redux/node_modules/symbol-observable/es/ponyfill.js ***!
|
|
\**************************************************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", 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;
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/rememo/es/rememo.js":
|
|
/*!******************************************!*\
|
|
!*** ./node_modules/rememo/es/rememo.js ***!
|
|
\******************************************/
|
|
/*! exports provided: default */
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
|
|
|
|
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__["default"] = (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;
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/webpack/buildin/global.js":
|
|
/*!***********************************!*\
|
|
!*** (webpack)/buildin/global.js ***!
|
|
\***********************************/
|
|
/*! no static exports found */
|
|
/***/ (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 || new Function("return 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;
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/webpack/buildin/harmony-module.js":
|
|
/*!*******************************************!*\
|
|
!*** (webpack)/buildin/harmony-module.js ***!
|
|
\*******************************************/
|
|
/*! no static exports found */
|
|
/***/ (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;
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "@wordpress/api-fetch":
|
|
/*!*******************************************!*\
|
|
!*** external {"this":["wp","apiFetch"]} ***!
|
|
\*******************************************/
|
|
/*! no static exports found */
|
|
/***/ (function(module, exports) {
|
|
|
|
(function() { module.exports = this["wp"]["apiFetch"]; }());
|
|
|
|
/***/ }),
|
|
|
|
/***/ "@wordpress/data":
|
|
/*!***************************************!*\
|
|
!*** external {"this":["wp","data"]} ***!
|
|
\***************************************/
|
|
/*! no static exports found */
|
|
/***/ (function(module, exports) {
|
|
|
|
(function() { module.exports = this["wp"]["data"]; }());
|
|
|
|
/***/ }),
|
|
|
|
/***/ "@wordpress/url":
|
|
/*!**************************************!*\
|
|
!*** external {"this":["wp","url"]} ***!
|
|
\**************************************/
|
|
/*! no static exports found */
|
|
/***/ (function(module, exports) {
|
|
|
|
(function() { module.exports = this["wp"]["url"]; }());
|
|
|
|
/***/ }),
|
|
|
|
/***/ "lodash":
|
|
/*!*************************!*\
|
|
!*** external "lodash" ***!
|
|
\*************************/
|
|
/*! no static exports found */
|
|
/***/ (function(module, exports) {
|
|
|
|
(function() { module.exports = this["lodash"]; }());
|
|
|
|
/***/ })
|
|
|
|
/******/ });
|
|
//# sourceMappingURL=core-data.js.map
|