@wordpress/block-editor 10.0.4 → 10.0.5

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.
@@ -51,7 +51,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
51
51
  function useContentBlocks(blockTypes, block) {
52
52
  const contenBlocksObjectAux = (0, _element.useMemo)(() => {
53
53
  return blockTypes.reduce((result, blockType) => {
54
- if (Object.entries(blockType.attributes).some(_ref => {
54
+ if (blockType.name !== 'core/list-item' && Object.entries(blockType.attributes).some(_ref => {
55
55
  let [, {
56
56
  __experimentalRole
57
57
  }] = _ref;
@@ -161,8 +161,7 @@ const BlockInspector = _ref5 => {
161
161
  getSelectedBlockClientId,
162
162
  getSelectedBlockCount,
163
163
  getBlockName,
164
- __unstableGetContentLockingParent,
165
- getTemplateLock
164
+ __unstableGetContentLockingParent
166
165
  } = select(_store.store);
167
166
 
168
167
  const _selectedBlockClientId = getSelectedBlockClientId();
@@ -176,7 +175,7 @@ const BlockInspector = _ref5 => {
176
175
  selectedBlockClientId: _selectedBlockClientId,
177
176
  selectedBlockName: _selectedBlockName,
178
177
  blockType: _blockType,
179
- topLevelLockedBlock: getTemplateLock(_selectedBlockClientId) === 'contentOnly' ? _selectedBlockClientId : __unstableGetContentLockingParent(_selectedBlockClientId)
178
+ topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId)
180
179
  };
181
180
  }, []);
182
181
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["useContentBlocks","blockTypes","block","contenBlocksObjectAux","reduce","result","blockType","Object","entries","attributes","some","__experimentalRole","name","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","blockEditorStore","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","blocksStore","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","isSelectedBlockUnregistered","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles","length","AdvancedControls","slot","InspectorAdvancedControls","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contenBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contenBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ blockTypes ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\tgetTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: __unstableGetContentLockingParent(\n\t\t\t\t\t\t\t_selectedBlockClientId\n\t\t\t\t\t ),\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles\n\t\t\t\t\t\t\tscope=\"core/block-inspector\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = () => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot __experimentalGroup=\"advanced\" />\n\t\t</PanelBody>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["useContentBlocks","blockTypes","block","contenBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","blockEditorStore","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","blocksStore","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","_selectedBlockClientId","_selectedBlockName","_blockType","isSelectedBlockUnregistered","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles","length","AdvancedControls","slot","InspectorAdvancedControls","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contenBlocksObjectAux = useMemo( () => {\n\t\treturn blockTypes.reduce( ( result, blockType ) => {\n\t\t\tif (\n\t\t\t\tblockType.name !== 'core/list-item' &&\n\t\t\t\tObject.entries( blockType.attributes ).some(\n\t\t\t\t\t( [ , { __experimentalRole } ] ) =>\n\t\t\t\t\t\t__experimentalRole === 'content'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tresult[ blockType.name ] = true;\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {} );\n\t}, [ blockTypes ] );\n\tconst isContentBlock = useCallback(\n\t\t( blockName ) => {\n\t\t\treturn !! contenBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ blockTypes ]\n\t);\n\treturn useMemo( () => {\n\t\treturn getContentBlocks( [ block ], isContentBlock );\n\t}, [ block, isContentBlock ] );\n}\n\nfunction getContentBlocks( blocks, isContentBlock ) {\n\tconst result = [];\n\tfor ( const block of blocks ) {\n\t\tif ( isContentBlock( block.name ) ) {\n\t\t\tresult.push( block );\n\t\t}\n\t\tresult.push( ...getContentBlocks( block.innerBlocks, isContentBlock ) );\n\t}\n\treturn result;\n}\n\nfunction BlockNavigationButton( { blockTypes, block, selectedBlock } ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst blockType = blockTypes.find( ( { name } ) => name === block.name );\n\tconst isSelected =\n\t\tselectedBlock && selectedBlock.clientId === block.clientId;\n\treturn (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tonClick={ () => selectBlock( block.clientId ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ blockType.icon } />\n\t\t\t\t<FlexItem>{ blockType.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</Button>\n\t);\n}\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst { blockTypes, block, selectedBlock } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\t\tblock: select( blockEditorStore ).getBlock(\n\t\t\t\t\ttopLevelLockedBlock\n\t\t\t\t),\n\t\t\t\tselectedBlock: select( blockEditorStore ).getSelectedBlock(),\n\t\t\t};\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\tconst contentBlocks = useContentBlocks( blockTypes, block );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<VStack\n\t\t\t\tspacing={ 1 }\n\t\t\t\tpadding={ 4 }\n\t\t\t\tclassName=\"block-editor-block-inspector__block-buttons-container\"\n\t\t\t>\n\t\t\t\t<h2 className=\"block-editor-block-card__title\">\n\t\t\t\t\t{ __( 'Content' ) }\n\t\t\t\t</h2>\n\t\t\t\t{ contentBlocks.map( ( contentBlock ) => (\n\t\t\t\t\t<BlockNavigationButton\n\t\t\t\t\t\tselectedBlock={ selectedBlock }\n\t\t\t\t\t\tkey={ contentBlock.clientId }\n\t\t\t\t\t\tblock={ contentBlock }\n\t\t\t\t\t\tblockTypes={ blockTypes }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock: __unstableGetContentLockingParent(\n\t\t\t\t_selectedBlockClientId\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles\n\t\t\t\t\t\t\tscope=\"core/block-inspector\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = () => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot __experimentalGroup=\"advanced\" />\n\t\t</PanelBody>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
@@ -285,17 +285,17 @@ const applyWithSelect = (0, _data.withSelect)((select, _ref3) => {
285
285
  isSelected
286
286
  };
287
287
  });
288
- const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, _ref4) => {
289
- let {
290
- select
291
- } = _ref4;
288
+ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, registry) => {
292
289
  const {
293
290
  updateBlockAttributes,
294
291
  insertBlocks,
295
292
  mergeBlocks,
296
293
  replaceBlocks,
297
294
  toggleSelection,
298
- __unstableMarkLastChangeAsPersistent
295
+ __unstableMarkLastChangeAsPersistent,
296
+ moveBlocksToPosition,
297
+ removeBlock,
298
+ selectBlock
299
299
  } = dispatch(_store.store); // Do not add new properties here, use `useDispatch` instead to avoid
300
300
  // leaking new props to the public API (editor.BlockListBlock filter).
301
301
 
@@ -303,7 +303,7 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, _ref4) =>
303
303
  setAttributes(newAttributes) {
304
304
  const {
305
305
  getMultiSelectedBlockClientIds
306
- } = select(_store.store);
306
+ } = registry.select(_store.store);
307
307
  const multiSelectedBlockClientIds = getMultiSelectedBlockClientIds();
308
308
  const {
309
309
  clientId
@@ -326,7 +326,7 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, _ref4) =>
326
326
  } = ownProps;
327
327
  const {
328
328
  getBlockIndex
329
- } = select(_store.store);
329
+ } = registry.select(_store.store);
330
330
  const index = getBlockIndex(clientId);
331
331
  insertBlocks(blocks, index + 1, rootClientId);
332
332
  },
@@ -339,13 +339,52 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, _ref4) =>
339
339
  const {
340
340
  getPreviousBlockClientId,
341
341
  getNextBlockClientId,
342
- getBlock
343
- } = select(_store.store);
342
+ getBlock,
343
+ getBlockAttributes,
344
+ getBlockName,
345
+ getBlockOrder
346
+ } = registry.select(_store.store); // For `Delete` or forward merge, we should do the exact same thing
347
+ // as `Backspace`, but from the other block.
344
348
 
345
349
  if (forward) {
350
+ if (rootClientId) {
351
+ const nextRootClientId = getNextBlockClientId(rootClientId);
352
+
353
+ if (nextRootClientId) {
354
+ // If there is a block that follows with the same parent
355
+ // block name and the same attributes, merge the inner
356
+ // blocks.
357
+ if (getBlockName(rootClientId) === getBlockName(nextRootClientId)) {
358
+ const rootAttributes = getBlockAttributes(rootClientId);
359
+ const previousRootAttributes = getBlockAttributes(nextRootClientId);
360
+
361
+ if (Object.keys(rootAttributes).every(key => rootAttributes[key] === previousRootAttributes[key])) {
362
+ registry.batch(() => {
363
+ moveBlocksToPosition(getBlockOrder(nextRootClientId), nextRootClientId, rootClientId);
364
+ removeBlock(nextRootClientId, false);
365
+ });
366
+ return;
367
+ }
368
+ } else {
369
+ mergeBlocks(rootClientId, nextRootClientId);
370
+ return;
371
+ }
372
+ }
373
+ }
374
+
346
375
  const nextBlockClientId = getNextBlockClientId(clientId);
347
376
 
348
- if (nextBlockClientId) {
377
+ if (!nextBlockClientId) {
378
+ return;
379
+ } // Check if it's possibile to "unwrap" the following block
380
+ // before trying to merge.
381
+
382
+
383
+ const replacement = (0, _blocks.switchToBlockType)(getBlock(nextBlockClientId), '*');
384
+
385
+ if (replacement && replacement.length) {
386
+ replaceBlocks(nextBlockClientId, replacement);
387
+ } else {
349
388
  mergeBlocks(clientId, nextBlockClientId);
350
389
  }
351
390
  } else {
@@ -354,12 +393,31 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, _ref4) =>
354
393
  if (previousBlockClientId) {
355
394
  mergeBlocks(previousBlockClientId, clientId);
356
395
  } else if (rootClientId) {
357
- // Attempt to "unwrap" the block contents when there's no
396
+ const previousRootClientId = getPreviousBlockClientId(rootClientId); // If there is a preceding block with the same parent block
397
+ // name and the same attributes, merge the inner blocks.
398
+
399
+ if (previousRootClientId && getBlockName(rootClientId) === getBlockName(previousRootClientId)) {
400
+ const rootAttributes = getBlockAttributes(rootClientId);
401
+ const previousRootAttributes = getBlockAttributes(previousRootClientId);
402
+
403
+ if (Object.keys(rootAttributes).every(key => rootAttributes[key] === previousRootAttributes[key])) {
404
+ registry.batch(() => {
405
+ moveBlocksToPosition(getBlockOrder(rootClientId), rootClientId, previousRootClientId);
406
+ removeBlock(rootClientId, false);
407
+ });
408
+ return;
409
+ }
410
+ } // Attempt to "unwrap" the block contents when there's no
358
411
  // preceding block to merge with.
412
+
413
+
359
414
  const replacement = (0, _blocks.switchToBlockType)(getBlock(rootClientId), '*');
360
415
 
361
416
  if (replacement && replacement.length) {
362
- replaceBlocks(rootClientId, replacement, 0);
417
+ registry.batch(() => {
418
+ replaceBlocks(rootClientId, replacement);
419
+ selectBlock(replacement[0].clientId, 0);
420
+ });
363
421
  }
364
422
  }
365
423
  }
@@ -383,10 +441,10 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, _ref4) =>
383
441
  var _default = (0, _compose.compose)(_compose.pure, applyWithSelect, applyWithDispatch, // Block is sometimes not mounted at the right time, causing it be undefined
384
442
  // see issue for more info
385
443
  // https://github.com/WordPress/gutenberg/issues/17013
386
- (0, _compose.ifCondition)(_ref5 => {
444
+ (0, _compose.ifCondition)(_ref4 => {
387
445
  let {
388
446
  block
389
- } = _ref5;
447
+ } = _ref4;
390
448
  return !!block;
391
449
  }), (0, _components.withFilters)('editor.BlockListBlock'))(BlockListBlock);
392
450
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","themeSupportsLayout","hasContentLockedParent","isContentBlock","isContentLocking","isTemporarilyEditingAsBlocks","select","getSettings","__unstableGetContentLockingParent","getTemplateLock","__unstableGetTemporarilyEditingAsBlocks","blockEditorStore","_hasContentLockedParent","supportsLayout","blocksStore","__experimentalHasContentRoleAttribute","removeBlock","onRemove","blockEdit","undefined","blockType","tabIndex","getEditWrapperProps","isAligned","saveContent","display","apiVersion","dataAlign","restWrapperProps","value","memoizedValue","Object","values","applyWithSelect","rootClientId","isBlockSelected","getBlockMode","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","templateLock","canMove","applyWithDispatch","dispatch","ownProps","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","length","onInsertBlocks","blocks","index","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","nextBlockClientId","previousBlockClientId","replacement","indexToSelect","initialPosition","selectionEnabled","pure"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tRawHTML,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseDispatch,\n\tuseSelect,\n} from '@wordpress/data';\nimport { compose, pure, ifCondition } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BlockListBlockContext = createContext();\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA?.className && propsB?.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA?.style && propsB?.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tthemeSupportsLayout,\n\t\thasContentLockedParent,\n\t\tisContentBlock,\n\t\tisContentLocking,\n\t\tisTemporarilyEditingAsBlocks,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t\tgetTemplateLock,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst _hasContentLockedParent =\n\t\t\t\t!! __unstableGetContentLockingParent( clientId );\n\t\t\treturn {\n\t\t\t\tthemeSupportsLayout: getSettings().supportsLayout,\n\t\t\t\tisContentBlock:\n\t\t\t\t\tselect( blocksStore ).__experimentalHasContentRoleAttribute(\n\t\t\t\t\t\tname\n\t\t\t\t\t),\n\t\t\t\thasContentLockedParent: _hasContentLockedParent,\n\t\t\t\tisContentLocking:\n\t\t\t\t\tgetTemplateLock( clientId ) === 'contentOnly' &&\n\t\t\t\t\t! _hasContentLockedParent,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t};\n\t\t},\n\t\t[ name, clientId ]\n\t);\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\tif ( hasContentLockedParent && ! isContentBlock ) {\n\t\twrapperProps = {\n\t\t\t...wrapperProps,\n\t\t\ttabIndex: -1,\n\t\t};\n\t}\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName=\"wp-block\"\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName: classnames(\n\t\t\t{\n\t\t\t\t'is-content-locked': isContentLocking,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t\t'is-content-block': hasContentLockedParent && isContentBlock,\n\t\t\t},\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\tclassName\n\t\t),\n\t\twrapperProps: restWrapperProps,\n\t\tisAligned,\n\t};\n\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getPreviousBlockClientId, getNextBlockClientId, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tif ( forward ) {\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\t// Attempt to \"unwrap\" the block contents when there's no\n\t\t\t\t\t// preceding block to merge with.\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tgetBlock( rootClientId ),\n\t\t\t\t\t\t'*'\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( rootClientId, replacement, 0 );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","themeSupportsLayout","hasContentLockedParent","isContentBlock","isContentLocking","isTemporarilyEditingAsBlocks","select","getSettings","__unstableGetContentLockingParent","getTemplateLock","__unstableGetTemporarilyEditingAsBlocks","blockEditorStore","_hasContentLockedParent","supportsLayout","blocksStore","__experimentalHasContentRoleAttribute","removeBlock","onRemove","blockEdit","undefined","blockType","tabIndex","getEditWrapperProps","isAligned","saveContent","display","apiVersion","dataAlign","restWrapperProps","value","memoizedValue","Object","values","applyWithSelect","rootClientId","isBlockSelected","getBlockMode","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","templateLock","canMove","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","selectBlock","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","length","onInsertBlocks","blocks","index","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","nextRootClientId","rootAttributes","previousRootAttributes","keys","every","key","batch","nextBlockClientId","replacement","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled","pure"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tRawHTML,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseDispatch,\n\tuseSelect,\n} from '@wordpress/data';\nimport { compose, pure, ifCondition } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BlockListBlockContext = createContext();\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA?.className && propsB?.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA?.style && propsB?.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tthemeSupportsLayout,\n\t\thasContentLockedParent,\n\t\tisContentBlock,\n\t\tisContentLocking,\n\t\tisTemporarilyEditingAsBlocks,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t\tgetTemplateLock,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst _hasContentLockedParent =\n\t\t\t\t!! __unstableGetContentLockingParent( clientId );\n\t\t\treturn {\n\t\t\t\tthemeSupportsLayout: getSettings().supportsLayout,\n\t\t\t\tisContentBlock:\n\t\t\t\t\tselect( blocksStore ).__experimentalHasContentRoleAttribute(\n\t\t\t\t\t\tname\n\t\t\t\t\t),\n\t\t\t\thasContentLockedParent: _hasContentLockedParent,\n\t\t\t\tisContentLocking:\n\t\t\t\t\tgetTemplateLock( clientId ) === 'contentOnly' &&\n\t\t\t\t\t! _hasContentLockedParent,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t};\n\t\t},\n\t\t[ name, clientId ]\n\t);\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\tif ( hasContentLockedParent && ! isContentBlock ) {\n\t\twrapperProps = {\n\t\t\t...wrapperProps,\n\t\t\ttabIndex: -1,\n\t\t};\n\t}\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName=\"wp-block\"\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName: classnames(\n\t\t\t{\n\t\t\t\t'is-content-locked': isContentLocking,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t\t'is-content-block': hasContentLockedParent && isContentBlock,\n\t\t\t},\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\tclassName\n\t\t),\n\t\twrapperProps: restWrapperProps,\n\t\tisAligned,\n\t};\n\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tselectBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Check if it's possibile to \"unwrap\" the following block\n\t\t\t\t// before trying to merge.\n\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\tgetBlock( nextBlockClientId ),\n\t\t\t\t\t'*'\n\t\t\t\t);\n\n\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\treplaceBlocks( nextBlockClientId, replacement );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Attempt to \"unwrap\" the block contents when there's no\n\t\t\t\t\t// preceding block to merge with.\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tgetBlock( rootClientId ),\n\t\t\t\t\t\t'*'\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\treplaceBlocks( rootClientId, replacement );\n\t\t\t\t\t\t\tselectBlock( replacement[ 0 ].clientId, 0 );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"]}
@@ -8,8 +8,6 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.getItemSearchRank = getItemSearchRank;
9
9
  exports.searchItems = exports.searchBlockItems = exports.getNormalizedSearchTerms = void 0;
