@wordpress/block-editor 11.3.5 → 11.3.7

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.
Files changed (105) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/build/components/block-inspector/index.js +11 -10
  3. package/build/components/block-inspector/index.js.map +1 -1
  4. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js +46 -0
  5. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  6. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
  7. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  8. package/build/components/inserter/index.js +29 -17
  9. package/build/components/inserter/index.js.map +1 -1
  10. package/build/components/inserter/media-tab/hooks.js +10 -11
  11. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  12. package/build/components/inserter/media-tab/media-list.js +5 -108
  13. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  14. package/build/components/inserter/media-tab/media-preview.js +242 -0
  15. package/build/components/inserter/media-tab/media-preview.js.map +1 -0
  16. package/build/components/inserter/menu.js +4 -7
  17. package/build/components/inserter/menu.js.map +1 -1
  18. package/build/components/inserter/quick-inserter.js +4 -2
  19. package/build/components/inserter/quick-inserter.js.map +1 -1
  20. package/build/components/inserter/search-results.js +10 -3
  21. package/build/components/inserter/search-results.js.map +1 -1
  22. package/build/components/link-control/index.js +17 -44
  23. package/build/components/link-control/index.js.map +1 -1
  24. package/build/components/off-canvas-editor/appender.js +28 -3
  25. package/build/components/off-canvas-editor/appender.js.map +1 -1
  26. package/build/components/off-canvas-editor/block-contents.js +1 -1
  27. package/build/components/off-canvas-editor/block-contents.js.map +1 -1
  28. package/build/components/off-canvas-editor/branch.js +5 -3
  29. package/build/components/off-canvas-editor/branch.js.map +1 -1
  30. package/build/components/off-canvas-editor/index.js +4 -1
  31. package/build/components/off-canvas-editor/index.js.map +1 -1
  32. package/build/private-apis.js +4 -1
  33. package/build/private-apis.js.map +1 -1
  34. package/build/store/actions.js +28 -14
  35. package/build/store/actions.js.map +1 -1
  36. package/build/store/defaults.js +28 -1
  37. package/build/store/defaults.js.map +1 -1
  38. package/build/store/selectors.js +1 -1
  39. package/build/store/selectors.js.map +1 -1
  40. package/build-module/components/block-inspector/index.js +9 -9
  41. package/build-module/components/block-inspector/index.js.map +1 -1
  42. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js +37 -0
  43. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -0
  44. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
  45. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  46. package/build-module/components/inserter/index.js +28 -16
  47. package/build-module/components/inserter/index.js.map +1 -1
  48. package/build-module/components/inserter/media-tab/hooks.js +10 -11
  49. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  50. package/build-module/components/inserter/media-tab/media-list.js +6 -105
  51. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  52. package/build-module/components/inserter/media-tab/media-preview.js +222 -0
  53. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -0
  54. package/build-module/components/inserter/menu.js +4 -7
  55. package/build-module/components/inserter/menu.js.map +1 -1
  56. package/build-module/components/inserter/quick-inserter.js +4 -2
  57. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  58. package/build-module/components/inserter/search-results.js +10 -3
  59. package/build-module/components/inserter/search-results.js.map +1 -1
  60. package/build-module/components/link-control/index.js +16 -44
  61. package/build-module/components/link-control/index.js.map +1 -1
  62. package/build-module/components/off-canvas-editor/appender.js +28 -4
  63. package/build-module/components/off-canvas-editor/appender.js.map +1 -1
  64. package/build-module/components/off-canvas-editor/block-contents.js +1 -1
  65. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
  66. package/build-module/components/off-canvas-editor/branch.js +5 -3
  67. package/build-module/components/off-canvas-editor/branch.js.map +1 -1
  68. package/build-module/components/off-canvas-editor/index.js +4 -1
  69. package/build-module/components/off-canvas-editor/index.js.map +1 -1
  70. package/build-module/private-apis.js +3 -1
  71. package/build-module/private-apis.js.map +1 -1
  72. package/build-module/store/actions.js +28 -14
  73. package/build-module/store/actions.js.map +1 -1
  74. package/build-module/store/defaults.js +28 -1
  75. package/build-module/store/defaults.js.map +1 -1
  76. package/build-module/store/selectors.js +1 -1
  77. package/build-module/store/selectors.js.map +1 -1
  78. package/build-style/style-rtl.css +46 -8
  79. package/build-style/style.css +46 -8
  80. package/package.json +4 -4
  81. package/src/components/block-inspector/index.js +11 -14
  82. package/src/components/block-inspector/useBlockInspectorAnimationSettings.js +53 -0
  83. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
  84. package/src/components/inserter/index.js +30 -11
  85. package/src/components/inserter/media-tab/hooks.js +9 -8
  86. package/src/components/inserter/media-tab/media-list.js +3 -122
  87. package/src/components/inserter/media-tab/media-preview.js +268 -0
  88. package/src/components/inserter/menu.js +14 -20
  89. package/src/components/inserter/quick-inserter.js +2 -0
  90. package/src/components/inserter/search-results.js +7 -1
  91. package/src/components/inserter/style.scss +25 -0
  92. package/src/components/link-control/index.js +23 -58
  93. package/src/components/link-control/style.scss +23 -7
  94. package/src/components/link-control/test/index.js +5 -134
  95. package/src/components/media-replace-flow/test/index.js +1 -1
  96. package/src/components/off-canvas-editor/appender.js +30 -4
  97. package/src/components/off-canvas-editor/block-contents.js +1 -1
  98. package/src/components/off-canvas-editor/branch.js +3 -1
  99. package/src/components/off-canvas-editor/index.js +3 -0
  100. package/src/components/spacing-sizes-control/style.scss +1 -1
  101. package/src/private-apis.js +2 -0
  102. package/src/store/actions.js +16 -6
  103. package/src/store/defaults.js +14 -1
  104. package/src/store/selectors.js +4 -1
  105. package/src/store/test/actions.js +4 -2
