wp/wp-includes/js/dist/server-side-render.js
changeset 18 be944660c56a
parent 16 a86126ab1dd4
child 19 3d72ae0968f4
--- a/wp/wp-includes/js/dist/server-side-render.js	Tue Dec 15 15:52:01 2020 +0100
+++ b/wp/wp-includes/js/dist/server-side-render.js	Wed Sep 21 18:19:35 2022 +0200
@@ -82,261 +82,19 @@
 /******/
 /******/
 /******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 468);
+/******/ 	return __webpack_require__(__webpack_require__.s = "4dqW");
 /******/ })
 /************************************************************************/
 /******/ ({
 
-/***/ 0:
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["element"]; }());
-
-/***/ }),
-
-/***/ 1:
+/***/ "1ZqX":
 /***/ (function(module, exports) {
 
-(function() { module.exports = this["wp"]["i18n"]; }());
-
-/***/ }),
-
-/***/ 12:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; });
-function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-
-/***/ }),
-
-/***/ 15:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutProperties; });
-/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
-
-function _objectWithoutProperties(source, excluded) {
-  if (source == null) return {};
-  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(source, excluded);
-  var key, i;
-
-  if (Object.getOwnPropertySymbols) {
-    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
-    for (i = 0; i < sourceSymbolKeys.length; i++) {
-      key = sourceSymbolKeys[i];
-      if (excluded.indexOf(key) >= 0) continue;
-      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
-      target[key] = source[key];
-    }
-  }
-
-  return target;
-}
-
-/***/ }),
-
-/***/ 16:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _getPrototypeOf; });
-function _getPrototypeOf(o) {
-  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
-    return o.__proto__ || Object.getPrototypeOf(o);
-  };
-  return _getPrototypeOf(o);
-}
-
-/***/ }),
-
-/***/ 19:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _createClass; });
-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;
-}
-
-/***/ }),
-
-/***/ 2:
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["lodash"]; }());
-
-/***/ }),
-
-/***/ 20:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classCallCheck; });
-function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
+(function() { module.exports = window["wp"]["data"]; }());
 
 /***/ }),
 
-/***/ 22:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ _inherits; });
-
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
-function _setPrototypeOf(o, p) {
-  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
-// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
-
-function _inherits(subClass, superClass) {
-  if (typeof superClass !== "function" && superClass !== null) {
-    throw new TypeError("Super expression must either be null or a function");
-  }
-
-  subClass.prototype = Object.create(superClass && superClass.prototype, {
-    constructor: {
-      value: subClass,
-      writable: true,
-      configurable: true
-    }
-  });
-  if (superClass) _setPrototypeOf(subClass, superClass);
-}
-
-/***/ }),
-
-/***/ 23:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _possibleConstructorReturn; });
-/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
-/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
-
-
-function _possibleConstructorReturn(self, call) {
-  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(call) === "object" || typeof call === "function")) {
-    return call;
-  }
-
-  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(self);
-}
-
-/***/ }),
-
-/***/ 3:
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["components"]; }());
-
-/***/ }),
-
-/***/ 31:
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["url"]; }());
-
-/***/ }),
-
-/***/ 37:
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["deprecated"]; }());
-
-/***/ }),
-
-/***/ 4:
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["data"]; }());
-
-/***/ }),
-
-/***/ 40:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; });
-function _typeof(obj) {
-  "@babel/helpers - typeof";
-
-  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
-    _typeof = function _typeof(obj) {
-      return typeof obj;
-    };
-  } else {
-    _typeof = function _typeof(obj) {
-      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
-    };
-  }
-
-  return _typeof(obj);
-}
-
-/***/ }),
-
-/***/ 41:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectWithoutPropertiesLoose; });
-function _objectWithoutPropertiesLoose(source, excluded) {
-  if (source == null) return {};
-  var target = {};
-  var sourceKeys = Object.keys(source);
-  var key, i;
-
-  for (i = 0; i < sourceKeys.length; i++) {
-    key = sourceKeys[i];
-    if (excluded.indexOf(key) >= 0) continue;
-    target[key] = source[key];
-  }
-
-  return target;
-}
-
-/***/ }),
-
-/***/ 45:
-/***/ (function(module, exports) {
-
-(function() { module.exports = this["wp"]["apiFetch"]; }());
-
-/***/ }),
-
-/***/ 468:
+/***/ "4dqW":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
@@ -344,73 +102,44 @@
 __webpack_require__.r(__webpack_exports__);
 
 // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
