817 lines
		
	
	
	
		
			24 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			817 lines
		
	
	
	
		
			24 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | this["wp"] = this["wp"] || {}; this["wp"]["listReusableBlocks"] = | ||
|  | /******/ (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 = 317); | ||
|  | /******/ }) | ||
|  | /************************************************************************/ | ||
|  | /******/ ({ | ||
|  | 
 | ||
|  | /***/ 0: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["wp"]["element"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 1: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["wp"]["i18n"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 10: | ||
|  | /***/ (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"); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 12: | ||
|  | /***/ (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__(28); | ||
|  | /* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); | ||
|  | 
 | ||
|  | 
 | ||
|  | 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); | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 13: | ||
|  | /***/ (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); | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 14: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | // 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
 | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inherits; }); | ||
|  | 
 | ||
|  | 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); | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 2: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["lodash"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 28: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _typeof; }); | ||
|  | function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } | ||
|  | 
 | ||
|  | function _typeof(obj) { | ||
|  |   if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { | ||
|  |     _typeof = function _typeof(obj) { | ||
|  |       return _typeof2(obj); | ||
|  |     }; | ||
|  |   } else { | ||
|  |     _typeof = function _typeof(obj) { | ||
|  |       return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); | ||
|  |     }; | ||
|  |   } | ||
|  | 
 | ||
|  |   return _typeof(obj); | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 3: | ||
|  | /***/ (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; | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 30: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["wp"]["apiFetch"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 317: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | __webpack_require__.r(__webpack_exports__); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external {"this":["wp","element"]}
 | ||
|  | var external_this_wp_element_ = __webpack_require__(0); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external {"this":["wp","i18n"]}
 | ||
|  | var external_this_wp_i18n_ = __webpack_require__(1); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
 | ||
|  | var asyncToGenerator = __webpack_require__(38); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external "lodash"
 | ||
|  | var external_lodash_ = __webpack_require__(2); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external {"this":["wp","apiFetch"]}
 | ||
|  | var external_this_wp_apiFetch_ = __webpack_require__(30); | ||
|  | var external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/utils/file.js
 | ||
|  | /** | ||
|  |  * Downloads a file. | ||
|  |  * | ||
|  |  * @param {string} fileName    File Name. | ||
|  |  * @param {string} content     File Content. | ||
|  |  * @param {string} contentType File mime type. | ||
|  |  */ | ||
|  | function download(fileName, content, contentType) { | ||
|  |   var file = new window.Blob([content], { | ||
|  |     type: contentType | ||
|  |   }); // IE11 can't use the click to download technique
 | ||
|  |   // we use a specific IE11 technique instead.
 | ||
|  | 
 | ||
|  |   if (window.navigator.msSaveOrOpenBlob) { | ||
|  |     window.navigator.msSaveOrOpenBlob(file, fileName); | ||
|  |   } else { | ||
|  |     var a = document.createElement('a'); | ||
|  |     a.href = URL.createObjectURL(file); | ||
|  |     a.download = fileName; | ||
|  |     a.style.display = 'none'; | ||
|  |     document.body.appendChild(a); | ||
|  |     a.click(); | ||
|  |     document.body.removeChild(a); | ||
|  |   } | ||
|  | } | ||
|  | /** | ||
|  |  * Reads the textual content of the given file. | ||
|  |  * | ||
|  |  * @param  {File} file        File. | ||
|  |  * @return {Promise<string>}  Content of the file. | ||
|  |  */ | ||
|  | 
 | ||
|  | function readTextFile(file) { | ||
|  |   var reader = new window.FileReader(); | ||
|  |   return new Promise(function (resolve) { | ||
|  |     reader.onload = function () { | ||
|  |       resolve(reader.result); | ||
|  |     }; | ||
|  | 
 | ||
|  |     reader.readAsText(file); | ||
|  |   }); | ||
|  | } | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/utils/export.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Export a reusable block as a JSON file. | ||
|  |  * | ||
|  |  * @param {number} id | ||
|  |  */ | ||
|  | 
 | ||
|  | function exportReusableBlock(_x) { | ||
|  |   return _exportReusableBlock.apply(this, arguments); | ||
|  | } | ||
|  | 
 | ||
|  | function _exportReusableBlock() { | ||
|  |   _exportReusableBlock = Object(asyncToGenerator["a" /* default */])( | ||
|  |   /*#__PURE__*/ | ||
|  |   regeneratorRuntime.mark(function _callee(id) { | ||
|  |     var postType, post, title, content, fileContent, fileName; | ||
|  |     return regeneratorRuntime.wrap(function _callee$(_context) { | ||
|  |       while (1) { | ||
|  |         switch (_context.prev = _context.next) { | ||
|  |           case 0: | ||
|  |             _context.next = 2; | ||
|  |             return external_this_wp_apiFetch_default()({ | ||
|  |               path: "/wp/v2/types/wp_block" | ||
|  |             }); | ||
|  | 
 | ||
|  |           case 2: | ||
|  |             postType = _context.sent; | ||
|  |             _context.next = 5; | ||
|  |             return external_this_wp_apiFetch_default()({ | ||
|  |               path: "/wp/v2/".concat(postType.rest_base, "/").concat(id, "?context=edit") | ||
|  |             }); | ||
|  | 
 | ||
|  |           case 5: | ||
|  |             post = _context.sent; | ||
|  |             title = post.title.raw; | ||
|  |             content = post.content.raw; | ||
|  |             fileContent = JSON.stringify({ | ||
|  |               __file: 'wp_block', | ||
|  |               title: title, | ||
|  |               content: content | ||
|  |             }, null, 2); | ||
|  |             fileName = Object(external_lodash_["kebabCase"])(title) + '.json'; | ||
|  |             download(fileName, fileContent, 'application/json'); | ||
|  | 
 | ||
|  |           case 11: | ||
|  |           case "end": | ||
|  |             return _context.stop(); | ||
|  |         } | ||
|  |       } | ||
|  |     }, _callee, this); | ||
|  |   })); | ||
|  |   return _exportReusableBlock.apply(this, arguments); | ||
|  | } | ||
|  | 
 | ||
|  | /* harmony default export */ var utils_export = (exportReusableBlock); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external {"this":["wp","components"]}
 | ||
|  | var external_this_wp_components_ = __webpack_require__(4); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js
 | ||
|  | var classCallCheck = __webpack_require__(10); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
 | ||
|  | var createClass = __webpack_require__(9); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
 | ||
|  | var possibleConstructorReturn = __webpack_require__(12); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
 | ||
|  | var getPrototypeOf = __webpack_require__(13); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
 | ||
|  | var inherits = __webpack_require__(14); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
 | ||
|  | var assertThisInitialized = __webpack_require__(3); | ||
|  | 
 | ||
|  | // EXTERNAL MODULE: external {"this":["wp","compose"]}
 | ||
|  | var external_this_wp_compose_ = __webpack_require__(7); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/utils/import.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Import a reusable block from a JSON file. | ||
|  |  * | ||
|  |  * @param {File}     file File. | ||
|  |  * @return {Promise} Promise returning the imported reusable block. | ||
|  |  */ | ||
|  | 
 | ||
|  | function importReusableBlock(_x) { | ||
|  |   return _importReusableBlock.apply(this, arguments); | ||
|  | } | ||
|  | 
 | ||
|  | function _importReusableBlock() { | ||
|  |   _importReusableBlock = Object(asyncToGenerator["a" /* default */])( | ||
|  |   /*#__PURE__*/ | ||
|  |   regeneratorRuntime.mark(function _callee(file) { | ||
|  |     var fileContent, parsedContent, postType, reusableBlock; | ||
|  |     return regeneratorRuntime.wrap(function _callee$(_context) { | ||
|  |       while (1) { | ||
|  |         switch (_context.prev = _context.next) { | ||
|  |           case 0: | ||
|  |             _context.next = 2; | ||
|  |             return readTextFile(file); | ||
|  | 
 | ||
|  |           case 2: | ||
|  |             fileContent = _context.sent; | ||
|  |             _context.prev = 3; | ||
|  |             parsedContent = JSON.parse(fileContent); | ||
|  |             _context.next = 10; | ||
|  |             break; | ||
|  | 
 | ||
|  |           case 7: | ||
|  |             _context.prev = 7; | ||
|  |             _context.t0 = _context["catch"](3); | ||
|  |             throw new Error('Invalid JSON file'); | ||
|  | 
 | ||
|  |           case 10: | ||
|  |             if (!(parsedContent.__file !== 'wp_block' || !parsedContent.title || !parsedContent.content || !Object(external_lodash_["isString"])(parsedContent.title) || !Object(external_lodash_["isString"])(parsedContent.content))) { | ||
|  |               _context.next = 12; | ||
|  |               break; | ||
|  |             } | ||
|  | 
 | ||
|  |             throw new Error('Invalid Reusable Block JSON file'); | ||
|  | 
 | ||
|  |           case 12: | ||
|  |             _context.next = 14; | ||
|  |             return external_this_wp_apiFetch_default()({ | ||
|  |               path: "/wp/v2/types/wp_block" | ||
|  |             }); | ||
|  | 
 | ||
|  |           case 14: | ||
|  |             postType = _context.sent; | ||
|  |             _context.next = 17; | ||
|  |             return external_this_wp_apiFetch_default()({ | ||
|  |               path: "/wp/v2/".concat(postType.rest_base), | ||
|  |               data: { | ||
|  |                 title: parsedContent.title, | ||
|  |                 content: parsedContent.content, | ||
|  |                 status: 'publish' | ||
|  |               }, | ||
|  |               method: 'POST' | ||
|  |             }); | ||
|  | 
 | ||
|  |           case 17: | ||
|  |             reusableBlock = _context.sent; | ||
|  |             return _context.abrupt("return", reusableBlock); | ||
|  | 
 | ||
|  |           case 19: | ||
|  |           case "end": | ||
|  |             return _context.stop(); | ||
|  |         } | ||
|  |       } | ||
|  |     }, _callee, this, [[3, 7]]); | ||
|  |   })); | ||
|  |   return _importReusableBlock.apply(this, arguments); | ||
|  | } | ||
|  | 
 | ||
|  | /* harmony default export */ var utils_import = (importReusableBlock); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/components/import-form/index.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | var import_form_ImportForm = | ||
|  | /*#__PURE__*/ | ||
|  | function (_Component) { | ||
|  |   Object(inherits["a" /* default */])(ImportForm, _Component); | ||
|  | 
 | ||
|  |   function ImportForm() { | ||
|  |     var _this; | ||
|  | 
 | ||
|  |     Object(classCallCheck["a" /* default */])(this, ImportForm); | ||
|  | 
 | ||
|  |     _this = Object(possibleConstructorReturn["a" /* default */])(this, Object(getPrototypeOf["a" /* default */])(ImportForm).apply(this, arguments)); | ||
|  |     _this.state = { | ||
|  |       isLoading: false, | ||
|  |       error: null, | ||
|  |       file: null | ||
|  |     }; | ||
|  |     _this.isStillMounted = true; | ||
|  |     _this.onChangeFile = _this.onChangeFile.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); | ||
|  |     _this.onSubmit = _this.onSubmit.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this))); | ||
|  |     return _this; | ||
|  |   } | ||
|  | 
 | ||
