ru-se.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

server-side-render.js (13770B)


      1 this["wp"] = this["wp"] || {}; this["wp"]["serverSideRender"] =
      2 /******/ (function(modules) { // webpackBootstrap
      3 /******/ 	// The module cache
      4 /******/ 	var installedModules = {};
      5 /******/
      6 /******/ 	// The require function
      7 /******/ 	function __webpack_require__(moduleId) {
      8 /******/
      9 /******/ 		// Check if module is in cache
     10 /******/ 		if(installedModules[moduleId]) {
     11 /******/ 			return installedModules[moduleId].exports;
     12 /******/ 		}
     13 /******/ 		// Create a new module (and put it into the cache)
     14 /******/ 		var module = installedModules[moduleId] = {
     15 /******/ 			i: moduleId,
     16 /******/ 			l: false,
     17 /******/ 			exports: {}
     18 /******/ 		};
     19 /******/
     20 /******/ 		// Execute the module function
     21 /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
     22 /******/
     23 /******/ 		// Flag the module as loaded
     24 /******/ 		module.l = true;
     25 /******/
     26 /******/ 		// Return the exports of the module
     27 /******/ 		return module.exports;
     28 /******/ 	}
     29 /******/
     30 /******/
     31 /******/ 	// expose the modules object (__webpack_modules__)
     32 /******/ 	__webpack_require__.m = modules;
     33 /******/
     34 /******/ 	// expose the module cache
     35 /******/ 	__webpack_require__.c = installedModules;
     36 /******/
     37 /******/ 	// define getter function for harmony exports
     38 /******/ 	__webpack_require__.d = function(exports, name, getter) {
     39 /******/ 		if(!__webpack_require__.o(exports, name)) {
     40 /******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
     41 /******/ 		}
     42 /******/ 	};
     43 /******/
     44 /******/ 	// define __esModule on exports
     45 /******/ 	__webpack_require__.r = function(exports) {
     46 /******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
     47 /******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
     48 /******/ 		}
     49 /******/ 		Object.defineProperty(exports, '__esModule', { value: true });
     50 /******/ 	};
     51 /******/
     52 /******/ 	// create a fake namespace object
     53 /******/ 	// mode & 1: value is a module id, require it
     54 /******/ 	// mode & 2: merge all properties of value into the ns
     55 /******/ 	// mode & 4: return value when already ns object
     56 /******/ 	// mode & 8|1: behave like require
     57 /******/ 	__webpack_require__.t = function(value, mode) {
     58 /******/ 		if(mode & 1) value = __webpack_require__(value);
     59 /******/ 		if(mode & 8) return value;
     60 /******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
     61 /******/ 		var ns = Object.create(null);
     62 /******/ 		__webpack_require__.r(ns);
     63 /******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
     64 /******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
     65 /******/ 		return ns;
     66 /******/ 	};
     67 /******/
     68 /******/ 	// getDefaultExport function for compatibility with non-harmony modules
     69 /******/ 	__webpack_require__.n = function(module) {
     70 /******/ 		var getter = module && module.__esModule ?
     71 /******/ 			function getDefault() { return module['default']; } :
     72 /******/ 			function getModuleExports() { return module; };
     73 /******/ 		__webpack_require__.d(getter, 'a', getter);
     74 /******/ 		return getter;
     75 /******/ 	};
     76 /******/
     77 /******/ 	// Object.prototype.hasOwnProperty.call
     78 /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
     79 /******/
     80 /******/ 	// __webpack_public_path__
     81 /******/ 	__webpack_require__.p = "";
     82 /******/
     83 /******/
     84 /******/ 	// Load entry module and return exports
     85 /******/ 	return __webpack_require__(__webpack_require__.s = "4dqW");
     86 /******/ })
     87 /************************************************************************/
     88 /******/ ({
     89 
     90 /***/ "1ZqX":
     91 /***/ (function(module, exports) {
     92 
     93 (function() { module.exports = window["wp"]["data"]; }());
     94 
     95 /***/ }),
     96 
     97 /***/ "4dqW":
     98 /***/ (function(module, __webpack_exports__, __webpack_require__) {
     99 
    100 "use strict";
    101 // ESM COMPAT FLAG
    102 __webpack_require__.r(__webpack_exports__);
    103 
    104 // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
    105 var esm_extends = __webpack_require__("wx14");
    106 
    107 // EXTERNAL MODULE: external ["wp","element"]
    108 var external_wp_element_ = __webpack_require__("GRId");
    109 
    110 // EXTERNAL MODULE: external ["wp","data"]
    111 var external_wp_data_ = __webpack_require__("1ZqX");
    112 
    113 // EXTERNAL MODULE: external ["wp","deprecated"]
    114 var external_wp_deprecated_ = __webpack_require__("NMb1");
    115 var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_);
    116 
    117 // EXTERNAL MODULE: external "lodash"
    118 var external_lodash_ = __webpack_require__("YLtl");
    119 
    120 // EXTERNAL MODULE: external ["wp","compose"]
    121 var external_wp_compose_ = __webpack_require__("K9lf");
    122 
    123 // EXTERNAL MODULE: external ["wp","i18n"]
    124 var external_wp_i18n_ = __webpack_require__("l3Sj");
    125 
    126 // EXTERNAL MODULE: external ["wp","apiFetch"]
    127 var external_wp_apiFetch_ = __webpack_require__("ywyh");
    128 var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_);
    129 
    130 // EXTERNAL MODULE: external ["wp","url"]
    131 var external_wp_url_ = __webpack_require__("Mmq9");
    132 
    133 // EXTERNAL MODULE: external ["wp","components"]
    134 var external_wp_components_ = __webpack_require__("tI+e");
    135 
    136 // EXTERNAL MODULE: external ["wp","blocks"]
    137 var external_wp_blocks_ = __webpack_require__("HSyU");
    138 
    139 // CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/server-side-render.js
    140 
    141 
    142 
    143 /**
    144  * External dependencies
    145  */
    146 
    147 /**
    148  * WordPress dependencies
    149  */
    150 
    151 
    152 
    153 
    154 
    155 
    156 
    157 
    158 function rendererPath(block, attributes = null, urlQueryArgs = {}) {
    159   return Object(external_wp_url_["addQueryArgs"])(`/wp/v2/block-renderer/${block}`, {
    160     context: 'edit',
    161     ...(null !== attributes ? {
    162       attributes
    163     } : {}),
    164     ...urlQueryArgs
    165   });
    166 }
    167 
    168 function DefaultEmptyResponsePlaceholder({
    169   className
    170 }) {
    171   return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], {
    172     className: className
    173   }, Object(external_wp_i18n_["__"])('Block rendered as empty.'));
    174 }
    175 
    176 function DefaultErrorResponsePlaceholder({
    177   response,
    178   className
    179 }) {
    180   const errorMessage = Object(external_wp_i18n_["sprintf"])( // translators: %s: error message describing the problem
    181   Object(external_wp_i18n_["__"])('Error loading block: %s'), response.errorMsg);
    182   return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], {
    183     className: className
    184   }, errorMessage);
    185 }
    186 
    187 function DefaultLoadingResponsePlaceholder({
    188   className
    189 }) {
    190   return Object(external_wp_element_["createElement"])(external_wp_components_["Placeholder"], {
    191     className: className
    192   }, Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null));
    193 }
    194 
    195 function ServerSideRender(props) {
    196   const {
    197     attributes,
    198     block,
    199     className,
    200     httpMethod = 'GET',
    201     urlQueryArgs,
    202     EmptyResponsePlaceholder = DefaultEmptyResponsePlaceholder,
    203     ErrorResponsePlaceholder = DefaultErrorResponsePlaceholder,
    204     LoadingResponsePlaceholder = DefaultLoadingResponsePlaceholder
    205   } = props;
    206   const isMountedRef = Object(external_wp_element_["useRef"])(true);
    207   const fetchRequestRef = Object(external_wp_element_["useRef"])();
    208   const [response, setResponse] = Object(external_wp_element_["useState"])(null);
    209   const prevProps = Object(external_wp_compose_["usePrevious"])(props);
    210 
    211   function fetchData() {
    212     if (!isMountedRef.current) {
    213       return;
    214     }
    215 
    216     if (null !== response) {
    217       setResponse(null);
    218     }
    219 
    220     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.
    221     // This allows sending a larger attributes object than in a GET request, where the attributes are in the URL.
    222 
    223 
    224     const isPostRequest = 'POST' === httpMethod;
    225     const urlAttributes = isPostRequest ? null : sanitizedAttributes !== null && sanitizedAttributes !== void 0 ? sanitizedAttributes : null;
    226     const path = rendererPath(block, urlAttributes, urlQueryArgs);
    227     const data = isPostRequest ? {
    228       attributes: sanitizedAttributes !== null && sanitizedAttributes !== void 0 ? sanitizedAttributes : null
    229     } : null; // Store the latest fetch request so that when we process it, we can
    230     // check if it is the current request, to avoid race conditions on slow networks.
    231 
    232     const fetchRequest = fetchRequestRef.current = external_wp_apiFetch_default()({
    233       path,
    234       data,
    235       method: isPostRequest ? 'POST' : 'GET'
    236     }).then(fetchResponse => {
    237       if (isMountedRef.current && fetchRequest === fetchRequestRef.current && fetchResponse) {
    238         setResponse(fetchResponse.rendered);
    239       }
    240     }).catch(error => {
    241       if (isMountedRef.current && fetchRequest === fetchRequestRef.current) {
    242         setResponse({
    243           error: true,
    244           errorMsg: error.message
    245         });
    246       }
    247     });
    248     return fetchRequest;
    249   }
    250 
    251   const debouncedFetchData = Object(external_wp_compose_["useDebounce"])(fetchData, 500); // When the component unmounts, set isMountedRef to false. This will
    252   // let the async fetch callbacks know when to stop.
    253 
    254   Object(external_wp_element_["useEffect"])(() => () => {
    255     isMountedRef.current = false;
    256   }, []);
    257   Object(external_wp_element_["useEffect"])(() => {
    258     // Don't debounce the first fetch. This ensures that the first render
    259     // shows data as soon as possible
    260     if (prevProps === undefined) {
    261       fetchData();
    262     } else if (!Object(external_lodash_["isEqual"])(prevProps, props)) {
    263       debouncedFetchData();
    264     }
    265   });
    266 
    267   if (response === '') {
    268     return Object(external_wp_element_["createElement"])(EmptyResponsePlaceholder, props);
    269   } else if (!response) {
    270     return Object(external_wp_element_["createElement"])(LoadingResponsePlaceholder, props);
    271   } else if (response.error) {
    272     return Object(external_wp_element_["createElement"])(ErrorResponsePlaceholder, Object(esm_extends["a" /* default */])({
    273       response: response
    274     }, props));
    275   }
    276 
    277   return Object(external_wp_element_["createElement"])(external_wp_element_["RawHTML"], {
    278     className: className
    279   }, response);
    280 }
    281 
    282 // CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/index.js
    283 
    284 
    285 
    286 /**
    287  * WordPress dependencies
    288  */
    289 
    290 
    291 
    292 /**
    293  * Internal dependencies
    294  */
    295 
    296 
    297 /**
    298  * Constants
    299  */
    300 
    301 const EMPTY_OBJECT = {};
    302 const ExportedServerSideRender = Object(external_wp_data_["withSelect"])(select => {
    303   const coreEditorSelect = select('core/editor');
    304 
    305   if (coreEditorSelect) {
    306     const currentPostId = coreEditorSelect.getCurrentPostId(); // For templates and template parts we use a custom ID format.
    307     // Since they aren't real posts, we don't want to use their ID
    308     // for server-side rendering. Since they use a string based ID,
    309     // we can assume real post IDs are numbers.
    310 
    311     if (currentPostId && typeof currentPostId === 'number') {
    312       return {
    313         currentPostId
    314       };
    315     }
    316   }
    317 
    318   return EMPTY_OBJECT;
    319 })(({
    320   urlQueryArgs = EMPTY_OBJECT,
    321   currentPostId,
    322   ...props
    323 }) => {
    324   const newUrlQueryArgs = Object(external_wp_element_["useMemo"])(() => {
    325     if (!currentPostId) {
    326       return urlQueryArgs;
    327     }
    328 
    329     return {
    330       post_id: currentPostId,
    331       ...urlQueryArgs
    332     };
    333   }, [currentPostId, urlQueryArgs]);
    334   return Object(external_wp_element_["createElement"])(ServerSideRender, Object(esm_extends["a" /* default */])({
    335     urlQueryArgs: newUrlQueryArgs
    336   }, props));
    337 });
    338 
    339 if (window && window.wp && window.wp.components) {
    340   window.wp.components.ServerSideRender = Object(external_wp_element_["forwardRef"])((props, ref) => {
    341     external_wp_deprecated_default()('wp.components.ServerSideRender', {
    342       since: '5.3',
    343       alternative: 'wp.serverSideRender'
    344     });
    345     return Object(external_wp_element_["createElement"])(ExportedServerSideRender, Object(esm_extends["a" /* default */])({}, props, {
    346       ref: ref
    347     }));
    348   });
    349 }
    350 
    351 /* harmony default export */ var build_module = __webpack_exports__["default"] = (ExportedServerSideRender);
    352 
    353 
    354 /***/ }),
    355 
    356 /***/ "GRId":
    357 /***/ (function(module, exports) {
    358 
    359 (function() { module.exports = window["wp"]["element"]; }());
    360 
    361 /***/ }),
    362 
    363 /***/ "HSyU":
    364 /***/ (function(module, exports) {
    365 
    366 (function() { module.exports = window["wp"]["blocks"]; }());
    367 
    368 /***/ }),
    369 
    370 /***/ "K9lf":
    371 /***/ (function(module, exports) {
    372 
    373 (function() { module.exports = window["wp"]["compose"]; }());
    374 
    375 /***/ }),
    376 
    377 /***/ "Mmq9":
    378 /***/ (function(module, exports) {
    379 
    380 (function() { module.exports = window["wp"]["url"]; }());
    381 
    382 /***/ }),
    383 
    384 /***/ "NMb1":
    385 /***/ (function(module, exports) {
    386 
    387 (function() { module.exports = window["wp"]["deprecated"]; }());
    388 
    389 /***/ }),
    390 
    391 /***/ "YLtl":
    392 /***/ (function(module, exports) {
    393 
    394 (function() { module.exports = window["lodash"]; }());
    395 
    396 /***/ }),
    397 
    398 /***/ "l3Sj":
    399 /***/ (function(module, exports) {
    400 
    401 (function() { module.exports = window["wp"]["i18n"]; }());
    402 
    403 /***/ }),
    404 
    405 /***/ "tI+e":
    406 /***/ (function(module, exports) {
    407 
    408 (function() { module.exports = window["wp"]["components"]; }());
    409 
    410 /***/ }),
    411 
    412 /***/ "wx14":
    413 /***/ (function(module, __webpack_exports__, __webpack_require__) {
    414 
    415 "use strict";
    416 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _extends; });
    417 function _extends() {
    418   _extends = Object.assign || function (target) {
    419     for (var i = 1; i < arguments.length; i++) {
    420       var source = arguments[i];
    421 
    422       for (var key in source) {
    423         if (Object.prototype.hasOwnProperty.call(source, key)) {
    424           target[key] = source[key];
    425         }
    426       }
    427     }
    428 
    429     return target;
    430   };
    431 
    432   return _extends.apply(this, arguments);
    433 }
    434 
    435 /***/ }),
    436 
    437 /***/ "ywyh":
    438 /***/ (function(module, exports) {
    439 
    440 (function() { module.exports = window["wp"]["apiFetch"]; }());
    441 
    442 /***/ })
    443 
    444 /******/ })["default"];