@wordpress/block-library 9.21.0 → 9.22.0

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.
Files changed (143) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/cover/index.js +1 -1
  3. package/build/cover/index.js.map +1 -1
  4. package/build/details/edit.js +1 -5
  5. package/build/details/edit.js.map +1 -1
  6. package/build/details/index.js +1 -1
  7. package/build/details/index.js.map +1 -1
  8. package/build/navigation/view.js +2 -1
  9. package/build/navigation/view.js.map +1 -1
  10. package/build/navigation-link/edit.js +0 -21
  11. package/build/navigation-link/edit.js.map +1 -1
  12. package/build/navigation-link/index.js +0 -3
  13. package/build/navigation-link/index.js.map +1 -1
  14. package/build/navigation-link/transforms.js +0 -2
  15. package/build/navigation-link/transforms.js.map +1 -1
  16. package/build/navigation-link/update-attributes.js +0 -1
  17. package/build/navigation-link/update-attributes.js.map +1 -1
  18. package/build/navigation-submenu/edit.js +1 -24
  19. package/build/navigation-submenu/edit.js.map +1 -1
  20. package/build/navigation-submenu/index.js +0 -3
  21. package/build/navigation-submenu/index.js.map +1 -1
  22. package/build/post-comments-count/index.js +0 -1
  23. package/build/post-comments-count/index.js.map +1 -1
  24. package/build/post-comments-link/index.js +0 -1
  25. package/build/post-comments-link/index.js.map +1 -1
  26. package/build/post-featured-image/edit.js +15 -5
  27. package/build/post-featured-image/edit.js.map +1 -1
  28. package/build/query/edit/inspector-controls/index.js +47 -59
  29. package/build/query/edit/inspector-controls/index.js.map +1 -1
  30. package/build/query/edit/inspector-controls/parent-control.js +2 -2
  31. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  32. package/build/query/edit/inspector-controls/taxonomy-controls.js +2 -2
  33. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  34. package/build/query/edit/query-content.js +4 -17
  35. package/build/query/edit/query-content.js.map +1 -1
  36. package/build/quote/index.js +1 -1
  37. package/build/quote/index.js.map +1 -1
  38. package/build/social-links/edit.js +29 -31
  39. package/build/social-links/edit.js.map +1 -1
  40. package/build/table/index.js +3 -3
  41. package/build/table/index.js.map +1 -1
  42. package/build/table/transforms.js +11 -3
  43. package/build/table/transforms.js.map +1 -1
  44. package/build/table-of-contents/edit.js +1 -1
  45. package/build/table-of-contents/edit.js.map +1 -1
  46. package/build/table-of-contents/hooks.js +6 -3
  47. package/build/table-of-contents/hooks.js.map +1 -1
  48. package/build-module/cover/index.js +1 -1
  49. package/build-module/cover/index.js.map +1 -1
  50. package/build-module/details/edit.js +1 -5
  51. package/build-module/details/edit.js.map +1 -1
  52. package/build-module/details/index.js +1 -1
  53. package/build-module/details/index.js.map +1 -1
  54. package/build-module/navigation/view.js +2 -1
  55. package/build-module/navigation/view.js.map +1 -1
  56. package/build-module/navigation-link/edit.js +0 -21
  57. package/build-module/navigation-link/edit.js.map +1 -1
  58. package/build-module/navigation-link/index.js +0 -3
  59. package/build-module/navigation-link/index.js.map +1 -1
  60. package/build-module/navigation-link/transforms.js +0 -2
  61. package/build-module/navigation-link/transforms.js.map +1 -1
  62. package/build-module/navigation-link/update-attributes.js +0 -1
  63. package/build-module/navigation-link/update-attributes.js.map +1 -1
  64. package/build-module/navigation-submenu/edit.js +1 -24
  65. package/build-module/navigation-submenu/edit.js.map +1 -1
  66. package/build-module/navigation-submenu/index.js +0 -3
  67. package/build-module/navigation-submenu/index.js.map +1 -1
  68. package/build-module/post-comments-count/index.js +0 -1
  69. package/build-module/post-comments-count/index.js.map +1 -1
  70. package/build-module/post-comments-link/index.js +0 -1
  71. package/build-module/post-comments-link/index.js.map +1 -1
  72. package/build-module/post-featured-image/edit.js +15 -5
  73. package/build-module/post-featured-image/edit.js.map +1 -1
  74. package/build-module/query/edit/inspector-controls/index.js +49 -61
  75. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  76. package/build-module/query/edit/inspector-controls/parent-control.js +2 -2
  77. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  78. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +2 -2
  79. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  80. package/build-module/query/edit/query-content.js +4 -17
  81. package/build-module/query/edit/query-content.js.map +1 -1
  82. package/build-module/quote/index.js +1 -1
  83. package/build-module/quote/index.js.map +1 -1
  84. package/build-module/social-links/edit.js +30 -32
  85. package/build-module/social-links/edit.js.map +1 -1
  86. package/build-module/table/index.js +3 -3
  87. package/build-module/table/index.js.map +1 -1
  88. package/build-module/table/transforms.js +11 -3
  89. package/build-module/table/transforms.js.map +1 -1
  90. package/build-module/table-of-contents/edit.js +1 -1
  91. package/build-module/table-of-contents/edit.js.map +1 -1
  92. package/build-module/table-of-contents/hooks.js +6 -3
  93. package/build-module/table-of-contents/hooks.js.map +1 -1
  94. package/build-style/editor-rtl.css +1 -50
  95. package/build-style/editor.css +1 -50
  96. package/build-style/media-text/style-rtl.css +0 -2
  97. package/build-style/media-text/style.css +0 -2
  98. package/build-style/search/style-rtl.css +1 -0
  99. package/build-style/search/style.css +1 -0
  100. package/build-style/social-links/editor-rtl.css +1 -50
  101. package/build-style/social-links/editor.css +1 -50
  102. package/build-style/style-rtl.css +1 -6
  103. package/build-style/style.css +1 -6
  104. package/build-style/tag-cloud/style-rtl.css +0 -4
  105. package/build-style/tag-cloud/style.css +0 -4
  106. package/package.json +35 -35
  107. package/src/button/index.php +2 -3
  108. package/src/cover/index.js +1 -1
  109. package/src/details/edit.js +6 -8
  110. package/src/details/index.js +1 -1
  111. package/src/file/index.php +2 -3
  112. package/src/latest-comments/index.php +1 -1
  113. package/src/latest-posts/index.php +3 -0
  114. package/src/media-text/style.scss +0 -2
  115. package/src/navigation/index.php +1 -1
  116. package/src/navigation/view.js +2 -1
  117. package/src/navigation-link/block.json +0 -3
  118. package/src/navigation-link/edit.js +1 -22
  119. package/src/navigation-link/index.php +1 -5
  120. package/src/navigation-link/transforms.js +1 -2
  121. package/src/navigation-link/update-attributes.js +0 -1
  122. package/src/navigation-submenu/block.json +0 -3
  123. package/src/navigation-submenu/edit.js +1 -24
  124. package/src/navigation-submenu/index.php +0 -4
  125. package/src/post-comments-count/block.json +0 -1
  126. package/src/post-comments-count/index.php +4 -0
  127. package/src/post-comments-link/block.json +0 -1
  128. package/src/post-comments-link/index.php +4 -0
  129. package/src/post-featured-image/edit.js +94 -77
  130. package/src/query/edit/inspector-controls/index.js +66 -91
  131. package/src/query/edit/inspector-controls/parent-control.js +2 -2
  132. package/src/query/edit/inspector-controls/taxonomy-controls.js +2 -2
  133. package/src/query/edit/query-content.js +7 -16
  134. package/src/quote/index.js +1 -1
  135. package/src/search/index.php +12 -9
  136. package/src/search/style.scss +1 -0
  137. package/src/social-links/edit.js +29 -30
  138. package/src/social-links/editor.scss +1 -59
  139. package/src/table/index.js +3 -3
  140. package/src/table/transforms.js +14 -2
  141. package/src/table-of-contents/edit.js +1 -1
  142. package/src/table-of-contents/hooks.js +5 -2
  143. package/src/tag-cloud/style.scss +0 -5