|  |   Object(createClass["a" /* default */])(ImportForm, [{ | ||
|  |     key: "componentWillUnmount", | ||
|  |     value: function componentWillUnmount() { | ||
|  |       this.isStillMounted = false; | ||
|  |     } | ||
|  |   }, { | ||
|  |     key: "onChangeFile", | ||
|  |     value: function onChangeFile(event) { | ||
|  |       this.setState({ | ||
|  |         file: event.target.files[0] | ||
|  |       }); | ||
|  |     } | ||
|  |   }, { | ||
|  |     key: "onSubmit", | ||
|  |     value: function onSubmit(event) { | ||
|  |       var _this2 = this; | ||
|  | 
 | ||
|  |       event.preventDefault(); | ||
|  |       var file = this.state.file; | ||
|  |       var onUpload = this.props.onUpload; | ||
|  | 
 | ||
|  |       if (!file) { | ||
|  |         return; | ||
|  |       } | ||
|  | 
 | ||
|  |       this.setState({ | ||
|  |         isLoading: true | ||
|  |       }); | ||
|  |       utils_import(file).then(function (reusableBlock) { | ||
|  |         if (!_this2.isStillMounted) { | ||
|  |           return; | ||
|  |         } | ||
|  | 
 | ||
|  |         _this2.setState({ | ||
|  |           isLoading: false | ||
|  |         }); | ||
|  | 
 | ||
|  |         onUpload(reusableBlock); | ||
|  |       }).catch(function (error) { | ||
|  |         if (!_this2.isStillMounted) { | ||
|  |           return; | ||
|  |         } | ||
|  | 
 | ||
|  |         var uiMessage; | ||
|  | 
 | ||
|  |         switch (error.message) { | ||
|  |           case 'Invalid JSON file': | ||
|  |             uiMessage = Object(external_this_wp_i18n_["__"])('Invalid JSON file'); | ||
|  |             break; | ||
|  | 
 | ||
|  |           case 'Invalid Reusable Block JSON file': | ||
|  |             uiMessage = Object(external_this_wp_i18n_["__"])('Invalid Reusable Block JSON file'); | ||
|  |             break; | ||
|  | 
 | ||
|  |           default: | ||
|  |             uiMessage = Object(external_this_wp_i18n_["__"])('Unknown error'); | ||
|  |         } | ||
|  | 
 | ||
|  |         _this2.setState({ | ||
|  |           isLoading: false, | ||
|  |           error: uiMessage | ||
|  |         }); | ||
|  |       }); | ||
|  |     } | ||
|  |   }, { | ||
|  |     key: "render", | ||
|  |     value: function render() { | ||
|  |       var instanceId = this.props.instanceId; | ||
|  |       var _this$state = this.state, | ||
|  |           file = _this$state.file, | ||
|  |           isLoading = _this$state.isLoading, | ||
|  |           error = _this$state.error; | ||
|  |       var inputId = 'list-reusable-blocks-import-form-' + instanceId; | ||
|  |       return Object(external_this_wp_element_["createElement"])("form", { | ||
|  |         className: "list-reusable-blocks-import-form", | ||
|  |         onSubmit: this.onSubmit | ||
|  |       }, error && Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Notice"], { | ||
|  |         status: "error" | ||
|  |       }, error), Object(external_this_wp_element_["createElement"])("label", { | ||
|  |         htmlFor: inputId, | ||
|  |         className: "list-reusable-blocks-import-form__label" | ||
|  |       }, Object(external_this_wp_i18n_["__"])('File')), Object(external_this_wp_element_["createElement"])("input", { | ||
|  |         id: inputId, | ||
|  |         type: "file", | ||
|  |         onChange: this.onChangeFile | ||
|  |       }), Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], { | ||
|  |         type: "submit", | ||
|  |         isBusy: isLoading, | ||
|  |         disabled: !file || isLoading, | ||
|  |         isDefault: true, | ||
|  |         className: "list-reusable-blocks-import-form__button" | ||
|  |       }, Object(external_this_wp_i18n_["_x"])('Import', 'button label'))); | ||
|  |     } | ||
|  |   }]); | ||
|  | 
 | ||
