1723 lines
55 KiB
JavaScript
1723 lines
55 KiB
JavaScript
|
|
this["wp"] = this["wp"] || {}; this["wp"]["blockDirectory"] =
|
|||
|
|
/******/ (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 = 429);
|
|||
|
|
/******/ })
|
|||
|
|
/************************************************************************/
|
|||
|
|
/******/ ({
|
|||
|
|
|
|||
|
|
/***/ 0:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["element"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 1:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["i18n"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 10:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["blocks"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 18:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
|
|||
|
|
var arrayLikeToArray = __webpack_require__(25);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
|
|||
|
|
|
|||
|
|
function _arrayWithoutHoles(arr) {
|
|||
|
|
if (Array.isArray(arr)) return Object(arrayLikeToArray["a" /* default */])(arr);
|
|||
|
|
}
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
|
|||
|
|
var iterableToArray = __webpack_require__(35);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
|
|||
|
|
var unsupportedIterableToArray = __webpack_require__(27);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
|
|||
|
|
function _nonIterableSpread() {
|
|||
|
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|||
|
|
}
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
|
|||
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _toConsumableArray; });
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function _toConsumableArray(arr) {
|
|||
|
|
return _arrayWithoutHoles(arr) || Object(iterableToArray["a" /* default */])(arr) || Object(unsupportedIterableToArray["a" /* default */])(arr) || _nonIterableSpread();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 2:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["lodash"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 20:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
|
|||
|
|
var arrayWithHoles = __webpack_require__(38);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
|
|||
|
|
function _iterableToArrayLimit(arr, i) {
|
|||
|
|
if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
|
|||
|
|
var _arr = [];
|
|||
|
|
var _n = true;
|
|||
|
|
var _d = false;
|
|||
|
|
var _e = undefined;
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
|||
|
|
_arr.push(_s.value);
|
|||
|
|
|
|||
|
|
if (i && _arr.length === i) break;
|
|||
|
|
}
|
|||
|
|
} catch (err) {
|
|||
|
|
_d = true;
|
|||
|
|
_e = err;
|
|||
|
|
} finally {
|
|||
|
|
try {
|
|||
|
|
if (!_n && _i["return"] != null) _i["return"]();
|
|||
|
|
} finally {
|
|||
|
|
if (_d) throw _e;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return _arr;
|
|||
|
|
}
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
|
|||
|
|
var unsupportedIterableToArray = __webpack_require__(27);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
|
|||
|
|
var nonIterableRest = __webpack_require__(39);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
|
|||
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _slicedToArray; });
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function _slicedToArray(arr, i) {
|
|||
|
|
return Object(arrayWithHoles["a" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray["a" /* default */])(arr, i) || Object(nonIterableRest["a" /* default */])();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 23:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["regeneratorRuntime"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 25:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayLikeToArray; });
|
|||
|
|
function _arrayLikeToArray(arr, len) {
|
|||
|
|
if (len == null || len > arr.length) len = arr.length;
|
|||
|
|
|
|||
|
|
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
|||
|
|
arr2[i] = arr[i];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return arr2;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 27:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _unsupportedIterableToArray; });
|
|||
|
|
/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
|
|||
|
|
|
|||
|
|
function _unsupportedIterableToArray(o, minLen) {
|
|||
|
|
if (!o) return;
|
|||
|
|
if (typeof o === "string") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
|
|||
|
|
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|||
|
|
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|||
|
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|||
|
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(o, minLen);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 3:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["components"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 35:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _iterableToArray; });
|
|||
|
|
function _iterableToArray(iter) {
|
|||
|
|
if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 38:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayWithHoles; });
|
|||
|
|
function _arrayWithHoles(arr) {
|
|||
|
|
if (Array.isArray(arr)) return arr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 39:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _nonIterableRest; });
|
|||
|
|
function _nonIterableRest() {
|
|||
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 4:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["data"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 42:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["apiFetch"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 429:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
__webpack_require__.r(__webpack_exports__);
|
|||
|
|
var selectors_namespaceObject = {};
|
|||
|
|
__webpack_require__.r(selectors_namespaceObject);
|
|||
|
|
__webpack_require__.d(selectors_namespaceObject, "isRequestingDownloadableBlocks", function() { return isRequestingDownloadableBlocks; });
|
|||
|
|
__webpack_require__.d(selectors_namespaceObject, "getDownloadableBlocks", function() { return selectors_getDownloadableBlocks; });
|
|||
|
|
__webpack_require__.d(selectors_namespaceObject, "hasInstallBlocksPermission", function() { return selectors_hasInstallBlocksPermission; });
|
|||
|
|
__webpack_require__.d(selectors_namespaceObject, "getInstalledBlockTypes", function() { return getInstalledBlockTypes; });
|
|||
|
|
var actions_namespaceObject = {};
|
|||
|
|
__webpack_require__.r(actions_namespaceObject);
|
|||
|
|
__webpack_require__.d(actions_namespaceObject, "fetchDownloadableBlocks", function() { return fetchDownloadableBlocks; });
|
|||
|
|
__webpack_require__.d(actions_namespaceObject, "receiveDownloadableBlocks", function() { return receiveDownloadableBlocks; });
|
|||
|
|
__webpack_require__.d(actions_namespaceObject, "setInstallBlocksPermission", function() { return setInstallBlocksPermission; });
|
|||
|
|
__webpack_require__.d(actions_namespaceObject, "downloadBlock", function() { return actions_downloadBlock; });
|
|||
|
|
__webpack_require__.d(actions_namespaceObject, "installBlock", function() { return actions_installBlock; });
|
|||
|
|
__webpack_require__.d(actions_namespaceObject, "uninstallBlock", function() { return uninstallBlock; });
|
|||
|
|
__webpack_require__.d(actions_namespaceObject, "addInstalledBlockType", function() { return addInstalledBlockType; });
|
|||
|
|
__webpack_require__.d(actions_namespaceObject, "removeInstalledBlockType", function() { return removeInstalledBlockType; });
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","data"]}
|
|||
|
|
var external_this_wp_data_ = __webpack_require__(4);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
|
|||
|
|
var toConsumableArray = __webpack_require__(18);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
|||
|
|
var defineProperty = __webpack_require__(5);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/reducer.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|||
|
|
|
|||
|
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Reducer returning an array of downloadable blocks.
|
|||
|
|
*
|
|||
|
|
* @param {Object} state Current state.
|
|||
|
|
* @param {Object} action Dispatched action.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Updated state.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
var reducer_downloadableBlocks = function downloadableBlocks() {
|
|||
|
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|||
|
|
results: {},
|
|||
|
|
filterValue: undefined,
|
|||
|
|
isRequestingDownloadableBlocks: true
|
|||
|
|
};
|
|||
|
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|||
|
|
|
|||
|
|
switch (action.type) {
|
|||
|
|
case 'FETCH_DOWNLOADABLE_BLOCKS':
|
|||
|
|
return _objectSpread({}, state, {
|
|||
|
|
isRequestingDownloadableBlocks: true
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 'RECEIVE_DOWNLOADABLE_BLOCKS':
|
|||
|
|
return _objectSpread({}, state, {
|
|||
|
|
results: Object.assign({}, state.results, Object(defineProperty["a" /* default */])({}, action.filterValue, action.downloadableBlocks)),
|
|||
|
|
isRequestingDownloadableBlocks: false
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return state;
|
|||
|
|
};
|
|||
|
|
/**
|
|||
|
|
* Reducer managing the installation and deletion of blocks.
|
|||
|
|
*
|
|||
|
|
* @param {Object} state Current state.
|
|||
|
|
* @param {Object} action Dispatched action.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Updated state.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
var reducer_blockManagement = function blockManagement() {
|
|||
|
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|||
|
|
installedBlockTypes: []
|
|||
|
|
};
|
|||
|
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|||
|
|
|
|||
|
|
switch (action.type) {
|
|||
|
|
case 'ADD_INSTALLED_BLOCK_TYPE':
|
|||
|
|
return _objectSpread({}, state, {
|
|||
|
|
installedBlockTypes: [].concat(Object(toConsumableArray["a" /* default */])(state.installedBlockTypes), [action.item])
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 'REMOVE_INSTALLED_BLOCK_TYPE':
|
|||
|
|
return _objectSpread({}, state, {
|
|||
|
|
installedBlockTypes: state.installedBlockTypes.filter(function (blockType) {
|
|||
|
|
return blockType.name !== action.item.name;
|
|||
|
|
})
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return state;
|
|||
|
|
};
|
|||
|
|
/**
|
|||
|
|
* Reducer returns whether the user can install blocks.
|
|||
|
|
*
|
|||
|
|
* @param {Object} state Current state.
|
|||
|
|
* @param {Object} action Dispatched action.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Updated state.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function reducer_hasPermission() {
|
|||
|
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|||
|
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|||
|
|
|
|||
|
|
if (action.type === 'SET_INSTALL_BLOCKS_PERMISSION') {
|
|||
|
|
return action.hasPermission;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return state;
|
|||
|
|
}
|
|||
|
|
/* harmony default export */ var reducer = (Object(external_this_wp_data_["combineReducers"])({
|
|||
|
|
downloadableBlocks: reducer_downloadableBlocks,
|
|||
|
|
blockManagement: reducer_blockManagement,
|
|||
|
|
hasPermission: reducer_hasPermission
|
|||
|
|
}));
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/selectors.js
|
|||
|
|
/**
|
|||
|
|
* Returns true if application is requesting for downloadable blocks.
|
|||
|
|
*
|
|||
|
|
* @param {Object} state Global application state.
|
|||
|
|
*
|
|||
|
|
* @return {Array} Downloadable blocks
|
|||
|
|
*/
|
|||
|
|
function isRequestingDownloadableBlocks(state) {
|
|||
|
|
return state.downloadableBlocks.isRequestingDownloadableBlocks;
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Returns the available uninstalled blocks
|
|||
|
|
*
|
|||
|
|
* @param {Object} state Global application state.
|
|||
|
|
* @param {string} filterValue Search string.
|
|||
|
|
*
|
|||
|
|
* @return {Array} Downloadable blocks
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function selectors_getDownloadableBlocks(state, filterValue) {
|
|||
|
|
if (!state.downloadableBlocks.results[filterValue]) {
|
|||
|
|
return [];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return state.downloadableBlocks.results[filterValue];
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Returns true if user has permission to install blocks.
|
|||
|
|
*
|
|||
|
|
* @param {Object} state Global application state.
|
|||
|
|
*
|
|||
|
|
* @return {boolean} User has permission to install blocks.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function selectors_hasInstallBlocksPermission(state) {
|
|||
|
|
return state.hasPermission;
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Returns the block types that have been installed on the server.
|
|||
|
|
*
|
|||
|
|
* @param {Object} state Global application state.
|
|||
|
|
*
|
|||
|
|
* @return {Array} Block type items.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function getInstalledBlockTypes(state) {
|
|||
|
|
return state.blockManagement.installedBlockTypes;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":"regeneratorRuntime"}
|
|||
|
|
var external_this_regeneratorRuntime_ = __webpack_require__(23);
|
|||
|
|
var external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","blocks"]}
|
|||
|
|
var external_this_wp_blocks_ = __webpack_require__(10);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":"lodash"}
|
|||
|
|
var external_this_lodash_ = __webpack_require__(2);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","apiFetch"]}
|
|||
|
|
var external_this_wp_apiFetch_ = __webpack_require__(42);
|
|||
|
|
var external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/controls.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function controls_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|||
|
|
|
|||
|
|
function controls_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { controls_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty["a" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { controls_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|||
|
|
|
|||
|
|
var _marked =
|
|||
|
|
/*#__PURE__*/
|
|||
|
|
external_this_regeneratorRuntime_default.a.mark(loadAssets);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* External dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Calls a selector using the current state.
|
|||
|
|
*
|
|||
|
|
* @param {string} storeName Store name.
|
|||
|
|
* @param {string} selectorName Selector name.
|
|||
|
|
* @param {Array} args Selector arguments.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Control descriptor.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function controls_select(storeName, selectorName) {
|
|||
|
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|||
|
|
args[_key - 2] = arguments[_key];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return {
|
|||
|
|
type: 'SELECT',
|
|||
|
|
storeName: storeName,
|
|||
|
|
selectorName: selectorName,
|
|||
|
|
args: args
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Calls a dispatcher using the current state.
|
|||
|
|
*
|
|||
|
|
* @param {string} storeName Store name.
|
|||
|
|
* @param {string} dispatcherName Dispatcher name.
|
|||
|
|
* @param {Array} args Selector arguments.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Control descriptor.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function controls_dispatch(storeName, dispatcherName) {
|
|||
|
|
for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
|||
|
|
args[_key2 - 2] = arguments[_key2];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return {
|
|||
|
|
type: 'DISPATCH',
|
|||
|
|
storeName: storeName,
|
|||
|
|
dispatcherName: dispatcherName,
|
|||
|
|
args: args
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 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
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Loads JavaScript
|
|||
|
|
*
|
|||
|
|
* @param {Array} asset The url for the JavaScript.
|
|||
|
|
* @param {Function} onLoad Callback function on success.
|
|||
|
|
* @param {Function} onError Callback function on failure.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
var loadScript = function loadScript(asset, onLoad, onError) {
|
|||
|
|
if (!asset) {
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var existing = document.querySelector("script[src=\"".concat(asset.src, "\"]"));
|
|||
|
|
|
|||
|
|
if (existing) {
|
|||
|
|
existing.parentNode.removeChild(existing);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var script = document.createElement('script');
|
|||
|
|
script.src = typeof asset === 'string' ? asset : asset.src;
|
|||
|
|
script.onload = onLoad;
|
|||
|
|
script.onerror = onError;
|
|||
|
|
document.body.appendChild(script);
|
|||
|
|
};
|
|||
|
|
/**
|
|||
|
|
* Loads CSS file.
|
|||
|
|
*
|
|||
|
|
* @param {*} asset the url for the CSS file.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
var loadStyle = function loadStyle(asset) {
|
|||
|
|
if (!asset) {
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var link = document.createElement('link');
|
|||
|
|
link.rel = 'stylesheet';
|
|||
|
|
link.href = typeof asset === 'string' ? asset : asset.src;
|
|||
|
|
document.body.appendChild(link);
|
|||
|
|
};
|
|||
|
|
/**
|
|||
|
|
* Load the asset files for a block
|
|||
|
|
*
|
|||
|
|
* @param {Array} assets A collection of URL for the assets.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Control descriptor.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
function loadAssets(assets) {
|
|||
|
|
return external_this_regeneratorRuntime_default.a.wrap(function loadAssets$(_context) {
|
|||
|
|
while (1) {
|
|||
|
|
switch (_context.prev = _context.next) {
|
|||
|
|
case 0:
|
|||
|
|
return _context.abrupt("return", {
|
|||
|
|
type: 'LOAD_ASSETS',
|
|||
|
|
assets: assets
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 1:
|
|||
|
|
case "end":
|
|||
|
|
return _context.stop();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, _marked);
|
|||
|
|
}
|
|||
|
|
var controls = {
|
|||
|
|
SELECT: Object(external_this_wp_data_["createRegistryControl"])(function (registry) {
|
|||
|
|
return function (_ref) {
|
|||
|
|
var _registry$select;
|
|||
|
|
|
|||
|
|
var storeName = _ref.storeName,
|
|||
|
|
selectorName = _ref.selectorName,
|
|||
|
|
args = _ref.args;
|
|||
|
|
return (_registry$select = registry.select(storeName))[selectorName].apply(_registry$select, Object(toConsumableArray["a" /* default */])(args));
|
|||
|
|
};
|
|||
|
|
}),
|
|||
|
|
DISPATCH: Object(external_this_wp_data_["createRegistryControl"])(function (registry) {
|
|||
|
|
return function (_ref2) {
|
|||
|
|
var _registry$dispatch;
|
|||
|
|
|
|||
|
|
var storeName = _ref2.storeName,
|
|||
|
|
dispatcherName = _ref2.dispatcherName,
|
|||
|
|
args = _ref2.args;
|
|||
|
|
return (_registry$dispatch = registry.dispatch(storeName))[dispatcherName].apply(_registry$dispatch, Object(toConsumableArray["a" /* default */])(args));
|
|||
|
|
};
|
|||
|
|
}),
|
|||
|
|
API_FETCH: function API_FETCH(_ref3) {
|
|||
|
|
var request = _ref3.request;
|
|||
|
|
return external_this_wp_apiFetch_default()(controls_objectSpread({}, request));
|
|||
|
|
},
|
|||
|
|
LOAD_ASSETS: function LOAD_ASSETS(_ref4) {
|
|||
|
|
var assets = _ref4.assets;
|
|||
|
|
return new Promise(function (resolve, reject) {
|
|||
|
|
if (Array.isArray(assets)) {
|
|||
|
|
var scriptsCount = 0;
|
|||
|
|
Object(external_this_lodash_["forEach"])(assets, function (asset) {
|
|||
|
|
if (asset.match(/\.js$/) !== null) {
|
|||
|
|
scriptsCount++;
|
|||
|
|
loadScript(asset, function () {
|
|||
|
|
scriptsCount--;
|
|||
|
|
|
|||
|
|
if (scriptsCount === 0) {
|
|||
|
|
return resolve(scriptsCount);
|
|||
|
|
}
|
|||
|
|
}, reject);
|
|||
|
|
} else {
|
|||
|
|
loadStyle(asset);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
loadScript(assets.editor_script, function () {
|
|||
|
|
return resolve(0);
|
|||
|
|
}, reject);
|
|||
|
|
loadStyle(assets.style);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
/* harmony default export */ var store_controls = (controls);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/actions.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
var actions_marked =
|
|||
|
|
/*#__PURE__*/
|
|||
|
|
external_this_regeneratorRuntime_default.a.mark(actions_downloadBlock),
|
|||
|
|
_marked2 =
|
|||
|
|
/*#__PURE__*/
|
|||
|
|
external_this_regeneratorRuntime_default.a.mark(actions_installBlock),
|
|||
|
|
_marked3 =
|
|||
|
|
/*#__PURE__*/
|
|||
|
|
external_this_regeneratorRuntime_default.a.mark(uninstallBlock);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Returns an action object used in signalling that the downloadable blocks have been requested and is loading.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Action object.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function fetchDownloadableBlocks() {
|
|||
|
|
return {
|
|||
|
|
type: 'FETCH_DOWNLOADABLE_BLOCKS'
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Returns an action object used in signalling that the downloadable blocks have been updated.
|
|||
|
|
*
|
|||
|
|
* @param {Array} downloadableBlocks Downloadable blocks.
|
|||
|
|
* @param {string} filterValue Search string.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Action object.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function receiveDownloadableBlocks(downloadableBlocks, filterValue) {
|
|||
|
|
return {
|
|||
|
|
type: 'RECEIVE_DOWNLOADABLE_BLOCKS',
|
|||
|
|
downloadableBlocks: downloadableBlocks,
|
|||
|
|
filterValue: filterValue
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Returns an action object used in signalling that the user does not have permission to install blocks.
|
|||
|
|
*
|
|||
|
|
@param {boolean} hasPermission User has permission to install blocks.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Action object.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function setInstallBlocksPermission(hasPermission) {
|
|||
|
|
return {
|
|||
|
|
type: 'SET_INSTALL_BLOCKS_PERMISSION',
|
|||
|
|
hasPermission: hasPermission
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Action triggered to download block assets.
|
|||
|
|
*
|
|||
|
|
* @param {Object} item The selected block item
|
|||
|
|
* @param {Function} onSuccess The callback function when the action has succeeded.
|
|||
|
|
* @param {Function} onError The callback function when the action has failed.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function actions_downloadBlock(item, onSuccess, onError) {
|
|||
|
|
var registeredBlocks;
|
|||
|
|
return external_this_regeneratorRuntime_default.a.wrap(function downloadBlock$(_context) {
|
|||
|
|
while (1) {
|
|||
|
|
switch (_context.prev = _context.next) {
|
|||
|
|
case 0:
|
|||
|
|
_context.prev = 0;
|
|||
|
|
|
|||
|
|
if (item.assets.length) {
|
|||
|
|
_context.next = 3;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
throw new Error('Block has no assets');
|
|||
|
|
|
|||
|
|
case 3:
|
|||
|
|
_context.next = 5;
|
|||
|
|
return loadAssets(item.assets);
|
|||
|
|
|
|||
|
|
case 5:
|
|||
|
|
registeredBlocks = Object(external_this_wp_blocks_["getBlockTypes"])();
|
|||
|
|
|
|||
|
|
if (!registeredBlocks.length) {
|
|||
|
|
_context.next = 10;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
onSuccess(item);
|
|||
|
|
_context.next = 11;
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case 10:
|
|||
|
|
throw new Error('Unable to get block types');
|
|||
|
|
|
|||
|
|
case 11:
|
|||
|
|
_context.next = 17;
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case 13:
|
|||
|
|
_context.prev = 13;
|
|||
|
|
_context.t0 = _context["catch"](0);
|
|||
|
|
_context.next = 17;
|
|||
|
|
return onError(_context.t0);
|
|||
|
|
|
|||
|
|
case 17:
|
|||
|
|
case "end":
|
|||
|
|
return _context.stop();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, actions_marked, null, [[0, 13]]);
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Action triggered to install a block plugin.
|
|||
|
|
*
|
|||
|
|
* @param {string} item The block item returned by search.
|
|||
|
|
* @param {Function} onSuccess The callback function when the action has succeeded.
|
|||
|
|
* @param {Function} onError The callback function when the action has failed.
|
|||
|
|
*
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function actions_installBlock(_ref, onSuccess, onError) {
|
|||
|
|
var id, name, response;
|
|||
|
|
return external_this_regeneratorRuntime_default.a.wrap(function installBlock$(_context2) {
|
|||
|
|
while (1) {
|
|||
|
|
switch (_context2.prev = _context2.next) {
|
|||
|
|
case 0:
|
|||
|
|
id = _ref.id, name = _ref.name;
|
|||
|
|
_context2.prev = 1;
|
|||
|
|
_context2.next = 4;
|
|||
|
|
return apiFetch({
|
|||
|
|
path: '__experimental/block-directory/install',
|
|||
|
|
data: {
|
|||
|
|
slug: id
|
|||
|
|
},
|
|||
|
|
method: 'POST'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 4:
|
|||
|
|
response = _context2.sent;
|
|||
|
|
|
|||
|
|
if (!(response.success === false)) {
|
|||
|
|
_context2.next = 7;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
throw new Error(response.errorMessage);
|
|||
|
|
|
|||
|
|
case 7:
|
|||
|
|
_context2.next = 9;
|
|||
|
|
return addInstalledBlockType({
|
|||
|
|
id: id,
|
|||
|
|
name: name
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 9:
|
|||
|
|
onSuccess();
|
|||
|
|
_context2.next = 15;
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case 12:
|
|||
|
|
_context2.prev = 12;
|
|||
|
|
_context2.t0 = _context2["catch"](1);
|
|||
|
|
onError(_context2.t0);
|
|||
|
|
|
|||
|
|
case 15:
|
|||
|
|
case "end":
|
|||
|
|
return _context2.stop();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, _marked2, null, [[1, 12]]);
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Action triggered to uninstall a block plugin.
|
|||
|
|
*
|
|||
|
|
* @param {string} item The block item returned by search.
|
|||
|
|
* @param {Function} onSuccess The callback function when the action has succeeded.
|
|||
|
|
* @param {Function} onError The callback function when the action has failed.
|
|||
|
|
*
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function uninstallBlock(_ref2, onSuccess, onError) {
|
|||
|
|
var id, name, response;
|
|||
|
|
return external_this_regeneratorRuntime_default.a.wrap(function uninstallBlock$(_context3) {
|
|||
|
|
while (1) {
|
|||
|
|
switch (_context3.prev = _context3.next) {
|
|||
|
|
case 0:
|
|||
|
|
id = _ref2.id, name = _ref2.name;
|
|||
|
|
_context3.prev = 1;
|
|||
|
|
_context3.next = 4;
|
|||
|
|
return apiFetch({
|
|||
|
|
path: '__experimental/block-directory/uninstall',
|
|||
|
|
data: {
|
|||
|
|
slug: id
|
|||
|
|
},
|
|||
|
|
method: 'DELETE'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 4:
|
|||
|
|
response = _context3.sent;
|
|||
|
|
|
|||
|
|
if (!(response.success === false)) {
|
|||
|
|
_context3.next = 7;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
throw new Error(response.errorMessage);
|
|||
|
|
|
|||
|
|
case 7:
|
|||
|
|
_context3.next = 9;
|
|||
|
|
return removeInstalledBlockType({
|
|||
|
|
id: id,
|
|||
|
|
name: name
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 9:
|
|||
|
|
onSuccess();
|
|||
|
|
_context3.next = 15;
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case 12:
|
|||
|
|
_context3.prev = 12;
|
|||
|
|
_context3.t0 = _context3["catch"](1);
|
|||
|
|
onError(_context3.t0);
|
|||
|
|
|
|||
|
|
case 15:
|
|||
|
|
case "end":
|
|||
|
|
return _context3.stop();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, _marked3, null, [[1, 12]]);
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Returns an action object used to add a newly installed block type.
|
|||
|
|
*
|
|||
|
|
* @param {string} item The block item with the block id and name.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Action object.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function addInstalledBlockType(item) {
|
|||
|
|
return {
|
|||
|
|
type: 'ADD_INSTALLED_BLOCK_TYPE',
|
|||
|
|
item: item
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Returns an action object used to remove a newly installed block type.
|
|||
|
|
*
|
|||
|
|
* @param {string} item The block item with the block id and name.
|
|||
|
|
*
|
|||
|
|
* @return {Object} Action object.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
function removeInstalledBlockType(item) {
|
|||
|
|
return {
|
|||
|
|
type: 'REMOVE_INSTALLED_BLOCK_TYPE',
|
|||
|
|
item: item
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/resolvers.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* External dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/* harmony default export */ var resolvers = ({
|
|||
|
|
getDownloadableBlocks:
|
|||
|
|
/*#__PURE__*/
|
|||
|
|
external_this_regeneratorRuntime_default.a.mark(function getDownloadableBlocks(filterValue) {
|
|||
|
|
var results, blocks;
|
|||
|
|
return external_this_regeneratorRuntime_default.a.wrap(function getDownloadableBlocks$(_context) {
|
|||
|
|
while (1) {
|
|||
|
|
switch (_context.prev = _context.next) {
|
|||
|
|
case 0:
|
|||
|
|
if (filterValue) {
|
|||
|
|
_context.next = 2;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return _context.abrupt("return");
|
|||
|
|
|
|||
|
|
case 2:
|
|||
|
|
_context.prev = 2;
|
|||
|
|
_context.next = 5;
|
|||
|
|
return fetchDownloadableBlocks(filterValue);
|
|||
|
|
|
|||
|
|
case 5:
|
|||
|
|
_context.next = 7;
|
|||
|
|
return apiFetch({
|
|||
|
|
path: "__experimental/block-directory/search?term=".concat(filterValue)
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 7:
|
|||
|
|
results = _context.sent;
|
|||
|
|
blocks = results.map(function (result) {
|
|||
|
|
return Object(external_this_lodash_["mapKeys"])(result, function (value, key) {
|
|||
|
|
return Object(external_this_lodash_["camelCase"])(key);
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
_context.next = 11;
|
|||
|
|
return receiveDownloadableBlocks(blocks, filterValue);
|
|||
|
|
|
|||
|
|
case 11:
|
|||
|
|
_context.next = 18;
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case 13:
|
|||
|
|
_context.prev = 13;
|
|||
|
|
_context.t0 = _context["catch"](2);
|
|||
|
|
|
|||
|
|
if (!(_context.t0.code === 'rest_user_cannot_view')) {
|
|||
|
|
_context.next = 18;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
_context.next = 18;
|
|||
|
|
return setInstallBlocksPermission(false);
|
|||
|
|
|
|||
|
|
case 18:
|
|||
|
|
case "end":
|
|||
|
|
return _context.stop();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, getDownloadableBlocks, null, [[2, 13]]);
|
|||
|
|
}),
|
|||
|
|
hasInstallBlocksPermission:
|
|||
|
|
/*#__PURE__*/
|
|||
|
|
external_this_regeneratorRuntime_default.a.mark(function hasInstallBlocksPermission() {
|
|||
|
|
return external_this_regeneratorRuntime_default.a.wrap(function hasInstallBlocksPermission$(_context2) {
|
|||
|
|
while (1) {
|
|||
|
|
switch (_context2.prev = _context2.next) {
|
|||
|
|
case 0:
|
|||
|
|
_context2.prev = 0;
|
|||
|
|
_context2.next = 3;
|
|||
|
|
return apiFetch({
|
|||
|
|
path: "__experimental/block-directory/search?term="
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
case 3:
|
|||
|
|
_context2.next = 5;
|
|||
|
|
return setInstallBlocksPermission(true);
|
|||
|
|
|
|||
|
|
case 5:
|
|||
|
|
_context2.next = 12;
|
|||
|
|
break;
|
|||
|
|
|
|||
|
|
case 7:
|
|||
|
|
_context2.prev = 7;
|
|||
|
|
_context2.t0 = _context2["catch"](0);
|
|||
|
|
|
|||
|
|
if (!(_context2.t0.code === 'rest_user_cannot_view')) {
|
|||
|
|
_context2.next = 12;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
_context2.next = 12;
|
|||
|
|
return setInstallBlocksPermission(false);
|
|||
|
|
|
|||
|
|
case 12:
|
|||
|
|
case "end":
|
|||
|
|
return _context2.stop();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}, hasInstallBlocksPermission, null, [[0, 7]]);
|
|||
|
|
})
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/index.js
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Module Constants
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
var MODULE_KEY = 'core/block-directory';
|
|||
|
|
/**
|
|||
|
|
* Block editor data store configuration.
|
|||
|
|
*
|
|||
|
|
* @see https://github.com/WordPress/gutenberg/blob/master/packages/data/README.md#registerStore
|
|||
|
|
*
|
|||
|
|
* @type {Object}
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
var storeConfig = {
|
|||
|
|
reducer: reducer,
|
|||
|
|
selectors: selectors_namespaceObject,
|
|||
|
|
actions: actions_namespaceObject,
|
|||
|
|
controls: store_controls,
|
|||
|
|
resolvers: resolvers
|
|||
|
|
};
|
|||
|
|
var store = Object(external_this_wp_data_["registerStore"])(MODULE_KEY, storeConfig);
|
|||
|
|
/* harmony default export */ var build_module_store = (store);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","element"]}
|
|||
|
|
var external_this_wp_element_ = __webpack_require__(0);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","plugins"]}
|
|||
|
|
var external_this_wp_plugins_ = __webpack_require__(55);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
|
|||
|
|
var slicedToArray = __webpack_require__(20);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","blockEditor"]}
|
|||
|
|
var external_this_wp_blockEditor_ = __webpack_require__(6);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","compose"]}
|
|||
|
|
var external_this_wp_compose_ = __webpack_require__(8);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","i18n"]}
|
|||
|
|
var external_this_wp_i18n_ = __webpack_require__(1);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","components"]}
|
|||
|
|
var external_this_wp_components_ = __webpack_require__(3);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/block-ratings/stars.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* External dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function Stars(_ref) {
|
|||
|
|
var rating = _ref.rating;
|
|||
|
|
var stars = Math.round(rating / 0.5) * 0.5;
|
|||
|
|
var fullStarCount = Math.floor(rating);
|
|||
|
|
var halfStarCount = Math.ceil(rating - fullStarCount);
|
|||
|
|
var emptyStarCount = 5 - (fullStarCount + halfStarCount);
|
|||
|
|
return Object(external_this_wp_element_["createElement"])("div", {
|
|||
|
|
"aria-label": Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('%s out of 5 stars'), stars)
|
|||
|
|
}, Object(external_this_lodash_["times"])(fullStarCount, function (i) {
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Icon"], {
|
|||
|
|
key: "full_stars_".concat(i),
|
|||
|
|
icon: "star-filled",
|
|||
|
|
size: 16
|
|||
|
|
});
|
|||
|
|
}), Object(external_this_lodash_["times"])(halfStarCount, function (i) {
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Icon"], {
|
|||
|
|
key: "half_stars_".concat(i),
|
|||
|
|
icon: "star-half",
|
|||
|
|
size: 16
|
|||
|
|
});
|
|||
|
|
}), Object(external_this_lodash_["times"])(emptyStarCount, function (i) {
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Icon"], {
|
|||
|
|
key: "empty_stars_".concat(i),
|
|||
|
|
icon: "star-empty",
|
|||
|
|
size: 16
|
|||
|
|
});
|
|||
|
|
}));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* harmony default export */ var block_ratings_stars = (Stars);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/block-ratings/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
var block_ratings_BlockRatings = function BlockRatings(_ref) {
|
|||
|
|
var rating = _ref.rating,
|
|||
|
|
ratingCount = _ref.ratingCount;
|
|||
|
|
return Object(external_this_wp_element_["createElement"])("div", {
|
|||
|
|
className: "block-directory-block-ratings"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])(block_ratings_stars, {
|
|||
|
|
rating: rating
|
|||
|
|
}), Object(external_this_wp_element_["createElement"])("span", {
|
|||
|
|
className: "block-directory-block-ratings__rating-count",
|
|||
|
|
"aria-label": // translators: %d: number of ratings (number).
|
|||
|
|
Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["_n"])('%d total rating', '%d total ratings', ratingCount), ratingCount)
|
|||
|
|
}, "(", ratingCount, ")"));
|
|||
|
|
};
|
|||
|
|
/* harmony default export */ var block_ratings = (block_ratings_BlockRatings);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-header/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function DownloadableBlockHeader(_ref) {
|
|||
|
|
var icon = _ref.icon,
|
|||
|
|
title = _ref.title,
|
|||
|
|
rating = _ref.rating,
|
|||
|
|
ratingCount = _ref.ratingCount,
|
|||
|
|
_onClick = _ref.onClick;
|
|||
|
|
return Object(external_this_wp_element_["createElement"])("div", {
|
|||
|
|
className: "block-directory-downloadable-block-header__row"
|
|||
|
|
}, icon.match(/\.(jpeg|jpg|gif|png)(?:\?.*)?$/) !== null ? // translators: %s: Name of the plugin e.g: "Akismet".
|
|||
|
|
Object(external_this_wp_element_["createElement"])("img", {
|
|||
|
|
src: icon,
|
|||
|
|
alt: Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('%s block icon'), title)
|
|||
|
|
}) : Object(external_this_wp_element_["createElement"])("span", null, Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["BlockIcon"], {
|
|||
|
|
icon: icon,
|
|||
|
|
showColors: true
|
|||
|
|
})), Object(external_this_wp_element_["createElement"])("div", {
|
|||
|
|
className: "block-directory-downloadable-block-header__column"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])("span", {
|
|||
|
|
role: "heading",
|
|||
|
|
className: "block-directory-downloadable-block-header__title"
|
|||
|
|
}, title), Object(external_this_wp_element_["createElement"])(block_ratings, {
|
|||
|
|
rating: rating,
|
|||
|
|
ratingCount: ratingCount
|
|||
|
|
})), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], {
|
|||
|
|
isDefault: true,
|
|||
|
|
onClick: function onClick(event) {
|
|||
|
|
event.preventDefault();
|
|||
|
|
|
|||
|
|
_onClick();
|
|||
|
|
}
|
|||
|
|
}, Object(external_this_wp_i18n_["__"])('Add block')));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* harmony default export */ var downloadable_block_header = (DownloadableBlockHeader);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-author-info/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function DownloadableBlockAuthorInfo(_ref) {
|
|||
|
|
var author = _ref.author,
|
|||
|
|
authorBlockCount = _ref.authorBlockCount,
|
|||
|
|
authorBlockRating = _ref.authorBlockRating;
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])("span", {
|
|||
|
|
className: "block-directory-downloadable-block-author-info__content-author"
|
|||
|
|
}, Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Authored by %s'), author)), Object(external_this_wp_element_["createElement"])("span", {
|
|||
|
|
className: "block-directory-downloadable-block-author-info__content"
|
|||
|
|
}, Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["_n"])('This author has %d block, with an average rating of %d.', 'This author has %d blocks, with an average rating of %d.', authorBlockCount), authorBlockCount, authorBlockRating)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* harmony default export */ var downloadable_block_author_info = (DownloadableBlockAuthorInfo);
|
|||
|
|
|
|||
|
|
// EXTERNAL MODULE: external {"this":["wp","primitives"]}
|
|||
|
|
var external_this_wp_primitives_ = __webpack_require__(9);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/update.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
var update = Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["SVG"], {
|
|||
|
|
xmlns: "http://www.w3.org/2000/svg",
|
|||
|
|
viewBox: "-2 -2 24 24"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])(external_this_wp_primitives_["Path"], {
|
|||
|
|
d: "M10.2 3.28c3.53 0 6.43 2.61 6.92 6h2.08l-3.5 4-3.5-4h2.32c-.45-1.97-2.21-3.45-4.32-3.45-1.45 0-2.73.71-3.54 1.78L4.95 5.66C6.23 4.2 8.11 3.28 10.2 3.28zm-.4 13.44c-3.52 0-6.43-2.61-6.92-6H.8l3.5-4c1.17 1.33 2.33 2.67 3.5 4H5.48c.45 1.97 2.21 3.45 4.32 3.45 1.45 0 2.73-.71 3.54-1.78l1.71 1.95c-1.28 1.46-3.15 2.38-5.25 2.38z"
|
|||
|
|
}));
|
|||
|
|
/* harmony default export */ var library_update = (update);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-info/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function DownloadableBlockInfo(_ref) {
|
|||
|
|
var description = _ref.description,
|
|||
|
|
activeInstalls = _ref.activeInstalls,
|
|||
|
|
humanizedUpdated = _ref.humanizedUpdated;
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])("p", {
|
|||
|
|
className: "block-directory-downloadable-block-info__content"
|
|||
|
|
}, description), Object(external_this_wp_element_["createElement"])("div", {
|
|||
|
|
className: "block-directory-downloadable-block-info__row"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])("div", {
|
|||
|
|
className: "block-directory-downloadable-block-info__column"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Icon"], {
|
|||
|
|
icon: "chart-line"
|
|||
|
|
}), Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["_n"])('%d active installation', '%d active installations', activeInstalls), activeInstalls)), Object(external_this_wp_element_["createElement"])("div", {
|
|||
|
|
className: "block-directory-downloadable-block-info__column"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Icon"], {
|
|||
|
|
icon: library_update
|
|||
|
|
}), // translators: %s: Humanized date of last update e.g: "2 months ago".
|
|||
|
|
Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["__"])('Updated %s'), humanizedUpdated))));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* harmony default export */ var downloadable_block_info = (DownloadableBlockInfo);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-list-item/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function DownloadableBlockListItem(_ref) {
|
|||
|
|
var item = _ref.item,
|
|||
|
|
onClick = _ref.onClick;
|
|||
|
|
var icon = item.icon,
|
|||
|
|
title = item.title,
|
|||
|
|
description = item.description,
|
|||
|
|
rating = item.rating,
|
|||
|
|
activeInstalls = item.activeInstalls,
|
|||
|
|
ratingCount = item.ratingCount,
|
|||
|
|
author = item.author,
|
|||
|
|
humanizedUpdated = item.humanizedUpdated,
|
|||
|
|
authorBlockCount = item.authorBlockCount,
|
|||
|
|
authorBlockRating = item.authorBlockRating;
|
|||
|
|
return Object(external_this_wp_element_["createElement"])("li", {
|
|||
|
|
className: "block-directory-downloadable-block-list-item"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])("article", {
|
|||
|
|
className: "block-directory-downloadable-block-list-item__panel"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])("header", {
|
|||
|
|
className: "block-directory-downloadable-block-list-item__header"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])(downloadable_block_header, {
|
|||
|
|
icon: icon,
|
|||
|
|
onClick: onClick,
|
|||
|
|
title: title,
|
|||
|
|
rating: rating,
|
|||
|
|
ratingCount: ratingCount
|
|||
|
|
})), Object(external_this_wp_element_["createElement"])("section", {
|
|||
|
|
className: "block-directory-downloadable-block-list-item__body"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])(downloadable_block_info, {
|
|||
|
|
activeInstalls: activeInstalls,
|
|||
|
|
description: description,
|
|||
|
|
humanizedUpdated: humanizedUpdated
|
|||
|
|
})), Object(external_this_wp_element_["createElement"])("footer", {
|
|||
|
|
className: "block-directory-downloadable-block-list-item__footer"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])(downloadable_block_author_info, {
|
|||
|
|
author: author,
|
|||
|
|
authorBlockCount: authorBlockCount,
|
|||
|
|
authorBlockRating: authorBlockRating
|
|||
|
|
}))));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* harmony default export */ var downloadable_block_list_item = (DownloadableBlockListItem);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-blocks-list/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* External dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
var DOWNLOAD_ERROR_NOTICE_ID = 'block-download-error';
|
|||
|
|
var INSTALL_ERROR_NOTICE_ID = 'block-install-error';
|
|||
|
|
|
|||
|
|
function DownloadableBlocksList(_ref) {
|
|||
|
|
var items = _ref.items,
|
|||
|
|
_ref$onHover = _ref.onHover,
|
|||
|
|
onHover = _ref$onHover === void 0 ? external_this_lodash_["noop"] : _ref$onHover,
|
|||
|
|
children = _ref.children,
|
|||
|
|
downloadAndInstallBlock = _ref.downloadAndInstallBlock;
|
|||
|
|
return (
|
|||
|
|
/*
|
|||
|
|
* Disable reason: The `list` ARIA role is redundant but
|
|||
|
|
* Safari+VoiceOver won't announce the list otherwise.
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/* eslint-disable jsx-a11y/no-redundant-roles */
|
|||
|
|
Object(external_this_wp_element_["createElement"])("ul", {
|
|||
|
|
role: "list",
|
|||
|
|
className: "block-directory-downloadable-blocks-list"
|
|||
|
|
}, items && items.map(function (item) {
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(downloadable_block_list_item, {
|
|||
|
|
key: item.id,
|
|||
|
|
className: Object(external_this_wp_blocks_["getBlockMenuDefaultClassName"])(item.id),
|
|||
|
|
icons: item.icons,
|
|||
|
|
onClick: function onClick() {
|
|||
|
|
downloadAndInstallBlock(item);
|
|||
|
|
onHover(null);
|
|||
|
|
},
|
|||
|
|
onFocus: function onFocus() {
|
|||
|
|
return onHover(item);
|
|||
|
|
},
|
|||
|
|
onMouseEnter: function onMouseEnter() {
|
|||
|
|
return onHover(item);
|
|||
|
|
},
|
|||
|
|
onMouseLeave: function onMouseLeave() {
|
|||
|
|
return onHover(null);
|
|||
|
|
},
|
|||
|
|
onBlur: function onBlur() {
|
|||
|
|
return onHover(null);
|
|||
|
|
},
|
|||
|
|
item: item
|
|||
|
|
});
|
|||
|
|
}), children)
|
|||
|
|
/* eslint-enable jsx-a11y/no-redundant-roles */
|
|||
|
|
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* harmony default export */ var downloadable_blocks_list = (Object(external_this_wp_compose_["compose"])(Object(external_this_wp_data_["withDispatch"])(function (dispatch, props) {
|
|||
|
|
var _dispatch = dispatch('core/block-directory'),
|
|||
|
|
installBlock = _dispatch.installBlock,
|
|||
|
|
downloadBlock = _dispatch.downloadBlock;
|
|||
|
|
|
|||
|
|
var _dispatch2 = dispatch('core/notices'),
|
|||
|
|
createErrorNotice = _dispatch2.createErrorNotice,
|
|||
|
|
removeNotice = _dispatch2.removeNotice;
|
|||
|
|
|
|||
|
|
var _dispatch3 = dispatch('core/block-editor'),
|
|||
|
|
removeBlocks = _dispatch3.removeBlocks;
|
|||
|
|
|
|||
|
|
var onSelect = props.onSelect;
|
|||
|
|
return {
|
|||
|
|
downloadAndInstallBlock: function downloadAndInstallBlock(item) {
|
|||
|
|
var onDownloadError = function onDownloadError() {
|
|||
|
|
createErrorNotice(Object(external_this_wp_i18n_["__"])('Block previews can’t load.'), {
|
|||
|
|
id: DOWNLOAD_ERROR_NOTICE_ID,
|
|||
|
|
actions: [{
|
|||
|
|
label: Object(external_this_wp_i18n_["__"])('Retry'),
|
|||
|
|
onClick: function onClick() {
|
|||
|
|
removeNotice(DOWNLOAD_ERROR_NOTICE_ID);
|
|||
|
|
downloadBlock(item, onSuccess, onDownloadError);
|
|||
|
|
}
|
|||
|
|
}]
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
var onSuccess = function onSuccess() {
|
|||
|
|
var createdBlock = onSelect(item);
|
|||
|
|
|
|||
|
|
var onInstallBlockError = function onInstallBlockError() {
|
|||
|
|
createErrorNotice(Object(external_this_wp_i18n_["__"])("Block previews can't install."), {
|
|||
|
|
id: INSTALL_ERROR_NOTICE_ID,
|
|||
|
|
actions: [{
|
|||
|
|
label: Object(external_this_wp_i18n_["__"])('Retry'),
|
|||
|
|
onClick: function onClick() {
|
|||
|
|
removeNotice(INSTALL_ERROR_NOTICE_ID);
|
|||
|
|
installBlock(item, external_this_lodash_["noop"], onInstallBlockError);
|
|||
|
|
}
|
|||
|
|
}, {
|
|||
|
|
label: Object(external_this_wp_i18n_["__"])('Remove'),
|
|||
|
|
onClick: function onClick() {
|
|||
|
|
removeNotice(INSTALL_ERROR_NOTICE_ID);
|
|||
|
|
removeBlocks(createdBlock.clientId);
|
|||
|
|
Object(external_this_wp_blocks_["unregisterBlockType"])(item.name);
|
|||
|
|
}
|
|||
|
|
}]
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
installBlock(item, external_this_lodash_["noop"], onInstallBlockError);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
downloadBlock(item, onSuccess, onDownloadError);
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
}))(DownloadableBlocksList));
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-blocks-panel/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function DownloadableBlocksPanel(_ref) {
|
|||
|
|
var downloadableItems = _ref.downloadableItems,
|
|||
|
|
onSelect = _ref.onSelect,
|
|||
|
|
onHover = _ref.onHover,
|
|||
|
|
hasPermission = _ref.hasPermission,
|
|||
|
|
isLoading = _ref.isLoading,
|
|||
|
|
isWaiting = _ref.isWaiting,
|
|||
|
|
debouncedSpeak = _ref.debouncedSpeak;
|
|||
|
|
|
|||
|
|
if (!hasPermission) {
|
|||
|
|
debouncedSpeak(Object(external_this_wp_i18n_["__"])('No blocks found in your library. Please contact your site administrator to install new blocks.'));
|
|||
|
|
return Object(external_this_wp_element_["createElement"])("p", {
|
|||
|
|
className: "block-directory-downloadable-blocks-panel__description has-no-results"
|
|||
|
|
}, Object(external_this_wp_i18n_["__"])('No blocks found in your library.'), Object(external_this_wp_element_["createElement"])("br", null), Object(external_this_wp_i18n_["__"])('Please contact your site administrator to install new blocks.'));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (isLoading || isWaiting) {
|
|||
|
|
return Object(external_this_wp_element_["createElement"])("p", {
|
|||
|
|
className: "block-directory-downloadable-blocks-panel__description has-no-results"
|
|||
|
|
}, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Spinner"], null));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!downloadableItems.length) {
|
|||
|
|
return Object(external_this_wp_element_["createElement"])("p", {
|
|||
|
|
className: "block-directory-downloadable-blocks-panel__description has-no-results"
|
|||
|
|
}, Object(external_this_wp_i18n_["__"])('No blocks found in your library.'));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var resultsFoundMessage = Object(external_this_wp_i18n_["sprintf"])(Object(external_this_wp_i18n_["_n"])('No blocks found in your library. We did find %d block available for download.', 'No blocks found in your library. We did find %d blocks available for download.', downloadableItems.length), downloadableItems.length);
|
|||
|
|
debouncedSpeak(resultsFoundMessage);
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["Fragment"], null, Object(external_this_wp_element_["createElement"])("p", {
|
|||
|
|
className: "block-directory-downloadable-blocks-panel__description"
|
|||
|
|
}, Object(external_this_wp_i18n_["__"])('No blocks found in your library. These blocks can be downloaded and installed:')), Object(external_this_wp_element_["createElement"])(downloadable_blocks_list, {
|
|||
|
|
items: downloadableItems,
|
|||
|
|
onSelect: onSelect,
|
|||
|
|
onHover: onHover
|
|||
|
|
}));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* harmony default export */ var downloadable_blocks_panel = (Object(external_this_wp_compose_["compose"])([external_this_wp_components_["withSpokenMessages"], Object(external_this_wp_data_["withSelect"])(function (select, _ref2) {
|
|||
|
|
var filterValue = _ref2.filterValue;
|
|||
|
|
|
|||
|
|
var _select = select('core/block-directory'),
|
|||
|
|
getDownloadableBlocks = _select.getDownloadableBlocks,
|
|||
|
|
hasInstallBlocksPermission = _select.hasInstallBlocksPermission,
|
|||
|
|
isRequestingDownloadableBlocks = _select.isRequestingDownloadableBlocks;
|
|||
|
|
|
|||
|
|
var hasPermission = hasInstallBlocksPermission();
|
|||
|
|
var downloadableItems = hasPermission ? getDownloadableBlocks(filterValue) : [];
|
|||
|
|
var isLoading = isRequestingDownloadableBlocks();
|
|||
|
|
return {
|
|||
|
|
downloadableItems: downloadableItems,
|
|||
|
|
hasPermission: hasPermission,
|
|||
|
|
isLoading: isLoading
|
|||
|
|
};
|
|||
|
|
})])(DownloadableBlocksPanel));
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* External dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function InserterMenuDownloadableBlocksPanel() {
|
|||
|
|
var _useState = Object(external_this_wp_element_["useState"])(''),
|
|||
|
|
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
|
|||
|
|
debouncedFilterValue = _useState2[0],
|
|||
|
|
setFilterValue = _useState2[1];
|
|||
|
|
|
|||
|
|
var debouncedSetFilterValue = Object(external_this_lodash_["debounce"])(setFilterValue, 400);
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(external_this_wp_blockEditor_["__experimentalInserterMenuExtension"], null, function (_ref) {
|
|||
|
|
var onSelect = _ref.onSelect,
|
|||
|
|
onHover = _ref.onHover,
|
|||
|
|
filterValue = _ref.filterValue,
|
|||
|
|
hasItems = _ref.hasItems;
|
|||
|
|
|
|||
|
|
if (hasItems || !filterValue) {
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (debouncedFilterValue !== filterValue) {
|
|||
|
|
debouncedSetFilterValue(filterValue);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(downloadable_blocks_panel, {
|
|||
|
|
onSelect: onSelect,
|
|||
|
|
onHover: onHover,
|
|||
|
|
filterValue: debouncedFilterValue,
|
|||
|
|
isWaiting: filterValue !== debouncedFilterValue
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* harmony default export */ var inserter_menu_downloadable_blocks_panel = (InserterMenuDownloadableBlocksPanel);
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/index.js
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* WordPress dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
Object(external_this_wp_plugins_["registerPlugin"])('block-directory', {
|
|||
|
|
render: function render() {
|
|||
|
|
return Object(external_this_wp_element_["createElement"])(inserter_menu_downloadable_blocks_panel, null);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/index.js
|
|||
|
|
/**
|
|||
|
|
* Internal dependencies
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 5:
|
|||
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|||
|
|
|
|||
|
|
"use strict";
|
|||
|
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; });
|
|||
|
|
function _defineProperty(obj, key, value) {
|
|||
|
|
if (key in obj) {
|
|||
|
|
Object.defineProperty(obj, key, {
|
|||
|
|
value: value,
|
|||
|
|
enumerable: true,
|
|||
|
|
configurable: true,
|
|||
|
|
writable: true
|
|||
|
|
});
|
|||
|
|
} else {
|
|||
|
|
obj[key] = value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return obj;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 55:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["plugins"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 6:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["blockEditor"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 8:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["compose"]; }());
|
|||
|
|
|
|||
|
|
/***/ }),
|
|||
|
|
|
|||
|
|
/***/ 9:
|
|||
|
|
/***/ (function(module, exports) {
|
|||
|
|
|
|||
|
|
(function() { module.exports = this["wp"]["primitives"]; }());
|
|||
|
|
|
|||
|
|
/***/ })
|
|||
|
|
|
|||
|
|
/******/ });
|