10
10
 
11
- var _changeCase = require("change-case");
12
-
13
11
  var _removeAccents = _interopRequireDefault(require("remove-accents"));
14
12
 
15
13
  var _lodash = require("lodash");
@@ -51,19 +49,6 @@ function normalizeSearchInput() {
51
49
  input = input.toLowerCase();
52
50
  return input;
53
51
  }
54
- /**
55
- * Extracts words from an input string.
56
- *
57
- * @param {string} input The input string.
58
- *
59
- * @return {Array} Words, extracted from the input string.
60
- */
61
-
62
-
63
- function extractWords() {
64
- let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
65
- return (0, _changeCase.noCase)(input).split(' ').filter(Boolean);
66
- }
67
52
  /**
68
53
  * Converts the search term into a list of normalized terms.
69
54
  *
@@ -75,7 +60,7 @@ function extractWords() {
75
60
 
76
61
  const getNormalizedSearchTerms = function () {
77
62
  let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
78
- return extractWords(normalizeSearchInput(input));
63
+ return (0, _lodash.words)(normalizeSearchInput(input));
79
64
  };
80
65
 
81
66
  exports.getNormalizedSearchTerms = getNormalizedSearchTerms;
@@ -189,7 +174,7 @@ function getItemSearchRank(item, searchTerm) {
189
174
  rank += 20;
190
175
  } else {
191
176
  const terms = [name, title, description, ...keywords, category, collection].join(' ');
192
- const normalizedSearchTerms = extractWords(normalizedSearchInput);
177
+ const normalizedSearchTerms = (0, _lodash.words)(normalizedSearchInput);
193
178
  const unmatchedTerms = removeMatchingTerms(normalizedSearchTerms, terms);
194
179
 
195
180
  if (unmatchedTerms.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-items.js"],"names":["defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultGetCategory","category","defaultGetCollection","normalizeSearchInput","input","replace","toLowerCase","extractWords","split","filter","Boolean","getNormalizedSearchTerms","removeMatchingTerms","unmatchedTerms","unprocessedTerms","term","some","unprocessedTerm","includes","searchBlockItems","items","categories","collections","searchInput","normalizedSearchTerms","length","config","getCategory","slug","getCollection","searchItems","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","searchTerm","getName","getTitle","getDescription","getKeywords","collection","normalizedSearchInput","normalizedTitle","startsWith","terms","join","isCoreBlockVariation","id"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noCase } from 'change-case';\nimport removeAccents from 'remove-accents';\nimport { find } from 'lodash';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultGetCategory = ( item ) => item.category;\nconst defaultGetCollection = () => null;\n\n/**\n * Sanitizes the search input string.\n *\n * @param {string} input The search input to normalize.\n *\n * @return {string} The normalized search input.\n */\nfunction normalizeSearchInput( input = '' ) {\n\t// Disregard diacritics.\n\t// Input: \"média\"\n\tinput = removeAccents( input );\n\n\t// Accommodate leading slash, matching autocomplete expectations.\n\t// Input: \"/media\"\n\tinput = input.replace( /^\\//, '' );\n\n\t// Lowercase.\n\t// Input: \"MEDIA\"\n\tinput = input.toLowerCase();\n\n\treturn input;\n}\n\n/**\n * Extracts words from an input string.\n *\n * @param {string} input The input string.\n *\n * @return {Array} Words, extracted from the input string.\n */\nfunction extractWords( input = '' ) {\n\treturn noCase( input ).split( ' ' ).filter( Boolean );\n}\n\n/**\n * Converts the search term into a list of normalized terms.\n *\n * @param {string} input The search term to normalize.\n *\n * @return {string[]} The normalized list of search terms.\n */\nexport const getNormalizedSearchTerms = ( input = '' ) => {\n\treturn extractWords( normalizeSearchInput( input ) );\n};\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\nexport const searchBlockItems = (\n\titems,\n\tcategories,\n\tcollections,\n\tsearchInput\n) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn items;\n\t}\n\n\tconst config = {\n\t\tgetCategory: ( item ) =>\n\t\t\tfind( categories, { slug: item.category } )?.title,\n\t\tgetCollection: ( item ) =>\n\t\t\tcollections[ item.name.split( '/' )[ 0 ] ]?.title,\n\t};\n\n\treturn searchItems( items, searchInput, config );\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn items;\n\t}\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [ item, getItemSearchRank( item, searchInput, config ) ];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > 0 );\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nexport function getItemSearchRank( item, searchTerm, config = {} ) {\n\tconst {\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\tgetCategory = defaultGetCategory,\n\t\tgetCollection = defaultGetCollection,\n\t} = config;\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\tconst category = getCategory( item );\n\tconst collection = getCollection( item );\n\n\tconst normalizedSearchInput = normalizeSearchInput( searchTerm );\n\tconst normalizedTitle = normalizeSearchInput( title );\n\n\tlet rank = 0;\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, categories, collection, variations match come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [\n\t\t\tname,\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t\t...keywords,\n\t\t\tcategory,\n\t\t\tcollection,\n\t\t].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\t// Give a better rank to \"core\" namespaced items.\n\tif ( rank !== 0 && name.startsWith( 'core/' ) ) {\n\t\tconst isCoreBlockVariation = name !== item.id;\n\t\t// Give a bit better rank to \"core\" blocks over \"core\" block variations.\n\t\trank += isCoreBlockVariation ? 1 : 2;\n\t}\n\n\treturn rank;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-items.js"],"names":["defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultGetCategory","category","defaultGetCollection","normalizeSearchInput","input","replace","toLowerCase","getNormalizedSearchTerms","removeMatchingTerms","unmatchedTerms","unprocessedTerms","filter","term","some","unprocessedTerm","includes","searchBlockItems","items","categories","collections","searchInput","normalizedSearchTerms","length","config","getCategory","slug","getCollection","split","searchItems","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","searchTerm","getName","getTitle","getDescription","getKeywords","collection","normalizedSearchInput","normalizedTitle","startsWith","terms","join","isCoreBlockVariation","id"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\nimport { find, words } from 'lodash';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultGetCategory = ( item ) => item.category;\nconst defaultGetCollection = () => null;\n\n/**\n * Sanitizes the search input string.\n *\n * @param {string} input The search input to normalize.\n *\n * @return {string} The normalized search input.\n */\nfunction normalizeSearchInput( input = '' ) {\n\t// Disregard diacritics.\n\t// Input: \"média\"\n\tinput = removeAccents( input );\n\n\t// Accommodate leading slash, matching autocomplete expectations.\n\t// Input: \"/media\"\n\tinput = input.replace( /^\\//, '' );\n\n\t// Lowercase.\n\t// Input: \"MEDIA\"\n\tinput = input.toLowerCase();\n\n\treturn input;\n}\n\n/**\n * Converts the search term into a list of normalized terms.\n *\n * @param {string} input The search term to normalize.\n *\n * @return {string[]} The normalized list of search terms.\n */\nexport const getNormalizedSearchTerms = ( input = '' ) => {\n\treturn words( normalizeSearchInput( input ) );\n};\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\nexport const searchBlockItems = (\n\titems,\n\tcategories,\n\tcollections,\n\tsearchInput\n) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn items;\n\t}\n\n\tconst config = {\n\t\tgetCategory: ( item ) =>\n\t\t\tfind( categories, { slug: item.category } )?.title,\n\t\tgetCollection: ( item ) =>\n\t\t\tcollections[ item.name.split( '/' )[ 0 ] ]?.title,\n\t};\n\n\treturn searchItems( items, searchInput, config );\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn items;\n\t}\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [ item, getItemSearchRank( item, searchInput, config ) ];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > 0 );\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nexport function getItemSearchRank( item, searchTerm, config = {} ) {\n\tconst {\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\tgetCategory = defaultGetCategory,\n\t\tgetCollection = defaultGetCollection,\n\t} = config;\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\tconst category = getCategory( item );\n\tconst collection = getCollection( item );\n\n\tconst normalizedSearchInput = normalizeSearchInput( searchTerm );\n\tconst normalizedTitle = normalizeSearchInput( title );\n\n\tlet rank = 0;\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, categories, collection, variations match come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [\n\t\t\tname,\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t\t...keywords,\n\t\t\tcategory,\n\t\t\tcollection,\n\t\t].join( ' ' );\n\t\tconst normalizedSearchTerms = words( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\t// Give a better rank to \"core\" namespaced items.\n\tif ( rank !== 0 && name.startsWith( 'core/' ) ) {\n\t\tconst isCoreBlockVariation = name !== item.id;\n\t\t// Give a bit better rank to \"core\" blocks over \"core\" block variations.\n\t\trank += isCoreBlockVariation ? 1 : 2;\n\t}\n\n\treturn rank;\n}\n"]}
@@ -191,10 +191,10 @@ function MarginVisualizer(_ref2) {
191
191
  borderRightWidth: marginRight,
192
192
  borderBottomWidth: marginBottom,
193
193
  borderLeftWidth: marginLeft,
194
- top: marginTop !== 0 ? `-${marginTop}` : 0,
195
- right: marginRight !== 0 ? `-${marginRight}` : 0,
196
- bottom: marginBottom !== 0 ? `-${marginBottom}` : 0,
197
- left: marginLeft !== 0 ? `-${marginLeft}` : 0
194
+ top: marginTop !== 0 ? `calc(${marginTop} * -1)` : 0,
195
+ right: marginRight !== 0 ? `calc(${marginRight} * -1)` : 0,
196
+ bottom: marginBottom !== 0 ? `calc(${marginBottom} * -1)` : 0,
197
+ left: marginLeft !== 0 ? `calc(${marginLeft} * -1)` : 0
198
198
  };
199
199
  }, [margin]);