|  |   return ImportForm; | ||
|  | }(external_this_wp_element_["Component"]); | ||
|  | 
 | ||
|  | /* harmony default export */ var import_form = (Object(external_this_wp_compose_["withInstanceId"])(import_form_ImportForm)); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/components/import-dropdown/index.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * External dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | function ImportDropdown(_ref) { | ||
|  |   var onUpload = _ref.onUpload; | ||
|  |   return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Dropdown"], { | ||
|  |     position: "bottom right", | ||
|  |     contentClassName: "list-reusable-blocks-import-dropdown__content", | ||
|  |     renderToggle: function renderToggle(_ref2) { | ||
|  |       var isOpen = _ref2.isOpen, | ||
|  |           onToggle = _ref2.onToggle; | ||
|  |       return Object(external_this_wp_element_["createElement"])(external_this_wp_components_["Button"], { | ||
|  |         type: "button", | ||
|  |         "aria-expanded": isOpen, | ||
|  |         onClick: onToggle, | ||
|  |         isPrimary: true | ||
|  |       }, Object(external_this_wp_i18n_["__"])('Import from JSON')); | ||
|  |     }, | ||
|  |     renderContent: function renderContent(_ref3) { | ||
|  |       var onClose = _ref3.onClose; | ||
|  |       return Object(external_this_wp_element_["createElement"])(import_form, { | ||
|  |         onUpload: Object(external_lodash_["flow"])(onClose, onUpload) | ||
|  |       }); | ||
|  |     } | ||
|  |   }); | ||
|  | } | ||
|  | 
 | ||
