@wordpress/block-library 9.30.1-next.836ecdcae.0 → 9.30.1-next.a730c9c8c.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/build/button/edit.js +6 -1
- package/build/button/edit.js.map +1 -1
- package/build/button/edit.native.js +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/buttons/index.js +2 -1
- package/build/buttons/index.js.map +1 -1
- package/build/categories/edit.js +3 -1
- package/build/categories/edit.js.map +1 -1
- package/build/image/edit.native.js +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +5 -8
- package/build/image/image.js.map +1 -1
- package/build/image/save.js +6 -2
- package/build/image/save.js.map +1 -1
- package/build/index.js +4 -0
- package/build/index.js.map +1 -1
- package/build/navigation/edit/index.js +0 -1
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation-link/block-inserter.js +69 -0
- package/build/navigation-link/block-inserter.js.map +1 -0
- package/build/navigation-link/dialog-wrapper.js +80 -0
- package/build/navigation-link/dialog-wrapper.js.map +1 -0
- package/build/navigation-link/link-ui.js +34 -82
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-link/page-creator.js +12 -18
- package/build/navigation-link/page-creator.js.map +1 -1
- package/build/post-date/edit.js +2 -1
- package/build/post-date/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +7 -2
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-title/edit.js +8 -2
- package/build/post-title/edit.js.map +1 -1
- package/build/query/edit/pattern-selection.js +9 -1
- package/build/query/edit/pattern-selection.js.map +1 -1
- package/build/query/index.js +2 -1
- package/build/query/index.js.map +1 -1
- package/build/rss/edit.js +6 -1
- package/build/rss/edit.js.map +1 -1
- package/build/site-tagline/index.js +1 -0
- package/build/site-tagline/index.js.map +1 -1
- package/build/social-link/edit.js +6 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/index.js +2 -1
- package/build/social-links/index.js.map +1 -1
- package/build/spacer/edit.js +2 -1
- package/build/spacer/edit.js.map +1 -1
- package/build/table-of-contents/edit.js +33 -9
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/table-of-contents/index.js +4 -0
- package/build/table-of-contents/index.js.map +1 -1
- package/build/table-of-contents/list.js +6 -3
- package/build/table-of-contents/list.js.map +1 -1
- package/build/table-of-contents/save.js +6 -3
- package/build/table-of-contents/save.js.map +1 -1
- package/build/term-template/edit.js +318 -0
- package/build/term-template/edit.js.map +1 -0
- package/build/term-template/index.js +109 -0
- package/build/term-template/index.js.map +1 -0
- package/build/term-template/save.js +16 -0
- package/build/term-template/save.js.map +1 -0
- package/build/term-template/variations.js +83 -0
- package/build/term-template/variations.js.map +1 -0
- package/build/terms-query/edit.js +20 -0
- package/build/terms-query/edit.js.map +1 -0
- package/build/terms-query/index.js +83 -0
- package/build/terms-query/index.js.map +1 -0
- package/build/terms-query/inspector-controls.js +231 -0
- package/build/terms-query/inspector-controls.js.map +1 -0
- package/build/terms-query/save.js +24 -0
- package/build/terms-query/save.js.map +1 -0
- package/build/terms-query/terms-query-content.js +71 -0
- package/build/terms-query/terms-query-content.js.map +1 -0
- package/build/utils/hooks.js +3 -0
- package/build/utils/hooks.js.map +1 -1
- package/build-module/button/edit.js +7 -2
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/edit.native.js +1 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/buttons/index.js +2 -1
- package/build-module/buttons/index.js.map +1 -1
- package/build-module/categories/edit.js +3 -1
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/image/edit.native.js +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +5 -8
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/save.js +6 -2
- package/build-module/image/save.js.map +1 -1
- package/build-module/index.js +4 -0
- package/build-module/index.js.map +1 -1
- package/build-module/navigation/edit/index.js +0 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation-link/block-inserter.js +61 -0
- package/build-module/navigation-link/block-inserter.js.map +1 -0
- package/build-module/navigation-link/dialog-wrapper.js +75 -0
- package/build-module/navigation-link/dialog-wrapper.js.map +1 -0
- package/build-module/navigation-link/link-ui.js +37 -85
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-link/page-creator.js +12 -19
- package/build-module/navigation-link/page-creator.js.map +1 -1
- package/build-module/post-date/edit.js +3 -2
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +9 -4
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-title/edit.js +9 -3
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/query/edit/pattern-selection.js +9 -1
- package/build-module/query/edit/pattern-selection.js.map +1 -1
- package/build-module/query/index.js +2 -1
- package/build-module/query/index.js.map +1 -1
- package/build-module/rss/edit.js +8 -3
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/site-tagline/index.js +1 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/social-link/edit.js +8 -3
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/index.js +2 -1
- package/build-module/social-links/index.js.map +1 -1
- package/build-module/spacer/edit.js +3 -2
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js +35 -11
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/table-of-contents/index.js +4 -0
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/table-of-contents/list.js +6 -3
- package/build-module/table-of-contents/list.js.map +1 -1
- package/build-module/table-of-contents/save.js +6 -3
- package/build-module/table-of-contents/save.js.map +1 -1
- package/build-module/term-template/edit.js +310 -0
- package/build-module/term-template/edit.js.map +1 -0
- package/build-module/term-template/index.js +102 -0
- package/build-module/term-template/index.js.map +1 -0
- package/build-module/term-template/save.js +9 -0
- package/build-module/term-template/save.js.map +1 -0
- package/build-module/term-template/variations.js +76 -0
- package/build-module/term-template/variations.js.map +1 -0
- package/build-module/terms-query/edit.js +12 -0
- package/build-module/terms-query/edit.js.map +1 -0
- package/build-module/terms-query/index.js +76 -0
- package/build-module/terms-query/index.js.map +1 -0
- package/build-module/terms-query/inspector-controls.js +224 -0
- package/build-module/terms-query/inspector-controls.js.map +1 -0
- package/build-module/terms-query/save.js +17 -0
- package/build-module/terms-query/save.js.map +1 -0
- package/build-module/terms-query/terms-query-content.js +63 -0
- package/build-module/terms-query/terms-query-content.js.map +1 -0
- package/build-module/utils/hooks.js +3 -0
- package/build-module/utils/hooks.js.map +1 -1
- package/build-style/editor-rtl.css +24 -0
- package/build-style/editor.css +24 -0
- package/build-style/style-rtl.css +16 -0
- package/build-style/style.css +16 -0
- package/build-style/term-template/editor-rtl.css +160 -0
- package/build-style/term-template/editor.css +160 -0
- package/build-style/term-template/style-rtl.css +146 -0
- package/build-style/term-template/style.css +146 -0
- package/build-style/terms-query/style-rtl.css +140 -0
- package/build-style/terms-query/style.css +140 -0
- package/build-types/table-of-contents/list.d.ts +2 -1
- package/build-types/table-of-contents/list.d.ts.map +1 -1
- package/package.json +35 -35
- package/src/button/edit.js +12 -1
- package/src/button/edit.native.js +1 -1
- package/src/buttons/block.json +2 -1
- package/src/categories/edit.js +2 -1
- package/src/editor.scss +1 -0
- package/src/image/edit.native.js +1 -1
- package/src/image/image.js +5 -8
- package/src/image/save.js +7 -1
- package/src/index.js +4 -0
- package/src/navigation/edit/index.js +0 -1
- package/src/navigation-link/block-inserter.js +65 -0
- package/src/navigation-link/dialog-wrapper.js +74 -0
- package/src/navigation-link/link-ui.js +32 -95
- package/src/navigation-link/page-creator.js +13 -20
- package/src/post-date/edit.js +64 -53
- package/src/post-date/index.php +5 -13
- package/src/post-featured-image/edit.js +19 -3
- package/src/post-title/edit.js +14 -2
- package/src/query/block.json +2 -1
- package/src/query/edit/pattern-selection.js +10 -1
- package/src/rss/edit.js +13 -2
- package/src/site-tagline/block.json +1 -0
- package/src/social-link/edit.js +13 -2
- package/src/social-links/block.json +2 -1
- package/src/spacer/edit.js +5 -1
- package/src/style.scss +2 -0
- package/src/table-of-contents/block.json +4 -0
- package/src/table-of-contents/edit.js +58 -21
- package/src/table-of-contents/list.tsx +7 -2
- package/src/table-of-contents/save.js +7 -3
- package/src/term-template/block.json +73 -0
- package/src/term-template/edit.js +391 -0
- package/src/term-template/editor.scss +26 -0
- package/src/term-template/index.js +26 -0
- package/src/term-template/index.php +224 -0
- package/src/term-template/save.js +8 -0
- package/src/term-template/style.scss +12 -0
- package/src/term-template/variations.js +87 -0
- package/src/terms-query/block.json +49 -0
- package/src/terms-query/edit.js +10 -0
- package/src/terms-query/index.js +24 -0
- package/src/terms-query/index.php +44 -0
- package/src/terms-query/inspector-controls.js +239 -0
- package/src/terms-query/save.js +10 -0
- package/src/terms-query/style.scss +6 -0
- package/src/terms-query/terms-query-content.js +74 -0
- package/src/utils/hooks.js +4 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { memo, useMemo, useState } from '@wordpress/element';
|
|
10
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
11
|
+
import { layout } from '@wordpress/icons';
|
|
12
|
+
import { __ } from '@wordpress/i18n';
|
|
13
|
+
import { BlockContextProvider, __experimentalUseBlockPreview as useBlockPreview, __experimentalBlockVariationPicker as BlockVariationPicker, useBlockProps, useInnerBlocksProps, store as blockEditorStore } from '@wordpress/block-editor';
|
|
14
|
+
import { useEntityRecords } from '@wordpress/core-data';
|
|
15
|
+
import { createBlocksFromInnerBlocksTemplate, store as blocksStore } from '@wordpress/blocks';
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
|
+
const TEMPLATE = [['core/group', {
|
|
18
|
+
layout: {
|
|
19
|
+
type: 'flex',
|
|
20
|
+
orientation: 'horizontal'
|
|
21
|
+
},
|
|
22
|
+
style: {
|
|
23
|
+
spacing: {
|
|
24
|
+
blockGap: '0.5rem'
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
metadata: {
|
|
28
|
+
name: __('Term Name with Count')
|
|
29
|
+
}
|
|
30
|
+
}, [['core/paragraph', {
|
|
31
|
+
metadata: {
|
|
32
|
+
name: __('Term Name'),
|
|
33
|
+
bindings: {
|
|
34
|
+
content: {
|
|
35
|
+
source: 'core/term-data',
|
|
36
|
+
args: {
|
|
37
|
+
key: 'name'
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}], ['core/paragraph', {
|
|
43
|
+
placeholder: __('(count)'),
|
|
44
|
+
metadata: {
|
|
45
|
+
name: __('Term Count'),
|
|
46
|
+
bindings: {
|
|
47
|
+
content: {
|
|
48
|
+
source: 'core/term-data',
|
|
49
|
+
args: {
|
|
50
|
+
key: 'count'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}]]]];
|
|
56
|
+
function TermTemplateInnerBlocks({
|
|
57
|
+
classList
|
|
58
|
+
}) {
|
|
59
|
+
const innerBlocksProps = useInnerBlocksProps({
|
|
60
|
+
className: clsx('wp-block-term', classList)
|
|
61
|
+
}, {
|
|
62
|
+
template: TEMPLATE,
|
|
63
|
+
__unstableDisableLayoutClassNames: true
|
|
64
|
+
});
|
|
65
|
+
return /*#__PURE__*/_jsx("li", {
|
|
66
|
+
...innerBlocksProps
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function TermTemplateBlockPreview({
|
|
70
|
+
blocks,
|
|
71
|
+
blockContextId,
|
|
72
|
+
classList,
|
|
73
|
+
isHidden,
|
|
74
|
+
setActiveBlockContextId
|
|
75
|
+
}) {
|
|
76
|
+
const blockPreviewProps = useBlockPreview({
|
|
77
|
+
blocks,
|
|
78
|
+
props: {
|
|
79
|
+
className: clsx('wp-block-term', classList)
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
const handleOnClick = () => {
|
|
83
|
+
setActiveBlockContextId(blockContextId);
|
|
84
|
+
};
|
|
85
|
+
const style = {
|
|
86
|
+
display: isHidden ? 'none' : undefined
|
|
87
|
+
};
|
|
88
|
+
return /*#__PURE__*/_jsx("li", {
|
|
89
|
+
...blockPreviewProps,
|
|
90
|
+
tabIndex: 0
|
|
91
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
|
|
92
|
+
,
|
|
93
|
+
role: "button",
|
|
94
|
+
onClick: handleOnClick,
|
|
95
|
+
onKeyPress: handleOnClick,
|
|
96
|
+
style: style
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Prevent re-rendering of the block preview when the terms data changes.
|
|
101
|
+
const MemoizedTermTemplateBlockPreview = memo(TermTemplateBlockPreview);
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Builds a hierarchical tree structure from flat terms array.
|
|
105
|
+
*
|
|
106
|
+
* @param {Array} terms Array of term objects.
|
|
107
|
+
* @return {Array} Tree structure with parent/child relationships.
|
|
108
|
+
*/
|
|
109
|
+
function buildTermsTree(terms) {
|
|
110
|
+
const termsById = {};
|
|
111
|
+
const rootTerms = [];
|
|
112
|
+
terms.forEach(term => {
|
|
113
|
+
termsById[term.id] = {
|
|
114
|
+
term,
|
|
115
|
+
children: []
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
terms.forEach(term => {
|
|
119
|
+
if (term.parent && termsById[term.parent]) {
|
|
120
|
+
termsById[term.parent].children.push(termsById[term.id]);
|
|
121
|
+
} else {
|
|
122
|
+
rootTerms.push(termsById[term.id]);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return rootTerms;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Renders a single term node and its children recursively.
|
|
130
|
+
*
|
|
131
|
+
* @param {Object} termNode Term node with term object and children.
|
|
132
|
+
* @param {Function} renderTerm Function to render individual terms.
|
|
133
|
+
* @return {JSX.Element} Rendered term node with children.
|
|
134
|
+
*/
|
|
135
|
+
function renderTermNode(termNode, renderTerm) {
|
|
136
|
+
return /*#__PURE__*/_jsxs("li", {
|
|
137
|
+
className: "wp-block-term",
|
|
138
|
+
children: [renderTerm(termNode.term), termNode.children.length > 0 && /*#__PURE__*/_jsx("ul", {
|
|
139
|
+
children: termNode.children.map(child => renderTermNode(child, renderTerm))
|
|
140
|
+
})]
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Checks if a term is the currently active term.
|
|
146
|
+
*
|
|
147
|
+
* @param {number} termId The term ID to check.
|
|
148
|
+
* @param {number} activeBlockContextId The currently active block context ID.
|
|
149
|
+
* @param {Array} blockContexts Array of block contexts.
|
|
150
|
+
* @return {boolean} True if the term is active, false otherwise.
|
|
151
|
+
*/
|
|
152
|
+
function isActiveTerm(termId, activeBlockContextId, blockContexts) {
|
|
153
|
+
return termId === (activeBlockContextId || blockContexts[0]?.termId);
|
|
154
|
+
}
|
|
155
|
+
export default function TermTemplateEdit({
|
|
156
|
+
clientId,
|
|
157
|
+
setAttributes,
|
|
158
|
+
context: {
|
|
159
|
+
termQuery: {
|
|
160
|
+
taxonomy,
|
|
161
|
+
order,
|
|
162
|
+
orderBy,
|
|
163
|
+
hideEmpty,
|
|
164
|
+
hierarchical,
|
|
165
|
+
parent,
|
|
166
|
+
perPage = 10
|
|
167
|
+
} = {}
|
|
168
|
+
},
|
|
169
|
+
__unstableLayoutClassNames
|
|
170
|
+
}) {
|
|
171
|
+
const [activeBlockContextId, setActiveBlockContextId] = useState();
|
|
172
|
+
const {
|
|
173
|
+
replaceInnerBlocks
|
|
174
|
+
} = useDispatch(blockEditorStore);
|
|
175
|
+
const queryArgs = {
|
|
176
|
+
order,
|
|
177
|
+
orderby: orderBy,
|
|
178
|
+
hide_empty: hideEmpty,
|
|
179
|
+
// To preview the data the closest to the frontend, we fetch the largest number of terms
|
|
180
|
+
// and limit them during rendering. This is because WP_Term_Query fetches data in hierarchical manner,
|
|
181
|
+
// while in editor we build the hierarchy manually. It also allows us to avoid re-fetching data when max terms changes.
|
|
182
|
+
per_page: 100
|
|
183
|
+
};
|
|
184
|
+
const {
|
|
185
|
+
records: terms,
|
|
186
|
+
isResolving
|
|
187
|
+
} = useEntityRecords('taxonomy', taxonomy, queryArgs);
|
|
188
|
+
|
|
189
|
+
// Filter to show only top-level terms if "Show only top-level terms" is enabled.
|
|
190
|
+
const filteredTerms = useMemo(() => {
|
|
191
|
+
if (!terms || parent !== 0) {
|
|
192
|
+
return terms;
|
|
193
|
+
}
|
|
194
|
+
return terms.filter(term => !term.parent);
|
|
195
|
+
}, [terms, parent]);
|
|
196
|
+
const {
|
|
197
|
+
blocks,
|
|
198
|
+
variations,
|
|
199
|
+
defaultVariation
|
|
200
|
+
} = useSelect(select => {
|
|
201
|
+
const {
|
|
202
|
+
getBlocks
|
|
203
|
+
} = select(blockEditorStore);
|
|
204
|
+
const {
|
|
205
|
+
getBlockVariations,
|
|
206
|
+
getDefaultBlockVariation
|
|
207
|
+
} = select(blocksStore);
|
|
208
|
+
return {
|
|
209
|
+
blocks: getBlocks(clientId),
|
|
210
|
+
variations: getBlockVariations('core/term-template', 'block'),
|
|
211
|
+
defaultVariation: getDefaultBlockVariation('core/term-template', 'block')
|
|
212
|
+
};
|
|
213
|
+
}, [clientId]);
|
|
214
|
+
const blockProps = useBlockProps({
|
|
215
|
+
className: __unstableLayoutClassNames
|
|
216
|
+
});
|
|
217
|
+
const blockContexts = useMemo(() => filteredTerms?.map(term => ({
|
|
218
|
+
taxonomy,
|
|
219
|
+
termId: term.id,
|
|
220
|
+
classList: `term-${term.id}`,
|
|
221
|
+
termData: term
|
|
222
|
+
})), [filteredTerms, taxonomy]);
|
|
223
|
+
|
|
224
|
+
// Show variation picker if no blocks exist.
|
|
225
|
+
if (!blocks?.length) {
|
|
226
|
+
return /*#__PURE__*/_jsx("div", {
|
|
227
|
+
...blockProps,
|
|
228
|
+
children: /*#__PURE__*/_jsx(BlockVariationPicker, {
|
|
229
|
+
icon: layout,
|
|
230
|
+
label: __('Term Template'),
|
|
231
|
+
variations: variations,
|
|
232
|
+
instructions: __('Choose a layout for displaying terms:'),
|
|
233
|
+
onSelect: (nextVariation = defaultVariation) => {
|
|
234
|
+
if (nextVariation.attributes) {
|
|
235
|
+
setAttributes(nextVariation.attributes);
|
|
236
|
+
}
|
|
237
|
+
if (nextVariation.innerBlocks) {
|
|
238
|
+
replaceInnerBlocks(clientId, createBlocksFromInnerBlocksTemplate(nextVariation.innerBlocks), true);
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
allowSkip: true
|
|
242
|
+
})
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
if (isResolving) {
|
|
246
|
+
return /*#__PURE__*/_jsxs("ul", {
|
|
247
|
+
...blockProps,
|
|
248
|
+
children: [/*#__PURE__*/_jsx("li", {
|
|
249
|
+
className: "wp-block-term term-loading",
|
|
250
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
251
|
+
className: "term-loading-placeholder"
|
|
252
|
+
})
|
|
253
|
+
}), /*#__PURE__*/_jsx("li", {
|
|
254
|
+
className: "wp-block-term term-loading",
|
|
255
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
256
|
+
className: "term-loading-placeholder"
|
|
257
|
+
})
|
|
258
|
+
}), /*#__PURE__*/_jsx("li", {
|
|
259
|
+
className: "wp-block-term term-loading",
|
|
260
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
261
|
+
className: "term-loading-placeholder"
|
|
262
|
+
})
|
|
263
|
+
})]
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
if (!filteredTerms?.length) {
|
|
267
|
+
return /*#__PURE__*/_jsxs("p", {
|
|
268
|
+
...blockProps,
|
|
269
|
+
children: [" ", __('No terms found.')]
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
const renderTerm = term => {
|
|
273
|
+
const blockContext = {
|
|
274
|
+
taxonomy,
|
|
275
|
+
termId: term.id,
|
|
276
|
+
classList: `term-${term.id}`,
|
|
277
|
+
termData: term
|
|
278
|
+
};
|
|
279
|
+
return /*#__PURE__*/_jsxs(BlockContextProvider, {
|
|
280
|
+
value: blockContext,
|
|
281
|
+
children: [isActiveTerm(term.id, activeBlockContextId, blockContexts) ? /*#__PURE__*/_jsx(TermTemplateInnerBlocks, {
|
|
282
|
+
classList: blockContext.classList
|
|
283
|
+
}) : null, /*#__PURE__*/_jsx(MemoizedTermTemplateBlockPreview, {
|
|
284
|
+
blocks: blocks,
|
|
285
|
+
blockContextId: term.id,
|
|
286
|
+
classList: blockContext.classList,
|
|
287
|
+
setActiveBlockContextId: setActiveBlockContextId,
|
|
288
|
+
isHidden: isActiveTerm(term.id, activeBlockContextId, blockContexts)
|
|
289
|
+
})]
|
|
290
|
+
}, term.id);
|
|
291
|
+
};
|
|
292
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
293
|
+
children: /*#__PURE__*/_jsx("ul", {
|
|
294
|
+
...blockProps,
|
|
295
|
+
children: hierarchical ? buildTermsTree(filteredTerms).map(termNode => renderTermNode(termNode, renderTerm)) : blockContexts && blockContexts.slice(0, perPage).map(blockContext => /*#__PURE__*/_jsxs(BlockContextProvider, {
|
|
296
|
+
value: blockContext,
|
|
297
|
+
children: [blockContext.termId === (activeBlockContextId || blockContexts[0]?.termId) ? /*#__PURE__*/_jsx(TermTemplateInnerBlocks, {
|
|
298
|
+
classList: blockContext.classList
|
|
299
|
+
}) : null, /*#__PURE__*/_jsx(MemoizedTermTemplateBlockPreview, {
|
|
300
|
+
blocks: blocks,
|
|
301
|
+
blockContextId: blockContext.termId,
|
|
302
|
+
classList: blockContext.classList,
|
|
303
|
+
setActiveBlockContextId: setActiveBlockContextId,
|
|
304
|
+
isHidden: blockContext.termId === (activeBlockContextId || blockContexts[0]?.termId)
|
|
305
|
+
})]
|
|
306
|
+
}, blockContext.termId))
|
|
307
|
+
})
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["clsx","memo","useMemo","useState","useSelect","useDispatch","layout","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","__experimentalBlockVariationPicker","BlockVariationPicker","useBlockProps","useInnerBlocksProps","store","blockEditorStore","useEntityRecords","createBlocksFromInnerBlocksTemplate","blocksStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TEMPLATE","type","orientation","style","spacing","blockGap","metadata","name","bindings","content","source","args","key","placeholder","TermTemplateInnerBlocks","classList","innerBlocksProps","className","template","__unstableDisableLayoutClassNames","TermTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","display","undefined","tabIndex","role","onClick","onKeyPress","MemoizedTermTemplateBlockPreview","buildTermsTree","terms","termsById","rootTerms","forEach","term","id","children","parent","push","renderTermNode","termNode","renderTerm","length","map","child","isActiveTerm","termId","activeBlockContextId","blockContexts","TermTemplateEdit","clientId","setAttributes","context","termQuery","taxonomy","order","orderBy","hideEmpty","hierarchical","perPage","__unstableLayoutClassNames","replaceInnerBlocks","queryArgs","orderby","hide_empty","per_page","records","isResolving","filteredTerms","filter","variations","defaultVariation","select","getBlocks","getBlockVariations","getDefaultBlockVariation","blockProps","termData","icon","label","instructions","onSelect","nextVariation","attributes","innerBlocks","allowSkip","blockContext","value","slice"],"sources":["@wordpress/block-library/src/term-template/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\t__experimentalBlockVariationPicker as BlockVariationPicker,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/group',\n\t\t{\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\torientation: 'horizontal',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tblockGap: '0.5rem',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\tname: __( 'Term Name with Count' ),\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Name' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'name',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tplaceholder: __( '(count)' ),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Count' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'count',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\n\nfunction TermTemplateInnerBlocks( { classList } ) {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: clsx( 'wp-block-term', classList ) },\n\t\t{ template: TEMPLATE, __unstableDisableLayoutClassNames: true }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction TermTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tclassList,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: clsx( 'wp-block-term', classList ),\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\n// Prevent re-rendering of the block preview when the terms data changes.\nconst MemoizedTermTemplateBlockPreview = memo( TermTemplateBlockPreview );\n\n/**\n * Builds a hierarchical tree structure from flat terms array.\n *\n * @param {Array} terms Array of term objects.\n * @return {Array} Tree structure with parent/child relationships.\n */\nfunction buildTermsTree( terms ) {\n\tconst termsById = {};\n\tconst rootTerms = [];\n\n\tterms.forEach( ( term ) => {\n\t\ttermsById[ term.id ] = {\n\t\t\tterm,\n\t\t\tchildren: [],\n\t\t};\n\t} );\n\n\tterms.forEach( ( term ) => {\n\t\tif ( term.parent && termsById[ term.parent ] ) {\n\t\t\ttermsById[ term.parent ].children.push( termsById[ term.id ] );\n\t\t} else {\n\t\t\trootTerms.push( termsById[ term.id ] );\n\t\t}\n\t} );\n\n\treturn rootTerms;\n}\n\n/**\n * Renders a single term node and its children recursively.\n *\n * @param {Object} termNode Term node with term object and children.\n * @param {Function} renderTerm Function to render individual terms.\n * @return {JSX.Element} Rendered term node with children.\n */\nfunction renderTermNode( termNode, renderTerm ) {\n\treturn (\n\t\t<li className=\"wp-block-term\">\n\t\t\t{ renderTerm( termNode.term ) }\n\t\t\t{ termNode.children.length > 0 && (\n\t\t\t\t<ul>\n\t\t\t\t\t{ termNode.children.map( ( child ) =>\n\t\t\t\t\t\trenderTermNode( child, renderTerm )\n\t\t\t\t\t) }\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\n/**\n * Checks if a term is the currently active term.\n *\n * @param {number} termId The term ID to check.\n * @param {number} activeBlockContextId The currently active block context ID.\n * @param {Array} blockContexts Array of block contexts.\n * @return {boolean} True if the term is active, false otherwise.\n */\nfunction isActiveTerm( termId, activeBlockContextId, blockContexts ) {\n\treturn termId === ( activeBlockContextId || blockContexts[ 0 ]?.termId );\n}\n\nexport default function TermTemplateEdit( {\n\tclientId,\n\tsetAttributes,\n\tcontext: {\n\t\ttermQuery: {\n\t\t\ttaxonomy,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\thideEmpty,\n\t\t\thierarchical,\n\t\t\tparent,\n\t\t\tperPage = 10,\n\t\t} = {},\n\t},\n\t__unstableLayoutClassNames,\n} ) {\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst queryArgs = {\n\t\torder,\n\t\torderby: orderBy,\n\t\thide_empty: hideEmpty,\n\t\t// To preview the data the closest to the frontend, we fetch the largest number of terms\n\t\t// and limit them during rendering. This is because WP_Term_Query fetches data in hierarchical manner,\n\t\t// while in editor we build the hierarchy manually. It also allows us to avoid re-fetching data when max terms changes.\n\t\tper_page: 100,\n\t};\n\n\tconst { records: terms, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\tqueryArgs\n\t);\n\n\t// Filter to show only top-level terms if \"Show only top-level terms\" is enabled.\n\tconst filteredTerms = useMemo( () => {\n\t\tif ( ! terms || parent !== 0 ) {\n\t\t\treturn terms;\n\t\t}\n\t\treturn terms.filter( ( term ) => ! term.parent );\n\t}, [ terms, parent ] );\n\n\tconst { blocks, variations, defaultVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t\tvariations: getBlockVariations( 'core/term-template', 'block' ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation(\n\t\t\t\t\t'core/term-template',\n\t\t\t\t\t'block'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: __unstableLayoutClassNames,\n\t} );\n\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tfilteredTerms?.map( ( term ) => ( {\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId: term.id,\n\t\t\t\tclassList: `term-${ term.id }`,\n\t\t\t\ttermData: term,\n\t\t\t} ) ),\n\t\t[ filteredTerms, taxonomy ]\n\t);\n\n\t// Show variation picker if no blocks exist.\n\tif ( ! blocks?.length ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<BlockVariationPicker\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tlabel={ __( 'Term Template' ) }\n\t\t\t\t\tvariations={ variations }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Choose a layout for displaying terms:'\n\t\t\t\t\t) }\n\t\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tallowSkip\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isResolving ) {\n\t\treturn (\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t);\n\t}\n\n\tif ( ! filteredTerms?.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No terms found.' ) }</p>;\n\t}\n\n\tconst renderTerm = ( term ) => {\n\t\tconst blockContext = {\n\t\t\ttaxonomy,\n\t\t\ttermId: term.id,\n\t\t\tclassList: `term-${ term.id }`,\n\t\t\ttermData: term,\n\t\t};\n\n\t\treturn (\n\t\t\t<BlockContextProvider key={ term.id } value={ blockContext }>\n\t\t\t\t{ isActiveTerm(\n\t\t\t\t\tterm.id,\n\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\tblockContexts\n\t\t\t\t) ? (\n\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tblockContextId={ term.id }\n\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\tisHidden={ isActiveTerm(\n\t\t\t\t\t\tterm.id,\n\t\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\t\tblockContexts\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</BlockContextProvider>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ hierarchical\n\t\t\t\t\t? buildTermsTree( filteredTerms ).map( ( termNode ) =>\n\t\t\t\t\t\t\trenderTermNode( termNode, renderTerm )\n\t\t\t\t\t )\n\t\t\t\t\t: blockContexts &&\n\t\t\t\t\t blockContexts\n\t\t\t\t\t\t\t.slice( 0, perPage )\n\t\t\t\t\t\t\t.map( ( blockContext ) => (\n\t\t\t\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\t\t\t\tkey={ blockContext.termId }\n\t\t\t\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ blockContext.termId ===\n\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId ) ? (\n\t\t\t\t\t\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tblockContextId={ blockContext.termId }\n\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId={\n\t\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\t\t\t\tblockContext.termId ===\n\t\t\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId )\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</BlockContextProvider>\n\t\t\t\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { layout as icon } from '@wordpress/icons';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import initBlock from '../utils/init-block';
|
|
10
|
+
const metadata = {
|
|
11
|
+
$schema: "https://schemas.wp.org/trunk/block.json",
|
|
12
|
+
apiVersion: 3,
|
|
13
|
+
__experimental: true,
|
|
14
|
+
name: "core/term-template",
|
|
15
|
+
title: "Term Template",
|
|
16
|
+
category: "theme",
|
|
17
|
+
ancestor: ["core/terms-query"],
|
|
18
|
+
description: "Contains the block elements used to render a taxonomy term, like the name, description, and more.",
|
|
19
|
+
textdomain: "default",
|
|
20
|
+
usesContext: ["termQuery"],
|
|
21
|
+
attributes: {
|
|
22
|
+
namespace: {
|
|
23
|
+
type: "string"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
supports: {
|
|
27
|
+
reusable: false,
|
|
28
|
+
html: false,
|
|
29
|
+
align: ["wide", "full"],
|
|
30
|
+
layout: {
|
|
31
|
+
allowSwitching: true,
|
|
32
|
+
allowEditing: true,
|
|
33
|
+
"default": {
|
|
34
|
+
type: "flex"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
color: {
|
|
38
|
+
gradients: true,
|
|
39
|
+
link: true,
|
|
40
|
+
__experimentalDefaultControls: {
|
|
41
|
+
background: true,
|
|
42
|
+
text: true
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
typography: {
|
|
46
|
+
fontSize: true,
|
|
47
|
+
lineHeight: true,
|
|
48
|
+
__experimentalFontFamily: true,
|
|
49
|
+
__experimentalFontWeight: true,
|
|
50
|
+
__experimentalFontStyle: true,
|
|
51
|
+
__experimentalTextTransform: true,
|
|
52
|
+
__experimentalTextDecoration: true,
|
|
53
|
+
__experimentalLetterSpacing: true,
|
|
54
|
+
__experimentalDefaultControls: {
|
|
55
|
+
fontSize: true
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
spacing: {
|
|
59
|
+
margin: true,
|
|
60
|
+
padding: true,
|
|
61
|
+
blockGap: {
|
|
62
|
+
__experimentalDefault: "1.25em"
|
|
63
|
+
},
|
|
64
|
+
__experimentalDefaultControls: {
|
|
65
|
+
blockGap: true,
|
|
66
|
+
padding: false,
|
|
67
|
+
margin: false
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
interactivity: {
|
|
71
|
+
clientNavigation: true
|
|
72
|
+
},
|
|
73
|
+
__experimentalBorder: {
|
|
74
|
+
radius: true,
|
|
75
|
+
color: true,
|
|
76
|
+
width: true,
|
|
77
|
+
style: true
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
style: "wp-block-term-template",
|
|
81
|
+
variations: "file:./variations.js"
|
|
82
|
+
};
|
|
83
|
+
import edit from './edit';
|
|
84
|
+
import save from './save';
|
|
85
|
+
import variations from './variations';
|
|
86
|
+
const {
|
|
87
|
+
name
|
|
88
|
+
} = metadata;
|
|
89
|
+
export { metadata, name };
|
|
90
|
+
export const settings = {
|
|
91
|
+
icon,
|
|
92
|
+
variations,
|
|
93
|
+
edit,
|
|
94
|
+
save,
|
|
95
|
+
example: {}
|
|
96
|
+
};
|
|
97
|
+
export const init = () => initBlock({
|
|
98
|
+
name,
|
|
99
|
+
metadata,
|
|
100
|
+
settings
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["layout","icon","initBlock","metadata","$schema","apiVersion","__experimental","name","title","category","ancestor","description","textdomain","usesContext","attributes","namespace","type","supports","reusable","html","align","allowSwitching","allowEditing","color","gradients","link","__experimentalDefaultControls","background","text","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","spacing","margin","padding","blockGap","__experimentalDefault","interactivity","clientNavigation","__experimentalBorder","radius","width","style","variations","edit","save","settings","example","init"],"sources":["@wordpress/block-library/src/term-template/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { layout as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tvariations,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAI,QAAQ,kBAAkB;;AAEjD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,QAAA;IAAAC,IAAA;IAAAC,KAAA;IAAApB,MAAA;MAAAqB,cAAA;MAAAC,YAAA;MAAA;QAAAN,IAAA;MAAA;IAAA;IAAAO,KAAA;MAAAC,SAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAX,6BAAA;QAAAI,QAAA;MAAA;IAAA;IAAAQ,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAC,QAAA;QAAAC,qBAAA;MAAA;MAAAhB,6BAAA;QAAAe,QAAA;QAAAD,OAAA;QAAAD,MAAA;MAAA;IAAA;IAAAI,aAAA;MAAAC,gBAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAvB,KAAA;MAAAwB,KAAA;MAAAC,KAAA;IAAA;EAAA;EAAAA,KAAA;EAAAC,UAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOF,UAAU,MAAM,cAAc;AAErC,MAAM;EAAE1C;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAM6C,QAAQ,GAAG;EACvBnD,IAAI;EACJgD,UAAU;EACVC,IAAI;EACJC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAMpD,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAEiD;AAAS,CAAE,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { InnerBlocks } from '@wordpress/block-editor';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export default function TermTemplateSave() {
|
|
7
|
+
return /*#__PURE__*/_jsx(InnerBlocks.Content, {});
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=save.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["InnerBlocks","jsx","_jsx","TermTemplateSave","Content"],"sources":["@wordpress/block-library/src/term-template/save.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function TermTemplateSave() {\n\treturn <InnerBlocks.Content />;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtD,eAAe,SAASC,gBAAgBA,CAAA,EAAG;EAC1C,oBAAOD,IAAA,CAACF,WAAW,CAACI,OAAO,IAAE,CAAC;AAC/B","ignoreList":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { list, grid } from '@wordpress/icons';
|
|
6
|
+
const createInnerBlocks = (groupMetadata, groupStyle = {}) => [['core/group', {
|
|
7
|
+
layout: {
|
|
8
|
+
type: 'flex',
|
|
9
|
+
orientation: 'horizontal'
|
|
10
|
+
},
|
|
11
|
+
style: {
|
|
12
|
+
spacing: {
|
|
13
|
+
blockGap: '0.5rem'
|
|
14
|
+
},
|
|
15
|
+
...groupStyle
|
|
16
|
+
},
|
|
17
|
+
metadata: {
|
|
18
|
+
name: groupMetadata
|
|
19
|
+
}
|
|
20
|
+
}, [['core/paragraph', {
|
|
21
|
+
metadata: {
|
|
22
|
+
name: __('Term Name'),
|
|
23
|
+
bindings: {
|
|
24
|
+
content: {
|
|
25
|
+
source: 'core/term-data',
|
|
26
|
+
args: {
|
|
27
|
+
key: 'name'
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}], ['core/paragraph', {
|
|
33
|
+
placeholder: __('(count)'),
|
|
34
|
+
metadata: {
|
|
35
|
+
name: __('Term Count'),
|
|
36
|
+
bindings: {
|
|
37
|
+
content: {
|
|
38
|
+
source: 'core/term-data',
|
|
39
|
+
args: {
|
|
40
|
+
key: 'count'
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}]]]];
|
|
46
|
+
const variations = [{
|
|
47
|
+
name: 'list',
|
|
48
|
+
title: __('List'),
|
|
49
|
+
description: __('Display terms in a list layout.'),
|
|
50
|
+
attributes: {
|
|
51
|
+
layout: {
|
|
52
|
+
type: 'default'
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
isDefault: true,
|
|
56
|
+
icon: list,
|
|
57
|
+
scope: ['block', 'inserter'],
|
|
58
|
+
innerBlocks: createInnerBlocks(__('Term Name with Count'))
|
|
59
|
+
}, {
|
|
60
|
+
name: 'grid',
|
|
61
|
+
title: __('Grid'),
|
|
62
|
+
description: __('Display terms in a grid layout.'),
|
|
63
|
+
attributes: {
|
|
64
|
+
layout: {
|
|
65
|
+
type: 'grid',
|
|
66
|
+
columnCount: 3
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
icon: grid,
|
|
70
|
+
scope: ['block', 'inserter'],
|
|
71
|
+
innerBlocks: createInnerBlocks(__('Term Card'), {
|
|
72
|
+
padding: '1rem'
|
|
73
|
+
})
|
|
74
|
+
}];
|
|
75
|
+
export default variations;
|
|
76
|
+
//# sourceMappingURL=variations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","list","grid","createInnerBlocks","groupMetadata","groupStyle","layout","type","orientation","style","spacing","blockGap","metadata","name","bindings","content","source","args","key","placeholder","variations","title","description","attributes","isDefault","icon","scope","innerBlocks","columnCount","padding"],"sources":["@wordpress/block-library/src/term-template/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { list, grid } from '@wordpress/icons';\n\nconst createInnerBlocks = ( groupMetadata, groupStyle = {} ) => [\n\t[\n\t\t'core/group',\n\t\t{\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\torientation: 'horizontal',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tblockGap: '0.5rem',\n\t\t\t\t},\n\t\t\t\t...groupStyle,\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\tname: groupMetadata,\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Name' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'name',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tplaceholder: __( '(count)' ),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Count' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'count',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\n\nconst variations = [\n\t{\n\t\tname: 'list',\n\t\ttitle: __( 'List' ),\n\t\tdescription: __( 'Display terms in a list layout.' ),\n\t\tattributes: { layout: { type: 'default' } },\n\t\tisDefault: true,\n\t\ticon: list,\n\t\tscope: [ 'block', 'inserter' ],\n\t\tinnerBlocks: createInnerBlocks( __( 'Term Name with Count' ) ),\n\t},\n\t{\n\t\tname: 'grid',\n\t\ttitle: __( 'Grid' ),\n\t\tdescription: __( 'Display terms in a grid layout.' ),\n\t\tattributes: { layout: { type: 'grid', columnCount: 3 } },\n\t\ticon: grid,\n\t\tscope: [ 'block', 'inserter' ],\n\t\tinnerBlocks: createInnerBlocks( __( 'Term Card' ), {\n\t\t\tpadding: '1rem',\n\t\t} ),\n\t},\n];\n\nexport default variations;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAE7C,MAAMC,iBAAiB,GAAGA,CAAEC,aAAa,EAAEC,UAAU,GAAG,CAAC,CAAC,KAAM,CAC/D,CACC,YAAY,EACZ;EACCC,MAAM,EAAE;IACPC,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE;EACd,CAAC;EACDC,KAAK,EAAE;IACNC,OAAO,EAAE;MACRC,QAAQ,EAAE;IACX,CAAC;IACD,GAAGN;EACJ,CAAC;EACDO,QAAQ,EAAE;IACTC,IAAI,EAAET;EACP;AACD,CAAC,EACD,CACC,CACC,gBAAgB,EAChB;EACCQ,QAAQ,EAAE;IACTC,IAAI,EAAEb,EAAE,CAAE,WAAY,CAAC;IACvBc,QAAQ,EAAE;MACTC,OAAO,EAAE;QACRC,MAAM,EAAE,gBAAgB;QACxBC,IAAI,EAAE;UACLC,GAAG,EAAE;QACN;MACD;IACD;EACD;AACD,CAAC,CACD,EACD,CACC,gBAAgB,EAChB;EACCC,WAAW,EAAEnB,EAAE,CAAE,SAAU,CAAC;EAC5BY,QAAQ,EAAE;IACTC,IAAI,EAAEb,EAAE,CAAE,YAAa,CAAC;IACxBc,QAAQ,EAAE;MACTC,OAAO,EAAE;QACRC,MAAM,EAAE,gBAAgB;QACxBC,IAAI,EAAE;UACLC,GAAG,EAAE;QACN;MACD;IACD;EACD;AACD,CAAC,CACD,CACD,CACD,CACD;AAED,MAAME,UAAU,GAAG,CAClB;EACCP,IAAI,EAAE,MAAM;EACZQ,KAAK,EAAErB,EAAE,CAAE,MAAO,CAAC;EACnBsB,WAAW,EAAEtB,EAAE,CAAE,iCAAkC,CAAC;EACpDuB,UAAU,EAAE;IAAEjB,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAU;EAAE,CAAC;EAC3CiB,SAAS,EAAE,IAAI;EACfC,IAAI,EAAExB,IAAI;EACVyB,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,CAAE;EAC9BC,WAAW,EAAExB,iBAAiB,CAAEH,EAAE,CAAE,sBAAuB,CAAE;AAC9D,CAAC,EACD;EACCa,IAAI,EAAE,MAAM;EACZQ,KAAK,EAAErB,EAAE,CAAE,MAAO,CAAC;EACnBsB,WAAW,EAAEtB,EAAE,CAAE,iCAAkC,CAAC;EACpDuB,UAAU,EAAE;IAAEjB,MAAM,EAAE;MAAEC,IAAI,EAAE,MAAM;MAAEqB,WAAW,EAAE;IAAE;EAAE,CAAC;EACxDH,IAAI,EAAEvB,IAAI;EACVwB,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,CAAE;EAC9BC,WAAW,EAAExB,iBAAiB,CAAEH,EAAE,CAAE,WAAY,CAAC,EAAE;IAClD6B,OAAO,EAAE;EACV,CAAE;AACH,CAAC,CACD;AAED,eAAeT,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import TermsQueryContent from './terms-query-content';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
const TermsQueryEdit = props => {
|
|
7
|
+
return /*#__PURE__*/_jsx(TermsQueryContent, {
|
|
8
|
+
...props
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
export default TermsQueryEdit;
|
|
12
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TermsQueryContent","jsx","_jsx","TermsQueryEdit","props"],"sources":["@wordpress/block-library/src/terms-query/edit.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport TermsQueryContent from './terms-query-content';\n\nconst TermsQueryEdit = ( props ) => {\n\treturn <TermsQueryContent { ...props } />;\n};\n\nexport default TermsQueryEdit;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,iBAAiB,MAAM,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtD,MAAMC,cAAc,GAAKC,KAAK,IAAM;EACnC,oBAAOF,IAAA,CAACF,iBAAiB;IAAA,GAAMI;EAAK,CAAI,CAAC;AAC1C,CAAC;AAED,eAAeD,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { loop as icon } from '@wordpress/icons';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import initBlock from '../utils/init-block';
|
|
10
|
+
const metadata = {
|
|
11
|
+
$schema: "https://schemas.wp.org/trunk/block.json",
|
|
12
|
+
apiVersion: 3,
|
|
13
|
+
__experimental: true,
|
|
14
|
+
name: "core/terms-query",
|
|
15
|
+
title: "Terms Query",
|
|
16
|
+
category: "theme",
|
|
17
|
+
description: "An advanced block that allows displaying taxonomy terms based on different query parameters and visual configurations.",
|
|
18
|
+
keywords: ["terms", "taxonomy", "categories", "tags", "list"],
|
|
19
|
+
textdomain: "default",
|
|
20
|
+
attributes: {
|
|
21
|
+
termQueryId: {
|
|
22
|
+
type: "number"
|
|
23
|
+
},
|
|
24
|
+
termQuery: {
|
|
25
|
+
type: "object",
|
|
26
|
+
"default": {
|
|
27
|
+
perPage: 10,
|
|
28
|
+
pages: 0,
|
|
29
|
+
taxonomy: "category",
|
|
30
|
+
order: "asc",
|
|
31
|
+
orderBy: "name",
|
|
32
|
+
hideEmpty: true,
|
|
33
|
+
include: [],
|
|
34
|
+
exclude: [],
|
|
35
|
+
parent: 0,
|
|
36
|
+
hierarchical: false
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
tagName: {
|
|
40
|
+
type: "string",
|
|
41
|
+
"default": "div"
|
|
42
|
+
},
|
|
43
|
+
namespace: {
|
|
44
|
+
type: "string"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
providesContext: {
|
|
48
|
+
termQueryId: "termQueryId",
|
|
49
|
+
termQuery: "termQuery"
|
|
50
|
+
},
|
|
51
|
+
supports: {
|
|
52
|
+
align: ["wide", "full"],
|
|
53
|
+
html: false,
|
|
54
|
+
interactivity: true
|
|
55
|
+
},
|
|
56
|
+
allowedBlocks: ["core/term-template"],
|
|
57
|
+
style: "wp-block-terms-query"
|
|
58
|
+
};
|
|
59
|
+
import edit from './edit';
|
|
60
|
+
import save from './save';
|
|
61
|
+
const {
|
|
62
|
+
name
|
|
63
|
+
} = metadata;
|
|
64
|
+
export { metadata, name };
|
|
65
|
+
export const settings = {
|
|
66
|
+
icon,
|
|
67
|
+
edit,
|
|
68
|
+
save,
|
|
69
|
+
example: {}
|
|
70
|
+
};
|
|
71
|
+
export const init = () => initBlock({
|
|
72
|
+
name,
|
|
73
|
+
metadata,
|
|
74
|
+
settings
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["loop","icon","initBlock","metadata","$schema","apiVersion","__experimental","name","title","category","description","keywords","textdomain","attributes","termQueryId","type","termQuery","perPage","pages","taxonomy","order","orderBy","hideEmpty","include","exclude","parent","hierarchical","tagName","namespace","providesContext","supports","align","html","interactivity","allowedBlocks","style","edit","save","settings","example","init"],"sources":["@wordpress/block-library/src/terms-query/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,IAAIC,IAAI,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,WAAA;MAAAC,IAAA;IAAA;IAAAC,SAAA;MAAAD,IAAA;MAAA;QAAAE,OAAA;QAAAC,KAAA;QAAAC,QAAA;QAAAC,KAAA;QAAAC,OAAA;QAAAC,SAAA;QAAAC,OAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,YAAA;MAAA;IAAA;IAAAC,OAAA;MAAAZ,IAAA;MAAA;IAAA;IAAAa,SAAA;MAAAb,IAAA;IAAA;EAAA;EAAAc,eAAA;IAAAf,WAAA;IAAAE,SAAA;EAAA;EAAAc,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,aAAA;EAAA;EAAAC,aAAA;EAAAC,KAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE9B;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAM+B,QAAQ,GAAG;EACvBrC,IAAI;EACJmC,IAAI;EACJC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAMtC,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAEmC;AAAS,CAAE,CAAC","ignoreList":[]}
|