@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.
@@ -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: "Display a post's comments.",
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"]}
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(props) {
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: blockName
234
+ name
170
235
  } = props;
171
- const blockProps = (0, _blockEditor.useBlockProps)();
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
- }; // `startBlankComponent` is what to render when clicking `Start blank`
186
- // or if no matched patterns are found.
187
-
188
-
189
- return (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_blockEditor.__experimentalBlockPatternSetup, {
190
- blockName: blockName,
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
- const QueryPlaceholder = _ref => {
20
- var _blockType$icon;
21
-
19
+ function QueryPlaceholder(_ref) {
22
20
  let {
23
21
  clientId,
24
22
  name,
25
- attributes,
26
- setAttributes
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","attributes","setAttributes","blockType","defaultVariation","scopeVariations","allVariations","select","getBlockVariations","getBlockType","getDefaultBlockVariation","blocksStore","replaceInnerBlocks","blockEditorStore","blockProps","matchingVariation","icon","src","label","title","nextVariation","innerBlocks"],"mappings":";;;;;;;;;AAGA;;AACA;;AAMA;;AAVA;AACA;AACA;AAaA,MAAMA,gBAAgB,GAAG,QAAqD;AAAA;;AAAA,MAAnD;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAZ;AAAkBC,IAAAA,UAAlB;AAA8BC,IAAAA;AAA9B,GAAmD;AAC7E,QAAM;AACLC,IAAAA,SADK;AAELC,IAAAA,gBAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA;AAJK,MAKF,qBACDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,kBADK;AAELC,MAAAA,YAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,aAAF,CAJV;AAMA,WAAO;AACNR,MAAAA,SAAS,EAAEM,YAAY,CAAET,IAAF,CADjB;AAENI,MAAAA,gBAAgB,EAAEM,wBAAwB,CAAEV,IAAF,EAAQ,OAAR,CAFpC;AAGNK,MAAAA,eAAe,EAAEG,kBAAkB,CAAER,IAAF,EAAQ,OAAR,CAH7B;AAINM,MAAAA,aAAa,EAAEE,kBAAkB,CAAER,IAAF;AAJ3B,KAAP;AAMA,GAdE,EAeH,CAAEA,IAAF,CAfG,CALJ;AAsBA,QAAM;AAAEY,IAAAA;AAAF,MAAyB,uBAAaC,kBAAb,CAA/B;AACA,QAAMC,UAAU,GAAG,iCAAnB;AACA,QAAMC,iBAAiB,GAAG,qDAAsBd,UAAtB,EAAkCK,aAAlC,CAA1B;AACA,QAAMU,IAAI,GAAG,CAAAD,iBAAiB,SAAjB,IAAAA,iBAAiB,WAAjB,YAAAA,iBAAiB,CAAEC,IAAnB,MAA2Bb,SAA3B,aAA2BA,SAA3B,0CAA2BA,SAAS,CAAEa,IAAtC,oDAA2B,gBAAiBC,GAA5C,CAAb;AACA,QAAMC,KAAK,GAAG,CAAAH,iBAAiB,SAAjB,IAAAA,iBAAiB,WAAjB,YAAAA,iBAAiB,CAAEI,KAAnB,MAA4BhB,SAA5B,aAA4BA,SAA5B,uBAA4BA,SAAS,CAAEgB,KAAvC,CAAd;AACA,SACC,mCAAUL,UAAV,EACC,4BAAC,+CAAD;AACC,IAAA,IAAI,EAAGE,IADR;AAEC,IAAA,KAAK,EAAGE,KAFT;AAGC,IAAA,UAAU,EAAGb,eAHd;AAIC,IAAA,QAAQ,EAAG,YAAwC;AAAA,UAAtCe,aAAsC,uEAAtBhB,gBAAsB;;AAClD,UAAKgB,aAAa,CAACnB,UAAnB,EAAgC;AAC/BC,QAAAA,aAAa,CAAEkB,aAAa,CAACnB,UAAhB,CAAb;AACA;;AACD,UAAKmB,aAAa,CAACC,WAAnB,EAAiC;AAChCT,QAAAA,kBAAkB,CACjBb,QADiB,EAEjB,iDACCqB,aAAa,CAACC,WADf,CAFiB,EAKjB,KALiB,CAAlB;AAOA;AACD;AAjBF,IADD,CADD;AAuBA,CAnDD;;eAqDevB,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseBlockProps,\n\t__experimentalBlockVariationPicker,\n\t__experimentalGetMatchingVariation as getMatchingVariation,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\nconst QueryPlaceholder = ( { clientId, name, attributes, setAttributes } ) => {\n\tconst {\n\t\tblockType,\n\t\tdefaultVariation,\n\t\tscopeVariations,\n\t\tallVariations,\n\t} = 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\tallVariations: getBlockVariations( name ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\tconst matchingVariation = getMatchingVariation( attributes, allVariations );\n\tconst icon = matchingVariation?.icon || blockType?.icon?.src;\n\tconst label = matchingVariation?.title || blockType?.title;\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"]}
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":"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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} ) {\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 controls={ displayLayoutControls } />\n\t\t</>\n\t);\n}\n"]}
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: "Display a post's comments.",
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"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(props) {
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: blockName
212
+ name
149
213
  } = props;
150
- const blockProps = useBlockProps();
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
- }; // `startBlankComponent` is what to render when clicking `Start blank`
165
- // or if no matched patterns are found.
166
-
167
-
168
- return createElement("div", blockProps, createElement(BlockPatternSetup, {
169
- blockName: blockName,
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;