@wordpress/block-library 9.21.0 → 9.23.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 +4 -0
- package/build/calendar/index.js +1 -0
- package/build/calendar/index.js.map +1 -1
- package/build/comments/edit/comments-inspector-controls.js +13 -13
- package/build/comments/edit/comments-inspector-controls.js.map +1 -1
- package/build/comments/edit/index.js +4 -2
- package/build/comments/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +9 -12
- package/build/cover/edit/inspector-controls.js.map +1 -1
- 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/group/edit.js +17 -13
- package/build/group/edit.js.map +1 -1
- package/build/image/edit.js +0 -6
- package/build/image/edit.js.map +1 -1
- package/build/latest-posts/edit.js +100 -54
- package/build/latest-posts/edit.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 +15 -29
- 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/separator/edit.js +13 -12
- package/build/separator/edit.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/template-part/edit/advanced-controls.js +14 -12
- package/build/template-part/edit/advanced-controls.js.map +1 -1
- package/build/template-part/edit/index.js +2 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build-module/calendar/index.js +1 -0
- package/build-module/calendar/index.js.map +1 -1
- package/build-module/comments/edit/comments-inspector-controls.js +14 -14
- package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
- package/build-module/comments/edit/index.js +4 -2
- package/build-module/comments/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +10 -13
- package/build-module/cover/edit/inspector-controls.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/group/edit.js +16 -14
- package/build-module/group/edit.js.map +1 -1
- package/build-module/image/edit.js +0 -6
- package/build-module/image/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +100 -54
- package/build-module/latest-posts/edit.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 +16 -30
- 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/separator/edit.js +15 -14
- package/build-module/separator/edit.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-module/template-part/edit/advanced-controls.js +14 -12
- package/build-module/template-part/edit/advanced-controls.js.map +1 -1
- package/build-module/template-part/edit/index.js +2 -1
- package/build-module/template-part/edit/index.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/calendar/block.json +1 -0
- package/src/comments/edit/comments-inspector-controls.js +14 -12
- package/src/comments/edit/index.js +2 -1
- package/src/cover/edit/inspector-controls.js +9 -12
- 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/group/edit.js +11 -10
- package/src/image/edit.js +0 -4
- package/src/latest-comments/index.php +1 -1
- package/src/latest-posts/edit.js +113 -81
- package/src/latest-posts/index.php +3 -0
- package/src/loginout/index.php +5 -1
- package/src/media-text/style.scss +0 -2
- package/src/navigation/index.php +1 -2
- 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 +2 -6
- 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 +1 -5
- package/src/post-author/index.php +1 -1
- package/src/post-author-name/index.php +1 -1
- 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 +17 -27
- package/src/quote/index.js +1 -1
- package/src/search/index.php +12 -9
- package/src/search/style.scss +1 -0
- package/src/separator/edit.js +16 -12
- 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
- package/src/template-part/edit/advanced-controls.js +9 -8
- package/src/template-part/edit/index.js +1 -0
- package/build/utils/messages.js +0 -22
- package/build/utils/messages.js.map +0 -1
- package/build-module/utils/messages.js +0 -15
- package/build-module/utils/messages.js.map +0 -1
- package/src/utils/messages.js +0 -31
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { TextControl, SelectControl,
|
|
4
|
+
import { TextControl, SelectControl, Notice, __experimentalVStack as VStack, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption } from '@wordpress/components';
|
|
5
5
|
import { useSelect } from '@wordpress/data';
|
|
6
6
|
import { store as coreStore } from '@wordpress/core-data';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
8
|
import { debounce } from '@wordpress/compose';
|
|
9
|
-
import {
|
|
9
|
+
import { useState, useMemo } from '@wordpress/element';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Internal dependencies
|
|
@@ -27,12 +27,10 @@ export default function QueryInspectorControls(props) {
|
|
|
27
27
|
const {
|
|
28
28
|
attributes,
|
|
29
29
|
setQuery,
|
|
30
|
-
setDisplayLayout,
|
|
31
30
|
isSingular
|
|
32
31
|
} = props;
|
|
33
32
|
const {
|
|
34
|
-
query
|
|
35
|
-
displayLayout
|
|
33
|
+
query
|
|
36
34
|
} = attributes;
|
|
37
35
|
const {
|
|
38
36
|
order,
|
|
@@ -86,26 +84,21 @@ export default function QueryInspectorControls(props) {
|
|
|
86
84
|
setQuery(updateQuery);
|
|
87
85
|
};
|
|
88
86
|
const [querySearch, setQuerySearch] = useState(query.search);
|
|
89
|
-
const
|
|
90
|
-
|
|
87
|
+
const debouncedQuerySearch = useMemo(() => {
|
|
88
|
+
return debounce(newQuerySearch => {
|
|
91
89
|
setQuery({
|
|
92
|
-
search:
|
|
90
|
+
search: newQuerySearch
|
|
93
91
|
});
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
useEffect(() => {
|
|
97
|
-
onChangeDebounced();
|
|
98
|
-
return onChangeDebounced.cancel;
|
|
99
|
-
}, [querySearch, onChangeDebounced]);
|
|
92
|
+
}, 250);
|
|
93
|
+
}, [setQuery]);
|
|
100
94
|
const orderByOptions = useOrderByOptions(postType);
|
|
101
|
-
const showInheritControl =
|
|
95
|
+
const showInheritControl = isControlAllowed(allowedControls, 'inherit');
|
|
102
96
|
const showPostTypeControl = !inherit && isControlAllowed(allowedControls, 'postType');
|
|
103
97
|
const postTypeControlLabel = __('Post type');
|
|
104
98
|
const postTypeControlHelp = __('Select the type of content to display: posts, pages, or custom post types.');
|
|
105
|
-
const showColumnsControl = false;
|
|
106
99
|
const showOrderControl = !inherit && isControlAllowed(allowedControls, 'order');
|
|
107
100
|
const showStickyControl = !inherit && showSticky && isControlAllowed(allowedControls, 'sticky');
|
|
108
|
-
const showSettingsPanel = showInheritControl || showPostTypeControl ||
|
|
101
|
+
const showSettingsPanel = showInheritControl || showPostTypeControl || showOrderControl || showStickyControl;
|
|
109
102
|
const showTaxControl = !!taxonomies?.length && isControlAllowed(allowedControls, 'taxQuery');
|
|
110
103
|
const showAuthorControl = isControlAllowed(allowedControls, 'author');
|
|
111
104
|
const showSearchControl = isControlAllowed(allowedControls, 'search');
|
|
@@ -128,6 +121,10 @@ export default function QueryInspectorControls(props) {
|
|
|
128
121
|
const showOffSetControl = isControlAllowed(allowedControls, 'offset');
|
|
129
122
|
const showPagesControl = isControlAllowed(allowedControls, 'pages');
|
|
130
123
|
const showDisplayPanel = showPostCountControl || showOffSetControl || showPagesControl;
|
|
124
|
+
|
|
125
|
+
// The block cannot inherit a default WordPress query in singular content (e.g., post, page, 404, blank).
|
|
126
|
+
// Warn users but still permit this type of query for exceptional cases in Classic and Hybrid themes.
|
|
127
|
+
const hasInheritanceWarning = isSingular && inherit;
|
|
131
128
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
132
129
|
children: [showSettingsPanel && /*#__PURE__*/_jsxs(ToolsPanel, {
|
|
133
130
|
label: __('Settings'),
|
|
@@ -148,24 +145,31 @@ export default function QueryInspectorControls(props) {
|
|
|
148
145
|
inherit: true
|
|
149
146
|
}),
|
|
150
147
|
isShownByDefault: true,
|
|
151
|
-
children: /*#__PURE__*/_jsxs(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
value:
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
148
|
+
children: /*#__PURE__*/_jsxs(VStack, {
|
|
149
|
+
spacing: 4,
|
|
150
|
+
children: [/*#__PURE__*/_jsxs(ToggleGroupControl, {
|
|
151
|
+
__next40pxDefaultSize: true,
|
|
152
|
+
__nextHasNoMarginBottom: true,
|
|
153
|
+
label: __('Query type'),
|
|
154
|
+
isBlock: true,
|
|
155
|
+
onChange: value => {
|
|
156
|
+
setQuery({
|
|
157
|
+
inherit: value === 'default'
|
|
158
|
+
});
|
|
159
|
+
},
|
|
160
|
+
help: inherit ? __('Display a list of posts or custom post types based on the current template.') : __('Display a list of posts or custom post types based on specific criteria.'),
|
|
161
|
+
value: !!inherit ? 'default' : 'custom',
|
|
162
|
+
children: [/*#__PURE__*/_jsx(ToggleGroupControlOption, {
|
|
163
|
+
value: "default",
|
|
164
|
+
label: __('Default')
|
|
165
|
+
}), /*#__PURE__*/_jsx(ToggleGroupControlOption, {
|
|
166
|
+
value: "custom",
|
|
167
|
+
label: __('Custom')
|
|
168
|
+
})]
|
|
169
|
+
}), hasInheritanceWarning && /*#__PURE__*/_jsx(Notice, {
|
|
170
|
+
status: "warning",
|
|
171
|
+
isDismissible: false,
|
|
172
|
+
children: __('Cannot inherit the current template query when placed inside the singular content (e.g., post, page, 404, blank).')
|
|
169
173
|
})]
|
|
170
174
|
})
|
|
171
175
|
}), showPostTypeControl && /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
@@ -194,30 +198,6 @@ export default function QueryInspectorControls(props) {
|
|
|
194
198
|
label: option.label
|
|
195
199
|
}, option.value))
|
|
196
200
|
})
|
|
197
|
-
}), showColumnsControl && /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
198
|
-
hasValue: () => displayLayout?.columns !== 2,
|
|
199
|
-
label: __('Columns'),
|
|
200
|
-
onDeselect: () => setDisplayLayout({
|
|
201
|
-
columns: 2
|
|
202
|
-
}),
|
|
203
|
-
isShownByDefault: true,
|
|
204
|
-
children: /*#__PURE__*/_jsxs(_Fragment, {
|
|
205
|
-
children: [/*#__PURE__*/_jsx(RangeControl, {
|
|
206
|
-
__nextHasNoMarginBottom: true,
|
|
207
|
-
__next40pxDefaultSize: true,
|
|
208
|
-
label: __('Columns'),
|
|
209
|
-
value: displayLayout.columns,
|
|
210
|
-
onChange: value => setDisplayLayout({
|
|
211
|
-
columns: value
|
|
212
|
-
}),
|
|
213
|
-
min: 2,
|
|
214
|
-
max: Math.max(6, displayLayout.columns)
|
|
215
|
-
}), displayLayout.columns > 6 && /*#__PURE__*/_jsx(Notice, {
|
|
216
|
-
status: "warning",
|
|
217
|
-
isDismissible: false,
|
|
218
|
-
children: __('This column count exceeds the recommended amount and may cause visual breakage.')
|
|
219
|
-
})]
|
|
220
|
-
})
|
|
221
201
|
}), showOrderControl && /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
222
202
|
hasValue: () => order !== 'desc' || orderBy !== 'date',
|
|
223
203
|
label: __('Order by'),
|
|
@@ -323,13 +303,21 @@ export default function QueryInspectorControls(props) {
|
|
|
323
303
|
}), showSearchControl && /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
324
304
|
hasValue: () => !!querySearch,
|
|
325
305
|
label: __('Keyword'),
|
|
326
|
-
onDeselect: () =>
|
|
306
|
+
onDeselect: () => {
|
|
307
|
+
setQuery({
|
|
308
|
+
search: ''
|
|
309
|
+
});
|
|
310
|
+
setQuerySearch('');
|
|
311
|
+
},
|
|
327
312
|
children: /*#__PURE__*/_jsx(TextControl, {
|
|
328
313
|
__nextHasNoMarginBottom: true,
|
|
329
314
|
__next40pxDefaultSize: true,
|
|
330
315
|
label: __('Keyword'),
|
|
331
316
|
value: querySearch,
|
|
332
|
-
onChange:
|
|
317
|
+
onChange: newQuerySearch => {
|
|
318
|
+
debouncedQuerySearch(newQuerySearch);
|
|
319
|
+
setQuerySearch(newQuerySearch);
|
|
320
|
+
}
|
|
333
321
|
})
|
|
334
322
|
}), showParentControl && /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
335
323
|
hasValue: () => !!parents?.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TextControl","SelectControl","RangeControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Notice","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","useSelect","store","coreStore","__","debounce","useEffect","useState","useCallback","OrderControl","AuthorControl","ParentControl","TaxonomyControls","FormatControls","StickyControl","PerPageControl","OffsetControl","PagesControl","usePostTypes","useIsPostTypeHierarchical","useAllowedControls","isControlAllowed","useTaxonomies","useOrderByOptions","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","QueryInspectorControls","props","attributes","setQuery","setDisplayLayout","isSingular","query","displayLayout","order","orderBy","author","authorIds","pages","postType","perPage","offset","sticky","inherit","taxQuery","parents","format","allowedControls","showSticky","postTypesTaxonomiesMap","postTypesSelectOptions","postTypeFormatSupportMap","taxonomies","isPostTypeHierarchical","onPostTypeChange","newValue","updateQuery","supportedTaxonomies","updatedTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","includes","keys","length","undefined","hasFormatSupport","querySearch","setQuerySearch","search","onChangeDebounced","cancel","orderByOptions","showInheritControl","showPostTypeControl","postTypeControlLabel","postTypeControlHelp","showColumnsControl","showOrderControl","showStickyControl","showSettingsPanel","showTaxControl","showAuthorControl","showSearchControl","showParentControl","postTypeHasFormatSupport","showFormatControl","select","themeSupports","getThemeSupports","formats","some","type","showFiltersPanel","dropdownMenuProps","showPostCountControl","showOffSetControl","showPagesControl","showDisplayPanel","children","label","resetAll","hasValue","onDeselect","isShownByDefault","__next40pxDefaultSize","__nextHasNoMarginBottom","isBlock","onChange","value","help","options","map","option","columns","min","max","Math","status","isDismissible","className","values"],"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":["TextControl","SelectControl","Notice","__experimentalVStack","VStack","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","useSelect","store","coreStore","__","debounce","useState","useMemo","OrderControl","AuthorControl","ParentControl","TaxonomyControls","FormatControls","StickyControl","PerPageControl","OffsetControl","PagesControl","usePostTypes","useIsPostTypeHierarchical","useAllowedControls","isControlAllowed","useTaxonomies","useOrderByOptions","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","QueryInspectorControls","props","attributes","setQuery","isSingular","query","order","orderBy","author","authorIds","pages","postType","perPage","offset","sticky","inherit","taxQuery","parents","format","allowedControls","showSticky","postTypesTaxonomiesMap","postTypesSelectOptions","postTypeFormatSupportMap","taxonomies","isPostTypeHierarchical","onPostTypeChange","newValue","updateQuery","supportedTaxonomies","updatedTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","includes","keys","length","undefined","hasFormatSupport","querySearch","setQuerySearch","search","debouncedQuerySearch","newQuerySearch","orderByOptions","showInheritControl","showPostTypeControl","postTypeControlLabel","postTypeControlHelp","showOrderControl","showStickyControl","showSettingsPanel","showTaxControl","showAuthorControl","showSearchControl","showParentControl","postTypeHasFormatSupport","showFormatControl","select","themeSupports","getThemeSupports","formats","some","type","showFiltersPanel","dropdownMenuProps","showPostCountControl","showOffSetControl","showPagesControl","showDisplayPanel","hasInheritanceWarning","children","label","resetAll","hasValue","onDeselect","isShownByDefault","spacing","__next40pxDefaultSize","__nextHasNoMarginBottom","isBlock","onChange","value","help","status","isDismissible","options","map","option","className","values"],"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":[]}
|
|
@@ -53,7 +53,7 @@ function ParentControl({
|
|
|
53
53
|
searchResults: getEntityRecords(...selectorArgs),
|
|
54
54
|
searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
|
|
55
55
|
};
|
|
56
|
-
}, [search, parents]);
|
|
56
|
+
}, [search, postType, parents]);
|
|
57
57
|
const currentParents = useSelect(select => {
|
|
58
58
|
if (!parents?.length) {
|
|
59
59
|
return EMPTY_ARRAY;
|
|
@@ -66,7 +66,7 @@ function ParentControl({
|
|
|
66
66
|
include: parents,
|
|
67
67
|
per_page: parents.length
|
|
68
68
|
});
|
|
69
|
-
}, [parents]);
|
|
69
|
+
}, [parents, postType]);
|
|
70
70
|
// Update the `value` state only after the selectors are resolved
|
|
71
71
|
// to avoid emptying the input when we're changing parents.
|
|
72
72
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","FormTokenField","useSelect","store","coreStore","useState","useEffect","useMemo","useDebounce","getEntitiesInfo","mapToIHasNameAndId","jsx","_jsx","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","ParentControl","parents","postType","onChange","search","setSearch","value","setValue","suggestions","setSuggestions","debouncedSearch","searchResults","searchHasResolved","select","getEntityRecords","hasFinishedResolution","selectorArgs","orderby","exclude","per_page","currentParents","length","include","currentParentsInfo","sanitizedValue","reduce","accumulator","id","entity","mapById","push","name","entitiesInfo","names","getIdByValue","entitiesMappedByName","onParentChange","newValue","ids","Array","from","mapByName","add","Set","__next40pxDefaultSize","label","onInputChange","__experimentalShowHowTo","__nextHasNoMarginBottom"],"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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,oBAAoB;AACjE,SAASC,WAAW,QAAQ,oBAAoB;;AAEhD;AACA;AACA;AACA,SAASC,eAAe,EAAEC,kBAAkB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElE,MAAMC,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,GAAGlB,QAAQ,CAAE,EAAG,CAAC;EAC5C,MAAM,CAAEmB,KAAK,EAAEC,QAAQ,CAAE,GAAGpB,QAAQ,CAAEQ,WAAY,CAAC;EACnD,MAAM,CAAEa,WAAW,EAAEC,cAAc,CAAE,GAAGtB,QAAQ,CAAEQ,WAAY,CAAC;EAC/D,MAAMe,eAAe,GAAGpB,WAAW,CAAEe,SAAS,EAAE,GAAI,CAAC;EACrD,MAAM;IAAEM,aAAa;IAAEC;EAAkB,CAAC,GAAG5B,SAAS,CACnD6B,MAAM,IAAM;IACb,IAAK,CAAET,MAAM,EAAG;MACf,OAAO;QAAEO,aAAa,EAAEhB,WAAW;QAAEiB,iBAAiB,EAAE;MAAK,CAAC;IAC/D;IACA,MAAM;MAAEE,gBAAgB;MAAEC;IAAsB,CAAC,GAChDF,MAAM,CAAE3B,SAAU,CAAC;IACpB,MAAM8B,YAAY,GAAG,CACpB,UAAU,EACVd,QAAQ,EACR;MACC,GAAGN,UAAU;MACbQ,MAAM;MACNa,OAAO,EAAE,WAAW;MACpBC,OAAO,EAAEjB,OAAO;MAChBkB,QAAQ,EAAE;IACX,CAAC,CACD;IACD,OAAO;MACNR,aAAa,EAAEG,gBAAgB,CAAE,GAAGE,YAAa,CAAC;MAClDJ,iBAAiB,EAAEG,qBAAqB,CACvC,kBAAkB,EAClBC,YACD;IACD,CAAC;EACF,CAAC,EACD,CAAEZ,MAAM,
|
|
1
|
+
{"version":3,"names":["__","FormTokenField","useSelect","store","coreStore","useState","useEffect","useMemo","useDebounce","getEntitiesInfo","mapToIHasNameAndId","jsx","_jsx","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","ParentControl","parents","postType","onChange","search","setSearch","value","setValue","suggestions","setSuggestions","debouncedSearch","searchResults","searchHasResolved","select","getEntityRecords","hasFinishedResolution","selectorArgs","orderby","exclude","per_page","currentParents","length","include","currentParentsInfo","sanitizedValue","reduce","accumulator","id","entity","mapById","push","name","entitiesInfo","names","getIdByValue","entitiesMappedByName","onParentChange","newValue","ids","Array","from","mapByName","add","Set","__next40pxDefaultSize","label","onInputChange","__experimentalShowHowTo","__nextHasNoMarginBottom"],"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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,oBAAoB;AACjE,SAASC,WAAW,QAAQ,oBAAoB;;AAEhD;AACA;AACA;AACA,SAASC,eAAe,EAAEC,kBAAkB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElE,MAAMC,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,GAAGlB,QAAQ,CAAE,EAAG,CAAC;EAC5C,MAAM,CAAEmB,KAAK,EAAEC,QAAQ,CAAE,GAAGpB,QAAQ,CAAEQ,WAAY,CAAC;EACnD,MAAM,CAAEa,WAAW,EAAEC,cAAc,CAAE,GAAGtB,QAAQ,CAAEQ,WAAY,CAAC;EAC/D,MAAMe,eAAe,GAAGpB,WAAW,CAAEe,SAAS,EAAE,GAAI,CAAC;EACrD,MAAM;IAAEM,aAAa;IAAEC;EAAkB,CAAC,GAAG5B,SAAS,CACnD6B,MAAM,IAAM;IACb,IAAK,CAAET,MAAM,EAAG;MACf,OAAO;QAAEO,aAAa,EAAEhB,WAAW;QAAEiB,iBAAiB,EAAE;MAAK,CAAC;IAC/D;IACA,MAAM;MAAEE,gBAAgB;MAAEC;IAAsB,CAAC,GAChDF,MAAM,CAAE3B,SAAU,CAAC;IACpB,MAAM8B,YAAY,GAAG,CACpB,UAAU,EACVd,QAAQ,EACR;MACC,GAAGN,UAAU;MACbQ,MAAM;MACNa,OAAO,EAAE,WAAW;MACpBC,OAAO,EAAEjB,OAAO;MAChBkB,QAAQ,EAAE;IACX,CAAC,CACD;IACD,OAAO;MACNR,aAAa,EAAEG,gBAAgB,CAAE,GAAGE,YAAa,CAAC;MAClDJ,iBAAiB,EAAEG,qBAAqB,CACvC,kBAAkB,EAClBC,YACD;IACD,CAAC;EACF,CAAC,EACD,CAAEZ,MAAM,EAAEF,QAAQ,EAAED,OAAO,CAC5B,CAAC;EACD,MAAMmB,cAAc,GAAGpC,SAAS,CAC7B6B,MAAM,IAAM;IACb,IAAK,CAAEZ,OAAO,EAAEoB,MAAM,EAAG;MACxB,OAAO1B,WAAW;IACnB;IACA,MAAM;MAAEmB;IAAiB,CAAC,GAAGD,MAAM,CAAE3B,SAAU,CAAC;IAChD,OAAO4B,gBAAgB,CAAE,UAAU,EAAEZ,QAAQ,EAAE;MAC9C,GAAGN,UAAU;MACb0B,OAAO,EAAErB,OAAO;MAChBkB,QAAQ,EAAElB,OAAO,CAACoB;IACnB,CAAE,CAAC;EACJ,CAAC,EACD,CAAEpB,OAAO,EAAEC,QAAQ,CACpB,CAAC;EACD;EACA;EACAd,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEa,OAAO,EAAEoB,MAAM,EAAG;MACxBd,QAAQ,CAAEZ,WAAY,CAAC;IACxB;IACA,IAAK,CAAEyB,cAAc,EAAEC,MAAM,EAAG;MAC/B;IACD;IACA,MAAME,kBAAkB,GAAGhC,eAAe,CACzCC,kBAAkB,CAAE4B,cAAc,EAAE,gBAAiB,CACtD,CAAC;IACD;IACA;IACA,MAAMI,cAAc,GAAGvB,OAAO,CAACwB,MAAM,CAAE,CAAEC,WAAW,EAAEC,EAAE,KAAM;MAC7D,MAAMC,MAAM,GAAGL,kBAAkB,CAACM,OAAO,CAAEF,EAAE,CAAE;MAC/C,IAAKC,MAAM,EAAG;QACbF,WAAW,CAACI,IAAI,CAAE;UACjBH,EAAE;UACFrB,KAAK,EAAEsB,MAAM,CAACG;QACf,CAAE,CAAC;MACJ;MACA,OAAOL,WAAW;IACnB,CAAC,EAAE,EAAG,CAAC;IACPnB,QAAQ,CAAEiB,cAAe,CAAC;EAC3B,CAAC,EAAE,CAAEvB,OAAO,EAAEmB,cAAc,CAAG,CAAC;EAEhC,MAAMY,YAAY,GAAG3C,OAAO,CAAE,MAAM;IACnC,IAAK,CAAEsB,aAAa,EAAEU,MAAM,EAAG;MAC9B,OAAO1B,WAAW;IACnB;IACA,OAAOJ,eAAe,CACrBC,kBAAkB,CAAEmB,aAAa,EAAE,gBAAiB,CACrD,CAAC;EACF,CAAC,EAAE,CAAEA,aAAa,CAAG,CAAC;EACtB;EACAvB,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEwB,iBAAiB,EAAG;MAC1B;IACD;IACAH,cAAc,CAAEuB,YAAY,CAACC,KAAM,CAAC;EACrC,CAAC,EAAE,CAAED,YAAY,CAACC,KAAK,EAAErB,iBAAiB,CAAG,CAAC;EAE9C,MAAMsB,YAAY,GAAGA,CAAEC,oBAAoB,EAAEP,MAAM,KAAM;IACxD,MAAMD,EAAE,GAAGC,MAAM,EAAED,EAAE,IAAIQ,oBAAoB,GAAIP,MAAM,CAAE,EAAED,EAAE;IAC7D,IAAKA,EAAE,EAAG;MACT,OAAOA,EAAE;IACV;EACD,CAAC;EACD,MAAMS,cAAc,GAAKC,QAAQ,IAAM;IACtC,MAAMC,GAAG,GAAGC,KAAK,CAACC,IAAI,CACrBH,QAAQ,CAACZ,MAAM,CAAE,CAAEC,WAAW,EAAEE,MAAM,KAAM;MAC3C;MACA,MAAMD,EAAE,GAAGO,YAAY,CAAEF,YAAY,CAACS,SAAS,EAAEb,MAAO,CAAC;MACzD,IAAKD,EAAE,EAAG;QACTD,WAAW,CAACgB,GAAG,CAAEf,EAAG,CAAC;MACtB;MACA,OAAOD,WAAW;IACnB,CAAC,EAAE,IAAIiB,GAAG,CAAC,CAAE,CACd,CAAC;IACDlC,cAAc,CAAEd,WAAY,CAAC;IAC7BQ,QAAQ,CAAE;MAAEF,OAAO,EAAEqC;IAAI,CAAE,CAAC;EAC7B,CAAC;EACD,oBACC5C,IAAA,CAACX,cAAc;IACd6D,qBAAqB;IACrBC,KAAK,EAAG/D,EAAE,CAAE,SAAU,CAAG;IACzBwB,KAAK,EAAGA,KAAO;IACfwC,aAAa,EAAGpC,eAAiB;IACjCF,WAAW,EAAGA,WAAa;IAC3BL,QAAQ,EAAGiC,cAAgB;IAC3BW,uBAAuB,EAAG,KAAO;IACjCC,uBAAuB;EAAA,CACvB,CAAC;AAEJ;AAEA,eAAehD,aAAa","ignoreList":[]}
|
|
@@ -114,7 +114,7 @@ function TaxonomyItem({
|
|
|
114
114
|
searchResults: getEntityRecords(...selectorArgs),
|
|
115
115
|
searchHasResolved: hasFinishedResolution('getEntityRecords', selectorArgs)
|
|
116
116
|
};
|
|
117
|
-
}, [search, termIds]);
|
|
117
|
+
}, [search, taxonomy.slug, termIds]);
|
|
118
118
|
// `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.
|
|
119
119
|
// They are used to extract the terms' names to populate the `FormTokenField` properly
|
|
120
120
|
// and to sanitize the provided `termIds`, by setting only the ones that exist.
|
|
@@ -130,7 +130,7 @@ function TaxonomyItem({
|
|
|
130
130
|
include: termIds,
|
|
131
131
|
per_page: termIds.length
|
|
132
132
|
});
|
|
133
|
-
}, [termIds]);
|
|
133
|
+
}, [taxonomy.slug, termIds]);
|
|
134
134
|
// Update the `value` state only after the selectors are resolved
|
|
135
135
|
// to avoid emptying the input when we're changing terms.
|
|
136
136
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FormTokenField","__experimentalVStack","VStack","useSelect","store","coreStore","useState","useEffect","useDebounce","decodeEntities","useTaxonomies","jsx","_jsx","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","getTermIdByTermValue","terms","termValue","termId","id","find","term","name","termValueLower","toLocaleLowerCase","TaxonomyControls","onChange","query","postType","taxQuery","taxonomies","length","spacing","children","map","taxonomy","termIds","slug","handleChange","newTermIds","TaxonomyItem","search","setSearch","value","setValue","suggestions","setSuggestions","debouncedSearch","searchResults","searchHasResolved","select","getEntityRecords","hasFinishedResolution","selectorArgs","orderby","exclude","per_page","existingTerms","include","sanitizedValue","reduce","accumulator","entity","push","result","onTermsChange","newTermValues","Set","add","Array","from","className","label","onInputChange","displayTransform","__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":["FormTokenField","__experimentalVStack","VStack","useSelect","store","coreStore","useState","useEffect","useDebounce","decodeEntities","useTaxonomies","jsx","_jsx","EMPTY_ARRAY","BASE_QUERY","order","_fields","context","getTermIdByTermValue","terms","termValue","termId","id","find","term","name","termValueLower","toLocaleLowerCase","TaxonomyControls","onChange","query","postType","taxQuery","taxonomies","length","spacing","children","map","taxonomy","termIds","slug","handleChange","newTermIds","TaxonomyItem","search","setSearch","value","setValue","suggestions","setSuggestions","debouncedSearch","searchResults","searchHasResolved","select","getEntityRecords","hasFinishedResolution","selectorArgs","orderby","exclude","per_page","existingTerms","include","sanitizedValue","reduce","accumulator","entity","push","result","onTermsChange","newTermValues","Set","add","Array","from","className","label","onInputChange","displayTransform","__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":[]}
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
5
|
import { useInstanceId } from '@wordpress/compose';
|
|
6
6
|
import { useEffect, useCallback } from '@wordpress/element';
|
|
7
|
-
import { BlockControls, InspectorControls, useBlockProps, store as blockEditorStore, useInnerBlocksProps } from '@wordpress/block-editor';
|
|
8
|
-
import { SelectControl } from '@wordpress/components';
|
|
7
|
+
import { BlockControls, InspectorControls, useBlockProps, store as blockEditorStore, useInnerBlocksProps, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
9
8
|
import { __ } from '@wordpress/i18n';
|
|
10
9
|
import { store as coreStore } from '@wordpress/core-data';
|
|
11
10
|
|
|
@@ -13,12 +12,15 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
13
12
|
* Internal dependencies
|
|
14
13
|
*/
|
|
15
14
|
import EnhancedPaginationControl from './inspector-controls/enhanced-pagination-control';
|
|
15
|
+
import { unlock } from '../../lock-unlock';
|
|
16
16
|
import QueryInspectorControls from './inspector-controls';
|
|
17
17
|
import EnhancedPaginationModal from './enhanced-pagination-modal';
|
|
18
18
|
import { getQueryContextFromTemplate } from '../utils';
|
|
19
19
|
import QueryToolbar from './query-toolbar';
|
|
20
|
-
import { htmlElementMessages } from '../../utils/messages';
|
|
21
20
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
21
|
+
const {
|
|
22
|
+
HTMLElementControl
|
|
23
|
+
} = unlock(blockEditorPrivateApis);
|
|
22
24
|
const DEFAULTS_POSTS_PER_PAGE = 3;
|
|
23
25
|
const TEMPLATE = [['core/post-template']];
|
|
24
26
|
export default function QueryContent({
|
|
@@ -31,7 +33,6 @@ export default function QueryContent({
|
|
|
31
33
|
const {
|
|
32
34
|
queryId,
|
|
33
35
|
query,
|
|
34
|
-
displayLayout,
|
|
35
36
|
enhancedPagination,
|
|
36
37
|
tagName: TagName = 'div',
|
|
37
38
|
query: {
|
|
@@ -85,12 +86,12 @@ export default function QueryContent({
|
|
|
85
86
|
// Changes in query property (which is an object) need to be in the same callback,
|
|
86
87
|
// because updates are batched after the render and changes in different query properties
|
|
87
88
|
// would cause to override previous wanted changes.
|
|
88
|
-
const updateQuery = useCallback(newQuery => setAttributes({
|
|
89
|
+
const updateQuery = useCallback(newQuery => setAttributes(prevAttributes => ({
|
|
89
90
|
query: {
|
|
90
|
-
...query,
|
|
91
|
+
...prevAttributes.query,
|
|
91
92
|
...newQuery
|
|
92
93
|
}
|
|
93
|
-
}), [
|
|
94
|
+
})), [setAttributes]);
|
|
94
95
|
useEffect(() => {
|
|
95
96
|
const newQuery = {};
|
|
96
97
|
// When we inherit from global query always need to set the `perPage`
|
|
@@ -100,16 +101,11 @@ export default function QueryContent({
|
|
|
100
101
|
} else if (!query.perPage && postsPerPage) {
|
|
101
102
|
newQuery.perPage = postsPerPage;
|
|
102
103
|
}
|
|
103
|
-
// We need to reset the `inherit` value if in a singular template, as queries
|
|
104
|
-
// are not inherited when in singular content (e.g. post, page, 404, blank).
|
|
105
|
-
if (isSingular && query.inherit) {
|
|
106
|
-
newQuery.inherit = false;
|
|
107
|
-
}
|
|
108
104
|
if (!!Object.keys(newQuery).length) {
|
|
109
105
|
__unstableMarkNextChangeAsNotPersistent();
|
|
110
106
|
updateQuery(newQuery);
|
|
111
107
|
}
|
|
112
|
-
}, [query.perPage,
|
|
108
|
+
}, [query.perPage, inherit, postsPerPage, __unstableMarkNextChangeAsNotPersistent, updateQuery]);
|
|
113
109
|
// We need this for multi-query block pagination.
|
|
114
110
|
// Query parameters for each block are scoped to their ID.
|
|
115
111
|
useEffect(() => {
|
|
@@ -120,12 +116,6 @@ export default function QueryContent({
|
|
|
120
116
|
});
|
|
121
117
|
}
|
|
122
118
|
}, [queryId, instanceId, __unstableMarkNextChangeAsNotPersistent, setAttributes]);
|
|
123
|
-
const updateDisplayLayout = newDisplayLayout => setAttributes({
|
|
124
|
-
displayLayout: {
|
|
125
|
-
...displayLayout,
|
|
126
|
-
...newDisplayLayout
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
119
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
130
120
|
children: [/*#__PURE__*/_jsx(EnhancedPaginationModal, {
|
|
131
121
|
attributes: attributes,
|
|
@@ -136,7 +126,6 @@ export default function QueryContent({
|
|
|
136
126
|
name: name,
|
|
137
127
|
attributes: attributes,
|
|
138
128
|
setQuery: updateQuery,
|
|
139
|
-
setDisplayLayout: updateDisplayLayout,
|
|
140
129
|
setAttributes: setAttributes,
|
|
141
130
|
clientId: clientId,
|
|
142
131
|
isSingular: isSingular
|
|
@@ -148,10 +137,12 @@ export default function QueryContent({
|
|
|
148
137
|
})
|
|
149
138
|
}), /*#__PURE__*/_jsxs(InspectorControls, {
|
|
150
139
|
group: "advanced",
|
|
151
|
-
children: [/*#__PURE__*/_jsx(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
140
|
+
children: [/*#__PURE__*/_jsx(HTMLElementControl, {
|
|
141
|
+
tagName: TagName,
|
|
142
|
+
onChange: value => setAttributes({
|
|
143
|
+
tagName: value
|
|
144
|
+
}),
|
|
145
|
+
clientId: clientId,
|
|
155
146
|
options: [{
|
|
156
147
|
label: __('Default (<div>)'),
|
|
157
148
|
value: 'div'
|
|
@@ -164,12 +155,7 @@ export default function QueryContent({
|
|
|
164
155
|
}, {
|
|
165
156
|
label: '<aside>',
|
|
166
157
|
value: 'aside'
|
|
167
|
-
}]
|
|
168
|
-
value: TagName,
|
|
169
|
-
onChange: value => setAttributes({
|
|
170
|
-
tagName: value
|
|
171
|
-
}),
|
|
172
|
-
help: htmlElementMessages[TagName]
|
|
158
|
+
}]
|
|
173
159
|
}), /*#__PURE__*/_jsx(EnhancedPaginationControl, {
|
|
174
160
|
enhancedPagination: enhancedPagination,
|
|
175
161
|
setAttributes: setAttributes,
|