@wordpress/block-library 8.31.0 → 8.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/block/edit.js +5 -8
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.native.js +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/image/edit.js +10 -39
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +27 -6
- package/build/image/image.js.map +1 -1
- package/build/navigation/view.js +12 -2
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +41 -18
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +27 -9
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/pattern/edit.js +3 -1
- package/build/pattern/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +12 -3
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +8 -3
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-featured-image/overlay-controls.js +82 -0
- package/build/post-featured-image/overlay-controls.js.map +1 -0
- package/build/post-featured-image/overlay.js +5 -54
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/quote/edit.js +18 -23
- package/build/quote/edit.js.map +1 -1
- package/build/site-tagline/edit.js +13 -4
- package/build/site-tagline/edit.js.map +1 -1
- package/build/site-tagline/index.js +4 -0
- package/build/site-tagline/index.js.map +1 -1
- package/build/template-part/edit/index.js +55 -47
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +106 -10
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +1 -9
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/utils/caption.js +19 -13
- package/build/utils/caption.js.map +1 -1
- package/build/utils/hooks.js +1 -0
- package/build/utils/hooks.js.map +1 -1
- package/build-module/block/edit.js +5 -8
- package/build-module/block/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/image/edit.js +11 -40
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +27 -6
- package/build-module/image/image.js.map +1 -1
- package/build-module/navigation/view.js +12 -2
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +43 -20
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +27 -9
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/pattern/edit.js +3 -1
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +12 -3
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +8 -3
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-featured-image/overlay-controls.js +75 -0
- package/build-module/post-featured-image/overlay-controls.js.map +1 -0
- package/build-module/post-featured-image/overlay.js +7 -56
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/quote/edit.js +20 -25
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/site-tagline/edit.js +14 -5
- package/build-module/site-tagline/edit.js.map +1 -1
- package/build-module/site-tagline/index.js +4 -0
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/template-part/edit/index.js +58 -50
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +108 -12
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +2 -10
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/utils/caption.js +19 -13
- package/build-module/utils/caption.js.map +1 -1
- package/build-module/utils/hooks.js +1 -0
- package/build-module/utils/hooks.js.map +1 -1
- package/build-style/audio/theme-rtl.css +1 -1
- package/build-style/audio/theme.css +1 -1
- package/build-style/cover/style-rtl.css +5 -2
- package/build-style/cover/style.css +5 -2
- package/build-style/editor-rtl.css +12 -8
- package/build-style/editor.css +12 -8
- package/build-style/embed/theme-rtl.css +1 -1
- package/build-style/embed/theme.css +1 -1
- package/build-style/image/theme-rtl.css +1 -1
- package/build-style/image/theme.css +1 -1
- package/build-style/pullquote/theme-rtl.css +2 -1
- package/build-style/pullquote/theme.css +2 -1
- package/build-style/quote/theme-rtl.css +6 -6
- package/build-style/quote/theme.css +6 -6
- package/build-style/search/style-rtl.css +10 -0
- package/build-style/search/style.css +10 -0
- package/build-style/social-links/editor-rtl.css +0 -4
- package/build-style/social-links/editor.css +0 -4
- package/build-style/style-rtl.css +15 -2
- package/build-style/style.css +15 -2
- package/build-style/table/theme-rtl.css +4 -3
- package/build-style/table/theme.css +4 -3
- package/build-style/template-part/editor-rtl.css +12 -4
- package/build-style/template-part/editor.css +12 -4
- package/build-style/template-part/theme-rtl.css +1 -1
- package/build-style/template-part/theme.css +1 -1
- package/build-style/theme-rtl.css +17 -15
- package/build-style/theme.css +17 -15
- package/build-style/video/theme-rtl.css +1 -1
- package/build-style/video/theme.css +1 -1
- package/package.json +34 -34
- package/src/audio/theme.scss +1 -1
- package/src/block/edit.js +5 -17
- package/src/button/edit.native.js +1 -1
- package/src/cover/style.scss +6 -2
- package/src/embed/theme.scss +1 -1
- package/src/gallery/editor.scss +1 -1
- package/src/gallery/index.php +1 -1
- package/src/image/edit.js +11 -40
- package/src/image/editor.scss +2 -2
- package/src/image/image.js +25 -7
- package/src/image/theme.scss +1 -1
- package/src/navigation/index.php +8 -0
- package/src/navigation/view.js +11 -2
- package/src/navigation-link/edit.js +53 -27
- package/src/navigation-submenu/edit.js +30 -10
- package/src/pattern/edit.js +4 -0
- package/src/post-featured-image/block.json +8 -3
- package/src/post-featured-image/edit.js +12 -1
- package/src/post-featured-image/editor.scss +1 -1
- package/src/post-featured-image/overlay-controls.js +88 -0
- package/src/post-featured-image/overlay.js +17 -84
- package/src/pullquote/theme.scss +3 -1
- package/src/query-no-results/index.php +2 -0
- package/src/query-pagination-next/index.php +2 -0
- package/src/query-pagination-numbers/index.php +2 -0
- package/src/quote/edit.js +27 -43
- package/src/quote/test/edit.native.js +4 -6
- package/src/quote/theme.scss +1 -2
- package/src/search/style.scss +11 -0
- package/src/site-logo/editor.scss +2 -2
- package/src/site-tagline/block.json +4 -0
- package/src/site-tagline/edit.js +16 -3
- package/src/site-tagline/index.php +9 -1
- package/src/social-links/editor.scss +1 -9
- package/src/table/theme.scss +4 -2
- package/src/template-part/edit/index.js +87 -79
- package/src/template-part/edit/inner-blocks.js +126 -13
- package/src/template-part/edit/selection-modal.js +1 -22
- package/src/template-part/editor.scss +11 -3
- package/src/template-part/index.php +2 -0
- package/src/template-part/theme.scss +1 -1
- package/src/utils/caption.js +19 -16
- package/src/utils/hooks.js +1 -0
- package/src/video/editor.scss +2 -2
- package/src/video/theme.scss +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","_icon","_deprecated","metadata","exports","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","textAlign","type","example","supports","align","html","color","gradients","__experimentalDefaultControls","background","text","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalTextTransform","__experimentalTextDecoration","__experimentalFontStyle","__experimentalFontWeight","__experimentalLetterSpacing","interactivity","clientNavigation","editorStyle","settings","icon","edit","deprecated","init","initBlock"],"sources":["@wordpress/block-library/src/site-tagline/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAPA;AACA;AACA;AAFA,MAAAI,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;EAAA;
|
|
1
|
+
{"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","_icon","_deprecated","metadata","exports","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","textAlign","type","level","example","supports","align","html","color","gradients","__experimentalDefaultControls","background","text","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalTextTransform","__experimentalTextDecoration","__experimentalFontStyle","__experimentalFontWeight","__experimentalLetterSpacing","interactivity","clientNavigation","editorStyle","settings","icon","edit","deprecated","init","initBlock"],"sources":["@wordpress/block-library/src/site-tagline/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAPA;AACA;AACA;AAFA,MAAAI,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;IAAA;EAAA;EAAAE,OAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAL,6BAAA;QAAAI,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,uBAAA;MAAAC,wBAAA;MAAAC,2BAAA;MAAAd,6BAAA;QAAAO,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,WAAA;AAAA;AASA,MAAM;EAAEjC;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAGnB,MAAMkC,QAAQ,GAAArC,OAAA,CAAAqC,QAAA,GAAG;EACvBC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA;AACD,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEvC,IAAI;EAAEJ,QAAQ;EAAEsC;AAAS,CAAE,CAAC;AAACrC,OAAA,CAAAyC,IAAA,GAAAA,IAAA"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = TemplatePartEdit;
|
|
8
8
|
var _react = require("react");
|
|
9
|
+
var _blocks = require("@wordpress/blocks");
|
|
9
10
|
var _data = require("@wordpress/data");
|
|
10
11
|
var _blockEditor = require("@wordpress/block-editor");
|
|
11
12
|
var _components = require("@wordpress/components");
|
|
@@ -19,7 +20,6 @@ var _selectionModal = _interopRequireDefault(require("./selection-modal"));
|
|
|
19
20
|
var _advancedControls = require("./advanced-controls");
|
|
20
21
|
var _innerBlocks = _interopRequireDefault(require("./inner-blocks"));
|
|
21
22
|
var _createTemplatePartId = require("./utils/create-template-part-id");
|
|
22
|
-
var _mapTemplatePartToBlockPattern = require("./utils/map-template-part-to-block-pattern");
|
|
23
23
|
var _hooks = require("./utils/hooks");
|
|
24
24
|
/**
|
|
25
25
|
* WordPress dependencies
|
|
@@ -32,16 +32,16 @@ var _hooks = require("./utils/hooks");
|
|
|
32
32
|
function ReplaceButton({
|
|
33
33
|
isEntityAvailable,
|
|
34
34
|
area,
|
|
35
|
-
clientId,
|
|
36
35
|
templatePartId,
|
|
37
36
|
isTemplatePartSelectionOpen,
|
|
38
37
|
setIsTemplatePartSelectionOpen
|
|
39
38
|
}) {
|
|
39
|
+
// This hook fetches patterns, so don't run it unconditionally in the main
|
|
40
|
+
// edit function!
|
|
40
41
|
const {
|
|
41
42
|
templateParts
|
|
42
43
|
} = (0, _hooks.useAlternativeTemplateParts)(area, templatePartId);
|
|
43
|
-
const
|
|
44
|
-
const hasReplacements = !!templateParts.length || !!blockPatterns.length;
|
|
44
|
+
const hasReplacements = !!templateParts.length;
|
|
45
45
|
const canReplace = isEntityAvailable && hasReplacements && (area === 'header' || area === 'footer');
|
|
46
46
|
if (!canReplace) {
|
|
47
47
|
return null;
|
|
@@ -55,19 +55,28 @@ function ReplaceButton({
|
|
|
55
55
|
}, (0, _i18n.__)('Replace'));
|
|
56
56
|
}
|
|
57
57
|
function TemplatesList({
|
|
58
|
-
|
|
58
|
+
area,
|
|
59
|
+
clientId,
|
|
60
|
+
isEntityAvailable,
|
|
59
61
|
onSelect
|
|
60
62
|
}) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
// This hook fetches patterns, so don't run it unconditionally in the main
|
|
64
|
+
// edit function!
|
|
65
|
+
const blockPatterns = (0, _hooks.useAlternativeBlockPatterns)(area, clientId);
|
|
66
|
+
const canReplace = isEntityAvailable && !!blockPatterns.length && (area === 'header' || area === 'footer');
|
|
67
|
+
const shownTemplates = (0, _compose.useAsyncList)(blockPatterns);
|
|
68
|
+
if (!canReplace) {
|
|
63
69
|
return null;
|
|
64
70
|
}
|
|
65
|
-
return (0, _react.createElement)(
|
|
71
|
+
return (0, _react.createElement)(_components.PanelBody, {
|
|
72
|
+
title: (0, _i18n.__)('Design')
|
|
73
|
+
}, (0, _react.createElement)(_blockEditor.__experimentalBlockPatternsList, {
|
|
66
74
|
label: (0, _i18n.__)('Templates'),
|
|
67
|
-
blockPatterns:
|
|
75
|
+
blockPatterns: blockPatterns,
|
|
68
76
|
shownPatterns: shownTemplates,
|
|
69
|
-
onClickPattern: onSelect
|
|
70
|
-
|
|
77
|
+
onClickPattern: onSelect,
|
|
78
|
+
showTitle: false
|
|
79
|
+
}));
|
|
71
80
|
}
|
|
72
81
|
function TemplatePartEdit({
|
|
73
82
|
attributes,
|
|
@@ -77,6 +86,9 @@ function TemplatePartEdit({
|
|
|
77
86
|
const {
|
|
78
87
|
createSuccessNotice
|
|
79
88
|
} = (0, _data.useDispatch)(_notices.store);
|
|
89
|
+
const {
|
|
90
|
+
editEntityRecord
|
|
91
|
+
} = (0, _data.useDispatch)(_coreData.store);
|
|
80
92
|
const currentTheme = (0, _data.useSelect)(select => select(_coreData.store).getCurrentTheme()?.stylesheet, []);
|
|
81
93
|
const {
|
|
82
94
|
slug,
|
|
@@ -91,14 +103,17 @@ function TemplatePartEdit({
|
|
|
91
103
|
isResolved,
|
|
92
104
|
hasInnerBlocks,
|
|
93
105
|
isMissing,
|
|
94
|
-
area
|
|
106
|
+
area,
|
|
107
|
+
onNavigateToEntityRecord,
|
|
108
|
+
title
|
|
95
109
|
} = (0, _data.useSelect)(select => {
|
|
96
110
|
const {
|
|
97
111
|
getEditedEntityRecord,
|
|
98
112
|
hasFinishedResolution
|
|
99
113
|
} = select(_coreData.store);
|
|
100
114
|
const {
|
|
101
|
-
getBlockCount
|
|
115
|
+
getBlockCount,
|
|
116
|
+
getSettings
|
|
102
117
|
} = select(_blockEditor.store);
|
|
103
118
|
const getEntityArgs = ['postType', 'wp_template_part', templatePartId];
|
|
104
119
|
const entityRecord = templatePartId ? getEditedEntityRecord(...getEntityArgs) : null;
|
|
@@ -108,21 +123,26 @@ function TemplatePartEdit({
|
|
|
108
123
|
hasInnerBlocks: getBlockCount(clientId) > 0,
|
|
109
124
|
isResolved: hasResolvedEntity,
|
|
110
125
|
isMissing: hasResolvedEntity && (!entityRecord || Object.keys(entityRecord).length === 0),
|
|
111
|
-
area: _area
|
|
126
|
+
area: _area,
|
|
127
|
+
onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
|
|
128
|
+
title: entityRecord?.title
|
|
112
129
|
};
|
|
113
130
|
}, [templatePartId, attributes.area, clientId]);
|
|
114
|
-
const {
|
|
115
|
-
templateParts
|
|
116
|
-
} = (0, _hooks.useAlternativeTemplateParts)(area, templatePartId);
|
|
117
|
-
const blockPatterns = (0, _hooks.useAlternativeBlockPatterns)(area, clientId);
|
|
118
|
-
const hasReplacements = !!templateParts.length || !!blockPatterns.length;
|
|
119
131
|
const areaObject = (0, _hooks.useTemplatePartArea)(area);
|
|
120
132
|
const blockProps = (0, _blockEditor.useBlockProps)();
|
|
121
133
|
const isPlaceholder = !slug;
|
|
122
134
|
const isEntityAvailable = !isPlaceholder && !isMissing && isResolved;
|
|
123
135
|
const TagName = tagName || areaObject.tagName;
|
|
124
|
-
const
|
|
125
|
-
|
|
136
|
+
const onPatternSelect = async pattern => {
|
|
137
|
+
await editEntityRecord('postType', 'wp_template_part', templatePartId, {
|
|
138
|
+
blocks: pattern.blocks,
|
|
139
|
+
content: (0, _blocks.serialize)(pattern.blocks)
|
|
140
|
+
});
|
|
141
|
+
createSuccessNotice((0, _i18n.sprintf)( /* translators: %s: template part title. */
|
|
142
|
+
(0, _i18n.__)('Template Part "%s" updated.'), title || slug), {
|
|
143
|
+
type: 'snackbar'
|
|
144
|
+
});
|
|
145
|
+
};
|
|
126
146
|
|
|
127
147
|
// We don't want to render a missing state if we have any inner blocks.
|
|
128
148
|
// A new template part is automatically created if we have any inner blocks but no entity.
|
|
@@ -137,21 +157,16 @@ function TemplatePartEdit({
|
|
|
137
157
|
...blockProps
|
|
138
158
|
}, (0, _react.createElement)(_blockEditor.Warning, null, (0, _i18n.__)('Block cannot be rendered inside itself.')));
|
|
139
159
|
}
|
|
140
|
-
const partsAsPatterns = templateParts.map(templatePart => (0, _mapTemplatePartToBlockPattern.mapTemplatePartToBlockPattern)(templatePart));
|
|
141
|
-
const onTemplatePartSelect = templatePart => {
|
|
142
|
-
setAttributes({
|
|
143
|
-
slug: templatePart.slug,
|
|
144
|
-
theme: templatePart.theme,
|
|
145
|
-
area: undefined
|
|
146
|
-
});
|
|
147
|
-
createSuccessNotice((0, _i18n.sprintf)( /* translators: %s: template part title. */
|
|
148
|
-
(0, _i18n.__)('Template Part "%s" replaced.'), templatePart.title?.rendered || templatePart.slug), {
|
|
149
|
-
type: 'snackbar'
|
|
150
|
-
});
|
|
151
|
-
};
|
|
152
160
|
return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.RecursionProvider, {
|
|
153
161
|
uniqueId: templatePartId
|
|
154
|
-
}, (0, _react.createElement)(_blockEditor.
|
|
162
|
+
}, isEntityAvailable && onNavigateToEntityRecord && (0, _react.createElement)(_blockEditor.BlockControls, {
|
|
163
|
+
group: "other"
|
|
164
|
+
}, (0, _react.createElement)(_components.ToolbarButton, {
|
|
165
|
+
onClick: () => onNavigateToEntityRecord({
|
|
166
|
+
postId: templatePartId,
|
|
167
|
+
postType: 'wp_template_part'
|
|
168
|
+
})
|
|
169
|
+
}, (0, _i18n.__)('Edit'))), (0, _react.createElement)(_blockEditor.InspectorControls, {
|
|
155
170
|
group: "advanced"
|
|
156
171
|
}, (0, _react.createElement)(_advancedControls.TemplatePartAdvancedControls, {
|
|
157
172
|
tagName: tagName,
|
|
@@ -184,19 +199,12 @@ function TemplatePartEdit({
|
|
|
184
199
|
isTemplatePartSelectionOpen,
|
|
185
200
|
setIsTemplatePartSelectionOpen
|
|
186
201
|
});
|
|
187
|
-
}),
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
onSelect: pattern =>
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
}), (0, _react.createElement)(TemplatesList, {
|
|
195
|
-
availableTemplates: blockPatterns,
|
|
196
|
-
onSelect: (pattern, blocks) => {
|
|
197
|
-
createFromBlocks(blocks, pattern.title);
|
|
198
|
-
}
|
|
199
|
-
}))), isEntityAvailable && (0, _react.createElement)(_innerBlocks.default, {
|
|
202
|
+
}), (0, _react.createElement)(_blockEditor.InspectorControls, null, (0, _react.createElement)(TemplatesList, {
|
|
203
|
+
area: area,
|
|
204
|
+
clientId: clientId,
|
|
205
|
+
isEntityAvailable: isEntityAvailable,
|
|
206
|
+
onSelect: pattern => onPatternSelect(pattern)
|
|
207
|
+
})), isEntityAvailable && (0, _react.createElement)(_innerBlocks.default, {
|
|
200
208
|
tagName: TagName,
|
|
201
209
|
blockProps: blockProps,
|
|
202
210
|
postId: templatePartId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_blockEditor","_components","_compose","_i18n","_coreData","_element","_notices","_placeholder","_interopRequireDefault","_selectionModal","_advancedControls","_innerBlocks","_createTemplatePartId","_mapTemplatePartToBlockPattern","_hooks","ReplaceButton","isEntityAvailable","area","clientId","templatePartId","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","templateParts","useAlternativeTemplateParts","blockPatterns","useAlternativeBlockPatterns","hasReplacements","length","canReplace","_react","createElement","MenuItem","onClick","__","TemplatesList","availableTemplates","onSelect","shownTemplates","useAsyncList","__experimentalBlockPatternsList","label","shownPatterns","onClickPattern","TemplatePartEdit","attributes","setAttributes","createSuccessNotice","useDispatch","noticesStore","currentTheme","useSelect","select","coreStore","getCurrentTheme","stylesheet","slug","theme","tagName","layout","createTemplatePartId","hasAlreadyRendered","useHasRecursion","useState","isResolved","hasInnerBlocks","isMissing","getEditedEntityRecord","hasFinishedResolution","getBlockCount","blockEditorStore","getEntityArgs","entityRecord","_area","hasResolvedEntity","Object","keys","areaObject","useTemplatePartArea","blockProps","useBlockProps","isPlaceholder","TagName","createFromBlocks","useCreateTemplatePartFromBlocks","Warning","sprintf","partsAsPatterns","map","templatePart","mapTemplatePartToBlockPattern","onTemplatePartSelect","undefined","title","rendered","type","Fragment","RecursionProvider","uniqueId","InspectorControls","group","TemplatePartAdvancedControls","defaultWrapper","default","onOpenSelectionModal","BlockSettingsMenuControls","selectedClientIds","PanelBody","pattern","blocks","postId","Spinner","Modal","overlayClassName","toLowerCase","onRequestClose","isFullScreen","onClose"],"sources":["@wordpress/block-library/src/template-part/edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInspectorControls,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n} from '@wordpress/block-editor';\nimport { PanelBody, Spinner, Modal, MenuItem } from '@wordpress/components';\nimport { useAsyncList } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport { mapTemplatePartToBlockPattern } from './utils/map-template-part-to-block-pattern';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n\tuseCreateTemplatePartFromBlocks,\n} from './utils/hooks';\n\nfunction ReplaceButton( {\n\tisEntityAvailable,\n\tarea,\n\tclientId,\n\ttemplatePartId,\n\tisTemplatePartSelectionOpen,\n\tsetIsTemplatePartSelectionOpen,\n} ) {\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t} }\n\t\t\taria-expanded={ isTemplatePartSelectionOpen }\n\t\t\taria-haspopup=\"dialog\"\n\t\t>\n\t\t\t{ __( 'Replace' ) }\n\t\t</MenuItem>\n\t);\n}\n\nfunction TemplatesList( { availableTemplates, onSelect } ) {\n\tconst shownTemplates = useAsyncList( availableTemplates );\n\n\tif ( ! availableTemplates ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ availableTemplates }\n\t\t\tshownPatterns={ shownTemplates }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst currentTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\tconst { slug, theme = currentTheme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\tconst { isResolved, hasInnerBlocks, isMissing, area } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: getBlockCount( clientId ) > 0,\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, attributes.area, clientId ]\n\t);\n\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst hasReplacements = !! templateParts.length || !! blockPatterns.length;\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\t! hasInnerBlocks &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tconst partsAsPatterns = templateParts.map( ( templatePart ) =>\n\t\tmapTemplatePartToBlockPattern( templatePart )\n\t);\n\n\tconst onTemplatePartSelect = ( templatePart ) => {\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" replaced.' ),\n\t\t\t\ttemplatePart.title?.rendered || templatePart.slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t{ ( { selectedClientIds } ) => {\n\t\t\t\t\t\t// Only enable for single selection that matches the current block.\n\t\t\t\t\t\t// Ensures menu item doesn't render multiple times.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\t\t\tclientId === selectedClientIds[ 0 ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ReplaceButton\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\tisEntityAvailable,\n\t\t\t\t\t\t\t\t\tarea,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\ttemplatePartId,\n\t\t\t\t\t\t\t\t\tisTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen,\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</BlockSettingsMenuControls>\n\n\t\t\t\t{ canReplace &&\n\t\t\t\t\t( partsAsPatterns.length > 0 ||\n\t\t\t\t\t\tblockPatterns.length > 0 ) && (\n\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Replace' ) }>\n\t\t\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\t\t\tavailableTemplates={ partsAsPatterns }\n\t\t\t\t\t\t\t\t\tonSelect={ ( pattern ) => {\n\t\t\t\t\t\t\t\t\t\tonTemplatePartSelect(\n\t\t\t\t\t\t\t\t\t\t\tpattern.templatePart\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/>\n\t\t\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\t\t\tavailableTemplates={ blockPatterns }\n\t\t\t\t\t\t\t\t\tonSelect={ ( pattern, blocks ) => {\n\t\t\t\t\t\t\t\t\t\tcreateFromBlocks(\n\t\t\t\t\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\t\t\t\t\tpattern.title\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/>\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t) }\n\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_blocks","require","_data","_blockEditor","_components","_compose","_i18n","_coreData","_element","_notices","_placeholder","_interopRequireDefault","_selectionModal","_advancedControls","_innerBlocks","_createTemplatePartId","_hooks","ReplaceButton","isEntityAvailable","area","templatePartId","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","templateParts","useAlternativeTemplateParts","hasReplacements","length","canReplace","_react","createElement","MenuItem","onClick","__","TemplatesList","clientId","onSelect","blockPatterns","useAlternativeBlockPatterns","shownTemplates","useAsyncList","PanelBody","title","__experimentalBlockPatternsList","label","shownPatterns","onClickPattern","showTitle","TemplatePartEdit","attributes","setAttributes","createSuccessNotice","useDispatch","noticesStore","editEntityRecord","coreStore","currentTheme","useSelect","select","getCurrentTheme","stylesheet","slug","theme","tagName","layout","createTemplatePartId","hasAlreadyRendered","useHasRecursion","useState","isResolved","hasInnerBlocks","isMissing","onNavigateToEntityRecord","getEditedEntityRecord","hasFinishedResolution","getBlockCount","getSettings","blockEditorStore","getEntityArgs","entityRecord","_area","hasResolvedEntity","Object","keys","areaObject","useTemplatePartArea","blockProps","useBlockProps","isPlaceholder","TagName","onPatternSelect","pattern","blocks","content","serialize","sprintf","type","Warning","Fragment","RecursionProvider","uniqueId","BlockControls","group","ToolbarButton","postId","postType","InspectorControls","TemplatePartAdvancedControls","defaultWrapper","default","onOpenSelectionModal","BlockSettingsMenuControls","selectedClientIds","Spinner","Modal","overlayClassName","toLowerCase","onRequestClose","isFullScreen","onClose"],"sources":["@wordpress/block-library/src/template-part/edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { serialize } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInspectorControls,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tSpinner,\n\tModal,\n\tMenuItem,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useAsyncList } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nfunction ReplaceButton( {\n\tisEntityAvailable,\n\tarea,\n\ttemplatePartId,\n\tisTemplatePartSelectionOpen,\n\tsetIsTemplatePartSelectionOpen,\n} ) {\n\t// This hook fetches patterns, so don't run it unconditionally in the main\n\t// edit function!\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst hasReplacements = !! templateParts.length;\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t} }\n\t\t\taria-expanded={ isTemplatePartSelectionOpen }\n\t\t\taria-haspopup=\"dialog\"\n\t\t>\n\t\t\t{ __( 'Replace' ) }\n\t\t</MenuItem>\n\t);\n}\n\nfunction TemplatesList( { area, clientId, isEntityAvailable, onSelect } ) {\n\t// This hook fetches patterns, so don't run it unconditionally in the main\n\t// edit function!\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\t!! blockPatterns.length &&\n\t\t( area === 'header' || area === 'footer' );\n\tconst shownTemplates = useAsyncList( blockPatterns );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Design' ) }>\n\t\t\t<BlockPatternsList\n\t\t\t\tlabel={ __( 'Templates' ) }\n\t\t\t\tblockPatterns={ blockPatterns }\n\t\t\t\tshownPatterns={ shownTemplates }\n\t\t\t\tonClickPattern={ onSelect }\n\t\t\t\tshowTitle={ false }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst currentTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\tconst { slug, theme = currentTheme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\tconst {\n\t\tisResolved,\n\t\thasInnerBlocks,\n\t\tisMissing,\n\t\tarea,\n\t\tonNavigateToEntityRecord,\n\t\ttitle,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlockCount, getSettings } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: getBlockCount( clientId ) > 0,\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\ttitle: entityRecord?.title,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, attributes.area, clientId ]\n\t);\n\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\tconst onPatternSelect = async ( pattern ) => {\n\t\tawait editEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\ttemplatePartId,\n\t\t\t{\n\t\t\t\tblocks: pattern.blocks,\n\t\t\t\tcontent: serialize( pattern.blocks ),\n\t\t\t}\n\t\t);\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" updated.' ),\n\t\t\t\ttitle || slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t};\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\t! hasInnerBlocks &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t{ isEntityAvailable && onNavigateToEntityRecord && (\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\t\t\tpostId: templatePartId,\n\t\t\t\t\t\t\t\t\tpostType: 'wp_template_part',\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\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t) }\n\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t{ ( { selectedClientIds } ) => {\n\t\t\t\t\t\t// Only enable for single selection that matches the current block.\n\t\t\t\t\t\t// Ensures menu item doesn't render multiple times.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\t\t\tclientId === selectedClientIds[ 0 ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ReplaceButton\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\tisEntityAvailable,\n\t\t\t\t\t\t\t\t\tarea,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\ttemplatePartId,\n\t\t\t\t\t\t\t\t\tisTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen,\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</BlockSettingsMenuControls>\n\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\tonSelect={ ( pattern ) => onPatternSelect( pattern ) }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -8,17 +8,26 @@ var _react = require("react");
|
|
|
8
8
|
var _coreData = require("@wordpress/core-data");
|
|
9
9
|
var _blockEditor = require("@wordpress/block-editor");
|
|
10
10
|
var _data = require("@wordpress/data");
|
|
11
|
+
var _element = require("@wordpress/element");
|
|
12
|
+
var _blocks = require("@wordpress/blocks");
|
|
11
13
|
/**
|
|
12
14
|
* WordPress dependencies
|
|
13
15
|
*/
|
|
14
16
|
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
function useRenderAppender(hasInnerBlocks) {
|
|
18
|
+
const blockEditingMode = (0, _blockEditor.useBlockEditingMode)();
|
|
19
|
+
// Disable appending when the editing mode is 'contentOnly'. This is so that the user can't
|
|
20
|
+
// append into a template part when editing a page in the site editor. See
|
|
21
|
+
// DisableNonPageContentBlocks. Ideally instead of (mis)using editing mode there would be a
|
|
22
|
+
// block editor API for achieving this.
|
|
23
|
+
if (blockEditingMode === 'contentOnly') {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
if (!hasInnerBlocks) {
|
|
27
|
+
return _blockEditor.InnerBlocks.ButtonBlockAppender;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function useLayout(layout) {
|
|
22
31
|
const themeSupportsLayout = (0, _data.useSelect)(select => {
|
|
23
32
|
const {
|
|
24
33
|
getSettings
|
|
@@ -26,7 +35,65 @@ function TemplatePartInnerBlocks({
|
|
|
26
35
|
return getSettings()?.supportsLayout;
|
|
27
36
|
}, []);
|
|
28
37
|
const [defaultLayout] = (0, _blockEditor.useSettings)('layout');
|
|
29
|
-
|
|
38
|
+
if (themeSupportsLayout) {
|
|
39
|
+
return layout?.inherit ? defaultLayout || {} : layout;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function NonEditableTemplatePartPreview({
|
|
43
|
+
postId: id,
|
|
44
|
+
layout,
|
|
45
|
+
tagName: TagName,
|
|
46
|
+
blockProps
|
|
47
|
+
}) {
|
|
48
|
+
(0, _blockEditor.useBlockEditingMode)('disabled');
|
|
49
|
+
const {
|
|
50
|
+
content,
|
|
51
|
+
editedBlocks
|
|
52
|
+
} = (0, _data.useSelect)(select => {
|
|
53
|
+
if (!id) {
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
const {
|
|
57
|
+
getEditedEntityRecord
|
|
58
|
+
} = select(_coreData.store);
|
|
59
|
+
const editedRecord = getEditedEntityRecord('postType', 'wp_template_part', id, {
|
|
60
|
+
context: 'view'
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
editedBlocks: editedRecord.blocks,
|
|
64
|
+
content: editedRecord.content
|
|
65
|
+
};
|
|
66
|
+
}, [id]);
|
|
67
|
+
const blocks = (0, _element.useMemo)(() => {
|
|
68
|
+
if (!id) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
if (editedBlocks) {
|
|
72
|
+
return editedBlocks;
|
|
73
|
+
}
|
|
74
|
+
if (!content || typeof content !== 'string') {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
return (0, _blocks.parse)(content);
|
|
78
|
+
}, [id, editedBlocks, content]);
|
|
79
|
+
const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, {
|
|
80
|
+
value: blocks,
|
|
81
|
+
onInput: () => {},
|
|
82
|
+
onChange: () => {},
|
|
83
|
+
renderAppender: false,
|
|
84
|
+
layout: useLayout(layout)
|
|
85
|
+
});
|
|
86
|
+
return (0, _react.createElement)(TagName, {
|
|
87
|
+
...innerBlocksProps
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function EditableTemplatePartInnerBlocks({
|
|
91
|
+
postId: id,
|
|
92
|
+
hasInnerBlocks,
|
|
93
|
+
layout,
|
|
94
|
+
tagName: TagName,
|
|
95
|
+
blockProps
|
|
96
|
+
}) {
|
|
30
97
|
const [blocks, onInput, onChange] = (0, _coreData.useEntityBlockEditor)('postType', 'wp_template_part', {
|
|
31
98
|
id
|
|
32
99
|
});
|
|
@@ -34,11 +101,40 @@ function TemplatePartInnerBlocks({
|
|
|
34
101
|
value: blocks,
|
|
35
102
|
onInput,
|
|
36
103
|
onChange,
|
|
37
|
-
renderAppender: hasInnerBlocks
|
|
38
|
-
layout:
|
|
104
|
+
renderAppender: useRenderAppender(hasInnerBlocks),
|
|
105
|
+
layout: useLayout(layout)
|
|
39
106
|
});
|
|
40
107
|
return (0, _react.createElement)(TagName, {
|
|
41
108
|
...innerBlocksProps
|
|
42
109
|
});
|
|
43
110
|
}
|
|
111
|
+
function TemplatePartInnerBlocks({
|
|
112
|
+
postId: id,
|
|
113
|
+
hasInnerBlocks,
|
|
114
|
+
layout,
|
|
115
|
+
tagName: TagName,
|
|
116
|
+
blockProps
|
|
117
|
+
}) {
|
|
118
|
+
const {
|
|
119
|
+
canViewTemplatePart,
|
|
120
|
+
canEditTemplatePart
|
|
121
|
+
} = (0, _data.useSelect)(select => {
|
|
122
|
+
var _select$canUser, _select$canUser2;
|
|
123
|
+
return {
|
|
124
|
+
canViewTemplatePart: (_select$canUser = select(_coreData.store).canUser('read', 'templates')) !== null && _select$canUser !== void 0 ? _select$canUser : false,
|
|
125
|
+
canEditTemplatePart: (_select$canUser2 = select(_coreData.store).canUser('create', 'templates')) !== null && _select$canUser2 !== void 0 ? _select$canUser2 : false
|
|
126
|
+
};
|
|
127
|
+
}, []);
|
|
128
|
+
if (!canViewTemplatePart) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
const TemplatePartInnerBlocksComponent = canEditTemplatePart ? EditableTemplatePartInnerBlocks : NonEditableTemplatePartPreview;
|
|
132
|
+
return (0, _react.createElement)(TemplatePartInnerBlocksComponent, {
|
|
133
|
+
postId: id,
|
|
134
|
+
hasInnerBlocks: hasInnerBlocks,
|
|
135
|
+
layout: layout,
|
|
136
|
+
tagName: TagName,
|
|
137
|
+
blockProps: blockProps
|
|
138
|
+
});
|
|
139
|
+
}
|
|
44
140
|
//# sourceMappingURL=inner-blocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_coreData","require","_blockEditor","_data","
|
|
1
|
+
{"version":3,"names":["_coreData","require","_blockEditor","_data","_element","_blocks","useRenderAppender","hasInnerBlocks","blockEditingMode","useBlockEditingMode","InnerBlocks","ButtonBlockAppender","useLayout","layout","themeSupportsLayout","useSelect","select","getSettings","blockEditorStore","supportsLayout","defaultLayout","useSettings","inherit","NonEditableTemplatePartPreview","postId","id","tagName","TagName","blockProps","content","editedBlocks","getEditedEntityRecord","coreStore","editedRecord","context","blocks","useMemo","undefined","parse","innerBlocksProps","useInnerBlocksProps","value","onInput","onChange","renderAppender","_react","createElement","EditableTemplatePartInnerBlocks","useEntityBlockEditor","TemplatePartInnerBlocks","canViewTemplatePart","canEditTemplatePart","_select$canUser","_select$canUser2","canUser","TemplatePartInnerBlocksComponent"],"sources":["@wordpress/block-library/src/template-part/edit/inner-blocks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport {\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tuseSettings,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { parse } from '@wordpress/blocks';\n\nfunction useRenderAppender( hasInnerBlocks ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\t// Disable appending when the editing mode is 'contentOnly'. This is so that the user can't\n\t// append into a template part when editing a page in the site editor. See\n\t// DisableNonPageContentBlocks. Ideally instead of (mis)using editing mode there would be a\n\t// block editor API for achieving this.\n\tif ( blockEditingMode === 'contentOnly' ) {\n\t\treturn false;\n\t}\n\tif ( ! hasInnerBlocks ) {\n\t\treturn InnerBlocks.ButtonBlockAppender;\n\t}\n}\n\nfunction useLayout( layout ) {\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings()?.supportsLayout;\n\t}, [] );\n\tconst [ defaultLayout ] = useSettings( 'layout' );\n\tif ( themeSupportsLayout ) {\n\t\treturn layout?.inherit ? defaultLayout || {} : layout;\n\t}\n}\n\nfunction NonEditableTemplatePartPreview( {\n\tpostId: id,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tuseBlockEditingMode( 'disabled' );\n\n\tconst { content, editedBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! id ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst editedRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tid,\n\t\t\t\t{ context: 'view' }\n\t\t\t);\n\t\t\treturn {\n\t\t\t\teditedBlocks: editedRecord.blocks,\n\t\t\t\tcontent: editedRecord.content,\n\t\t\t};\n\t\t},\n\t\t[ id ]\n\t);\n\n\tconst blocks = useMemo( () => {\n\t\tif ( ! id ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( editedBlocks ) {\n\t\t\treturn editedBlocks;\n\t\t}\n\n\t\tif ( ! content || typeof content !== 'string' ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn parse( content );\n\t}, [ id, editedBlocks, content ] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput: () => {},\n\t\tonChange: () => {},\n\t\trenderAppender: false,\n\t\tlayout: useLayout( layout ),\n\t} );\n\n\treturn <TagName { ...innerBlocksProps } />;\n}\n\nfunction EditableTemplatePartInnerBlocks( {\n\tpostId: id,\n\thasInnerBlocks,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_template_part',\n\t\t{ id }\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\trenderAppender: useRenderAppender( hasInnerBlocks ),\n\t\tlayout: useLayout( layout ),\n\t} );\n\n\treturn <TagName { ...innerBlocksProps } />;\n}\n\nexport default function TemplatePartInnerBlocks( {\n\tpostId: id,\n\thasInnerBlocks,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tconst { canViewTemplatePart, canEditTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tcanViewTemplatePart:\n\t\t\t\t\tselect( coreStore ).canUser( 'read', 'templates' ) ?? false,\n\t\t\t\tcanEditTemplatePart:\n\t\t\t\t\tselect( coreStore ).canUser( 'create', 'templates' ) ??\n\t\t\t\t\tfalse,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif ( ! canViewTemplatePart ) {\n\t\treturn null;\n\t}\n\n\tconst TemplatePartInnerBlocksComponent = canEditTemplatePart\n\t\t? EditableTemplatePartInnerBlocks\n\t\t: NonEditableTemplatePartPreview;\n\n\treturn (\n\t\t<TemplatePartInnerBlocksComponent\n\t\t\tpostId={ id }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tlayout={ layout }\n\t\t\ttagName={ TagName }\n\t\t\tblockProps={ blockProps }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ function TemplatePartSelectionModal({
|
|
|
34
34
|
const {
|
|
35
35
|
templateParts
|
|
36
36
|
} = (0, _hooks.useAlternativeTemplateParts)(area, templatePartId);
|
|
37
|
+
|
|
37
38
|
// We can map template parts to block patters to reuse the BlockPatternsList UI
|
|
38
39
|
const filteredTemplateParts = (0, _element.useMemo)(() => {
|
|
39
40
|
const partsAsPatterns = templateParts.map(templatePart => (0, _mapTemplatePartToBlockPattern.mapTemplatePartToBlockPattern)(templatePart));
|
|
@@ -44,7 +45,6 @@ function TemplatePartSelectionModal({
|
|
|
44
45
|
const filteredBlockPatterns = (0, _element.useMemo)(() => {
|
|
45
46
|
return (0, _searchPatterns.searchPatterns)(blockPatterns, searchValue);
|
|
46
47
|
}, [blockPatterns, searchValue]);
|
|
47
|
-
const shownBlockPatterns = (0, _compose.useAsyncList)(filteredBlockPatterns);
|
|
48
48
|
const {
|
|
49
49
|
createSuccessNotice
|
|
50
50
|
} = (0, _data.useDispatch)(_notices.store);
|
|
@@ -60,7 +60,6 @@ function TemplatePartSelectionModal({
|
|
|
60
60
|
});
|
|
61
61
|
onClose();
|
|
62
62
|
};
|
|
63
|
-
const createFromBlocks = (0, _hooks.useCreateTemplatePartFromBlocks)(area, setAttributes);
|
|
64
63
|
const hasTemplateParts = !!filteredTemplateParts.length;
|
|
65
64
|
const hasBlockPatterns = !!filteredBlockPatterns.length;
|
|
66
65
|
return (0, _react.createElement)("div", {
|
|
@@ -79,13 +78,6 @@ function TemplatePartSelectionModal({
|
|
|
79
78
|
onClickPattern: pattern => {
|
|
80
79
|
onTemplatePartSelect(pattern.templatePart);
|
|
81
80
|
}
|
|
82
|
-
})), hasBlockPatterns && (0, _react.createElement)("div", null, (0, _react.createElement)("h2", null, (0, _i18n.__)('Patterns')), (0, _react.createElement)(_blockEditor.__experimentalBlockPatternsList, {
|
|
83
|
-
blockPatterns: filteredBlockPatterns,
|
|
84
|
-
shownPatterns: shownBlockPatterns,
|
|
85
|
-
onClickPattern: (pattern, blocks) => {
|
|
86
|
-
createFromBlocks(blocks, pattern.title);
|
|
87
|
-
onClose();
|
|
88
|
-
}
|
|
89
81
|
})), !hasTemplateParts && !hasBlockPatterns && (0, _react.createElement)(_components.__experimentalHStack, {
|
|
90
82
|
alignment: "center"
|
|
91
83
|
}, (0, _react.createElement)("p", null, (0, _i18n.__)('No results found.'))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_i18n","_notices","_data","_compose","_blockEditor","_components","_hooks","_mapTemplatePartToBlockPattern","_searchPatterns","TemplatePartSelectionModal","setAttributes","onClose","templatePartId","area","clientId","searchValue","setSearchValue","useState","templateParts","useAlternativeTemplateParts","filteredTemplateParts","useMemo","partsAsPatterns","map","templatePart","mapTemplatePartToBlockPattern","searchPatterns","shownTemplateParts","useAsyncList","blockPatterns","useAlternativeBlockPatterns","filteredBlockPatterns","
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_notices","_data","_compose","_blockEditor","_components","_hooks","_mapTemplatePartToBlockPattern","_searchPatterns","TemplatePartSelectionModal","setAttributes","onClose","templatePartId","area","clientId","searchValue","setSearchValue","useState","templateParts","useAlternativeTemplateParts","filteredTemplateParts","useMemo","partsAsPatterns","map","templatePart","mapTemplatePartToBlockPattern","searchPatterns","shownTemplateParts","useAsyncList","blockPatterns","useAlternativeBlockPatterns","filteredBlockPatterns","createSuccessNotice","useDispatch","noticesStore","onTemplatePartSelect","slug","theme","undefined","sprintf","__","title","rendered","type","hasTemplateParts","length","hasBlockPatterns","_react","createElement","className","SearchControl","__nextHasNoMarginBottom","onChange","value","label","placeholder","__experimentalBlockPatternsList","shownPatterns","onClickPattern","pattern","__experimentalHStack","alignment"],"sources":["@wordpress/block-library/src/template-part/edit/selection-modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useDispatch } from '@wordpress/data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport {\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n} from './utils/hooks';\nimport { mapTemplatePartToBlockPattern } from './utils/map-template-part-to-block-pattern';\nimport { searchPatterns } from '../../utils/search-patterns';\n\nexport default function TemplatePartSelectionModal( {\n\tsetAttributes,\n\tonClose,\n\ttemplatePartId = null,\n\tarea,\n\tclientId,\n} ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\n\t// We can map template parts to block patters to reuse the BlockPatternsList UI\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tconst partsAsPatterns = templateParts.map( ( templatePart ) =>\n\t\t\tmapTemplatePartToBlockPattern( templatePart )\n\t\t);\n\n\t\treturn searchPatterns( partsAsPatterns, searchValue );\n\t}, [ templateParts, searchValue ] );\n\tconst shownTemplateParts = useAsyncList( filteredTemplateParts );\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\treturn searchPatterns( blockPatterns, searchValue );\n\t}, [ blockPatterns, searchValue ] );\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst onTemplatePartSelect = ( templatePart ) => {\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" inserted.' ),\n\t\t\t\ttemplatePart.title?.rendered || templatePart.slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t\tonClose();\n\t};\n\n\tconst hasTemplateParts = !! filteredTemplateParts.length;\n\tconst hasBlockPatterns = !! filteredBlockPatterns.length;\n\n\treturn (\n\t\t<div className=\"block-library-template-part__selection-content\">\n\t\t\t<div className=\"block-library-template-part__selection-search\">\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearchValue }\n\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\tlabel={ __( 'Search for replacements' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasTemplateParts && (\n\t\t\t\t<div>\n\t\t\t\t\t<h2>{ __( 'Existing template parts' ) }</h2>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ filteredTemplateParts }\n\t\t\t\t\t\tshownPatterns={ shownTemplateParts }\n\t\t\t\t\t\tonClickPattern={ ( pattern ) => {\n\t\t\t\t\t\t\tonTemplatePartSelect( pattern.templatePart );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! hasTemplateParts && ! hasBlockPatterns && (\n\t\t\t\t<HStack alignment=\"center\">\n\t\t\t\t\t<p>{ __( 'No results found.' ) }</p>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
package/build/utils/caption.js
CHANGED
|
@@ -27,11 +27,8 @@ var _lockUnlock = require("../lock-unlock");
|
|
|
27
27
|
* Internal dependencies
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
-
const {
|
|
31
|
-
PrivateRichText: RichText
|
|
32
|
-
} = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
|
|
33
30
|
function Caption({
|
|
34
|
-
|
|
31
|
+
attributeKey = 'caption',
|
|
35
32
|
attributes,
|
|
36
33
|
setAttributes,
|
|
37
34
|
isSelected,
|
|
@@ -40,10 +37,18 @@ function Caption({
|
|
|
40
37
|
label = (0, _i18n.__)('Caption text'),
|
|
41
38
|
showToolbarButton = true,
|
|
42
39
|
className,
|
|
43
|
-
|
|
40
|
+
readOnly,
|
|
41
|
+
tagName = 'figcaption',
|
|
42
|
+
addLabel = (0, _i18n.__)('Add caption'),
|
|
43
|
+
removeLabel = (0, _i18n.__)('Remove caption'),
|
|
44
|
+
icon = _icons.caption,
|
|
45
|
+
...props
|
|
44
46
|
}) {
|
|
45
|
-
const caption = attributes[
|
|
47
|
+
const caption = attributes[attributeKey];
|
|
46
48
|
const prevCaption = (0, _compose.usePrevious)(caption);
|
|
49
|
+
const {
|
|
50
|
+
PrivateRichText: RichText
|
|
51
|
+
} = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
|
|
47
52
|
const isCaptionEmpty = RichText.isEmpty(caption);
|
|
48
53
|
const isPrevCaptionEmpty = RichText.isEmpty(prevCaption);
|
|
49
54
|
const [showCaption, setShowCaption] = (0, _element.useState)(!isCaptionEmpty);
|
|
@@ -74,27 +79,28 @@ function Caption({
|
|
|
74
79
|
setShowCaption(!showCaption);
|
|
75
80
|
if (showCaption && caption) {
|
|
76
81
|
setAttributes({
|
|
77
|
-
|
|
82
|
+
[attributeKey]: undefined
|
|
78
83
|
});
|
|
79
84
|
}
|
|
80
85
|
},
|
|
81
|
-
icon:
|
|
86
|
+
icon: icon,
|
|
82
87
|
isPressed: showCaption,
|
|
83
|
-
label: showCaption ?
|
|
88
|
+
label: showCaption ? removeLabel : addLabel
|
|
84
89
|
})), showCaption && (!RichText.isEmpty(caption) || isSelected) && (0, _react.createElement)(RichText, {
|
|
85
|
-
identifier:
|
|
86
|
-
tagName:
|
|
90
|
+
identifier: attributeKey,
|
|
91
|
+
tagName: tagName,
|
|
87
92
|
className: (0, _classnames.default)(className, (0, _blockEditor.__experimentalGetElementClassName)('caption')),
|
|
88
93
|
ref: ref,
|
|
89
94
|
"aria-label": label,
|
|
90
95
|
placeholder: placeholder,
|
|
91
96
|
value: caption,
|
|
92
97
|
onChange: value => setAttributes({
|
|
93
|
-
|
|
98
|
+
[attributeKey]: value
|
|
94
99
|
}),
|
|
95
100
|
inlineToolbar: true,
|
|
96
101
|
__unstableOnSplitAtEnd: () => insertBlocksAfter((0, _blocks.createBlock)((0, _blocks.getDefaultBlockName)())),
|
|
97
|
-
|
|
102
|
+
readOnly: readOnly,
|
|
103
|
+
...props
|
|
98
104
|
}));
|
|
99
105
|
}
|
|
100
106
|
//# sourceMappingURL=caption.js.map
|