@wordpress/reusable-blocks 3.0.4 → 3.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/reusable-blocks-menu-items/index.js +5 -4
- package/build/components/reusable-blocks-menu-items/index.js.map +1 -1
- package/build/components/reusable-blocks-menu-items/reusable-block-convert-button.js +48 -44
- package/build/components/reusable-blocks-menu-items/reusable-block-convert-button.js.map +1 -1
- package/build/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js +4 -3
- package/build/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js.map +1 -1
- package/build/store/actions.js +14 -11
- package/build/store/actions.js.map +1 -1
- package/build/store/index.js +4 -2
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +5 -2
- package/build/store/reducer.js.map +1 -1
- package/build-module/components/reusable-blocks-menu-items/index.js +5 -4
- package/build-module/components/reusable-blocks-menu-items/index.js.map +1 -1
- package/build-module/components/reusable-blocks-menu-items/reusable-block-convert-button.js +48 -44
- package/build-module/components/reusable-blocks-menu-items/reusable-block-convert-button.js.map +1 -1
- package/build-module/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js +4 -3
- package/build-module/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js.map +1 -1
- package/build-module/store/actions.js +13 -10
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +4 -1
- package/build-module/store/reducer.js.map +1 -1
- package/package.json +13 -13
|
@@ -24,10 +24,11 @@ var _reusableBlocksManageButton = _interopRequireDefault(require("./reusable-blo
|
|
|
24
24
|
/**
|
|
25
25
|
* Internal dependencies
|
|
26
26
|
*/
|
|
27
|
-
function ReusableBlocksMenuItems({
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
function ReusableBlocksMenuItems(_ref) {
|
|
28
|
+
let {
|
|
29
|
+
clientIds,
|
|
30
|
+
rootClientId
|
|
31
|
+
} = _ref;
|
|
31
32
|
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_reusableBlockConvertButton.default, {
|
|
32
33
|
clientIds: clientIds,
|
|
33
34
|
rootClientId: rootClientId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/index.js"],"names":["ReusableBlocksMenuItems","clientIds","rootClientId","length","select","getSelectedBlockClientIds","blockEditorStore"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIA,SAASA,uBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/index.js"],"names":["ReusableBlocksMenuItems","clientIds","rootClientId","length","select","getSelectedBlockClientIds","blockEditorStore"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIA,SAASA,uBAAT,OAAgE;AAAA,MAA9B;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAA8B;AAC/D,SACC,qDACC,4BAAC,mCAAD;AACC,IAAA,SAAS,EAAGD,SADb;AAEC,IAAA,YAAY,EAAGC;AAFhB,IADD,EAKGD,SAAS,CAACE,MAAV,KAAqB,CAArB,IACD,4BAAC,mCAAD;AAA4B,IAAA,QAAQ,EAAGF,SAAS,CAAE,CAAF;AAAhD,IANF,CADD;AAWA;;eAEc,sBAAcG,MAAF,IAAc;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAAgCD,MAAM,CAAEE,kBAAF,CAA5C;AACA,SAAO;AACNL,IAAAA,SAAS,EAAEI,yBAAyB;AAD9B,GAAP;AAGA,CALc,EAKVL,uBALU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ReusableBlockConvertButton from './reusable-block-convert-button';\nimport ReusableBlocksManageButton from './reusable-blocks-manage-button';\n\nfunction ReusableBlocksMenuItems( { clientIds, rootClientId } ) {\n\treturn (\n\t\t<>\n\t\t\t<ReusableBlockConvertButton\n\t\t\t\tclientIds={ clientIds }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t{ clientIds.length === 1 && (\n\t\t\t\t<ReusableBlocksManageButton clientId={ clientIds[ 0 ] } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\treturn {\n\t\tclientIds: getSelectedBlockClientIds(),\n\t};\n} )( ReusableBlocksMenuItems );\n"]}
|
|
@@ -41,10 +41,11 @@ var _store = require("../../store");
|
|
|
41
41
|
* @param {string} props.rootClientId ID of the currently selected top-level block.
|
|
42
42
|
* @return {import('@wordpress/element').WPComponent} The menu control or null.
|
|
43
43
|
*/
|
|
44
|
-
function ReusableBlockConvertButton({
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
function ReusableBlockConvertButton(_ref) {
|
|
45
|
+
let {
|
|
46
|
+
clientIds,
|
|
47
|
+
rootClientId
|
|
48
|
+
} = _ref;
|
|
48
49
|
const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
|
|
49
50
|
const [title, setTitle] = (0, _element.useState)('');
|
|
50
51
|
const canConvert = (0, _data.useSelect)(select => {
|
|
@@ -94,45 +95,48 @@ function ReusableBlockConvertButton({
|
|
|
94
95
|
return null;
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
return (0, _element.createElement)(_blockEditor.BlockSettingsMenuControls, null,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
98
|
+
return (0, _element.createElement)(_blockEditor.BlockSettingsMenuControls, null, _ref2 => {
|
|
99
|
+
let {
|
|
100
|
+
onClose
|
|
101
|
+
} = _ref2;
|
|
102
|
+
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuItem, {
|
|
103
|
+
icon: _icons.reusableBlock,
|
|
104
|
+
onClick: () => {
|
|
105
|
+
setIsModalOpen(true);
|
|
106
|
+
}
|
|
107
|
+
}, (0, _i18n.__)('Add to Reusable blocks')), isModalOpen && (0, _element.createElement)(_components.Modal, {
|
|
108
|
+
title: (0, _i18n.__)('Create Reusable block'),
|
|
109
|
+
closeLabel: (0, _i18n.__)('Close'),
|
|
110
|
+
onRequestClose: () => {
|
|
111
|
+
setIsModalOpen(false);
|
|
112
|
+
setTitle('');
|
|
113
|
+
},
|
|
114
|
+
overlayClassName: "reusable-blocks-menu-items__convert-modal"
|
|
115
|
+
}, (0, _element.createElement)("form", {
|
|
116
|
+
onSubmit: event => {
|
|
117
|
+
event.preventDefault();
|
|
118
|
+
onConvert(title);
|
|
119
|
+
setIsModalOpen(false);
|
|
120
|
+
setTitle('');
|
|
121
|
+
onClose();
|
|
122
|
+
}
|
|
123
|
+
}, (0, _element.createElement)(_components.TextControl, {
|
|
124
|
+
label: (0, _i18n.__)('Name'),
|
|
125
|
+
value: title,
|
|
126
|
+
onChange: setTitle
|
|
127
|
+
}), (0, _element.createElement)(_components.Flex, {
|
|
128
|
+
className: "reusable-blocks-menu-items__convert-modal-actions",
|
|
129
|
+
justify: "flex-end"
|
|
130
|
+
}, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, {
|
|
131
|
+
variant: "secondary",
|
|
132
|
+
onClick: () => {
|
|
133
|
+
setIsModalOpen(false);
|
|
134
|
+
setTitle('');
|
|
135
|
+
}
|
|
136
|
+
}, (0, _i18n.__)('Cancel'))), (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, {
|
|
137
|
+
variant: "primary",
|
|
138
|
+
type: "submit"
|
|
139
|
+
}, (0, _i18n.__)('Save')))))));
|
|
140
|
+
});
|
|
137
141
|
}
|
|
138
142
|
//# sourceMappingURL=reusable-block-convert-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js"],"names":["ReusableBlockConvertButton","clientIds","rootClientId","isModalOpen","setIsModalOpen","title","setTitle","canConvert","select","canUser","coreStore","getBlocksByClientId","canInsertBlockType","blockEditorStore","blocks","isReusable","length","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","__experimentalConvertBlocksToReusable","convertBlocksToReusable","store","createSuccessNotice","createErrorNotice","noticesStore","onConvert","reusableBlockTitle","type","error","message","onClose","reusableBlock","event","preventDefault"],"mappings":";;;;;;;AAQA;;AALA;;AACA;;AAKA;;AAQA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AA1BA;AACA;AACA;;AAqBA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,0BAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js"],"names":["ReusableBlockConvertButton","clientIds","rootClientId","isModalOpen","setIsModalOpen","title","setTitle","canConvert","select","canUser","coreStore","getBlocksByClientId","canInsertBlockType","blockEditorStore","blocks","isReusable","length","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","__experimentalConvertBlocksToReusable","convertBlocksToReusable","store","createSuccessNotice","createErrorNotice","noticesStore","onConvert","reusableBlockTitle","type","error","message","onClose","reusableBlock","event","preventDefault"],"mappings":";;;;;;;AAQA;;AALA;;AACA;;AAKA;;AAQA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AA1BA;AACA;AACA;;AAqBA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,0BAAT,OAGX;AAAA,MAHgD;AACnDC,IAAAA,SADmD;AAEnDC,IAAAA;AAFmD,GAGhD;AACH,QAAM,CAAEC,WAAF,EAAeC,cAAf,IAAkC,uBAAU,KAAV,CAAxC;AACA,QAAM,CAAEC,KAAF,EAASC,QAAT,IAAsB,uBAAU,EAAV,CAA5B;AACA,QAAMC,UAAU,GAAG,qBAChBC,MAAF,IAAc;AAAA;;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAcD,MAAM,CAAEE,eAAF,CAA1B;AACA,UAAM;AAAEC,MAAAA,mBAAF;AAAuBC,MAAAA;AAAvB,QAA8CJ,MAAM,CACzDK,kBADyD,CAA1D;AAIA,UAAMC,MAAM,2BAAGH,mBAAmB,CAAEV,SAAF,CAAtB,uEAAuC,EAAnD;AAEA,UAAMc,UAAU,GACfD,MAAM,CAACE,MAAP,KAAkB,CAAlB,IACAF,MAAM,CAAE,CAAF,CADN,IAEA,6BAAiBA,MAAM,CAAE,CAAF,CAAvB,CAFA,IAGA,CAAC,CAAEN,MAAM,CAAEE,eAAF,CAAN,CAAoBO,eAApB,CACF,UADE,EAEF,UAFE,EAGFH,MAAM,CAAE,CAAF,CAAN,CAAYI,UAAZ,CAAuBC,GAHrB,CAJJ;;AAUA,UAAMC,WAAW,GAChB;AACA,KAAEL,UAAF,IACA;AACAH,IAAAA,kBAAkB,CAAE,YAAF,EAAgBV,YAAhB,CAFlB,IAGAY,MAAM,CAACO,KAAP,CACGC,KAAF,IACC;AACA,KAAC,CAAEA,KAAH,IACA;AACAA,IAAAA,KAAK,CAACC,OAFN,IAGA;AACA,iCAAiBD,KAAK,CAACE,IAAvB,EAA6B,UAA7B,EAAyC,IAAzC,CAPF,CAHA,IAYA;AACA,KAAC,CAAEf,OAAO,CAAE,QAAF,EAAY,QAAZ,CAfX;;AAiBA,WAAOW,WAAP;AACA,GArCiB,EAsClB,CAAEnB,SAAF,CAtCkB,CAAnB;AAyCA,QAAM;AACLwB,IAAAA,qCAAqC,EAAEC;AADlC,MAEF,uBAAaC,YAAb,CAFJ;AAIA,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAA6C,uBAClDC,cADkD,CAAnD;AAGA,QAAMC,SAAS,GAAG,0BACjB,gBAAiBC,kBAAjB,EAAsC;AACrC,QAAI;AACH,YAAMN,uBAAuB,CAAEzB,SAAF,EAAa+B,kBAAb,CAA7B;AACAJ,MAAAA,mBAAmB,CAAE,cAAI,yBAAJ,CAAF,EAAmC;AACrDK,QAAAA,IAAI,EAAE;AAD+C,OAAnC,CAAnB;AAGA,KALD,CAKE,OAAQC,KAAR,EAAgB;AACjBL,MAAAA,iBAAiB,CAAEK,KAAK,CAACC,OAAR,EAAiB;AACjCF,QAAAA,IAAI,EAAE;AAD2B,OAAjB,CAAjB;AAGA;AACD,GAZgB,EAajB,CAAEhC,SAAF,CAbiB,CAAlB;;AAgBA,MAAK,CAAEM,UAAP,EAAoB;AACnB,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,sCAAD,QACG;AAAA,QAAE;AAAE6B,MAAAA;AAAF,KAAF;AAAA,WACD,qDACC,4BAAC,oBAAD;AACC,MAAA,IAAI,EAAGC,oBADR;AAEC,MAAA,OAAO,EAAG,MAAM;AACfjC,QAAAA,cAAc,CAAE,IAAF,CAAd;AACA;AAJF,OAMG,cAAI,wBAAJ,CANH,CADD,EASGD,WAAW,IACZ,4BAAC,iBAAD;AACC,MAAA,KAAK,EAAG,cAAI,uBAAJ,CADT;AAEC,MAAA,UAAU,EAAG,cAAI,OAAJ,CAFd;AAGC,MAAA,cAAc,EAAG,MAAM;AACtBC,QAAAA,cAAc,CAAE,KAAF,CAAd;AACAE,QAAAA,QAAQ,CAAE,EAAF,CAAR;AACA,OANF;AAOC,MAAA,gBAAgB,EAAC;AAPlB,OASC;AACC,MAAA,QAAQ,EAAKgC,KAAF,IAAa;AACvBA,QAAAA,KAAK,CAACC,cAAN;AACAR,QAAAA,SAAS,CAAE1B,KAAF,CAAT;AACAD,QAAAA,cAAc,CAAE,KAAF,CAAd;AACAE,QAAAA,QAAQ,CAAE,EAAF,CAAR;AACA8B,QAAAA,OAAO;AACP;AAPF,OASC,4BAAC,uBAAD;AACC,MAAA,KAAK,EAAG,cAAI,MAAJ,CADT;AAEC,MAAA,KAAK,EAAG/B,KAFT;AAGC,MAAA,QAAQ,EAAGC;AAHZ,MATD,EAcC,4BAAC,gBAAD;AACC,MAAA,SAAS,EAAC,mDADX;AAEC,MAAA,OAAO,EAAC;AAFT,OAIC,4BAAC,oBAAD,QACC,4BAAC,kBAAD;AACC,MAAA,OAAO,EAAC,WADT;AAEC,MAAA,OAAO,EAAG,MAAM;AACfF,QAAAA,cAAc,CAAE,KAAF,CAAd;AACAE,QAAAA,QAAQ,CAAE,EAAF,CAAR;AACA;AALF,OAOG,cAAI,QAAJ,CAPH,CADD,CAJD,EAeC,4BAAC,oBAAD,QACC,4BAAC,kBAAD;AAAQ,MAAA,OAAO,EAAC,SAAhB;AAA0B,MAAA,IAAI,EAAC;AAA/B,OACG,cAAI,MAAJ,CADH,CADD,CAfD,CAdD,CATD,CAVF,CADC;AAAA,GADH,CADD;AAgEA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport {\n\tBlockSettingsMenuControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useCallback, useState } from '@wordpress/element';\nimport {\n\tMenuItem,\n\tModal,\n\tButton,\n\tTextControl,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { reusableBlock } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store } from '../../store';\n\n/**\n * Menu control to convert block(s) to reusable block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @return {import('@wordpress/element').WPComponent} The menu control or null.\n */\nexport default function ReusableBlockConvertButton( {\n\tclientIds,\n\trootClientId,\n} ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst { getBlocksByClientId, canInsertBlockType } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a reusable block.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when reusable blocks are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootClientId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made reusable.\n\t\t\t\t\t\thasBlockSupport( block.name, 'reusable', true )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t!! canUser( 'create', 'blocks' );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst {\n\t\t__experimentalConvertBlocksToReusable: convertBlocksToReusable,\n\t} = useDispatch( store );\n\n\tconst { createSuccessNotice, createErrorNotice } = useDispatch(\n\t\tnoticesStore\n\t);\n\tconst onConvert = useCallback(\n\t\tasync function ( reusableBlockTitle ) {\n\t\t\ttry {\n\t\t\t\tawait convertBlocksToReusable( clientIds, reusableBlockTitle );\n\t\t\t\tcreateSuccessNotice( __( 'Reusable block created.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} catch ( error ) {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\ticon={ reusableBlock }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Add to Reusable blocks' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t\t<Modal\n\t\t\t\t\t\t\ttitle={ __( 'Create Reusable block' ) }\n\t\t\t\t\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<form\n\t\t\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\tonConvert( title );\n\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"reusable-blocks-menu-items__convert-modal-actions\"\n\t\t\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</Modal>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"]}
|
|
@@ -30,9 +30,10 @@ var _store = require("../../store");
|
|
|
30
30
|
/**
|
|
31
31
|
* Internal dependencies
|
|
32
32
|
*/
|
|
33
|
-
function ReusableBlocksManageButton({
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
function ReusableBlocksManageButton(_ref) {
|
|
34
|
+
let {
|
|
35
|
+
clientId
|
|
36
|
+
} = _ref;
|
|
36
37
|
const {
|
|
37
38
|
isVisible
|
|
38
39
|
} = (0, _data.useSelect)(select => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js"],"names":["ReusableBlocksManageButton","clientId","isVisible","select","getBlock","blockEditorStore","canUser","coreStore","reusableBlock","attributes","ref","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","post_type"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AAKA;;AAjBA;AACA;AACA;;AAYA;AACA;AACA;AAGA,SAASA,0BAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js"],"names":["ReusableBlocksManageButton","clientId","isVisible","select","getBlock","blockEditorStore","canUser","coreStore","reusableBlock","attributes","ref","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","post_type"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AAKA;;AAjBA;AACA;AACA;;AAYA;AACA;AACA;AAGA,SAASA,0BAAT,OAAoD;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACnD,QAAM;AAAEC,IAAAA;AAAF,MAAgB,qBACnBC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEE,kBAAF,CAA3B;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAcH,MAAM,CAAEI,eAAF,CAA1B;AACA,UAAMC,aAAa,GAAGJ,QAAQ,CAAEH,QAAF,CAA9B;AAEA,WAAO;AACNC,MAAAA,SAAS,EACR,CAAC,CAAEM,aAAH,IACA,6BAAiBA,aAAjB,CADA,IAEA,CAAC,CAAEF,OAAO,CACT,QADS,EAET,QAFS,EAGTE,aAAa,CAACC,UAAd,CAAyBC,GAHhB;AAJL,KAAP;AAUA,GAhBoB,EAiBrB,CAAET,QAAF,CAjBqB,CAAtB;AAoBA,QAAM;AACLU,IAAAA,kCAAkC,EAAEC;AAD/B,MAEF,uBAAaC,YAAb,CAFJ;;AAIA,MAAK,CAAEX,SAAP,EAAmB;AAClB,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,sCAAD,QACC,4BAAC,oBAAD;AACC,IAAA,IAAI,EAAG,uBAAc,UAAd,EAA0B;AAAEY,MAAAA,SAAS,EAAE;AAAb,KAA1B;AADR,KAGG,cAAI,wBAAJ,CAHH,CADD,EAMC,4BAAC,oBAAD;AAAU,IAAA,OAAO,EAAG,MAAMF,oBAAoB,CAAEX,QAAF;AAA9C,KACG,cAAI,2BAAJ,CADH,CAND,CADD;AAYA;;eAEcD,0B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { isReusableBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as reusableBlocksStore } from '../../store';\n\nfunction ReusableBlocksManageButton( { clientId } ) {\n\tconst { isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst reusableBlock = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tisVisible:\n\t\t\t\t\t!! reusableBlock &&\n\t\t\t\t\tisReusableBlock( reusableBlock ) &&\n\t\t\t\t\t!! canUser(\n\t\t\t\t\t\t'update',\n\t\t\t\t\t\t'blocks',\n\t\t\t\t\t\treusableBlock.attributes.ref\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\t__experimentalConvertBlockToStatic: convertBlockToStatic,\n\t} = useDispatch( reusableBlocksStore );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t<MenuItem\n\t\t\t\thref={ addQueryArgs( 'edit.php', { post_type: 'wp_block' } ) }\n\t\t\t>\n\t\t\t\t{ __( 'Manage Reusable blocks' ) }\n\t\t\t</MenuItem>\n\t\t\t<MenuItem onClick={ () => convertBlockToStatic( clientId ) }>\n\t\t\t\t{ __( 'Convert to regular blocks' ) }\n\t\t\t</MenuItem>\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n\nexport default ReusableBlocksManageButton;\n"]}
|
package/build/store/actions.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.__experimentalSetEditingReusableBlock = __experimentalSetEditingReusableBlock;
|
|
7
6
|
exports.__experimentalDeleteReusableBlock = exports.__experimentalConvertBlocksToReusable = exports.__experimentalConvertBlockToStatic = void 0;
|
|
7
|
+
exports.__experimentalSetEditingReusableBlock = __experimentalSetEditingReusableBlock;
|
|
8
8
|
|
|
9
9
|
var _lodash = require("lodash");
|
|
10
10
|
|
|
@@ -27,9 +27,10 @@ var _i18n = require("@wordpress/i18n");
|
|
|
27
27
|
*
|
|
28
28
|
* @param {string} clientId The client ID of the block to attach.
|
|
29
29
|
*/
|
|
30
|
-
const __experimentalConvertBlockToStatic = clientId =>
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
const __experimentalConvertBlockToStatic = clientId => _ref => {
|
|
31
|
+
let {
|
|
32
|
+
registry
|
|
33
|
+
} = _ref;
|
|
33
34
|
const oldBlock = registry.select(_blockEditor.store).getBlock(clientId);
|
|
34
35
|
const reusableBlock = registry.select('core').getEditedEntityRecord('postType', 'wp_block', oldBlock.attributes.ref);
|
|
35
36
|
const newBlocks = (0, _blocks.parse)((0, _lodash.isFunction)(reusableBlock.content) ? reusableBlock.content(reusableBlock) : reusableBlock.content);
|
|
@@ -45,10 +46,11 @@ const __experimentalConvertBlockToStatic = clientId => ({
|
|
|
45
46
|
|
|
46
47
|
exports.__experimentalConvertBlockToStatic = __experimentalConvertBlockToStatic;
|
|
47
48
|
|
|
48
|
-
const __experimentalConvertBlocksToReusable = (clientIds, title) => async
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
const __experimentalConvertBlocksToReusable = (clientIds, title) => async _ref2 => {
|
|
50
|
+
let {
|
|
51
|
+
registry,
|
|
52
|
+
dispatch
|
|
53
|
+
} = _ref2;
|
|
52
54
|
const reusableBlock = {
|
|
53
55
|
title: title || (0, _i18n.__)('Untitled Reusable block'),
|
|
54
56
|
content: (0, _blocks.serialize)(registry.select(_blockEditor.store).getBlocksByClientId(clientIds)),
|
|
@@ -71,9 +73,10 @@ const __experimentalConvertBlocksToReusable = (clientIds, title) => async ({
|
|
|
71
73
|
|
|
72
74
|
exports.__experimentalConvertBlocksToReusable = __experimentalConvertBlocksToReusable;
|
|
73
75
|
|
|
74
|
-
const __experimentalDeleteReusableBlock = id => async
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
const __experimentalDeleteReusableBlock = id => async _ref3 => {
|
|
77
|
+
let {
|
|
78
|
+
registry
|
|
79
|
+
} = _ref3;
|
|
77
80
|
const reusableBlock = registry.select('core').getEditedEntityRecord('postType', 'wp_block', id); // Don't allow a reusable block with a temporary ID to be deleted
|
|
78
81
|
|
|
79
82
|
if (!reusableBlock) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/actions.js"],"names":["__experimentalConvertBlockToStatic","clientId","registry","oldBlock","select","blockEditorStore","getBlock","reusableBlock","getEditedEntityRecord","attributes","ref","newBlocks","content","dispatch","replaceBlocks","__experimentalConvertBlocksToReusable","clientIds","title","getBlocksByClientId","status","updatedRecord","saveEntityRecord","newBlock","id","__experimentalSetEditingReusableBlock","__experimentalDeleteReusableBlock","allBlocks","getBlocks","associatedBlocks","filter","block","associatedBlockClientIds","map","length","removeBlocks","deleteEntityRecord","isEditing","type"],"mappings":";;;;;;;;AAGA;;AAKA;;AACA;;AAMA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACO,MAAMA,kCAAkC,GAAKC,QAAF,IAAgB,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/actions.js"],"names":["__experimentalConvertBlockToStatic","clientId","registry","oldBlock","select","blockEditorStore","getBlock","reusableBlock","getEditedEntityRecord","attributes","ref","newBlocks","content","dispatch","replaceBlocks","__experimentalConvertBlocksToReusable","clientIds","title","getBlocksByClientId","status","updatedRecord","saveEntityRecord","newBlock","id","__experimentalSetEditingReusableBlock","__experimentalDeleteReusableBlock","allBlocks","getBlocks","associatedBlocks","filter","block","associatedBlockClientIds","map","length","removeBlocks","deleteEntityRecord","isEditing","type"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isFunction } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\tcreateBlock,\n\tisReusableBlock,\n\tparse,\n\tserialize,\n} from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Returns a generator converting a reusable block into a static block.\n *\n * @param {string} clientId The client ID of the block to attach.\n */\nexport const __experimentalConvertBlockToStatic = ( clientId ) => ( {\n\tregistry,\n} ) => {\n\tconst oldBlock = registry.select( blockEditorStore ).getBlock( clientId );\n\tconst reusableBlock = registry\n\t\t.select( 'core' )\n\t\t.getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_block',\n\t\t\toldBlock.attributes.ref\n\t\t);\n\n\tconst newBlocks = parse(\n\t\tisFunction( reusableBlock.content )\n\t\t\t? reusableBlock.content( reusableBlock )\n\t\t\t: reusableBlock.content\n\t);\n\tregistry\n\t\t.dispatch( blockEditorStore )\n\t\t.replaceBlocks( oldBlock.clientId, newBlocks );\n};\n\n/**\n * Returns a generator converting one or more static blocks into a reusable block.\n *\n * @param {string[]} clientIds The client IDs of the block to detach.\n * @param {string} title Reusable block title.\n */\nexport const __experimentalConvertBlocksToReusable = (\n\tclientIds,\n\ttitle\n) => async ( { registry, dispatch } ) => {\n\tconst reusableBlock = {\n\t\ttitle: title || __( 'Untitled Reusable block' ),\n\t\tcontent: serialize(\n\t\t\tregistry.select( blockEditorStore ).getBlocksByClientId( clientIds )\n\t\t),\n\t\tstatus: 'publish',\n\t};\n\n\tconst updatedRecord = await registry\n\t\t.dispatch( 'core' )\n\t\t.saveEntityRecord( 'postType', 'wp_block', reusableBlock );\n\n\tconst newBlock = createBlock( 'core/block', {\n\t\tref: updatedRecord.id,\n\t} );\n\tregistry.dispatch( blockEditorStore ).replaceBlocks( clientIds, newBlock );\n\tdispatch.__experimentalSetEditingReusableBlock( newBlock.clientId, true );\n};\n\n/**\n * Returns a generator deleting a reusable block.\n *\n * @param {string} id The ID of the reusable block to delete.\n */\nexport const __experimentalDeleteReusableBlock = ( id ) => async ( {\n\tregistry,\n} ) => {\n\tconst reusableBlock = registry\n\t\t.select( 'core' )\n\t\t.getEditedEntityRecord( 'postType', 'wp_block', id );\n\n\t// Don't allow a reusable block with a temporary ID to be deleted\n\tif ( ! reusableBlock ) {\n\t\treturn;\n\t}\n\n\t// Remove any other blocks that reference this reusable block\n\tconst allBlocks = registry.select( blockEditorStore ).getBlocks();\n\tconst associatedBlocks = allBlocks.filter(\n\t\t( block ) => isReusableBlock( block ) && block.attributes.ref === id\n\t);\n\tconst associatedBlockClientIds = associatedBlocks.map(\n\t\t( block ) => block.clientId\n\t);\n\n\t// Remove the parsed block.\n\tif ( associatedBlockClientIds.length ) {\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.removeBlocks( associatedBlockClientIds );\n\t}\n\n\tawait registry\n\t\t.dispatch( 'core' )\n\t\t.deleteEntityRecord( 'postType', 'wp_block', id );\n};\n\n/**\n * Returns an action descriptor for SET_EDITING_REUSABLE_BLOCK action.\n *\n * @param {string} clientId The clientID of the reusable block to target.\n * @param {boolean} isEditing Whether the block should be in editing state.\n * @return {Object} Action descriptor.\n */\nexport function __experimentalSetEditingReusableBlock( clientId, isEditing ) {\n\treturn {\n\t\ttype: 'SET_EDITING_REUSABLE_BLOCK',\n\t\tclientId,\n\t\tisEditing,\n\t};\n}\n"]}
|
package/build/store/index.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
@@ -17,6 +15,10 @@ var _reducer = _interopRequireDefault(require("./reducer"));
|
|
|
17
15
|
|
|
18
16
|
var selectors = _interopRequireWildcard(require("./selectors"));
|
|
19
17
|
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
|
|
20
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
+
|
|
20
22
|
/**
|
|
21
23
|
* WordPress dependencies
|
|
22
24
|
*/
|
package/build/store/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/index.js"],"names":["STORE_NAME","store","actions","reducer","selectors","__experimentalUseThunks"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/index.js"],"names":["STORE_NAME","store","actions","reducer","selectors","__experimentalUseThunks"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;;;;;AAVA;AACA;AACA;;AAGA;AACA;AACA;AAKA,MAAMA,UAAU,GAAG,sBAAnB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,MAAMC,KAAK,GAAG,4BAAkBD,UAAlB,EAA8B;AAClDE,EAAAA,OADkD;AAElDC,EAAAA,OAAO,EAAPA,gBAFkD;AAGlDC,EAAAA,SAHkD;AAIlDC,EAAAA,uBAAuB,EAAE;AAJyB,CAA9B,CAAd;;AAOP,oBAAUJ,KAAV","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport * as actions from './actions';\nimport reducer from './reducer';\nimport * as selectors from './selectors';\n\nconst STORE_NAME = 'core/reusable-blocks';\n\n/**\n * Store definition for the reusable blocks namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n *\n * @type {Object}\n */\nexport const store = createReduxStore( STORE_NAME, {\n\tactions,\n\treducer,\n\tselectors,\n\t__experimentalUseThunks: true,\n} );\n\nregister( store );\n"]}
|
package/build/store/reducer.js
CHANGED
|
@@ -3,15 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isEditingReusableBlock = isEditingReusableBlock;
|
|
7
6
|
exports.default = void 0;
|
|
7
|
+
exports.isEditingReusableBlock = isEditingReusableBlock;
|
|
8
8
|
|
|
9
9
|
var _data = require("@wordpress/data");
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* WordPress dependencies
|
|
13
13
|
*/
|
|
14
|
-
function isEditingReusableBlock(
|
|
14
|
+
function isEditingReusableBlock() {
|
|
15
|
+
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
16
|
+
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
17
|
+
|
|
15
18
|
if ((action === null || action === void 0 ? void 0 : action.type) === 'SET_EDITING_REUSABLE_BLOCK') {
|
|
16
19
|
return { ...state,
|
|
17
20
|
[action.clientId]: action.isEditing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/reducer.js"],"names":["isEditingReusableBlock","state","action","type","clientId","isEditing"],"mappings":";;;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,SAASA,sBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/reducer.js"],"names":["isEditingReusableBlock","state","action","type","clientId","isEditing"],"mappings":";;;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,SAASA,sBAAT,GAAsD;AAAA,MAArBC,KAAqB,uEAAb,EAAa;AAAA,MAATC,MAAS;;AAC5D,MAAK,CAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEC,IAAR,MAAiB,4BAAtB,EAAqD;AACpD,WAAO,EACN,GAAGF,KADG;AAEN,OAAEC,MAAM,CAACE,QAAT,GAAqBF,MAAM,CAACG;AAFtB,KAAP;AAIA;;AAED,SAAOJ,KAAP;AACA;;eAEc,2BAAiB;AAC/BD,EAAAA;AAD+B,CAAjB,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\nexport function isEditingReusableBlock( state = {}, action ) {\n\tif ( action?.type === 'SET_EDITING_REUSABLE_BLOCK' ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t[ action.clientId ]: action.isEditing,\n\t\t};\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tisEditingReusableBlock,\n} );\n"]}
|
|
@@ -12,10 +12,11 @@ import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
|
12
12
|
import ReusableBlockConvertButton from './reusable-block-convert-button';
|
|
13
13
|
import ReusableBlocksManageButton from './reusable-blocks-manage-button';
|
|
14
14
|
|
|
15
|
-
function ReusableBlocksMenuItems({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
function ReusableBlocksMenuItems(_ref) {
|
|
16
|
+
let {
|
|
17
|
+
clientIds,
|
|
18
|
+
rootClientId
|
|
19
|
+
} = _ref;
|
|
19
20
|
return createElement(Fragment, null, createElement(ReusableBlockConvertButton, {
|
|
20
21
|
clientIds: clientIds,
|
|
21
22
|
rootClientId: rootClientId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/index.js"],"names":["withSelect","store","blockEditorStore","ReusableBlockConvertButton","ReusableBlocksManageButton","ReusableBlocksMenuItems","clientIds","rootClientId","length","select","getSelectedBlockClientIds"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;;AACA,OAAOC,0BAAP,MAAuC,iCAAvC;AACA,OAAOC,0BAAP,MAAuC,iCAAvC;;AAEA,SAASC,uBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/index.js"],"names":["withSelect","store","blockEditorStore","ReusableBlockConvertButton","ReusableBlocksManageButton","ReusableBlocksMenuItems","clientIds","rootClientId","length","select","getSelectedBlockClientIds"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AAEA;AACA;AACA;;AACA,OAAOC,0BAAP,MAAuC,iCAAvC;AACA,OAAOC,0BAAP,MAAuC,iCAAvC;;AAEA,SAASC,uBAAT,OAAgE;AAAA,MAA9B;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAA8B;AAC/D,SACC,8BACC,cAAC,0BAAD;AACC,IAAA,SAAS,EAAGD,SADb;AAEC,IAAA,YAAY,EAAGC;AAFhB,IADD,EAKGD,SAAS,CAACE,MAAV,KAAqB,CAArB,IACD,cAAC,0BAAD;AAA4B,IAAA,QAAQ,EAAGF,SAAS,CAAE,CAAF;AAAhD,IANF,CADD;AAWA;;AAED,eAAeN,UAAU,CAAIS,MAAF,IAAc;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAAgCD,MAAM,CAAEP,gBAAF,CAA5C;AACA,SAAO;AACNI,IAAAA,SAAS,EAAEI,yBAAyB;AAD9B,GAAP;AAGA,CALwB,CAAV,CAKVL,uBALU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ReusableBlockConvertButton from './reusable-block-convert-button';\nimport ReusableBlocksManageButton from './reusable-blocks-manage-button';\n\nfunction ReusableBlocksMenuItems( { clientIds, rootClientId } ) {\n\treturn (\n\t\t<>\n\t\t\t<ReusableBlockConvertButton\n\t\t\t\tclientIds={ clientIds }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t{ clientIds.length === 1 && (\n\t\t\t\t<ReusableBlocksManageButton clientId={ clientIds[ 0 ] } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\treturn {\n\t\tclientIds: getSelectedBlockClientIds(),\n\t};\n} )( ReusableBlocksMenuItems );\n"]}
|
|
@@ -26,10 +26,11 @@ import { store } from '../../store';
|
|
|
26
26
|
* @return {import('@wordpress/element').WPComponent} The menu control or null.
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
|
-
export default function ReusableBlockConvertButton({
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
export default function ReusableBlockConvertButton(_ref) {
|
|
30
|
+
let {
|
|
31
|
+
clientIds,
|
|
32
|
+
rootClientId
|
|
33
|
+
} = _ref;
|
|
33
34
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
34
35
|
const [title, setTitle] = useState('');
|
|
35
36
|
const canConvert = useSelect(select => {
|
|
@@ -79,45 +80,48 @@ export default function ReusableBlockConvertButton({
|
|
|
79
80
|
return null;
|
|
80
81
|
}
|
|
81
82
|
|
|
82
|
-
return createElement(BlockSettingsMenuControls, null,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
83
|
+
return createElement(BlockSettingsMenuControls, null, _ref2 => {
|
|
84
|
+
let {
|
|
85
|
+
onClose
|
|
86
|
+
} = _ref2;
|
|
87
|
+
return createElement(Fragment, null, createElement(MenuItem, {
|
|
88
|
+
icon: reusableBlock,
|
|
89
|
+
onClick: () => {
|
|
90
|
+
setIsModalOpen(true);
|
|
91
|
+
}
|
|
92
|
+
}, __('Add to Reusable blocks')), isModalOpen && createElement(Modal, {
|
|
93
|
+
title: __('Create Reusable block'),
|
|
94
|
+
closeLabel: __('Close'),
|
|
95
|
+
onRequestClose: () => {
|
|
96
|
+
setIsModalOpen(false);
|
|
97
|
+
setTitle('');
|
|
98
|
+
},
|
|
99
|
+
overlayClassName: "reusable-blocks-menu-items__convert-modal"
|
|
100
|
+
}, createElement("form", {
|
|
101
|
+
onSubmit: event => {
|
|
102
|
+
event.preventDefault();
|
|
103
|
+
onConvert(title);
|
|
104
|
+
setIsModalOpen(false);
|
|
105
|
+
setTitle('');
|
|
106
|
+
onClose();
|
|
107
|
+
}
|
|
108
|
+
}, createElement(TextControl, {
|
|
109
|
+
label: __('Name'),
|
|
110
|
+
value: title,
|
|
111
|
+
onChange: setTitle
|
|
112
|
+
}), createElement(Flex, {
|
|
113
|
+
className: "reusable-blocks-menu-items__convert-modal-actions",
|
|
114
|
+
justify: "flex-end"
|
|
115
|
+
}, createElement(FlexItem, null, createElement(Button, {
|
|
116
|
+
variant: "secondary",
|
|
117
|
+
onClick: () => {
|
|
118
|
+
setIsModalOpen(false);
|
|
119
|
+
setTitle('');
|
|
120
|
+
}
|
|
121
|
+
}, __('Cancel'))), createElement(FlexItem, null, createElement(Button, {
|
|
122
|
+
variant: "primary",
|
|
123
|
+
type: "submit"
|
|
124
|
+
}, __('Save')))))));
|
|
125
|
+
});
|
|
122
126
|
}
|
|
123
127
|
//# sourceMappingURL=reusable-block-convert-button.js.map
|
package/build-module/components/reusable-blocks-menu-items/reusable-block-convert-button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js"],"names":["hasBlockSupport","isReusableBlock","BlockSettingsMenuControls","store","blockEditorStore","useCallback","useState","MenuItem","Modal","Button","TextControl","Flex","FlexItem","reusableBlock","useDispatch","useSelect","__","noticesStore","coreStore","ReusableBlockConvertButton","clientIds","rootClientId","isModalOpen","setIsModalOpen","title","setTitle","canConvert","select","canUser","getBlocksByClientId","canInsertBlockType","blocks","isReusable","length","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","__experimentalConvertBlocksToReusable","convertBlocksToReusable","createSuccessNotice","createErrorNotice","onConvert","reusableBlockTitle","type","error","message","onClose","event","preventDefault"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,eAAT,EAA0BC,eAA1B,QAAiD,mBAAjD;AACA,SACCC,yBADD,EAECC,KAAK,IAAIC,gBAFV,QAGO,yBAHP;AAIA,SAASC,WAAT,EAAsBC,QAAtB,QAAsC,oBAAtC;AACA,SACCC,QADD,EAECC,KAFD,EAGCC,MAHD,EAICC,WAJD,EAKCC,IALD,EAMCC,QAND,QAOO,uBAPP;AAQA,SAASC,aAAT,QAA8B,kBAA9B;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASb,KAAK,IAAIc,YAAlB,QAAsC,oBAAtC;AACA,SAASd,KAAK,IAAIe,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASf,KAAT,QAAsB,aAAtB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASgB,0BAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js"],"names":["hasBlockSupport","isReusableBlock","BlockSettingsMenuControls","store","blockEditorStore","useCallback","useState","MenuItem","Modal","Button","TextControl","Flex","FlexItem","reusableBlock","useDispatch","useSelect","__","noticesStore","coreStore","ReusableBlockConvertButton","clientIds","rootClientId","isModalOpen","setIsModalOpen","title","setTitle","canConvert","select","canUser","getBlocksByClientId","canInsertBlockType","blocks","isReusable","length","getEntityRecord","attributes","ref","_canConvert","every","block","isValid","name","__experimentalConvertBlocksToReusable","convertBlocksToReusable","createSuccessNotice","createErrorNotice","onConvert","reusableBlockTitle","type","error","message","onClose","event","preventDefault"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, isReusableBlock } from '@wordpress/blocks';\nimport {\n\tBlockSettingsMenuControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useCallback, useState } from '@wordpress/element';\nimport {\n\tMenuItem,\n\tModal,\n\tButton,\n\tTextControl,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { reusableBlock } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store } from '../../store';\n\n/**\n * Menu control to convert block(s) to reusable block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @return {import('@wordpress/element').WPComponent} The menu control or null.\n */\nexport default function ReusableBlockConvertButton( {\n\tclientIds,\n\trootClientId,\n} ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst { getBlocksByClientId, canInsertBlockType } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\tconst isReusable =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a reusable block.\n\t\t\t\t! isReusable &&\n\t\t\t\t// Hide when reusable blocks are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootClientId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made reusable.\n\t\t\t\t\t\thasBlockSupport( block.name, 'reusable', true )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t!! canUser( 'create', 'blocks' );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst {\n\t\t__experimentalConvertBlocksToReusable: convertBlocksToReusable,\n\t} = useDispatch( store );\n\n\tconst { createSuccessNotice, createErrorNotice } = useDispatch(\n\t\tnoticesStore\n\t);\n\tconst onConvert = useCallback(\n\t\tasync function ( reusableBlockTitle ) {\n\t\t\ttry {\n\t\t\t\tawait convertBlocksToReusable( clientIds, reusableBlockTitle );\n\t\t\t\tcreateSuccessNotice( __( 'Reusable block created.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} catch ( error ) {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\ticon={ reusableBlock }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Add to Reusable blocks' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t\t{ isModalOpen && (\n\t\t\t\t\t\t<Modal\n\t\t\t\t\t\t\ttitle={ __( 'Create Reusable block' ) }\n\t\t\t\t\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<form\n\t\t\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\tonConvert( title );\n\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"reusable-blocks-menu-items__convert-modal-actions\"\n\t\t\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</Modal>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"]}
|
|
@@ -16,9 +16,10 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
16
16
|
|
|
17
17
|
import { store as reusableBlocksStore } from '../../store';
|
|
18
18
|
|
|
19
|
-
function ReusableBlocksManageButton({
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
function ReusableBlocksManageButton(_ref) {
|
|
20
|
+
let {
|
|
21
|
+
clientId
|
|
22
|
+
} = _ref;
|
|
22
23
|
const {
|
|
23
24
|
isVisible
|
|
24
25
|
} = useSelect(select => {
|
package/build-module/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js"],"names":["MenuItem","__","isReusableBlock","useSelect","useDispatch","BlockSettingsMenuControls","store","blockEditorStore","addQueryArgs","coreStore","reusableBlocksStore","ReusableBlocksManageButton","clientId","isVisible","select","getBlock","canUser","reusableBlock","attributes","ref","__experimentalConvertBlockToStatic","convertBlockToStatic","post_type"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,uBAAzB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SACCC,yBADD,EAECC,KAAK,IAAIC,gBAFV,QAGO,yBAHP;AAIA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASF,KAAK,IAAIG,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASH,KAAK,IAAII,mBAAlB,QAA6C,aAA7C;;AAEA,SAASC,0BAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-blocks-manage-button.js"],"names":["MenuItem","__","isReusableBlock","useSelect","useDispatch","BlockSettingsMenuControls","store","blockEditorStore","addQueryArgs","coreStore","reusableBlocksStore","ReusableBlocksManageButton","clientId","isVisible","select","getBlock","canUser","reusableBlock","attributes","ref","__experimentalConvertBlockToStatic","convertBlockToStatic","post_type"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,uBAAzB;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SACCC,yBADD,EAECC,KAAK,IAAIC,gBAFV,QAGO,yBAHP;AAIA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASF,KAAK,IAAIG,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASH,KAAK,IAAII,mBAAlB,QAA6C,aAA7C;;AAEA,SAASC,0BAAT,OAAoD;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACnD,QAAM;AAAEC,IAAAA;AAAF,MAAgBV,SAAS,CAC5BW,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEP,gBAAF,CAA3B;AACA,UAAM;AAAES,MAAAA;AAAF,QAAcF,MAAM,CAAEL,SAAF,CAA1B;AACA,UAAMQ,aAAa,GAAGF,QAAQ,CAAEH,QAAF,CAA9B;AAEA,WAAO;AACNC,MAAAA,SAAS,EACR,CAAC,CAAEI,aAAH,IACAf,eAAe,CAAEe,aAAF,CADf,IAEA,CAAC,CAAED,OAAO,CACT,QADS,EAET,QAFS,EAGTC,aAAa,CAACC,UAAd,CAAyBC,GAHhB;AAJL,KAAP;AAUA,GAhB6B,EAiB9B,CAAEP,QAAF,CAjB8B,CAA/B;AAoBA,QAAM;AACLQ,IAAAA,kCAAkC,EAAEC;AAD/B,MAEFjB,WAAW,CAAEM,mBAAF,CAFf;;AAIA,MAAK,CAAEG,SAAP,EAAmB;AAClB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,yBAAD,QACC,cAAC,QAAD;AACC,IAAA,IAAI,EAAGL,YAAY,CAAE,UAAF,EAAc;AAAEc,MAAAA,SAAS,EAAE;AAAb,KAAd;AADpB,KAGGrB,EAAE,CAAE,wBAAF,CAHL,CADD,EAMC,cAAC,QAAD;AAAU,IAAA,OAAO,EAAG,MAAMoB,oBAAoB,CAAET,QAAF;AAA9C,KACGX,EAAE,CAAE,2BAAF,CADL,CAND,CADD;AAYA;;AAED,eAAeU,0BAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { isReusableBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as reusableBlocksStore } from '../../store';\n\nfunction ReusableBlocksManageButton( { clientId } ) {\n\tconst { isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst reusableBlock = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tisVisible:\n\t\t\t\t\t!! reusableBlock &&\n\t\t\t\t\tisReusableBlock( reusableBlock ) &&\n\t\t\t\t\t!! canUser(\n\t\t\t\t\t\t'update',\n\t\t\t\t\t\t'blocks',\n\t\t\t\t\t\treusableBlock.attributes.ref\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\t__experimentalConvertBlockToStatic: convertBlockToStatic,\n\t} = useDispatch( reusableBlocksStore );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t<MenuItem\n\t\t\t\thref={ addQueryArgs( 'edit.php', { post_type: 'wp_block' } ) }\n\t\t\t>\n\t\t\t\t{ __( 'Manage Reusable blocks' ) }\n\t\t\t</MenuItem>\n\t\t\t<MenuItem onClick={ () => convertBlockToStatic( clientId ) }>\n\t\t\t\t{ __( 'Convert to regular blocks' ) }\n\t\t\t</MenuItem>\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n\nexport default ReusableBlocksManageButton;\n"]}
|
|
@@ -15,9 +15,10 @@ import { __ } from '@wordpress/i18n';
|
|
|
15
15
|
* @param {string} clientId The client ID of the block to attach.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
export const __experimentalConvertBlockToStatic = clientId =>
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
export const __experimentalConvertBlockToStatic = clientId => _ref => {
|
|
19
|
+
let {
|
|
20
|
+
registry
|
|
21
|
+
} = _ref;
|
|
21
22
|
const oldBlock = registry.select(blockEditorStore).getBlock(clientId);
|
|
22
23
|
const reusableBlock = registry.select('core').getEditedEntityRecord('postType', 'wp_block', oldBlock.attributes.ref);
|
|
23
24
|
const newBlocks = parse(isFunction(reusableBlock.content) ? reusableBlock.content(reusableBlock) : reusableBlock.content);
|
|
@@ -30,10 +31,11 @@ export const __experimentalConvertBlockToStatic = clientId => ({
|
|
|
30
31
|
* @param {string} title Reusable block title.
|
|
31
32
|
*/
|
|
32
33
|
|
|
33
|
-
export const __experimentalConvertBlocksToReusable = (clientIds, title) => async
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
export const __experimentalConvertBlocksToReusable = (clientIds, title) => async _ref2 => {
|
|
35
|
+
let {
|
|
36
|
+
registry,
|
|
37
|
+
dispatch
|
|
38
|
+
} = _ref2;
|
|
37
39
|
const reusableBlock = {
|
|
38
40
|
title: title || __('Untitled Reusable block'),
|
|
39
41
|
content: serialize(registry.select(blockEditorStore).getBlocksByClientId(clientIds)),
|
|
@@ -53,9 +55,10 @@ export const __experimentalConvertBlocksToReusable = (clientIds, title) => async
|
|
|
53
55
|
* @param {string} id The ID of the reusable block to delete.
|
|
54
56
|
*/
|
|
55
57
|
|
|
56
|
-
export const __experimentalDeleteReusableBlock = id => async
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
export const __experimentalDeleteReusableBlock = id => async _ref3 => {
|
|
59
|
+
let {
|
|
60
|
+
registry
|
|
61
|
+
} = _ref3;
|
|
59
62
|
const reusableBlock = registry.select('core').getEditedEntityRecord('postType', 'wp_block', id); // Don't allow a reusable block with a temporary ID to be deleted
|
|
60
63
|
|
|
61
64
|
if (!reusableBlock) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/actions.js"],"names":["isFunction","store","blockEditorStore","createBlock","isReusableBlock","parse","serialize","__","__experimentalConvertBlockToStatic","clientId","registry","oldBlock","select","getBlock","reusableBlock","getEditedEntityRecord","attributes","ref","newBlocks","content","dispatch","replaceBlocks","__experimentalConvertBlocksToReusable","clientIds","title","getBlocksByClientId","status","updatedRecord","saveEntityRecord","newBlock","id","__experimentalSetEditingReusableBlock","__experimentalDeleteReusableBlock","allBlocks","getBlocks","associatedBlocks","filter","block","associatedBlockClientIds","map","length","removeBlocks","deleteEntityRecord","isEditing","type"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,QAA3B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,yBAA1C;AACA,SACCC,WADD,EAECC,eAFD,EAGCC,KAHD,EAICC,SAJD,QAKO,mBALP;AAMA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,kCAAkC,GAAKC,QAAF,IAAgB,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/actions.js"],"names":["isFunction","store","blockEditorStore","createBlock","isReusableBlock","parse","serialize","__","__experimentalConvertBlockToStatic","clientId","registry","oldBlock","select","getBlock","reusableBlock","getEditedEntityRecord","attributes","ref","newBlocks","content","dispatch","replaceBlocks","__experimentalConvertBlocksToReusable","clientIds","title","getBlocksByClientId","status","updatedRecord","saveEntityRecord","newBlock","id","__experimentalSetEditingReusableBlock","__experimentalDeleteReusableBlock","allBlocks","getBlocks","associatedBlocks","filter","block","associatedBlockClientIds","map","length","removeBlocks","deleteEntityRecord","isEditing","type"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isFunction } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\tcreateBlock,\n\tisReusableBlock,\n\tparse,\n\tserialize,\n} from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Returns a generator converting a reusable block into a static block.\n *\n * @param {string} clientId The client ID of the block to attach.\n */\nexport const __experimentalConvertBlockToStatic = ( clientId ) => ( {\n\tregistry,\n} ) => {\n\tconst oldBlock = registry.select( blockEditorStore ).getBlock( clientId );\n\tconst reusableBlock = registry\n\t\t.select( 'core' )\n\t\t.getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_block',\n\t\t\toldBlock.attributes.ref\n\t\t);\n\n\tconst newBlocks = parse(\n\t\tisFunction( reusableBlock.content )\n\t\t\t? reusableBlock.content( reusableBlock )\n\t\t\t: reusableBlock.content\n\t);\n\tregistry\n\t\t.dispatch( blockEditorStore )\n\t\t.replaceBlocks( oldBlock.clientId, newBlocks );\n};\n\n/**\n * Returns a generator converting one or more static blocks into a reusable block.\n *\n * @param {string[]} clientIds The client IDs of the block to detach.\n * @param {string} title Reusable block title.\n */\nexport const __experimentalConvertBlocksToReusable = (\n\tclientIds,\n\ttitle\n) => async ( { registry, dispatch } ) => {\n\tconst reusableBlock = {\n\t\ttitle: title || __( 'Untitled Reusable block' ),\n\t\tcontent: serialize(\n\t\t\tregistry.select( blockEditorStore ).getBlocksByClientId( clientIds )\n\t\t),\n\t\tstatus: 'publish',\n\t};\n\n\tconst updatedRecord = await registry\n\t\t.dispatch( 'core' )\n\t\t.saveEntityRecord( 'postType', 'wp_block', reusableBlock );\n\n\tconst newBlock = createBlock( 'core/block', {\n\t\tref: updatedRecord.id,\n\t} );\n\tregistry.dispatch( blockEditorStore ).replaceBlocks( clientIds, newBlock );\n\tdispatch.__experimentalSetEditingReusableBlock( newBlock.clientId, true );\n};\n\n/**\n * Returns a generator deleting a reusable block.\n *\n * @param {string} id The ID of the reusable block to delete.\n */\nexport const __experimentalDeleteReusableBlock = ( id ) => async ( {\n\tregistry,\n} ) => {\n\tconst reusableBlock = registry\n\t\t.select( 'core' )\n\t\t.getEditedEntityRecord( 'postType', 'wp_block', id );\n\n\t// Don't allow a reusable block with a temporary ID to be deleted\n\tif ( ! reusableBlock ) {\n\t\treturn;\n\t}\n\n\t// Remove any other blocks that reference this reusable block\n\tconst allBlocks = registry.select( blockEditorStore ).getBlocks();\n\tconst associatedBlocks = allBlocks.filter(\n\t\t( block ) => isReusableBlock( block ) && block.attributes.ref === id\n\t);\n\tconst associatedBlockClientIds = associatedBlocks.map(\n\t\t( block ) => block.clientId\n\t);\n\n\t// Remove the parsed block.\n\tif ( associatedBlockClientIds.length ) {\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.removeBlocks( associatedBlockClientIds );\n\t}\n\n\tawait registry\n\t\t.dispatch( 'core' )\n\t\t.deleteEntityRecord( 'postType', 'wp_block', id );\n};\n\n/**\n * Returns an action descriptor for SET_EDITING_REUSABLE_BLOCK action.\n *\n * @param {string} clientId The clientID of the reusable block to target.\n * @param {boolean} isEditing Whether the block should be in editing state.\n * @return {Object} Action descriptor.\n */\nexport function __experimentalSetEditingReusableBlock( clientId, isEditing ) {\n\treturn {\n\t\ttype: 'SET_EDITING_REUSABLE_BLOCK',\n\t\tclientId,\n\t\tisEditing,\n\t};\n}\n"]}
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { combineReducers } from '@wordpress/data';
|
|
5
|
-
export function isEditingReusableBlock(
|
|
5
|
+
export function isEditingReusableBlock() {
|
|
6
|
+
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7
|
+
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
8
|
+
|
|
6
9
|
if ((action === null || action === void 0 ? void 0 : action.type) === 'SET_EDITING_REUSABLE_BLOCK') {
|
|
7
10
|
return { ...state,
|
|
8
11
|
[action.clientId]: action.isEditing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/reducer.js"],"names":["combineReducers","isEditingReusableBlock","state","action","type","clientId","isEditing"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAT,QAAgC,iBAAhC;AAEA,OAAO,SAASC,sBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/reusable-blocks/src/store/reducer.js"],"names":["combineReducers","isEditingReusableBlock","state","action","type","clientId","isEditing"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAT,QAAgC,iBAAhC;AAEA,OAAO,SAASC,sBAAT,GAAsD;AAAA,MAArBC,KAAqB,uEAAb,EAAa;AAAA,MAATC,MAAS;;AAC5D,MAAK,CAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEC,IAAR,MAAiB,4BAAtB,EAAqD;AACpD,WAAO,EACN,GAAGF,KADG;AAEN,OAAEC,MAAM,CAACE,QAAT,GAAqBF,MAAM,CAACG;AAFtB,KAAP;AAIA;;AAED,SAAOJ,KAAP;AACA;AAED,eAAeF,eAAe,CAAE;AAC/BC,EAAAA;AAD+B,CAAF,CAA9B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\nexport function isEditingReusableBlock( state = {}, action ) {\n\tif ( action?.type === 'SET_EDITING_REUSABLE_BLOCK' ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t[ action.clientId ]: action.isEditing,\n\t\t};\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tisEditingReusableBlock,\n} );\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/reusable-blocks",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8",
|
|
4
4
|
"description": "Reusable blocks utilities.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -28,21 +28,21 @@
|
|
|
28
28
|
"{src,build,build-module}/{index.js,store/index.js}"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@wordpress/block-editor": "^
|
|
32
|
-
"@wordpress/blocks": "^11.1.
|
|
33
|
-
"@wordpress/components": "^19.0.
|
|
34
|
-
"@wordpress/compose": "^5.0.
|
|
35
|
-
"@wordpress/core-data": "^4.0.
|
|
36
|
-
"@wordpress/data": "^6.1.
|
|
37
|
-
"@wordpress/element": "^4.0.
|
|
38
|
-
"@wordpress/i18n": "^4.2.
|
|
39
|
-
"@wordpress/icons": "^6.
|
|
40
|
-
"@wordpress/notices": "^3.2.
|
|
41
|
-
"@wordpress/url": "^3.
|
|
31
|
+
"@wordpress/block-editor": "^8.0.2",
|
|
32
|
+
"@wordpress/blocks": "^11.1.4",
|
|
33
|
+
"@wordpress/components": "^19.0.2",
|
|
34
|
+
"@wordpress/compose": "^5.0.6",
|
|
35
|
+
"@wordpress/core-data": "^4.0.7",
|
|
36
|
+
"@wordpress/data": "^6.1.4",
|
|
37
|
+
"@wordpress/element": "^4.0.4",
|
|
38
|
+
"@wordpress/i18n": "^4.2.4",
|
|
39
|
+
"@wordpress/icons": "^6.1.1",
|
|
40
|
+
"@wordpress/notices": "^3.2.7",
|
|
41
|
+
"@wordpress/url": "^3.3.1",
|
|
42
42
|
"lodash": "^4.17.21"
|
|
43
43
|
},
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "9a1dd3474d937468e4cf9caf9886ad61ef0a8f50"
|
|
48
48
|
}
|