-var esm_extends = __webpack_require__(8);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
-var defineProperty = __webpack_require__(5);
+var esm_extends = __webpack_require__("wx14");
 
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
-var objectWithoutProperties = __webpack_require__(15);
-
-// EXTERNAL MODULE: external {"this":["wp","element"]}
-var external_this_wp_element_ = __webpack_require__(0);
+// EXTERNAL MODULE: external ["wp","element"]
+var external_wp_element_ = __webpack_require__("GRId");
 
-// EXTERNAL MODULE: external {"this":["wp","data"]}
-var external_this_wp_data_ = __webpack_require__(4);
+// EXTERNAL MODULE: external ["wp","data"]
+var external_wp_data_ = __webpack_require__("1ZqX");
 
-// EXTERNAL MODULE: external {"this":["wp","deprecated"]}
-var external_this_wp_deprecated_ = __webpack_require__(37);
-var external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);
+// 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: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
-var classCallCheck = __webpack_require__(20);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
-var createClass = __webpack_require__(19);
+// EXTERNAL MODULE: external "lodash"
+var external_lodash_ = __webpack_require__("YLtl");
 
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
-var possibleConstructorReturn = __webpack_require__(23);
-
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
-var getPrototypeOf = __webpack_require__(16);
+// EXTERNAL MODULE: external ["wp","compose"]
+var external_wp_compose_ = __webpack_require__("K9lf");
 
-// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
-var inherits = __webpack_require__(22);
-
-// EXTERNAL MODULE: external {"this":"lodash"}
-var external_this_lodash_ = __webpack_require__(2);
+// EXTERNAL MODULE: external ["wp","i18n"]
+var external_wp_i18n_ = __webpack_require__("l3Sj");
 
-// EXTERNAL MODULE: external {"this":["wp","i18n"]}
-var external_this_wp_i18n_ = __webpack_require__(1);
+// 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 {"this":["wp","apiFetch"]}
-var external_this_wp_apiFetch_ = __webpack_require__(45);
-var external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);
+// EXTERNAL MODULE: external ["wp","url"]
+var external_wp_url_ = __webpack_require__("Mmq9");
 
-// EXTERNAL MODULE: external {"this":["wp","url"]}
-var external_this_wp_url_ = __webpack_require__(31);
+// EXTERNAL MODULE: external ["wp","components"]
+var external_wp_components_ = __webpack_require__("tI+e");
 
-// EXTERNAL MODULE: external {"this":["wp","components"]}
-var external_this_wp_components_ = __webpack_require__(3);
+// 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
 
 
 
-
-
-
-
-
-
-function _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf["a" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf["a" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn["a" /* default */])(this, result); }; }
-
-function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
-
-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; }
-
 /**
  * External dependencies
  */
@@ -424,164 +153,136 @@
 
 
 
-function rendererPath(block) {
-  var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
-  var urlQueryArgs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-  return Object(external_this_wp_url_["addQueryArgs"])("/wp/v2/block-renderer/".concat(block), _objectSpread({
-    context: 'edit'
-  }, null !== attributes ? {
-    attributes: attributes
-  } : {}, {}, urlQueryArgs));
+
+
+function rendererPath(block, attributes = null, urlQueryArgs = {}) {
+  return Object(external_wp_url_["addQueryArgs"])(`/wp/v2/block-renderer/${block}`, {
+    context: 'edit',
+    ...(null !== attributes ? {
+      attributes
+    } : {}),
+    ...urlQueryArgs
+  });
 }
-var server_side_render_ServerSideRender = /*#__PURE__*/function (_Component) {
-  Object(inherits["a" /* default */])(ServerSideRender, _Component);
 
-  var _super = _createSuper(ServerSideRender);
-
-  function ServerSideRender(props) {
-    var _this;
-
-    Object(classCallCheck["a" /* default */])(this, ServerSideRender);
+function DefaultEmptyResponsePlaceholder({
+  className
+}) {
+  return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], {
+    className: className
+  }, Object(external_wp_i18n_["__"])('Block rendered as empty.'));
+}
 
-    _this = _super.call(this, props);
-    _this.state = {
-      response: null
-    };
-    return _this;
-  }
+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"], {
+    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));
+}
 