|  | /* harmony default export */ var import_dropdown = (ImportDropdown); | ||
|  | 
 | ||
|  | // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/index.js
 | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * WordPress dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Internal dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | 
 | ||
|  |  // Setup Export Links
 | ||
|  | 
 | ||
|  | document.body.addEventListener('click', function (event) { | ||
|  |   if (!event.target.classList.contains('wp-list-reusable-blocks__export')) { | ||
|  |     return; | ||
|  |   } | ||
|  | 
 | ||
|  |   event.preventDefault(); | ||
|  |   utils_export(event.target.dataset.id); | ||
|  | }); // Setup Import Form
 | ||
|  | 
 | ||
|  | document.addEventListener('DOMContentLoaded', function () { | ||
|  |   var button = document.querySelector('.page-title-action'); | ||
|  | 
 | ||
|  |   if (!button) { | ||
|  |     return; | ||
|  |   } | ||
|  | 
 | ||
|  |   var showNotice = function showNotice() { | ||
|  |     var notice = document.createElement('div'); | ||
|  |     notice.className = 'notice notice-success is-dismissible'; | ||
|  |     notice.innerHTML = "<p>".concat(Object(external_this_wp_i18n_["__"])('Reusable block imported successfully!'), "</p>"); | ||
|  |     var headerEnd = document.querySelector('.wp-header-end'); | ||
|  | 
 | ||
|  |     if (!headerEnd) { | ||
|  |       return; | ||
|  |     } | ||
|  | 
 | ||
|  |     headerEnd.parentNode.insertBefore(notice, headerEnd); | ||
|  |   }; | ||
|  | 
 | ||
|  |   var container = document.createElement('div'); | ||
|  |   container.className = 'list-reusable-blocks__container'; | ||
|  |   button.parentNode.insertBefore(container, button); | ||
|  |   Object(external_this_wp_element_["render"])(Object(external_this_wp_element_["createElement"])(import_dropdown, { | ||
|  |     onUpload: showNotice | ||
|  |   }), container); | ||
|  | }); | ||
|  | 
 | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 38: | ||
