!function(){"use strict";var e={n:function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(o,{a:o}),o},d:function(t,o){for(var r in o)e.o(o,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:o[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.i18n,o=window.wp.blocks,r=window.wp.plugins,n=window.wp.element,l=window.wp.primitives,c=(0,n.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(l.Path,{d:"M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"})),i=window.lodash,s=window.wp.apiFetch,a=e.n(s),p=window.wp.components,d=window.wp.data,m=window.wp.blockEditor,w=(0,p.withNotices)((e=>{let{clientId:r,attributes:l,noticeOperations:c,noticeUI:i}=e;(0,n.useEffect)((()=>{l.file&&b(l.file)}),[]);const[s,w]=(0,n.useState)(!1),{replaceBlocks:u}=(0,d.useDispatch)("core/block-editor"),b=e=>{w(!0);const l=e[0];if("application/json"!==l.type){const e=[(0,n.createElement)("strong",{key:"filename"},l.name),": ",(0,t.__)("Sorry, only JSON files are supported here.","blocks-export-import")];return c.removeAllNotices(),c.createErrorNotice(e),void w(!1)}const i=new FileReader;i.onload=async()=>{let e;try{e=JSON.parse(i.result)}catch(e){return c.removeAllNotices(),c.createErrorNotice((0,t.__)("Invalid JSON file","blocks-export-import")),void w(!1)}if(e.__file&&e.content&&"wp_export"===e.__file&&(e=(0,o.parse)(e.content)),e.__file&&e.content&&"wp_block"===e.__file){const r=await a()({path:"/wp/v2/types/wp_block"}),n=await a()({path:`/wp/v2/${r.rest_base}`,data:{title:e.title||(0,t.__)("Untitled Reusable Block","blocks-export-import"),content:e.content,status:"publish"},method:"POST"});if(!n.id)return c.removeAllNotices(),c.createErrorNotice((0,t.__)("Invalid Reusable Block JSON file","blocks-export-import")),void w(!1);e=`\x3c!-- wp:block { "ref": ${n.id} } /--\x3e`,e=(0,o.parse)(e)}u(r,e),w(!1)},i.readAsText(l)},k=(0,m.useBlockProps)();return s?(0,n.createElement)("div",k,(0,n.createElement)(p.Placeholder,null,(0,n.createElement)(p.Spinner,null))):(0,n.createElement)("div",k,(0,n.createElement)(p.Placeholder,{label:(0,t.__)("Import Blocks from JSON","blocks-export-import"),instructions:(0,t.__)("Upload JSON file from your device.","blocks-export-import"),icon:"category",notices:i},(0,n.createElement)(p.FormFileUpload,{accept:"text/json",onChange:e=>b(e.target.files),isSecondary:!0},(0,t.__)("Upload","blocks-export-import")),(0,n.createElement)(p.DropZone,{label:(0,t.__)("Import from JSON","blocks-export-import"),onFilesDrop:b})))}));(0,o.registerBlockType)("themeisle-blocks/importer",{apiVersion:2,title:(0,t.__)("Import Blocks from JSON","blocks-export-import"),description:(0,t.__)("Allows you import blocks from a JSON file.","blocks-export-import"),icon:"category",category:"widgets",keywords:[(0,t.__)("JSON","blocks-export-import"),(0,t.__)("Importer","blocks-export-import"),(0,t.__)("Import","blocks-export-import")],attributes:{file:{type:"object"}},transforms:{from:[{type:"files",isMatch:e=>"application/json"===e[0].type,transform:e=>(0,o.createBlock)("themeisle-blocks/importer",{file:e})}]},edit:w,save:()=>null}),(0,r.registerPlugin)("blocks-export-import",{render:()=>{const{blocks:e,count:r}=(0,d.useSelect)((e=>{const{getSelectedBlockCount:t,getSelectedBlock:o,getMultiSelectedBlocks:r}=e("core/block-editor");return{blocks:1===t()?o():r(),count:t()}}),[]),{createNotice:l}=(0,d.useDispatch)("core/notices"),s=async()=>{if(!e)return;let n,c;if(1===r&&"core/block"===e.name){const t=e.attributes.ref,o=await a()({path:"/wp/v2/types/wp_block"});let r;try{r=await a()({path:`/wp/v2/${o.rest_base}/${t}?context=edit`})}catch(e){return void(e.message&&l("error",e.message,{type:"snackbar"}))}const s=r.title.raw,p=r.content.raw;c=(0,i.kebabCase)(s)+".json",n={__file:"wp_block",title:s,content:p}}else c="blocks-export.json",n={__file:"wp_export",version:2,content:(0,o.serialize)(e)};const s=JSON.stringify({...n},null,2);l("success",(0,t.__)("Blocks exported.","blocks-export-import"),{type:"snackbar"}),((e,t,o)=>{const r=new window.Blob([t],{type:"application/json"});if(window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(r,e);else{const t=document.createElement("a");t.href=URL.createObjectURL(r),t.download=e,t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}})(c,s)};return(0,n.createElement)(m.BlockSettingsMenuControls,null,(()=>(0,n.createElement)(p.MenuItem,{icon:c,onClick:s},(0,t.__)("Export as JSON","blocks-export-import"))))}})}();