diff -r be944660c56a -r 3d72ae0968f4 wp/wp-includes/js/dist/server-side-render.js --- a/wp/wp-includes/js/dist/server-side-render.js Wed Sep 21 18:19:35 2022 +0200 +++ b/wp/wp-includes/js/dist/server-side-render.js Tue Sep 27 16:37:53 2022 +0200 @@ -1,142 +1,86 @@ -this["wp"] = this["wp"] || {}; this["wp"]["serverSideRender"] = -/******/ (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: {} +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } /******/ }; -/******/ -/******/ // 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 = "4dqW"); -/******/ }) +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ /************************************************************************/ -/******/ ({ - -/***/ "1ZqX": -/***/ (function(module, exports) { +var __webpack_exports__ = {}; -(function() { module.exports = window["wp"]["data"]; }()); - -/***/ }), - -/***/ "4dqW": -/***/ (function(module, __webpack_exports__, __webpack_require__) { +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ build_module; } +}); -"use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); +;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js +function _extends() { + _extends = Object.assign ? Object.assign.bind() : function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; -// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js -var esm_extends = __webpack_require__("wx14"); - -// EXTERNAL MODULE: external ["wp","element"] -var external_wp_element_ = __webpack_require__("GRId"); - -// EXTERNAL MODULE: external ["wp","data"] -var external_wp_data_ = __webpack_require__("1ZqX"); + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } -// EXTERNAL MODULE: external ["wp","deprecated"] -var external_wp_deprecated_ = __webpack_require__("NMb1"); -var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_); - -// EXTERNAL MODULE: external "lodash" -var external_lodash_ = __webpack_require__("YLtl"); - -// EXTERNAL MODULE: external ["wp","compose"] -var external_wp_compose_ = __webpack_require__("K9lf"); - -// EXTERNAL MODULE: external ["wp","i18n"] -var external_wp_i18n_ = __webpack_require__("l3Sj"); - -// EXTERNAL MODULE: external ["wp","apiFetch"] -var external_wp_apiFetch_ = __webpack_require__("ywyh"); -var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_); - -// EXTERNAL MODULE: external ["wp","url"] -var external_wp_url_ = __webpack_require__("Mmq9"); - -// EXTERNAL MODULE: external ["wp","components"] -var external_wp_components_ = __webpack_require__("tI+e"); - -// EXTERNAL MODULE: external ["wp","blocks"] -var external_wp_blocks_ = __webpack_require__("HSyU"); - -// CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/server-side-render.js + return target; + }; + return _extends.apply(this, arguments); +} +;// CONCATENATED MODULE: external ["wp","element"] +var external_wp_element_namespaceObject = window["wp"]["element"]; +;// CONCATENATED MODULE: external ["wp","data"] +var external_wp_data_namespaceObject = window["wp"]["data"]; +;// CONCATENATED MODULE: external ["wp","deprecated"] +var external_wp_deprecated_namespaceObject = window["wp"]["deprecated"]; +var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject); +;// CONCATENATED MODULE: external "lodash" +var external_lodash_namespaceObject = window["lodash"]; +;// CONCATENATED MODULE: external ["wp","compose"] +var external_wp_compose_namespaceObject = window["wp"]["compose"]; +;// CONCATENATED MODULE: external ["wp","i18n"] +var external_wp_i18n_namespaceObject = window["wp"]["i18n"]; +;// CONCATENATED MODULE: external ["wp","apiFetch"] +var external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"]; +var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject); +;// CONCATENATED MODULE: external ["wp","url"] +var external_wp_url_namespaceObject = window["wp"]["url"]; +;// CONCATENATED MODULE: external ["wp","components"] +var external_wp_components_namespaceObject = window["wp"]["components"]; +;// CONCATENATED MODULE: external ["wp","blocks"] +var external_wp_blocks_namespaceObject = window["wp"]["blocks"]; +;// CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/server-side-render.js @@ -155,8 +99,10 @@ -function rendererPath(block, attributes = null, urlQueryArgs = {}) { - return Object(external_wp_url_["addQueryArgs"])(`/wp/v2/block-renderer/${block}`, { +function rendererPath(block) { + let attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + let urlQueryArgs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + return (0,external_wp_url_namespaceObject.addQueryArgs)(`/wp/v2/block-renderer/${block}`, { context: 'edit', ...(null !== attributes ? { attributes @@ -165,31 +111,49 @@ }); } -function DefaultEmptyResponsePlaceholder({ - className -}) { - return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], { +function DefaultEmptyResponsePlaceholder(_ref) { + let { + className + } = _ref; + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { className: className - }, Object(external_wp_i18n_["__"])('Block rendered as empty.')); + }, (0,external_wp_i18n_namespaceObject.__)('Block rendered as empty.')); } -function DefaultErrorResponsePlaceholder({ - response, - className -}) { - const errorMessage = Object(external_wp_i18n_["sprintf"])( // translators: %s: error message describing the problem - Object(external_wp_i18n_["__"])('Error loading block: %s'), response.errorMsg); - return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], { +function DefaultErrorResponsePlaceholder(_ref2) { + let { + response, + className + } = _ref2; + const errorMessage = (0,external_wp_i18n_namespaceObject.sprintf)( // translators: %s: error message describing the problem + (0,external_wp_i18n_namespaceObject.__)('Error loading block: %s'), response.errorMsg); + return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Placeholder, { className: className }, errorMessage); } -function DefaultLoadingResponsePlaceholder({ - className -}) { - return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], { - className: className - }, Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null)); +function DefaultLoadingResponsePlaceholder(_ref3) { + let { + children, + showLoader + } = _ref3; + return (0,external_wp_element_namespaceObject.createElement)("div", { + style: { + position: 'relative' + } + }, showLoader && (0,external_wp_element_namespaceObject.createElement)("div", { + style: { + position: 'absolute', + top: '50%', + left: '50%', + marginTop: '-9px', + marginLeft: '-9px' + } + }, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Spinner, null)), (0,external_wp_element_namespaceObject.createElement)("div", { + style: { + opacity: showLoader ? '0.3' : 1 + } + }, children)); } function ServerSideRender(props) { @@ -203,21 +167,21 @@ ErrorResponsePlaceholder = DefaultErrorResponsePlaceholder, LoadingResponsePlaceholder = DefaultLoadingResponsePlaceholder } = props; - const isMountedRef = Object(external_wp_element_["useRef"])(true); - const fetchRequestRef = Object(external_wp_element_["useRef"])(); - const [response, setResponse] = Object(external_wp_element_["useState"])(null); - const prevProps = Object(external_wp_compose_["usePrevious"])(props); + const isMountedRef = (0,external_wp_element_namespaceObject.useRef)(true); + const [showLoader, setShowLoader] = (0,external_wp_element_namespaceObject.useState)(false); + const fetchRequestRef = (0,external_wp_element_namespaceObject.useRef)(); + const [response, setResponse] = (0,external_wp_element_namespaceObject.useState)(null); + const prevProps = (0,external_wp_compose_namespaceObject.usePrevious)(props); + const [isLoading, setIsLoading] = (0,external_wp_element_namespaceObject.useState)(false); function fetchData() { if (!isMountedRef.current) { return; } - if (null !== response) { - setResponse(null); - } + setIsLoading(true); - const sanitizedAttributes = attributes && Object(external_wp_blocks_["__experimentalSanitizeBlockAttributes"])(block, attributes); // If httpMethod is 'POST', send the attributes in the request body instead of the URL. + const sanitizedAttributes = attributes && (0,external_wp_blocks_namespaceObject.__experimentalSanitizeBlockAttributes)(block, attributes); // If httpMethod is 'POST', send the attributes in the request body instead of the URL. // This allows sending a larger attributes object than in a GET request, where the attributes are in the URL. @@ -244,42 +208,73 @@ errorMsg: error.message }); } + }).finally(() => { + if (isMountedRef.current && fetchRequest === fetchRequestRef.current) { + setIsLoading(false); + } }); return fetchRequest; } - const debouncedFetchData = Object(external_wp_compose_["useDebounce"])(fetchData, 500); // When the component unmounts, set isMountedRef to false. This will + const debouncedFetchData = (0,external_wp_compose_namespaceObject.useDebounce)(fetchData, 500); // When the component unmounts, set isMountedRef to false. This will // let the async fetch callbacks know when to stop. - Object(external_wp_element_["useEffect"])(() => () => { + (0,external_wp_element_namespaceObject.useEffect)(() => () => { isMountedRef.current = false; }, []); - Object(external_wp_element_["useEffect"])(() => { + (0,external_wp_element_namespaceObject.useEffect)(() => { // Don't debounce the first fetch. This ensures that the first render - // shows data as soon as possible + // shows data as soon as possible. if (prevProps === undefined) { fetchData(); - } else if (!Object(external_lodash_["isEqual"])(prevProps, props)) { + } else if (!(0,external_lodash_namespaceObject.isEqual)(prevProps, props)) { debouncedFetchData(); } }); + /** + * Effect to handle showing the loading placeholder. + * Show it only if there is no previous response or + * the request takes more than one second. + */ - if (response === '') { - return Object(external_wp_element_["createElement"])(EmptyResponsePlaceholder, props); - } else if (!response) { - return Object(external_wp_element_["createElement"])(LoadingResponsePlaceholder, props); - } else if (response.error) { - return Object(external_wp_element_["createElement"])(ErrorResponsePlaceholder, Object(esm_extends["a" /* default */])({ + (0,external_wp_element_namespaceObject.useEffect)(() => { + if (!isLoading) { + return; + } + + const timeout = setTimeout(() => { + setShowLoader(true); + }, 1000); + return () => clearTimeout(timeout); + }, [isLoading]); + const hasResponse = !!response; + const hasEmptyResponse = response === ''; + const hasError = response === null || response === void 0 ? void 0 : response.error; + + if (isLoading) { + return (0,external_wp_element_namespaceObject.createElement)(LoadingResponsePlaceholder, _extends({}, props, { + showLoader: showLoader + }), hasResponse && (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, { + className: className + }, response)); + } + + if (hasEmptyResponse || !hasResponse) { + return (0,external_wp_element_namespaceObject.createElement)(EmptyResponsePlaceholder, props); + } + + if (hasError) { + return (0,external_wp_element_namespaceObject.createElement)(ErrorResponsePlaceholder, _extends({ response: response }, props)); } - return Object(external_wp_element_["createElement"])(external_wp_element_["RawHTML"], { + return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.RawHTML, { className: className }, response); } -// CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/index.js +;// CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/index.js @@ -299,7 +294,10 @@ */ const EMPTY_OBJECT = {}; -const ExportedServerSideRender = Object(external_wp_data_["withSelect"])(select => { +const ExportedServerSideRender = (0,external_wp_data_namespaceObject.withSelect)(select => { + // FIXME: @wordpress/server-side-render should not depend on @wordpress/editor. + // It is used by blocks that can be loaded into a *non-post* block editor. + // eslint-disable-next-line @wordpress/data-no-store-string-literals const coreEditorSelect = select('core/editor'); if (coreEditorSelect) { @@ -316,12 +314,13 @@ } return EMPTY_OBJECT; -})(({ - urlQueryArgs = EMPTY_OBJECT, - currentPostId, - ...props -}) => { - const newUrlQueryArgs = Object(external_wp_element_["useMemo"])(() => { +})(_ref => { + let { + urlQueryArgs = EMPTY_OBJECT, + currentPostId, + ...props + } = _ref; + const newUrlQueryArgs = (0,external_wp_element_namespaceObject.useMemo)(() => { if (!currentPostId) { return urlQueryArgs; } @@ -331,114 +330,26 @@ ...urlQueryArgs }; }, [currentPostId, urlQueryArgs]); - return Object(external_wp_element_["createElement"])(ServerSideRender, Object(esm_extends["a" /* default */])({ + return (0,external_wp_element_namespaceObject.createElement)(ServerSideRender, _extends({ urlQueryArgs: newUrlQueryArgs }, props)); }); if (window && window.wp && window.wp.components) { - window.wp.components.ServerSideRender = Object(external_wp_element_["forwardRef"])((props, ref) => { + window.wp.components.ServerSideRender = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => { external_wp_deprecated_default()('wp.components.ServerSideRender', { + version: '6.2', since: '5.3', alternative: 'wp.serverSideRender' }); - return Object(external_wp_element_["createElement"])(ExportedServerSideRender, Object(esm_extends["a" /* default */])({}, props, { + return (0,external_wp_element_namespaceObject.createElement)(ExportedServerSideRender, _extends({}, props, { ref: ref })); }); } -/* harmony default export */ var build_module = __webpack_exports__["default"] = (ExportedServerSideRender); - - -/***/ }), - -/***/ "GRId": -/***/ (function(module, exports) { - -(function() { module.exports = window["wp"]["element"]; }()); - -/***/ }), - -/***/ "HSyU": -/***/ (function(module, exports) { - -(function() { module.exports = window["wp"]["blocks"]; }()); - -/***/ }), - -/***/ "K9lf": -/***/ (function(module, exports) { - -(function() { module.exports = window["wp"]["compose"]; }()); - -/***/ }), - -/***/ "Mmq9": -/***/ (function(module, exports) { - -(function() { module.exports = window["wp"]["url"]; }()); - -/***/ }), - -/***/ "NMb1": -/***/ (function(module, exports) { - -(function() { module.exports = window["wp"]["deprecated"]; }()); - -/***/ }), - -/***/ "YLtl": -/***/ (function(module, exports) { - -(function() { module.exports = window["lodash"]; }()); - -/***/ }), +/* harmony default export */ var build_module = (ExportedServerSideRender); -/***/ "l3Sj": -/***/ (function(module, exports) { - -(function() { module.exports = window["wp"]["i18n"]; }()); - -/***/ }), - -/***/ "tI+e": -/***/ (function(module, exports) { - -(function() { module.exports = window["wp"]["components"]; }()); - -/***/ }), - -/***/ "wx14": -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; }); -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - -/***/ }), - -/***/ "ywyh": -/***/ (function(module, exports) { - -(function() { module.exports = window["wp"]["apiFetch"]; }()); - -/***/ }) - -/******/ })["default"]; \ No newline at end of file +(window.wp = window.wp || {}).serverSideRender = __webpack_exports__["default"]; +/******/ })() +; \ No newline at end of file