200
200
  const [isActive, setIsActive] = (0, _element.useState)(false);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/margin.js"],"names":["hasMarginSupport","blockType","support","SPACING_SUPPORT_KEY","margin","hasMarginValue","props","attributes","style","spacing","undefined","resetMargin","setAttributes","useIsMarginDisabled","name","blockName","isDisabled","isInvalid","MarginEdit","spacingSizes","units","availableUnits","sides","splitOnAxis","some","side","AXIAL_SIDES","includes","onChange","next","newStyle","Platform","select","web","length","native","MarginVisualizer","clientId","marginTop","top","marginRight","right","marginBottom","bottom","marginLeft","left","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","isActive","setIsActive","valueRef","timeoutRef","clearTimer","current","window","clearTimeout","setTimeout"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPlatform,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n\tuseEffect,\n} from '@wordpress/element';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalBoxControl as BoxControl,\n} from '@wordpress/components';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../components/use-setting';\nimport {\n\tAXIAL_SIDES,\n\tSPACING_SUPPORT_KEY,\n\tuseCustomSides,\n\tuseIsDimensionsSupportValid,\n} from './dimensions';\nimport { cleanEmptyObject } from './utils';\nimport BlockPopover from '../components/block-popover';\nimport SpacingSizesControl from '../components/spacing-sizes-control';\nimport { getCustomValueFromPreset } from '../components/spacing-sizes-control/utils';\n\n/**\n * Determines if there is margin support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasMarginSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, SPACING_SUPPORT_KEY );\n\treturn !! ( true === support || support?.margin );\n}\n\n/**\n * Checks if there is a current value in the margin block support attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a margin value set.\n */\nexport function hasMarginValue( props ) {\n\treturn props.attributes.style?.spacing?.margin !== undefined;\n}\n\n/**\n * Resets the margin block support attributes. This can be used when disabling\n * the margin support controls for a block via a `ToolsPanel`.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetMargin( { attributes = {}, setAttributes } ) {\n\tconst { style } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tspacing: {\n\t\t\t\t...style?.spacing,\n\t\t\t\tmargin: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if margin settings have been disabled.\n *\n * @param {string} name The name of the block.\n *\n * @return {boolean} Whether margin setting is disabled.\n */\nexport function useIsMarginDisabled( { name: blockName } = {} ) {\n\tconst isDisabled = ! useSetting( 'spacing.margin' );\n\tconst isInvalid = ! useIsDimensionsSupportValid( blockName, 'margin' );\n\n\treturn ! hasMarginSupport( blockName ) || isDisabled || isInvalid;\n}\n\n/**\n * Inspector control panel containing the margin related configuration\n *\n * @param {Object} props Block props.\n *\n * @return {WPElement} Margin edit element.\n */\nexport function MarginEdit( props ) {\n\tconst {\n\t\tname: blockName,\n\t\tattributes: { style },\n\t\tsetAttributes,\n\t} = props;\n\n\tconst spacingSizes = useSetting( 'spacing.spacingSizes' );\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\tconst sides = useCustomSides( blockName, 'margin' );\n\tconst splitOnAxis =\n\t\tsides && sides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tif ( useIsMarginDisabled( props ) ) {\n\t\treturn null;\n\t}\n\n\tconst onChange = ( next ) => {\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tspacing: {\n\t\t\t\t...style?.spacing,\n\t\t\t\tmargin: next,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\treturn Platform.select( {\n\t\tweb: (\n\t\t\t<>\n\t\t\t\t{ ( ! spacingSizes || spacingSizes?.length === 0 ) && (\n\t\t\t\t\t<BoxControl\n\t\t\t\t\t\tvalues={ style?.spacing?.margin }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\tsides={ sides }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ splitOnAxis }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ spacingSizes?.length > 0 && (\n\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\tvalues={ style?.spacing?.margin }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\tsides={ sides }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t),\n\t\tnative: null,\n\t} );\n}\n\nexport function MarginVisualizer( { clientId, attributes } ) {\n\tconst margin = attributes?.style?.spacing?.margin;\n\tconst spacingSizes = useSetting( 'spacing.spacingSizes' );\n\n\tconst style = useMemo( () => {\n\t\tconst marginTop = margin?.top\n\t\t\t? getCustomValueFromPreset( margin?.top, spacingSizes )\n\t\t\t: 0;\n\t\tconst marginRight = margin?.right\n\t\t\t? getCustomValueFromPreset( margin?.right, spacingSizes )\n\t\t\t: 0;\n\t\tconst marginBottom = margin?.bottom\n\t\t\t? getCustomValueFromPreset( margin?.bottom, spacingSizes )\n\t\t\t: 0;\n\t\tconst marginLeft = margin?.left\n\t\t\t? getCustomValueFromPreset( margin?.left, spacingSizes )\n\t\t\t: 0;\n\n\t\treturn {\n\t\t\tborderTopWidth: marginTop,\n\t\t\tborderRightWidth: marginRight,\n\t\t\tborderBottomWidth: marginBottom,\n\t\t\tborderLeftWidth: marginLeft,\n\t\t\ttop: marginTop !== 0 ? `-${ marginTop }` : 0,\n\t\t\tright: marginRight !== 0 ? `-${ marginRight }` : 0,\n\t\t\tbottom: marginBottom !== 0 ? `-${ marginBottom }` : 0,\n\t\t\tleft: marginLeft !== 0 ? `-${ marginLeft }` : 0,\n\t\t};\n\t}, [ margin ] );\n\n\tconst [ isActive, setIsActive ] = useState( false );\n\tconst valueRef = useRef( margin );\n\tconst timeoutRef = useRef();\n\n\tconst clearTimer = () => {\n\t\tif ( timeoutRef.current ) {\n\t\t\twindow.clearTimeout( timeoutRef.current );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tif ( ! isShallowEqual( margin, valueRef.current ) ) {\n\t\t\tsetIsActive( true );\n\t\t\tvalueRef.current = margin;\n\n\t\t\tclearTimer();\n\n\t\t\ttimeoutRef.current = setTimeout( () => {\n\t\t\t\tsetIsActive( false );\n\t\t\t}, 400 );\n\t\t}\n\n\t\treturn () => clearTimer();\n\t}, [ margin ] );\n\n\tif ( ! isActive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockPopover\n\t\t\tclientId={ clientId }\n\t\t\t__unstableCoverTarget\n\t\t\t__unstableRefreshSize={ margin }\n\t\t>\n\t\t\t<div className=\"block-editor__padding-visualizer\" style={ style } />\n\t\t</BlockPopover>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/margin.js"],"names":["hasMarginSupport","blockType","support","SPACING_SUPPORT_KEY","margin","hasMarginValue","props","attributes","style","spacing","undefined","resetMargin","setAttributes","useIsMarginDisabled","name","blockName","isDisabled","isInvalid","MarginEdit","spacingSizes","units","availableUnits","sides","splitOnAxis","some","side","AXIAL_SIDES","includes","onChange","next","newStyle","Platform","select","web","length","native","MarginVisualizer","clientId","marginTop","top","marginRight","right","marginBottom","bottom","marginLeft","left","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","isActive","setIsActive","valueRef","timeoutRef","clearTimer","current","window","clearTimeout","setTimeout"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPlatform,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n\tuseEffect,\n} from '@wordpress/element';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalBoxControl as BoxControl,\n} from '@wordpress/components';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../components/use-setting';\nimport {\n\tAXIAL_SIDES,\n\tSPACING_SUPPORT_KEY,\n\tuseCustomSides,\n\tuseIsDimensionsSupportValid,\n} from './dimensions';\nimport { cleanEmptyObject } from './utils';\nimport BlockPopover from '../components/block-popover';\nimport SpacingSizesControl from '../components/spacing-sizes-control';\nimport { getCustomValueFromPreset } from '../components/spacing-sizes-control/utils';\n\n/**\n * Determines if there is margin support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasMarginSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, SPACING_SUPPORT_KEY );\n\treturn !! ( true === support || support?.margin );\n}\n\n/**\n * Checks if there is a current value in the margin block support attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a margin value set.\n */\nexport function hasMarginValue( props ) {\n\treturn props.attributes.style?.spacing?.margin !== undefined;\n}\n\n/**\n * Resets the margin block support attributes. This can be used when disabling\n * the margin support controls for a block via a `ToolsPanel`.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetMargin( { attributes = {}, setAttributes } ) {\n\tconst { style } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tspacing: {\n\t\t\t\t...style?.spacing,\n\t\t\t\tmargin: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if margin settings have been disabled.\n *\n * @param {string} name The name of the block.\n *\n * @return {boolean} Whether margin setting is disabled.\n */\nexport function useIsMarginDisabled( { name: blockName } = {} ) {\n\tconst isDisabled = ! useSetting( 'spacing.margin' );\n\tconst isInvalid = ! useIsDimensionsSupportValid( blockName, 'margin' );\n\n\treturn ! hasMarginSupport( blockName ) || isDisabled || isInvalid;\n}\n\n/**\n * Inspector control panel containing the margin related configuration\n *\n * @param {Object} props Block props.\n *\n * @return {WPElement} Margin edit element.\n */\nexport function MarginEdit( props ) {\n\tconst {\n\t\tname: blockName,\n\t\tattributes: { style },\n\t\tsetAttributes,\n\t} = props;\n\n\tconst spacingSizes = useSetting( 'spacing.spacingSizes' );\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\tconst sides = useCustomSides( blockName, 'margin' );\n\tconst splitOnAxis =\n\t\tsides && sides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tif ( useIsMarginDisabled( props ) ) {\n\t\treturn null;\n\t}\n\n\tconst onChange = ( next ) => {\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tspacing: {\n\t\t\t\t...style?.spacing,\n\t\t\t\tmargin: next,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\treturn Platform.select( {\n\t\tweb: (\n\t\t\t<>\n\t\t\t\t{ ( ! spacingSizes || spacingSizes?.length === 0 ) && (\n\t\t\t\t\t<BoxControl\n\t\t\t\t\t\tvalues={ style?.spacing?.margin }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\tsides={ sides }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ splitOnAxis }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ spacingSizes?.length > 0 && (\n\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\tvalues={ style?.spacing?.margin }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\tsides={ sides }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t),\n\t\tnative: null,\n\t} );\n}\n\nexport function MarginVisualizer( { clientId, attributes } ) {\n\tconst margin = attributes?.style?.spacing?.margin;\n\tconst spacingSizes = useSetting( 'spacing.spacingSizes' );\n\n\tconst style = useMemo( () => {\n\t\tconst marginTop = margin?.top\n\t\t\t? getCustomValueFromPreset( margin?.top, spacingSizes )\n\t\t\t: 0;\n\t\tconst marginRight = margin?.right\n\t\t\t? getCustomValueFromPreset( margin?.right, spacingSizes )\n\t\t\t: 0;\n\t\tconst marginBottom = margin?.bottom\n\t\t\t? getCustomValueFromPreset( margin?.bottom, spacingSizes )\n\t\t\t: 0;\n\t\tconst marginLeft = margin?.left\n\t\t\t? getCustomValueFromPreset( margin?.left, spacingSizes )\n\t\t\t: 0;\n\n\t\treturn {\n\t\t\tborderTopWidth: marginTop,\n\t\t\tborderRightWidth: marginRight,\n\t\t\tborderBottomWidth: marginBottom,\n\t\t\tborderLeftWidth: marginLeft,\n\t\t\ttop: marginTop !== 0 ? `calc(${ marginTop } * -1)` : 0,\n\t\t\tright: marginRight !== 0 ? `calc(${ marginRight } * -1)` : 0,\n\t\t\tbottom: marginBottom !== 0 ? `calc(${ marginBottom } * -1)` : 0,\n\t\t\tleft: marginLeft !== 0 ? `calc(${ marginLeft } * -1)` : 0,\n\t\t};\n\t}, [ margin ] );\n\n\tconst [ isActive, setIsActive ] = useState( false );\n\tconst valueRef = useRef( margin );\n\tconst timeoutRef = useRef();\n\n\tconst clearTimer = () => {\n\t\tif ( timeoutRef.current ) {\n\t\t\twindow.clearTimeout( timeoutRef.current );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tif ( ! isShallowEqual( margin, valueRef.current ) ) {\n\t\t\tsetIsActive( true );\n\t\t\tvalueRef.current = margin;\n\n\t\t\tclearTimer();\n\n\t\t\ttimeoutRef.current = setTimeout( () => {\n\t\t\t\tsetIsActive( false );\n\t\t\t}, 400 );\n\t\t}\n\n\t\treturn () => clearTimer();\n\t}, [ margin ] );\n\n\tif ( ! isActive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockPopover\n\t\t\tclientId={ clientId }\n\t\t\t__unstableCoverTarget\n\t\t\t__unstableRefreshSize={ margin }\n\t\t>\n\t\t\t<div className=\"block-editor__padding-visualizer\" style={ style } />\n\t\t</BlockPopover>\n\t);\n}\n"]}