-  Object(createClass["a" /* default */])(ServerSideRender, [{
-    key: "componentDidMount",
-    value: function componentDidMount() {
-      this.isStillMounted = true;
-      this.fetch(this.props); // Only debounce once the initial fetch occurs to ensure that the first
-      // renders show data as soon as possible.
+function ServerSideRender(props) {
+  const {
+    attributes,
+    block,
+    className,
+    httpMethod = 'GET',
+    urlQueryArgs,
+    EmptyResponsePlaceholder = DefaultEmptyResponsePlaceholder,
+    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);
 
-      this.fetch = Object(external_this_lodash_["debounce"])(this.fetch, 500);
+  function fetchData() {
+    if (!isMountedRef.current) {
+      return;
     }
-  }, {
-    key: "componentWillUnmount",
-    value: function componentWillUnmount() {
-      this.isStillMounted = false;
+
+    if (null !== response) {
+      setResponse(null);
     }
-  }, {
-    key: "componentDidUpdate",
-    value: function componentDidUpdate(prevProps) {
-      if (!Object(external_this_lodash_["isEqual"])(prevProps, this.props)) {
-        this.fetch(this.props);
+
+    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.
+    // This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.
+
+
+    const isPostRequest = 'POST' === httpMethod;
+    const urlAttributes = isPostRequest ? null : sanitizedAttributes !== null && sanitizedAttributes !== void 0 ? sanitizedAttributes : null;
+    const path = rendererPath(block, urlAttributes, urlQueryArgs);
+    const data = isPostRequest ? {
+      attributes: sanitizedAttributes !== null && sanitizedAttributes !== void 0 ? sanitizedAttributes : null
+    } : null; // Store the latest fetch request so that when we process it, we can
+    // check if it is the current request, to avoid race conditions on slow networks.
+
+    const fetchRequest = fetchRequestRef.current = external_wp_apiFetch_default()({
+      path,
+      data,
+      method: isPostRequest ? 'POST' : 'GET'
+    }).then(fetchResponse => {
+      if (isMountedRef.current && fetchRequest === fetchRequestRef.current && fetchResponse) {
+        setResponse(fetchResponse.rendered);
       }
-    }
-  }, {
-    key: "fetch",
-    value: function fetch(props) {
-      var _this2 = this;
-
-      if (!this.isStillMounted) {
-        return;
-      }
-
-      if (null !== this.state.response) {
-        this.setState({
-          response: null
+    }).catch(error => {
+      if (isMountedRef.current && fetchRequest === fetchRequestRef.current) {
+        setResponse({
+          error: true,
+          errorMsg: error.message
         });
       }
-
-      var block = props.block,
-          _props$attributes = props.attributes,
-          attributes = _props$attributes === void 0 ? null : _props$attributes,
-          _props$urlQueryArgs = props.urlQueryArgs,
-          urlQueryArgs = _props$urlQueryArgs === void 0 ? {} : _props$urlQueryArgs;
-      var path = rendererPath(block, attributes, urlQueryArgs); // Store the latest fetch request so that when we process it, we can
-      // check if it is the current request, to avoid race conditions on slow networks.
+    });
+    return fetchRequest;
+  }
 
-      var fetchRequest = this.currentFetchRequest = external_this_wp_apiFetch_default()({
-        path: path
-      }).then(function (response) {
-        if (_this2.isStillMounted && fetchRequest === _this2.currentFetchRequest && response) {
-          _this2.setState({
-            response: response.rendered
-          });
-        }
-      }).catch(function (error) {
-        if (_this2.isStillMounted && fetchRequest === _this2.currentFetchRequest) {
-          _this2.setState({
-            response: {
-              error: true,
-              errorMsg: error.message
-            }
-          });
-        }
-      });
-      return fetchRequest;
-    }
-  }, {
-    key: "render",
-    value: function render() {
-      var response = this.state.response;
-      var _this$props = this.props,
-          className = _this$props.className,
-          EmptyResponsePlaceholder = _this$props.EmptyResponsePlaceholder,
-          ErrorResponsePlaceholder = _this$props.ErrorResponsePlaceholder,
-          LoadingResponsePlaceholder = _this$props.LoadingResponsePlaceholder;
+  const debouncedFetchData = Object(external_wp_compose_["useDebounce"])(fetchData, 500); // When the component unmounts, set isMountedRef to false. This will
+  // let the async fetch callbacks know when to stop.
 
-      if (response === '') {
-        return Object(external_this_wp_element_["createElement"])(EmptyResponsePlaceholder, Object(esm_extends["a" /* default */])({
-          response: response
-        }, this.props));
-      } else if (!response) {
-        return Object(external_this_wp_element_["createElement"])(LoadingResponsePlaceholder, Object(esm_extends["a" /* default */])({
-          response: response
-        }, this.props));
-      } else if (response.error) {
-        return Object(external_this_wp_element_["createElement"])(ErrorResponsePlaceholder, Object(esm_extends["a" /* default */])({
-          response: response
-        }, this.props));
-      }
-
-      return Object(external_this_wp_element_["createElement"])(external_this_wp_element_["RawHTML"], {
-        key: "html",
-        className: className
-      }, response);
+  Object(external_wp_element_["useEffect"])(() => () => {
+    isMountedRef.current = false;
+  }, []);
+  Object(external_wp_element_["useEffect"])(() => {
+    // Don't debounce the first fetch. This ensures that the first render
+    // shows data as soon as possible
+    if (prevProps === undefined) {
+      fetchData();
+    } else if (!Object(external_lodash_["isEqual"])(prevProps, props)) {
+      debouncedFetchData();
     }
-  }]);
+  });
 
-  return ServerSideRender;
-}(external_this_wp_element_["Component"]);
-server_side_render_ServerSideRender.defaultProps = {
-  EmptyResponsePlaceholder: function EmptyResponsePlaceholder(_ref) {
-    var className = _ref.className;
-    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Placeholder"], {
-      className: className
-    }, Object(external_this_wp_i18n_["__"])('Block rendered as empty.'));
-  },
-  ErrorResponsePlaceholder: function ErrorResponsePlaceholder(_ref2) {
-    var response = _ref2.response,
-        className = _ref2.className;
-    var errorMessage = Object(external_this_wp_i18n_["sprintf"])( // translators: %s: error message describing the problem
-    Object(external_this_wp_i18n_["__"])('Error loading block: %s'), response.errorMsg);
-    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Placeholder"], {
-      className: className
-    }, errorMessage);
-  },
-  LoadingResponsePlaceholder: function LoadingResponsePlaceholder(_ref3) {
-    var className = _ref3.className;
-    return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Placeholder"], {
-      className: className
-    }, Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Spinner"], null));
+  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 */])({
+      response: response
+    }, props));
   }
