@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.
- package/CHANGELOG.md +2 -0
- package/build/cover/index.js +1 -1
- package/build/cover/index.js.map +1 -1
- package/build/details/edit.js +1 -5
- package/build/details/edit.js.map +1 -1
- package/build/details/index.js +1 -1
- package/build/details/index.js.map +1 -1
- package/build/navigation/view.js +2 -1
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +0 -21
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/index.js +0 -3
- package/build/navigation-link/index.js.map +1 -1
- package/build/navigation-link/transforms.js +0 -2
- package/build/navigation-link/transforms.js.map +1 -1
- package/build/navigation-link/update-attributes.js +0 -1
- package/build/navigation-link/update-attributes.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -24
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/navigation-submenu/index.js +0 -3
- package/build/navigation-submenu/index.js.map +1 -1
- package/build/post-comments-count/index.js +0 -1
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-link/index.js +0 -1
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-featured-image/edit.js +15 -5
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +47 -59
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/inspector-controls/parent-control.js +2 -2
- package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build/query/edit/inspector-controls/taxonomy-controls.js +2 -2
- package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build/query/edit/query-content.js +4 -17
- package/build/query/edit/query-content.js.map +1 -1
- package/build/quote/index.js +1 -1
- package/build/quote/index.js.map +1 -1
- package/build/social-links/edit.js +29 -31
- package/build/social-links/edit.js.map +1 -1
- package/build/table/index.js +3 -3
- package/build/table/index.js.map +1 -1
- package/build/table/transforms.js +11 -3
- package/build/table/transforms.js.map +1 -1
- package/build/table-of-contents/edit.js +1 -1
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/table-of-contents/hooks.js +6 -3
- package/build/table-of-contents/hooks.js.map +1 -1
- package/build-module/cover/index.js +1 -1
- package/build-module/cover/index.js.map +1 -1
- package/build-module/details/edit.js +1 -5
- package/build-module/details/edit.js.map +1 -1
- package/build-module/details/index.js +1 -1
- package/build-module/details/index.js.map +1 -1
- package/build-module/navigation/view.js +2 -1
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +0 -21
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/index.js +0 -3
- package/build-module/navigation-link/index.js.map +1 -1
- package/build-module/navigation-link/transforms.js +0 -2
- package/build-module/navigation-link/transforms.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +0 -1
- package/build-module/navigation-link/update-attributes.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -24
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/navigation-submenu/index.js +0 -3
- package/build-module/navigation-submenu/index.js.map +1 -1
- package/build-module/post-comments-count/index.js +0 -1
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-link/index.js +0 -1
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-featured-image/edit.js +15 -5
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +49 -61
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/parent-control.js +2 -2
- package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js +2 -2
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build-module/query/edit/query-content.js +4 -17
- package/build-module/query/edit/query-content.js.map +1 -1
- package/build-module/quote/index.js +1 -1
- package/build-module/quote/index.js.map +1 -1
- package/build-module/social-links/edit.js +30 -32
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/table/index.js +3 -3
- package/build-module/table/index.js.map +1 -1
- package/build-module/table/transforms.js +11 -3
- package/build-module/table/transforms.js.map +1 -1
- package/build-module/table-of-contents/edit.js +1 -1
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/table-of-contents/hooks.js +6 -3
- package/build-module/table-of-contents/hooks.js.map +1 -1
- package/build-style/editor-rtl.css +1 -50
- package/build-style/editor.css +1 -50
- package/build-style/media-text/style-rtl.css +0 -2
- package/build-style/media-text/style.css +0 -2
- package/build-style/search/style-rtl.css +1 -0
- package/build-style/search/style.css +1 -0
- package/build-style/social-links/editor-rtl.css +1 -50
- package/build-style/social-links/editor.css +1 -50
- package/build-style/style-rtl.css +1 -6
- package/build-style/style.css +1 -6
- package/build-style/tag-cloud/style-rtl.css +0 -4
- package/build-style/tag-cloud/style.css +0 -4
- package/package.json +35 -35
- package/src/button/index.php +2 -3
- package/src/cover/index.js +1 -1
- package/src/details/edit.js +6 -8
- package/src/details/index.js +1 -1
- package/src/file/index.php +2 -3
- package/src/latest-comments/index.php +1 -1
- package/src/latest-posts/index.php +3 -0
- package/src/media-text/style.scss +0 -2
- package/src/navigation/index.php +1 -1
- package/src/navigation/view.js +2 -1
- package/src/navigation-link/block.json +0 -3
- package/src/navigation-link/edit.js +1 -22
- package/src/navigation-link/index.php +1 -5
- package/src/navigation-link/transforms.js +1 -2
- package/src/navigation-link/update-attributes.js +0 -1
- package/src/navigation-submenu/block.json +0 -3
- package/src/navigation-submenu/edit.js +1 -24
- package/src/navigation-submenu/index.php +0 -4
- package/src/post-comments-count/block.json +0 -1
- package/src/post-comments-count/index.php +4 -0
- package/src/post-comments-link/block.json +0 -1
- package/src/post-comments-link/index.php +4 -0
- package/src/post-featured-image/edit.js +94 -77
- package/src/query/edit/inspector-controls/index.js +66 -91
- package/src/query/edit/inspector-controls/parent-control.js +2 -2
- package/src/query/edit/inspector-controls/taxonomy-controls.js +2 -2
- package/src/query/edit/query-content.js +7 -16
- package/src/quote/index.js +1 -1
- package/src/search/index.php +12 -9
- package/src/search/style.scss +1 -0
- package/src/social-links/edit.js +29 -30
- package/src/social-links/editor.scss +1 -59
- package/src/table/index.js +3 -3
- package/src/table/transforms.js +14 -2
- package/src/table-of-contents/edit.js +1 -1
- package/src/table-of-contents/hooks.js +5 -2
- 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
|
|
98
|
-
|
|
95
|
+
const debouncedQuerySearch = (0, _element.useMemo)(() => {
|
|
96
|
+
return (0, _compose.debounce)(newQuerySearch => {
|
|
99
97
|
setQuery({
|
|
100
|
-
search:
|
|
98
|
+
search: newQuerySearch
|
|
101
99
|
});
|
|
102
|
-
}
|
|
103
|
-
},
|
|
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 =
|
|
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 ||
|
|
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.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
value:
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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: () =>
|
|
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:
|
|
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":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,MAAA,GAAAN,OAAA;AAAkE,IAAAO,WAAA,GAAAP,OAAA;AAblE;AACA;AACA;;AAQA;AACA;AACA;;AAGA,MAAMQ,WAAW,GAAG,EAAE;AACtB,MAAMC,UAAU,GAAG;EAClBC,KAAK,EAAE,KAAK;EACZC,OAAO,EAAE,UAAU;EACnBC,OAAO,EAAE;AACV,CAAC;AAED,SAASC,aAAaA,CAAE;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAS,CAAC,EAAG;EACzD,MAAM,CAAEC,MAAM,EAAEC,SAAS,CAAE,GAAG,IAAAC,iBAAQ,EAAE,EAAG,CAAC;EAC5C,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAG,IAAAF,iBAAQ,EAAEX,WAAY,CAAC;EACnD,MAAM,CAAEc,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAJ,iBAAQ,EAAEX,WAAY,CAAC;EAC/D,MAAMgB,eAAe,GAAG,IAAAC,oBAAW,EAAEP,SAAS,EAAE,GAAI,CAAC;EACrD,MAAM;IAAEQ,aAAa;IAAEC;EAAkB,CAAC,GAAG,IAAAC,eAAS,EACnDC,MAAM,IAAM;IACb,IAAK,CAAEZ,MAAM,EAAG;MACf,OAAO;QAAES,aAAa,EAAElB,WAAW;QAAEmB,iBAAiB,EAAE;MAAK,CAAC;IAC/D;IACA,MAAM;MAAEG,gBAAgB;MAAEC;IAAsB,CAAC,GAChDF,MAAM,CAAEG,eAAU,CAAC;IACpB,MAAMC,YAAY,GAAG,CACpB,UAAU,EACVlB,QAAQ,EACR;MACC,GAAGN,UAAU;MACbQ,MAAM;MACNiB,OAAO,EAAE,WAAW;MACpBC,OAAO,EAAErB,OAAO;MAChBsB,QAAQ,EAAE;IACX,CAAC,CACD;IACD,OAAO;MACNV,aAAa,EAAEI,gBAAgB,CAAE,GAAGG,YAAa,CAAC;MAClDN,iBAAiB,EAAEI,qBAAqB,CACvC,kBAAkB,EAClBE,YACD;IACD,CAAC;EACF,CAAC,EACD,CAAEhB,MAAM,
|
|
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
|
-
}), [
|
|
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,
|
|
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":"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","ignoreList":[]}
|
package/build/quote/index.js
CHANGED