@@ -26,7 +26,7 @@ import BlockIcon from '../block-icon';
26
26
  function useContentBlocks(blockTypes, block) {
27
27
  const contenBlocksObjectAux = useMemo(() => {
28
28
  return blockTypes.reduce((result, blockType) => {
29
- if (Object.entries(blockType.attributes).some(_ref => {
29
+ if (blockType.name !== 'core/list-item' && Object.entries(blockType.attributes).some(_ref => {
30
30
  let [, {
31
31
  __experimentalRole
32
32
  }] = _ref;
@@ -136,8 +136,7 @@ const BlockInspector = _ref5 => {
136
136
  getSelectedBlockClientId,
137
137
  getSelectedBlockCount,
138
138
  getBlockName,
139
- __unstableGetContentLockingParent,
140
- getTemplateLock
139
+ __unstableGetContentLockingParent
141
140
  } = select(blockEditorStore);
142
141
 
143
142
  const _selectedBlockClientId = getSelectedBlockClientId();
@@ -151,7 +150,7 @@ const BlockInspector = _ref5 => {
151
150
  selectedBlockClientId: _selectedBlockClientId,
152
151
  selectedBlockName: _selectedBlockName,
153
152
  blockType: _blockType,
154
- topLevelLockedBlock: getTemplateLock(_selectedBlockClientId) === 'contentOnly' ? _selectedBlockClientId : __unstableGetContentLockingParent(_selectedBlockClientId)
153
+ topLevelLockedBlock: __unstableGetContentLockingParent(_selectedBlockClientId)
155
154
  };
156
155
  }, []);
157
156