@@ -35,12 +35,10 @@ function QueryInspectorControls(props) {
35
35
  const {
36
36
  attributes,
37
37
  setQuery,
38
- setDisplayLayout,
39
38
  isSingular
40
39
  } = props;
41
40
  const {
42
- query,
43
- displayLayout
41
+ query
44
42
  } = attributes;
45
43
  const {
46
44
  order,
@@ -94,26 +92,21 @@ function QueryInspectorControls(props) {
94
92
  setQuery(updateQuery);
95
93
  };
96
94
  const [querySearch, setQuerySearch] = (0, _element.useState)(query.search);
97
- const onChangeDebounced = (0, _element.useCallback)((0, _compose.debounce)(() => {
98
- if (query.search !== querySearch) {
95
+ const debouncedQuerySearch = (0, _element.useMemo)(() => {
96
+ return (0, _compose.debounce)(newQuerySearch => {
99
97
  setQuery({
100
- search: querySearch
98
+ search: newQuerySearch
101
99
  });
102
- }
103
- }, 250), [querySearch, query.search]);
104
- (0, _element.useEffect)(() => {
105
- onChangeDebounced();
106
- return onChangeDebounced.cancel;
107
- }, [querySearch, onChangeDebounced]);
100
+ }, 250);
101
+ }, [setQuery]);
108
102
  const orderByOptions = (0, _utils.useOrderByOptions)(postType);
109
- const showInheritControl = !isSingular && (0, _utils.isControlAllowed)(allowedControls, 'inherit');
103
+ const showInheritControl = (0, _utils.isControlAllowed)(allowedControls, 'inherit');
110
104
  const showPostTypeControl = !inherit && (0, _utils.isControlAllowed)(allowedControls, 'postType');
111
105
  const postTypeControlLabel = (0, _i18n.__)('Post type');
112
106
  const postTypeControlHelp = (0, _i18n.__)('Select the type of content to display: posts, pages, or custom post types.');
113
- const showColumnsControl = false;
114
107
  const showOrderControl = !inherit && (0, _utils.isControlAllowed)(allowedControls, 'order');
115
108
  const showStickyControl = !inherit && showSticky && (0, _utils.isControlAllowed)(allowedControls, 'sticky');
116
- const showSettingsPanel = showInheritControl || showPostTypeControl || showColumnsControl || showOrderControl || showStickyControl;
109
+ const showSettingsPanel = showInheritControl || showPostTypeControl || showOrderControl || showStickyControl;
117
110
  const showTaxControl = !!taxonomies?.length && (0, _utils.isControlAllowed)(allowedControls, 'taxQuery');
118
111
  const showAuthorControl = (0, _utils.isControlAllowed)(allowedControls, 'author');
119
112
  const showSearchControl = (0, _utils.isControlAllowed)(allowedControls, 'search');
@@ -136,6 +129,10 @@ function QueryInspectorControls(props) {
136
129
  const showOffSetControl = (0, _utils.isControlAllowed)(allowedControls, 'offset');
137
130
  const showPagesControl = (0, _utils.isControlAllowed)(allowedControls, 'pages');
138
131
  const showDisplayPanel = showPostCountControl || showOffSetControl || showPagesControl;
132
+
133
+ // The block cannot inherit a default WordPress query in singular content (e.g., post, page, 404, blank).
134
+ // Warn users but still permit this type of query for exceptional cases in Classic and Hybrid themes.
135
+ const hasInheritanceWarning = isSingular && inherit;
139
136
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
140
137
  children: [showSettingsPanel && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalToolsPanel, {
141
138
  label: (0, _i18n.__)('Settings'),
@@ -156,24 +153,31 @@ function QueryInspectorControls(props) {
156
153
  inherit: true
157
154
  }),
158
155
  isShownByDefault: true,
159
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalToggleGroupControl, {
160
- __next40pxDefaultSize: true,
161
- __nextHasNoMarginBottom: true,
162
- label: (0, _i18n.__)('Query type'),
163
- isBlock: true,
164
- onChange: value => {
165
- setQuery({
166
- inherit: value === 'default'
167
- });
168
- },
169
- help: inherit ? (0, _i18n.__)('Display a list of posts or custom post types based on the current template.') : (0, _i18n.__)('Display a list of posts or custom post types based on specific criteria.'),
170
- value: !!inherit ? 'default' : 'custom',
171
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
172
- value: "default",
173
- label: (0, _i18n.__)('Default')
174
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
175
- value: "custom",
176
- label: (0, _i18n.__)('Custom')
156
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
157
+ spacing: 4,
158
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalToggleGroupControl, {
159
+ __next40pxDefaultSize: true,
160
+ __nextHasNoMarginBottom: true,
161
+ label: (0, _i18n.__)('Query type'),
162
+ isBlock: true,
163
+ onChange: value => {
164
+ setQuery({
165
+ inherit: value === 'default'
166
+ });
167
+ },
168
+ help: inherit ? (0, _i18n.__)('Display a list of posts or custom post types based on the current template.') : (0, _i18n.__)('Display a list of posts or custom post types based on specific criteria.'),
169
+ value: !!inherit ? 'default' : 'custom',
170
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
171
+ value: "default",
172
+ label: (0, _i18n.__)('Default')
173
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
174
+ value: "custom",
175
+ label: (0, _i18n.__)('Custom')
176
+ })]
177
+ }), hasInheritanceWarning && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Notice, {
178
+ status: "warning",
179
+ isDismissible: false,
180
+ children: (0, _i18n.__)('Cannot inherit the current template query when placed inside the singular content (e.g., post, page, 404, blank).')
177
181
  })]
178
182
  })
179
183
  }), showPostTypeControl && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
@@ -202,30 +206,6 @@ function QueryInspectorControls(props) {
202
206
  label: option.label
203
207
  }, option.value))
204
208
  })
205
- }), showColumnsControl && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
206
- hasValue: () => displayLayout?.columns !== 2,
207
- label: (0, _i18n.__)('Columns'),
208
- onDeselect: () => setDisplayLayout({
209
- columns: 2
210
- }),
211
- isShownByDefault: true,
212
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
213
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RangeControl, {
214
- __nextHasNoMarginBottom: true,
215
- __next40pxDefaultSize: true,
216
- label: (0, _i18n.__)('Columns'),
217
- value: displayLayout.columns,
218
- onChange: value => setDisplayLayout({
219
- columns: value
220
- }),
221
- min: 2,
222
- max: Math.max(6, displayLayout.columns)
223
- }), displayLayout.columns > 6 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Notice, {
224
- status: "warning",
225
- isDismissible: false,
226
- children: (0, _i18n.__)('This column count exceeds the recommended amount and may cause visual breakage.')
227
- })]
228
- })
229
209
  }), showOrderControl && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
230
210
  hasValue: () => order !== 'desc' || orderBy !== 'date',
231
211
  label: (0, _i18n.__)('Order by'),
@@ -331,13 +311,21 @@ function QueryInspectorControls(props) {
331
311
  }), showSearchControl && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
332
312
  hasValue: () => !!querySearch,
333
313
  label: (0, _i18n.__)('Keyword'),
334
- onDeselect: () => setQuerySearch(''),
314
+ onDeselect: () => {
315
+ setQuery({
316
+ search: ''
317
+ });
318
+ setQuerySearch('');
319
+ },
335
320
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
336
321
  __nextHasNoMarginBottom: true,
337
322
  __next40pxDefaultSize: true,
338
323
  label: (0, _i18n.__)('Keyword'),
339
324
  value: querySearch,
340
- onChange: setQuerySearch
325
+ onChange: newQuerySearch => {
326
+ debouncedQuerySearch(newQuerySearch);
327
+ setQuerySearch(newQuerySearch);
328
+ }
341
329
  })
342
330
  }), showParentControl && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
