@wordpress/block-library 8.33.0 → 8.34.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 +15 -8
- package/build/block/edit.js.map +1 -1
- package/build/block-keyboard-shortcuts/index.js +95 -0
- package/build/block-keyboard-shortcuts/index.js.map +1 -0
- package/build/column/edit.js +28 -19
- package/build/column/edit.js.map +1 -1
- package/build/column/edit.native.js +3 -1
- package/build/column/edit.native.js.map +1 -1
- package/build/columns/edit.js +69 -53
- package/build/columns/edit.js.map +1 -1
- package/build/columns/variations.js +18 -28
- package/build/columns/variations.js.map +1 -1
- package/build/comment-template/util.js +3 -1
- package/build/comment-template/util.js.map +1 -1
- package/build/cover/shared.js +3 -1
- package/build/cover/shared.js.map +1 -1
- package/build/embed/embed-placeholder.js +8 -3
- package/build/embed/embed-placeholder.js.map +1 -1
- package/build/embed/util.js +3 -1
- package/build/embed/util.js.map +1 -1
- package/build/embed/variations.js +3 -1
- package/build/embed/variations.js.map +1 -1
- package/build/embed/wp-embed-preview.js +6 -2
- package/build/embed/wp-embed-preview.js.map +1 -1
- package/build/group/index.js +0 -8
- package/build/group/index.js.map +1 -1
- package/build/group/placeholder.js +18 -19
- package/build/group/placeholder.js.map +1 -1
- package/build/image/image.js +3 -1
- package/build/image/image.js.map +1 -1
- package/build/image/view.js +3 -1
- package/build/image/view.js.map +1 -1
- package/build/index.js +9 -1
- package/build/index.js.map +1 -1
- package/build/list-item/hooks/use-merge.js +12 -4
- package/build/list-item/hooks/use-merge.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +15 -5
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/navigation/edit/are-blocks-dirty.js +9 -3
- package/build/navigation/edit/are-blocks-dirty.js.map +1 -1
- package/build/navigation/edit/deleted-navigation-warning.js +1 -1
- package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +3 -1
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +1 -1
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/index.js +0 -9
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/view.js +3 -1
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +94 -85
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +2 -7
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/paragraph/index.js +0 -1
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/transforms.js +0 -1
- package/build/paragraph/transforms.js.map +1 -1
- package/build/post-excerpt/edit.js +3 -1
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +3 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-navigation-link/variations.js +3 -1
- package/build/post-navigation-link/variations.js.map +1 -1
- package/build/post-template/edit.js +18 -8
- package/build/post-template/edit.js.map +1 -1
- package/build/post-terms/edit.js +3 -1
- package/build/post-terms/edit.js.map +1 -1
- package/build/private-apis.js +21 -0
- package/build/private-apis.js.map +1 -0
- package/build/query/edit/enhanced-pagination-modal.js +1 -1
- package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
- package/build/query/edit/inspector-controls/author-control.js +6 -2
- package/build/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build/query/edit/inspector-controls/create-new-post-link.js +3 -1
- package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
- package/build/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
- package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
- package/build/query/edit/inspector-controls/parent-control.js +18 -6
- package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build/query/edit/inspector-controls/taxonomy-controls.js +9 -3
- package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build/query/utils.js +3 -1
- package/build/query/utils.js.map +1 -1
- package/build/query-title/variations.js +3 -1
- package/build/query-title/variations.js.map +1 -1
- package/build/social-link/edit.js +1 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/variations.js +3 -1
- package/build/social-link/variations.js.map +1 -1
- package/build/template-part/variations.js +6 -2
- package/build/template-part/variations.js.map +1 -1
- package/build-module/block/edit.js +15 -8
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block-keyboard-shortcuts/index.js +88 -0
- package/build-module/block-keyboard-shortcuts/index.js.map +1 -0
- package/build-module/column/edit.js +28 -19
- package/build-module/column/edit.js.map +1 -1
- package/build-module/column/edit.native.js +3 -1
- package/build-module/column/edit.native.js.map +1 -1
- package/build-module/columns/edit.js +69 -53
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/variations.js +18 -28
- package/build-module/columns/variations.js.map +1 -1
- package/build-module/comment-template/util.js +3 -1
- package/build-module/comment-template/util.js.map +1 -1
- package/build-module/cover/shared.js +3 -1
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/embed/embed-placeholder.js +9 -4
- package/build-module/embed/embed-placeholder.js.map +1 -1
- package/build-module/embed/util.js +3 -1
- package/build-module/embed/util.js.map +1 -1
- package/build-module/embed/variations.js +3 -1
- package/build-module/embed/variations.js.map +1 -1
- package/build-module/embed/wp-embed-preview.js +6 -2
- package/build-module/embed/wp-embed-preview.js.map +1 -1
- package/build-module/group/index.js +0 -8
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/placeholder.js +18 -19
- package/build-module/group/placeholder.js.map +1 -1
- package/build-module/image/image.js +3 -1
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/view.js +3 -1
- package/build-module/image/view.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/list-item/hooks/use-merge.js +12 -4
- package/build-module/list-item/hooks/use-merge.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +15 -5
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/navigation/edit/are-blocks-dirty.js +9 -3
- package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -1
- package/build-module/navigation/edit/deleted-navigation-warning.js +1 -1
- package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +3 -1
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/index.js +0 -9
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/view.js +3 -1
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +94 -85
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +3 -8
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/paragraph/index.js +0 -1
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/transforms.js +0 -1
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/post-excerpt/edit.js +3 -1
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +3 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-navigation-link/variations.js +3 -1
- package/build-module/post-navigation-link/variations.js.map +1 -1
- package/build-module/post-template/edit.js +18 -8
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +3 -1
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/private-apis.js +14 -0
- package/build-module/private-apis.js.map +1 -0
- package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
- package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
- package/build-module/query/edit/inspector-controls/author-control.js +6 -2
- package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/create-new-post-link.js +3 -1
- package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/parent-control.js +18 -6
- package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js +9 -3
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build-module/query/utils.js +3 -1
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-title/variations.js +3 -1
- package/build-module/query-title/variations.js.map +1 -1
- package/build-module/social-link/edit.js +1 -1
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-link/variations.js +3 -1
- package/build-module/social-link/variations.js.map +1 -1
- package/build-module/template-part/variations.js +6 -2
- package/build-module/template-part/variations.js.map +1 -1
- package/build-style/editor-rtl.css +15 -49
- package/build-style/editor.css +15 -49
- package/build-style/embed/editor-rtl.css +0 -3
- package/build-style/embed/editor.css +0 -3
- package/build-style/group/editor-rtl.css +0 -44
- package/build-style/group/editor.css +0 -44
- package/build-style/group/style-rtl.css +4 -0
- package/build-style/group/style.css +4 -0
- package/build-style/navigation-link/style-rtl.css +0 -8
- package/build-style/navigation-link/style.css +0 -8
- package/build-style/post-featured-image/editor-rtl.css +1 -0
- package/build-style/post-featured-image/editor.css +1 -0
- package/build-style/site-logo/editor-rtl.css +1 -0
- package/build-style/site-logo/editor.css +1 -0
- package/build-style/social-link/editor-rtl.css +13 -2
- package/build-style/social-link/editor.css +13 -2
- package/build-style/style-rtl.css +4 -8
- package/build-style/style.css +4 -8
- package/package.json +35 -34
- package/src/block/edit.js +19 -12
- package/src/block-keyboard-shortcuts/index.js +113 -0
- package/src/column/edit.js +26 -20
- package/src/column/edit.native.js +3 -1
- package/src/columns/edit.js +93 -83
- package/src/columns/variations.js +12 -34
- package/src/comment-template/util.js +3 -1
- package/src/cover/shared.js +3 -1
- package/src/embed/editor.scss +0 -2
- package/src/embed/embed-placeholder.js +21 -9
- package/src/embed/util.js +3 -1
- package/src/embed/variations.js +3 -1
- package/src/embed/wp-embed-preview.js +6 -2
- package/src/gallery/test/helpers.native.js +3 -3
- package/src/group/editor.scss +0 -47
- package/src/group/index.js +0 -8
- package/src/group/placeholder.js +18 -18
- package/src/group/style.scss +5 -0
- package/src/image/image.js +3 -1
- package/src/image/view.js +3 -1
- package/src/index.js +2 -0
- package/src/list-item/hooks/use-merge.js +12 -4
- package/src/list-item/hooks/use-outdent-list-item.js +15 -5
- package/src/navigation/block.json +0 -9
- package/src/navigation/edit/are-blocks-dirty.js +8 -3
- package/src/navigation/edit/deleted-navigation-warning.js +1 -1
- package/src/navigation/edit/menu-inspector-controls.js +3 -1
- package/src/navigation/edit/navigation-menu-selector.js +1 -1
- package/src/navigation/edit/test/navigation-menu-selector.js +5 -5
- package/src/navigation/view.js +3 -1
- package/src/navigation-link/edit.js +91 -91
- package/src/navigation-link/link-ui.js +74 -89
- package/src/navigation-link/style.scss +0 -12
- package/src/paragraph/block.json +0 -1
- package/src/post-excerpt/edit.js +3 -1
- package/src/post-featured-image/dimension-controls.js +3 -1
- package/src/post-featured-image/editor.scss +1 -0
- package/src/post-navigation-link/variations.js +3 -1
- package/src/post-template/edit.js +9 -4
- package/src/post-terms/edit.js +3 -1
- package/src/private-apis.js +13 -0
- package/src/query/edit/enhanced-pagination-modal.js +5 -1
- package/src/query/edit/inspector-controls/author-control.js +6 -2
- package/src/query/edit/inspector-controls/create-new-post-link.js +3 -1
- package/src/query/edit/inspector-controls/enhanced-pagination-control.js +13 -3
- package/src/query/edit/inspector-controls/parent-control.js +18 -6
- package/src/query/edit/inspector-controls/taxonomy-controls.js +9 -3
- package/src/query/index.php +1 -1
- package/src/query/utils.js +3 -1
- package/src/query-title/variations.js +3 -1
- package/src/site-logo/editor.scss +1 -0
- package/src/social-link/edit.js +2 -2
- package/src/social-link/editor.scss +25 -11
- package/src/social-link/variations.js +3 -1
- package/src/template-part/variations.js +6 -2
package/CHANGELOG.md
CHANGED
package/build/block/edit.js
CHANGED
|
@@ -80,7 +80,9 @@ const useInferredLayout = (blocks, parentLayout) => {
|
|
|
80
80
|
};
|
|
81
81
|
function hasOverridableBlocks(blocks) {
|
|
82
82
|
return blocks.some(block => {
|
|
83
|
-
if (isOverridableBlock(block))
|
|
83
|
+
if (isOverridableBlock(block)) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
84
86
|
return hasOverridableBlocks(block.innerBlocks);
|
|
85
87
|
});
|
|
86
88
|
}
|
|
@@ -129,7 +131,9 @@ function getContentValuesFromInnerBlocks(blocks, defaultValues, legacyIdMap) {
|
|
|
129
131
|
const content = {};
|
|
130
132
|
for (const block of blocks) {
|
|
131
133
|
var _legacyIdMap$block$cl2;
|
|
132
|
-
if (block.name === _index.name)
|
|
134
|
+
if (block.name === _index.name) {
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
133
137
|
if (block.innerBlocks.length) {
|
|
134
138
|
Object.assign(content, getContentValuesFromInnerBlocks(block.innerBlocks, defaultValues, legacyIdMap));
|
|
135
139
|
}
|
|
@@ -205,8 +209,9 @@ function ReusableBlockEdit({
|
|
|
205
209
|
} = (0, _coreData.useEntityRecord)('postType', 'wp_block', ref);
|
|
206
210
|
const isMissing = hasResolved && !record;
|
|
207
211
|
|
|
208
|
-
// The
|
|
209
|
-
|
|
212
|
+
// The value of the `content` attribute, stored in a `ref` to avoid triggering the effect
|
|
213
|
+
// that runs `applyInitialContentValuesToInnerBlocks` unnecessarily.
|
|
214
|
+
const contentRef = (0, _element.useRef)(content);
|
|
210
215
|
|
|
211
216
|
// The default content values from the original pattern for overridable attributes.
|
|
212
217
|
// Set by the `applyInitialContentValuesToInnerBlocks` function.
|
|
@@ -270,14 +275,14 @@ function ReusableBlockEdit({
|
|
|
270
275
|
// Apply the initial overrides from the pattern block to the inner blocks.
|
|
271
276
|
(0, _element.useEffect)(() => {
|
|
272
277
|
// Build a map of clientIds to the old nano id system to provide back compat.
|
|
273
|
-
legacyIdMap.current = getLegacyIdMap(initialBlocks,
|
|
278
|
+
legacyIdMap.current = getLegacyIdMap(initialBlocks, contentRef.current);
|
|
274
279
|
defaultContent.current = {};
|
|
275
280
|
const originalEditingMode = getBlockEditingMode(patternClientId);
|
|
276
281
|
// Replace the contents of the blocks with the overrides.
|
|
277
282
|
registry.batch(() => {
|
|
278
283
|
setBlockEditingMode(patternClientId, 'default');
|
|
279
284
|
syncDerivedUpdates(() => {
|
|
280
|
-
const blocks = hasPatternOverridesSource ? applyInitialContentValuesToInnerBlocks(initialBlocks,
|
|
285
|
+
const blocks = hasPatternOverridesSource ? applyInitialContentValuesToInnerBlocks(initialBlocks, contentRef.current, defaultContent.current, legacyIdMap.current) : initialBlocks;
|
|
281
286
|
replaceInnerBlocks(patternClientId, blocks);
|
|
282
287
|
});
|
|
283
288
|
setBlockEditingMode(patternClientId, originalEditingMode);
|
|
@@ -296,7 +301,7 @@ function ReusableBlockEdit({
|
|
|
296
301
|
})
|
|
297
302
|
});
|
|
298
303
|
const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, {
|
|
299
|
-
templateLock: '
|
|
304
|
+
templateLock: 'contentOnly',
|
|
300
305
|
layout,
|
|
301
306
|
renderAppender: innerBlocks?.length ? undefined : _blockEditor.InnerBlocks.ButtonBlockAppender
|
|
302
307
|
});
|
|
@@ -316,9 +321,11 @@ function ReusableBlockEdit({
|
|
|
316
321
|
if (blocks !== prevBlocks) {
|
|
317
322
|
prevBlocks = blocks;
|
|
318
323
|
syncDerivedUpdates(() => {
|
|
324
|
+
const updatedContent = getContentValuesFromInnerBlocks(blocks, defaultContent.current, legacyIdMap.current);
|
|
319
325
|
setAttributes({
|
|
320
|
-
content:
|
|
326
|
+
content: updatedContent
|
|
321
327
|
});
|
|
328
|
+
contentRef.current = updatedContent;
|
|
322
329
|
});
|
|
323
330
|
}
|
|
324
331
|
}, _blockEditor.store);
|
package/build/block/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_element","_coreData","_components","_i18n","_blockEditor","_patterns","_blocks","_richText","_index","_lockUnlock","useLayoutClasses","unlock","blockEditorPrivateApis","isOverridableBlock","patternsPrivateApis","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","useRef","useMemo","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableBlocks","getOverridableAttributes","Object","entries","bindings","filter","binding","source","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","name","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","RichTextData","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","patternBlockName","assign","_content$metadataName","keys","setBlockEditMode","setEditMode","mode","forEach","editMode","RecursionWarning","blockProps","useBlockProps","_react","createElement","Warning","__","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","useHasRecursion","RecursionProvider","uniqueId","ReusableBlockEdit","__unstableParentLayout","patternClientId","setAttributes","registry","useRegistry","record","editedRecord","hasResolved","useEntityRecord","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","useDispatch","blockEditorStore","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","useSelect","select","canUser","coreStore","getBlocks","getSettings","_getBlockEditingMode","getBlockBindingsSource","blocksStore","canEdit","useEffect","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","cloneBlock","parse","originalEditingMode","batch","layoutClasses","className","classnames","innerBlocksProps","useInnerBlocksProps","templateLock","renderAppender","InnerBlocks","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","Placeholder","Spinner","Fragment","BlockControls","ToolbarGroup","ToolbarButton","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( innerBlocks ),\n\t\t[ hasPatternOverridesSource, innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tinitialContent.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\tconst blocks = hasPatternOverridesSource\n\t\t\t\t\t? applyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t )\n\t\t\t\t\t: initialBlocks;\n\n\t\t\t\treplaceInnerBlocks( patternClientId, blocks );\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tif ( ! hasPatternOverridesSource ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\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}, blockEditorStore );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\tsyncDerivedUpdates,\n\t\tpatternClientId,\n\t\tregistry,\n\t\tsetAttributes,\n\t] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_element","_coreData","_components","_i18n","_blockEditor","_patterns","_blocks","_richText","_index","_lockUnlock","useLayoutClasses","unlock","blockEditorPrivateApis","isOverridableBlock","patternsPrivateApis","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","useRef","useMemo","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableBlocks","getOverridableAttributes","Object","entries","bindings","filter","binding","source","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","name","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","RichTextData","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","patternBlockName","assign","_content$metadataName","keys","setBlockEditMode","setEditMode","mode","forEach","editMode","RecursionWarning","blockProps","useBlockProps","_react","createElement","Warning","__","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","useHasRecursion","RecursionProvider","uniqueId","ReusableBlockEdit","__unstableParentLayout","patternClientId","setAttributes","registry","useRegistry","record","editedRecord","hasResolved","useEntityRecord","isMissing","contentRef","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","useDispatch","blockEditorStore","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","useSelect","select","canUser","coreStore","getBlocks","getSettings","_getBlockEditingMode","getBlockBindingsSource","blocksStore","canEdit","useEffect","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","cloneBlock","parse","originalEditingMode","batch","layoutClasses","className","classnames","innerBlocksProps","useInnerBlocksProps","templateLock","renderAppender","InnerBlocks","ButtonBlockAppender","prevBlocks","subscribe","updatedContent","handleEditOriginal","postId","postType","resetContent","children","Placeholder","Spinner","Fragment","BlockControls","ToolbarGroup","ToolbarButton","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The value of the `content` attribute, stored in a `ref` to avoid triggering the effect\n\t// that runs `applyInitialContentValuesToInnerBlocks` unnecessarily.\n\tconst contentRef = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( innerBlocks ),\n\t\t[ hasPatternOverridesSource, innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tcontentRef.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\tconst blocks = hasPatternOverridesSource\n\t\t\t\t\t? applyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\t\tcontentRef.current,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t )\n\t\t\t\t\t: initialBlocks;\n\n\t\t\t\treplaceInnerBlocks( patternClientId, blocks );\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'contentOnly',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tif ( ! hasPatternOverridesSource ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tconst updatedContent = getContentValuesFromInnerBlocks(\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t);\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: updatedContent,\n\t\t\t\t\t} );\n\t\t\t\t\tcontentRef.current = updatedContent;\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\tsyncDerivedUpdates,\n\t\tpatternClientId,\n\t\tregistry,\n\t\tsetAttributes,\n\t] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _element = require("@wordpress/element");
|
|
8
|
+
var _data = require("@wordpress/data");
|
|
9
|
+
var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
|
|
10
|
+
var _i18n = require("@wordpress/i18n");
|
|
11
|
+
var _blocks = require("@wordpress/blocks");
|
|
12
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
13
|
+
/**
|
|
14
|
+
* WordPress dependencies
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function BlockKeyboardShortcuts() {
|
|
18
|
+
const {
|
|
19
|
+
registerShortcut
|
|
20
|
+
} = (0, _data.useDispatch)(_keyboardShortcuts.store);
|
|
21
|
+
const {
|
|
22
|
+
replaceBlocks
|
|
23
|
+
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
24
|
+
const {
|
|
25
|
+
getBlockName,
|
|
26
|
+
getSelectedBlockClientId,
|
|
27
|
+
getBlockAttributes
|
|
28
|
+
} = (0, _data.useSelect)(_blockEditor.store);
|
|
29
|
+
const handleTransformHeadingAndParagraph = (event, level) => {
|
|
30
|
+
event.preventDefault();
|
|
31
|
+
const currentClientId = getSelectedBlockClientId();
|
|
32
|
+
if (currentClientId === null) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const blockName = getBlockName(currentClientId);
|
|
36
|
+
const isParagraph = blockName === 'core/paragraph';
|
|
37
|
+
const isHeading = blockName === 'core/heading';
|
|
38
|
+
if (!isParagraph && !isHeading) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
|
|
42
|
+
const attributes = getBlockAttributes(currentClientId);
|
|
43
|
+
|
|
44
|
+
// Avoid unnecessary block transform when attempting to transform to
|
|
45
|
+
// the same block type and/or same level.
|
|
46
|
+
if (isParagraph && level === 0 || isHeading && attributes.level === level) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
50
|
+
const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
|
|
51
|
+
replaceBlocks(currentClientId, (0, _blocks.createBlock)(destinationBlockName, {
|
|
52
|
+
level,
|
|
53
|
+
content: attributes.content,
|
|
54
|
+
...{
|
|
55
|
+
[destinationTextAlign]: attributes[textAlign]
|
|
56
|
+
}
|
|
57
|
+
}));
|
|
58
|
+
};
|
|
59
|
+
(0, _element.useEffect)(() => {
|
|
60
|
+
registerShortcut({
|
|
61
|
+
name: 'core/block-editor/transform-heading-to-paragraph',
|
|
62
|
+
category: 'block-library',
|
|
63
|
+
description: (0, _i18n.__)('Transform heading to paragraph.'),
|
|
64
|
+
keyCombination: {
|
|
65
|
+
modifier: 'access',
|
|
66
|
+
character: '0'
|
|
67
|
+
},
|
|
68
|
+
aliases: [{
|
|
69
|
+
modifier: 'access',
|
|
70
|
+
character: '7'
|
|
71
|
+
}]
|
|
72
|
+
});
|
|
73
|
+
[1, 2, 3, 4, 5, 6].forEach(level => {
|
|
74
|
+
registerShortcut({
|
|
75
|
+
name: `core/block-editor/transform-paragraph-to-heading-${level}`,
|
|
76
|
+
category: 'block-library',
|
|
77
|
+
description: (0, _i18n.__)('Transform paragraph to heading.'),
|
|
78
|
+
keyCombination: {
|
|
79
|
+
modifier: 'access',
|
|
80
|
+
character: `${level}`
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}, []);
|
|
85
|
+
(0, _keyboardShortcuts.useShortcut)('core/block-editor/transform-heading-to-paragraph', event => handleTransformHeadingAndParagraph(event, 0));
|
|
86
|
+
[1, 2, 3, 4, 5, 6].forEach(level => {
|
|
87
|
+
//the loop is based off on a constant therefore
|
|
88
|
+
//the hook will execute the same way every time
|
|
89
|
+
//eslint-disable-next-line react-hooks/rules-of-hooks
|
|
90
|
+
(0, _keyboardShortcuts.useShortcut)(`core/block-editor/transform-paragraph-to-heading-${level}`, event => handleTransformHeadingAndParagraph(event, level));
|
|
91
|
+
});
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
var _default = exports.default = BlockKeyboardShortcuts;
|
|
95
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_keyboardShortcuts","_i18n","_blocks","_blockEditor","BlockKeyboardShortcuts","registerShortcut","useDispatch","keyboardShortcutsStore","replaceBlocks","blockEditorStore","getBlockName","getSelectedBlockClientId","getBlockAttributes","useSelect","handleTransformHeadingAndParagraph","event","level","preventDefault","currentClientId","blockName","isParagraph","isHeading","destinationBlockName","attributes","textAlign","destinationTextAlign","createBlock","content","useEffect","name","category","description","__","keyCombination","modifier","character","aliases","forEach","useShortcut","_default","exports","default"],"sources":["@wordpress/block-library/src/block-keyboard-shortcuts/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction BlockKeyboardShortcuts() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTransformHeadingAndParagraph = ( event, level ) => {\n\t\tevent.preventDefault();\n\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tconst isParagraph = blockName === 'core/paragraph';\n\t\tconst isHeading = blockName === 'core/heading';\n\n\t\tif ( ! isParagraph && ! isHeading ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\n\t\t// Avoid unnecessary block transform when attempting to transform to\n\t\t// the same block type and/or same level.\n\t\tif (\n\t\t\t( isParagraph && level === 0 ) ||\n\t\t\t( isHeading && attributes.level === level )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/transform-heading-to-paragraph',\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: '0',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: '7',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\t}, [] );\n\n\tuseShortcut(\n\t\t'core/block-editor/transform-heading-to-paragraph',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTransformHeadingAndParagraph( event, level )\n\t\t);\n\t} );\n\n\treturn null;\n}\n\nexport default BlockKeyboardShortcuts;\n"],"mappings":"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","ignoreList":[]}
|
package/build/column/edit.js
CHANGED
|
@@ -19,6 +19,30 @@ var _i18n = require("@wordpress/i18n");
|
|
|
19
19
|
* WordPress dependencies
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
+
function ColumnInspectorControls({
|
|
23
|
+
width,
|
|
24
|
+
setAttributes
|
|
25
|
+
}) {
|
|
26
|
+
const [availableUnits] = (0, _blockEditor.useSettings)('spacing.units');
|
|
27
|
+
const units = (0, _components.__experimentalUseCustomUnits)({
|
|
28
|
+
availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw']
|
|
29
|
+
});
|
|
30
|
+
return (0, _react.createElement)(_components.PanelBody, {
|
|
31
|
+
title: (0, _i18n.__)('Settings')
|
|
32
|
+
}, (0, _react.createElement)(_components.__experimentalUnitControl, {
|
|
33
|
+
label: (0, _i18n.__)('Width'),
|
|
34
|
+
labelPosition: "edge",
|
|
35
|
+
__unstableInputWidth: "80px",
|
|
36
|
+
value: width || '',
|
|
37
|
+
onChange: nextWidth => {
|
|
38
|
+
nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth;
|
|
39
|
+
setAttributes({
|
|
40
|
+
width: nextWidth
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
units: units
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
22
46
|
function ColumnEdit({
|
|
23
47
|
attributes: {
|
|
24
48
|
verticalAlignment,
|
|
@@ -32,10 +56,6 @@ function ColumnEdit({
|
|
|
32
56
|
const classes = (0, _classnames.default)('block-core-columns', {
|
|
33
57
|
[`is-vertically-aligned-${verticalAlignment}`]: verticalAlignment
|
|
34
58
|
});
|
|
35
|
-
const [availableUnits] = (0, _blockEditor.useSettings)('spacing.units');
|
|
36
|
-
const units = (0, _components.__experimentalUseCustomUnits)({
|
|
37
|
-
availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw']
|
|
38
|
-
});
|
|
39
59
|
const {
|
|
40
60
|
columnsIds,
|
|
41
61
|
hasChildBlocks,
|
|
@@ -88,21 +108,10 @@ function ColumnEdit({
|
|
|
88
108
|
onChange: updateAlignment,
|
|
89
109
|
value: verticalAlignment,
|
|
90
110
|
controls: ['top', 'center', 'bottom', 'stretch']
|
|
91
|
-
})), (0, _react.createElement)(_blockEditor.InspectorControls, null, (0, _react.createElement)(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
labelPosition: "edge",
|
|
96
|
-
__unstableInputWidth: "80px",
|
|
97
|
-
value: width || '',
|
|
98
|
-
onChange: nextWidth => {
|
|
99
|
-
nextWidth = 0 > parseFloat(nextWidth) ? '0' : nextWidth;
|
|
100
|
-
setAttributes({
|
|
101
|
-
width: nextWidth
|
|
102
|
-
});
|
|
103
|
-
},
|
|
104
|
-
units: units
|
|
105
|
-
}))), (0, _react.createElement)("div", {
|
|
111
|
+
})), (0, _react.createElement)(_blockEditor.InspectorControls, null, (0, _react.createElement)(ColumnInspectorControls, {
|
|
112
|
+
width: width,
|
|
113
|
+
setAttributes: setAttributes
|
|
114
|
+
})), (0, _react.createElement)("div", {
|
|
106
115
|
...innerBlocksProps
|
|
107
116
|
}));
|
|
108
117
|
}
|
package/build/column/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blockEditor","_components","_data","_i18n","
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blockEditor","_components","_data","_i18n","ColumnInspectorControls","width","setAttributes","availableUnits","useSettings","units","useCustomUnits","_react","createElement","PanelBody","title","__","__experimentalUnitControl","label","labelPosition","__unstableInputWidth","value","onChange","nextWidth","parseFloat","ColumnEdit","attributes","verticalAlignment","templateLock","allowedBlocks","clientId","classes","classnames","columnsIds","hasChildBlocks","rootClientId","useSelect","select","getBlockOrder","getBlockRootClientId","blockEditorStore","rootId","length","updateBlockAttributes","useDispatch","updateAlignment","widthWithUnit","Number","isFinite","blockProps","useBlockProps","className","style","flexBasis","undefined","columnsCount","currentColumnPosition","indexOf","sprintf","innerBlocksProps","useInnerBlocksProps","renderAppender","InnerBlocks","ButtonBlockAppender","Fragment","BlockControls","BlockVerticalAlignmentToolbar","controls","InspectorControls","_default","exports","default"],"sources":["@wordpress/block-library/src/column/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSettings,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPanelBody,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\nfunction ColumnInspectorControls( { width, setAttributes } ) {\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t} );\n\treturn (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<UnitControl\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\tvalue={ width || '' }\n\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\tnextWidth = 0 > parseFloat( nextWidth ) ? '0' : nextWidth;\n\t\t\t\t\tsetAttributes( { width: nextWidth } );\n\t\t\t\t} }\n\t\t\t\tunits={ units }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ColumnEdit( {\n\tattributes: { verticalAlignment, width, templateLock, allowedBlocks },\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst classes = classnames( 'block-core-columns', {\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t} );\n\tconst { columnsIds, hasChildBlocks, rootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootId = getBlockRootClientId( clientId );\n\n\t\t\treturn {\n\t\t\t\thasChildBlocks: getBlockOrder( clientId ).length > 0,\n\t\t\t\trootClientId: rootId,\n\t\t\t\tcolumnsIds: getBlockOrder( rootId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst updateAlignment = ( value ) => {\n\t\t// Update own alignment.\n\t\tsetAttributes( { verticalAlignment: value } );\n\t\t// Reset parent Columns block.\n\t\tupdateBlockAttributes( rootClientId, {\n\t\t\tverticalAlignment: null,\n\t\t} );\n\t};\n\n\tconst widthWithUnit = Number.isFinite( width ) ? width + '%' : width;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t\tstyle: widthWithUnit ? { flexBasis: widthWithUnit } : undefined,\n\t} );\n\n\tconst columnsCount = columnsIds.length;\n\tconst currentColumnPosition = columnsIds.indexOf( clientId ) + 1;\n\n\tconst label = sprintf(\n\t\t/* translators: 1: Block label (i.e. \"Block: Column\"), 2: Position of the selected block, 3: Total number of sibling blocks of the same type */\n\t\t__( '%1$s (%2$d of %3$d)' ),\n\t\tblockProps[ 'aria-label' ],\n\t\tcurrentColumnPosition,\n\t\tcolumnsCount\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ ...blockProps, 'aria-label': label },\n\t\t{\n\t\t\ttemplateLock,\n\t\t\tallowedBlocks,\n\t\t\trenderAppender: hasChildBlocks\n\t\t\t\t? undefined\n\t\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\tcontrols={ [ 'top', 'center', 'bottom', 'stretch' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ColumnInspectorControls\n\t\t\t\t\twidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nexport default ColumnEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -143,7 +143,9 @@ function ColumnEditWrapper(props) {
|
|
|
143
143
|
verticalAlignment
|
|
144
144
|
} = props.attributes;
|
|
145
145
|
const getVerticalAlignmentRemap = alignment => {
|
|
146
|
-
if (!alignment)
|
|
146
|
+
if (!alignment) {
|
|
147
|
+
return _editor.default.flexBase;
|
|
148
|
+
}
|
|
147
149
|
return {
|
|
148
150
|
..._editor.default.flexBase,
|
|
149
151
|
..._editor.default[`is-vertically-aligned-${alignment}`]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_data","_compose","_element","_blockEditor","_components","_i18n","_editor","_interopRequireDefault","_columnPreview","_utils","ColumnEdit","attributes","setAttributes","hasChildren","isSelected","getStylesFromColorScheme","contentStyle","columns","selectedColumnIndex","parentAlignment","clientId","blockWidth","verticalAlignment","width","valueUnit","getValueAndUnit","screenWidth","Math","floor","Dimensions","get","widthUnit","setWidthUnit","useState","availableUnits","useSettings","units","useCustomUnits","updateAlignment","alignment","useEffect","onChangeWidth","nextWidth","widthWithUnit","getWidthWithUnit","onChangeUnit","nextUnit","widthWithoutUnit","parseFloat","getWidths","onChange","isPercentageUnit","renderAppender","useCallback","columnWidth","isFullWidth","_react","createElement","View","style","styles","columnAppender","fullwidthColumnAppender","fullwidthHasInnerColumnAppender","hasInnerColumnAppender","InnerBlocks","ButtonBlockAppender","columnPlaceholder","columnPlaceholderDark","parentWidth","Fragment","BlockControls","BlockVerticalAlignmentToolbar","value","InspectorControls","PanelBody","title","__","UnitControl","label","min","max","undefined","onComplete","onUnitChange","unit","preview","default","columnWidths","FooterMessageControl","innerBlocksBottomSpace","ColumnEditWrapper","props","getVerticalAlignmentRemap","flexBase","_default","exports","compose","withSelect","select","getBlockCount","getBlockRootClientId","getSelectedBlockClientId","getBlocks","getBlockOrder","getBlockAttributes","blockEditorStore","selectedBlockClientId","parentId","blockOrder","indexOf","withPreferredColorScheme"],"sources":["@wordpress/block-library/src/column/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { useEffect, useState, useCallback } from '@wordpress/element';\nimport {\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tFooterMessageControl,\n\tUnitControl,\n\tgetValueAndUnit,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport ColumnsPreview from './column-preview';\nimport {\n\tgetWidths,\n\tgetWidthWithUnit,\n\tisPercentageUnit,\n} from '../columns/utils';\n\nfunction ColumnEdit( {\n\tattributes,\n\tsetAttributes,\n\thasChildren,\n\tisSelected,\n\tgetStylesFromColorScheme,\n\tcontentStyle,\n\tcolumns,\n\tselectedColumnIndex,\n\tparentAlignment,\n\tclientId,\n\tblockWidth,\n} ) {\n\tif ( ! contentStyle ) {\n\t\tcontentStyle = { [ clientId ]: {} };\n\t}\n\n\tconst { verticalAlignment, width } = attributes;\n\tconst { valueUnit = '%' } = getValueAndUnit( width ) || {};\n\n\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\tconst [ widthUnit, setWidthUnit ] = useState( valueUnit || '%' );\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t} );\n\n\tconst updateAlignment = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tuseEffect( () => {\n\t\tsetWidthUnit( valueUnit );\n\t}, [ valueUnit ] );\n\n\tuseEffect( () => {\n\t\tif ( ! verticalAlignment && parentAlignment ) {\n\t\t\tupdateAlignment( parentAlignment );\n\t\t}\n\t}, [] );\n\n\tconst onChangeWidth = ( nextWidth ) => {\n\t\tconst widthWithUnit = getWidthWithUnit( nextWidth, widthUnit );\n\n\t\tsetAttributes( {\n\t\t\twidth: widthWithUnit,\n\t\t} );\n\t};\n\n\tconst onChangeUnit = ( nextUnit ) => {\n\t\tsetWidthUnit( nextUnit );\n\t\tconst widthWithoutUnit = parseFloat(\n\t\t\twidth || getWidths( columns )[ selectedColumnIndex ]\n\t\t);\n\n\t\tsetAttributes( {\n\t\t\twidth: getWidthWithUnit( widthWithoutUnit, nextUnit ),\n\t\t} );\n\t};\n\n\tconst onChange = ( nextWidth ) => {\n\t\tif ( isPercentageUnit( widthUnit ) || ! widthUnit ) {\n\t\t\treturn;\n\t\t}\n\t\tonChangeWidth( nextWidth );\n\t};\n\n\tconst renderAppender = useCallback( () => {\n\t\tif ( isSelected ) {\n\t\t\tconst { width: columnWidth } = contentStyle[ clientId ] || {};\n\t\t\tconst isFullWidth = columnWidth === screenWidth;\n\n\t\t\treturn (\n\t\t\t\t<View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\tstyles.columnAppender,\n\t\t\t\t\t\tisFullWidth && styles.fullwidthColumnAppender,\n\t\t\t\t\t\tisFullWidth &&\n\t\t\t\t\t\t\thasChildren &&\n\t\t\t\t\t\t\tstyles.fullwidthHasInnerColumnAppender,\n\t\t\t\t\t\t! isFullWidth &&\n\t\t\t\t\t\t\thasChildren &&\n\t\t\t\t\t\t\tstyles.hasInnerColumnAppender,\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<InnerBlocks.ButtonBlockAppender />\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [ contentStyle, clientId, screenWidth, isSelected, hasChildren ] );\n\n\tif ( ! isSelected && ! hasChildren ) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\tstyles.columnPlaceholder,\n\t\t\t\t\t\tstyles.columnPlaceholderDark\n\t\t\t\t\t),\n\t\t\t\t\tcontentStyle[ clientId ],\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst parentWidth =\n\t\tcontentStyle &&\n\t\tcontentStyle[ clientId ] &&\n\t\tcontentStyle[ clientId ].width;\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit )\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonComplete={ onChangeWidth }\n\t\t\t\t\t\t\t\tonUnitChange={ onChangeUnit }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tgetWidths( columns )[ selectedColumnIndex ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tunit={ widthUnit }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tpreview={\n\t\t\t\t\t\t\t\t\t<ColumnsPreview\n\t\t\t\t\t\t\t\t\t\tcolumnWidths={ getWidths(\n\t\t\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tselectedColumnIndex={\n\t\t\t\t\t\t\t\t\t\t\tselectedColumnIndex\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/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Note: Column layout may vary between themes and screen sizes'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tisSelected && hasChildren && styles.innerBlocksBottomSpace,\n\t\t\t\t\tcontentStyle[ clientId ],\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<InnerBlocks\n\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n}\n\nfunction ColumnEditWrapper( props ) {\n\tconst { verticalAlignment } = props.attributes;\n\n\tconst getVerticalAlignmentRemap = ( alignment ) => {\n\t\tif ( ! alignment ) return styles.flexBase;\n\t\treturn {\n\t\t\t...styles.flexBase,\n\t\t\t...styles[ `is-vertically-aligned-${ alignment }` ],\n\t\t};\n\t};\n\n\treturn (\n\t\t<View style={ getVerticalAlignmentRemap( verticalAlignment ) }>\n\t\t\t<ColumnEdit { ...props } />\n\t\t</View>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockCount,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetBlocks,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst isSelected = selectedBlockClientId === clientId;\n\n\t\tconst parentId = getBlockRootClientId( clientId );\n\t\tconst hasChildren = !! getBlockCount( clientId );\n\n\t\tconst blockOrder = getBlockOrder( parentId );\n\n\t\tconst selectedColumnIndex = blockOrder.indexOf( clientId );\n\t\tconst columns = getBlocks( parentId );\n\n\t\tconst parentAlignment =\n\t\t\tgetBlockAttributes( parentId )?.verticalAlignment;\n\n\t\treturn {\n\t\t\thasChildren,\n\t\t\tisSelected,\n\t\t\tselectedColumnIndex,\n\t\t\tcolumns,\n\t\t\tparentAlignment,\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( ColumnEditWrapper );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_data","_compose","_element","_blockEditor","_components","_i18n","_editor","_interopRequireDefault","_columnPreview","_utils","ColumnEdit","attributes","setAttributes","hasChildren","isSelected","getStylesFromColorScheme","contentStyle","columns","selectedColumnIndex","parentAlignment","clientId","blockWidth","verticalAlignment","width","valueUnit","getValueAndUnit","screenWidth","Math","floor","Dimensions","get","widthUnit","setWidthUnit","useState","availableUnits","useSettings","units","useCustomUnits","updateAlignment","alignment","useEffect","onChangeWidth","nextWidth","widthWithUnit","getWidthWithUnit","onChangeUnit","nextUnit","widthWithoutUnit","parseFloat","getWidths","onChange","isPercentageUnit","renderAppender","useCallback","columnWidth","isFullWidth","_react","createElement","View","style","styles","columnAppender","fullwidthColumnAppender","fullwidthHasInnerColumnAppender","hasInnerColumnAppender","InnerBlocks","ButtonBlockAppender","columnPlaceholder","columnPlaceholderDark","parentWidth","Fragment","BlockControls","BlockVerticalAlignmentToolbar","value","InspectorControls","PanelBody","title","__","UnitControl","label","min","max","undefined","onComplete","onUnitChange","unit","preview","default","columnWidths","FooterMessageControl","innerBlocksBottomSpace","ColumnEditWrapper","props","getVerticalAlignmentRemap","flexBase","_default","exports","compose","withSelect","select","getBlockCount","getBlockRootClientId","getSelectedBlockClientId","getBlocks","getBlockOrder","getBlockAttributes","blockEditorStore","selectedBlockClientId","parentId","blockOrder","indexOf","withPreferredColorScheme"],"sources":["@wordpress/block-library/src/column/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { useEffect, useState, useCallback } from '@wordpress/element';\nimport {\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tFooterMessageControl,\n\tUnitControl,\n\tgetValueAndUnit,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport ColumnsPreview from './column-preview';\nimport {\n\tgetWidths,\n\tgetWidthWithUnit,\n\tisPercentageUnit,\n} from '../columns/utils';\n\nfunction ColumnEdit( {\n\tattributes,\n\tsetAttributes,\n\thasChildren,\n\tisSelected,\n\tgetStylesFromColorScheme,\n\tcontentStyle,\n\tcolumns,\n\tselectedColumnIndex,\n\tparentAlignment,\n\tclientId,\n\tblockWidth,\n} ) {\n\tif ( ! contentStyle ) {\n\t\tcontentStyle = { [ clientId ]: {} };\n\t}\n\n\tconst { verticalAlignment, width } = attributes;\n\tconst { valueUnit = '%' } = getValueAndUnit( width ) || {};\n\n\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\tconst [ widthUnit, setWidthUnit ] = useState( valueUnit || '%' );\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t} );\n\n\tconst updateAlignment = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\n\tuseEffect( () => {\n\t\tsetWidthUnit( valueUnit );\n\t}, [ valueUnit ] );\n\n\tuseEffect( () => {\n\t\tif ( ! verticalAlignment && parentAlignment ) {\n\t\t\tupdateAlignment( parentAlignment );\n\t\t}\n\t}, [] );\n\n\tconst onChangeWidth = ( nextWidth ) => {\n\t\tconst widthWithUnit = getWidthWithUnit( nextWidth, widthUnit );\n\n\t\tsetAttributes( {\n\t\t\twidth: widthWithUnit,\n\t\t} );\n\t};\n\n\tconst onChangeUnit = ( nextUnit ) => {\n\t\tsetWidthUnit( nextUnit );\n\t\tconst widthWithoutUnit = parseFloat(\n\t\t\twidth || getWidths( columns )[ selectedColumnIndex ]\n\t\t);\n\n\t\tsetAttributes( {\n\t\t\twidth: getWidthWithUnit( widthWithoutUnit, nextUnit ),\n\t\t} );\n\t};\n\n\tconst onChange = ( nextWidth ) => {\n\t\tif ( isPercentageUnit( widthUnit ) || ! widthUnit ) {\n\t\t\treturn;\n\t\t}\n\t\tonChangeWidth( nextWidth );\n\t};\n\n\tconst renderAppender = useCallback( () => {\n\t\tif ( isSelected ) {\n\t\t\tconst { width: columnWidth } = contentStyle[ clientId ] || {};\n\t\t\tconst isFullWidth = columnWidth === screenWidth;\n\n\t\t\treturn (\n\t\t\t\t<View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\tstyles.columnAppender,\n\t\t\t\t\t\tisFullWidth && styles.fullwidthColumnAppender,\n\t\t\t\t\t\tisFullWidth &&\n\t\t\t\t\t\t\thasChildren &&\n\t\t\t\t\t\t\tstyles.fullwidthHasInnerColumnAppender,\n\t\t\t\t\t\t! isFullWidth &&\n\t\t\t\t\t\t\thasChildren &&\n\t\t\t\t\t\t\tstyles.hasInnerColumnAppender,\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<InnerBlocks.ButtonBlockAppender />\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}, [ contentStyle, clientId, screenWidth, isSelected, hasChildren ] );\n\n\tif ( ! isSelected && ! hasChildren ) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\tstyles.columnPlaceholder,\n\t\t\t\t\t\tstyles.columnPlaceholderDark\n\t\t\t\t\t),\n\t\t\t\t\tcontentStyle[ clientId ],\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst parentWidth =\n\t\tcontentStyle &&\n\t\tcontentStyle[ clientId ] &&\n\t\tcontentStyle[ clientId ].width;\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit )\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonComplete={ onChangeWidth }\n\t\t\t\t\t\t\t\tonUnitChange={ onChangeUnit }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tgetWidths( columns )[ selectedColumnIndex ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tunit={ widthUnit }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\tpreview={\n\t\t\t\t\t\t\t\t\t<ColumnsPreview\n\t\t\t\t\t\t\t\t\t\tcolumnWidths={ getWidths(\n\t\t\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tselectedColumnIndex={\n\t\t\t\t\t\t\t\t\t\t\tselectedColumnIndex\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/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Note: Column layout may vary between themes and screen sizes'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tisSelected && hasChildren && styles.innerBlocksBottomSpace,\n\t\t\t\t\tcontentStyle[ clientId ],\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<InnerBlocks\n\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n}\n\nfunction ColumnEditWrapper( props ) {\n\tconst { verticalAlignment } = props.attributes;\n\n\tconst getVerticalAlignmentRemap = ( alignment ) => {\n\t\tif ( ! alignment ) {\n\t\t\treturn styles.flexBase;\n\t\t}\n\t\treturn {\n\t\t\t...styles.flexBase,\n\t\t\t...styles[ `is-vertically-aligned-${ alignment }` ],\n\t\t};\n\t};\n\n\treturn (\n\t\t<View style={ getVerticalAlignmentRemap( verticalAlignment ) }>\n\t\t\t<ColumnEdit { ...props } />\n\t\t</View>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockCount,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetBlocks,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst isSelected = selectedBlockClientId === clientId;\n\n\t\tconst parentId = getBlockRootClientId( clientId );\n\t\tconst hasChildren = !! getBlockCount( clientId );\n\n\t\tconst blockOrder = getBlockOrder( parentId );\n\n\t\tconst selectedColumnIndex = blockOrder.indexOf( clientId );\n\t\tconst columns = getBlocks( parentId );\n\n\t\tconst parentAlignment =\n\t\t\tgetBlockAttributes( parentId )?.verticalAlignment;\n\n\t\treturn {\n\t\t\thasChildren,\n\t\t\tisSelected,\n\t\t\tselectedColumnIndex,\n\t\t\tcolumns,\n\t\t\tparentAlignment,\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( ColumnEditWrapper );\n"],"mappings":"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","ignoreList":[]}
|