@wordpress/block-editor 14.7.1-next.082ed6819.0 → 14.8.1-next.cd6172eb0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/autocompleters/block.js +2 -4
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/autocompleters/link.js +2 -4
  5. package/build/autocompleters/link.js.map +1 -1
  6. package/build/components/block-canvas/index.js +3 -6
  7. package/build/components/block-canvas/index.js.map +1 -1
  8. package/build/components/block-list/block.js +6 -5
  9. package/build/components/block-list/block.js.map +1 -1
  10. package/build/components/block-list/index.js +0 -1
  11. package/build/components/block-list/index.js.map +1 -1
  12. package/build/components/block-list/use-block-props/index.js +7 -2
  13. package/build/components/block-list/use-block-props/index.js.map +1 -1
  14. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +34 -0
  15. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -0
  16. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +98 -5
  17. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  18. package/build/components/block-patterns-list/index.js +13 -4
  19. package/build/components/block-patterns-list/index.js.map +1 -1
  20. package/build/components/block-popover/inbetween.js +4 -0
  21. package/build/components/block-popover/inbetween.js.map +1 -1
  22. package/build/components/block-settings-menu/block-settings-dropdown.js +7 -4
  23. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  24. package/build/components/block-settings-menu-controls/index.js +1 -1
  25. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  26. package/build/components/block-switcher/index.js +12 -22
  27. package/build/components/block-switcher/index.js.map +1 -1
  28. package/build/components/block-switcher/use-transformed-patterns.js +0 -1
  29. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  30. package/build/components/block-switcher/utils.js +0 -1
  31. package/build/components/block-switcher/utils.js.map +1 -1
  32. package/build/components/block-toolbar/index.js +17 -9
  33. package/build/components/block-toolbar/index.js.map +1 -1
  34. package/build/components/block-variation-transforms/index.js +0 -1
  35. package/build/components/block-variation-transforms/index.js.map +1 -1
  36. package/build/components/date-format-picker/index.js +0 -1
  37. package/build/components/date-format-picker/index.js.map +1 -1
  38. package/build/components/font-appearance-control/index.js +1 -0
  39. package/build/components/font-appearance-control/index.js.map +1 -1
  40. package/build/components/font-family/index.js +10 -0
  41. package/build/components/font-family/index.js.map +1 -1
  42. package/build/components/global-styles/dimensions-panel.js +17 -16
  43. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  44. package/build/components/global-styles/get-global-styles-changes.js +0 -1
  45. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  46. package/build/components/iframe/index.js +12 -216
  47. package/build/components/iframe/index.js.map +1 -1
  48. package/build/components/iframe/use-scale-canvas.js +398 -0
  49. package/build/components/iframe/use-scale-canvas.js.map +1 -0
  50. package/build/components/image-editor/use-save-image.js +22 -3
  51. package/build/components/image-editor/use-save-image.js.map +1 -1
  52. package/build/components/inserter/block-patterns-tab/index.js +0 -10
  53. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  54. package/build/components/inserter/menu.js +2 -1
  55. package/build/components/inserter/menu.js.map +1 -1
  56. package/build/components/inserter-draggable-blocks/index.js +19 -10
  57. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  58. package/build/components/letter-spacing-control/index.js +10 -0
  59. package/build/components/letter-spacing-control/index.js.map +1 -1
  60. package/build/components/line-height-control/index.js +1 -0
  61. package/build/components/line-height-control/index.js.map +1 -1
  62. package/build/components/media-placeholder/index.js +18 -18
  63. package/build/components/media-placeholder/index.js.map +1 -1
  64. package/build/components/observe-typing/index.js +0 -1
  65. package/build/components/observe-typing/index.js.map +1 -1
  66. package/build/components/recursion-provider/index.js +0 -1
  67. package/build/components/recursion-provider/index.js.map +1 -1
  68. package/build/components/rich-text/index.js +5 -1
  69. package/build/components/rich-text/index.js.map +1 -1
  70. package/build/components/rich-text/native/use-format-types.js +0 -1
  71. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  72. package/build/components/rich-text/use-format-types.js +0 -1
  73. package/build/components/rich-text/use-format-types.js.map +1 -1
  74. package/build/components/spacing-sizes-control/utils.js +0 -1
  75. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  76. package/build/components/typewriter/index.js +0 -1
  77. package/build/components/typewriter/index.js.map +1 -1
  78. package/build/components/use-block-drop-zone/index.js +11 -2
  79. package/build/components/use-block-drop-zone/index.js.map +1 -1
  80. package/build/components/use-moving-animation/index.js +15 -2
  81. package/build/components/use-moving-animation/index.js.map +1 -1
  82. package/build/components/use-resize-canvas/index.js +1 -1
  83. package/build/components/use-resize-canvas/index.js.map +1 -1
  84. package/build/components/writing-flow/use-drag-selection.js +11 -0
  85. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  86. package/build/components/writing-flow/use-tab-nav.js +6 -2
  87. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  88. package/build/hooks/block-bindings.js +4 -3
  89. package/build/hooks/block-bindings.js.map +1 -1
  90. package/build/hooks/gap.js +1 -1
  91. package/build/hooks/gap.js.map +1 -1
  92. package/build/hooks/generated-class-name.js +0 -1
  93. package/build/hooks/generated-class-name.js.map +1 -1
  94. package/build/store/private-selectors.js +1 -7
  95. package/build/store/private-selectors.js.map +1 -1
  96. package/build/store/reducer.js +478 -2
  97. package/build/store/reducer.js.map +1 -1
  98. package/build/store/selectors.js +12 -55
  99. package/build/store/selectors.js.map +1 -1
  100. package/build/utils/object.js +0 -1
  101. package/build/utils/object.js.map +1 -1
  102. package/build-module/autocompleters/block.js +2 -4
  103. package/build-module/autocompleters/block.js.map +1 -1
  104. package/build-module/autocompleters/link.js +2 -4
  105. package/build-module/autocompleters/link.js.map +1 -1
  106. package/build-module/components/block-canvas/index.js +3 -6
  107. package/build-module/components/block-canvas/index.js.map +1 -1
  108. package/build-module/components/block-list/block.js +8 -7
  109. package/build-module/components/block-list/block.js.map +1 -1
  110. package/build-module/components/block-list/index.js +0 -1
  111. package/build-module/components/block-list/index.js.map +1 -1
  112. package/build-module/components/block-list/use-block-props/index.js +7 -2
  113. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  114. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +28 -0
  115. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -0
  116. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +97 -5
  117. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  118. package/build-module/components/block-patterns-list/index.js +13 -4
  119. package/build-module/components/block-patterns-list/index.js.map +1 -1
  120. package/build-module/components/block-popover/inbetween.js +4 -0
  121. package/build-module/components/block-popover/inbetween.js.map +1 -1
  122. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -4
  123. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  124. package/build-module/components/block-settings-menu-controls/index.js +1 -1
  125. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  126. package/build-module/components/block-switcher/index.js +13 -23
  127. package/build-module/components/block-switcher/index.js.map +1 -1
  128. package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
  129. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  130. package/build-module/components/block-switcher/utils.js +0 -1
  131. package/build-module/components/block-switcher/utils.js.map +1 -1
  132. package/build-module/components/block-toolbar/index.js +17 -9
  133. package/build-module/components/block-toolbar/index.js.map +1 -1
  134. package/build-module/components/block-variation-transforms/index.js +0 -1
  135. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  136. package/build-module/components/date-format-picker/index.js +0 -1
  137. package/build-module/components/date-format-picker/index.js.map +1 -1
  138. package/build-module/components/font-appearance-control/index.js +1 -0
  139. package/build-module/components/font-appearance-control/index.js.map +1 -1
  140. package/build-module/components/font-family/index.js +10 -0
  141. package/build-module/components/font-family/index.js.map +1 -1
  142. package/build-module/components/global-styles/dimensions-panel.js +17 -16
  143. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  144. package/build-module/components/global-styles/get-global-styles-changes.js +0 -1
  145. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  146. package/build-module/components/iframe/index.js +14 -218
  147. package/build-module/components/iframe/index.js.map +1 -1
  148. package/build-module/components/iframe/use-scale-canvas.js +392 -0
  149. package/build-module/components/iframe/use-scale-canvas.js.map +1 -0
  150. package/build-module/components/image-editor/use-save-image.js +22 -3
  151. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  152. package/build-module/components/inserter/block-patterns-tab/index.js +1 -11
  153. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  154. package/build-module/components/inserter/menu.js +2 -1
  155. package/build-module/components/inserter/menu.js.map +1 -1
  156. package/build-module/components/inserter-draggable-blocks/index.js +20 -11
  157. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  158. package/build-module/components/letter-spacing-control/index.js +9 -0
  159. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  160. package/build-module/components/line-height-control/index.js +1 -0
  161. package/build-module/components/line-height-control/index.js.map +1 -1
  162. package/build-module/components/media-placeholder/index.js +18 -18
  163. package/build-module/components/media-placeholder/index.js.map +1 -1
  164. package/build-module/components/observe-typing/index.js +0 -1
  165. package/build-module/components/observe-typing/index.js.map +1 -1
  166. package/build-module/components/recursion-provider/index.js +0 -1
  167. package/build-module/components/recursion-provider/index.js.map +1 -1
  168. package/build-module/components/rich-text/index.js +5 -1
  169. package/build-module/components/rich-text/index.js.map +1 -1
  170. package/build-module/components/rich-text/native/use-format-types.js +0 -1
  171. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  172. package/build-module/components/rich-text/use-format-types.js +0 -1
  173. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  174. package/build-module/components/spacing-sizes-control/utils.js +0 -1
  175. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  176. package/build-module/components/typewriter/index.js +0 -1
  177. package/build-module/components/typewriter/index.js.map +1 -1
  178. package/build-module/components/use-block-drop-zone/index.js +11 -2
  179. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  180. package/build-module/components/use-moving-animation/index.js +15 -2
  181. package/build-module/components/use-moving-animation/index.js.map +1 -1
  182. package/build-module/components/use-resize-canvas/index.js +1 -1
  183. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  184. package/build-module/components/writing-flow/use-drag-selection.js +11 -0
  185. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  186. package/build-module/components/writing-flow/use-tab-nav.js +6 -2
  187. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  188. package/build-module/hooks/block-bindings.js +4 -3
  189. package/build-module/hooks/block-bindings.js.map +1 -1
  190. package/build-module/hooks/gap.js +1 -1
  191. package/build-module/hooks/gap.js.map +1 -1
  192. package/build-module/hooks/generated-class-name.js +0 -1
  193. package/build-module/hooks/generated-class-name.js.map +1 -1
  194. package/build-module/store/private-selectors.js +1 -6
  195. package/build-module/store/private-selectors.js.map +1 -1
  196. package/build-module/store/reducer.js +479 -3
  197. package/build-module/store/reducer.js.map +1 -1
  198. package/build-module/store/selectors.js +12 -55
  199. package/build-module/store/selectors.js.map +1 -1
  200. package/build-module/utils/object.js +0 -1
  201. package/build-module/utils/object.js.map +1 -1
  202. package/build-style/content-rtl.css +24 -26
  203. package/build-style/content.css +24 -26
  204. package/build-style/style-rtl.css +51 -16
  205. package/build-style/style.css +51 -16
  206. package/package.json +32 -32
  207. package/src/autocompleters/block.js +2 -4
  208. package/src/autocompleters/link.js +2 -4
  209. package/src/components/alignment-control/stories/aliginment-toolbar.story.js +47 -0
  210. package/src/components/alignment-control/stories/index.story.js +51 -0
  211. package/src/components/alignment-control/test/__snapshots__/index.js.snap +5 -5
  212. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +4 -4
  213. package/src/components/block-canvas/index.js +3 -5
  214. package/src/components/block-canvas/style.scss +2 -1
  215. package/src/components/block-draggable/content.scss +11 -5
  216. package/src/components/block-list/block.js +7 -13
  217. package/src/components/block-list/content.scss +6 -0
  218. package/src/components/block-list/use-block-props/index.js +7 -0
  219. package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +25 -0
  220. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +112 -8
  221. package/src/components/block-patterns-list/index.js +12 -1
  222. package/src/components/block-patterns-list/style.scss +16 -5
  223. package/src/components/block-popover/inbetween.js +4 -0
  224. package/src/components/block-settings-menu/block-settings-dropdown.js +6 -1
  225. package/src/components/block-settings-menu-controls/index.js +2 -1
  226. package/src/components/block-switcher/index.js +19 -21
  227. package/src/components/block-switcher/style.scss +0 -9
  228. package/src/components/block-title/test/index.js +2 -0
  229. package/src/components/block-toolbar/index.js +16 -6
  230. package/src/components/block-tools/style.scss +44 -0
  231. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +3 -3
  232. package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
  233. package/src/components/font-appearance-control/index.js +1 -0
  234. package/src/components/font-family/index.js +10 -0
  235. package/src/components/font-family/style.scss +5 -0
  236. package/src/components/global-styles/dimensions-panel.js +16 -16
  237. package/src/components/iframe/content.scss +40 -42
  238. package/src/components/iframe/index.js +13 -313
  239. package/src/components/iframe/use-scale-canvas.js +490 -0
  240. package/src/components/image-editor/use-save-image.js +27 -2
  241. package/src/components/inserter/block-patterns-tab/index.js +1 -17
  242. package/src/components/inserter/menu.js +8 -1
  243. package/src/components/inserter-draggable-blocks/index.js +19 -29
  244. package/src/components/letter-spacing-control/README.md +2 -1
  245. package/src/components/letter-spacing-control/index.js +17 -0
  246. package/src/components/line-height-control/index.js +1 -0
  247. package/src/components/media-placeholder/index.js +25 -28
  248. package/src/components/rich-text/index.js +5 -0
  249. package/src/components/use-block-drop-zone/index.js +18 -1
  250. package/src/components/use-moving-animation/index.js +15 -0
  251. package/src/components/use-resize-canvas/index.js +1 -1
  252. package/src/components/writing-flow/use-drag-selection.js +11 -0
  253. package/src/components/writing-flow/use-tab-nav.js +9 -6
  254. package/src/hooks/block-bindings.js +8 -4
  255. package/src/hooks/gap.js +1 -1
  256. package/src/store/private-selectors.js +2 -17
  257. package/src/store/reducer.js +639 -2
  258. package/src/store/selectors.js +19 -69
  259. package/src/store/test/private-selectors.js +1 -0
  260. package/src/store/test/reducer.js +849 -0
  261. package/src/store/test/selectors.js +4 -110
  262. package/src/style.scss +1 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_components","_data","_icons","_element","_i18n","_keycodes","_keyboardShortcuts","_compose","_blockActions","_interopRequireDefault","_blockCommentIconSlot","_blockHtmlConvertButton","_blockSettingsMenuFirstItem","_blockSettingsMenuControls","_blockParentSelectorMenuItem","_store","_lockUnlock","_jsxRuntime","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","getBlocksByClientId","useSelect","blockEditorStore","ref","useCopyToClipboard","serialize","copyMenuItemLabel","__","jsx","MenuItem","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","unlock","getActiveBlockVariation","blocksStore","_firstParentClientId","parentBlockName","getBlockType","getBlockOrder","setOpenedBlockSettingsMenu","useDispatch","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","default","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","DropdownMenu","icon","moreVertical","popoverProps","noIcons","onClose","jsxs","Fragment","MenuGroup","Slot","fillProps","parentClientId","displayShortcut","primary","onClick","pipe","Children","map","child","cloneElement","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"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 { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\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 CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { clientIds, onCopy, label, shortcut } ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\tonCopy\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( 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\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\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\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\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\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\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! 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\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\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} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\topen={ open }\n\t\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t\t'c'\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) }\n\t\t\t\t\t\t\t\t\t{ canDuplicate && (\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\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\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.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\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\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\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\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\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\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\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\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\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\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\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\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\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.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","_components","_data","_icons","_element","_i18n","_keycodes","_keyboardShortcuts","_compose","_blockActions","_interopRequireDefault","_blockCommentIconSlot","_blockHtmlConvertButton","_blockSettingsMenuFirstItem","_blockSettingsMenuControls","_blockParentSelectorMenuItem","_store","_lockUnlock","_jsxRuntime","POPOVER_PROPS","className","placement","CopyMenuItem","clientIds","onCopy","label","shortcut","getBlocksByClientId","useSelect","blockEditorStore","ref","useCopyToClipboard","serialize","copyMenuItemLabel","__","jsx","MenuItem","children","BlockSettingsDropdown","block","__experimentalSelectBlock","props","currentClientId","clientId","count","length","firstBlockClientId","firstParentClientId","parentBlockType","previousBlockClientId","selectedBlockClientIds","openedBlockSettingsMenu","isContentOnly","isZoomOut","select","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getOpenedBlockSettingsMenu","getBlockEditingMode","_isZoomOut","unlock","getActiveBlockVariation","blocksStore","_firstParentClientId","parentBlockName","getBlockType","getBlockOrder","setOpenedBlockSettingsMenu","useDispatch","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","shouldShowBlockParentMenuItem","default","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertBlock","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","isEmpty","DropdownMenu","icon","moreVertical","popoverProps","noIcons","onClose","jsxs","Fragment","MenuGroup","Slot","fillProps","parentClientId","displayShortcut","primary","onClick","pipe","Children","map","child","cloneElement","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"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 { Children, cloneElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { displayShortcut } from '@wordpress/keycodes';\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 CommentIconSlotFill from '../../components/collab/block-comment-icon-slot';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport BlockParentSelectorMenuItem from './block-parent-selector-menu-item';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { clientIds, onCopy, label, shortcut } ) {\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst ref = useCopyToClipboard(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\tonCopy\n\t);\n\tconst copyMenuItemLabel = label ? label : __( 'Copy' );\n\treturn (\n\t\t<MenuItem ref={ ref } shortcut={ shortcut }>\n\t\t\t{ copyMenuItemLabel }\n\t\t</MenuItem>\n\t);\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\tchildren,\n\t__experimentalSelectBlock,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst count = clientIds.length;\n\tconst firstBlockClientId = clientIds[ 0 ];\n\n\tconst {\n\t\tfirstParentClientId,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tselectedBlockClientIds,\n\t\topenedBlockSettingsMenu,\n\t\tisContentOnly,\n\t\tisZoomOut,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetOpenedBlockSettingsMenu,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tisZoomOut: _isZoomOut,\n\t\t\t} = unlock( 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\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\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t\topenedBlockSettingsMenu: getOpenedBlockSettingsMenu(),\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( firstBlockClientId ) === 'contentOnly',\n\t\t\t\tisZoomOut: _isZoomOut(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\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\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tasync function updateSelectionAfterDuplicate( clientIdsPromise ) {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst ids = await clientIdsPromise;\n\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t}\n\t}\n\n\tfunction updateSelectionAfterRemove() {\n\t\tif ( ! __experimentalSelectBlock ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t// Focus the first block if there's no previous block nor parent block.\n\t\tif ( ! blockToFocus ) {\n\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t}\n\n\t\t// Only update the selection if the original selection is removed.\n\t\tconst shouldUpdateSelection =\n\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\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\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tfunction onToggle( localOpen ) {\n\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t} else if (\n\t\t\t! localOpen &&\n\t\t\topenedBlockSettingsMenu &&\n\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t) {\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t}\n\t}\n\n\tconst shouldShowBlockParentMenuItem =\n\t\t! parentBlockIsSelected && !! 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\tcanCopyStyles,\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertBlock,\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} ) => {\n\t\t\t\t// It is possible that some plugins register fills for this menu\n\t\t\t\t// even if Core doesn't render anything in the block settings menu.\n\t\t\t\t// in which case, we may want to render the menu anyway.\n\t\t\t\t// That said for now, we can start more conservative.\n\t\t\t\tconst isEmpty =\n\t\t\t\t\t! canRemove &&\n\t\t\t\t\t! canDuplicate &&\n\t\t\t\t\t! canInsertBlock &&\n\t\t\t\t\tisContentOnly;\n\n\t\t\t\tif ( isEmpty ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\t\topen={ open }\n\t\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ shouldShowBlockParentMenuItem && (\n\t\t\t\t\t\t\t\t\t\t<BlockParentSelectorMenuItem\n\t\t\t\t\t\t\t\t\t\t\tparentClientId={\n\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType={ parentBlockType }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( ! isContentOnly || isZoomOut ) && (\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primary(\n\t\t\t\t\t\t\t\t\t\t\t\t'c'\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) }\n\t\t\t\t\t\t\t\t\t{ canDuplicate && (\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\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\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.duplicate }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\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\t{ canInsertBlock && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\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\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertBefore\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\t\t{ __( 'Add before' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\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\tshortcut={\n\t\t\t\t\t\t\t\t\t\t\t\t\tshortcuts.insertAfter\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\t\t{ __( 'Add after' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<CommentIconSlotFill.Slot\n\t\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t{ canCopyStyles && ! isContentOnly && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t\t<MenuGroup>\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\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\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.remove }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"],"mappings":"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","ignoreList":[]}
@@ -63,7 +63,7 @@ const BlockSettingsMenuControlsSlot = ({
63
63
  isGroupable,
64
64
  isUngroupable
65
65
  } = convertToGroupButtonProps;
66
- const showConvertToGroupButton = isGroupable || isUngroupable;
66
+ const showConvertToGroupButton = (isGroupable || isUngroupable) && !isContentOnly;
67
67
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Slot, {
68
68
  fillProps: {
69
69
  ...fillProps,
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_convertToGroupButtons","_blockLock","_store","_blockModeToggle","_interopRequireDefault","_contentLock","_blockRename","_jsxRuntime","Fill","Slot","createSlotFill","BlockSettingsMenuControlsSlot","fillProps","clientIds","selectedBlocks","selectedClientIds","isContentOnly","useSelect","select","getBlockNamesByClientId","getSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","ids","canLock","useBlockLock","canRename","useBlockRename","showLockButton","length","showRenameButton","convertToGroupButtonProps","useConvertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","jsx","children","fills","jsxs","MenuGroup","ConvertToGroupButton","onClose","BlockLockMenuItem","clientId","BlockRenameControl","ModifyContentLockMenuItem","count","default","firstBlockClientId","onToggle","BlockSettingsMenuControls","props","__experimentalStyleProvider","document","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockModeToggle from '../block-settings-menu/block-mode-toggle';\nimport { ModifyContentLockMenuItem } from '../content-lock';\nimport { BlockRenameControl, useBlockRename } from '../block-rename';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {\n\tconst { selectedBlocks, selectedClientIds, isContentOnly } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockNamesByClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: getBlockNamesByClientId( ids ),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( ids[ 0 ] ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst { canRename } = useBlockRename( selectedBlocks[ 0 ] );\n\tconst showLockButton =\n\t\tselectedClientIds.length === 1 && canLock && ! isContentOnly;\n\tconst showRenameButton =\n\t\tselectedClientIds.length === 1 && canRename && ! isContentOnly;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps =\n\t\tuseConvertToGroupButtonProps( selectedClientIds );\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton = isGroupable || isUngroupable;\n\n\treturn (\n\t\t<Slot\n\t\t\tfillProps={ {\n\t\t\t\t...fillProps,\n\t\t\t\tselectedBlocks,\n\t\t\t\tselectedClientIds,\n\t\t\t} }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showRenameButton && (\n\t\t\t\t\t\t\t<BlockRenameControl\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ selectedClientIds.length === 1 && (\n\t\t\t\t\t\t\t<ModifyContentLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fillProps?.count === 1 && ! isContentOnly && (\n\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\tclientId={ fillProps?.firstBlockClientId }\n\t\t\t\t\t\t\t\tonToggle={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {Element} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_convertToGroupButtons","_blockLock","_store","_blockModeToggle","_interopRequireDefault","_contentLock","_blockRename","_jsxRuntime","Fill","Slot","createSlotFill","BlockSettingsMenuControlsSlot","fillProps","clientIds","selectedBlocks","selectedClientIds","isContentOnly","useSelect","select","getBlockNamesByClientId","getSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","ids","canLock","useBlockLock","canRename","useBlockRename","showLockButton","length","showRenameButton","convertToGroupButtonProps","useConvertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","jsx","children","fills","jsxs","MenuGroup","ConvertToGroupButton","onClose","BlockLockMenuItem","clientId","BlockRenameControl","ModifyContentLockMenuItem","count","default","firstBlockClientId","onToggle","BlockSettingsMenuControls","props","__experimentalStyleProvider","document","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport BlockModeToggle from '../block-settings-menu/block-mode-toggle';\nimport { ModifyContentLockMenuItem } from '../content-lock';\nimport { BlockRenameControl, useBlockRename } from '../block-rename';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {\n\tconst { selectedBlocks, selectedClientIds, isContentOnly } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockNamesByClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: getBlockNamesByClientId( ids ),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t\tisContentOnly:\n\t\t\t\t\tgetBlockEditingMode( ids[ 0 ] ) === 'contentOnly',\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst { canRename } = useBlockRename( selectedBlocks[ 0 ] );\n\tconst showLockButton =\n\t\tselectedClientIds.length === 1 && canLock && ! isContentOnly;\n\tconst showRenameButton =\n\t\tselectedClientIds.length === 1 && canRename && ! isContentOnly;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps =\n\t\tuseConvertToGroupButtonProps( selectedClientIds );\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && ! isContentOnly;\n\n\treturn (\n\t\t<Slot\n\t\t\tfillProps={ {\n\t\t\t\t...fillProps,\n\t\t\t\tselectedBlocks,\n\t\t\t\tselectedClientIds,\n\t\t\t} }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showRenameButton && (\n\t\t\t\t\t\t\t<BlockRenameControl\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ selectedClientIds.length === 1 && (\n\t\t\t\t\t\t\t<ModifyContentLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fillProps?.count === 1 && ! isContentOnly && (\n\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\tclientId={ fillProps?.firstBlockClientId }\n\t\t\t\t\t\t\t\tonToggle={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {Element} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,sBAAA,GAAAF,OAAA;AAIA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AAAqE,IAAAS,WAAA,GAAAT,OAAA;AArBrE;AACA;AACA;;AAQA;AACA;AACA;;AAWA,MAAM;EAAEU,IAAI;EAAEC;AAAK,CAAC,GAAG,IAAAC,0BAAc,EAAE,2BAA4B,CAAC;AAEpE,MAAMC,6BAA6B,GAAGA,CAAE;EAAEC,SAAS;EAAEC,SAAS,GAAG;AAAK,CAAC,KAAM;EAC5E,MAAM;IAAEC,cAAc;IAAEC,iBAAiB;IAAEC;EAAc,CAAC,GAAG,IAAAC,eAAS,EACnEC,MAAM,IAAM;IACb,MAAM;MACLC,uBAAuB;MACvBC,yBAAyB;MACzBC;IACD,CAAC,GAAGH,MAAM,CAAEI,YAAiB,CAAC;IAC9B,MAAMC,GAAG,GACRV,SAAS,KAAK,IAAI,GAAGA,SAAS,GAAGO,yBAAyB,CAAC,CAAC;IAC7D,OAAO;MACNN,cAAc,EAAEK,uBAAuB,CAAEI,GAAI,CAAC;MAC9CR,iBAAiB,EAAEQ,GAAG;MACtBP,aAAa,EACZK,mBAAmB,CAAEE,GAAG,CAAE,CAAC,CAAG,CAAC,KAAK;IACtC,CAAC;EACF,CAAC,EACD,CAAEV,SAAS,CACZ,CAAC;EAED,MAAM;IAAEW;EAAQ,CAAC,GAAG,IAAAC,uBAAY,EAAEV,iBAAiB,CAAE,CAAC,CAAG,CAAC;EAC1D,MAAM;IAAEW;EAAU,CAAC,GAAG,IAAAC,2BAAc,EAAEb,cAAc,CAAE,CAAC,CAAG,CAAC;EAC3D,MAAMc,cAAc,GACnBb,iBAAiB,CAACc,MAAM,KAAK,CAAC,IAAIL,OAAO,IAAI,CAAER,aAAa;EAC7D,MAAMc,gBAAgB,GACrBf,iBAAiB,CAACc,MAAM,KAAK,CAAC,IAAIH,SAAS,IAAI,CAAEV,aAAa;;EAE/D;EACA;EACA,MAAMe,yBAAyB,GAC9B,IAAAC,mDAA4B,EAAEjB,iBAAkB,CAAC;EAClD,MAAM;IAAEkB,WAAW;IAAEC;EAAc,CAAC,GAAGH,yBAAyB;EAChE,MAAMI,wBAAwB,GAC7B,CAAEF,WAAW,IAAIC,aAAa,KAAM,CAAElB,aAAa;EAEpD,oBACC,IAAAT,WAAA,CAAA6B,GAAA,EAAC3B,IAAI;IACJG,SAAS,EAAG;MACX,GAAGA,SAAS;MACZE,cAAc;MACdC;IACD,CAAG;IAAAsB,QAAA,EAECC,KAAK,IAAM;MACd,IACC,CAAEA,KAAK,EAAET,MAAM,GAAG,CAAC,IACnB,CAAEM,wBAAwB,IAC1B,CAAEP,cAAc,EACf;QACD,OAAO,IAAI;MACZ;MAEA,oBACC,IAAArB,WAAA,CAAAgC,IAAA,EAAC1C,WAAA,CAAA2C,SAAS;QAAAH,QAAA,GACPF,wBAAwB,iBACzB,IAAA5B,WAAA,CAAA6B,GAAA,EAACpC,sBAAA,CAAAyC,oBAAoB;UAAA,GACfV,yBAAyB;UAC9BW,OAAO,EAAG9B,SAAS,EAAE8B;QAAS,CAC9B,CACD,EACCd,cAAc,iBACf,IAAArB,WAAA,CAAA6B,GAAA,EAACnC,UAAA,CAAA0C,iBAAiB;UACjBC,QAAQ,EAAG7B,iBAAiB,CAAE,CAAC;QAAI,CACnC,CACD,EACCe,gBAAgB,iBACjB,IAAAvB,WAAA,CAAA6B,GAAA,EAAC9B,YAAA,CAAAuC,kBAAkB;UAClBD,QAAQ,EAAG7B,iBAAiB,CAAE,CAAC;QAAI,CACnC,CACD,EACCuB,KAAK,EACLvB,iBAAiB,CAACc,MAAM,KAAK,CAAC,iBAC/B,IAAAtB,WAAA,CAAA6B,GAAA,EAAC/B,YAAA,CAAAyC,yBAAyB;UACzBF,QAAQ,EAAG7B,iBAAiB,CAAE,CAAC,CAAI;UACnC2B,OAAO,EAAG9B,SAAS,EAAE8B;QAAS,CAC9B,CACD,EACC9B,SAAS,EAAEmC,KAAK,KAAK,CAAC,IAAI,CAAE/B,aAAa,iBAC1C,IAAAT,WAAA,CAAA6B,GAAA,EAACjC,gBAAA,CAAA6C,OAAe;UACfJ,QAAQ,EAAGhC,SAAS,EAAEqC,kBAAoB;UAC1CC,QAAQ,EAAGtC,SAAS,EAAE8B;QAAS,CAC/B,CACD;MAAA,CACS,CAAC;IAEd;EAAC,CACI,CAAC;AAET,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,yBAAyBA,CAAE;EAAE,GAAGC;AAAM,CAAC,EAAG;EAClD,oBACC,IAAA7C,WAAA,CAAA6B,GAAA,EAACvC,WAAA,CAAAwD,2BAAa;IAACC,QAAQ,EAAGA,QAAU;IAAAjB,QAAA,eACnC,IAAA9B,WAAA,CAAA6B,GAAA,EAAC5B,IAAI;MAAA,GAAM4C;IAAK,CAAI;EAAC,CACP,CAAC;AAElB;AAEAD,yBAAyB,CAAC1C,IAAI,GAAGE,6BAA6B;AAAC,IAAA4C,QAAA,GAAAC,OAAA,CAAAR,OAAA,GAEhDG,yBAAyB","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  "use strict";
3
2
 
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -11,6 +10,7 @@ var _components = require("@wordpress/components");
11
10
  var _blocks2 = require("@wordpress/blocks");
12
11
  var _data = require("@wordpress/data");
13
12
  var _icons = require("@wordpress/icons");
13
+ var _preferences = require("@wordpress/preferences");
14
14
  var _store = require("../../store");
15
15
  var _blockIcon = _interopRequireDefault(require("../block-icon"));
16
16
  var _blockTransformationsMenu = _interopRequireDefault(require("./block-transformations-menu"));
@@ -139,20 +139,6 @@ function BlockSwitcherDropdownMenuContents({
139
139
  })]
140
140
  });
141
141
  }
142
- const BlockIndicator = ({
143
- icon,
144
- showTitle,
145
- blockTitle
146
- }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
147
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockIcon.default, {
148
- className: "block-editor-block-switcher__toggle",
149
- icon: icon,
150
- showColors: true
151
- }), showTitle && blockTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
152
- className: "block-editor-block-switcher__toggle-text",
153
- children: blockTitle
154
- })]
155
- });
156
142
  const BlockSwitcher = ({
157
143
  clientIds
158
144
  }) => {
@@ -220,11 +206,13 @@ const BlockSwitcher = ({
220
206
  clientId: clientIds?.[0],
221
207
  maximumLength: 35
222
208
  });
209
+ const showIconLabels = (0, _data.useSelect)(select => select(_preferences.store).get('core', 'showIconLabels'), []);
223
210
  if (invalidBlocks) {
224
211
  return null;
225
212
  }
226
213
  const isSingleBlock = clientIds.length === 1;
227
214
  const blockSwitcherLabel = isSingleBlock ? blockTitle : (0, _i18n.__)('Multiple blocks selected');
215
+ const blockIndicatorText = (isReusable || isTemplate) && !showIconLabels && blockTitle ? blockTitle : undefined;
228
216
  const hideDropdown = isDisabled || !hasBlockStyles && !canRemove || hasContentOnlyLocking;
229
217
  if (hideDropdown) {
230
218
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarGroup, {
@@ -232,11 +220,12 @@ const BlockSwitcher = ({
232
220
  disabled: true,
233
221
  className: "block-editor-block-switcher__no-switcher-icon",
234
222
  title: blockSwitcherLabel,
235
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockIndicator, {
223
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockIcon.default, {
224
+ className: "block-editor-block-switcher__toggle",
236
225
  icon: icon,
237
- showTitle: isReusable || isTemplate,
238
- blockTitle: blockTitle
239
- })
226
+ showColors: true
227
+ }),
228
+ text: blockIndicatorText
240
229
  })
241
230
  });
242
231
  }
@@ -251,11 +240,12 @@ const BlockSwitcher = ({
251
240
  placement: 'bottom-start',
252
241
  className: 'block-editor-block-switcher__popover'
253
242
  },
254
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockIndicator, {
243
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockIcon.default, {
244
+ className: "block-editor-block-switcher__toggle",
255
245
  icon: icon,
256
- showTitle: isReusable || isTemplate,
257
- blockTitle: blockTitle
246
+ showColors: true
258
247
  }),
248
+ text: blockIndicatorText,
259
249
  toggleProps: {
260
250
  description: blockSwitcherDescription,
261
251
  ...toggleProps
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_blocks2","_data","_icons","_store","_blockIcon","_interopRequireDefault","_blockTransformationsMenu","_blockVariationTransformations","_blockStylesMenu","_patternTransformationsMenu","_useBlockDisplayTitle","_jsxRuntime","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","replaceBlocks","multiSelect","updateBlockAttributes","useDispatch","blockEditorStore","possibleBlockTransformations","patterns","blocks","isUsingBindings","useSelect","select","getBlockAttributes","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","_blocks","every","clientId","metadata","bindings","blockVariationTransformations","useBlockVariationTransforms","selectForMultipleBlocks","insertedBlocks","length","onBlockTransform","name","newBlocks","switchToBlockType","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","isTemplatePart","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","jsx","className","children","__","connectedBlockDescription","_x","jsxs","default","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","MenuGroup","__experimentalText","BlockIndicator","icon","showTitle","blockTitle","Fragment","showColors","BlockSwitcher","hasContentOnlyLocking","invalidBlocks","isReusable","isDisabled","getTemplateLock","canRemoveBlocks","getBlockEditingMode","getBlockStyles","getBlockType","getActiveBlockVariation","blocksStore","some","block","firstBlockName","_isSingleBlockSelected","blockType","editingMode","_icon","_hasTemplateLock","match","isSelectionOfSameType","Set","map","size","id","copy","isReusableBlock","useBlockDisplayTitle","maximumLength","blockSwitcherLabel","hideDropdown","ToolbarGroup","ToolbarButton","disabled","title","blockSwitcherDescription","sprintf","_n","ToolbarItem","toggleProps","DropdownMenu","label","popoverProps","placement","description","menuProps","orientation","exports","_default"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks, isUsingBindings } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlocksByClientId,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockTransformItems,\n\t\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\t\treturn {\n\t\t\t\t\tblocks: _blocks,\n\t\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tisUsingBindings: clientIds.every(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\t!! getBlockAttributes( clientId )?.metadata\n\t\t\t\t\t\t\t\t?.bindings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds ]\n\t\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nconst BlockIndicator = ( { icon, showTitle, blockTitle } ) => (\n\t<>\n\t\t<BlockIcon\n\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\ticon={ icon }\n\t\t\tshowColors\n\t\t/>\n\t\t{ showTitle && blockTitle && (\n\t\t\t<span className=\"block-editor-block-switcher__toggle-text\">\n\t\t\t\t{ blockTitle }\n\t\t\t</span>\n\t\t) }\n\t</>\n);\n\nexport const BlockSwitcher = ( { clientIds } ) => {\n\tconst {\n\t\thasContentOnlyLocking,\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t\tisDisabled,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\t\t\tconst editingMode = getBlockEditingMode( clientIds[ 0 ] );\n\n\t\t\tlet _icon;\n\t\t\tlet _hasTemplateLock;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t\t_hasTemplateLock =\n\t\t\t\t\tgetTemplateLock( clientIds[ 0 ] ) === 'contentOnly';\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t_hasTemplateLock = clientIds.some(\n\t\t\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\t\tisDisabled: editingMode !== 'default',\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst hideDropdown =\n\t\tisDisabled ||\n\t\t( ! hasBlockStyles && ! canRemove ) ||\n\t\thasContentOnlyLocking;\n\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BlockIndicator\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tshowTitle={ isReusable || isTemplate }\n\t\t\t\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIndicator\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tshowTitle={ isReusable || isTemplate }\n\t\t\t\t\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_blocks2","_data","_icons","_preferences","_store","_blockIcon","_interopRequireDefault","_blockTransformationsMenu","_blockVariationTransformations","_blockStylesMenu","_patternTransformationsMenu","_useBlockDisplayTitle","_jsxRuntime","BlockSwitcherDropdownMenuContents","onClose","clientIds","hasBlockStyles","canRemove","replaceBlocks","multiSelect","updateBlockAttributes","useDispatch","blockEditorStore","possibleBlockTransformations","patterns","blocks","isUsingBindings","useSelect","select","getBlockAttributes","getBlocksByClientId","getBlockRootClientId","getBlockTransformItems","__experimentalGetPatternTransformItems","rootClientId","_blocks","every","clientId","metadata","bindings","blockVariationTransformations","useBlockVariationTransforms","selectForMultipleBlocks","insertedBlocks","length","onBlockTransform","name","newBlocks","switchToBlockType","onBlockVariationTransform","find","variationName","attributes","onPatternTransform","transformedBlocks","isSingleBlock","isTemplate","isTemplatePart","hasPossibleBlockTransformations","hasPossibleBlockVariationTransformations","hasPatternTransformation","hasBlockOrBlockVariationTransforms","hasContents","jsx","className","children","__","connectedBlockDescription","_x","jsxs","default","onSelect","possibleBlockVariationTransformations","onSelectVariation","hoveredBlock","onSwitch","MenuGroup","__experimentalText","BlockSwitcher","hasContentOnlyLocking","icon","invalidBlocks","isReusable","isDisabled","getTemplateLock","canRemoveBlocks","getBlockEditingMode","getBlockStyles","getBlockType","getActiveBlockVariation","blocksStore","some","block","firstBlockName","_isSingleBlockSelected","blockType","editingMode","_icon","_hasTemplateLock","match","isSelectionOfSameType","Set","map","size","id","copy","isReusableBlock","blockTitle","useBlockDisplayTitle","maximumLength","showIconLabels","preferencesStore","get","blockSwitcherLabel","blockIndicatorText","undefined","hideDropdown","ToolbarGroup","ToolbarButton","disabled","title","showColors","text","blockSwitcherDescription","sprintf","_n","ToolbarItem","toggleProps","DropdownMenu","label","popoverProps","placement","description","menuProps","orientation","exports","_default"],"sources":["@wordpress/block-editor/src/components/block-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarItem,\n\t__experimentalText as Text,\n\tMenuGroup,\n} from '@wordpress/components';\nimport {\n\tswitchToBlockType,\n\tstore as blocksStore,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { copy } from '@wordpress/icons';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockIcon from '../block-icon';\nimport BlockTransformationsMenu from './block-transformations-menu';\nimport { useBlockVariationTransforms } from './block-variation-transformations';\nimport BlockStylesMenu from './block-styles-menu';\nimport PatternTransformationsMenu from './pattern-transformations-menu';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\n\nfunction BlockSwitcherDropdownMenuContents( {\n\tonClose,\n\tclientIds,\n\thasBlockStyles,\n\tcanRemove,\n} ) {\n\tconst { replaceBlocks, multiSelect, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, patterns, blocks, isUsingBindings } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlocksByClientId,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockTransformItems,\n\t\t\t\t\t__experimentalGetPatternTransformItems,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\t\treturn {\n\t\t\t\t\tblocks: _blocks,\n\t\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tpatterns: __experimentalGetPatternTransformItems(\n\t\t\t\t\t\t_blocks,\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t\tisUsingBindings: clientIds.every(\n\t\t\t\t\t\t( clientId ) =>\n\t\t\t\t\t\t\t!! getBlockAttributes( clientId )?.metadata\n\t\t\t\t\t\t\t\t?.bindings\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds ]\n\t\t);\n\tconst blockVariationTransformations = useBlockVariationTransforms( {\n\t\tclientIds,\n\t\tblocks,\n\t} );\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\tfunction onBlockVariationTransform( name ) {\n\t\tupdateBlockAttributes( blocks[ 0 ].clientId, {\n\t\t\t...blockVariationTransformations.find(\n\t\t\t\t( { name: variationName } ) => variationName === name\n\t\t\t).attributes,\n\t\t} );\n\t}\n\t// Pattern transformation through the `Patterns` API.\n\tfunction onPatternTransform( transformedBlocks ) {\n\t\treplaceBlocks( clientIds, transformedBlocks );\n\t\tselectForMultipleBlocks( transformedBlocks );\n\t}\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst isSingleBlock = blocks.length === 1;\n\tconst isTemplate = isSingleBlock && isTemplatePart( blocks[ 0 ] );\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\tconst hasPossibleBlockVariationTransformations =\n\t\t!! blockVariationTransformations?.length;\n\tconst hasPatternTransformation = !! patterns?.length && canRemove;\n\tconst hasBlockOrBlockVariationTransforms =\n\t\thasPossibleBlockTransformations ||\n\t\thasPossibleBlockVariationTransformations;\n\tconst hasContents =\n\t\thasBlockStyles ||\n\t\thasBlockOrBlockVariationTransforms ||\n\t\thasPatternTransformation;\n\tif ( ! hasContents ) {\n\t\treturn (\n\t\t\t<p className=\"block-editor-block-switcher__no-transforms\">\n\t\t\t\t{ __( 'No transforms.' ) }\n\t\t\t</p>\n\t\t);\n\t}\n\n\tconst connectedBlockDescription = isSingleBlock\n\t\t? _x(\n\t\t\t\t'This block is connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t )\n\t\t: _x(\n\t\t\t\t'These blocks are connected.',\n\t\t\t\t'block toolbar button label and description'\n\t\t );\n\n\treturn (\n\t\t<div className=\"block-editor-block-switcher__container\">\n\t\t\t{ hasPatternTransformation && (\n\t\t\t\t<PatternTransformationsMenu\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonSelect={ ( transformedBlocks ) => {\n\t\t\t\t\t\tonPatternTransform( transformedBlocks );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockOrBlockVariationTransforms && (\n\t\t\t\t<BlockTransformationsMenu\n\t\t\t\t\tclassName=\"block-editor-block-switcher__transforms__menugroup\"\n\t\t\t\t\tpossibleBlockTransformations={\n\t\t\t\t\t\tpossibleBlockTransformations\n\t\t\t\t\t}\n\t\t\t\t\tpossibleBlockVariationTransformations={\n\t\t\t\t\t\tblockVariationTransformations\n\t\t\t\t\t}\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonSelect={ ( name ) => {\n\t\t\t\t\t\tonBlockTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectVariation={ ( name ) => {\n\t\t\t\t\t\tonBlockVariationTransform( name );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<BlockStylesMenu\n\t\t\t\t\thoveredBlock={ blocks[ 0 ] }\n\t\t\t\t\tonSwitch={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isUsingBindings && (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<Text className=\"block-editor-block-switcher__binding-indicator\">\n\t\t\t\t\t\t{ connectedBlockDescription }\n\t\t\t\t\t</Text>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const BlockSwitcher = ( { clientIds } ) => {\n\tconst {\n\t\thasContentOnlyLocking,\n\t\tcanRemove,\n\t\thasBlockStyles,\n\t\ticon,\n\t\tinvalidBlocks,\n\t\tisReusable,\n\t\tisTemplate,\n\t\tisDisabled,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockStyles, getBlockType, getActiveBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\tif ( ! _blocks.length || _blocks.some( ( block ) => ! block ) ) {\n\t\t\t\treturn { invalidBlocks: true };\n\t\t\t}\n\t\t\tconst [ { name: firstBlockName } ] = _blocks;\n\t\t\tconst _isSingleBlockSelected = _blocks.length === 1;\n\t\t\tconst blockType = getBlockType( firstBlockName );\n\t\t\tconst editingMode = getBlockEditingMode( clientIds[ 0 ] );\n\n\t\t\tlet _icon;\n\t\t\tlet _hasTemplateLock;\n\t\t\tif ( _isSingleBlockSelected ) {\n\t\t\t\tconst match = getActiveBlockVariation(\n\t\t\t\t\tfirstBlockName,\n\t\t\t\t\tgetBlockAttributes( clientIds[ 0 ] )\n\t\t\t\t);\n\t\t\t\t// Take into account active block variations.\n\t\t\t\t_icon = match?.icon || blockType.icon;\n\t\t\t\t_hasTemplateLock =\n\t\t\t\t\tgetTemplateLock( clientIds[ 0 ] ) === 'contentOnly';\n\t\t\t} else {\n\t\t\t\tconst isSelectionOfSameType =\n\t\t\t\t\tnew Set( _blocks.map( ( { name } ) => name ) ).size === 1;\n\t\t\t\t_hasTemplateLock = clientIds.some(\n\t\t\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t\t\t);\n\t\t\t\t// When selection consists of blocks of multiple types, display an\n\t\t\t\t// appropriate icon to communicate the non-uniformity.\n\t\t\t\t_icon = isSelectionOfSameType ? blockType.icon : copy;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds ),\n\t\t\t\thasBlockStyles:\n\t\t\t\t\t_isSingleBlockSelected &&\n\t\t\t\t\t!! getBlockStyles( firstBlockName )?.length,\n\t\t\t\ticon: _icon,\n\t\t\t\tisReusable:\n\t\t\t\t\t_isSingleBlockSelected && isReusableBlock( _blocks[ 0 ] ),\n\t\t\t\tisTemplate:\n\t\t\t\t\t_isSingleBlockSelected && isTemplatePart( _blocks[ 0 ] ),\n\t\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\t\tisDisabled: editingMode !== 'default',\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: clientIds?.[ 0 ],\n\t\tmaximumLength: 35,\n\t} );\n\tconst showIconLabels = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', 'showIconLabels' ),\n\t\t[]\n\t);\n\n\tif ( invalidBlocks ) {\n\t\treturn null;\n\t}\n\n\tconst isSingleBlock = clientIds.length === 1;\n\tconst blockSwitcherLabel = isSingleBlock\n\t\t? blockTitle\n\t\t: __( 'Multiple blocks selected' );\n\n\tconst blockIndicatorText =\n\t\t( isReusable || isTemplate ) && ! showIconLabels && blockTitle\n\t\t\t? blockTitle\n\t\t\t: undefined;\n\n\tconst hideDropdown =\n\t\tisDisabled ||\n\t\t( ! hasBlockStyles && ! canRemove ) ||\n\t\thasContentOnlyLocking;\n\n\tif ( hideDropdown ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled\n\t\t\t\t\tclassName=\"block-editor-block-switcher__no-switcher-icon\"\n\t\t\t\t\ttitle={ blockSwitcherLabel }\n\t\t\t\t\ticon={\n\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tconst blockSwitcherDescription = isSingleBlock\n\t\t? __( 'Change block type or style' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %d: number of blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'Change type of %d block',\n\t\t\t\t\t'Change type of %d blocks',\n\t\t\t\t\tclientIds.length\n\t\t\t\t),\n\t\t\t\tclientIds.length\n\t\t );\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tclassName=\"block-editor-block-switcher\"\n\t\t\t\t\t\tlabel={ blockSwitcherLabel }\n\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\t\tclassName: 'block-editor-block-switcher__popover',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-switcher__toggle\"\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttext={ blockIndicatorText }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tdescription: blockSwitcherDescription,\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmenuProps={ { orientation: 'both' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<BlockSwitcherDropdownMenuContents\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\t\t\t\tcanRemove={ canRemove }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default BlockSwitcher;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  "use strict";
3
2
 
4
3
  Object.defineProperty(exports, "__esModule", {
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_blocks","_utils","transformMatchingBlock","match","selectedBlock","retainedBlockAttributes","getRetainedBlockAttributes","name","attributes","exports","getPatternTransformedBlocks","selectedBlocks","patternBlocks","_patternBlocks","map","block","cloneBlock","consumedBlocks","Set","isMatch","patternBlock","getMatchingBlockByName","add","clientId","useTransformedPatterns","patterns","useMemo","reduce","accumulator","_pattern","transformedBlocks","blocks","push","_default","default"],"sources":["@wordpress/block-editor/src/components/block-switcher/use-transformed-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getMatchingBlockByName, getRetainedBlockAttributes } from './utils';\n\n/**\n * Mutate the matched block's attributes by getting\n * which block type's attributes to retain and prioritize\n * them in the merging of the attributes.\n *\n * @param {WPBlock} match The matched block.\n * @param {WPBlock} selectedBlock The selected block.\n * @return {void}\n */\nexport const transformMatchingBlock = ( match, selectedBlock ) => {\n\t// Get the block attributes to retain through the transformation.\n\tconst retainedBlockAttributes = getRetainedBlockAttributes(\n\t\tselectedBlock.name,\n\t\tselectedBlock.attributes\n\t);\n\tmatch.attributes = {\n\t\t...match.attributes,\n\t\t...retainedBlockAttributes,\n\t};\n};\n\n/**\n * By providing the selected blocks and pattern's blocks\n * find the matching blocks, transform them and return them.\n * If not all selected blocks are matched, return nothing.\n *\n * @param {WPBlock[]} selectedBlocks The selected blocks.\n * @param {WPBlock[]} patternBlocks The pattern's blocks.\n * @return {WPBlock[]|void} The transformed pattern's blocks or undefined if not all selected blocks have been matched.\n */\nexport const getPatternTransformedBlocks = (\n\tselectedBlocks,\n\tpatternBlocks\n) => {\n\t// Clone Pattern's blocks to produce new clientIds and be able to mutate the matches.\n\tconst _patternBlocks = patternBlocks.map( ( block ) =>\n\t\tcloneBlock( block )\n\t);\n\t/**\n\t * Keep track of the consumed pattern blocks.\n\t * This is needed because we loop the selected blocks\n\t * and for example we may have selected two paragraphs and\n\t * the pattern's blocks could have more `paragraphs`.\n\t */\n\tconst consumedBlocks = new Set();\n\tfor ( const selectedBlock of selectedBlocks ) {\n\t\tlet isMatch = false;\n\t\tfor ( const patternBlock of _patternBlocks ) {\n\t\t\tconst match = getMatchingBlockByName(\n\t\t\t\tpatternBlock,\n\t\t\t\tselectedBlock.name,\n\t\t\t\tconsumedBlocks\n\t\t\t);\n\t\t\tif ( ! match ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tisMatch = true;\n\t\t\tconsumedBlocks.add( match.clientId );\n\t\t\t// We update (mutate) the matching pattern block.\n\t\t\ttransformMatchingBlock( match, selectedBlock );\n\t\t\t// No need to loop through other pattern's blocks.\n\t\t\tbreak;\n\t\t}\n\t\t// Bail eary if a selected block has not been matched.\n\t\tif ( ! isMatch ) {\n\t\t\treturn;\n\t\t}\n\t}\n\treturn _patternBlocks;\n};\n\n/**\n * @typedef {WPBlockPattern & {transformedBlocks: WPBlock[]}} TransformedBlockPattern\n */\n\n/**\n * Custom hook that accepts patterns from state and the selected\n * blocks and tries to match these with the pattern's blocks.\n * If all selected blocks are matched with a Pattern's block,\n * we transform them by retaining block's attributes with `role:content`.\n * The transformed pattern's blocks are set to a new pattern\n * property `transformedBlocks`.\n *\n * @param {WPBlockPattern[]} patterns Patterns from state.\n * @param {WPBlock[]} selectedBlocks The currently selected blocks.\n * @return {TransformedBlockPattern[]} Returns the eligible matched patterns with all the selected blocks.\n */\nconst useTransformedPatterns = ( patterns, selectedBlocks ) => {\n\treturn useMemo(\n\t\t() =>\n\t\t\tpatterns.reduce( ( accumulator, _pattern ) => {\n\t\t\t\tconst transformedBlocks = getPatternTransformedBlocks(\n\t\t\t\t\tselectedBlocks,\n\t\t\t\t\t_pattern.blocks\n\t\t\t\t);\n\t\t\t\tif ( transformedBlocks ) {\n\t\t\t\t\taccumulator.push( {\n\t\t\t\t\t\t..._pattern,\n\t\t\t\t\t\ttransformedBlocks,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, [] ),\n\t\t[ patterns, selectedBlocks ]\n\t);\n};\n\nexport default useTransformedPatterns;\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,sBAAsB,GAAGA,CAAEC,KAAK,EAAEC,aAAa,KAAM;EACjE;EACA,MAAMC,uBAAuB,GAAG,IAAAC,iCAA0B,EACzDF,aAAa,CAACG,IAAI,EAClBH,aAAa,CAACI,UACf,CAAC;EACDL,KAAK,CAACK,UAAU,GAAG;IAClB,GAAGL,KAAK,CAACK,UAAU;IACnB,GAAGH;EACJ,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAI,OAAA,CAAAP,sBAAA,GAAAA,sBAAA;AASO,MAAMQ,2BAA2B,GAAGA,CAC1CC,cAAc,EACdC,aAAa,KACT;EACJ;EACA,MAAMC,cAAc,GAAGD,aAAa,CAACE,GAAG,CAAIC,KAAK,IAChD,IAAAC,kBAAU,EAAED,KAAM,CACnB,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;EACC,MAAME,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC;EAChC,KAAM,MAAMd,aAAa,IAAIO,cAAc,EAAG;IAC7C,IAAIQ,OAAO,GAAG,KAAK;IACnB,KAAM,MAAMC,YAAY,IAAIP,cAAc,EAAG;MAC5C,MAAMV,KAAK,GAAG,IAAAkB,6BAAsB,EACnCD,YAAY,EACZhB,aAAa,CAACG,IAAI,EAClBU,cACD,CAAC;MACD,IAAK,CAAEd,KAAK,EAAG;QACd;MACD;MACAgB,OAAO,GAAG,IAAI;MACdF,cAAc,CAACK,GAAG,CAAEnB,KAAK,CAACoB,QAAS,CAAC;MACpC;MACArB,sBAAsB,CAAEC,KAAK,EAAEC,aAAc,CAAC;MAC9C;MACA;IACD;IACA;IACA,IAAK,CAAEe,OAAO,EAAG;MAChB;IACD;EACD;EACA,OAAON,cAAc;AACtB,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXAJ,OAAA,CAAAC,2BAAA,GAAAA,2BAAA;AAYA,MAAMc,sBAAsB,GAAGA,CAAEC,QAAQ,EAAEd,cAAc,KAAM;EAC9D,OAAO,IAAAe,gBAAO,EACb,MACCD,QAAQ,CAACE,MAAM,CAAE,CAAEC,WAAW,EAAEC,QAAQ,KAAM;IAC7C,MAAMC,iBAAiB,GAAGpB,2BAA2B,CACpDC,cAAc,EACdkB,QAAQ,CAACE,MACV,CAAC;IACD,IAAKD,iBAAiB,EAAG;MACxBF,WAAW,CAACI,IAAI,CAAE;QACjB,GAAGH,QAAQ;QACXC;MACD,CAAE,CAAC;IACJ;IACA,OAAOF,WAAW;EACnB,CAAC,EAAE,EAAG,CAAC,EACR,CAAEH,QAAQ,EAAEd,cAAc,CAC3B,CAAC;AACF,CAAC;AAAC,IAAAsB,QAAA,GAAAxB,OAAA,CAAAyB,OAAA,GAEaV,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_blocks","_utils","transformMatchingBlock","match","selectedBlock","retainedBlockAttributes","getRetainedBlockAttributes","name","attributes","exports","getPatternTransformedBlocks","selectedBlocks","patternBlocks","_patternBlocks","map","block","cloneBlock","consumedBlocks","Set","isMatch","patternBlock","getMatchingBlockByName","add","clientId","useTransformedPatterns","patterns","useMemo","reduce","accumulator","_pattern","transformedBlocks","blocks","push","_default","default"],"sources":["@wordpress/block-editor/src/components/block-switcher/use-transformed-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getMatchingBlockByName, getRetainedBlockAttributes } from './utils';\n\n/**\n * Mutate the matched block's attributes by getting\n * which block type's attributes to retain and prioritize\n * them in the merging of the attributes.\n *\n * @param {WPBlock} match The matched block.\n * @param {WPBlock} selectedBlock The selected block.\n * @return {void}\n */\nexport const transformMatchingBlock = ( match, selectedBlock ) => {\n\t// Get the block attributes to retain through the transformation.\n\tconst retainedBlockAttributes = getRetainedBlockAttributes(\n\t\tselectedBlock.name,\n\t\tselectedBlock.attributes\n\t);\n\tmatch.attributes = {\n\t\t...match.attributes,\n\t\t...retainedBlockAttributes,\n\t};\n};\n\n/**\n * By providing the selected blocks and pattern's blocks\n * find the matching blocks, transform them and return them.\n * If not all selected blocks are matched, return nothing.\n *\n * @param {WPBlock[]} selectedBlocks The selected blocks.\n * @param {WPBlock[]} patternBlocks The pattern's blocks.\n * @return {WPBlock[]|void} The transformed pattern's blocks or undefined if not all selected blocks have been matched.\n */\nexport const getPatternTransformedBlocks = (\n\tselectedBlocks,\n\tpatternBlocks\n) => {\n\t// Clone Pattern's blocks to produce new clientIds and be able to mutate the matches.\n\tconst _patternBlocks = patternBlocks.map( ( block ) =>\n\t\tcloneBlock( block )\n\t);\n\t/**\n\t * Keep track of the consumed pattern blocks.\n\t * This is needed because we loop the selected blocks\n\t * and for example we may have selected two paragraphs and\n\t * the pattern's blocks could have more `paragraphs`.\n\t */\n\tconst consumedBlocks = new Set();\n\tfor ( const selectedBlock of selectedBlocks ) {\n\t\tlet isMatch = false;\n\t\tfor ( const patternBlock of _patternBlocks ) {\n\t\t\tconst match = getMatchingBlockByName(\n\t\t\t\tpatternBlock,\n\t\t\t\tselectedBlock.name,\n\t\t\t\tconsumedBlocks\n\t\t\t);\n\t\t\tif ( ! match ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tisMatch = true;\n\t\t\tconsumedBlocks.add( match.clientId );\n\t\t\t// We update (mutate) the matching pattern block.\n\t\t\ttransformMatchingBlock( match, selectedBlock );\n\t\t\t// No need to loop through other pattern's blocks.\n\t\t\tbreak;\n\t\t}\n\t\t// Bail eary if a selected block has not been matched.\n\t\tif ( ! isMatch ) {\n\t\t\treturn;\n\t\t}\n\t}\n\treturn _patternBlocks;\n};\n\n/**\n * @typedef {WPBlockPattern & {transformedBlocks: WPBlock[]}} TransformedBlockPattern\n */\n\n/**\n * Custom hook that accepts patterns from state and the selected\n * blocks and tries to match these with the pattern's blocks.\n * If all selected blocks are matched with a Pattern's block,\n * we transform them by retaining block's attributes with `role:content`.\n * The transformed pattern's blocks are set to a new pattern\n * property `transformedBlocks`.\n *\n * @param {WPBlockPattern[]} patterns Patterns from state.\n * @param {WPBlock[]} selectedBlocks The currently selected blocks.\n * @return {TransformedBlockPattern[]} Returns the eligible matched patterns with all the selected blocks.\n */\nconst useTransformedPatterns = ( patterns, selectedBlocks ) => {\n\treturn useMemo(\n\t\t() =>\n\t\t\tpatterns.reduce( ( accumulator, _pattern ) => {\n\t\t\t\tconst transformedBlocks = getPatternTransformedBlocks(\n\t\t\t\t\tselectedBlocks,\n\t\t\t\t\t_pattern.blocks\n\t\t\t\t);\n\t\t\t\tif ( transformedBlocks ) {\n\t\t\t\t\taccumulator.push( {\n\t\t\t\t\t\t..._pattern,\n\t\t\t\t\t\ttransformedBlocks,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, [] ),\n\t\t[ patterns, selectedBlocks ]\n\t);\n};\n\nexport default useTransformedPatterns;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,sBAAsB,GAAGA,CAAEC,KAAK,EAAEC,aAAa,KAAM;EACjE;EACA,MAAMC,uBAAuB,GAAG,IAAAC,iCAA0B,EACzDF,aAAa,CAACG,IAAI,EAClBH,aAAa,CAACI,UACf,CAAC;EACDL,KAAK,CAACK,UAAU,GAAG;IAClB,GAAGL,KAAK,CAACK,UAAU;IACnB,GAAGH;EACJ,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAI,OAAA,CAAAP,sBAAA,GAAAA,sBAAA;AASO,MAAMQ,2BAA2B,GAAGA,CAC1CC,cAAc,EACdC,aAAa,KACT;EACJ;EACA,MAAMC,cAAc,GAAGD,aAAa,CAACE,GAAG,CAAIC,KAAK,IAChD,IAAAC,kBAAU,EAAED,KAAM,CACnB,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;EACC,MAAME,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC;EAChC,KAAM,MAAMd,aAAa,IAAIO,cAAc,EAAG;IAC7C,IAAIQ,OAAO,GAAG,KAAK;IACnB,KAAM,MAAMC,YAAY,IAAIP,cAAc,EAAG;MAC5C,MAAMV,KAAK,GAAG,IAAAkB,6BAAsB,EACnCD,YAAY,EACZhB,aAAa,CAACG,IAAI,EAClBU,cACD,CAAC;MACD,IAAK,CAAEd,KAAK,EAAG;QACd;MACD;MACAgB,OAAO,GAAG,IAAI;MACdF,cAAc,CAACK,GAAG,CAAEnB,KAAK,CAACoB,QAAS,CAAC;MACpC;MACArB,sBAAsB,CAAEC,KAAK,EAAEC,aAAc,CAAC;MAC9C;MACA;IACD;IACA;IACA,IAAK,CAAEe,OAAO,EAAG;MAChB;IACD;EACD;EACA,OAAON,cAAc;AACtB,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXAJ,OAAA,CAAAC,2BAAA,GAAAA,2BAAA;AAYA,MAAMc,sBAAsB,GAAGA,CAAEC,QAAQ,EAAEd,cAAc,KAAM;EAC9D,OAAO,IAAAe,gBAAO,EACb,MACCD,QAAQ,CAACE,MAAM,CAAE,CAAEC,WAAW,EAAEC,QAAQ,KAAM;IAC7C,MAAMC,iBAAiB,GAAGpB,2BAA2B,CACpDC,cAAc,EACdkB,QAAQ,CAACE,MACV,CAAC;IACD,IAAKD,iBAAiB,EAAG;MACxBF,WAAW,CAACI,IAAI,CAAE;QACjB,GAAGH,QAAQ;QACXC;MACD,CAAE,CAAC;IACJ;IACA,OAAOF,WAAW;EACnB,CAAC,EAAE,EAAG,CAAC,EACR,CAAEH,QAAQ,EAAEd,cAAc,CAC3B,CAAC;AACF,CAAC;AAAC,IAAAsB,QAAA,GAAAxB,OAAA,CAAAyB,OAAA,GAEaV,sBAAsB","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  "use strict";
3
2
 
4
3
  Object.defineProperty(exports, "__esModule", {
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","getMatchingBlockByName","block","selectedBlockName","consumedBlocks","Set","clientId","name","innerBlocks","has","innerBlock","match","exports","getRetainedBlockAttributes","attributes","contentAttributes","getBlockAttributesNamesByRole","length","reduce","_accumulator","attribute"],"sources":["@wordpress/block-editor/src/components/block-switcher/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockAttributesNamesByRole } from '@wordpress/blocks';\n\n/**\n * Try to find a matching block by a block's name in a provided\n * block. We recurse through InnerBlocks and return the reference\n * of the matched block (it could be an InnerBlock).\n * If no match is found return nothing.\n *\n * @param {WPBlock} block The block to try to find a match.\n * @param {string} selectedBlockName The block's name to use for matching condition.\n * @param {Set} consumedBlocks A set holding the previously matched/consumed blocks.\n *\n * @return {WPBlock | undefined} The matched block if found or nothing(`undefined`).\n */\nexport const getMatchingBlockByName = (\n\tblock,\n\tselectedBlockName,\n\tconsumedBlocks = new Set()\n) => {\n\tconst { clientId, name, innerBlocks = [] } = block;\n\t// Check if block has been consumed already.\n\tif ( consumedBlocks.has( clientId ) ) {\n\t\treturn;\n\t}\n\tif ( name === selectedBlockName ) {\n\t\treturn block;\n\t}\n\t// Try to find a matching block from InnerBlocks recursively.\n\tfor ( const innerBlock of innerBlocks ) {\n\t\tconst match = getMatchingBlockByName(\n\t\t\tinnerBlock,\n\t\t\tselectedBlockName,\n\t\t\tconsumedBlocks\n\t\t);\n\t\tif ( match ) {\n\t\t\treturn match;\n\t\t}\n\t}\n};\n\n/**\n * Find and return the block attributes to retain through\n * the transformation, based on Block Type's `role:content`\n * attributes. If no `role:content` attributes exist,\n * return selected block's attributes.\n *\n * @param {string} name Block type's namespaced name.\n * @param {Object} attributes Selected block's attributes.\n * @return {Object} The block's attributes to retain.\n */\nexport const getRetainedBlockAttributes = ( name, attributes ) => {\n\tconst contentAttributes = getBlockAttributesNamesByRole( name, 'content' );\n\tif ( ! contentAttributes?.length ) {\n\t\treturn attributes;\n\t}\n\n\treturn contentAttributes.reduce( ( _accumulator, attribute ) => {\n\t\tif ( attributes[ attribute ] ) {\n\t\t\t_accumulator[ attribute ] = attributes[ attribute ];\n\t\t}\n\t\treturn _accumulator;\n\t}, {} );\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,sBAAsB,GAAGA,CACrCC,KAAK,EACLC,iBAAiB,EACjBC,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC,KACtB;EACJ,MAAM;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,WAAW,GAAG;EAAG,CAAC,GAAGN,KAAK;EAClD;EACA,IAAKE,cAAc,CAACK,GAAG,CAAEH,QAAS,CAAC,EAAG;IACrC;EACD;EACA,IAAKC,IAAI,KAAKJ,iBAAiB,EAAG;IACjC,OAAOD,KAAK;EACb;EACA;EACA,KAAM,MAAMQ,UAAU,IAAIF,WAAW,EAAG;IACvC,MAAMG,KAAK,GAAGV,sBAAsB,CACnCS,UAAU,EACVP,iBAAiB,EACjBC,cACD,CAAC;IACD,IAAKO,KAAK,EAAG;MACZ,OAAOA,KAAK;IACb;EACD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATAC,OAAA,CAAAX,sBAAA,GAAAA,sBAAA;AAUO,MAAMY,0BAA0B,GAAGA,CAAEN,IAAI,EAAEO,UAAU,KAAM;EACjE,MAAMC,iBAAiB,GAAG,IAAAC,qCAA6B,EAAET,IAAI,EAAE,SAAU,CAAC;EAC1E,IAAK,CAAEQ,iBAAiB,EAAEE,MAAM,EAAG;IAClC,OAAOH,UAAU;EAClB;EAEA,OAAOC,iBAAiB,CAACG,MAAM,CAAE,CAAEC,YAAY,EAAEC,SAAS,KAAM;IAC/D,IAAKN,UAAU,CAAEM,SAAS,CAAE,EAAG;MAC9BD,YAAY,CAAEC,SAAS,CAAE,GAAGN,UAAU,CAAEM,SAAS,CAAE;IACpD;IACA,OAAOD,YAAY;EACpB,CAAC,EAAE,CAAC,CAAE,CAAC;AACR,CAAC;AAACP,OAAA,CAAAC,0BAAA,GAAAA,0BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","getMatchingBlockByName","block","selectedBlockName","consumedBlocks","Set","clientId","name","innerBlocks","has","innerBlock","match","exports","getRetainedBlockAttributes","attributes","contentAttributes","getBlockAttributesNamesByRole","length","reduce","_accumulator","attribute"],"sources":["@wordpress/block-editor/src/components/block-switcher/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockAttributesNamesByRole } from '@wordpress/blocks';\n\n/**\n * Try to find a matching block by a block's name in a provided\n * block. We recurse through InnerBlocks and return the reference\n * of the matched block (it could be an InnerBlock).\n * If no match is found return nothing.\n *\n * @param {WPBlock} block The block to try to find a match.\n * @param {string} selectedBlockName The block's name to use for matching condition.\n * @param {Set} consumedBlocks A set holding the previously matched/consumed blocks.\n *\n * @return {WPBlock | undefined} The matched block if found or nothing(`undefined`).\n */\nexport const getMatchingBlockByName = (\n\tblock,\n\tselectedBlockName,\n\tconsumedBlocks = new Set()\n) => {\n\tconst { clientId, name, innerBlocks = [] } = block;\n\t// Check if block has been consumed already.\n\tif ( consumedBlocks.has( clientId ) ) {\n\t\treturn;\n\t}\n\tif ( name === selectedBlockName ) {\n\t\treturn block;\n\t}\n\t// Try to find a matching block from InnerBlocks recursively.\n\tfor ( const innerBlock of innerBlocks ) {\n\t\tconst match = getMatchingBlockByName(\n\t\t\tinnerBlock,\n\t\t\tselectedBlockName,\n\t\t\tconsumedBlocks\n\t\t);\n\t\tif ( match ) {\n\t\t\treturn match;\n\t\t}\n\t}\n};\n\n/**\n * Find and return the block attributes to retain through\n * the transformation, based on Block Type's `role:content`\n * attributes. If no `role:content` attributes exist,\n * return selected block's attributes.\n *\n * @param {string} name Block type's namespaced name.\n * @param {Object} attributes Selected block's attributes.\n * @return {Object} The block's attributes to retain.\n */\nexport const getRetainedBlockAttributes = ( name, attributes ) => {\n\tconst contentAttributes = getBlockAttributesNamesByRole( name, 'content' );\n\tif ( ! contentAttributes?.length ) {\n\t\treturn attributes;\n\t}\n\n\treturn contentAttributes.reduce( ( _accumulator, attribute ) => {\n\t\tif ( attributes[ attribute ] ) {\n\t\t\t_accumulator[ attribute ] = attributes[ attribute ];\n\t\t}\n\t\treturn _accumulator;\n\t}, {} );\n};\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,sBAAsB,GAAGA,CACrCC,KAAK,EACLC,iBAAiB,EACjBC,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC,KACtB;EACJ,MAAM;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,WAAW,GAAG;EAAG,CAAC,GAAGN,KAAK;EAClD;EACA,IAAKE,cAAc,CAACK,GAAG,CAAEH,QAAS,CAAC,EAAG;IACrC;EACD;EACA,IAAKC,IAAI,KAAKJ,iBAAiB,EAAG;IACjC,OAAOD,KAAK;EACb;EACA;EACA,KAAM,MAAMQ,UAAU,IAAIF,WAAW,EAAG;IACvC,MAAMG,KAAK,GAAGV,sBAAsB,CACnCS,UAAU,EACVP,iBAAiB,EACjBC,cACD,CAAC;IACD,IAAKO,KAAK,EAAG;MACZ,OAAOA,KAAK;IACb;EACD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATAC,OAAA,CAAAX,sBAAA,GAAAA,sBAAA;AAUO,MAAMY,0BAA0B,GAAGA,CAAEN,IAAI,EAAEO,UAAU,KAAM;EACjE,MAAMC,iBAAiB,GAAG,IAAAC,qCAA6B,EAAET,IAAI,EAAE,SAAU,CAAC;EAC1E,IAAK,CAAEQ,iBAAiB,EAAEE,MAAM,EAAG;IAClC,OAAOH,UAAU;EAClB;EAEA,OAAOC,iBAAiB,CAACG,MAAM,CAAE,CAAEC,YAAY,EAAEC,SAAS,KAAM;IAC/D,IAAKN,UAAU,CAAEM,SAAS,CAAE,EAAG;MAC9BD,YAAY,CAAEC,SAAS,CAAE,GAAGN,UAAU,CAAEM,SAAS,CAAE;IACpD;IACA,OAAOD,YAAY;EACpB,CAAC,EAAE,CAAC,CAAE,CAAC;AACR,CAAC;AAACP,OAAA,CAAAC,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -77,7 +77,9 @@ function PrivateBlockToolbar({
77
77
  showSlots,
78
78
  showGroupButtons,
79
79
  showLockButtons,
80
- showSwitchSectionStyleButton
80
+ showSwitchSectionStyleButton,
81
+ hasFixedToolbar,
82
+ isNavigationMode
81
83
  } = (0, _data.useSelect)(select => {
82
84
  const {
83
85
  getBlockName,
@@ -89,8 +91,10 @@ function PrivateBlockToolbar({
89
91
  getBlockAttributes,
90
92
  getBlockParentsByBlockName,
91
93
  getTemplateLock,
94
+ getSettings,
92
95
  getParentSectionBlock,
93
- isZoomOut
96
+ isZoomOut,
97
+ isNavigationMode: _isNavigationMode
94
98
  } = (0, _lockUnlock.unlock)(select(_store.store));
95
99
  const selectedBlockClientIds = getSelectedBlockClientIds();
96
100
  const selectedBlockClientId = selectedBlockClientIds[0];
@@ -109,6 +113,7 @@ function PrivateBlockToolbar({
109
113
 
110
114
  // If one or more selected blocks are locked, do not show the BlockGroupToolbar.
111
115
  const _hasTemplateLock = selectedBlockClientIds.some(id => getTemplateLock(id) === 'contentOnly');
116
+ const _isZoomOut = isZoomOut();
112
117
  return {
113
118
  blockClientId: selectedBlockClientId,
114
119
  blockClientIds: selectedBlockClientIds,
@@ -116,15 +121,17 @@ function PrivateBlockToolbar({
116
121
  blockType: selectedBlockClientId && (0, _blocks.getBlockType)(_blockName),
117
122
  shouldShowVisualToolbar: isValid && isVisual,
118
123
  toolbarKey: `${selectedBlockClientId}${parentClientId}`,
119
- showParentSelector: !isZoomOut() && parentBlockType && getBlockEditingMode(parentClientId) !== 'disabled' && (0, _blocks.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length === 1,
124
+ showParentSelector: !_isZoomOut && parentBlockType && getBlockEditingMode(parentClientId) !== 'disabled' && (0, _blocks.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length === 1,
120
125
  isUsingBindings: _isUsingBindings,
121
126
  hasParentPattern: _hasParentPattern,
122
127
  hasContentOnlyLocking: _hasTemplateLock,
123
- showShuffleButton: isZoomOut(),
124
- showSlots: !isZoomOut(),
125
- showGroupButtons: !isZoomOut(),
126
- showLockButtons: !isZoomOut(),
127
- showSwitchSectionStyleButton: isZoomOut()
128
+ showShuffleButton: _isZoomOut,
129
+ showSlots: !_isZoomOut,
130
+ showGroupButtons: !_isZoomOut,
131
+ showLockButtons: !_isZoomOut,
132
+ showSwitchSectionStyleButton: _isZoomOut,
133
+ hasFixedToolbar: getSettings().hasFixedToolbar,
134
+ isNavigationMode: _isNavigationMode()
128
135
  };
129
136
  }, []);
130
137
  const toolbarWrapperRef = (0, _element.useRef)(null);
@@ -145,7 +152,8 @@ function PrivateBlockToolbar({
145
152
 
146
153
  // Shifts the toolbar to make room for the parent block selector.
147
154
  const classes = (0, _clsx.default)('block-editor-block-contextual-toolbar', {
148
- 'has-parent': showParentSelector
155
+ 'has-parent': showParentSelector,
156
+ 'is-inverted-toolbar': isNavigationMode && !hasFixedToolbar
149
157
  });
150
158
  const innerClasses = (0, _clsx.default)('block-editor-block-toolbar', {
151
159
  'is-synced': isSynced,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_data","_element","_compose","_blocks","_components","_blockMover","_blockParentSelector","_blockSwitcher","_blockControls","_blockToolbarLastItem","_blockSettingsMenu","_blockLock","_convertToGroupButtons","_blockEditVisuallyButton","_utils","_store","_blockNameContext","_navigableToolbar","_useHasBlockToolbar","_changeDesign","_switchSectionStyle","_lockUnlock","_jsxRuntime","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","toolbarKey","shouldShowVisualToolbar","showParentSelector","isUsingBindings","hasParentPattern","hasContentOnlyLocking","showShuffleButton","showSlots","showGroupButtons","showLockButtons","showSwitchSectionStyleButton","useSelect","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockEditingMode","getBlockAttributes","getBlockParentsByBlockName","getTemplateLock","getParentSectionBlock","isZoomOut","unlock","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","parents","parentSection","parentClientId","length","parentBlockName","parentBlockType","getBlockType","editingMode","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","clientId","metadata","bindings","_hasParentPattern","_hasTemplateLock","some","hasBlockSupport","toolbarWrapperRef","useRef","nodeRef","showHoveredOrFocusedGestures","useShowHoveredOrFocusedGestures","ref","isLargeViewport","useViewportMatch","hasBlockToolbar","useHasBlockToolbar","isMultiToolbar","isSynced","isReusableBlock","isTemplatePart","classes","clsx","innerClasses","jsx","default","focusEditorOnEscape","className","__","undefined","children","jsxs","ToolbarGroup","clientIds","BlockLockToolbar","BlockGroupToolbar","Fragment","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { useHasBlockToolbar } from './use-has-block-toolbar';\nimport ChangeDesign from './change-design';\nimport SwitchSectionStyle from './switch-section-style';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\ttoolbarKey,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t\thasParentPattern,\n\t\thasContentOnlyLocking,\n\t\tshowShuffleButton,\n\t\tshowSlots,\n\t\tshowGroupButtons,\n\t\tshowLockButtons,\n\t\tshowSwitchSectionStyleButton,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t\tgetBlockParentsByBlockName,\n\t\t\tgetTemplateLock,\n\t\t\tgetParentSectionBlock,\n\t\t\tisZoomOut,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst parentSection = getParentSectionBlock( selectedBlockClientId );\n\t\tconst parentClientId = parentSection ?? parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( parentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst editingMode = getBlockEditingMode( selectedBlockClientId );\n\t\tconst _isDefaultEditingMode = editingMode === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\t!! getBlockAttributes( clientId )?.metadata?.bindings\n\t\t);\n\n\t\tconst _hasParentPattern = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block', true )\n\t\t\t\t\t.length > 0\n\t\t);\n\n\t\t// If one or more selected blocks are locked, do not show the BlockGroupToolbar.\n\t\tconst _hasTemplateLock = selectedBlockClientIds.some(\n\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t);\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\ttoolbarKey: `${ selectedBlockClientId }${ parentClientId }`,\n\t\t\tshowParentSelector:\n\t\t\t\t! isZoomOut() &&\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( parentClientId ) !== 'disabled' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length === 1,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t\thasParentPattern: _hasParentPattern,\n\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\tshowShuffleButton: isZoomOut(),\n\t\t\tshowSlots: ! isZoomOut(),\n\t\t\tshowGroupButtons: ! isZoomOut(),\n\t\t\tshowLockButtons: ! isZoomOut(),\n\t\t\tshowSwitchSectionStyleButton: isZoomOut(),\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst hasBlockToolbar = useHasBlockToolbar();\n\tif ( ! hasBlockToolbar ) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = clsx( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t} );\n\n\tconst innerClasses = clsx( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t\t'is-connected': isUsingBindings,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ toolbarKey }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ showParentSelector && ! isMultiToolbar && isLargeViewport && (\n\t\t\t\t\t<BlockParentSelector />\n\t\t\t\t) }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\t! hasParentPattern && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher clientIds={ blockClientIds } />\n\t\t\t\t\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\t\t\t\t\tisDefaultEditingMode &&\n\t\t\t\t\t\t\t\t\tshowLockButtons && (\n\t\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t{ ! hasContentOnlyLocking &&\n\t\t\t\t\tshouldShowVisualToolbar &&\n\t\t\t\t\tisMultiToolbar &&\n\t\t\t\t\tshowGroupButtons && <BlockGroupToolbar /> }\n\t\t\t\t{ showShuffleButton && (\n\t\t\t\t\t<ChangeDesign clientId={ blockClientIds[ 0 ] } />\n\t\t\t\t) }\n\t\t\t\t{ showSwitchSectionStyleButton && (\n\t\t\t\t\t<SwitchSectionStyle clientId={ blockClientIds[ 0 ] } />\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && showSlots && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_data","_element","_compose","_blocks","_components","_blockMover","_blockParentSelector","_blockSwitcher","_blockControls","_blockToolbarLastItem","_blockSettingsMenu","_blockLock","_convertToGroupButtons","_blockEditVisuallyButton","_utils","_store","_blockNameContext","_navigableToolbar","_useHasBlockToolbar","_changeDesign","_switchSectionStyle","_lockUnlock","_jsxRuntime","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","toolbarKey","shouldShowVisualToolbar","showParentSelector","isUsingBindings","hasParentPattern","hasContentOnlyLocking","showShuffleButton","showSlots","showGroupButtons","showLockButtons","showSwitchSectionStyleButton","hasFixedToolbar","isNavigationMode","useSelect","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockEditingMode","getBlockAttributes","getBlockParentsByBlockName","getTemplateLock","getSettings","getParentSectionBlock","isZoomOut","_isNavigationMode","unlock","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","parents","parentSection","parentClientId","length","parentBlockName","parentBlockType","getBlockType","editingMode","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","clientId","metadata","bindings","_hasParentPattern","_hasTemplateLock","some","_isZoomOut","hasBlockSupport","toolbarWrapperRef","useRef","nodeRef","showHoveredOrFocusedGestures","useShowHoveredOrFocusedGestures","ref","isLargeViewport","useViewportMatch","hasBlockToolbar","useHasBlockToolbar","isMultiToolbar","isSynced","isReusableBlock","isTemplatePart","classes","clsx","innerClasses","jsx","default","focusEditorOnEscape","className","__","undefined","children","jsxs","ToolbarGroup","clientIds","BlockLockToolbar","BlockGroupToolbar","Fragment","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { useHasBlockToolbar } from './use-has-block-toolbar';\nimport ChangeDesign from './change-design';\nimport SwitchSectionStyle from './switch-section-style';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\ttoolbarKey,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t\thasParentPattern,\n\t\thasContentOnlyLocking,\n\t\tshowShuffleButton,\n\t\tshowSlots,\n\t\tshowGroupButtons,\n\t\tshowLockButtons,\n\t\tshowSwitchSectionStyleButton,\n\t\thasFixedToolbar,\n\t\tisNavigationMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t\tgetBlockParentsByBlockName,\n\t\t\tgetTemplateLock,\n\t\t\tgetSettings,\n\t\t\tgetParentSectionBlock,\n\t\t\tisZoomOut,\n\t\t\tisNavigationMode: _isNavigationMode,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst parentSection = getParentSectionBlock( selectedBlockClientId );\n\t\tconst parentClientId = parentSection ?? parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( parentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst editingMode = getBlockEditingMode( selectedBlockClientId );\n\t\tconst _isDefaultEditingMode = editingMode === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\t!! getBlockAttributes( clientId )?.metadata?.bindings\n\t\t);\n\n\t\tconst _hasParentPattern = selectedBlockClientIds.every(\n\t\t\t( clientId ) =>\n\t\t\t\tgetBlockParentsByBlockName( clientId, 'core/block', true )\n\t\t\t\t\t.length > 0\n\t\t);\n\n\t\t// If one or more selected blocks are locked, do not show the BlockGroupToolbar.\n\t\tconst _hasTemplateLock = selectedBlockClientIds.some(\n\t\t\t( id ) => getTemplateLock( id ) === 'contentOnly'\n\t\t);\n\n\t\tconst _isZoomOut = isZoomOut();\n\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\ttoolbarKey: `${ selectedBlockClientId }${ parentClientId }`,\n\t\t\tshowParentSelector:\n\t\t\t\t! _isZoomOut &&\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( parentClientId ) !== 'disabled' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length === 1,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t\thasParentPattern: _hasParentPattern,\n\t\t\thasContentOnlyLocking: _hasTemplateLock,\n\t\t\tshowShuffleButton: _isZoomOut,\n\t\t\tshowSlots: ! _isZoomOut,\n\t\t\tshowGroupButtons: ! _isZoomOut,\n\t\t\tshowLockButtons: ! _isZoomOut,\n\t\t\tshowSwitchSectionStyleButton: _isZoomOut,\n\t\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\t\tisNavigationMode: _isNavigationMode(),\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst hasBlockToolbar = useHasBlockToolbar();\n\tif ( ! hasBlockToolbar ) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = clsx( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t\t'is-inverted-toolbar': isNavigationMode && ! hasFixedToolbar,\n\t} );\n\n\tconst innerClasses = clsx( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t\t'is-connected': isUsingBindings,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ toolbarKey }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ showParentSelector && ! isMultiToolbar && isLargeViewport && (\n\t\t\t\t\t<BlockParentSelector />\n\t\t\t\t) }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\t! hasParentPattern && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher clientIds={ blockClientIds } />\n\t\t\t\t\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\t\t\t\t\tisDefaultEditingMode &&\n\t\t\t\t\t\t\t\t\tshowLockButtons && (\n\t\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t{ ! hasContentOnlyLocking &&\n\t\t\t\t\tshouldShowVisualToolbar &&\n\t\t\t\t\tisMultiToolbar &&\n\t\t\t\t\tshowGroupButtons && <BlockGroupToolbar /> }\n\t\t\t\t{ showShuffleButton && (\n\t\t\t\t\t<ChangeDesign clientId={ blockClientIds[ 0 ] } />\n\t\t\t\t) }\n\t\t\t\t{ showSwitchSectionStyleButton && (\n\t\t\t\t\t<SwitchSectionStyle clientId={ blockClientIds[ 0 ] } />\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && showSlots && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  "use strict";
3
2
 
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");