343
331
  hasValue: () => !!parents?.length,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_coreData","_i18n","_compose","_element","_orderControl","_interopRequireDefault","_authorControl","_parentControl","_taxonomyControls","_formatControls","_stickyControl","_perPageControl","_offsetControls","_pagesControl","_utils","_hooks","_jsxRuntime","QueryInspectorControls","props","attributes","setQuery","setDisplayLayout","isSingular","query","displayLayout","order","orderBy","author","authorIds","pages","postType","perPage","offset","sticky","inherit","taxQuery","parents","format","allowedControls","useAllowedControls","showSticky","postTypesTaxonomiesMap","postTypesSelectOptions","postTypeFormatSupportMap","usePostTypes","taxonomies","useTaxonomies","isPostTypeHierarchical","useIsPostTypeHierarchical","onPostTypeChange","newValue","updateQuery","supportedTaxonomies","updatedTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","includes","keys","length","undefined","hasFormatSupport","querySearch","setQuerySearch","useState","search","onChangeDebounced","useCallback","debounce","useEffect","cancel","orderByOptions","useOrderByOptions","showInheritControl","isControlAllowed","showPostTypeControl","postTypeControlLabel","__","postTypeControlHelp","showColumnsControl","showOrderControl","showStickyControl","showSettingsPanel","showTaxControl","showAuthorControl","showSearchControl","showParentControl","postTypeHasFormatSupport","showFormatControl","useSelect","select","themeSupports","coreStore","getThemeSupports","formats","some","type","showFiltersPanel","dropdownMenuProps","useToolsPanelDropdownMenuProps","showPostCountControl","showOffSetControl","showPagesControl","showDisplayPanel","jsxs","Fragment","children","__experimentalToolsPanel","label","resetAll","jsx","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","__experimentalToggleGroupControl","__next40pxDefaultSize","__nextHasNoMarginBottom","isBlock","onChange","value","help","__experimentalToggleGroupControlOption","SelectControl","options","map","option","columns","RangeControl","min","max","Math","Notice","status","isDismissible","default","className","values","TaxonomyControls","TextControl"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tTextControl,\n\tSelectControl,\n\tRangeControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tNotice,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useEffect, useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport OrderControl from './order-control';\nimport AuthorControl from './author-control';\nimport ParentControl from './parent-control';\nimport { TaxonomyControls } from './taxonomy-controls';\nimport FormatControls from './format-controls';\nimport StickyControl from './sticky-control';\nimport PerPageControl from './per-page-control';\nimport OffsetControl from './offset-controls';\nimport PagesControl from './pages-control';\nimport {\n\tusePostTypes,\n\tuseIsPostTypeHierarchical,\n\tuseAllowedControls,\n\tisControlAllowed,\n\tuseTaxonomies,\n\tuseOrderByOptions,\n} from '../../utils';\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\n\nexport default function QueryInspectorControls( props ) {\n\tconst { attributes, setQuery, setDisplayLayout, isSingular } = props;\n\tconst { query, displayLayout } = attributes;\n\tconst {\n\t\torder,\n\t\torderBy,\n\t\tauthor: authorIds,\n\t\tpages,\n\t\tpostType,\n\t\tperPage,\n\t\toffset,\n\t\tsticky,\n\t\tinherit,\n\t\ttaxQuery,\n\t\tparents,\n\t\tformat,\n\t} = query;\n\tconst allowedControls = useAllowedControls( attributes );\n\tconst showSticky = postType === 'post';\n\tconst {\n\t\tpostTypesTaxonomiesMap,\n\t\tpostTypesSelectOptions,\n\t\tpostTypeFormatSupportMap,\n\t} = usePostTypes();\n\tconst taxonomies = useTaxonomies( postType );\n\tconst isPostTypeHierarchical = useIsPostTypeHierarchical( postType );\n\tconst onPostTypeChange = ( newValue ) => {\n\t\tconst updateQuery = { postType: newValue };\n\t\t// We need to dynamically update the `taxQuery` property,\n\t\t// by removing any not supported taxonomy from the query.\n\t\tconst supportedTaxonomies = postTypesTaxonomiesMap[ newValue ];\n\t\tconst updatedTaxQuery = Object.entries( taxQuery || {} ).reduce(\n\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\tif ( supportedTaxonomies.includes( taxonomySlug ) ) {\n\t\t\t\t\taccumulator[ taxonomySlug ] = terms;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t\tupdateQuery.taxQuery = !! Object.keys( updatedTaxQuery ).length\n\t\t\t? updatedTaxQuery\n\t\t\t: undefined;\n\n\t\tif ( newValue !== 'post' ) {\n\t\t\tupdateQuery.sticky = '';\n\t\t}\n\t\t// We need to reset `parents` because they are tied to each post type.\n\t\tupdateQuery.parents = [];\n\t\t// Post types can register post format support with `add_post_type_support`.\n\t\t// But we need to reset the `format` property when switching to post types\n\t\t// that do not support post formats.\n\t\tconst hasFormatSupport = postTypeFormatSupportMap[ newValue ];\n\t\tif ( ! hasFormatSupport ) {\n\t\t\tupdateQuery.format = [];\n\t\t}\n\n\t\tsetQuery( updateQuery );\n\t};\n\tconst [ querySearch, setQuerySearch ] = useState( query.search );\n\tconst onChangeDebounced = useCallback(\n\t\tdebounce( () => {\n\t\t\tif ( query.search !== querySearch ) {\n\t\t\t\tsetQuery( { search: querySearch } );\n\t\t\t}\n\t\t}, 250 ),\n\t\t[ querySearch, query.search ]\n\t);\n\tuseEffect( () => {\n\t\tonChangeDebounced();\n\t\treturn onChangeDebounced.cancel;\n\t}, [ querySearch, onChangeDebounced ] );\n\n\tconst orderByOptions = useOrderByOptions( postType );\n\tconst showInheritControl =\n\t\t! isSingular && isControlAllowed( allowedControls, 'inherit' );\n\tconst showPostTypeControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'postType' );\n\tconst postTypeControlLabel = __( 'Post type' );\n\tconst postTypeControlHelp = __(\n\t\t'Select the type of content to display: posts, pages, or custom post types.'\n\t);\n\tconst showColumnsControl = false;\n\tconst showOrderControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'order' );\n\tconst showStickyControl =\n\t\t! inherit &&\n\t\tshowSticky &&\n\t\tisControlAllowed( allowedControls, 'sticky' );\n\tconst showSettingsPanel =\n\t\tshowInheritControl ||\n\t\tshowPostTypeControl ||\n\t\tshowColumnsControl ||\n\t\tshowOrderControl ||\n\t\tshowStickyControl;\n\tconst showTaxControl =\n\t\t!! taxonomies?.length &&\n\t\tisControlAllowed( allowedControls, 'taxQuery' );\n\tconst showAuthorControl = isControlAllowed( allowedControls, 'author' );\n\tconst showSearchControl = isControlAllowed( allowedControls, 'search' );\n\tconst showParentControl =\n\t\tisControlAllowed( allowedControls, 'parents' ) &&\n\t\tisPostTypeHierarchical;\n\n\tconst postTypeHasFormatSupport = postTypeFormatSupportMap[ postType ];\n\tconst showFormatControl = useSelect(\n\t\t( select ) => {\n\t\t\t// Check if the post type supports post formats and if the control is allowed.\n\t\t\tif (\n\t\t\t\t! postTypeHasFormatSupport ||\n\t\t\t\t! isControlAllowed( allowedControls, 'format' )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\n\t\t\t// If there are no supported formats, getThemeSupports still includes the default 'standard' format,\n\t\t\t// and in this case the control should not be shown since the user has no other formats to choose from.\n\t\t\treturn (\n\t\t\t\tthemeSupports.formats &&\n\t\t\t\tthemeSupports.formats.length > 0 &&\n\t\t\t\tthemeSupports.formats.some( ( type ) => type !== 'standard' )\n\t\t\t);\n\t\t},\n\t\t[ allowedControls, postTypeHasFormatSupport ]\n\t);\n\n\tconst showFiltersPanel =\n\t\tshowTaxControl ||\n\t\tshowAuthorControl ||\n\t\tshowSearchControl ||\n\t\tshowParentControl ||\n\t\tshowFormatControl;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst showPostCountControl = isControlAllowed(\n\t\tallowedControls,\n\t\t'postCount'\n\t);\n\tconst showOffSetControl = isControlAllowed( allowedControls, 'offset' );\n\tconst showPagesControl = isControlAllowed( allowedControls, 'pages' );\n\n\tconst showDisplayPanel =\n\t\tshowPostCountControl || showOffSetControl || showPagesControl;\n\n\treturn (\n\t\t<>\n\t\t\t{ showSettingsPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\tpostType: 'post',\n\t\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\t\tsticky: '',\n\t\t\t\t\t\t\tinherit: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! inherit }\n\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: true } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\tinherit: value === 'default',\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\thelp={\n\t\t\t\t\t\t\t\t\tinherit\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Display a list of posts or custom post types based on the current template.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Display a list of posts or custom post types based on specific criteria.'\n\t\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\tvalue={ !! inherit ? 'default' : 'custom' }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"default\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showPostTypeControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => postType !== 'post' }\n\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => onPostTypeChange( 'post' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postTypesSelectOptions.length > 2 ? (\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\toptions={ postTypesSelectOptions }\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ postTypesSelectOptions.map(\n\t\t\t\t\t\t\t\t\t\t( option ) => (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ option.label }\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) }\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showColumnsControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => displayLayout?.columns !== 2 }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetDisplayLayout( { columns: 2 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\t\tvalue={ displayLayout.columns }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetDisplayLayout( {\n\t\t\t\t\t\t\t\t\t\t\tcolumns: value,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\t\t\tmax={ Math.max( 6, displayLayout.columns ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ displayLayout.columns > 6 && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showOrderControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\torder !== 'desc' || orderBy !== 'date'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { order: 'desc', orderBy: 'date' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<OrderControl\n\t\t\t\t\t\t\t\t{ ...{ order, orderBy, orderByOptions } }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showStickyControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! sticky }\n\t\t\t\t\t\t\tlabel={ __( 'Sticky posts' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { sticky: '' } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<StickyControl\n\t\t\t\t\t\t\t\tvalue={ sticky }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { sticky: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showDisplayPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__display\"\n\t\t\t\t\tlabel={ __( 'Display' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\t\tpages: 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\t\t\t\thasValue={ () => perPage > 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PerPageControl\n\t\t\t\t\t\t\tperPage={ perPage }\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Offset' ) }\n\t\t\t\t\t\thasValue={ () => offset > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { offset: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<OffsetControl\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Max pages to show' ) }\n\t\t\t\t\t\thasValue={ () => pages > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { pages: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PagesControl pages={ pages } onChange={ setQuery } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showFiltersPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__filters\" // unused but kept for backward compatibility\n\t\t\t\t\tlabel={ __( 'Filters' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\tauthor: '',\n\t\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\t\tsearch: '',\n\t\t\t\t\t\t\ttaxQuery: null,\n\t\t\t\t\t\t\tformat: [],\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showTaxControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomies' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tObject.values( taxQuery || {} ).some(\n\t\t\t\t\t\t\t\t\t( terms ) => !! terms.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { taxQuery: null } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TaxonomyControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showAuthorControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! authorIds }\n\t\t\t\t\t\t\tlabel={ __( 'Authors' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { author: '' } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AuthorControl\n\t\t\t\t\t\t\t\tvalue={ authorIds }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSearchControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! querySearch }\n\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuerySearch( '' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\t\tvalue={ querySearch }\n\t\t\t\t\t\t\t\tonChange={ setQuerySearch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showParentControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! parents?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Parents' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { parents: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ParentControl\n\t\t\t\t\t\t\t\tparents={ parents }\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showFormatControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! format?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Formats' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { format: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FormatControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_coreData","_i18n","_compose","_element","_orderControl","_interopRequireDefault","_authorControl","_parentControl","_taxonomyControls","_formatControls","_stickyControl","_perPageControl","_offsetControls","_pagesControl","_utils","_hooks","_jsxRuntime","QueryInspectorControls","props","attributes","setQuery","isSingular","query","order","orderBy","author","authorIds","pages","postType","perPage","offset","sticky","inherit","taxQuery","parents","format","allowedControls","useAllowedControls","showSticky","postTypesTaxonomiesMap","postTypesSelectOptions","postTypeFormatSupportMap","usePostTypes","taxonomies","useTaxonomies","isPostTypeHierarchical","useIsPostTypeHierarchical","onPostTypeChange","newValue","updateQuery","supportedTaxonomies","updatedTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","includes","keys","length","undefined","hasFormatSupport","querySearch","setQuerySearch","useState","search","debouncedQuerySearch","useMemo","debounce","newQuerySearch","orderByOptions","useOrderByOptions","showInheritControl","isControlAllowed","showPostTypeControl","postTypeControlLabel","__","postTypeControlHelp","showOrderControl","showStickyControl","showSettingsPanel","showTaxControl","showAuthorControl","showSearchControl","showParentControl","postTypeHasFormatSupport","showFormatControl","useSelect","select","themeSupports","coreStore","getThemeSupports","formats","some","type","showFiltersPanel","dropdownMenuProps","useToolsPanelDropdownMenuProps","showPostCountControl","showOffSetControl","showPagesControl","showDisplayPanel","hasInheritanceWarning","jsxs","Fragment","children","__experimentalToolsPanel","label","resetAll","jsx","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","__experimentalVStack","spacing","__experimentalToggleGroupControl","__next40pxDefaultSize","__nextHasNoMarginBottom","isBlock","onChange","value","help","__experimentalToggleGroupControlOption","Notice","status","isDismissible","SelectControl","options","map","option","default","className","values","TaxonomyControls","TextControl"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tTextControl,\n\tSelectControl,\n\tNotice,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport OrderControl from './order-control';\nimport AuthorControl from './author-control';\nimport ParentControl from './parent-control';\nimport { TaxonomyControls } from './taxonomy-controls';\nimport FormatControls from './format-controls';\nimport StickyControl from './sticky-control';\nimport PerPageControl from './per-page-control';\nimport OffsetControl from './offset-controls';\nimport PagesControl from './pages-control';\nimport {\n\tusePostTypes,\n\tuseIsPostTypeHierarchical,\n\tuseAllowedControls,\n\tisControlAllowed,\n\tuseTaxonomies,\n\tuseOrderByOptions,\n} from '../../utils';\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\n\nexport default function QueryInspectorControls( props ) {\n\tconst { attributes, setQuery, isSingular } = props;\n\tconst { query } = attributes;\n\tconst {\n\t\torder,\n\t\torderBy,\n\t\tauthor: authorIds,\n\t\tpages,\n\t\tpostType,\n\t\tperPage,\n\t\toffset,\n\t\tsticky,\n\t\tinherit,\n\t\ttaxQuery,\n\t\tparents,\n\t\tformat,\n\t} = query;\n\tconst allowedControls = useAllowedControls( attributes );\n\tconst showSticky = postType === 'post';\n\tconst {\n\t\tpostTypesTaxonomiesMap,\n\t\tpostTypesSelectOptions,\n\t\tpostTypeFormatSupportMap,\n\t} = usePostTypes();\n\tconst taxonomies = useTaxonomies( postType );\n\tconst isPostTypeHierarchical = useIsPostTypeHierarchical( postType );\n\tconst onPostTypeChange = ( newValue ) => {\n\t\tconst updateQuery = { postType: newValue };\n\t\t// We need to dynamically update the `taxQuery` property,\n\t\t// by removing any not supported taxonomy from the query.\n\t\tconst supportedTaxonomies = postTypesTaxonomiesMap[ newValue ];\n\t\tconst updatedTaxQuery = Object.entries( taxQuery || {} ).reduce(\n\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\tif ( supportedTaxonomies.includes( taxonomySlug ) ) {\n\t\t\t\t\taccumulator[ taxonomySlug ] = terms;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t\tupdateQuery.taxQuery = !! Object.keys( updatedTaxQuery ).length\n\t\t\t? updatedTaxQuery\n\t\t\t: undefined;\n\n\t\tif ( newValue !== 'post' ) {\n\t\t\tupdateQuery.sticky = '';\n\t\t}\n\t\t// We need to reset `parents` because they are tied to each post type.\n\t\tupdateQuery.parents = [];\n\t\t// Post types can register post format support with `add_post_type_support`.\n\t\t// But we need to reset the `format` property when switching to post types\n\t\t// that do not support post formats.\n\t\tconst hasFormatSupport = postTypeFormatSupportMap[ newValue ];\n\t\tif ( ! hasFormatSupport ) {\n\t\t\tupdateQuery.format = [];\n\t\t}\n\n\t\tsetQuery( updateQuery );\n\t};\n\tconst [ querySearch, setQuerySearch ] = useState( query.search );\n\tconst debouncedQuerySearch = useMemo( () => {\n\t\treturn debounce( ( newQuerySearch ) => {\n\t\t\tsetQuery( { search: newQuerySearch } );\n\t\t}, 250 );\n\t}, [ setQuery ] );\n\n\tconst orderByOptions = useOrderByOptions( postType );\n\tconst showInheritControl = isControlAllowed( allowedControls, 'inherit' );\n\tconst showPostTypeControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'postType' );\n\tconst postTypeControlLabel = __( 'Post type' );\n\tconst postTypeControlHelp = __(\n\t\t'Select the type of content to display: posts, pages, or custom post types.'\n\t);\n\tconst showOrderControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'order' );\n\tconst showStickyControl =\n\t\t! inherit &&\n\t\tshowSticky &&\n\t\tisControlAllowed( allowedControls, 'sticky' );\n\tconst showSettingsPanel =\n\t\tshowInheritControl ||\n\t\tshowPostTypeControl ||\n\t\tshowOrderControl ||\n\t\tshowStickyControl;\n\tconst showTaxControl =\n\t\t!! taxonomies?.length &&\n\t\tisControlAllowed( allowedControls, 'taxQuery' );\n\tconst showAuthorControl = isControlAllowed( allowedControls, 'author' );\n\tconst showSearchControl = isControlAllowed( allowedControls, 'search' );\n\tconst showParentControl =\n\t\tisControlAllowed( allowedControls, 'parents' ) &&\n\t\tisPostTypeHierarchical;\n\n\tconst postTypeHasFormatSupport = postTypeFormatSupportMap[ postType ];\n\tconst showFormatControl = useSelect(\n\t\t( select ) => {\n\t\t\t// Check if the post type supports post formats and if the control is allowed.\n\t\t\tif (\n\t\t\t\t! postTypeHasFormatSupport ||\n\t\t\t\t! isControlAllowed( allowedControls, 'format' )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\n\t\t\t// If there are no supported formats, getThemeSupports still includes the default 'standard' format,\n\t\t\t// and in this case the control should not be shown since the user has no other formats to choose from.\n\t\t\treturn (\n\t\t\t\tthemeSupports.formats &&\n\t\t\t\tthemeSupports.formats.length > 0 &&\n\t\t\t\tthemeSupports.formats.some( ( type ) => type !== 'standard' )\n\t\t\t);\n\t\t},\n\t\t[ allowedControls, postTypeHasFormatSupport ]\n\t);\n\n\tconst showFiltersPanel =\n\t\tshowTaxControl ||\n\t\tshowAuthorControl ||\n\t\tshowSearchControl ||\n\t\tshowParentControl ||\n\t\tshowFormatControl;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst showPostCountControl = isControlAllowed(\n\t\tallowedControls,\n\t\t'postCount'\n\t);\n\tconst showOffSetControl = isControlAllowed( allowedControls, 'offset' );\n\tconst showPagesControl = isControlAllowed( allowedControls, 'pages' );\n\n\tconst showDisplayPanel =\n\t\tshowPostCountControl || showOffSetControl || showPagesControl;\n\n\t// The block cannot inherit a default WordPress query in singular content (e.g., post, page, 404, blank).\n\t// Warn users but still permit this type of query for exceptional cases in Classic and Hybrid themes.\n\tconst hasInheritanceWarning = isSingular && inherit;\n\n\treturn (\n\t\t<>\n\t\t\t{ showSettingsPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\tpostType: 'post',\n\t\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\t\tsticky: '',\n\t\t\t\t\t\t\tinherit: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! inherit }\n\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: true } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\t\tinherit: value === 'default',\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\tinherit\n\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Display a list of posts or custom post types based on the current template.'\n\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Display a list of posts or custom post types based on specific criteria.'\n\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue={ !! inherit ? 'default' : 'custom' }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tvalue=\"default\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t\t{ hasInheritanceWarning && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Cannot inherit the current template query when placed inside the singular content (e.g., post, page, 404, blank).'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showPostTypeControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => postType !== 'post' }\n\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => onPostTypeChange( 'post' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postTypesSelectOptions.length > 2 ? (\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\toptions={ postTypesSelectOptions }\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ postTypesSelectOptions.map(\n\t\t\t\t\t\t\t\t\t\t( option ) => (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ option.label }\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) }\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showOrderControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\torder !== 'desc' || orderBy !== 'date'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { order: 'desc', orderBy: 'date' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<OrderControl\n\t\t\t\t\t\t\t\t{ ...{ order, orderBy, orderByOptions } }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showStickyControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! sticky }\n\t\t\t\t\t\t\tlabel={ __( 'Sticky posts' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { sticky: '' } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<StickyControl\n\t\t\t\t\t\t\t\tvalue={ sticky }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { sticky: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showDisplayPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__display\"\n\t\t\t\t\tlabel={ __( 'Display' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\t\tpages: 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\t\t\t\thasValue={ () => perPage > 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PerPageControl\n\t\t\t\t\t\t\tperPage={ perPage }\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Offset' ) }\n\t\t\t\t\t\thasValue={ () => offset > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { offset: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<OffsetControl\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Max pages to show' ) }\n\t\t\t\t\t\thasValue={ () => pages > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { pages: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PagesControl pages={ pages } onChange={ setQuery } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showFiltersPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__filters\" // unused but kept for backward compatibility\n\t\t\t\t\tlabel={ __( 'Filters' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\tauthor: '',\n\t\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\t\tsearch: '',\n\t\t\t\t\t\t\ttaxQuery: null,\n\t\t\t\t\t\t\tformat: [],\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showTaxControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomies' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tObject.values( taxQuery || {} ).some(\n\t\t\t\t\t\t\t\t\t( terms ) => !! terms.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { taxQuery: null } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TaxonomyControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showAuthorControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! authorIds }\n\t\t\t\t\t\t\tlabel={ __( 'Authors' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { author: '' } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AuthorControl\n\t\t\t\t\t\t\t\tvalue={ authorIds }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSearchControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! querySearch }\n\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetQuery( { search: '' } );\n\t\t\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\t\tvalue={ querySearch }\n\t\t\t\t\t\t\t\tonChange={ ( newQuerySearch ) => {\n\t\t\t\t\t\t\t\t\tdebouncedQuerySearch( newQuerySearch );\n\t\t\t\t\t\t\t\t\tsetQuerySearch( newQuerySearch );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showParentControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! parents?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Parents' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { parents: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ParentControl\n\t\t\t\t\t\t\t\tparents={ parents }\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showFormatControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! format?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Formats' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { format: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FormatControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -60,7 +60,7 @@ function ParentControl({
60
60
  searchResults: getEntityRecords(...selectorArgs),
61
61
  searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
62
62
  };
63
- }, [search, parents]);
63
+ }, [search, postType, parents]);
64
64
  const currentParents = (0, _data.useSelect)(select => {
65
65
  if (!parents?.length) {
66
66
  return EMPTY_ARRAY;
@@ -73,7 +73,7 @@ function ParentControl({
73
73
  include: parents,
74
74
  per_page: parents.length
75
75
  });
76
- }, [parents]);
76
+ }, [parents, postType]);
77
77
  // Update the `value` state only after the selectors are resolved
78
78
  // to avoid emptying the input when we're changing parents.
79
79
  (0, _element.useEffect)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_data","_coreData","_element","_compose","_utils","_jsxRuntime","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","ParentControl","parents","postType","onChange","search","setSearch","useState","value","setValue","suggestions","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","useSelect","select","getEntityRecords","hasFinishedResolution","coreStore","selectorArgs","orderby","exclude","per_page","currentParents","length","include","useEffect","currentParentsInfo","getEntitiesInfo","mapToIHasNameAndId","sanitizedValue","reduce","accumulator","id","entity","mapById","push","name","entitiesInfo","useMemo","names","getIdByValue","entitiesMappedByName","onParentChange","newValue","ids","Array","from","mapByName","add","Set","jsx","FormTokenField","__next40pxDefaultSize","label","__","onInputChange","__experimentalShowHowTo","__nextHasNoMarginBottom","_default","exports","default"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/parent-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getEntitiesInfo, mapToIHasNameAndId } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,title',\n\tcontext: 'view',\n};\n\nfunction ParentControl( { parents, postType, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'relevance',\n\t\t\t\t\texclude: parents,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, parents ]\n\t);\n\tconst currentParents = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parents?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'postType', postType, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: parents,\n\t\t\t\tper_page: parents.length,\n\t\t\t} );\n\t\t},\n\t\t[ parents ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing parents.\n\tuseEffect( () => {\n\t\tif ( ! parents?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! currentParents?.length ) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentParentsInfo = getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( currentParents, 'title.rendered' )\n\t\t);\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = parents.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = currentParentsInfo.mapById[ id ];\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ parents, currentParents ] );\n\n\tconst entitiesInfo = useMemo( () => {\n\t\tif ( ! searchResults?.length ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( searchResults, 'title.rendered' )\n\t\t);\n\t}, [ searchResults ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( entitiesInfo.names );\n\t}, [ entitiesInfo.names, searchHasResolved ] );\n\n\tconst getIdByValue = ( entitiesMappedByName, entity ) => {\n\t\tconst id = entity?.id || entitiesMappedByName?.[ entity ]?.id;\n\t\tif ( id ) {\n\t\t\treturn id;\n\t\t}\n\t};\n\tconst onParentChange = ( newValue ) => {\n\t\tconst ids = Array.from(\n\t\t\tnewValue.reduce( ( accumulator, entity ) => {\n\t\t\t\t// Verify that new values point to existing entities.\n\t\t\t\tconst id = getIdByValue( entitiesInfo.mapByName, entity );\n\t\t\t\tif ( id ) {\n\t\t\t\t\taccumulator.add( id );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, new Set() )\n\t\t);\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( { parents: ids } );\n\t};\n\treturn (\n\t\t<FormTokenField\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Parents' ) }\n\t\t\tvalue={ value }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ onParentChange }\n\t\t\t__experimentalShowHowTo={ false }\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n\nexport default ParentControl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_data","_coreData","_element","_compose","_utils","_jsxRuntime","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","ParentControl","parents","postType","onChange","search","setSearch","useState","value","setValue","suggestions","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","useSelect","select","getEntityRecords","hasFinishedResolution","coreStore","selectorArgs","orderby","exclude","per_page","currentParents","length","include","useEffect","currentParentsInfo","getEntitiesInfo","mapToIHasNameAndId","sanitizedValue","reduce","accumulator","id","entity","mapById","push","name","entitiesInfo","useMemo","names","getIdByValue","entitiesMappedByName","onParentChange","newValue","ids","Array","from","mapByName","add","Set","jsx","FormTokenField","__next40pxDefaultSize","label","__","onInputChange","__experimentalShowHowTo","__nextHasNoMarginBottom","_default","exports","default"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/parent-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getEntitiesInfo, mapToIHasNameAndId } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,title',\n\tcontext: 'view',\n};\n\nfunction ParentControl( { parents, postType, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'relevance',\n\t\t\t\t\texclude: parents,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, postType, parents ]\n\t);\n\tconst currentParents = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parents?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'postType', postType, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: parents,\n\t\t\t\tper_page: parents.length,\n\t\t\t} );\n\t\t},\n\t\t[ parents, postType ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing parents.\n\tuseEffect( () => {\n\t\tif ( ! parents?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! currentParents?.length ) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentParentsInfo = getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( currentParents, 'title.rendered' )\n\t\t);\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = parents.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = currentParentsInfo.mapById[ id ];\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ parents, currentParents ] );\n\n\tconst entitiesInfo = useMemo( () => {\n\t\tif ( ! searchResults?.length ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( searchResults, 'title.rendered' )\n\t\t);\n\t}, [ searchResults ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( entitiesInfo.names );\n\t}, [ entitiesInfo.names, searchHasResolved ] );\n\n\tconst getIdByValue = ( entitiesMappedByName, entity ) => {\n\t\tconst id = entity?.id || entitiesMappedByName?.[ entity ]?.id;\n\t\tif ( id ) {\n\t\t\treturn id;\n\t\t}\n\t};\n\tconst onParentChange = ( newValue ) => {\n\t\tconst ids = Array.from(\n\t\t\tnewValue.reduce( ( accumulator, entity ) => {\n\t\t\t\t// Verify that new values point to existing entities.\n\t\t\t\tconst id = getIdByValue( entitiesInfo.mapByName, entity );\n\t\t\t\tif ( id ) {\n\t\t\t\t\taccumulator.add( id );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, new Set() )\n\t\t);\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( { parents: ids } );\n\t};\n\treturn (\n\t\t<FormTokenField\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Parents' ) }\n\t\t\tvalue={ value }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ onParentChange }\n\t\t\t__experimentalShowHowTo={ false }\n\t\t\t__nextHasNoMarginBottom\n\t\t/>\n\t);\n}\n\nexport default ParentControl;\n"],"mappings":"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","ignoreList":[]}