@@ -27,6 +27,7 @@ import { default as InspectorControlsTabs } from '../inspector-controls-tabs';
27
27
  import useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';
28
28
  import AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';
29
29
  import PositionControls from '../inspector-controls-tabs/position-controls-panel';
30
+ import useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';
30
31
 
31
32
  function useContentBlocks(blockTypes, block) {
32
33
  const contentBlocksObjectAux = useMemo(() => {
@@ -45,7 +46,7 @@ function useContentBlocks(blockTypes, block) {
45
46
  }, [blockTypes]);
46
47
  const isContentBlock = useCallback(blockName => {
47
48
  return !!contentBlocksObjectAux[blockName];
48
- }, [blockTypes]);
49
+ }, [contentBlocksObjectAux]);
49
50
  return useMemo(() => {
50
51
  return getContentBlocks([block], isContentBlock);
51
52
  }, [block, isContentBlock]);
@@ -162,15 +163,14 @@ const BlockInspector = _ref5 => {
162
163
  };
163
164
  }, []);
164
165
  const availableTabs = useInspectorControlsTabs(blockType === null || blockType === void 0 ? void 0 : blockType.name);
165
- const showTabs = (availableTabs === null || availableTabs === void 0 ? void 0 : availableTabs.length) > 1;
166
- const blockInspectorAnimationSettings = useSelect(select => {
167
- if (blockType) {
168
- const globalBlockInspectorAnimationSettings = select(blockEditorStore).getSettings().blockInspectorAnimation;
169
- return globalBlockInspectorAnimationSettings === null || globalBlockInspectorAnimationSettings === void 0 ? void 0 : globalBlockInspectorAnimationSettings[blockType.name];
170
- }
166
+ const showTabs = (availableTabs === null || availableTabs === void 0 ? void 0 : availableTabs.length) > 1; // The block inspector animation settings will be completely
167
+ // removed in the future to create an API which allows the block
168
+ // inspector to transition between what it
169
+ // displays based on the relationship between the selected block
170
+ // and its parent, and only enable it if the parent is controlling
171
+ // its children blocks.
171
172
 
172
- return null;
173
- }, [selectedBlockClientId, blockType]);
173
+ const blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(blockType, selectedBlockClientId);
174
174
 