|  | /***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _asyncToGenerator; }); | ||
|  | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { | ||
|  |   try { | ||
|  |     var info = gen[key](arg); | ||
|  |     var value = info.value; | ||
|  |   } catch (error) { | ||
|  |     reject(error); | ||
|  |     return; | ||
|  |   } | ||
|  | 
 | ||
|  |   if (info.done) { | ||
|  |     resolve(value); | ||
|  |   } else { | ||
|  |     Promise.resolve(value).then(_next, _throw); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | function _asyncToGenerator(fn) { | ||
|  |   return function () { | ||
|  |     var self = this, | ||
|  |         args = arguments; | ||
|  |     return new Promise(function (resolve, reject) { | ||
|  |       var gen = fn.apply(self, args); | ||
|  | 
 | ||
|  |       function _next(value) { | ||
|  |         asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); | ||
|  |       } | ||
|  | 
 | ||
|  |       function _throw(err) { | ||
|  |         asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); | ||
|  |       } | ||
|  | 
 | ||
|  |       _next(undefined); | ||
|  |     }); | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 4: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["wp"]["components"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 7: | ||
|  | /***/ (function(module, exports) { | ||
|  | 
 | ||
|  | (function() { module.exports = this["wp"]["compose"]; }()); | ||
|  | 
 | ||
|  | /***/ }), | ||
|  | 
 | ||
|  | /***/ 9: | ||
|  | /***/ (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; | ||
|  | } | ||
|  | 
 | ||
|  | /***/ }) | ||
|  | 
 | ||
|  | /******/ }); |