-};
-/* harmony default export */ var server_side_render = (server_side_render_ServerSideRender);
+
+  return Object(external_wp_element_["createElement"])(external_wp_element_["RawHTML"], {
+    className: className
+  }, response);
+}
 
 // CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/index.js
 
 
 
-
-
-function build_module_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 build_module_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { build_module_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 { build_module_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
 /**
  * WordPress dependencies
  */
@@ -597,47 +298,51 @@
  * Constants
  */
 
-var EMPTY_OBJECT = {};
-var ExportedServerSideRender = Object(external_this_wp_data_["withSelect"])(function (select) {
-  var coreEditorSelect = select('core/editor');
+const EMPTY_OBJECT = {};
+const ExportedServerSideRender = Object(external_wp_data_["withSelect"])(select => {
+  const coreEditorSelect = select('core/editor');
 
   if (coreEditorSelect) {
-    var currentPostId = coreEditorSelect.getCurrentPostId();
+    const currentPostId = coreEditorSelect.getCurrentPostId(); // For templates and template parts we use a custom ID format.
+    // Since they aren't real posts, we don't want to use their ID
+    // for server-side rendering. Since they use a string based ID,
+    // we can assume real post IDs are numbers.
 
-    if (currentPostId) {
+    if (currentPostId && typeof currentPostId === 'number') {
       return {
-        currentPostId: currentPostId
+        currentPostId
       };
     }
   }
 
   return EMPTY_OBJECT;
-})(function (_ref) {
-  var _ref$urlQueryArgs = _ref.urlQueryArgs,
-      urlQueryArgs = _ref$urlQueryArgs === void 0 ? EMPTY_OBJECT : _ref$urlQueryArgs,
-      currentPostId = _ref.currentPostId,
-      props = Object(objectWithoutProperties["a" /* default */])(_ref, ["urlQueryArgs", "currentPostId"]);
-
-  var newUrlQueryArgs = Object(external_this_wp_element_["useMemo"])(function () {
+})(({
+  urlQueryArgs = EMPTY_OBJECT,
+  currentPostId,
+  ...props
+}) => {
+  const newUrlQueryArgs = Object(external_wp_element_["useMemo"])(() => {
     if (!currentPostId) {
       return urlQueryArgs;
     }
 
-    return build_module_objectSpread({
-      post_id: currentPostId
-    }, urlQueryArgs);
+    return {
+      post_id: currentPostId,
+      ...urlQueryArgs
+    };
   }, [currentPostId, urlQueryArgs]);
-  return Object(external_this_wp_element_["createElement"])(server_side_render, Object(esm_extends["a" /* default */])({
+  return Object(external_wp_element_["createElement"])(ServerSideRender, Object(esm_extends["a" /* default */])({
     urlQueryArgs: newUrlQueryArgs
   }, props));
 });
 
 if (window && window.wp && window.wp.components) {
-  window.wp.components.ServerSideRender = Object(external_this_wp_element_["forwardRef"])(function (props, ref) {
-    external_this_wp_deprecated_default()('wp.components.ServerSideRender', {
+  window.wp.components.ServerSideRender = Object(external_wp_element_["forwardRef"])((props, ref) => {
+    external_wp_deprecated_default()('wp.components.ServerSideRender', {
+      since: '5.3',
       alternative: 'wp.serverSideRender'
     });
-    return Object(external_this_wp_element_["createElement"])(ExportedServerSideRender, Object(esm_extends["a" /* default */])({}, props, {
+    return Object(external_wp_element_["createElement"])(ExportedServerSideRender, Object(esm_extends["a" /* default */])({}, props, {
       ref: ref
     }));
   });
@@ -648,29 +353,63 @@
 
 /***/ }),
 
-/***/ 5:
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
+/***/ "GRId":
+/***/ (function(module, exports) {
+
+(function() { module.exports = window["wp"]["element"]; }());
+
+/***/ }),
+
+/***/ "HSyU":
+/***/ (function(module, exports) {
+
+(function() { module.exports = window["wp"]["blocks"]; }());
 
-"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;
-  }
+/***/ }),
+
+/***/ "K9lf":
+/***/ (function(module, exports) {
+
+(function() { module.exports = window["wp"]["compose"]; }());
 
-  return obj;
-}
+/***/ }),
+
+/***/ "Mmq9":
+/***/ (function(module, exports) {
+
+(function() { module.exports = window["wp"]["url"]; }());
 
 /***/ }),
 
-/***/ 8:
+/***/ "NMb1":
+/***/ (function(module, exports) {
+
+(function() { module.exports = window["wp"]["deprecated"]; }());
+
+/***/ }),
+
+/***/ "YLtl":
+/***/ (function(module, exports) {
+
+(function() { module.exports = window["lodash"]; }());
+
+/***/ }),
+
+/***/ "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";
@@ -693,6 +432,13 @@
   return _extends.apply(this, arguments);
 }
 
+/***/ }),
+
+/***/ "ywyh":
+/***/ (function(module, exports) {
+
+(function() { module.exports = window["wp"]["apiFetch"]; }());
+
 /***/ })
 
 /******/ })["default"];
\ No newline at end of file