1 this["wp"] = this["wp"] || {}; this["wp"]["listReusableBlocks"] = |
1 /******/ (function() { // webpackBootstrap |
2 /******/ (function(modules) { // webpackBootstrap |
2 /******/ "use strict"; |
3 /******/ // The module cache |
3 /******/ // The require scope |
4 /******/ var installedModules = {}; |
4 /******/ var __webpack_require__ = {}; |
5 /******/ |
5 /******/ |
6 /******/ // The require function |
6 /************************************************************************/ |
7 /******/ function __webpack_require__(moduleId) { |
7 /******/ /* webpack/runtime/compat get default export */ |
8 /******/ |
8 /******/ !function() { |
9 /******/ // Check if module is in cache |
9 /******/ // getDefaultExport function for compatibility with non-harmony modules |
10 /******/ if(installedModules[moduleId]) { |
10 /******/ __webpack_require__.n = function(module) { |
11 /******/ return installedModules[moduleId].exports; |
11 /******/ var getter = module && module.__esModule ? |
12 /******/ } |
12 /******/ function() { return module['default']; } : |
13 /******/ // Create a new module (and put it into the cache) |
13 /******/ function() { return module; }; |
14 /******/ var module = installedModules[moduleId] = { |
14 /******/ __webpack_require__.d(getter, { a: getter }); |
15 /******/ i: moduleId, |
15 /******/ return getter; |
16 /******/ l: false, |
|
17 /******/ exports: {} |
|
18 /******/ }; |
16 /******/ }; |
19 /******/ |
17 /******/ }(); |
20 /******/ // Execute the module function |
18 /******/ |
21 /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); |
19 /******/ /* webpack/runtime/define property getters */ |
22 /******/ |
20 /******/ !function() { |
23 /******/ // Flag the module as loaded |
21 /******/ // define getter functions for harmony exports |
24 /******/ module.l = true; |
22 /******/ __webpack_require__.d = function(exports, definition) { |
25 /******/ |
23 /******/ for(var key in definition) { |
26 /******/ // Return the exports of the module |
24 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { |
27 /******/ return module.exports; |
25 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); |
28 /******/ } |
26 /******/ } |
29 /******/ |
27 /******/ } |
30 /******/ |
28 /******/ }; |
31 /******/ // expose the modules object (__webpack_modules__) |
29 /******/ }(); |
32 /******/ __webpack_require__.m = modules; |
30 /******/ |
33 /******/ |
31 /******/ /* webpack/runtime/hasOwnProperty shorthand */ |
34 /******/ // expose the module cache |
32 /******/ !function() { |
35 /******/ __webpack_require__.c = installedModules; |
33 /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } |
36 /******/ |
34 /******/ }(); |
37 /******/ // define getter function for harmony exports |
35 /******/ |
38 /******/ __webpack_require__.d = function(exports, name, getter) { |
36 /******/ /* webpack/runtime/make namespace object */ |
39 /******/ if(!__webpack_require__.o(exports, name)) { |
37 /******/ !function() { |
40 /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); |
38 /******/ // define __esModule on exports |
41 /******/ } |
39 /******/ __webpack_require__.r = function(exports) { |
42 /******/ }; |
40 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { |
43 /******/ |
41 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); |
44 /******/ // define __esModule on exports |
42 /******/ } |
45 /******/ __webpack_require__.r = function(exports) { |
43 /******/ Object.defineProperty(exports, '__esModule', { value: true }); |
46 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { |
44 /******/ }; |
47 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); |
45 /******/ }(); |
48 /******/ } |
46 /******/ |
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 = "SdGz"); |
|
86 /******/ }) |
|
87 /************************************************************************/ |
47 /************************************************************************/ |
88 /******/ ({ |
48 var __webpack_exports__ = {}; |
89 |
|
90 /***/ "GRId": |
|
91 /***/ (function(module, exports) { |
|
92 |
|
93 (function() { module.exports = window["wp"]["element"]; }()); |
|
94 |
|
95 /***/ }), |
|
96 |
|
97 /***/ "K9lf": |
|
98 /***/ (function(module, exports) { |
|
99 |
|
100 (function() { module.exports = window["wp"]["compose"]; }()); |
|
101 |
|
102 /***/ }), |
|
103 |
|
104 /***/ "SdGz": |
|
105 /***/ (function(module, __webpack_exports__, __webpack_require__) { |
|
106 |
|
107 "use strict"; |
|
108 // ESM COMPAT FLAG |
49 // ESM COMPAT FLAG |
109 __webpack_require__.r(__webpack_exports__); |
50 __webpack_require__.r(__webpack_exports__); |
110 |
51 |
111 // EXTERNAL MODULE: external ["wp","element"] |
52 ;// CONCATENATED MODULE: external ["wp","element"] |
112 var external_wp_element_ = __webpack_require__("GRId"); |
53 var external_wp_element_namespaceObject = window["wp"]["element"]; |
113 |
54 ;// CONCATENATED MODULE: external ["wp","i18n"] |
114 // EXTERNAL MODULE: external ["wp","i18n"] |
55 var external_wp_i18n_namespaceObject = window["wp"]["i18n"]; |
115 var external_wp_i18n_ = __webpack_require__("l3Sj"); |
56 ;// CONCATENATED MODULE: external "lodash" |
116 |
57 var external_lodash_namespaceObject = window["lodash"]; |
117 // EXTERNAL MODULE: external "lodash" |
58 ;// CONCATENATED MODULE: external ["wp","apiFetch"] |
118 var external_lodash_ = __webpack_require__("YLtl"); |
59 var external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"]; |
119 |
60 var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject); |
120 // EXTERNAL MODULE: external ["wp","apiFetch"] |
61 ;// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/utils/file.js |
121 var external_wp_apiFetch_ = __webpack_require__("ywyh"); |
|
122 var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_); |
|
123 |
|
124 // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/utils/file.js |
|
125 /** |
62 /** |
126 * Downloads a file. |
63 * Downloads a file. |
127 * |
64 * |
128 * @param {string} fileName File Name. |
65 * @param {string} fileName File Name. |
129 * @param {string} content File Content. |
66 * @param {string} content File Content. |
279 * Internal dependencies |
214 * Internal dependencies |
280 */ |
215 */ |
281 |
216 |
282 |
217 |
283 |
218 |
284 class import_form_ImportForm extends external_wp_element_["Component"] { |
219 function ImportForm(_ref) { |
285 constructor() { |
220 let { |
286 super(...arguments); |
221 instanceId, |
287 this.state = { |
222 onUpload |
288 isLoading: false, |
223 } = _ref; |
289 error: null, |
224 const inputId = 'list-reusable-blocks-import-form-' + instanceId; |
290 file: null |
225 const formRef = (0,external_wp_element_namespaceObject.useRef)(); |
291 }; |
226 const [isLoading, setIsLoading] = (0,external_wp_element_namespaceObject.useState)(false); |
292 this.isStillMounted = true; |
227 const [error, setError] = (0,external_wp_element_namespaceObject.useState)(null); |
293 this.onChangeFile = this.onChangeFile.bind(this); |
228 const [file, setFile] = (0,external_wp_element_namespaceObject.useState)(null); |
294 this.onSubmit = this.onSubmit.bind(this); |
229 |
295 } |
230 const onChangeFile = event => { |
296 |
231 setFile(event.target.files[0]); |
297 componentWillUnmount() { |
232 setError(null); |
298 this.isStillMounted = false; |
233 }; |
299 } |
234 |
300 |
235 const onSubmit = event => { |
301 onChangeFile(event) { |
|
302 this.setState({ |
|
303 file: event.target.files[0], |
|
304 error: null |
|
305 }); |
|
306 } |
|
307 |
|
308 onSubmit(event) { |
|
309 event.preventDefault(); |
236 event.preventDefault(); |
310 const { |
|
311 file |
|
312 } = this.state; |
|
313 const { |
|
314 onUpload |
|
315 } = this.props; |
|
316 |
237 |
317 if (!file) { |
238 if (!file) { |
318 return; |
239 return; |
319 } |
240 } |
320 |
241 |
321 this.setState({ |
242 setIsLoading({ |
322 isLoading: true |
243 isLoading: true |
323 }); |
244 }); |
324 utils_import(file).then(reusableBlock => { |
245 utils_import(file).then(reusableBlock => { |
325 if (!this.isStillMounted) { |
246 if (!formRef) { |
326 return; |
247 return; |
327 } |
248 } |
328 |
249 |
329 this.setState({ |
250 setIsLoading(false); |
330 isLoading: false |
|
331 }); |
|
332 onUpload(reusableBlock); |
251 onUpload(reusableBlock); |
333 }).catch(error => { |
252 }).catch(errors => { |
334 if (!this.isStillMounted) { |
253 if (!formRef) { |
335 return; |
254 return; |
336 } |
255 } |
337 |
256 |
338 let uiMessage; |
257 let uiMessage; |
339 |
258 |
340 switch (error.message) { |
259 switch (errors.message) { |
341 case 'Invalid JSON file': |
260 case 'Invalid JSON file': |
342 uiMessage = Object(external_wp_i18n_["__"])('Invalid JSON file'); |
261 uiMessage = (0,external_wp_i18n_namespaceObject.__)('Invalid JSON file'); |
343 break; |
262 break; |
344 |
263 |
345 case 'Invalid Reusable block JSON file': |
264 case 'Invalid Reusable block JSON file': |
346 uiMessage = Object(external_wp_i18n_["__"])('Invalid Reusable block JSON file'); |
265 uiMessage = (0,external_wp_i18n_namespaceObject.__)('Invalid Reusable block JSON file'); |
347 break; |
266 break; |
348 |
267 |
349 default: |
268 default: |
350 uiMessage = Object(external_wp_i18n_["__"])('Unknown error'); |
269 uiMessage = (0,external_wp_i18n_namespaceObject.__)('Unknown error'); |
351 } |
270 } |
352 |
271 |
353 this.setState({ |
272 setIsLoading(false); |
354 isLoading: false, |
273 setError(uiMessage); |
355 error: uiMessage |
|
356 }); |
|
357 }); |
274 }); |
358 } |
275 }; |
359 |
276 |
360 onDismissError() { |
277 const onDismissError = () => { |
361 this.setState({ |
278 setError(null); |
362 error: null |
279 }; |
363 }); |
280 |
364 } |
281 return (0,external_wp_element_namespaceObject.createElement)("form", { |
365 |
282 className: "list-reusable-blocks-import-form", |
366 render() { |
283 onSubmit: onSubmit, |
367 const { |
284 ref: formRef |
368 instanceId |
285 }, error && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Notice, { |
369 } = this.props; |
286 status: "error", |
370 const { |
287 onRemove: () => onDismissError() |
371 file, |
288 }, error), (0,external_wp_element_namespaceObject.createElement)("label", { |
372 isLoading, |
289 htmlFor: inputId, |
373 error |
290 className: "list-reusable-blocks-import-form__label" |
374 } = this.state; |
291 }, (0,external_wp_i18n_namespaceObject.__)('File')), (0,external_wp_element_namespaceObject.createElement)("input", { |
375 const inputId = 'list-reusable-blocks-import-form-' + instanceId; |
292 id: inputId, |
376 return Object(external_wp_element_["createElement"])("form", { |
293 type: "file", |
377 className: "list-reusable-blocks-import-form", |
294 onChange: onChangeFile |
378 onSubmit: this.onSubmit |
295 }), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { |
379 }, error && Object(external_wp_element_["createElement"])(external_wp_components_["Notice"], { |
296 type: "submit", |
380 status: "error", |
297 isBusy: isLoading, |
381 onRemove: () => this.onDismissError() |
298 disabled: !file || isLoading, |
382 }, error), Object(external_wp_element_["createElement"])("label", { |
299 variant: "secondary", |
383 htmlFor: inputId, |
300 className: "list-reusable-blocks-import-form__button" |
384 className: "list-reusable-blocks-import-form__label" |
301 }, (0,external_wp_i18n_namespaceObject._x)('Import', 'button label'))); |
385 }, Object(external_wp_i18n_["__"])('File')), Object(external_wp_element_["createElement"])("input", { |
302 } |
386 id: inputId, |
303 |
387 type: "file", |
304 /* harmony default export */ var import_form = ((0,external_wp_compose_namespaceObject.withInstanceId)(ImportForm)); |
388 onChange: this.onChangeFile |
305 |
389 }), Object(external_wp_element_["createElement"])(external_wp_components_["Button"], { |
306 ;// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/components/import-dropdown/index.js |
390 type: "submit", |
|
391 isBusy: isLoading, |
|
392 disabled: !file || isLoading, |
|
393 isSecondary: true, |
|
394 className: "list-reusable-blocks-import-form__button" |
|
395 }, Object(external_wp_i18n_["_x"])('Import', 'button label'))); |
|
396 } |
|
397 |
|
398 } |
|
399 |
|
400 /* harmony default export */ var import_form = (Object(external_wp_compose_["withInstanceId"])(import_form_ImportForm)); |
|
401 |
|
402 // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/components/import-dropdown/index.js |
|
403 |
307 |
404 |
308 |
405 /** |
309 /** |
406 * External dependencies |
310 * External dependencies |
407 */ |
311 */ |
416 * Internal dependencies |
320 * Internal dependencies |
417 */ |
321 */ |
418 |
322 |
419 |
323 |
420 |
324 |
421 function ImportDropdown({ |
325 function ImportDropdown(_ref) { |
422 onUpload |
326 let { |
423 }) { |
327 onUpload |
424 return Object(external_wp_element_["createElement"])(external_wp_components_["Dropdown"], { |
328 } = _ref; |
|
329 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, { |
425 position: "bottom right", |
330 position: "bottom right", |
426 contentClassName: "list-reusable-blocks-import-dropdown__content", |
331 contentClassName: "list-reusable-blocks-import-dropdown__content", |
427 renderToggle: ({ |
332 renderToggle: _ref2 => { |
428 isOpen, |
333 let { |
429 onToggle |
334 isOpen, |
430 }) => Object(external_wp_element_["createElement"])(external_wp_components_["Button"], { |
335 onToggle |
431 "aria-expanded": isOpen, |
336 } = _ref2; |
432 onClick: onToggle, |
337 return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, { |
433 isPrimary: true |
338 "aria-expanded": isOpen, |
434 }, Object(external_wp_i18n_["__"])('Import from JSON')), |
339 onClick: onToggle, |
435 renderContent: ({ |
340 variant: "primary" |
436 onClose |
341 }, (0,external_wp_i18n_namespaceObject.__)('Import from JSON')); |
437 }) => Object(external_wp_element_["createElement"])(import_form, { |
342 }, |
438 onUpload: Object(external_lodash_["flow"])(onClose, onUpload) |
343 renderContent: _ref3 => { |
439 }) |
344 let { |
|
345 onClose |
|
346 } = _ref3; |
|
347 return (0,external_wp_element_namespaceObject.createElement)(import_form, { |
|
348 onUpload: (0,external_lodash_namespaceObject.flow)(onClose, onUpload) |
|
349 }); |
|
350 } |
440 }); |
351 }); |
441 } |
352 } |
442 |
353 |
443 /* harmony default export */ var import_dropdown = (ImportDropdown); |
354 /* harmony default export */ var import_dropdown = (ImportDropdown); |
444 |
355 |
445 // CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/index.js |
356 ;// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/index.js |
446 |
357 |
447 |
358 |
448 /** |
359 /** |
449 * WordPress dependencies |
360 * WordPress dependencies |
450 */ |
361 */ |