@@ -121,7 +121,7 @@ function TaxonomyItem({
121
121
  searchResults: getEntityRecords(...selectorArgs),
122
122
  searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
123
123
  };
124
- }, [search, termIds]);
124
+ }, [search, taxonomy.slug, termIds]);
125
125
  // `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.
126
126
  // They are used to extract the terms' names to populate the `FormTokenField` properly
127
127
  // and to sanitize the provided `termIds`, by setting only the ones that exist.
@@ -137,7 +137,7 @@ function TaxonomyItem({
137
137
  include: termIds,
138
138
  per_page: termIds.length
139
139
  });
140
- }, [termIds]);
140
+ }, [taxonomy.slug, termIds]);
141
141
  // Update the `value` state only after the selectors are resolved
142
142
  // to avoid emptying the input when we're changing terms.
143
143
  (0, _element.useEffect)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_coreData","_element","_compose","_htmlEntities","_utils","_jsxRuntime","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","getTermIdByTermValue","terms","termValue","termId","id","find","term","name","termValueLower","toLocaleLowerCase","TaxonomyControls","onChange","query","postType","taxQuery","taxonomies","useTaxonomies","length","jsx","__experimentalVStack","spacing","children","map","taxonomy","termIds","slug","handleChange","newTermIds","TaxonomyItem","search","setSearch","useState","value","setValue","suggestions","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","useSelect","select","getEntityRecords","hasFinishedResolution","coreStore","selectorArgs","orderby","exclude","per_page","existingTerms","include","useEffect","sanitizedValue","reduce","accumulator","entity","push","result","onTermsChange","newTermValues","Set","add","Array","from","className","FormTokenField","label","onInputChange","displayTransform","decodeEntities","__experimentalShowHowTo","__nextHasNoMarginBottom","__next40pxDefaultSize"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/taxonomy-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFormTokenField,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { useTaxonomies } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\n// Helper function to get the term id based on user input in terms `FormTokenField`.\nconst getTermIdByTermValue = ( terms, termValue ) => {\n\t// First we check for exact match by `term.id` or case sensitive `term.name` match.\n\tconst termId =\n\t\ttermValue?.id || terms?.find( ( term ) => term.name === termValue )?.id;\n\tif ( termId ) {\n\t\treturn termId;\n\t}\n\n\t/**\n\t * Here we make an extra check for entered terms in a non case sensitive way,\n\t * to match user expectations, due to `FormTokenField` behaviour that shows\n\t * suggestions which are case insensitive.\n\t *\n\t * Although WP tries to discourage users to add terms with the same name (case insensitive),\n\t * it's still possible if you manually change the name, as long as the terms have different slugs.\n\t * In this edge case we always apply the first match from the terms list.\n\t */\n\tconst termValueLower = termValue.toLocaleLowerCase();\n\treturn terms?.find(\n\t\t( term ) => term.name.toLocaleLowerCase() === termValueLower\n\t)?.id;\n};\n\nexport function TaxonomyControls( { onChange, query } ) {\n\tconst { postType, taxQuery } = query;\n\n\tconst taxonomies = useTaxonomies( postType );\n\tif ( ! taxonomies || taxonomies.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ taxonomies.map( ( taxonomy ) => {\n\t\t\t\tconst termIds = taxQuery?.[ taxonomy.slug ] || [];\n\t\t\t\tconst handleChange = ( newTermIds ) =>\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\ttaxQuery: {\n\t\t\t\t\t\t\t...taxQuery,\n\t\t\t\t\t\t\t[ taxonomy.slug ]: newTermIds,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\treturn (\n\t\t\t\t\t<TaxonomyItem\n\t\t\t\t\t\tkey={ taxonomy.slug }\n\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\ttermIds={ termIds }\n\t\t\t\t\t\tonChange={ handleChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n\n/**\n * Renders a `FormTokenField` for a given taxonomy.\n *\n * @param {Object} props The props for the component.\n * @param {Object} props.taxonomy The taxonomy object.\n * @param {number[]} props.termIds An array with the block's term ids for the given taxonomy.\n * @param {Function} props.onChange Callback `onChange` function.\n * @return {JSX.Element} The rendered component.\n */\nfunction TaxonomyItem( { taxonomy, termIds, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'name',\n\t\t\t\t\texclude: termIds,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, termIds ]\n\t);\n\t// `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.\n\t// They are used to extract the terms' names to populate the `FormTokenField` properly\n\t// and to sanitize the provided `termIds`, by setting only the ones that exist.\n\tconst existingTerms = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! termIds?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'taxonomy', taxonomy.slug, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: termIds,\n\t\t\t\tper_page: termIds.length,\n\t\t\t} );\n\t\t},\n\t\t[ termIds ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing terms.\n\tuseEffect( () => {\n\t\tif ( ! termIds?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! existingTerms?.length ) {\n\t\t\treturn;\n\t\t}\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = termIds.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = existingTerms.find( ( term ) => term.id === id );\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ termIds, existingTerms ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( searchResults.map( ( result ) => result.name ) );\n\t}, [ searchResults, searchHasResolved ] );\n\tconst onTermsChange = ( newTermValues ) => {\n\t\tconst newTermIds = new Set();\n\t\tfor ( const termValue of newTermValues ) {\n\t\t\tconst termId = getTermIdByTermValue( searchResults, termValue );\n\t\t\tif ( termId ) {\n\t\t\t\tnewTermIds.add( termId );\n\t\t\t}\n\t\t}\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( Array.from( newTermIds ) );\n\t};\n\treturn (\n\t\t<div className=\"block-library-query-inspector__taxonomy-control\">\n\t\t\t<FormTokenField\n\t\t\t\tlabel={ taxonomy.name }\n\t\t\t\tvalue={ value }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tdisplayTransform={ decodeEntities }\n\t\t\t\tonChange={ onTermsChange }\n\t\t\t\t__experimentalShowHowTo={ false }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_coreData","_element","_compose","_htmlEntities","_utils","_jsxRuntime","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","getTermIdByTermValue","terms","termValue","termId","id","find","term","name","termValueLower","toLocaleLowerCase","TaxonomyControls","onChange","query","postType","taxQuery","taxonomies","useTaxonomies","length","jsx","__experimentalVStack","spacing","children","map","taxonomy","termIds","slug","handleChange","newTermIds","TaxonomyItem","search","setSearch","useState","value","setValue","suggestions","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","useSelect","select","getEntityRecords","hasFinishedResolution","coreStore","selectorArgs","orderby","exclude","per_page","existingTerms","include","useEffect","sanitizedValue","reduce","accumulator","entity","push","result","onTermsChange","newTermValues","Set","add","Array","from","className","FormTokenField","label","onInputChange","displayTransform","decodeEntities","__experimentalShowHowTo","__nextHasNoMarginBottom","__next40pxDefaultSize"],"sources":["@wordpress/block-library/src/query/edit/inspector-controls/taxonomy-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFormTokenField,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { useTaxonomies } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\n// Helper function to get the term id based on user input in terms `FormTokenField`.\nconst getTermIdByTermValue = ( terms, termValue ) => {\n\t// First we check for exact match by `term.id` or case sensitive `term.name` match.\n\tconst termId =\n\t\ttermValue?.id || terms?.find( ( term ) => term.name === termValue )?.id;\n\tif ( termId ) {\n\t\treturn termId;\n\t}\n\n\t/**\n\t * Here we make an extra check for entered terms in a non case sensitive way,\n\t * to match user expectations, due to `FormTokenField` behaviour that shows\n\t * suggestions which are case insensitive.\n\t *\n\t * Although WP tries to discourage users to add terms with the same name (case insensitive),\n\t * it's still possible if you manually change the name, as long as the terms have different slugs.\n\t * In this edge case we always apply the first match from the terms list.\n\t */\n\tconst termValueLower = termValue.toLocaleLowerCase();\n\treturn terms?.find(\n\t\t( term ) => term.name.toLocaleLowerCase() === termValueLower\n\t)?.id;\n};\n\nexport function TaxonomyControls( { onChange, query } ) {\n\tconst { postType, taxQuery } = query;\n\n\tconst taxonomies = useTaxonomies( postType );\n\tif ( ! taxonomies || taxonomies.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ taxonomies.map( ( taxonomy ) => {\n\t\t\t\tconst termIds = taxQuery?.[ taxonomy.slug ] || [];\n\t\t\t\tconst handleChange = ( newTermIds ) =>\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\ttaxQuery: {\n\t\t\t\t\t\t\t...taxQuery,\n\t\t\t\t\t\t\t[ taxonomy.slug ]: newTermIds,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\treturn (\n\t\t\t\t\t<TaxonomyItem\n\t\t\t\t\t\tkey={ taxonomy.slug }\n\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\ttermIds={ termIds }\n\t\t\t\t\t\tonChange={ handleChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n\n/**\n * Renders a `FormTokenField` for a given taxonomy.\n *\n * @param {Object} props The props for the component.\n * @param {Object} props.taxonomy The taxonomy object.\n * @param {number[]} props.termIds An array with the block's term ids for the given taxonomy.\n * @param {Function} props.onChange Callback `onChange` function.\n * @return {JSX.Element} The rendered component.\n */\nfunction TaxonomyItem( { taxonomy, termIds, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'name',\n\t\t\t\t\texclude: termIds,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, taxonomy.slug, termIds ]\n\t);\n\t// `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.\n\t// They are used to extract the terms' names to populate the `FormTokenField` properly\n\t// and to sanitize the provided `termIds`, by setting only the ones that exist.\n\tconst existingTerms = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! termIds?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'taxonomy', taxonomy.slug, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: termIds,\n\t\t\t\tper_page: termIds.length,\n\t\t\t} );\n\t\t},\n\t\t[ taxonomy.slug, termIds ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing terms.\n\tuseEffect( () => {\n\t\tif ( ! termIds?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! existingTerms?.length ) {\n\t\t\treturn;\n\t\t}\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = termIds.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = existingTerms.find( ( term ) => term.id === id );\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ termIds, existingTerms ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( searchResults.map( ( result ) => result.name ) );\n\t}, [ searchResults, searchHasResolved ] );\n\tconst onTermsChange = ( newTermValues ) => {\n\t\tconst newTermIds = new Set();\n\t\tfor ( const termValue of newTermValues ) {\n\t\t\tconst termId = getTermIdByTermValue( searchResults, termValue );\n\t\t\tif ( termId ) {\n\t\t\t\tnewTermIds.add( termId );\n\t\t\t}\n\t\t}\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( Array.from( newTermIds ) );\n\t};\n\treturn (\n\t\t<div className=\"block-library-query-inspector__taxonomy-control\">\n\t\t\t<FormTokenField\n\t\t\t\tlabel={ taxonomy.name }\n\t\t\t\tvalue={ value }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tdisplayTransform={ decodeEntities }\n\t\t\t\tonChange={ onTermsChange }\n\t\t\t\t__experimentalShowHowTo={ false }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -39,7 +39,6 @@ function QueryContent({
39
39
  const {
40
40
  queryId,
41
41
  query,
42
- displayLayout,
43
42
  enhancedPagination,
44
43
  tagName: TagName = 'div',
45
44
  query: {
@@ -93,12 +92,12 @@ function QueryContent({
93
92
  // Changes in query property (which is an object) need to be in the same callback,
94
93
  // because updates are batched after the render and changes in different query properties
95
94
  // would cause to override previous wanted changes.
96
- const updateQuery = (0, _element.useCallback)(newQuery => setAttributes({
95
+ const updateQuery = (0, _element.useCallback)(newQuery => setAttributes(prevAttributes => ({
97
96
  query: {
98
- ...query,
97
+ ...prevAttributes.query,
99
98
  ...newQuery
100
99
  }
101
- }), [query, setAttributes]);
100
+ })), [setAttributes]);
102
101
  (0, _element.useEffect)(() => {
103
102
  const newQuery = {};
104
103
  // When we inherit from global query always need to set the `perPage`
@@ -108,16 +107,11 @@ function QueryContent({
108
107
  } else if (!query.perPage && postsPerPage) {
109
108
  newQuery.perPage = postsPerPage;
110
109
  }
111
- // We need to reset the `inherit` value if in a singular template, as queries
112
- // are not inherited when in singular content (e.g. post, page, 404, blank).
113
- if (isSingular && query.inherit) {
114
- newQuery.inherit = false;
115
- }
116
110
  if (!!Object.keys(newQuery).length) {
117
111
  __unstableMarkNextChangeAsNotPersistent();
118
112
  updateQuery(newQuery);
119
113
  }
120
- }, [query.perPage, query.inherit, postsPerPage, inherit, isSingular, __unstableMarkNextChangeAsNotPersistent, updateQuery]);
114
+ }, [query.perPage, inherit, postsPerPage, __unstableMarkNextChangeAsNotPersistent, updateQuery]);
121
115
  // We need this for multi-query block pagination.
122
116
  // Query parameters for each block are scoped to their ID.
123
117
  (0, _element.useEffect)(() => {
@@ -128,12 +122,6 @@ function QueryContent({
128
122
  });
129
123
  }
130
124
  }, [queryId, instanceId, __unstableMarkNextChangeAsNotPersistent, setAttributes]);
131
- const updateDisplayLayout = newDisplayLayout => setAttributes({
132
- displayLayout: {
133
- ...displayLayout,
134
- ...newDisplayLayout
135
- }
136
- });
137
125
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
138
126
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_enhancedPaginationModal.default, {
139
127
  attributes: attributes,
@@ -144,7 +132,6 @@ function QueryContent({
144
132
  name: name,
145
133
  attributes: attributes,
146
134
  setQuery: updateQuery,
147
- setDisplayLayout: updateDisplayLayout,
148
135
  setAttributes: setAttributes,
149
136
  clientId: clientId,
150
137
  isSingular: isSingular
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_compose","_element","_blockEditor","_components","_i18n","_coreData","_enhancedPaginationControl","_interopRequireDefault","_inspectorControls","_enhancedPaginationModal","_utils","_queryToolbar","_messages","_jsxRuntime","DEFAULTS_POSTS_PER_PAGE","TEMPLATE","QueryContent","attributes","setAttributes","clientId","context","name","queryId","query","displayLayout","enhancedPagination","tagName","TagName","inherit","templateSlug","isSingular","getQueryContextFromTemplate","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","instanceId","useInstanceId","blockProps","useBlockProps","innerBlocksProps","useInnerBlocksProps","template","postsPerPage","useSelect","select","getSettings","getEntityRecord","getEntityRecordEdits","canUser","coreStore","settingPerPage","kind","posts_per_page","editedSettingPerPage","updateQuery","useCallback","newQuery","useEffect","perPage","Object","keys","length","Number","isFinite","updateDisplayLayout","newDisplayLayout","jsxs","Fragment","children","jsx","default","InspectorControls","setQuery","setDisplayLayout","BlockControls","group","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","__","options","value","onChange","help","htmlElementMessages"],"sources":["@wordpress/block-library/src/query/edit/query-content.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useEffect, useCallback } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport EnhancedPaginationControl from './inspector-controls/enhanced-pagination-control';\nimport QueryInspectorControls from './inspector-controls';\nimport EnhancedPaginationModal from './enhanced-pagination-modal';\nimport { getQueryContextFromTemplate } from '../utils';\nimport QueryToolbar from './query-toolbar';\nimport { htmlElementMessages } from '../../utils/messages';\n\nconst DEFAULTS_POSTS_PER_PAGE = 3;\n\nconst TEMPLATE = [ [ 'core/post-template' ] ];\nexport default function QueryContent( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tcontext,\n\tname,\n} ) {\n\tconst {\n\t\tqueryId,\n\t\tquery,\n\t\tdisplayLayout,\n\t\tenhancedPagination,\n\t\ttagName: TagName = 'div',\n\t\tquery: { inherit } = {},\n\t} = attributes;\n\tconst { templateSlug } = context;\n\tconst { isSingular } = getQueryContextFromTemplate( templateSlug );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst instanceId = useInstanceId( QueryContent );\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\tconst { postsPerPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { getEntityRecord, getEntityRecordEdits, canUser } =\n\t\t\tselect( coreStore );\n\t\tconst settingPerPage = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? +getEntityRecord( 'root', 'site' )?.posts_per_page\n\t\t\t: +getSettings().postsPerPage;\n\n\t\t// Gets changes made via the template area posts per page setting. These won't be saved\n\t\t// until the page is saved, but we should reflect this setting within the query loops\n\t\t// that inherit it.\n\t\tconst editedSettingPerPage = +getEntityRecordEdits( 'root', 'site' )\n\t\t\t?.posts_per_page;\n\n\t\treturn {\n\t\t\tpostsPerPage:\n\t\t\t\teditedSettingPerPage ||\n\t\t\t\tsettingPerPage ||\n\t\t\t\tDEFAULTS_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\tconst updateQuery = useCallback(\n\t\t( newQuery ) => setAttributes( { query: { ...query, ...newQuery } } ),\n\t\t[ query, setAttributes ]\n\t);\n\tuseEffect( () => {\n\t\tconst newQuery = {};\n\t\t// When we inherit from global query always need to set the `perPage`\n\t\t// based on the reading settings.\n\t\tif ( inherit && query.perPage !== postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t} else if ( ! query.perPage && postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t}\n\t\t// We need to reset the `inherit` value if in a singular template, as queries\n\t\t// are not inherited when in singular content (e.g. post, page, 404, blank).\n\t\tif ( isSingular && query.inherit ) {\n\t\t\tnewQuery.inherit = false;\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}, [\n\t\tquery.perPage,\n\t\tquery.inherit,\n\t\tpostsPerPage,\n\t\tinherit,\n\t\tisSingular,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tupdateQuery,\n\t] );\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}, [\n\t\tqueryId,\n\t\tinstanceId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetAttributes,\n\t] );\n\tconst updateDisplayLayout = ( newDisplayLayout ) =>\n\t\tsetAttributes( {\n\t\t\tdisplayLayout: { ...displayLayout, ...newDisplayLayout },\n\t\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<EnhancedPaginationModal\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<QueryInspectorControls\n\t\t\t\t\tname={ name }\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\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisSingular={ isSingular }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls>\n\t\t\t\t<QueryToolbar attributes={ attributes } clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\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\thelp={ htmlElementMessages[ TagName ] }\n\t\t\t\t/>\n\t\t\t\t<EnhancedPaginationControl\n\t\t\t\t\tenhancedPagination={ enhancedPagination }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_compose","_element","_blockEditor","_components","_i18n","_coreData","_enhancedPaginationControl","_interopRequireDefault","_inspectorControls","_enhancedPaginationModal","_utils","_queryToolbar","_messages","_jsxRuntime","DEFAULTS_POSTS_PER_PAGE","TEMPLATE","QueryContent","attributes","setAttributes","clientId","context","name","queryId","query","enhancedPagination","tagName","TagName","inherit","templateSlug","isSingular","getQueryContextFromTemplate","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","instanceId","useInstanceId","blockProps","useBlockProps","innerBlocksProps","useInnerBlocksProps","template","postsPerPage","useSelect","select","getSettings","getEntityRecord","getEntityRecordEdits","canUser","coreStore","settingPerPage","kind","posts_per_page","editedSettingPerPage","updateQuery","useCallback","newQuery","prevAttributes","useEffect","perPage","Object","keys","length","Number","isFinite","jsxs","Fragment","children","jsx","default","InspectorControls","setQuery","BlockControls","group","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","__","options","value","onChange","help","htmlElementMessages"],"sources":["@wordpress/block-library/src/query/edit/query-content.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useEffect, useCallback } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport EnhancedPaginationControl from './inspector-controls/enhanced-pagination-control';\nimport QueryInspectorControls from './inspector-controls';\nimport EnhancedPaginationModal from './enhanced-pagination-modal';\nimport { getQueryContextFromTemplate } from '../utils';\nimport QueryToolbar from './query-toolbar';\nimport { htmlElementMessages } from '../../utils/messages';\n\nconst DEFAULTS_POSTS_PER_PAGE = 3;\n\nconst TEMPLATE = [ [ 'core/post-template' ] ];\nexport default function QueryContent( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tcontext,\n\tname,\n} ) {\n\tconst {\n\t\tqueryId,\n\t\tquery,\n\t\tenhancedPagination,\n\t\ttagName: TagName = 'div',\n\t\tquery: { inherit } = {},\n\t} = attributes;\n\tconst { templateSlug } = context;\n\tconst { isSingular } = getQueryContextFromTemplate( templateSlug );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst instanceId = useInstanceId( QueryContent );\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\tconst { postsPerPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { getEntityRecord, getEntityRecordEdits, canUser } =\n\t\t\tselect( coreStore );\n\t\tconst settingPerPage = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? +getEntityRecord( 'root', 'site' )?.posts_per_page\n\t\t\t: +getSettings().postsPerPage;\n\n\t\t// Gets changes made via the template area posts per page setting. These won't be saved\n\t\t// until the page is saved, but we should reflect this setting within the query loops\n\t\t// that inherit it.\n\t\tconst editedSettingPerPage = +getEntityRecordEdits( 'root', 'site' )\n\t\t\t?.posts_per_page;\n\n\t\treturn {\n\t\t\tpostsPerPage:\n\t\t\t\teditedSettingPerPage ||\n\t\t\t\tsettingPerPage ||\n\t\t\t\tDEFAULTS_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\tconst updateQuery = useCallback(\n\t\t( newQuery ) =>\n\t\t\tsetAttributes( ( prevAttributes ) => ( {\n\t\t\t\tquery: { ...prevAttributes.query, ...newQuery },\n\t\t\t} ) ),\n\t\t[ setAttributes ]\n\t);\n\tuseEffect( () => {\n\t\tconst newQuery = {};\n\t\t// When we inherit from global query always need to set the `perPage`\n\t\t// based on the reading settings.\n\t\tif ( inherit && query.perPage !== postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t} else if ( ! query.perPage && postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t}\n\n\t\tif ( !! Object.keys( newQuery ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateQuery( newQuery );\n\t\t}\n\t}, [\n\t\tquery.perPage,\n\t\tinherit,\n\t\tpostsPerPage,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tupdateQuery,\n\t] );\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}, [\n\t\tqueryId,\n\t\tinstanceId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetAttributes,\n\t] );\n\n\treturn (\n\t\t<>\n\t\t\t<EnhancedPaginationModal\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<QueryInspectorControls\n\t\t\t\t\tname={ name }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisSingular={ isSingular }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls>\n\t\t\t\t<QueryToolbar attributes={ attributes } clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\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\thelp={ htmlElementMessages[ TagName ] }\n\t\t\t\t/>\n\t\t\t\t<EnhancedPaginationControl\n\t\t\t\t\tenhancedPagination={ enhancedPagination }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAOA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAKA,IAAAO,0BAAA,GAAAC,sBAAA,CAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAD,sBAAA,CAAAR,OAAA;AACA,IAAAU,wBAAA,GAAAF,sBAAA,CAAAR,OAAA;AACA,IAAAW,MAAA,GAAAX,OAAA;AACA,IAAAY,aAAA,GAAAJ,sBAAA,CAAAR,OAAA;AACA,IAAAa,SAAA,GAAAb,OAAA;AAA2D,IAAAc,WAAA,GAAAd,OAAA;AAzB3D;AACA;AACA;;AAeA;AACA;AACA;;AAQA,MAAMe,uBAAuB,GAAG,CAAC;AAEjC,MAAMC,QAAQ,GAAG,CAAE,CAAE,oBAAoB,CAAE,CAAE;AAC9B,SAASC,YAAYA,CAAE;EACrCC,UAAU;EACVC,aAAa;EACbC,QAAQ;EACRC,OAAO;EACPC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,OAAO;IACPC,KAAK;IACLC,kBAAkB;IAClBC,OAAO,EAAEC,OAAO,GAAG,KAAK;IACxBH,KAAK,EAAE;MAAEI;IAAQ,CAAC,GAAG,CAAC;EACvB,CAAC,GAAGV,UAAU;EACd,MAAM;IAAEW;EAAa,CAAC,GAAGR,OAAO;EAChC,MAAM;IAAES;EAAW,CAAC,GAAG,IAAAC,kCAA2B,EAAEF,YAAa,CAAC;EAClE,MAAM;IAAEG;EAAwC,CAAC,GAChD,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAChC,MAAMC,UAAU,GAAG,IAAAC,sBAAa,EAAEnB,YAAa,CAAC;EAChD,MAAMoB,UAAU,GAAG,IAAAC,0BAAa,EAAC,CAAC;EAClC,MAAMC,gBAAgB,GAAG,IAAAC,gCAAmB,EAAEH,UAAU,EAAE;IACzDI,QAAQ,EAAEzB;EACX,CAAE,CAAC;EACH,MAAM;IAAE0B;EAAa,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACjD,MAAM;MAAEC;IAAY,CAAC,GAAGD,MAAM,CAAEV,kBAAiB,CAAC;IAClD,MAAM;MAAEY,eAAe;MAAEC,oBAAoB;MAAEC;IAAQ,CAAC,GACvDJ,MAAM,CAAEK,eAAU,CAAC;IACpB,MAAMC,cAAc,GAAGF,OAAO,CAAE,MAAM,EAAE;MACvCG,IAAI,EAAE,MAAM;MACZ7B,IAAI,EAAE;IACP,CAAE,CAAC,GACA,CAACwB,eAAe,CAAE,MAAM,EAAE,MAAO,CAAC,EAAEM,cAAc,GAClD,CAACP,WAAW,CAAC,CAAC,CAACH,YAAY;;IAE9B;IACA;IACA;IACA,MAAMW,oBAAoB,GAAG,CAACN,oBAAoB,CAAE,MAAM,EAAE,MAAO,CAAC,EACjEK,cAAc;IAEjB,OAAO;MACNV,YAAY,EACXW,oBAAoB,IACpBH,cAAc,IACdnC;IACF,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA,MAAMuC,WAAW,GAAG,IAAAC,oBAAW,EAC5BC,QAAQ,IACTrC,aAAa,CAAIsC,cAAc,KAAQ;IACtCjC,KAAK,EAAE;MAAE,GAAGiC,cAAc,CAACjC,KAAK;MAAE,GAAGgC;IAAS;EAC/C,CAAC,CAAG,CAAC,EACN,CAAErC,aAAa,CAChB,CAAC;EACD,IAAAuC,kBAAS,EAAE,MAAM;IAChB,MAAMF,QAAQ,GAAG,CAAC,CAAC;IACnB;IACA;IACA,IAAK5B,OAAO,IAAIJ,KAAK,CAACmC,OAAO,KAAKjB,YAAY,EAAG;MAChDc,QAAQ,CAACG,OAAO,GAAGjB,YAAY;IAChC,CAAC,MAAM,IAAK,CAAElB,KAAK,CAACmC,OAAO,IAAIjB,YAAY,EAAG;MAC7Cc,QAAQ,CAACG,OAAO,GAAGjB,YAAY;IAChC;IAEA,IAAK,CAAC,CAAEkB,MAAM,CAACC,IAAI,CAAEL,QAAS,CAAC,CAACM,MAAM,EAAG;MACxC9B,uCAAuC,CAAC,CAAC;MACzCsB,WAAW,CAAEE,QAAS,CAAC;IACxB;EACD,CAAC,EAAE,CACFhC,KAAK,CAACmC,OAAO,EACb/B,OAAO,EACPc,YAAY,EACZV,uCAAuC,EACvCsB,WAAW,CACV,CAAC;EACH;EACA;EACA,IAAAI,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAEK,MAAM,CAACC,QAAQ,CAAEzC,OAAQ,CAAC,EAAG;MACnCS,uCAAuC,CAAC,CAAC;MACzCb,aAAa,CAAE;QAAEI,OAAO,EAAEY;MAAW,CAAE,CAAC;IACzC;EACD,CAAC,EAAE,CACFZ,OAAO,EACPY,UAAU,EACVH,uCAAuC,EACvCb,aAAa,CACZ,CAAC;EAEH,oBACC,IAAAL,WAAA,CAAAmD,IAAA,EAAAnD,WAAA,CAAAoD,QAAA;IAAAC,QAAA,gBACC,IAAArD,WAAA,CAAAsD,GAAA,EAAC1D,wBAAA,CAAA2D,OAAuB;MACvBnD,UAAU,EAAGA,UAAY;MACzBC,aAAa,EAAGA,aAAe;MAC/BC,QAAQ,EAAGA;IAAU,CACrB,CAAC,eACF,IAAAN,WAAA,CAAAsD,GAAA,EAACjE,YAAA,CAAAmE,iBAAiB;MAAAH,QAAA,eACjB,IAAArD,WAAA,CAAAsD,GAAA,EAAC3D,kBAAA,CAAA4D,OAAsB;QACtB/C,IAAI,EAAGA,IAAM;QACbJ,UAAU,EAAGA,UAAY;QACzBqD,QAAQ,EAAGjB,WAAa;QACxBnC,aAAa,EAAGA,aAAe;QAC/BC,QAAQ,EAAGA,QAAU;QACrBU,UAAU,EAAGA;MAAY,CACzB;IAAC,CACgB,CAAC,eACpB,IAAAhB,WAAA,CAAAsD,GAAA,EAACjE,YAAA,CAAAqE,aAAa;MAAAL,QAAA,eACb,IAAArD,WAAA,CAAAsD,GAAA,EAACxD,aAAA,CAAAyD,OAAY;QAACnD,UAAU,EAAGA,UAAY;QAACE,QAAQ,EAAGA;MAAU,CAAE;IAAC,CAClD,CAAC,eAChB,IAAAN,WAAA,CAAAmD,IAAA,EAAC9D,YAAA,CAAAmE,iBAAiB;MAACG,KAAK,EAAC,UAAU;MAAAN,QAAA,gBAClC,IAAArD,WAAA,CAAAsD,GAAA,EAAChE,WAAA,CAAAsE,aAAa;QACbC,uBAAuB;QACvBC,qBAAqB;QACrBC,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;QAC9BC,OAAO,EAAG,CACT;UAAEF,KAAK,EAAE,IAAAC,QAAE,EAAE,iBAAkB,CAAC;UAAEE,KAAK,EAAE;QAAM,CAAC,EAChD;UAAEH,KAAK,EAAE,QAAQ;UAAEG,KAAK,EAAE;QAAO,CAAC,EAClC;UAAEH,KAAK,EAAE,WAAW;UAAEG,KAAK,EAAE;QAAU,CAAC,EACxC;UAAEH,KAAK,EAAE,SAAS;UAAEG,KAAK,EAAE;QAAQ,CAAC,CAClC;QACHA,KAAK,EAAGrD,OAAS;QACjBsD,QAAQ,EAAKD,KAAK,IACjB7D,aAAa,CAAE;UAAEO,OAAO,EAAEsD;QAAM,CAAE,CAClC;QACDE,IAAI,EAAGC,6BAAmB,CAAExD,OAAO;MAAI,CACvC,CAAC,eACF,IAAAb,WAAA,CAAAsD,GAAA,EAAC7D,0BAAA,CAAA8D,OAAyB;QACzB5C,kBAAkB,EAAGA,kBAAoB;QACzCN,aAAa,EAAGA,aAAe;QAC/BC,QAAQ,EAAGA;MAAU,CACrB,CAAC;IAAA,CACgB,CAAC,eACpB,IAAAN,WAAA,CAAAsD,GAAA,EAACzC,OAAO;MAAA,GAAMY;IAAgB,CAAI,CAAC;EAAA,CAClC,CAAC;AAEL","ignoreList":[]}
@@ -130,7 +130,7 @@ const settings = exports.settings = {
130
130
  icon: _icons.quote,
131
131
  example: {
132
132
  attributes: {
133
- citation: 'Julio Cortázar'
133
+ citation: (0, _i18n.__)('Julio Cortázar')
134
134
  },
135
135
  innerBlocks: [{
136
136
  name: 'core/paragraph',