2 lines
6.2 KiB
JavaScript
2 lines
6.2 KiB
JavaScript
/*! This file is auto-generated */
|
|
(()=>{"use strict";var e={d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{ReusableBlocksMenuItems:()=>j,store:()=>b});var n={};e.r(n),e.d(n,{__experimentalConvertBlockToStatic:()=>i,__experimentalConvertBlocksToReusable:()=>a,__experimentalDeleteReusableBlock:()=>d,__experimentalSetEditingReusableBlock:()=>p});var o={};e.r(o),e.d(o,{__experimentalIsEditingReusableBlock:()=>_});const s=window.wp.data,r=window.wp.blockEditor,c=window.wp.blocks,l=window.wp.i18n,i=e=>({registry:t})=>{const n=t.select(r.store).getBlock(e),o=t.select("core").getEditedEntityRecord("postType","wp_block",n.attributes.ref),s=(0,c.parse)("function"==typeof o.content?o.content(o):o.content);t.dispatch(r.store).replaceBlocks(n.clientId,s)},a=(e,t,n)=>async({registry:o,dispatch:s})=>{const i="unsynced"===n?{wp_pattern_sync_status:n}:void 0,a={title:t||(0,l.__)("Untitled pattern block"),content:(0,c.serialize)(o.select(r.store).getBlocksByClientId(e)),status:"publish",meta:i},d=await o.dispatch("core").saveEntityRecord("postType","wp_block",a);if("unsynced"===n)return;const p=(0,c.createBlock)("core/block",{ref:d.id});o.dispatch(r.store).replaceBlocks(e,p),s.__experimentalSetEditingReusableBlock(p.clientId,!0)},d=e=>async({registry:t})=>{if(!t.select("core").getEditedEntityRecord("postType","wp_block",e))return;const n=t.select(r.store).getBlocks().filter((t=>(0,c.isReusableBlock)(t)&&t.attributes.ref===e)).map((e=>e.clientId));n.length&&t.dispatch(r.store).removeBlocks(n),await t.dispatch("core").deleteEntityRecord("postType","wp_block",e)};function p(e,t){return{type:"SET_EDITING_REUSABLE_BLOCK",clientId:e,isEditing:t}}const u=(0,s.combineReducers)({isEditingReusableBlock:function(e={},t){return"SET_EDITING_REUSABLE_BLOCK"===t?.type?{...e,[t.clientId]:t.isEditing}:e}});function _(e,t){return e.isEditingReusableBlock[t]}const b=(0,s.createReduxStore)("core/reusable-blocks",{actions:n,reducer:u,selectors:o});(0,s.register)(b);const k=window.wp.element,w=window.wp.components,g=window.wp.primitives,m=window.ReactJSXRuntime,y=(0,m.jsx)(g.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,m.jsx)(g.Path,{d:"M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"})}),h=window.wp.notices,B=window.wp.coreData,v=window.wp.privateApis,{unlock:x}=(0,v.__dangerousOptInToUnstableAPIsOnlyForCoreModules)("I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.","@wordpress/reusable-blocks"),{useReusableBlocksRenameHint:C,ReusableBlocksRenameHint:f}=x(r.privateApis);function R({clientIds:e,rootClientId:t,onClose:n}){const o=C(),[i,a]=(0,k.useState)(void 0),[d,p]=(0,k.useState)(!1),[u,_]=(0,k.useState)(""),g=(0,s.useSelect)((n=>{var o;const{canUser:s}=n(B.store),{getBlocksByClientId:l,canInsertBlockType:i,getBlockRootClientId:a}=n(r.store),d=t||(e.length>0?a(e[0]):void 0),p=null!==(o=l(e))&&void 0!==o?o:[];return!(1===p.length&&p[0]&&(0,c.isReusableBlock)(p[0])&&!!n(B.store).getEntityRecord("postType","wp_block",p[0].attributes.ref))&&i("core/block",d)&&p.every((e=>!!e&&e.isValid&&(0,c.hasBlockSupport)(e.name,"reusable",!0)))&&!!s("create","blocks")}),[e,t]),{__experimentalConvertBlocksToReusable:v}=(0,s.useDispatch)(b),{createSuccessNotice:x,createErrorNotice:R}=(0,s.useDispatch)(h.store),S=(0,k.useCallback)((async function(t){try{await v(e,t,i),x(i?(0,l.sprintf)((0,l.__)("Unsynced pattern created: %s"),t):(0,l.sprintf)((0,l.__)("Synced pattern created: %s"),t),{type:"snackbar",id:"convert-to-reusable-block-success"})}catch(e){R(e.message,{type:"snackbar",id:"convert-to-reusable-block-error"})}}),[v,e,i,x,R]);return g?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(w.MenuItem,{icon:y,onClick:()=>p(!0),children:o?(0,l.__)("Create pattern/reusable block"):(0,l.__)("Create pattern")}),d&&(0,m.jsx)(w.Modal,{title:(0,l.__)("Create pattern"),onRequestClose:()=>{p(!1),_("")},overlayClassName:"reusable-blocks-menu-items__convert-modal",children:(0,m.jsx)("form",{onSubmit:e=>{e.preventDefault(),S(u),p(!1),_(""),n()},children:(0,m.jsxs)(w.__experimentalVStack,{spacing:"5",children:[(0,m.jsx)(f,{}),(0,m.jsx)(w.TextControl,{__nextHasNoMarginBottom:!0,label:(0,l.__)("Name"),value:u,onChange:_,placeholder:(0,l.__)("My pattern")}),(0,m.jsx)(w.ToggleControl,{label:(0,l._x)("Synced","pattern (singular)"),help:(0,l.__)("Sync this pattern across multiple locations."),checked:!i,onChange:()=>{a(i?void 0:"unsynced")}}),(0,m.jsxs)(w.__experimentalHStack,{justify:"right",children:[(0,m.jsx)(w.Button,{variant:"tertiary",onClick:()=>{p(!1),_("")},children:(0,l.__)("Cancel")}),(0,m.jsx)(w.Button,{variant:"primary",type:"submit",children:(0,l.__)("Create")})]})]})})})]}):null}const S=window.wp.url;const I=function({clientId:e}){const{canRemove:t,isVisible:n,managePatternsUrl:o}=(0,s.useSelect)((t=>{const{getBlock:n,canRemoveBlock:o,getBlockCount:s}=t(r.store),{canUser:l}=t(B.store),i=n(e);return{canRemove:o(e),isVisible:!!i&&(0,c.isReusableBlock)(i)&&!!l("update","blocks",i.attributes.ref),innerBlockCount:s(e),managePatternsUrl:l("create","templates")?(0,S.addQueryArgs)("site-editor.php",{path:"/patterns"}):(0,S.addQueryArgs)("edit.php",{post_type:"wp_block"})}}),[e]),{__experimentalConvertBlockToStatic:i}=(0,s.useDispatch)(b);return n?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(w.MenuItem,{href:o,children:(0,l.__)("Manage patterns")}),t&&(0,m.jsx)(w.MenuItem,{onClick:()=>i(e),children:(0,l.__)("Detach")})]}):null};function j({rootClientId:e}){return(0,m.jsx)(r.BlockSettingsMenuControls,{children:({onClose:t,selectedClientIds:n})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(R,{clientIds:n,rootClientId:e,onClose:t}),1===n.length&&(0,m.jsx)(I,{clientId:n[0]})]})})}(window.wp=window.wp||{}).reusableBlocks=t})(); |