@wordpress/block-library 7.3.0 → 7.3.1
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/post-comments/index.js +4 -3
- package/build/post-comments/index.js.map +1 -1
- package/build/query/edit/index.js +84 -22
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/query-placeholder.js +7 -14
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/edit/query-toolbar.js +6 -1
- package/build/query/edit/query-toolbar.js.map +1 -1
- package/build-module/post-comments/index.js +4 -3
- package/build-module/post-comments/index.js.map +1 -1
- package/build-module/query/edit/index.js +87 -26
- package/build-module/query/edit/index.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +8 -15
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/edit/query-toolbar.js +6 -1
- package/build-module/query/edit/query-toolbar.js.map +1 -1
- package/build-style/editor-rtl.css +39 -0
- package/build-style/editor.css +39 -0
- package/build-style/query/editor-rtl.css +39 -0
- package/build-style/query/editor.css +39 -0
- package/package.json +7 -7
- package/src/post-comments/block.json +4 -3
- package/src/query/edit/index.js +125 -26
- package/src/query/edit/query-placeholder.js +3 -13
- package/src/query/edit/query-toolbar.js +6 -0
- package/src/query/editor.scss +38 -0
|
@@ -22,9 +22,9 @@ const metadata = {
|
|
|
22
22
|
$schema: "https://schemas.wp.org/trunk/block.json",
|
|
23
23
|
apiVersion: 2,
|
|
24
24
|
name: "core/post-comments",
|
|
25
|
-
title: "Post Comments",
|
|
25
|
+
title: "Post Comments (deprecated)",
|
|
26
26
|
category: "theme",
|
|
27
|
-
description: "
|
|
27
|
+
description: "This block is deprecated. Please use the Comments Query Loop block instead.",
|
|
28
28
|
textdomain: "default",
|
|
29
29
|
attributes: {
|
|
30
30
|
textAlign: {
|
|
@@ -53,7 +53,8 @@ const metadata = {
|
|
|
53
53
|
background: true,
|
|
54
54
|
text: true
|
|
55
55
|
}
|
|
56
|
-
}
|
|
56
|
+
},
|
|
57
|
+
inserter: false
|
|
57
58
|
},
|
|
58
59
|
style: ["wp-block-post-comments", "wp-block-buttons", "wp-block-button"]
|
|
59
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/post-comments/index.js"],"names":["name","metadata","settings","icon","edit"],"mappings":";;;;;;;;;AAGA;;AAMA;;AATA;AACA;AACA;;AAGA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/post-comments/index.js"],"names":["name","metadata","settings","icon","edit"],"mappings":";;;;;;;;;AAGA;;AAMA;;AATA;AACA;AACA;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,mBADuB;AAEvBC,EAAAA,IAAI,EAAJA;AAFuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postComments as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n"]}
|
|
@@ -10,6 +10,8 @@ exports.default = void 0;
|
|
|
10
10
|
|
|
11
11
|
var _element = require("@wordpress/element");
|
|
12
12
|
|
|
13
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
14
|
+
|
|
13
15
|
var _data = require("@wordpress/data");
|
|
14
16
|
|
|
15
17
|
var _blocks = require("@wordpress/blocks");
|
|
@@ -44,7 +46,8 @@ const TEMPLATE = [['core/post-template']];
|
|
|
44
46
|
function QueryContent(_ref) {
|
|
45
47
|
let {
|
|
46
48
|
attributes,
|
|
47
|
-
setAttributes
|
|
49
|
+
setAttributes,
|
|
50
|
+
openPatternSelectionModal
|
|
48
51
|
} = _ref;
|
|
49
52
|
const {
|
|
50
53
|
queryId,
|
|
@@ -138,7 +141,8 @@ function QueryContent(_ref) {
|
|
|
138
141
|
}), (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)(_queryToolbar.default, {
|
|
139
142
|
attributes: attributes,
|
|
140
143
|
setQuery: updateQuery,
|
|
141
|
-
setDisplayLayout: updateDisplayLayout
|
|
144
|
+
setDisplayLayout: updateDisplayLayout,
|
|
145
|
+
openPatternSelectionModal: openPatternSelectionModal
|
|
142
146
|
})), (0, _element.createElement)(_blockEditor.InspectorControls, {
|
|
143
147
|
__experimentalGroup: "advanced"
|
|
144
148
|
}, (0, _element.createElement)(_components.SelectControl, {
|
|
@@ -163,16 +167,79 @@ function QueryContent(_ref) {
|
|
|
163
167
|
})), (0, _element.createElement)(TagName, innerBlocksProps));
|
|
164
168
|
}
|
|
165
169
|
|
|
166
|
-
function QueryPatternSetup(
|
|
170
|
+
function QueryPatternSetup(_ref2) {
|
|
171
|
+
var _blockType$icon;
|
|
172
|
+
|
|
173
|
+
let {
|
|
174
|
+
attributes,
|
|
175
|
+
clientId,
|
|
176
|
+
name,
|
|
177
|
+
openPatternSelectionModal,
|
|
178
|
+
setAttributes
|
|
179
|
+
} = _ref2;
|
|
180
|
+
const [isStartingBlank, setIsStartingBlank] = (0, _element.useState)(false);
|
|
181
|
+
const blockProps = (0, _blockEditor.useBlockProps)();
|
|
182
|
+
const {
|
|
183
|
+
blockType,
|
|
184
|
+
allVariations,
|
|
185
|
+
hasPatterns
|
|
186
|
+
} = (0, _data.useSelect)(select => {
|
|
187
|
+
const {
|
|
188
|
+
getBlockVariations,
|
|
189
|
+
getBlockType
|
|
190
|
+
} = select(_blocks.store);
|
|
191
|
+
const {
|
|
192
|
+
getBlockRootClientId,
|
|
193
|
+
__experimentalGetPatternsByBlockTypes
|
|
194
|
+
} = select(_blockEditor.store);
|
|
195
|
+
const rootClientId = getBlockRootClientId(clientId);
|
|
196
|
+
return {
|
|
197
|
+
blockType: getBlockType(name),
|
|
198
|
+
allVariations: getBlockVariations(name),
|
|
199
|
+
hasPatterns: !!__experimentalGetPatternsByBlockTypes(name, rootClientId).length
|
|
200
|
+
};
|
|
201
|
+
}, [name, clientId]);
|
|
202
|
+
const matchingVariation = (0, _blockEditor.__experimentalGetMatchingVariation)(attributes, allVariations);
|
|
203
|
+
const icon = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.icon) || (blockType === null || blockType === void 0 ? void 0 : (_blockType$icon = blockType.icon) === null || _blockType$icon === void 0 ? void 0 : _blockType$icon.src);
|
|
204
|
+
const label = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.title) || (blockType === null || blockType === void 0 ? void 0 : blockType.title);
|
|
205
|
+
|
|
206
|
+
if (isStartingBlank) {
|
|
207
|
+
return (0, _element.createElement)(_queryPlaceholder.default, {
|
|
208
|
+
clientId: clientId,
|
|
209
|
+
name: name,
|
|
210
|
+
setAttributes: setAttributes,
|
|
211
|
+
icon: icon,
|
|
212
|
+
label: label
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
return (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_components.Placeholder, {
|
|
217
|
+
icon: icon,
|
|
218
|
+
label: label,
|
|
219
|
+
instructions: (0, _i18n.__)('Choose a pattern for the query loop or start blank.')
|
|
220
|
+
}, !!hasPatterns && (0, _element.createElement)(_components.Button, {
|
|
221
|
+
variant: "primary",
|
|
222
|
+
onClick: openPatternSelectionModal
|
|
223
|
+
}, (0, _i18n.__)('Choose')), (0, _element.createElement)(_components.Button, {
|
|
224
|
+
variant: "secondary",
|
|
225
|
+
onClick: () => {
|
|
226
|
+
setIsStartingBlank(true);
|
|
227
|
+
}
|
|
228
|
+
}, (0, _i18n.__)('Start blank'))));
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
const QueryEdit = props => {
|
|
167
232
|
const {
|
|
168
233
|
clientId,
|
|
169
|
-
name
|
|
234
|
+
name
|
|
170
235
|
} = props;
|
|
171
|
-
const
|
|
236
|
+
const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = (0, _element.useState)(false);
|
|
172
237
|
const {
|
|
173
238
|
replaceBlock,
|
|
174
239
|
selectBlock
|
|
175
240
|
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
241
|
+
const hasInnerBlocks = (0, _data.useSelect)(select => !!select(_blockEditor.store).getBlocks(clientId).length, [clientId]);
|
|
242
|
+
const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;
|
|
176
243
|
|
|
177
244
|
const onBlockPatternSelect = blocks => {
|
|
178
245
|
const clonedBlocks = blocks.map(block => (0, _blocks.cloneBlock)(block));
|
|
@@ -182,25 +249,20 @@ function QueryPatternSetup(props) {
|
|
|
182
249
|
if (firstQueryClientId) {
|
|
183
250
|
selectBlock(firstQueryClientId);
|
|
184
251
|
}
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(Component, (0, _extends2.default)({}, props, {
|
|
255
|
+
openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true)
|
|
256
|
+
})), isPatternSelectionModalOpen && (0, _element.createElement)(_components.Modal, {
|
|
257
|
+
className: "block-editor-query-pattern__selection-modal",
|
|
258
|
+
title: (0, _i18n.__)('Choose a pattern'),
|
|
259
|
+
closeLabel: (0, _i18n.__)('Cancel'),
|
|
260
|
+
onRequestClose: () => setIsPatternSelectionModalOpen(false)
|
|
261
|
+
}, (0, _element.createElement)(_blockEditor.__experimentalBlockPatternSetup, {
|
|
262
|
+
blockName: name,
|
|
191
263
|
clientId: clientId,
|
|
192
|
-
startBlankComponent: (0, _element.createElement)(_queryPlaceholder.default, props),
|
|
193
264
|
onBlockPatternSelect: onBlockPatternSelect
|
|
194
|
-
}));
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
const QueryEdit = props => {
|
|
198
|
-
const {
|
|
199
|
-
clientId
|
|
200
|
-
} = props;
|
|
201
|
-
const hasInnerBlocks = (0, _data.useSelect)(select => !!select(_blockEditor.store).getBlocks(clientId).length, [clientId]);
|
|
202
|
-
const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;
|
|
203
|
-
return (0, _element.createElement)(Component, props);
|
|
265
|
+
})));
|
|
204
266
|
};
|
|
205
267
|
|
|
206
268
|
var _default = QueryEdit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/query/edit/index.js"],"names":["TEMPLATE","QueryContent","attributes","setAttributes","queryId","query","displayLayout","tagName","TagName","layout","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","instanceId","themeSupportsLayout","select","getSettings","supportsLayout","defaultLayout","usedLayout","inherit","blockProps","innerBlocksProps","template","__experimentalLayout","undefined","postsPerPage","DEFAULTS_POSTS_PER_PAGE","newQuery","perPage","Object","keys","length","updateQuery","Number","isFinite","updateDisplayLayout","newDisplayLayout","label","value","QueryPatternSetup","props","clientId","name","blockName","replaceBlock","selectBlock","onBlockPatternSelect","blocks","clonedBlocks","map","block","firstQueryClientId","QueryEdit","hasInnerBlocks","getBlocks","Component"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useEffect } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSetting,\n\tstore as blockEditorStore,\n\tuseInnerBlocksProps,\n\t__experimentalBlockPatternSetup as BlockPatternSetup,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport QueryToolbar from './query-toolbar';\nimport QueryInspectorControls from './inspector-controls';\nimport QueryPlaceholder from './query-placeholder';\nimport { DEFAULTS_POSTS_PER_PAGE } from '../constants';\nimport { getFirstQueryClientIdFromBlocks } from '../utils';\n\nconst TEMPLATE = [ [ 'core/post-template' ] ];\nexport function QueryContent( { attributes, setAttributes } ) {\n\tconst {\n\t\tqueryId,\n\t\tquery,\n\t\tdisplayLayout,\n\t\ttagName: TagName = 'div',\n\t\tlayout = {},\n\t} = attributes;\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst instanceId = useInstanceId( QueryContent );\n\tconst { themeSupportsLayout } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn { themeSupportsLayout: getSettings()?.supportsLayout };\n\t}, [] );\n\tconst defaultLayout = useSetting( 'layout' ) || {};\n\tconst usedLayout = !! layout && layout.inherit ? defaultLayout : layout;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\t__experimentalLayout: themeSupportsLayout ? usedLayout : undefined,\n\t} );\n\tconst { postsPerPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostsPerPage:\n\t\t\t\t+getSettings().postsPerPage || DEFAULTS_POSTS_PER_PAGE,\n\t\t};\n\t}, [] );\n\t// There are some effects running where some initialization logic is\n\t// happening and setting some values to some attributes (ex. queryId).\n\t// These updates can cause an `undo trap` where undoing will result in\n\t// resetting again, so we need to mark these changes as not persistent\n\t// with `__unstableMarkNextChangeAsNotPersistent`.\n\n\t// Changes in query property (which is an object) need to be in the same callback,\n\t// because updates are batched after the render and changes in different query properties\n\t// would cause to override previous wanted changes.\n\tuseEffect( () => {\n\t\tconst newQuery = {};\n\t\tif ( ! query.perPage && postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t}\n\t\tif ( !! Object.keys( newQuery ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateQuery( newQuery );\n\t\t}\n\t}, [ query.perPage ] );\n\t// We need this for multi-query block pagination.\n\t// Query parameters for each block are scoped to their ID.\n\tuseEffect( () => {\n\t\tif ( ! Number.isFinite( queryId ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { queryId: instanceId } );\n\t\t}\n\t}, [ queryId, instanceId ] );\n\tconst updateQuery = ( newQuery ) =>\n\t\tsetAttributes( { query: { ...query, ...newQuery } } );\n\tconst updateDisplayLayout = ( newDisplayLayout ) =>\n\t\tsetAttributes( {\n\t\t\tdisplayLayout: { ...displayLayout, ...newDisplayLayout },\n\t\t} );\n\treturn (\n\t\t<>\n\t\t\t<QueryInspectorControls\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\tsetDisplayLayout={ updateDisplayLayout }\n\t\t\t/>\n\t\t\t<BlockControls>\n\t\t\t\t<QueryToolbar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\t\tsetDisplayLayout={ updateDisplayLayout }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t] }\n\t\t\t\t\tvalue={ TagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nfunction QueryPatternSetup( props ) {\n\tconst { clientId, name: blockName } = props;\n\tconst blockProps = useBlockProps();\n\tconst { replaceBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst onBlockPatternSelect = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\tconst firstQueryClientId = getFirstQueryClientIdFromBlocks(\n\t\t\tclonedBlocks\n\t\t);\n\t\treplaceBlock( clientId, clonedBlocks );\n\t\tif ( firstQueryClientId ) {\n\t\t\tselectBlock( firstQueryClientId );\n\t\t}\n\t};\n\t// `startBlankComponent` is what to render when clicking `Start blank`\n\t// or if no matched patterns are found.\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<BlockPatternSetup\n\t\t\t\tblockName={ blockName }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tstartBlankComponent={ <QueryPlaceholder { ...props } /> }\n\t\t\t\tonBlockPatternSelect={ onBlockPatternSelect }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst QueryEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( blockEditorStore ).getBlocks( clientId ).length,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;\n\treturn <Component { ...props } />;\n};\n\nexport default QueryEdit;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/query/edit/index.js"],"names":["TEMPLATE","QueryContent","attributes","setAttributes","openPatternSelectionModal","queryId","query","displayLayout","tagName","TagName","layout","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","instanceId","themeSupportsLayout","select","getSettings","supportsLayout","defaultLayout","usedLayout","inherit","blockProps","innerBlocksProps","template","__experimentalLayout","undefined","postsPerPage","DEFAULTS_POSTS_PER_PAGE","newQuery","perPage","Object","keys","length","updateQuery","Number","isFinite","updateDisplayLayout","newDisplayLayout","label","value","QueryPatternSetup","clientId","name","isStartingBlank","setIsStartingBlank","blockType","allVariations","hasPatterns","getBlockVariations","getBlockType","blocksStore","getBlockRootClientId","__experimentalGetPatternsByBlockTypes","rootClientId","matchingVariation","icon","src","title","QueryEdit","props","isPatternSelectionModalOpen","setIsPatternSelectionModalOpen","replaceBlock","selectBlock","hasInnerBlocks","getBlocks","Component","onBlockPatternSelect","blocks","clonedBlocks","map","block","firstQueryClientId"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blocksStore, cloneBlock } from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSetting,\n\tstore as blockEditorStore,\n\tuseInnerBlocksProps,\n\t__experimentalGetMatchingVariation as getMatchingVariation,\n\t__experimentalBlockPatternSetup as BlockPatternSetup,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tSelectControl,\n\tPlaceholder,\n\tModal,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport QueryToolbar from './query-toolbar';\nimport QueryInspectorControls from './inspector-controls';\nimport QueryPlaceholder from './query-placeholder';\nimport { DEFAULTS_POSTS_PER_PAGE } from '../constants';\nimport { getFirstQueryClientIdFromBlocks } from '../utils';\n\nconst TEMPLATE = [ [ 'core/post-template' ] ];\nexport function QueryContent( {\n\tattributes,\n\tsetAttributes,\n\topenPatternSelectionModal,\n} ) {\n\tconst {\n\t\tqueryId,\n\t\tquery,\n\t\tdisplayLayout,\n\t\ttagName: TagName = 'div',\n\t\tlayout = {},\n\t} = attributes;\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst instanceId = useInstanceId( QueryContent );\n\tconst { themeSupportsLayout } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn { themeSupportsLayout: getSettings()?.supportsLayout };\n\t}, [] );\n\tconst defaultLayout = useSetting( 'layout' ) || {};\n\tconst usedLayout = !! layout && layout.inherit ? defaultLayout : layout;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\t__experimentalLayout: themeSupportsLayout ? usedLayout : undefined,\n\t} );\n\tconst { postsPerPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostsPerPage:\n\t\t\t\t+getSettings().postsPerPage || DEFAULTS_POSTS_PER_PAGE,\n\t\t};\n\t}, [] );\n\t// There are some effects running where some initialization logic is\n\t// happening and setting some values to some attributes (ex. queryId).\n\t// These updates can cause an `undo trap` where undoing will result in\n\t// resetting again, so we need to mark these changes as not persistent\n\t// with `__unstableMarkNextChangeAsNotPersistent`.\n\n\t// Changes in query property (which is an object) need to be in the same callback,\n\t// because updates are batched after the render and changes in different query properties\n\t// would cause to override previous wanted changes.\n\tuseEffect( () => {\n\t\tconst newQuery = {};\n\t\tif ( ! query.perPage && postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t}\n\t\tif ( !! Object.keys( newQuery ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateQuery( newQuery );\n\t\t}\n\t}, [ query.perPage ] );\n\t// We need this for multi-query block pagination.\n\t// Query parameters for each block are scoped to their ID.\n\tuseEffect( () => {\n\t\tif ( ! Number.isFinite( queryId ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { queryId: instanceId } );\n\t\t}\n\t}, [ queryId, instanceId ] );\n\tconst updateQuery = ( newQuery ) =>\n\t\tsetAttributes( { query: { ...query, ...newQuery } } );\n\tconst updateDisplayLayout = ( newDisplayLayout ) =>\n\t\tsetAttributes( {\n\t\t\tdisplayLayout: { ...displayLayout, ...newDisplayLayout },\n\t\t} );\n\treturn (\n\t\t<>\n\t\t\t<QueryInspectorControls\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\tsetDisplayLayout={ updateDisplayLayout }\n\t\t\t/>\n\t\t\t<BlockControls>\n\t\t\t\t<QueryToolbar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\t\tsetDisplayLayout={ updateDisplayLayout }\n\t\t\t\t\topenPatternSelectionModal={ openPatternSelectionModal }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t] }\n\t\t\t\t\tvalue={ TagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nfunction QueryPatternSetup( {\n\tattributes,\n\tclientId,\n\tname,\n\topenPatternSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst [ isStartingBlank, setIsStartingBlank ] = useState( false );\n\tconst blockProps = useBlockProps();\n\n\tconst { blockType, allVariations, hasPatterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockVariations, getBlockType } = select( blocksStore );\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetPatternsByBlockTypes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tallVariations: getBlockVariations( name ),\n\t\t\t\thasPatterns: !! __experimentalGetPatternsByBlockTypes(\n\t\t\t\t\tname,\n\t\t\t\t\trootClientId\n\t\t\t\t).length,\n\t\t\t};\n\t\t},\n\t\t[ name, clientId ]\n\t);\n\n\tconst matchingVariation = getMatchingVariation( attributes, allVariations );\n\tconst icon = matchingVariation?.icon || blockType?.icon?.src;\n\tconst label = matchingVariation?.title || blockType?.title;\n\tif ( isStartingBlank ) {\n\t\treturn (\n\t\t\t<QueryPlaceholder\n\t\t\t\tclientId={ clientId }\n\t\t\t\tname={ name }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Choose a pattern for the query loop or start blank.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ !! hasPatterns && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ openPatternSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsStartingBlank( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nconst QueryEdit = ( props ) => {\n\tconst { clientId, name } = props;\n\tconst [\n\t\tisPatternSelectionModalOpen,\n\t\tsetIsPatternSelectionModalOpen,\n\t] = useState( false );\n\tconst { replaceBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( blockEditorStore ).getBlocks( clientId ).length,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;\n\tconst onBlockPatternSelect = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\tconst firstQueryClientId = getFirstQueryClientIdFromBlocks(\n\t\t\tclonedBlocks\n\t\t);\n\t\treplaceBlock( clientId, clonedBlocks );\n\t\tif ( firstQueryClientId ) {\n\t\t\tselectBlock( firstQueryClientId );\n\t\t}\n\t};\n\treturn (\n\t\t<>\n\t\t\t<Component\n\t\t\t\t{ ...props }\n\t\t\t\topenPatternSelectionModal={ () =>\n\t\t\t\t\tsetIsPatternSelectionModalOpen( true )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ isPatternSelectionModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\tclassName=\"block-editor-query-pattern__selection-modal\"\n\t\t\t\t\ttitle={ __( 'Choose a pattern' ) }\n\t\t\t\t\tcloseLabel={ __( 'Cancel' ) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsPatternSelectionModalOpen( false )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<BlockPatternSetup\n\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tonBlockPatternSelect={ onBlockPatternSelect }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default QueryEdit;\n"]}
|
|
@@ -16,20 +16,17 @@ var _blocks = require("@wordpress/blocks");
|
|
|
16
16
|
/**
|
|
17
17
|
* WordPress dependencies
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
var _blockType$icon;
|
|
21
|
-
|
|
19
|
+
function QueryPlaceholder(_ref) {
|
|
22
20
|
let {
|
|
23
21
|
clientId,
|
|
24
22
|
name,
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
setAttributes,
|
|
24
|
+
icon,
|
|
25
|
+
label
|
|
27
26
|
} = _ref;
|
|
28
27
|
const {
|
|
29
|
-
blockType,
|
|
30
28
|
defaultVariation,
|
|
31
|
-
scopeVariations
|
|
32
|
-
allVariations
|
|
29
|
+
scopeVariations
|
|
33
30
|
} = (0, _data.useSelect)(select => {
|
|
34
31
|
const {
|
|
35
32
|
getBlockVariations,
|
|
@@ -39,17 +36,13 @@ const QueryPlaceholder = _ref => {
|
|
|
39
36
|
return {
|
|
40
37
|
blockType: getBlockType(name),
|
|
41
38
|
defaultVariation: getDefaultBlockVariation(name, 'block'),
|
|
42
|
-
scopeVariations: getBlockVariations(name, 'block')
|
|
43
|
-
allVariations: getBlockVariations(name)
|
|
39
|
+
scopeVariations: getBlockVariations(name, 'block')
|
|
44
40
|
};
|
|
45
41
|
}, [name]);
|
|
46
42
|
const {
|
|
47
43
|
replaceInnerBlocks
|
|
48
44
|
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
49
45
|
const blockProps = (0, _blockEditor.useBlockProps)();
|
|
50
|
-
const matchingVariation = (0, _blockEditor.__experimentalGetMatchingVariation)(attributes, allVariations);
|
|
51
|
-
const icon = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.icon) || (blockType === null || blockType === void 0 ? void 0 : (_blockType$icon = blockType.icon) === null || _blockType$icon === void 0 ? void 0 : _blockType$icon.src);
|
|
52
|
-
const label = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.title) || (blockType === null || blockType === void 0 ? void 0 : blockType.title);
|
|
53
46
|
return (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_blockEditor.__experimentalBlockVariationPicker, {
|
|
54
47
|
icon: icon,
|
|
55
48
|
label: label,
|
|
@@ -66,7 +59,7 @@ const QueryPlaceholder = _ref => {
|
|
|
66
59
|
}
|
|
67
60
|
}
|
|
68
61
|
}));
|
|
69
|
-
}
|
|
62
|
+
}
|
|
70
63
|
|
|
71
64
|
var _default = QueryPlaceholder;
|
|
72
65
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/query/edit/query-placeholder.js"],"names":["QueryPlaceholder","clientId","name","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/query/edit/query-placeholder.js"],"names":["QueryPlaceholder","clientId","name","setAttributes","icon","label","defaultVariation","scopeVariations","select","getBlockVariations","getBlockType","getDefaultBlockVariation","blocksStore","blockType","replaceInnerBlocks","blockEditorStore","blockProps","nextVariation","attributes","innerBlocks"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;AAYA,SAASA,gBAAT,OAA4E;AAAA,MAAjD;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAZ;AAAkBC,IAAAA,aAAlB;AAAiCC,IAAAA,IAAjC;AAAuCC,IAAAA;AAAvC,GAAiD;AAC3E,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAAwC,qBAC3CC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,kBADK;AAELC,MAAAA,YAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,aAAF,CAJV;AAMA,WAAO;AACNC,MAAAA,SAAS,EAAEH,YAAY,CAAER,IAAF,CADjB;AAENI,MAAAA,gBAAgB,EAAEK,wBAAwB,CAAET,IAAF,EAAQ,OAAR,CAFpC;AAGNK,MAAAA,eAAe,EAAEE,kBAAkB,CAAEP,IAAF,EAAQ,OAAR;AAH7B,KAAP;AAKA,GAb4C,EAc7C,CAAEA,IAAF,CAd6C,CAA9C;AAgBA,QAAM;AAAEY,IAAAA;AAAF,MAAyB,uBAAaC,kBAAb,CAA/B;AACA,QAAMC,UAAU,GAAG,iCAAnB;AACA,SACC,mCAAUA,UAAV,EACC,4BAAC,+CAAD;AACC,IAAA,IAAI,EAAGZ,IADR;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,UAAU,EAAGE,eAHd;AAIC,IAAA,QAAQ,EAAG,YAAwC;AAAA,UAAtCU,aAAsC,uEAAtBX,gBAAsB;;AAClD,UAAKW,aAAa,CAACC,UAAnB,EAAgC;AAC/Bf,QAAAA,aAAa,CAAEc,aAAa,CAACC,UAAhB,CAAb;AACA;;AACD,UAAKD,aAAa,CAACE,WAAnB,EAAiC;AAChCL,QAAAA,kBAAkB,CACjBb,QADiB,EAEjB,iDACCgB,aAAa,CAACE,WADf,CAFiB,EAKjB,KALiB,CAAlB;AAOA;AACD;AAjBF,IADD,CADD;AAuBA;;eAEcnB,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseBlockProps,\n\t__experimentalBlockVariationPicker,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\nfunction QueryPlaceholder( { clientId, name, setAttributes, icon, label } ) {\n\tconst { defaultVariation, scopeVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tscopeVariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tvariations={ scopeVariations }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default QueryPlaceholder;\n"]}
|
|
@@ -25,7 +25,8 @@ function QueryToolbar(_ref) {
|
|
|
25
25
|
displayLayout
|
|
26
26
|
},
|
|
27
27
|
setQuery,
|
|
28
|
-
setDisplayLayout
|
|
28
|
+
setDisplayLayout,
|
|
29
|
+
openPatternSelectionModal
|
|
29
30
|
} = _ref;
|
|
30
31
|
const maxPageInputId = (0, _compose.useInstanceId)(QueryToolbar, 'blocks-query-pagination-max-page-input');
|
|
31
32
|
const displayLayoutControls = [{
|
|
@@ -115,6 +116,10 @@ function QueryToolbar(_ref) {
|
|
|
115
116
|
isDragEnabled: false
|
|
116
117
|
})))
|
|
117
118
|
})), (0, _element.createElement)(_components.ToolbarGroup, {
|
|
119
|
+
className: "wp-block-template-part__block-control-group"
|
|
120
|
+
}, (0, _element.createElement)(_components.ToolbarButton, {
|
|
121
|
+
onClick: openPatternSelectionModal
|
|
122
|
+
}, (0, _i18n.__)('Replace'))), (0, _element.createElement)(_components.ToolbarGroup, {
|
|
118
123
|
controls: displayLayoutControls
|
|
119
124
|
}));
|
|
120
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/query/edit/query-toolbar.js"],"names":["QueryToolbar","attributes","query","displayLayout","setQuery","setDisplayLayout","maxPageInputId","displayLayoutControls","icon","list","title","onClick","type","isActive","grid","columns","inherit","onToggle","settings","value","isNaN","perPage","offset","pages"],"mappings":";;;;;;;;;AAGA;;AAOA;;AACA;;AACA;;AAZA;AACA;AACA;AAYe,SAASA,YAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/query/edit/query-toolbar.js"],"names":["QueryToolbar","attributes","query","displayLayout","setQuery","setDisplayLayout","openPatternSelectionModal","maxPageInputId","displayLayoutControls","icon","list","title","onClick","type","isActive","grid","columns","inherit","onToggle","settings","value","isNaN","perPage","offset","pages"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarGroup,\n\tDropdown,\n\tToolbarButton,\n\tBaseControl,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { settings, list, grid } from '@wordpress/icons';\n\nexport default function QueryToolbar( {\n\tattributes: { query, displayLayout },\n\tsetQuery,\n\tsetDisplayLayout,\n\topenPatternSelectionModal,\n} ) {\n\tconst maxPageInputId = useInstanceId(\n\t\tQueryToolbar,\n\t\t'blocks-query-pagination-max-page-input'\n\t);\n\tconst displayLayoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setDisplayLayout( { type: 'list' } ),\n\t\t\tisActive: displayLayout?.type === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () =>\n\t\t\t\tsetDisplayLayout( {\n\t\t\t\t\ttype: 'flex',\n\t\t\t\t\tcolumns: displayLayout?.columns || 3,\n\t\t\t\t} ),\n\t\t\tisActive: displayLayout?.type === 'flex',\n\t\t},\n\t];\n\treturn (\n\t\t<>\n\t\t\t{ ! query.inherit && (\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tcontentClassName=\"block-library-query-toolbar__popover\"\n\t\t\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ticon={ settings }\n\t\t\t\t\t\t\t\tlabel={ __( 'Display settings' ) }\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<BaseControl>\n\t\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"60px\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Items per Page' ) }\n\t\t\t\t\t\t\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tisNaN( value ) ||\n\t\t\t\t\t\t\t\t\t\t\t\tvalue < 1 ||\n\t\t\t\t\t\t\t\t\t\t\t\tvalue > 100\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\t\t\tperPage: value,\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\tstep=\"1\"\n\t\t\t\t\t\t\t\t\t\tvalue={ query.perPage }\n\t\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t\t\t<BaseControl>\n\t\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"60px\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Offset' ) }\n\t\t\t\t\t\t\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tisNaN( value ) ||\n\t\t\t\t\t\t\t\t\t\t\t\tvalue < 0 ||\n\t\t\t\t\t\t\t\t\t\t\t\tvalue > 100\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsetQuery( { offset: value } );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\t\t\t\t\tvalue={ query.offset }\n\t\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t\t\t\tid={ maxPageInputId }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Limit the pages you want to show, even if the query has more results. To show all pages use 0 (zero).'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t\tid={ maxPageInputId }\n\t\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"60px\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Max page to show' ) }\n\t\t\t\t\t\t\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( isNaN( value ) || value < 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tsetQuery( { pages: value } );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\t\t\t\t\tvalue={ query.pages }\n\t\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t\t<ToolbarGroup className=\"wp-block-template-part__block-control-group\">\n\t\t\t\t<ToolbarButton onClick={ openPatternSelectionModal }>\n\t\t\t\t\t{ __( 'Replace' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup controls={ displayLayoutControls } />\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -10,9 +10,9 @@ const metadata = {
|
|
|
10
10
|
$schema: "https://schemas.wp.org/trunk/block.json",
|
|
11
11
|
apiVersion: 2,
|
|
12
12
|
name: "core/post-comments",
|
|
13
|
-
title: "Post Comments",
|
|
13
|
+
title: "Post Comments (deprecated)",
|
|
14
14
|
category: "theme",
|
|
15
|
-
description: "
|
|
15
|
+
description: "This block is deprecated. Please use the Comments Query Loop block instead.",
|
|
16
16
|
textdomain: "default",
|
|
17
17
|
attributes: {
|
|
18
18
|
textAlign: {
|
|
@@ -41,7 +41,8 @@ const metadata = {
|
|
|
41
41
|
background: true,
|
|
42
42
|
text: true
|
|
43
43
|
}
|
|
44
|
-
}
|
|
44
|
+
},
|
|
45
|
+
inserter: false
|
|
45
46
|
},
|
|
46
47
|
style: ["wp-block-post-comments", "wp-block-buttons", "wp-block-button"]
|
|
47
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/post-comments/index.js"],"names":["postComments","icon","edit","name","metadata","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,IAAIC,IAAzB,QAAqC,kBAArC;AAEA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/post-comments/index.js"],"names":["postComments","icon","edit","name","metadata","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,IAAIC,IAAzB,QAAqC,kBAArC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBJ,EAAAA,IADuB;AAEvBC,EAAAA;AAFuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postComments as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n"]}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import { createElement, Fragment } from "@wordpress/element";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* WordPress dependencies
|
|
5
6
|
*/
|
|
6
7
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
|
-
import { cloneBlock } from '@wordpress/blocks';
|
|
8
|
+
import { store as blocksStore, cloneBlock } from '@wordpress/blocks';
|
|
8
9
|
import { useInstanceId } from '@wordpress/compose';
|
|
9
|
-
import { useEffect } from '@wordpress/element';
|
|
10
|
-
import { BlockControls, InspectorControls, useBlockProps, useSetting, store as blockEditorStore, useInnerBlocksProps, __experimentalBlockPatternSetup as BlockPatternSetup } from '@wordpress/block-editor';
|
|
11
|
-
import { SelectControl } from '@wordpress/components';
|
|
10
|
+
import { useState, useEffect } from '@wordpress/element';
|
|
11
|
+
import { BlockControls, InspectorControls, useBlockProps, useSetting, store as blockEditorStore, useInnerBlocksProps, __experimentalGetMatchingVariation as getMatchingVariation, __experimentalBlockPatternSetup as BlockPatternSetup } from '@wordpress/block-editor';
|
|
12
|
+
import { Button, SelectControl, Placeholder, Modal } from '@wordpress/components';
|
|
12
13
|
import { __ } from '@wordpress/i18n';
|
|
13
14
|
/**
|
|
14
15
|
* Internal dependencies
|
|
@@ -23,7 +24,8 @@ const TEMPLATE = [['core/post-template']];
|
|
|
23
24
|
export function QueryContent(_ref) {
|
|
24
25
|
let {
|
|
25
26
|
attributes,
|
|
26
|
-
setAttributes
|
|
27
|
+
setAttributes,
|
|
28
|
+
openPatternSelectionModal
|
|
27
29
|
} = _ref;
|
|
28
30
|
const {
|
|
29
31
|
queryId,
|
|
@@ -117,7 +119,8 @@ export function QueryContent(_ref) {
|
|
|
117
119
|
}), createElement(BlockControls, null, createElement(QueryToolbar, {
|
|
118
120
|
attributes: attributes,
|
|
119
121
|
setQuery: updateQuery,
|
|
120
|
-
setDisplayLayout: updateDisplayLayout
|
|
122
|
+
setDisplayLayout: updateDisplayLayout,
|
|
123
|
+
openPatternSelectionModal: openPatternSelectionModal
|
|
121
124
|
})), createElement(InspectorControls, {
|
|
122
125
|
__experimentalGroup: "advanced"
|
|
123
126
|
}, createElement(SelectControl, {
|
|
@@ -142,16 +145,79 @@ export function QueryContent(_ref) {
|
|
|
142
145
|
})), createElement(TagName, innerBlocksProps));
|
|
143
146
|
}
|
|
144
147
|
|
|
145
|
-
function QueryPatternSetup(
|
|
148
|
+
function QueryPatternSetup(_ref2) {
|
|
149
|
+
var _blockType$icon;
|
|
150
|
+
|
|
151
|
+
let {
|
|
152
|
+
attributes,
|
|
153
|
+
clientId,
|
|
154
|
+
name,
|
|
155
|
+
openPatternSelectionModal,
|
|
156
|
+
setAttributes
|
|
157
|
+
} = _ref2;
|
|
158
|
+
const [isStartingBlank, setIsStartingBlank] = useState(false);
|
|
159
|
+
const blockProps = useBlockProps();
|
|
160
|
+
const {
|
|
161
|
+
blockType,
|
|
162
|
+
allVariations,
|
|
163
|
+
hasPatterns
|
|
164
|
+
} = useSelect(select => {
|
|
165
|
+
const {
|
|
166
|
+
getBlockVariations,
|
|
167
|
+
getBlockType
|
|
168
|
+
} = select(blocksStore);
|
|
169
|
+
const {
|
|
170
|
+
getBlockRootClientId,
|
|
171
|
+
__experimentalGetPatternsByBlockTypes
|
|
172
|
+
} = select(blockEditorStore);
|
|
173
|
+
const rootClientId = getBlockRootClientId(clientId);
|
|
174
|
+
return {
|
|
175
|
+
blockType: getBlockType(name),
|
|
176
|
+
allVariations: getBlockVariations(name),
|
|
177
|
+
hasPatterns: !!__experimentalGetPatternsByBlockTypes(name, rootClientId).length
|
|
178
|
+
};
|
|
179
|
+
}, [name, clientId]);
|
|
180
|
+
const matchingVariation = getMatchingVariation(attributes, allVariations);
|
|
181
|
+
const icon = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.icon) || (blockType === null || blockType === void 0 ? void 0 : (_blockType$icon = blockType.icon) === null || _blockType$icon === void 0 ? void 0 : _blockType$icon.src);
|
|
182
|
+
const label = (matchingVariation === null || matchingVariation === void 0 ? void 0 : matchingVariation.title) || (blockType === null || blockType === void 0 ? void 0 : blockType.title);
|
|
183
|
+
|
|
184
|
+
if (isStartingBlank) {
|
|
185
|
+
return createElement(QueryPlaceholder, {
|
|
186
|
+
clientId: clientId,
|
|
187
|
+
name: name,
|
|
188
|
+
setAttributes: setAttributes,
|
|
189
|
+
icon: icon,
|
|
190
|
+
label: label
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
return createElement("div", blockProps, createElement(Placeholder, {
|
|
195
|
+
icon: icon,
|
|
196
|
+
label: label,
|
|
197
|
+
instructions: __('Choose a pattern for the query loop or start blank.')
|
|
198
|
+
}, !!hasPatterns && createElement(Button, {
|
|
199
|
+
variant: "primary",
|
|
200
|
+
onClick: openPatternSelectionModal
|
|
201
|
+
}, __('Choose')), createElement(Button, {
|
|
202
|
+
variant: "secondary",
|
|
203
|
+
onClick: () => {
|
|
204
|
+
setIsStartingBlank(true);
|
|
205
|
+
}
|
|
206
|
+
}, __('Start blank'))));
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
const QueryEdit = props => {
|
|
146
210
|
const {
|
|
147
211
|
clientId,
|
|
148
|
-
name
|
|
212
|
+
name
|
|
149
213
|
} = props;
|
|
150
|
-
const
|
|
214
|
+
const [isPatternSelectionModalOpen, setIsPatternSelectionModalOpen] = useState(false);
|
|
151
215
|
const {
|
|
152
216
|
replaceBlock,
|
|
153
217
|
selectBlock
|
|
154
218
|
} = useDispatch(blockEditorStore);
|
|
219
|
+
const hasInnerBlocks = useSelect(select => !!select(blockEditorStore).getBlocks(clientId).length, [clientId]);
|
|
220
|
+
const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;
|
|
155
221
|
|
|
156
222
|
const onBlockPatternSelect = blocks => {
|
|
157
223
|
const clonedBlocks = blocks.map(block => cloneBlock(block));
|
|
@@ -161,25 +227,20 @@ function QueryPatternSetup(props) {
|
|
|
161
227
|
if (firstQueryClientId) {
|
|
162
228
|
selectBlock(firstQueryClientId);
|
|
163
229
|
}
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
return createElement(Fragment, null, createElement(Component, _extends({}, props, {
|
|
233
|
+
openPatternSelectionModal: () => setIsPatternSelectionModalOpen(true)
|
|
234
|
+
})), isPatternSelectionModalOpen && createElement(Modal, {
|
|
235
|
+
className: "block-editor-query-pattern__selection-modal",
|
|
236
|
+
title: __('Choose a pattern'),
|
|
237
|
+
closeLabel: __('Cancel'),
|
|
238
|
+
onRequestClose: () => setIsPatternSelectionModalOpen(false)
|
|
239
|
+
}, createElement(BlockPatternSetup, {
|
|
240
|
+
blockName: name,
|
|
170
241
|
clientId: clientId,
|
|
171
|
-
startBlankComponent: createElement(QueryPlaceholder, props),
|
|
172
242
|
onBlockPatternSelect: onBlockPatternSelect
|
|
173
|
-
}));
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
const QueryEdit = props => {
|
|
177
|
-
const {
|
|
178
|
-
clientId
|
|
179
|
-
} = props;
|
|
180
|
-
const hasInnerBlocks = useSelect(select => !!select(blockEditorStore).getBlocks(clientId).length, [clientId]);
|
|
181
|
-
const Component = hasInnerBlocks ? QueryContent : QueryPatternSetup;
|
|
182
|
-
return createElement(Component, props);
|
|
243
|
+
})));
|
|
183
244
|
};
|
|
184
245
|
|
|
185
246
|
export default QueryEdit;
|