175
175
  if (count > 1) {
176
176
  return createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","FlexItem","PanelBody","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","__unstableMotion","motion","useSelect","useDispatch","useMemo","useCallback","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockIcon","BlockStyles","DefaultStylePicker","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useContentBlocks","blockTypes","block","contentBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","isSynced","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","showTabs","length","blockInspectorAnimationSettings","globalBlockInspectorAnimationSettings","getSettings","blockInspectorAnimation","isSelectedBlockUnregistered","children","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","animationOrigin","enterDirection","x","opacity","transition","ease","duration","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles"],"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\tFlexItem,\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\t__unstableMotion as motion,\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 MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contentBlocksObjectAux = 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 !! contentBlocksObjectAux[ 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\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\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\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst blockInspectorAnimationSettings = useSelect(\n\t\t( select ) => {\n\t\t\tif ( blockType ) {\n\t\t\t\tconst globalBlockInspectorAnimationSettings =\n\t\t\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t\t\t.blockInspectorAnimation;\n\t\t\t\treturn globalBlockInspectorAnimationSettings?.[\n\t\t\t\t\tblockType.name\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\t[ selectedBlockClientId, blockType ]\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{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\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\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\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\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\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":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","FlexItem","PanelBody","__experimentalHStack","HStack","__experimentalVStack","VStack","Button","__unstableMotion","motion","useSelect","useDispatch","useMemo","useCallback","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockIcon","BlockStyles","DefaultStylePicker","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","useContentBlocks","blockTypes","block","contentBlocksObjectAux","reduce","result","blockType","name","Object","entries","attributes","some","__experimentalRole","isContentBlock","blockName","getContentBlocks","blocks","push","innerBlocks","BlockNavigationButton","selectedBlock","selectBlock","find","isSelected","clientId","icon","title","BlockInspectorLockedBlocks","topLevelLockedBlock","select","getBlockTypes","getBlock","getSelectedBlock","blockInformation","contentBlocks","isSynced","map","contentBlock","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","showTabs","length","blockInspectorAnimationSettings","isSelectedBlockUnregistered","children","BlockInspectorSingleBlockWrapper","animate","wrapper","AnimatedContainer","animationOrigin","enterDirection","x","opacity","transition","ease","duration","BlockInspectorSingleBlock","hasBlockStyles","getBlockStyles","blockStyles"],"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\tFlexItem,\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\t__unstableMotion as motion,\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 MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\n\nfunction useContentBlocks( blockTypes, block ) {\n\tconst contentBlocksObjectAux = 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 !! contentBlocksObjectAux[ blockName ];\n\t\t},\n\t\t[ contentBlocksObjectAux ]\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\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\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\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\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{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\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\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\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\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\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"]}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useSelect } from '@wordpress/data';
5
+ /**
6
+ * Internal dependencies
7
+ */
8
+
9
+ import { store as blockEditorStore } from '../../store';
10
+ export default function useBlockInspectorAnimationSettings(blockType, selectedBlockClientId) {
11
+ return useSelect(select => {
12
+ if (blockType) {
13
+ const globalBlockInspectorAnimationSettings = select(blockEditorStore).getSettings().blockInspectorAnimation; // Get the name of the block that will allow it's children to be animated.
14
+
15
+ const animationParent = globalBlockInspectorAnimationSettings === null || globalBlockInspectorAnimationSettings === void 0 ? void 0 : globalBlockInspectorAnimationSettings.animationParent; // Determine whether the animationParent block is a parent of the selected block.
16
+
17
+ const {
18
+ getSelectedBlockClientId,
19
+ getBlockParentsByBlockName
20
+ } = select(blockEditorStore);
21
+
22
+ const _selectedBlockClientId = getSelectedBlockClientId();
23
+
24
+ const animationParentBlockClientId = getBlockParentsByBlockName(_selectedBlockClientId, animationParent, true)[0]; // If the selected block is not a child of the animationParent block,
25
+ // and not an animationParent block itself, don't animate.
26
+
27
+ if (!animationParentBlockClientId && blockType.name !== animationParent) {
28
+ return null;
29
+ }
30
+
31
+ return globalBlockInspectorAnimationSettings === null || globalBlockInspectorAnimationSettings === void 0 ? void 0 : globalBlockInspectorAnimationSettings[blockType.name];
32
+ }
33
+
34
+ return null;
35
+ }, [selectedBlockClientId, blockType]);
36
+ }
37
+ //# sourceMappingURL=useBlockInspectorAnimationSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/useBlockInspectorAnimationSettings.js"],"names":["useSelect","store","blockEditorStore","useBlockInspectorAnimationSettings","blockType","selectedBlockClientId","select","globalBlockInspectorAnimationSettings","getSettings","blockInspectorAnimation","animationParent","getSelectedBlockClientId","getBlockParentsByBlockName","_selectedBlockClientId","animationParentBlockClientId","name"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,kCAAT,CACdC,SADc,EAEdC,qBAFc,EAGb;AACD,SAAOL,SAAS,CACbM,MAAF,IAAc;AACb,QAAKF,SAAL,EAAiB;AAChB,YAAMG,qCAAqC,GAC1CD,MAAM,CAAEJ,gBAAF,CAAN,CAA2BM,WAA3B,GACEC,uBAFH,CADgB,CAKhB;;AACA,YAAMC,eAAe,GACpBH,qCADoB,aACpBA,qCADoB,uBACpBA,qCAAqC,CAAEG,eADxC,CANgB,CAShB;;AACA,YAAM;AAAEC,QAAAA,wBAAF;AAA4BC,QAAAA;AAA5B,UACLN,MAAM,CAAEJ,gBAAF,CADP;;AAEA,YAAMW,sBAAsB,GAAGF,wBAAwB,EAAvD;;AACA,YAAMG,4BAA4B,GAAGF,0BAA0B,CAC9DC,sBAD8D,EAE9DH,eAF8D,EAG9D,IAH8D,CAA1B,CAIlC,CAJkC,CAArC,CAbgB,CAmBhB;AACA;;AACA,UACC,CAAEI,4BAAF,IACAV,SAAS,CAACW,IAAV,KAAmBL,eAFpB,EAGE;AACD,eAAO,IAAP;AACA;;AAED,aAAOH,qCAAP,aAAOA,qCAAP,uBAAOA,qCAAqC,CAC3CH,SAAS,CAACW,IADiC,CAA5C;AAGA;;AACD,WAAO,IAAP;AACA,GAnCc,EAoCf,CAAEV,qBAAF,EAAyBD,SAAzB,CApCe,CAAhB;AAsCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useBlockInspectorAnimationSettings(\n\tblockType,\n\tselectedBlockClientId\n) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( blockType ) {\n\t\t\t\tconst globalBlockInspectorAnimationSettings =\n\t\t\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t\t\t.blockInspectorAnimation;\n\n\t\t\t\t// Get the name of the block that will allow it's children to be animated.\n\t\t\t\tconst animationParent =\n\t\t\t\t\tglobalBlockInspectorAnimationSettings?.animationParent;\n\n\t\t\t\t// Determine whether the animationParent block is a parent of the selected block.\n\t\t\t\tconst { getSelectedBlockClientId, getBlockParentsByBlockName } =\n\t\t\t\t\tselect( blockEditorStore );\n\t\t\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\t\t\tconst animationParentBlockClientId = getBlockParentsByBlockName(\n\t\t\t\t\t_selectedBlockClientId,\n\t\t\t\t\tanimationParent,\n\t\t\t\t\ttrue\n\t\t\t\t)[ 0 ];\n\n\t\t\t\t// If the selected block is not a child of the animationParent block,\n\t\t\t\t// and not an animationParent block itself, don't animate.\n\t\t\t\tif (\n\t\t\t\t\t! animationParentBlockClientId &&\n\t\t\t\t\tblockType.name !== animationParent\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn globalBlockInspectorAnimationSettings?.[\n\t\t\t\t\tblockType.name\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\t[ selectedBlockClientId, blockType ]\n\t);\n}\n"]}
@@ -123,7 +123,7 @@ export function BlockSettingsDropdown(_ref2) {
123
123
  maximumLength: 25
124
124
  });
125
125
  const updateSelectionAfterRemove = useCallback(__experimentalSelectBlock ? () => {
126
- const blockToSelect = previousBlockClientId || nextBlockClientId;
126
+ const blockToSelect = previousBlockClientId || nextBlockClientId || firstParentClientId;
127
127
 
128
128
  if (blockToSelect && // From the block options dropdown, it's possible to remove a block that is not selected,
129
129
  // in this case, it's not necessary to update the selection since the selected block wasn't removed.
@@ -132,7 +132,7 @@ export function BlockSettingsDropdown(_ref2) {
132
132
  !selectedBlockClientIds.includes(blockToSelect)) {
133
133
  __experimentalSelectBlock(blockToSelect);
134
134
  }
135
- } : noop, [__experimentalSelectBlock, previousBlockClientId, nextBlockClientId, selectedBlockClientIds]);
135
+ } : noop, [__experimentalSelectBlock, previousBlockClientId, nextBlockClientId, firstParentClientId, selectedBlockClientIds]);
136
136
  const label = sprintf(
137
137
  /* translators: %s: block name */
138
138
  __('Remove %s'), blockTitle);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","keyboardShortcutsStore","pipe","useCopyToClipboard","BlockActions","BlockIcon","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useBlockDisplayTitle","useShowMoversGestures","noop","POPOVER_PROPS","className","position","variant","CopyMenuItem","blocks","onCopy","label","ref","copyMenuItemBlocksLabel","length","copyMenuItemLabel","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","blockClientIds","Array","isArray","count","firstBlockClientId","firstParentClientId","isDistractionFree","onlyBlock","parentBlockType","previousBlockClientId","nextBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlockClientIds","getSettings","getBlockAttributes","getActiveBlockVariation","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","selectBlock","toggleBlockHighlight","updateSelectionAfterDuplicate","clientIdsPromise","ids","blockTitle","clientId","maximumLength","updateSelectionAfterRemove","blockToSelect","includes","removeBlockLabel","selectParentButtonRef","gestures","showParentOutlineGestures","onChange","isFocused","parentBlockIsSelected","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","onClose","icon","title","map","child"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\n\nconst noop = () => {};\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tvariant: 'toolbar',\n};\n\nfunction CopyMenuItem( { blocks, onCopy, label } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemBlocksLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy block' );\n\tconst copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel;\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t__unstableDisplayLocation,\n\t...props\n} ) {\n\tconst blockClientIds = Array.isArray( clientIds )\n\t\t? clientIds\n\t\t: [ clientIds ];\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tisDistractionFree,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tnextBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tisDistractionFree: getSettings().isDistractionFree,\n\t\t\t\tonlyBlock: 1 === getBlockCount( _firstParentClientId ),\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tnextBlockClientId: getNextBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: firstBlockClientId,\n\t\tmaximumLength: 25,\n\t} );\n\n\tconst updateSelectionAfterRemove = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? () => {\n\t\t\t\t\tconst blockToSelect =\n\t\t\t\t\t\tpreviousBlockClientId || nextBlockClientId;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockToSelect &&\n\t\t\t\t\t\t// From the block options dropdown, it's possible to remove a block that is not selected,\n\t\t\t\t\t\t// in this case, it's not necessary to update the selection since the selected block wasn't removed.\n\t\t\t\t\t\tselectedBlockClientIds.includes( firstBlockClientId ) &&\n\t\t\t\t\t\t// Don't update selection when next/prev block also is in the selection ( and gets removed ),\n\t\t\t\t\t\t// In case someone selects all blocks and removes them at once.\n\t\t\t\t\t\t! selectedBlockClientIds.includes( blockToSelect )\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSelectBlock( blockToSelect );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[\n\t\t\t__experimentalSelectBlock,\n\t\t\tpreviousBlockClientId,\n\t\t\tnextBlockClientId,\n\t\t\tselectedBlockClientIds,\n\t\t]\n\t);\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tblockTitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst { gestures: showParentOutlineGestures } = useShowMoversGestures( {\n\t\tref: selectParentButtonRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && isDistractionFree ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tselectBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Select parent block (%s)'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\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</MenuGroup>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t__unstableDisplayLocation={\n\t\t\t\t\t\t\t\t\t__unstableDisplayLocation\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{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","keyboardShortcutsStore","pipe","useCopyToClipboard","BlockActions","BlockIcon","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useBlockDisplayTitle","useShowMoversGestures","noop","POPOVER_PROPS","className","position","variant","CopyMenuItem","blocks","onCopy","label","ref","copyMenuItemBlocksLabel","length","copyMenuItemLabel","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","blockClientIds","Array","isArray","count","firstBlockClientId","firstParentClientId","isDistractionFree","onlyBlock","parentBlockType","previousBlockClientId","nextBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlockClientIds","getSettings","getBlockAttributes","getActiveBlockVariation","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","selectBlock","toggleBlockHighlight","updateSelectionAfterDuplicate","clientIdsPromise","ids","blockTitle","clientId","maximumLength","updateSelectionAfterRemove","blockToSelect","includes","removeBlockLabel","selectParentButtonRef","gestures","showParentOutlineGestures","onChange","isFocused","parentBlockIsSelected","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","onClose","icon","title","map","child"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\n\nconst noop = () => {};\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tvariant: 'toolbar',\n};\n\nfunction CopyMenuItem( { blocks, onCopy, label } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemBlocksLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy block' );\n\tconst copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel;\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t__unstableDisplayLocation,\n\t...props\n} ) {\n\tconst blockClientIds = Array.isArray( clientIds )\n\t\t? clientIds\n\t\t: [ clientIds ];\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tisDistractionFree,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tnextBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tisDistractionFree: getSettings().isDistractionFree,\n\t\t\t\tonlyBlock: 1 === getBlockCount( _firstParentClientId ),\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tnextBlockClientId: getNextBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: firstBlockClientId,\n\t\tmaximumLength: 25,\n\t} );\n\n\tconst updateSelectionAfterRemove = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? () => {\n\t\t\t\t\tconst blockToSelect =\n\t\t\t\t\t\tpreviousBlockClientId ||\n\t\t\t\t\t\tnextBlockClientId ||\n\t\t\t\t\t\tfirstParentClientId;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockToSelect &&\n\t\t\t\t\t\t// From the block options dropdown, it's possible to remove a block that is not selected,\n\t\t\t\t\t\t// in this case, it's not necessary to update the selection since the selected block wasn't removed.\n\t\t\t\t\t\tselectedBlockClientIds.includes( firstBlockClientId ) &&\n\t\t\t\t\t\t// Don't update selection when next/prev block also is in the selection ( and gets removed ),\n\t\t\t\t\t\t// In case someone selects all blocks and removes them at once.\n\t\t\t\t\t\t! selectedBlockClientIds.includes( blockToSelect )\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSelectBlock( blockToSelect );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[\n\t\t\t__experimentalSelectBlock,\n\t\t\tpreviousBlockClientId,\n\t\t\tnextBlockClientId,\n\t\t\tfirstParentClientId,\n\t\t\tselectedBlockClientIds,\n\t\t]\n\t);\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tblockTitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst { gestures: showParentOutlineGestures } = useShowMoversGestures( {\n\t\tref: selectParentButtonRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && isDistractionFree ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonPasteStyles,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tselectBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Select parent block (%s)'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\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</MenuGroup>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t__unstableDisplayLocation={\n\t\t\t\t\t\t\t\t\t__unstableDisplayLocation\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{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
@@ -12,7 +12,7 @@ import classnames from 'classnames';
12
12
  import { speak } from '@wordpress/a11y';
13
13
  import { __, _x, sprintf } from '@wordpress/i18n';
14
14
  import { Dropdown, Button } from '@wordpress/components';
15
- import { Component } from '@wordpress/element';
15
+ import { forwardRef, Component } from '@wordpress/element';
16
16
  import { withDispatch, withSelect } from '@wordpress/data';
17
17
  import { compose, ifCondition } from '@wordpress/compose';
18
18
  import { createBlock, store as blocksStore } from '@wordpress/blocks';
@@ -35,21 +35,23 @@ const defaultRenderToggle = _ref => {
35
35
  toggleProps = {},
36
36
  prioritizePatterns
37
37
  } = _ref;
38
- let label;
38
+ const {
39
+ as: Wrapper = Button,
40
+ label: labelProp,
41
+ onClick,
42
+ ...rest
43
+ } = toggleProps;
44
+ let label = labelProp;
39
45
 
40
- if (hasSingleBlockType) {
46
+ if (!label && hasSingleBlockType) {
41
47
  label = sprintf( // translators: %s: the name of the block when there is only one
42
48
  _x('Add %s', 'directly add the only allowed block'), blockTitle);
43
- } else if (prioritizePatterns) {
49
+ } else if (!label && prioritizePatterns) {
44
50
  label = __('Add pattern');
45
- } else {
51
+ } else if (!label) {
46
52
  label = _x('Add block', 'Generic label for block inserter button');
47
- }
53
+ } // Handle both onClick functions from the toggle and the parent component.
48
54
 
49
- const {
50
- onClick,
51
- ...rest
52
- } = toggleProps; // Handle both onClick functions from the toggle and the parent component.
53
55
 
54
56
  function handleClick(event) {
55
57
  if (onToggle) {
@@ -61,7 +63,7 @@ const defaultRenderToggle = _ref => {
61
63
  }
62
64
  }
63
65
 
64
- return createElement(Button, _extends({
66
+ return createElement(Wrapper, _extends({
65
67
  icon: plus,
66
68
  label: label,
67
69
  tooltipPosition: "bottom",
@@ -73,7 +75,7 @@ const defaultRenderToggle = _ref => {
73
75
  }, rest));
74
76
  };
75
77
 
76
- class Inserter extends Component {
78
+ class PrivateInserter extends Component {
77
79
  constructor() {
78
80
  super(...arguments);
79
81
  this.onToggle = this.onToggle.bind(this);
@@ -153,7 +155,8 @@ class Inserter extends Component {
153
155
  __experimentalIsQuick: isQuick,
154
156
  prioritizePatterns,
155
157
  onSelectOrClose,
156
- selectBlockOnInsert
158
+ selectBlockOnInsert,
159
+ orderInitialBlockItems
157
160
  } = this.props;
158
161
 
159
162
  if (isQuick) {
@@ -171,7 +174,8 @@ class Inserter extends Component {
171
174
  clientId: clientId,
172
175
  isAppender: isAppender,
173
176
  prioritizePatterns: prioritizePatterns,
174
- selectBlockOnInsert: selectBlockOnInsert
177
+ selectBlockOnInsert: selectBlockOnInsert,
178
+ orderInitialBlockItems: orderInitialBlockItems
175
179
  });
176
180
  }
177
181
 
@@ -222,7 +226,7 @@ class Inserter extends Component {
222
226
 
223
227
  }
224
228
 
225
- export default compose([withSelect((select, _ref4) => {
229
+ export const ComposedPrivateInserter = compose([withSelect((select, _ref4) => {
226
230
  var _getBlockVariations;
227
231
 
228
232
  let {
@@ -394,5 +398,13 @@ ifCondition(_ref6 => {
394
398
  clientId
395
399
  } = _ref6;
396
400
  return hasItems || !isAppender && !rootClientId && !clientId;
397
- })])(Inserter);
401
+ })])(PrivateInserter);
402
+ const Inserter = forwardRef((props, ref) => {
403
+ return createElement(ComposedPrivateInserter, _extends({
404
+ ref: ref
405
+ }, props, {
406
+ orderInitialBlockItems: undefined
407
+ }));
408
+ });
409
+ export default Inserter;
398
410
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["classnames","speak","__","_x","sprintf","Dropdown","Button","Component","withDispatch","withSelect","compose","ifCondition","createBlock","store","blocksStore","plus","InserterMenu","QuickInserter","blockEditorStore","defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","prioritizePatterns","label","onClick","rest","handleClick","event","Inserter","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","onSelectOrClose","selectBlockOnInsert","blocks","firstBlock","Array","isArray","length","render","position","insertOnlyAllowedBlock","select","shouldDirectInsert","getBlockRootClientId","hasInserterItems","getAllowedBlocks","__experimentalGetDirectInsertBlock","getSettings","getBlockVariations","undefined","allowedBlocks","settings","name","allowedBlockType","title","__experimentalPreferPatternsOnRoot","dispatch","ownProps","getAdjacentBlockAttributes","attributesToCopy","getBlock","getPreviousBlockClientId","result","adjacentAttributes","parentBlock","innerBlocks","lastInnerBlock","attributes","currentBlock","previousBlock","forEach","attribute","hasOwnProperty","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","newAttributes","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n\tprioritizePatterns,\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else if ( prioritizePatterns ) {\n\t\tlabel = __( 'Add pattern' );\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component.\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\tprioritizePatterns,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tprioritizePatterns,\n\t\t\tonSelectOrClose,\n\t\t\tselectBlockOnInsert,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ ( blocks ) => {\n\t\t\t\t\t\tconst firstBlock =\n\t\t\t\t\t\t\tArray.isArray( blocks ) && blocks?.length\n\t\t\t\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t\t\t\t: blocks;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tonSelectOrClose &&\n\t\t\t\t\t\t\ttypeof onSelectOrClose === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tonSelectOrClose( firstBlock );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tpopoverProps={ { position } }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { clientId, rootClientId, shouldDirectInsert = true } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasInserterItems,\n\t\t\t\tgetAllowedBlocks,\n\t\t\t\t__experimentalGetDirectInsertBlock,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\t\trootClientId =\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\t\tconst allowedBlocks = getAllowedBlocks( rootClientId );\n\n\t\t\tconst directInsertBlock =\n\t\t\t\tshouldDirectInsert &&\n\t\t\t\t__experimentalGetDirectInsertBlock( rootClientId );\n\n\t\t\tconst settings = getSettings();\n\n\t\t\tconst hasSingleBlockType =\n\t\t\t\tallowedBlocks?.length === 1 &&\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t\t\t?.length === 0;\n\n\t\t\tlet allowedBlockType = false;\n\t\t\tif ( hasSingleBlockType ) {\n\t\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\t\thasSingleBlockType,\n\t\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\t\tallowedBlockType,\n\t\t\t\tdirectInsertBlock,\n\t\t\t\trootClientId,\n\t\t\t\tprioritizePatterns:\n\t\t\t\t\tsettings.__experimentalPreferPatternsOnRoot &&\n\t\t\t\t\t! rootClientId,\n\t\t\t};\n\t\t}\n\t),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t\tselectBlockOnInsert,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjacentBlockAttributes( attributesToCopy ) {\n\t\t\t\t\tconst { getBlock, getPreviousBlockClientId } =\n\t\t\t\t\t\tselect( blockEditorStore );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! attributesToCopy ||\n\t\t\t\t\t\t( ! clientId && ! rootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = {};\n\t\t\t\t\tlet adjacentAttributes = {};\n\n\t\t\t\t\t// If there is no clientId, then attempt to get attributes\n\t\t\t\t\t// from the last block within innerBlocks of the root block.\n\t\t\t\t\tif ( ! clientId ) {\n\t\t\t\t\t\tconst parentBlock = getBlock( rootClientId );\n\n\t\t\t\t\t\tif ( parentBlock?.innerBlocks?.length ) {\n\t\t\t\t\t\t\tconst lastInnerBlock =\n\t\t\t\t\t\t\t\tparentBlock.innerBlocks[\n\t\t\t\t\t\t\t\t\tparentBlock.innerBlocks.length - 1\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdirectInsertBlock &&\n\t\t\t\t\t\t\t\tdirectInsertBlock?.name === lastInnerBlock.name\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tadjacentAttributes = lastInnerBlock.attributes;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Otherwise, attempt to get attributes from the\n\t\t\t\t\t\t// previous block relative to the current clientId.\n\t\t\t\t\t\tconst currentBlock = getBlock( clientId );\n\t\t\t\t\t\tconst previousBlock = getBlock(\n\t\t\t\t\t\t\tgetPreviousBlockClientId( clientId )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( currentBlock?.name === previousBlock?.name ) {\n\t\t\t\t\t\t\tadjacentAttributes =\n\t\t\t\t\t\t\t\tpreviousBlock?.attributes || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy over only those attributes flagged to be copied.\n\t\t\t\t\tattributesToCopy.forEach( ( attribute ) => {\n\t\t\t\t\t\tif ( adjacentAttributes.hasOwnProperty( attribute ) ) {\n\t\t\t\t\t\t\tresult[ attribute ] =\n\t\t\t\t\t\t\t\tadjacentAttributes[ attribute ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tlet blockToInsert;\n\n\t\t\t\t// Attempt to augment the directInsertBlock with attributes from an adjacent block.\n\t\t\t\t// This ensures styling from nearby blocks is preserved in the newly inserted block.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/37904\n\t\t\t\tif ( directInsertBlock ) {\n\t\t\t\t\tconst newAttributes = getAdjacentBlockAttributes(\n\t\t\t\t\t\tdirectInsertBlock.attributesToCopy\n\t\t\t\t\t);\n\n\t\t\t\t\tblockToInsert = createBlock( directInsertBlock.name, {\n\t\t\t\t\t\t...( directInsertBlock.attributes || {} ),\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tblockToInsert = createBlock( allowedBlockType.name );\n\t\t\t\t}\n\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblockToInsert,\n\t\t\t\t\tgetInsertionIndex(),\n\t\t\t\t\trootClientId,\n\t\t\t\t\tselectBlockOnInsert\n\t\t\t\t);\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose( {\n\t\t\t\t\t\tclientId: blockToInsert?.clientId,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["classnames","speak","__","_x","sprintf","Dropdown","Button","forwardRef","Component","withDispatch","withSelect","compose","ifCondition","createBlock","store","blocksStore","plus","InserterMenu","QuickInserter","blockEditorStore","defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","prioritizePatterns","as","Wrapper","label","labelProp","onClick","rest","handleClick","event","PrivateInserter","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","onSelectOrClose","selectBlockOnInsert","orderInitialBlockItems","blocks","firstBlock","Array","isArray","length","render","position","insertOnlyAllowedBlock","ComposedPrivateInserter","select","shouldDirectInsert","getBlockRootClientId","hasInserterItems","getAllowedBlocks","__experimentalGetDirectInsertBlock","getSettings","getBlockVariations","undefined","allowedBlocks","settings","name","allowedBlockType","title","__experimentalPreferPatternsOnRoot","dispatch","ownProps","getAdjacentBlockAttributes","attributesToCopy","getBlock","getPreviousBlockClientId","result","adjacentAttributes","parentBlock","innerBlocks","lastInnerBlock","attributes","currentBlock","previousBlock","forEach","attribute","hasOwnProperty","getInsertionIndex","getBlockIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","newAttributes","message","Inserter","ref"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { forwardRef, Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n\tprioritizePatterns,\n} ) => {\n\tconst {\n\t\tas: Wrapper = Button,\n\t\tlabel: labelProp,\n\t\tonClick,\n\t\t...rest\n\t} = toggleProps;\n\n\tlet label = labelProp;\n\tif ( ! label && hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else if ( ! label && prioritizePatterns ) {\n\t\tlabel = __( 'Add pattern' );\n\t} else if ( ! label ) {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\t// Handle both onClick functions from the toggle and the parent component.\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Wrapper\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass PrivateInserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\tprioritizePatterns,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tprioritizePatterns,\n\t\t\tonSelectOrClose,\n\t\t\tselectBlockOnInsert,\n\t\t\torderInitialBlockItems,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ ( blocks ) => {\n\t\t\t\t\t\tconst firstBlock =\n\t\t\t\t\t\t\tArray.isArray( blocks ) && blocks?.length\n\t\t\t\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t\t\t\t: blocks;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tonSelectOrClose &&\n\t\t\t\t\t\t\ttypeof onSelectOrClose === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tonSelectOrClose( firstBlock );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t\torderInitialBlockItems={ orderInitialBlockItems }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tpopoverProps={ { position } }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport const ComposedPrivateInserter = compose( [\n\twithSelect(\n\t\t( select, { clientId, rootClientId, shouldDirectInsert = true } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasInserterItems,\n\t\t\t\tgetAllowedBlocks,\n\t\t\t\t__experimentalGetDirectInsertBlock,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\t\trootClientId =\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\t\tconst allowedBlocks = getAllowedBlocks( rootClientId );\n\n\t\t\tconst directInsertBlock =\n\t\t\t\tshouldDirectInsert &&\n\t\t\t\t__experimentalGetDirectInsertBlock( rootClientId );\n\n\t\t\tconst settings = getSettings();\n\n\t\t\tconst hasSingleBlockType =\n\t\t\t\tallowedBlocks?.length === 1 &&\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t\t\t?.length === 0;\n\n\t\t\tlet allowedBlockType = false;\n\t\t\tif ( hasSingleBlockType ) {\n\t\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\t\thasSingleBlockType,\n\t\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\t\tallowedBlockType,\n\t\t\t\tdirectInsertBlock,\n\t\t\t\trootClientId,\n\t\t\t\tprioritizePatterns:\n\t\t\t\t\tsettings.__experimentalPreferPatternsOnRoot &&\n\t\t\t\t\t! rootClientId,\n\t\t\t};\n\t\t}\n\t),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t\tselectBlockOnInsert,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjacentBlockAttributes( attributesToCopy ) {\n\t\t\t\t\tconst { getBlock, getPreviousBlockClientId } =\n\t\t\t\t\t\tselect( blockEditorStore );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! attributesToCopy ||\n\t\t\t\t\t\t( ! clientId && ! rootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = {};\n\t\t\t\t\tlet adjacentAttributes = {};\n\n\t\t\t\t\t// If there is no clientId, then attempt to get attributes\n\t\t\t\t\t// from the last block within innerBlocks of the root block.\n\t\t\t\t\tif ( ! clientId ) {\n\t\t\t\t\t\tconst parentBlock = getBlock( rootClientId );\n\n\t\t\t\t\t\tif ( parentBlock?.innerBlocks?.length ) {\n\t\t\t\t\t\t\tconst lastInnerBlock =\n\t\t\t\t\t\t\t\tparentBlock.innerBlocks[\n\t\t\t\t\t\t\t\t\tparentBlock.innerBlocks.length - 1\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdirectInsertBlock &&\n\t\t\t\t\t\t\t\tdirectInsertBlock?.name === lastInnerBlock.name\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tadjacentAttributes = lastInnerBlock.attributes;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Otherwise, attempt to get attributes from the\n\t\t\t\t\t\t// previous block relative to the current clientId.\n\t\t\t\t\t\tconst currentBlock = getBlock( clientId );\n\t\t\t\t\t\tconst previousBlock = getBlock(\n\t\t\t\t\t\t\tgetPreviousBlockClientId( clientId )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( currentBlock?.name === previousBlock?.name ) {\n\t\t\t\t\t\t\tadjacentAttributes =\n\t\t\t\t\t\t\t\tpreviousBlock?.attributes || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy over only those attributes flagged to be copied.\n\t\t\t\t\tattributesToCopy.forEach( ( attribute ) => {\n\t\t\t\t\t\tif ( adjacentAttributes.hasOwnProperty( attribute ) ) {\n\t\t\t\t\t\t\tresult[ attribute ] =\n\t\t\t\t\t\t\t\tadjacentAttributes[ attribute ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tlet blockToInsert;\n\n\t\t\t\t// Attempt to augment the directInsertBlock with attributes from an adjacent block.\n\t\t\t\t// This ensures styling from nearby blocks is preserved in the newly inserted block.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/37904\n\t\t\t\tif ( directInsertBlock ) {\n\t\t\t\t\tconst newAttributes = getAdjacentBlockAttributes(\n\t\t\t\t\t\tdirectInsertBlock.attributesToCopy\n\t\t\t\t\t);\n\n\t\t\t\t\tblockToInsert = createBlock( directInsertBlock.name, {\n\t\t\t\t\t\t...( directInsertBlock.attributes || {} ),\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tblockToInsert = createBlock( allowedBlockType.name );\n\t\t\t\t}\n\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblockToInsert,\n\t\t\t\t\tgetInsertionIndex(),\n\t\t\t\t\trootClientId,\n\t\t\t\t\tselectBlockOnInsert\n\t\t\t\t);\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose( {\n\t\t\t\t\t\tclientId: blockToInsert?.clientId,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( PrivateInserter );\n\nconst Inserter = forwardRef( ( props, ref ) => {\n\treturn (\n\t\t<ComposedPrivateInserter\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\torderInitialBlockItems={ undefined }\n\t\t/>\n\t);\n} );\n\nexport default Inserter;\n"]}
@@ -103,14 +103,6 @@ function useInserterMediaCategories() {
103
103
  // Check if Openverse category is enabled.
104
104
  if (!enableOpenverseMediaCategory && category.name === 'openverse') {
105
105
  return false;
106
- } // When a category has set `isExternalResource` to `true`, we
107
- // don't need to check for allowed mime types, as they are used
108
- // for restricting uploads for this media type and not for
109
- // inserting media from external sources.
110
-
111
-
112
- if (category.isExternalResource) {
113
- return true;
114
106
  }
115
107
 
116
108
  return Object.values(allowedMimeTypes).some(mimeType => mimeType.startsWith(`${category.mediaType}/`));
@@ -152,9 +144,16 @@ export function useMediaCategories(rootClientId) {
152
144
  return [category.name, true];
153
145
  }
154
146
 
155
- const results = await category.fetch({
156
- per_page: 1
157
- });
147
+ let results = [];
148
+
149
+ try {
150
+ results = await category.fetch({
151
+ per_page: 1
152
+ });
153
+ } catch (e) {// If the request fails, we shallow the error and just don't show
154
+ // the category, in order to not break the media tab.
155
+ }
156
+
158
157
  return [category.name, !!results.length];
159
158
  }))); // We need to filter out categories that don't have any media items or
160
159
  // whose corresponding block type is not allowed to be inserted, based