@wordpress/block-library 8.25.0 → 8.25.1-next.79a6196f.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 (250) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/audio/edit.js +10 -12
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/block/edit.js +81 -34
  5. package/build/block/edit.js.map +1 -1
  6. package/build/comments-title/deprecated.js +1 -1
  7. package/build/comments-title/index.js +1 -1
  8. package/build/cover/edit/inspector-controls.js +1 -1
  9. package/build/cover/edit/inspector-controls.js.map +1 -1
  10. package/build/cover/edit.native.js +1 -0
  11. package/build/cover/edit.native.js.map +1 -1
  12. package/build/embed/util.js +4 -4
  13. package/build/embed/util.js.map +1 -1
  14. package/build/file/edit.js +19 -27
  15. package/build/file/edit.js.map +1 -1
  16. package/build/gallery/edit.js +36 -17
  17. package/build/gallery/edit.js.map +1 -1
  18. package/build/gallery/gallery.js +3 -2
  19. package/build/gallery/gallery.js.map +1 -1
  20. package/build/gallery/index.js +4 -0
  21. package/build/gallery/index.js.map +1 -1
  22. package/build/gallery/transforms.js +4 -68
  23. package/build/gallery/transforms.js.map +1 -1
  24. package/build/group/index.js +5 -1
  25. package/build/group/index.js.map +1 -1
  26. package/build/image/deprecated.js +11 -0
  27. package/build/image/deprecated.js.map +1 -1
  28. package/build/image/edit.native.js +3 -0
  29. package/build/image/edit.native.js.map +1 -1
  30. package/build/image/image.js +22 -21
  31. package/build/image/image.js.map +1 -1
  32. package/build/image/view.js +7 -1
  33. package/build/image/view.js.map +1 -1
  34. package/build/list/edit.js +10 -15
  35. package/build/list/edit.js.map +1 -1
  36. package/build/list-item/edit.js +17 -2
  37. package/build/list-item/edit.js.map +1 -1
  38. package/build/list-item/hooks/use-enter.js +5 -3
  39. package/build/list-item/hooks/use-enter.js.map +1 -1
  40. package/build/list-item/hooks/use-enter.native.js +4 -3
  41. package/build/list-item/hooks/use-enter.native.js.map +1 -1
  42. package/build/list-item/hooks/use-indent-list-item.js +2 -3
  43. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  44. package/build/list-item/hooks/use-merge.js +1 -1
  45. package/build/list-item/hooks/use-merge.js.map +1 -1
  46. package/build/list-item/hooks/use-outdent-list-item.js +3 -17
  47. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  48. package/build/list-item/hooks/use-space.js +8 -4
  49. package/build/list-item/hooks/use-space.js.map +1 -1
  50. package/build/media-text/media-container.native.js +3 -0
  51. package/build/media-text/media-container.native.js.map +1 -1
  52. package/build/navigation/constants.js +3 -1
  53. package/build/navigation/constants.js.map +1 -1
  54. package/build/navigation/edit/index.js +4 -0
  55. package/build/navigation/edit/index.js.map +1 -1
  56. package/build/navigation/view.js +25 -1
  57. package/build/navigation/view.js.map +1 -1
  58. package/build/paragraph/index.js +0 -1
  59. package/build/paragraph/index.js.map +1 -1
  60. package/build/paragraph/transforms.js +0 -1
  61. package/build/paragraph/transforms.js.map +1 -1
  62. package/build/pattern/edit.js +24 -2
  63. package/build/pattern/edit.js.map +1 -1
  64. package/build/pattern/recursion-detector.js +147 -0
  65. package/build/pattern/recursion-detector.js.map +1 -0
  66. package/build/post-featured-image/edit.js +19 -2
  67. package/build/post-featured-image/edit.js.map +1 -1
  68. package/build/post-featured-image/index.js +4 -0
  69. package/build/post-featured-image/index.js.map +1 -1
  70. package/build/query/edit/inspector-controls/index.js +3 -1
  71. package/build/query/edit/inspector-controls/index.js.map +1 -1
  72. package/build/query-pagination-numbers/index.js +1 -1
  73. package/build/search/edit.js +3 -5
  74. package/build/search/edit.js.map +1 -1
  75. package/build/search/index.js +0 -4
  76. package/build/search/index.js.map +1 -1
  77. package/build/site-logo/edit.js +7 -6
  78. package/build/site-logo/edit.js.map +1 -1
  79. package/build/spacer/edit.native.js +2 -2
  80. package/build/spacer/edit.native.js.map +1 -1
  81. package/build/tag-cloud/edit.js +5 -9
  82. package/build/tag-cloud/edit.js.map +1 -1
  83. package/build/utils/constants.js +16 -0
  84. package/build/utils/constants.js.map +1 -0
  85. package/build/video/edit.js +11 -8
  86. package/build/video/edit.js.map +1 -1
  87. package/build-module/audio/edit.js +10 -12
  88. package/build-module/audio/edit.js.map +1 -1
  89. package/build-module/block/edit.js +85 -38
  90. package/build-module/block/edit.js.map +1 -1
  91. package/build-module/comments-title/deprecated.js +1 -1
  92. package/build-module/comments-title/index.js +1 -1
  93. package/build-module/cover/edit/inspector-controls.js +1 -1
  94. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  95. package/build-module/cover/edit.native.js +1 -0
  96. package/build-module/cover/edit.native.js.map +1 -1
  97. package/build-module/embed/util.js +4 -4
  98. package/build-module/embed/util.js.map +1 -1
  99. package/build-module/file/edit.js +19 -27
  100. package/build-module/file/edit.js.map +1 -1
  101. package/build-module/gallery/edit.js +36 -17
  102. package/build-module/gallery/edit.js.map +1 -1
  103. package/build-module/gallery/gallery.js +3 -2
  104. package/build-module/gallery/gallery.js.map +1 -1
  105. package/build-module/gallery/index.js +4 -0
  106. package/build-module/gallery/index.js.map +1 -1
  107. package/build-module/gallery/transforms.js +4 -68
  108. package/build-module/gallery/transforms.js.map +1 -1
  109. package/build-module/group/index.js +5 -1
  110. package/build-module/group/index.js.map +1 -1
  111. package/build-module/image/deprecated.js +11 -0
  112. package/build-module/image/deprecated.js.map +1 -1
  113. package/build-module/image/edit.native.js +3 -0
  114. package/build-module/image/edit.native.js.map +1 -1
  115. package/build-module/image/image.js +17 -16
  116. package/build-module/image/image.js.map +1 -1
  117. package/build-module/image/view.js +7 -1
  118. package/build-module/image/view.js.map +1 -1
  119. package/build-module/list/edit.js +10 -15
  120. package/build-module/list/edit.js.map +1 -1
  121. package/build-module/list-item/edit.js +18 -3
  122. package/build-module/list-item/edit.js.map +1 -1
  123. package/build-module/list-item/hooks/use-enter.js +5 -3
  124. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  125. package/build-module/list-item/hooks/use-enter.native.js +4 -3
  126. package/build-module/list-item/hooks/use-enter.native.js.map +1 -1
  127. package/build-module/list-item/hooks/use-indent-list-item.js +2 -3
  128. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  129. package/build-module/list-item/hooks/use-merge.js +1 -1
  130. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  131. package/build-module/list-item/hooks/use-outdent-list-item.js +3 -17
  132. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  133. package/build-module/list-item/hooks/use-space.js +8 -4
  134. package/build-module/list-item/hooks/use-space.js.map +1 -1
  135. package/build-module/media-text/media-container.native.js +3 -0
  136. package/build-module/media-text/media-container.native.js.map +1 -1
  137. package/build-module/navigation/constants.js +1 -0
  138. package/build-module/navigation/constants.js.map +1 -1
  139. package/build-module/navigation/edit/index.js +5 -1
  140. package/build-module/navigation/edit/index.js.map +1 -1
  141. package/build-module/navigation/view.js +25 -1
  142. package/build-module/navigation/view.js.map +1 -1
  143. package/build-module/paragraph/index.js +0 -1
  144. package/build-module/paragraph/index.js.map +1 -1
  145. package/build-module/paragraph/transforms.js +0 -1
  146. package/build-module/paragraph/transforms.js.map +1 -1
  147. package/build-module/pattern/edit.js +26 -4
  148. package/build-module/pattern/edit.js.map +1 -1
  149. package/build-module/pattern/recursion-detector.js +139 -0
  150. package/build-module/pattern/recursion-detector.js.map +1 -0
  151. package/build-module/post-featured-image/edit.js +19 -2
  152. package/build-module/post-featured-image/edit.js.map +1 -1
  153. package/build-module/post-featured-image/index.js +4 -0
  154. package/build-module/post-featured-image/index.js.map +1 -1
  155. package/build-module/query/edit/inspector-controls/index.js +3 -1
  156. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  157. package/build-module/query-pagination-numbers/index.js +1 -1
  158. package/build-module/search/edit.js +3 -5
  159. package/build-module/search/edit.js.map +1 -1
  160. package/build-module/search/index.js +0 -4
  161. package/build-module/search/index.js.map +1 -1
  162. package/build-module/site-logo/edit.js +7 -6
  163. package/build-module/site-logo/edit.js.map +1 -1
  164. package/build-module/spacer/edit.native.js +2 -2
  165. package/build-module/spacer/edit.native.js.map +1 -1
  166. package/build-module/tag-cloud/edit.js +6 -10
  167. package/build-module/tag-cloud/edit.js.map +1 -1
  168. package/build-module/utils/constants.js +9 -0
  169. package/build-module/utils/constants.js.map +1 -0
  170. package/build-module/video/edit.js +11 -8
  171. package/build-module/video/edit.js.map +1 -1
  172. package/build-style/button/editor-rtl.css +0 -37
  173. package/build-style/button/editor.css +0 -37
  174. package/build-style/button/style-rtl.css +6 -6
  175. package/build-style/button/style.css +6 -6
  176. package/build-style/editor-rtl.css +2 -44
  177. package/build-style/editor.css +2 -44
  178. package/build-style/navigation/editor-rtl.css +2 -4
  179. package/build-style/navigation/editor.css +2 -4
  180. package/build-style/navigation/style-rtl.css +14 -18
  181. package/build-style/navigation/style.css +14 -18
  182. package/build-style/search/style-rtl.css +26 -27
  183. package/build-style/search/style.css +26 -27
  184. package/build-style/style-rtl.css +46 -51
  185. package/build-style/style.css +46 -51
  186. package/build-style/table/editor-rtl.css +0 -3
  187. package/build-style/table/editor.css +0 -3
  188. package/package.json +32 -32
  189. package/src/audio/edit.js +19 -19
  190. package/src/audio/test/__snapshots__/edit.native.js.snap +12 -0
  191. package/src/audio/test/edit.native.js +29 -0
  192. package/src/block/edit.js +120 -66
  193. package/src/button/editor.scss +0 -43
  194. package/src/button/style.scss +6 -6
  195. package/src/buttons/test/__snapshots__/edit.native.js.snap +6 -0
  196. package/src/buttons/test/edit.native.js +49 -0
  197. package/src/comments-title/block.json +1 -1
  198. package/src/cover/edit/inspector-controls.js +1 -1
  199. package/src/cover/edit.native.js +1 -0
  200. package/src/embed/util.js +2 -2
  201. package/src/file/edit.js +17 -24
  202. package/src/gallery/block.json +4 -0
  203. package/src/gallery/edit.js +69 -42
  204. package/src/gallery/gallery.js +4 -1
  205. package/src/gallery/index.php +15 -0
  206. package/src/gallery/transforms.js +2 -55
  207. package/src/group/block.json +5 -1
  208. package/src/image/deprecated.js +8 -0
  209. package/src/image/edit.native.js +3 -0
  210. package/src/image/image.js +54 -35
  211. package/src/image/index.php +1 -6
  212. package/src/image/view.js +5 -2
  213. package/src/list/edit.js +27 -35
  214. package/src/list-item/edit.js +18 -2
  215. package/src/list-item/hooks/use-enter.js +63 -62
  216. package/src/list-item/hooks/use-enter.native.js +9 -5
  217. package/src/list-item/hooks/use-indent-list-item.js +43 -53
  218. package/src/list-item/hooks/use-merge.js +1 -1
  219. package/src/list-item/hooks/use-outdent-list-item.js +50 -69
  220. package/src/list-item/hooks/use-space.js +7 -4
  221. package/src/media-text/media-container.native.js +3 -1
  222. package/src/navigation/constants.js +2 -0
  223. package/src/navigation/edit/index.js +11 -1
  224. package/src/navigation/editor.scss +1 -1
  225. package/src/navigation/style.scss +18 -16
  226. package/src/navigation/view.js +29 -3
  227. package/src/paragraph/block.json +0 -1
  228. package/src/paragraph/test/__snapshots__/edit.native.js.snap +12 -0
  229. package/src/paragraph/test/edit.native.js +114 -0
  230. package/src/pattern/edit.js +35 -3
  231. package/src/pattern/index.php +16 -0
  232. package/src/pattern/recursion-detector.js +145 -0
  233. package/src/pattern/test/index.js +74 -0
  234. package/src/post-featured-image/block.json +4 -0
  235. package/src/post-featured-image/edit.js +32 -1
  236. package/src/post-featured-image/index.php +31 -0
  237. package/src/query/edit/inspector-controls/index.js +2 -0
  238. package/src/query-pagination-numbers/block.json +1 -1
  239. package/src/search/block.json +0 -4
  240. package/src/search/edit.js +2 -8
  241. package/src/search/index.php +3 -7
  242. package/src/search/style.scss +27 -29
  243. package/src/site-logo/edit.js +3 -4
  244. package/src/social-link/index.php +1 -1
  245. package/src/spacer/edit.native.js +4 -2
  246. package/src/table/editor.scss +0 -3
  247. package/src/tag-cloud/edit.js +7 -7
  248. package/src/template-part/index.php +6 -0
  249. package/src/utils/constants.js +8 -0
  250. package/src/video/edit.js +29 -27
@@ -1 +1 @@
1
- {"version":3,"names":["_blockEditor","require","_components","_data","_i18n","_icons","_blocks","_element","_deprecated","_interopRequireDefault","_orderedListSettings","_utils","_tagName","TEMPLATE","NATIVE_MARGIN_SPACING","useMigrateOnLoad","attributes","clientId","registry","useRegistry","updateBlockAttributes","replaceInnerBlocks","useDispatch","blockEditorStore","useEffect","values","newAttributes","newInnerBlocks","migrateToListV2","deprecated","since","version","alternative","batch","useOutdentList","canOutdent","useSelect","innerSelect","getBlockRootClientId","getBlock","parentId","name","replaceBlocks","selectionChange","getBlockAttributes","useCallback","parentBlockId","parentBlockAttributes","newParentBlock","createBlock","innerBlocks","length","IndentUI","outdentList","_react","createElement","Fragment","ToolbarButton","icon","isRTL","formatOutdentRTL","formatOutdent","title","__","describedBy","disabled","onClick","Edit","setAttributes","style","ordered","type","reversed","start","blockProps","useBlockProps","Platform","isNative","listStyleType","undefined","innerBlocksProps","useInnerBlocksProps","allowedBlocks","template","templateLock","templateInsertUpdatesSelection","marginVertical","marginHorizontal","renderAppender","__experimentalCaptureToolbars","controls","BlockControls","group","formatListBulletsRTL","formatListBullets","isActive","formatListNumberedRTL","formatListNumbered","default"],"sources":["@wordpress/block-library/src/list/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n\tformatOutdent,\n\tformatOutdentRTL,\n} from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useCallback, useEffect, Platform } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport OrderedListSettings from './ordered-list-settings';\nimport { migrateToListV2 } from './utils';\nimport TagName from './tag-name';\n\nconst TEMPLATE = [ [ 'core/list-item' ] ];\nconst NATIVE_MARGIN_SPACING = 8;\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old list block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nfunction useMigrateOnLoad( attributes, clientId ) {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.values ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] = migrateToListV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the list block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.values ] );\n}\n\nfunction useOutdentList( clientId ) {\n\tconst { canOutdent } = useSelect(\n\t\t( innerSelect ) => {\n\t\t\tconst { getBlockRootClientId, getBlock } =\n\t\t\t\tinnerSelect( blockEditorStore );\n\t\t\tconst parentId = getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tcanOutdent:\n\t\t\t\t\t!! parentId &&\n\t\t\t\t\tgetBlock( parentId ).name === 'core/list-item',\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockAttributes, getBlock } =\n\t\tuseSelect( blockEditorStore );\n\n\treturn [\n\t\tcanOutdent,\n\t\tuseCallback( () => {\n\t\t\tconst parentBlockId = getBlockRootClientId( clientId );\n\t\t\tconst parentBlockAttributes = getBlockAttributes( parentBlockId );\n\t\t\t// Create a new parent block without the inner blocks.\n\t\t\tconst newParentBlock = createBlock(\n\t\t\t\t'core/list-item',\n\t\t\t\tparentBlockAttributes\n\t\t\t);\n\t\t\tconst { innerBlocks } = getBlock( clientId );\n\t\t\t// Replace the parent block with a new parent block without inner blocks,\n\t\t\t// and make the inner blocks siblings of the parent.\n\t\t\treplaceBlocks(\n\t\t\t\t[ parentBlockId ],\n\t\t\t\t[ newParentBlock, ...innerBlocks ]\n\t\t\t);\n\t\t\t// Select the last child of the list being outdent.\n\t\t\tselectionChange( innerBlocks[ innerBlocks.length - 1 ].clientId );\n\t\t}, [ clientId ] ),\n\t];\n}\n\nfunction IndentUI( { clientId } ) {\n\tconst [ canOutdent, outdentList ] = useOutdentList( clientId );\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescribedBy={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ outdentList }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Edit( { attributes, setAttributes, clientId, style } ) {\n\tconst { ordered, type, reversed, start } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tstyle: {\n\t\t\t...( Platform.isNative && style ),\n\t\t\tlistStyleType: ordered && type !== 'decimal' ? type : undefined,\n\t\t},\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list-item' ],\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: false,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t...( Platform.isNative && {\n\t\t\tmarginVertical: NATIVE_MARGIN_SPACING,\n\t\t\tmarginHorizontal: NATIVE_MARGIN_SPACING,\n\t\t\trenderAppender: false,\n\t\t} ),\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst controls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\tdescribedBy={ __( 'Convert to unordered list' ) }\n\t\t\t\tisActive={ ordered === false }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: false } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListNumberedRTL : formatListNumbered }\n\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\tdescribedBy={ __( 'Convert to ordered list' ) }\n\t\t\t\tisActive={ ordered === true }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: true } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<IndentUI clientId={ clientId } />\n\t\t</BlockControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TagName\n\t\t\t\tordered={ ordered }\n\t\t\t\treversed={ reversed }\n\t\t\t\tstart={ start }\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t/>\n\t\t\t{ controls }\n\t\t\t{ ordered && (\n\t\t\t\t<OrderedListSettings\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\treversed,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAMA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAQA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAC,sBAAA,CAAAR,OAAA;AAKA,IAAAS,oBAAA,GAAAD,sBAAA,CAAAR,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAH,sBAAA,CAAAR,OAAA;AA7BA;AACA;AACA;;AAsBA;AACA;AACA;;AAKA,MAAMY,QAAQ,GAAG,CAAE,CAAE,gBAAgB,CAAE,CAAE;AACzC,MAAMC,qBAAqB,GAAG,CAAC;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAAEC,UAAU,EAAEC,QAAQ,EAAG;EACjD,MAAMC,QAAQ,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAC9B,MAAM;IAAEC,qBAAqB;IAAEC;EAAmB,CAAC,GAClD,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAEhC,IAAAC,kBAAS,EAAE,MAAM;IAChB;;IAEA,IAAK,CAAER,UAAU,CAACS,MAAM,EAAG;MAC1B;IACD;IAEA,MAAM,CAAEC,aAAa,EAAEC,cAAc,CAAE,GAAG,IAAAC,sBAAe,EAAEZ,UAAW,CAAC;IAEvE,IAAAa,mBAAU,EAAE,mCAAmC,EAAE;MAChDC,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,WAAW,EAAE;IACd,CAAE,CAAC;IAEHd,QAAQ,CAACe,KAAK,CAAE,MAAM;MACrBb,qBAAqB,CAAEH,QAAQ,EAAES,aAAc,CAAC;MAChDL,kBAAkB,CAAEJ,QAAQ,EAAEU,cAAe,CAAC;IAC/C,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEX,UAAU,CAACS,MAAM,CAAG,CAAC;AAC3B;AAEA,SAASS,cAAcA,CAAEjB,QAAQ,EAAG;EACnC,MAAM;IAAEkB;EAAW,CAAC,GAAG,IAAAC,eAAS,EAC7BC,WAAW,IAAM;IAClB,MAAM;MAAEC,oBAAoB;MAAEC;IAAS,CAAC,GACvCF,WAAW,CAAEd,kBAAiB,CAAC;IAChC,MAAMiB,QAAQ,GAAGF,oBAAoB,CAAErB,QAAS,CAAC;IACjD,OAAO;MACNkB,UAAU,EACT,CAAC,CAAEK,QAAQ,IACXD,QAAQ,CAAEC,QAAS,CAAC,CAACC,IAAI,KAAK;IAChC,CAAC;EACF,CAAC,EACD,CAAExB,QAAQ,CACX,CAAC;EACD,MAAM;IAAEyB,aAAa;IAAEC;EAAgB,CAAC,GAAG,IAAArB,iBAAW,EAAEC,kBAAiB,CAAC;EAC1E,MAAM;IAAEe,oBAAoB;IAAEM,kBAAkB;IAAEL;EAAS,CAAC,GAC3D,IAAAH,eAAS,EAAEb,kBAAiB,CAAC;EAE9B,OAAO,CACNY,UAAU,EACV,IAAAU,oBAAW,EAAE,MAAM;IAClB,MAAMC,aAAa,GAAGR,oBAAoB,CAAErB,QAAS,CAAC;IACtD,MAAM8B,qBAAqB,GAAGH,kBAAkB,CAAEE,aAAc,CAAC;IACjE;IACA,MAAME,cAAc,GAAG,IAAAC,mBAAW,EACjC,gBAAgB,EAChBF,qBACD,CAAC;IACD,MAAM;MAAEG;IAAY,CAAC,GAAGX,QAAQ,CAAEtB,QAAS,CAAC;IAC5C;IACA;IACAyB,aAAa,CACZ,CAAEI,aAAa,CAAE,EACjB,CAAEE,cAAc,EAAE,GAAGE,WAAW,CACjC,CAAC;IACD;IACAP,eAAe,CAAEO,WAAW,CAAEA,WAAW,CAACC,MAAM,GAAG,CAAC,CAAE,CAAClC,QAAS,CAAC;EAClE,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC,CACjB;AACF;AAEA,SAASmC,QAAQA,CAAE;EAAEnC;AAAS,CAAC,EAAG;EACjC,MAAM,CAAEkB,UAAU,EAAEkB,WAAW,CAAE,GAAGnB,cAAc,CAAEjB,QAAS,CAAC;EAC9D,OACC,IAAAqC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACrD,WAAA,CAAAuD,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,uBAAgB,GAAGC,oBAAe;IACnDC,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBC,WAAW,EAAG,IAAAD,QAAE,EAAE,mBAAoB,CAAG;IACzCE,QAAQ,EAAG,CAAE9B,UAAY;IACzB+B,OAAO,EAAGb;EAAa,CACvB,CACA,CAAC;AAEL;AAEe,SAASc,IAAIA,CAAE;EAAEnD,UAAU;EAAEoD,aAAa;EAAEnD,QAAQ;EAAEoD;AAAM,CAAC,EAAG;EAC9E,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGzD,UAAU;EACrD,MAAM0D,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCN,KAAK,EAAE;MACN,IAAKO,iBAAQ,CAACC,QAAQ,IAAIR,KAAK,CAAE;MACjCS,aAAa,EAAER,OAAO,IAAIC,IAAI,KAAK,SAAS,GAAGA,IAAI,GAAGQ;IACvD;EACD,CAAE,CAAC;EAEH,MAAMC,gBAAgB,GAAG,IAAAC,gCAAmB,EAAEP,UAAU,EAAE;IACzDQ,aAAa,EAAE,CAAE,gBAAgB,CAAE;IACnCC,QAAQ,EAAEtE,QAAQ;IAClBuE,YAAY,EAAE,KAAK;IACnBC,8BAA8B,EAAE,IAAI;IACpC,IAAKT,iBAAQ,CAACC,QAAQ,IAAI;MACzBS,cAAc,EAAExE,qBAAqB;MACrCyE,gBAAgB,EAAEzE,qBAAqB;MACvC0E,cAAc,EAAE;IACjB,CAAC,CAAE;IACHC,6BAA6B,EAAE;EAChC,CAAE,CAAC;EACH1E,gBAAgB,CAAEC,UAAU,EAAEC,QAAS,CAAC;EAExC,MAAMyE,QAAQ,GACb,IAAApC,MAAA,CAAAC,aAAA,EAACvD,YAAA,CAAA2F,aAAa;IAACC,KAAK,EAAC;EAAO,GAC3B,IAAAtC,MAAA,CAAAC,aAAA,EAACrD,WAAA,CAAAuD,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGkC,2BAAoB,GAAGC,wBAAmB;IAC3DhC,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;IAC3BC,WAAW,EAAG,IAAAD,QAAE,EAAE,2BAA4B,CAAG;IACjDgC,QAAQ,EAAGzB,OAAO,KAAK,KAAO;IAC9BJ,OAAO,EAAGA,CAAA,KAAM;MACfE,aAAa,CAAE;QAAEE,OAAO,EAAE;MAAM,CAAE,CAAC;IACpC;EAAG,CACH,CAAC,EACF,IAAAhB,MAAA,CAAAC,aAAA,EAACrD,WAAA,CAAAuD,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGqC,4BAAqB,GAAGC,yBAAoB;IAC7DnC,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBC,WAAW,EAAG,IAAAD,QAAE,EAAE,yBAA0B,CAAG;IAC/CgC,QAAQ,EAAGzB,OAAO,KAAK,IAAM;IAC7BJ,OAAO,EAAGA,CAAA,KAAM;MACfE,aAAa,CAAE;QAAEE,OAAO,EAAE;MAAK,CAAE,CAAC;IACnC;EAAG,CACH,CAAC,EACF,IAAAhB,MAAA,CAAAC,aAAA,EAACH,QAAQ;IAACnC,QAAQ,EAAGA;EAAU,CAAE,CACnB,CACf;EAED,OACC,IAAAqC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAC3C,QAAA,CAAAsF,OAAO;IACP5B,OAAO,EAAGA,OAAS;IACnBE,QAAQ,EAAGA,QAAU;IACrBC,KAAK,EAAGA,KAAO;IAAA,GACVO;EAAgB,CACrB,CAAC,EACAU,QAAQ,EACRpB,OAAO,IACR,IAAAhB,MAAA,CAAAC,aAAA,EAAC7C,oBAAA,CAAAwF,OAAmB;IAElB9B,aAAa;IACbI,QAAQ;IACRC,KAAK;IACLF;EAAI,CAEL,CAED,CAAC;AAEL"}
1
+ {"version":3,"names":["_blockEditor","require","_components","_data","_i18n","_icons","_blocks","_element","_deprecated","_interopRequireDefault","_orderedListSettings","_utils","_tagName","TEMPLATE","NATIVE_MARGIN_SPACING","useMigrateOnLoad","attributes","clientId","registry","useRegistry","updateBlockAttributes","replaceInnerBlocks","useDispatch","blockEditorStore","useEffect","values","newAttributes","newInnerBlocks","migrateToListV2","deprecated","since","version","alternative","batch","useOutdentList","replaceBlocks","selectionChange","getBlockRootClientId","getBlockAttributes","getBlock","useSelect","useCallback","parentBlockId","parentBlockAttributes","newParentBlock","createBlock","innerBlocks","length","IndentUI","outdentList","canOutdent","select","getBlockName","_react","createElement","Fragment","ToolbarButton","icon","isRTL","formatOutdentRTL","formatOutdent","title","__","describedBy","disabled","onClick","Edit","setAttributes","style","ordered","type","reversed","start","blockProps","useBlockProps","Platform","isNative","listStyleType","undefined","innerBlocksProps","useInnerBlocksProps","allowedBlocks","template","templateLock","templateInsertUpdatesSelection","marginVertical","marginHorizontal","renderAppender","__experimentalCaptureToolbars","controls","BlockControls","group","formatListBulletsRTL","formatListBullets","isActive","formatListNumberedRTL","formatListNumbered","default"],"sources":["@wordpress/block-library/src/list/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n\tformatOutdent,\n\tformatOutdentRTL,\n} from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useCallback, useEffect, Platform } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport OrderedListSettings from './ordered-list-settings';\nimport { migrateToListV2 } from './utils';\nimport TagName from './tag-name';\n\nconst TEMPLATE = [ [ 'core/list-item' ] ];\nconst NATIVE_MARGIN_SPACING = 8;\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old list block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nfunction useMigrateOnLoad( attributes, clientId ) {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.values ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] = migrateToListV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the list block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.values ] );\n}\n\nfunction useOutdentList( clientId ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockAttributes, getBlock } =\n\t\tuseSelect( blockEditorStore );\n\n\treturn useCallback( () => {\n\t\tconst parentBlockId = getBlockRootClientId( clientId );\n\t\tconst parentBlockAttributes = getBlockAttributes( parentBlockId );\n\t\t// Create a new parent block without the inner blocks.\n\t\tconst newParentBlock = createBlock(\n\t\t\t'core/list-item',\n\t\t\tparentBlockAttributes\n\t\t);\n\t\tconst { innerBlocks } = getBlock( clientId );\n\t\t// Replace the parent block with a new parent block without inner blocks,\n\t\t// and make the inner blocks siblings of the parent.\n\t\treplaceBlocks( [ parentBlockId ], [ newParentBlock, ...innerBlocks ] );\n\t\t// Select the last child of the list being outdent.\n\t\tselectionChange( innerBlocks[ innerBlocks.length - 1 ].clientId );\n\t}, [ clientId ] );\n}\n\nfunction IndentUI( { clientId } ) {\n\tconst outdentList = useOutdentList( clientId );\n\tconst canOutdent = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t'core/list-item'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescribedBy={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ outdentList }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Edit( { attributes, setAttributes, clientId, style } ) {\n\tconst { ordered, type, reversed, start } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tstyle: {\n\t\t\t...( Platform.isNative && style ),\n\t\t\tlistStyleType: ordered && type !== 'decimal' ? type : undefined,\n\t\t},\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list-item' ],\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: false,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t...( Platform.isNative && {\n\t\t\tmarginVertical: NATIVE_MARGIN_SPACING,\n\t\t\tmarginHorizontal: NATIVE_MARGIN_SPACING,\n\t\t\trenderAppender: false,\n\t\t} ),\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst controls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\tdescribedBy={ __( 'Convert to unordered list' ) }\n\t\t\t\tisActive={ ordered === false }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: false } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListNumberedRTL : formatListNumbered }\n\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\tdescribedBy={ __( 'Convert to ordered list' ) }\n\t\t\t\tisActive={ ordered === true }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: true } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<IndentUI clientId={ clientId } />\n\t\t</BlockControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TagName\n\t\t\t\tordered={ ordered }\n\t\t\t\treversed={ reversed }\n\t\t\t\tstart={ start }\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t/>\n\t\t\t{ controls }\n\t\t\t{ ordered && (\n\t\t\t\t<OrderedListSettings\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\treversed,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -11,6 +11,7 @@ var _i18n = require("@wordpress/i18n");
11
11
  var _components = require("@wordpress/components");
12
12
  var _icons = require("@wordpress/icons");
13
13
  var _compose = require("@wordpress/compose");
14
+ var _data = require("@wordpress/data");
14
15
  var _hooks = require("./hooks");
15
16
  var _utils = require("./utils");
16
17
  /**
@@ -24,8 +25,22 @@ var _utils = require("./utils");
24
25
  function IndentUI({
25
26
  clientId
26
27
  }) {
27
- const [canIndent, indentListItem] = (0, _hooks.useIndentListItem)(clientId);
28
- const [canOutdent, outdentListItem] = (0, _hooks.useOutdentListItem)(clientId);
28
+ const indentListItem = (0, _hooks.useIndentListItem)(clientId);
29
+ const outdentListItem = (0, _hooks.useOutdentListItem)();
30
+ const {
31
+ canIndent,
32
+ canOutdent
33
+ } = (0, _data.useSelect)(select => {
34
+ const {
35
+ getBlockIndex,
36
+ getBlockRootClientId,
37
+ getBlockName
38
+ } = select(_blockEditor.store);
39
+ return {
40
+ canIndent: getBlockIndex(clientId) > 0,
41
+ canOutdent: getBlockName(getBlockRootClientId(getBlockRootClientId(clientId))) === 'core/list-item'
42
+ };
43
+ }, [clientId]);
29
44
  return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.ToolbarButton, {
30
45
  icon: (0, _i18n.isRTL)() ? _icons.formatOutdentRTL : _icons.formatOutdent,
31
46
  title: (0, _i18n.__)('Outdent'),
@@ -1 +1 @@
1
- {"version":3,"names":["_blockEditor","require","_i18n","_components","_icons","_compose","_hooks","_utils","IndentUI","clientId","canIndent","indentListItem","useIndentListItem","canOutdent","outdentListItem","useOutdentListItem","_react","createElement","Fragment","ToolbarButton","icon","isRTL","formatOutdentRTL","formatOutdent","title","__","describedBy","disabled","onClick","formatIndentRTL","formatIndent","isDisabled","ListItemEdit","attributes","setAttributes","onReplace","mergeBlocks","placeholder","content","blockProps","useBlockProps","ref","useCopy","innerBlocksProps","useInnerBlocksProps","allowedBlocks","renderAppender","__unstableDisableDropZone","useEnterRef","useEnter","useSpaceRef","useSpace","onSplit","useSplit","onMerge","useMerge","RichText","useMergeRefs","identifier","tagName","onChange","nextContent","value","blocks","args","convertToListItems","undefined","children","BlockControls","group"],"sources":["@wordpress/block-library/src/list-item/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport {\n\tformatOutdent,\n\tformatOutdentRTL,\n\tformatIndentRTL,\n\tformatIndent,\n} from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseSplit,\n\tuseMerge,\n\tuseCopy,\n} from './hooks';\nimport { convertToListItems } from './utils';\n\nexport function IndentUI( { clientId } ) {\n\tconst [ canIndent, indentListItem ] = useIndentListItem( clientId );\n\tconst [ canOutdent, outdentListItem ] = useOutdentListItem( clientId );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescribedBy={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ () => outdentListItem() }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatIndentRTL : formatIndent }\n\t\t\t\ttitle={ __( 'Indent' ) }\n\t\t\t\tdescribedBy={ __( 'Indent list item' ) }\n\t\t\t\tisDisabled={ ! canIndent }\n\t\t\t\tonClick={ () => indentListItem() }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function ListItemEdit( {\n\tattributes,\n\tsetAttributes,\n\tonReplace,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps( { ref: useCopy( clientId ) } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onSplit = useSplit( clientId );\n\tconst onMerge = useMerge( clientId, mergeBlocks );\n\treturn (\n\t\t<>\n\t\t\t<li { ...innerBlocksProps }>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ useMergeRefs( [ useEnterRef, useSpaceRef ] ) }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\ttagName=\"div\"\n\t\t\t\t\tonChange={ ( nextContent ) =>\n\t\t\t\t\t\tsetAttributes( { content: nextContent } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\taria-label={ __( 'List text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'List' ) }\n\t\t\t\t\tonSplit={ onSplit }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t\tonReplace={\n\t\t\t\t\t\tonReplace\n\t\t\t\t\t\t\t? ( blocks, ...args ) => {\n\t\t\t\t\t\t\t\t\tonReplace(\n\t\t\t\t\t\t\t\t\t\tconvertToListItems( blocks ),\n\t\t\t\t\t\t\t\t\t\t...args\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</li>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<IndentUI clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAMA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAMA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AASA,IAAAM,MAAA,GAAAN,OAAA;AA/BA;AACA;AACA;;AAiBA;AACA;AACA;;AAYO,SAASO,QAAQA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACxC,MAAM,CAAEC,SAAS,EAAEC,cAAc,CAAE,GAAG,IAAAC,wBAAiB,EAAEH,QAAS,CAAC;EACnE,MAAM,CAAEI,UAAU,EAAEC,eAAe,CAAE,GAAG,IAAAC,yBAAkB,EAAEN,QAAS,CAAC;EAEtE,OACC,IAAAO,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACd,WAAA,CAAAgB,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,uBAAgB,GAAGC,oBAAe;IACnDC,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBC,WAAW,EAAG,IAAAD,QAAE,EAAE,mBAAoB,CAAG;IACzCE,QAAQ,EAAG,CAAEd,UAAY;IACzBe,OAAO,EAAGA,CAAA,KAAMd,eAAe,CAAC;EAAG,CACnC,CAAC,EACF,IAAAE,MAAA,CAAAC,aAAA,EAACd,WAAA,CAAAgB,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGQ,sBAAe,GAAGC,mBAAc;IACjDN,KAAK,EAAG,IAAAC,QAAE,EAAE,QAAS,CAAG;IACxBC,WAAW,EAAG,IAAAD,QAAE,EAAE,kBAAmB,CAAG;IACxCM,UAAU,EAAG,CAAErB,SAAW;IAC1BkB,OAAO,EAAGA,CAAA,KAAMjB,cAAc,CAAC;EAAG,CAClC,CACA,CAAC;AAEL;AAEe,SAASqB,YAAYA,CAAE;EACrCC,UAAU;EACVC,aAAa;EACbC,SAAS;EACT1B,QAAQ;EACR2B;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,WAAW;IAAEC;EAAQ,CAAC,GAAGL,UAAU;EAC3C,MAAMM,UAAU,GAAG,IAAAC,0BAAa,EAAE;IAAEC,GAAG,EAAE,IAAAC,cAAO,EAAEjC,QAAS;EAAE,CAAE,CAAC;EAChE,MAAMkC,gBAAgB,GAAG,IAAAC,gCAAmB,EAAEL,UAAU,EAAE;IACzDM,aAAa,EAAE,CAAE,WAAW,CAAE;IAC9BC,cAAc,EAAE,KAAK;IACrBC,yBAAyB,EAAE;EAC5B,CAAE,CAAC;EACH,MAAMC,WAAW,GAAG,IAAAC,eAAQ,EAAE;IAAEX,OAAO;IAAE7B;EAAS,CAAE,CAAC;EACrD,MAAMyC,WAAW,GAAG,IAAAC,eAAQ,EAAE1C,QAAS,CAAC;EACxC,MAAM2C,OAAO,GAAG,IAAAC,eAAQ,EAAE5C,QAAS,CAAC;EACpC,MAAM6C,OAAO,GAAG,IAAAC,eAAQ,EAAE9C,QAAQ,EAAE2B,WAAY,CAAC;EACjD,OACC,IAAApB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA;IAAA,GAAS0B;EAAgB,GACxB,IAAA3B,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAwD,QAAQ;IACRf,GAAG,EAAG,IAAAgB,qBAAY,EAAE,CAAET,WAAW,EAAEE,WAAW,CAAG,CAAG;IACpDQ,UAAU,EAAC,SAAS;IACpBC,OAAO,EAAC,KAAK;IACbC,QAAQ,EAAKC,WAAW,IACvB3B,aAAa,CAAE;MAAEI,OAAO,EAAEuB;IAAY,CAAE,CACxC;IACDC,KAAK,EAAGxB,OAAS;IACjB,cAAa,IAAAb,QAAE,EAAE,WAAY,CAAG;IAChCY,WAAW,EAAGA,WAAW,IAAI,IAAAZ,QAAE,EAAE,MAAO,CAAG;IAC3C2B,OAAO,EAAGA,OAAS;IACnBE,OAAO,EAAGA,OAAS;IACnBnB,SAAS,EACRA,SAAS,GACN,CAAE4B,MAAM,EAAE,GAAGC,IAAI,KAAM;MACvB7B,SAAS,CACR,IAAA8B,yBAAkB,EAAEF,MAAO,CAAC,EAC5B,GAAGC,IACJ,CAAC;IACD,CAAC,GACDE;EACH,CACD,CAAC,EACAvB,gBAAgB,CAACwB,QAChB,CAAC,EACL,IAAAnD,MAAA,CAAAC,aAAA,EAACjB,YAAA,CAAAoE,aAAa;IAACC,KAAK,EAAC;EAAO,GAC3B,IAAArD,MAAA,CAAAC,aAAA,EAACT,QAAQ;IAACC,QAAQ,EAAGA;EAAU,CAAE,CACnB,CACd,CAAC;AAEL"}
1
+ {"version":3,"names":["_blockEditor","require","_i18n","_components","_icons","_compose","_data","_hooks","_utils","IndentUI","clientId","indentListItem","useIndentListItem","outdentListItem","useOutdentListItem","canIndent","canOutdent","useSelect","select","getBlockIndex","getBlockRootClientId","getBlockName","blockEditorStore","_react","createElement","Fragment","ToolbarButton","icon","isRTL","formatOutdentRTL","formatOutdent","title","__","describedBy","disabled","onClick","formatIndentRTL","formatIndent","isDisabled","ListItemEdit","attributes","setAttributes","onReplace","mergeBlocks","placeholder","content","blockProps","useBlockProps","ref","useCopy","innerBlocksProps","useInnerBlocksProps","allowedBlocks","renderAppender","__unstableDisableDropZone","useEnterRef","useEnter","useSpaceRef","useSpace","onSplit","useSplit","onMerge","useMerge","RichText","useMergeRefs","identifier","tagName","onChange","nextContent","value","blocks","args","convertToListItems","undefined","children","BlockControls","group"],"sources":["@wordpress/block-library/src/list-item/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport {\n\tformatOutdent,\n\tformatOutdentRTL,\n\tformatIndentRTL,\n\tformatIndent,\n} from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseSplit,\n\tuseMerge,\n\tuseCopy,\n} from './hooks';\nimport { convertToListItems } from './utils';\n\nexport function IndentUI( { clientId } ) {\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\tconst { canIndent, canOutdent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockIndex, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanIndent: getBlockIndex( clientId ) > 0,\n\t\t\t\tcanOutdent:\n\t\t\t\t\tgetBlockName(\n\t\t\t\t\t\tgetBlockRootClientId( getBlockRootClientId( clientId ) )\n\t\t\t\t\t) === 'core/list-item',\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescribedBy={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ () => outdentListItem() }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatIndentRTL : formatIndent }\n\t\t\t\ttitle={ __( 'Indent' ) }\n\t\t\t\tdescribedBy={ __( 'Indent list item' ) }\n\t\t\t\tisDisabled={ ! canIndent }\n\t\t\t\tonClick={ () => indentListItem() }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function ListItemEdit( {\n\tattributes,\n\tsetAttributes,\n\tonReplace,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps( { ref: useCopy( clientId ) } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/list' ],\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onSplit = useSplit( clientId );\n\tconst onMerge = useMerge( clientId, mergeBlocks );\n\treturn (\n\t\t<>\n\t\t\t<li { ...innerBlocksProps }>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ useMergeRefs( [ useEnterRef, useSpaceRef ] ) }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\ttagName=\"div\"\n\t\t\t\t\tonChange={ ( nextContent ) =>\n\t\t\t\t\t\tsetAttributes( { content: nextContent } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\taria-label={ __( 'List text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'List' ) }\n\t\t\t\t\tonSplit={ onSplit }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t\tonReplace={\n\t\t\t\t\t\tonReplace\n\t\t\t\t\t\t\t? ( blocks, ...args ) => {\n\t\t\t\t\t\t\t\t\tonReplace(\n\t\t\t\t\t\t\t\t\t\tconvertToListItems( blocks ),\n\t\t\t\t\t\t\t\t\t\t...args\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</li>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<IndentUI clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAOA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAMA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAKA,IAAAM,MAAA,GAAAN,OAAA;AASA,IAAAO,MAAA,GAAAP,OAAA;AAjCA;AACA;AACA;;AAmBA;AACA;AACA;;AAYO,SAASQ,QAAQA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACxC,MAAMC,cAAc,GAAG,IAAAC,wBAAiB,EAAEF,QAAS,CAAC;EACpD,MAAMG,eAAe,GAAG,IAAAC,yBAAkB,EAAC,CAAC;EAC5C,MAAM;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EACxCC,MAAM,IAAM;IACb,MAAM;MAAEC,aAAa;MAAEC,oBAAoB;MAAEC;IAAa,CAAC,GAC1DH,MAAM,CAAEI,kBAAiB,CAAC;IAC3B,OAAO;MACNP,SAAS,EAAEI,aAAa,CAAET,QAAS,CAAC,GAAG,CAAC;MACxCM,UAAU,EACTK,YAAY,CACXD,oBAAoB,CAAEA,oBAAoB,CAAEV,QAAS,CAAE,CACxD,CAAC,KAAK;IACR,CAAC;EACF,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EAED,OACC,IAAAa,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAuB,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGC,uBAAgB,GAAGC,oBAAe;IACnDC,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBC,WAAW,EAAG,IAAAD,QAAE,EAAE,mBAAoB,CAAG;IACzCE,QAAQ,EAAG,CAAElB,UAAY;IACzBmB,OAAO,EAAGA,CAAA,KAAMtB,eAAe,CAAC;EAAG,CACnC,CAAC,EACF,IAAAU,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAuB,aAAa;IACbC,IAAI,EAAG,IAAAC,WAAK,EAAC,CAAC,GAAGQ,sBAAe,GAAGC,mBAAc;IACjDN,KAAK,EAAG,IAAAC,QAAE,EAAE,QAAS,CAAG;IACxBC,WAAW,EAAG,IAAAD,QAAE,EAAE,kBAAmB,CAAG;IACxCM,UAAU,EAAG,CAAEvB,SAAW;IAC1BoB,OAAO,EAAGA,CAAA,KAAMxB,cAAc,CAAC;EAAG,CAClC,CACA,CAAC;AAEL;AAEe,SAAS4B,YAAYA,CAAE;EACrCC,UAAU;EACVC,aAAa;EACbC,SAAS;EACThC,QAAQ;EACRiC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,WAAW;IAAEC;EAAQ,CAAC,GAAGL,UAAU;EAC3C,MAAMM,UAAU,GAAG,IAAAC,0BAAa,EAAE;IAAEC,GAAG,EAAE,IAAAC,cAAO,EAAEvC,QAAS;EAAE,CAAE,CAAC;EAChE,MAAMwC,gBAAgB,GAAG,IAAAC,gCAAmB,EAAEL,UAAU,EAAE;IACzDM,aAAa,EAAE,CAAE,WAAW,CAAE;IAC9BC,cAAc,EAAE,KAAK;IACrBC,yBAAyB,EAAE;EAC5B,CAAE,CAAC;EACH,MAAMC,WAAW,GAAG,IAAAC,eAAQ,EAAE;IAAEX,OAAO;IAAEnC;EAAS,CAAE,CAAC;EACrD,MAAM+C,WAAW,GAAG,IAAAC,eAAQ,EAAEhD,QAAS,CAAC;EACxC,MAAMiD,OAAO,GAAG,IAAAC,eAAQ,EAAElD,QAAS,CAAC;EACpC,MAAMmD,OAAO,GAAG,IAAAC,eAAQ,EAAEpD,QAAQ,EAAEiC,WAAY,CAAC;EACjD,OACC,IAAApB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA;IAAA,GAAS0B;EAAgB,GACxB,IAAA3B,MAAA,CAAAC,aAAA,EAACxB,YAAA,CAAA+D,QAAQ;IACRf,GAAG,EAAG,IAAAgB,qBAAY,EAAE,CAAET,WAAW,EAAEE,WAAW,CAAG,CAAG;IACpDQ,UAAU,EAAC,SAAS;IACpBC,OAAO,EAAC,KAAK;IACbC,QAAQ,EAAKC,WAAW,IACvB3B,aAAa,CAAE;MAAEI,OAAO,EAAEuB;IAAY,CAAE,CACxC;IACDC,KAAK,EAAGxB,OAAS;IACjB,cAAa,IAAAb,QAAE,EAAE,WAAY,CAAG;IAChCY,WAAW,EAAGA,WAAW,IAAI,IAAAZ,QAAE,EAAE,MAAO,CAAG;IAC3C2B,OAAO,EAAGA,OAAS;IACnBE,OAAO,EAAGA,OAAS;IACnBnB,SAAS,EACRA,SAAS,GACN,CAAE4B,MAAM,EAAE,GAAGC,IAAI,KAAM;MACvB7B,SAAS,CACR,IAAA8B,yBAAkB,EAAEF,MAAO,CAAC,EAC5B,GAAGC,IACJ,CAAC;IACD,CAAC,GACDE;EACH,CACD,CAAC,EACAvB,gBAAgB,CAACwB,QAChB,CAAC,EACL,IAAAnD,MAAA,CAAAC,aAAA,EAACxB,YAAA,CAAA2E,aAAa;IAACC,KAAK,EAAC;EAAO,GAC3B,IAAArD,MAAA,CAAAC,aAAA,EAACf,QAAQ;IAACC,QAAQ,EAAGA;EAAU,CAAE,CACnB,CACd,CAAC;AAEL"}
@@ -28,11 +28,12 @@ function useEnter(props) {
28
28
  const {
29
29
  getBlock,
30
30
  getBlockRootClientId,
31
- getBlockIndex
31
+ getBlockIndex,
32
+ getBlockName
32
33
  } = (0, _data.useSelect)(_blockEditor.store);
33
34
  const propsRef = (0, _element.useRef)(props);
34
35
  propsRef.current = props;
35
- const [canOutdent, outdentListItem] = (0, _useOutdentListItem.default)(propsRef.current.clientId);
36
+ const outdentListItem = (0, _useOutdentListItem.default)();
36
37
  return (0, _compose.useRefEffect)(element => {
37
38
  function onKeyDown(event) {
38
39
  if (event.defaultPrevented || event.keyCode !== _keycodes.ENTER) {
@@ -46,6 +47,7 @@ function useEnter(props) {
46
47
  return;
47
48
  }
48
49
  event.preventDefault();
50
+ const canOutdent = getBlockName(getBlockRootClientId(getBlockRootClientId(propsRef.current.clientId))) === 'core/list-item';
49
51
  if (canOutdent) {
50
52
  outdentListItem();
51
53
  return;
@@ -74,6 +76,6 @@ function useEnter(props) {
74
76
  return () => {
75
77
  element.removeEventListener('keydown', onKeyDown);
76
78
  };
77
- }, [canOutdent]);
79
+ }, []);
78
80
  }
79
81
  //# sourceMappingURL=use-enter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_element","_compose","_keycodes","_data","_blockEditor","_useOutdentListItem","_interopRequireDefault","useEnter","props","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","useSelect","propsRef","useRef","current","canOutdent","outdentListItem","useOutdentListItem","clientId","useRefEffect","element","onKeyDown","event","defaultPrevented","keyCode","ENTER","content","length","preventDefault","topParentListBlock","blockIndex","head","cloneBlock","innerBlocks","slice","middle","createBlock","getDefaultBlockName","after","tail","addEventListener","removeEventListener"],"sources":["@wordpress/block-library/src/list-item/hooks/use-enter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\tconst [ canOutdent, outdentListItem ] = useOutdentListItem(\n\t\tpropsRef.current.clientId\n\t);\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\t\tif ( content.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( canOutdent ) {\n\t\t\t\t\toutdentListItem();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Here we are in top level list so we need to split.\n\t\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t);\n\t\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\t\tconst head = cloneBlock( {\n\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tblockIndex\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\t\tconst after = [\n\t\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t\t];\n\t\t\t\tconst tail = after.length\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t ]\n\t\t\t\t\t: [];\n\t\t\t\treplaceBlocks(\n\t\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t\t1\n\t\t\t\t);\n\t\t\t\t// We manually change the selection here because we are replacing\n\t\t\t\t// a different block than the selected one.\n\t\t\t\tselectionChange( middle.clientId );\n\t\t\t}\n\n\t\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t\t};\n\t\t},\n\t\t[ canOutdent ]\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAKA,IAAAM,mBAAA,GAAAC,sBAAA,CAAAP,OAAA;AAjBA;AACA;AACA;;AAYA;AACA;AACA;;AAGe,SAASQ,QAAQA,CAAEC,KAAK,EAAG;EACzC,MAAM;IAAEC,aAAa;IAAEC;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAC1E,MAAM;IAAEC,QAAQ;IAAEC,oBAAoB;IAAEC;EAAc,CAAC,GACtD,IAAAC,eAAS,EAAEJ,kBAAiB,CAAC;EAC9B,MAAMK,QAAQ,GAAG,IAAAC,eAAM,EAAEV,KAAM,CAAC;EAChCS,QAAQ,CAACE,OAAO,GAAGX,KAAK;EACxB,MAAM,CAAEY,UAAU,EAAEC,eAAe,CAAE,GAAG,IAAAC,2BAAkB,EACzDL,QAAQ,CAACE,OAAO,CAACI,QAClB,CAAC;EACD,OAAO,IAAAC,qBAAY,EAChBC,OAAO,IAAM;IACd,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,IAAKA,KAAK,CAACC,gBAAgB,IAAID,KAAK,CAACE,OAAO,KAAKC,eAAK,EAAG;QACxD;MACD;MACA,MAAM;QAAEC,OAAO;QAAER;MAAS,CAAC,GAAGN,QAAQ,CAACE,OAAO;MAC9C,IAAKY,OAAO,CAACC,MAAM,EAAG;QACrB;MACD;MACAL,KAAK,CAACM,cAAc,CAAC,CAAC;MACtB,IAAKb,UAAU,EAAG;QACjBC,eAAe,CAAC,CAAC;QACjB;MACD;MACA;MACA,MAAMa,kBAAkB,GAAGrB,QAAQ,CAClCC,oBAAoB,CAAES,QAAS,CAChC,CAAC;MACD,MAAMY,UAAU,GAAGpB,aAAa,CAAEQ,QAAS,CAAC;MAC5C,MAAMa,IAAI,GAAG,IAAAC,kBAAU,EAAE;QACxB,GAAGH,kBAAkB;QACrBI,WAAW,EAAEJ,kBAAkB,CAACI,WAAW,CAACC,KAAK,CAChD,CAAC,EACDJ,UACD;MACD,CAAE,CAAC;MACH,MAAMK,MAAM,GAAG,IAAAC,mBAAW,EAAE,IAAAC,2BAAmB,EAAC,CAAE,CAAC;MACnD;MACA;MACA,MAAMC,KAAK,GAAG,CACb,IAAKT,kBAAkB,CAACI,WAAW,CAAEH,UAAU,CAAE,CAC/CG,WAAW,CAAE,CAAC,CAAE,EAAEA,WAAW,IAAI,EAAE,CAAE,EACvC,GAAGJ,kBAAkB,CAACI,WAAW,CAACC,KAAK,CAAEJ,UAAU,GAAG,CAAE,CAAC,CACzD;MACD,MAAMS,IAAI,GAAGD,KAAK,CAACX,MAAM,GACtB,CACA,IAAAK,kBAAU,EAAE;QACX,GAAGH,kBAAkB;QACrBI,WAAW,EAAEK;MACd,CAAE,CAAC,CACF,GACD,EAAE;MACLlC,aAAa,CACZyB,kBAAkB,CAACX,QAAQ,EAC3B,CAAEa,IAAI,EAAEI,MAAM,EAAE,GAAGI,IAAI,CAAE,EACzB,CACD,CAAC;MACD;MACA;MACAlC,eAAe,CAAE8B,MAAM,CAACjB,QAAS,CAAC;IACnC;IAEAE,OAAO,CAACoB,gBAAgB,CAAE,SAAS,EAAEnB,SAAU,CAAC;IAChD,OAAO,MAAM;MACZD,OAAO,CAACqB,mBAAmB,CAAE,SAAS,EAAEpB,SAAU,CAAC;IACpD,CAAC;EACF,CAAC,EACD,CAAEN,UAAU,CACb,CAAC;AACF"}
1
+ {"version":3,"names":["_blocks","require","_element","_compose","_keycodes","_data","_blockEditor","_useOutdentListItem","_interopRequireDefault","useEnter","props","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","getBlockName","useSelect","propsRef","useRef","current","outdentListItem","useOutdentListItem","useRefEffect","element","onKeyDown","event","defaultPrevented","keyCode","ENTER","content","clientId","length","preventDefault","canOutdent","topParentListBlock","blockIndex","head","cloneBlock","innerBlocks","slice","middle","createBlock","getDefaultBlockName","after","tail","addEventListener","removeEventListener"],"sources":["@wordpress/block-library/src/list-item/hooks/use-enter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex, getBlockName } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\tconst outdentListItem = useOutdentListItem();\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst canOutdent =\n\t\t\t\tgetBlockName(\n\t\t\t\t\tgetBlockRootClientId(\n\t\t\t\t\t\tgetBlockRootClientId( propsRef.current.clientId )\n\t\t\t\t\t)\n\t\t\t\t) === 'core/list-item';\n\t\t\tif ( canOutdent ) {\n\t\t\t\toutdentListItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Here we are in top level list so we need to split.\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\tconst after = [\n\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t];\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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"}
@@ -26,11 +26,12 @@ function useEnter(props, preventDefault) {
26
26
  const {
27
27
  getBlock,
28
28
  getBlockRootClientId,
29
- getBlockIndex
29
+ getBlockIndex,
30
+ getBlockName
30
31
  } = (0, _data.useSelect)(_blockEditor.store);
31
32
  const propsRef = (0, _element.useRef)(props);
32
33
  propsRef.current = props;
33
- const [canOutdent, outdentListItem] = (0, _useOutdentListItem.default)(propsRef.current.clientId);
34
+ const outdentListItem = (0, _useOutdentListItem.default)();
34
35
  return {
35
36
  onEnter() {
36
37
  const {
@@ -41,7 +42,7 @@ function useEnter(props, preventDefault) {
41
42
  return;
42
43
  }
43
44
  preventDefault.current = true;
44
- if (canOutdent) {
45
+ if (getBlockName(getBlockRootClientId(getBlockRootClientId(propsRef.current.clientId))) === 'core/list-item') {
45
46
  outdentListItem();
46
47
  return;
47
48
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","_element","_data","_blockEditor","_useOutdentListItem","_interopRequireDefault","useEnter","props","preventDefault","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","useSelect","propsRef","useRef","current","canOutdent","outdentListItem","useOutdentListItem","clientId","onEnter","content","length","topParentListBlock","blockIndex","head","cloneBlock","innerBlocks","slice","middle","createBlock","getDefaultBlockName","after","tail"],"sources":["@wordpress/block-library/src/list-item/hooks/use-enter.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useEnter( props, preventDefault ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\tconst [ canOutdent, outdentListItem ] = useOutdentListItem(\n\t\tpropsRef.current.clientId\n\t);\n\n\treturn {\n\t\tonEnter() {\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpreventDefault.current = true;\n\t\t\tif ( canOutdent ) {\n\t\t\t\toutdentListItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Here we are in top level list so we need to split.\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\tconst after = [\n\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t];\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t},\n\t};\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAKA,IAAAI,mBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAfA;AACA;AACA;;AAUA;AACA;AACA;;AAGe,SAASM,QAAQA,CAAEC,KAAK,EAAEC,cAAc,EAAG;EACzD,MAAM;IAAEC,aAAa;IAAEC;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAC1E,MAAM;IAAEC,QAAQ;IAAEC,oBAAoB;IAAEC;EAAc,CAAC,GACtD,IAAAC,eAAS,EAAEJ,kBAAiB,CAAC;EAC9B,MAAMK,QAAQ,GAAG,IAAAC,eAAM,EAAEX,KAAM,CAAC;EAChCU,QAAQ,CAACE,OAAO,GAAGZ,KAAK;EACxB,MAAM,CAAEa,UAAU,EAAEC,eAAe,CAAE,GAAG,IAAAC,2BAAkB,EACzDL,QAAQ,CAACE,OAAO,CAACI,QAClB,CAAC;EAED,OAAO;IACNC,OAAOA,CAAA,EAAG;MACT,MAAM;QAAEC,OAAO;QAAEF;MAAS,CAAC,GAAGN,QAAQ,CAACE,OAAO;MAC9C,IAAKM,OAAO,CAACC,MAAM,EAAG;QACrB;MACD;MACAlB,cAAc,CAACW,OAAO,GAAG,IAAI;MAC7B,IAAKC,UAAU,EAAG;QACjBC,eAAe,CAAC,CAAC;QACjB;MACD;MACA;MACA,MAAMM,kBAAkB,GAAGd,QAAQ,CAClCC,oBAAoB,CAAES,QAAS,CAChC,CAAC;MACD,MAAMK,UAAU,GAAGb,aAAa,CAAEQ,QAAS,CAAC;MAC5C,MAAMM,IAAI,GAAG,IAAAC,kBAAU,EAAE;QACxB,GAAGH,kBAAkB;QACrBI,WAAW,EAAEJ,kBAAkB,CAACI,WAAW,CAACC,KAAK,CAChD,CAAC,EACDJ,UACD;MACD,CAAE,CAAC;MACH,MAAMK,MAAM,GAAG,IAAAC,mBAAW,EAAE,IAAAC,2BAAmB,EAAC,CAAE,CAAC;MACnD;MACA;MACA,MAAMC,KAAK,GAAG,CACb,IAAKT,kBAAkB,CAACI,WAAW,CAAEH,UAAU,CAAE,CAC/CG,WAAW,CAAE,CAAC,CAAE,EAAEA,WAAW,IAAI,EAAE,CAAE,EACvC,GAAGJ,kBAAkB,CAACI,WAAW,CAACC,KAAK,CAAEJ,UAAU,GAAG,CAAE,CAAC,CACzD;MACD,MAAMS,IAAI,GAAGD,KAAK,CAACV,MAAM,GACtB,CACA,IAAAI,kBAAU,EAAE;QACX,GAAGH,kBAAkB;QACrBI,WAAW,EAAEK;MACd,CAAE,CAAC,CACF,GACD,EAAE;MACL3B,aAAa,CACZkB,kBAAkB,CAACJ,QAAQ,EAC3B,CAAEM,IAAI,EAAEI,MAAM,EAAE,GAAGI,IAAI,CAAE,EACzB,CACD,CAAC;MACD;MACA;MACA3B,eAAe,CAAEuB,MAAM,CAACV,QAAS,CAAC;IACnC;EACD,CAAC;AACF"}
1
+ {"version":3,"names":["_blocks","require","_element","_data","_blockEditor","_useOutdentListItem","_interopRequireDefault","useEnter","props","preventDefault","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","getBlockName","useSelect","propsRef","useRef","current","outdentListItem","useOutdentListItem","onEnter","content","clientId","length","topParentListBlock","blockIndex","head","cloneBlock","innerBlocks","slice","middle","createBlock","getDefaultBlockName","after","tail"],"sources":["@wordpress/block-library/src/list-item/hooks/use-enter.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useEnter( props, preventDefault ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex, getBlockName } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\tconst outdentListItem = useOutdentListItem();\n\n\treturn {\n\t\tonEnter() {\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpreventDefault.current = true;\n\t\t\tif (\n\t\t\t\tgetBlockName(\n\t\t\t\t\tgetBlockRootClientId(\n\t\t\t\t\t\tgetBlockRootClientId( propsRef.current.clientId )\n\t\t\t\t\t)\n\t\t\t\t) === 'core/list-item'\n\t\t\t) {\n\t\t\t\toutdentListItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Here we are in top level list so we need to split.\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\tconst after = [\n\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t];\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t},\n\t};\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAKA,IAAAI,mBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAfA;AACA;AACA;;AAUA;AACA;AACA;;AAGe,SAASM,QAAQA,CAAEC,KAAK,EAAEC,cAAc,EAAG;EACzD,MAAM;IAAEC,aAAa;IAAEC;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAC1E,MAAM;IAAEC,QAAQ;IAAEC,oBAAoB;IAAEC,aAAa;IAAEC;EAAa,CAAC,GACpE,IAAAC,eAAS,EAAEL,kBAAiB,CAAC;EAC9B,MAAMM,QAAQ,GAAG,IAAAC,eAAM,EAAEZ,KAAM,CAAC;EAChCW,QAAQ,CAACE,OAAO,GAAGb,KAAK;EACxB,MAAMc,eAAe,GAAG,IAAAC,2BAAkB,EAAC,CAAC;EAE5C,OAAO;IACNC,OAAOA,CAAA,EAAG;MACT,MAAM;QAAEC,OAAO;QAAEC;MAAS,CAAC,GAAGP,QAAQ,CAACE,OAAO;MAC9C,IAAKI,OAAO,CAACE,MAAM,EAAG;QACrB;MACD;MACAlB,cAAc,CAACY,OAAO,GAAG,IAAI;MAC7B,IACCJ,YAAY,CACXF,oBAAoB,CACnBA,oBAAoB,CAAEI,QAAQ,CAACE,OAAO,CAACK,QAAS,CACjD,CACD,CAAC,KAAK,gBAAgB,EACrB;QACDJ,eAAe,CAAC,CAAC;QACjB;MACD;MACA;MACA,MAAMM,kBAAkB,GAAGd,QAAQ,CAClCC,oBAAoB,CAAEW,QAAS,CAChC,CAAC;MACD,MAAMG,UAAU,GAAGb,aAAa,CAAEU,QAAS,CAAC;MAC5C,MAAMI,IAAI,GAAG,IAAAC,kBAAU,EAAE;QACxB,GAAGH,kBAAkB;QACrBI,WAAW,EAAEJ,kBAAkB,CAACI,WAAW,CAACC,KAAK,CAChD,CAAC,EACDJ,UACD;MACD,CAAE,CAAC;MACH,MAAMK,MAAM,GAAG,IAAAC,mBAAW,EAAE,IAAAC,2BAAmB,EAAC,CAAE,CAAC;MACnD;MACA;MACA,MAAMC,KAAK,GAAG,CACb,IAAKT,kBAAkB,CAACI,WAAW,CAAEH,UAAU,CAAE,CAC/CG,WAAW,CAAE,CAAC,CAAE,EAAEA,WAAW,IAAI,EAAE,CAAE,EACvC,GAAGJ,kBAAkB,CAACI,WAAW,CAACC,KAAK,CAAEJ,UAAU,GAAG,CAAE,CAAC,CACzD;MACD,MAAMS,IAAI,GAAGD,KAAK,CAACV,MAAM,GACtB,CACA,IAAAI,kBAAU,EAAE;QACX,GAAGH,kBAAkB;QACrBI,WAAW,EAAEK;MACd,CAAE,CAAC,CACF,GACD,EAAE;MACL3B,aAAa,CACZkB,kBAAkB,CAACF,QAAQ,EAC3B,CAAEI,IAAI,EAAEI,MAAM,EAAE,GAAGI,IAAI,CAAE,EACzB,CACD,CAAC;MACD;MACA;MACA3B,eAAe,CAAEuB,MAAM,CAACR,QAAS,CAAC;IACnC;EACD,CAAC;AACF"}
@@ -13,7 +13,6 @@ var _blocks = require("@wordpress/blocks");
13
13
  */
14
14
 
15
15
  function useIndentListItem(clientId) {
16
- const canIndent = (0, _data.useSelect)(select => select(_blockEditor.store).getBlockIndex(clientId) > 0, [clientId]);
17
16
  const {
18
17
  replaceBlocks,
19
18
  selectionChange,
@@ -27,7 +26,7 @@ function useIndentListItem(clientId) {
27
26
  hasMultiSelection,
28
27
  getMultiSelectedBlockClientIds
29
28
  } = (0, _data.useSelect)(_blockEditor.store);
30
- return [canIndent, (0, _element.useCallback)(() => {
29
+ return (0, _element.useCallback)(() => {
31
30
  const _hasMultiSelection = hasMultiSelection();
32
31
  const clientIds = _hasMultiSelection ? getMultiSelectedBlockClientIds() : [clientId];
33
32
  const clonedBlocks = clientIds.map(_clientId => (0, _blocks.cloneBlock)(getBlock(_clientId)));
@@ -55,6 +54,6 @@ function useIndentListItem(clientId) {
55
54
  } else {
56
55
  multiSelect(clonedBlocks[0].clientId, clonedBlocks[clonedBlocks.length - 1].clientId);
57
56
  }
58
- }, [clientId])];
57
+ }, [clientId]);
59
58
  }
60
59
  //# sourceMappingURL=use-indent-list-item.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useIndentListItem","clientId","canIndent","useSelect","select","blockEditorStore","getBlockIndex","replaceBlocks","selectionChange","multiSelect","useDispatch","getBlock","getPreviousBlockClientId","getSelectionStart","getSelectionEnd","hasMultiSelection","getMultiSelectedBlockClientIds","useCallback","_hasMultiSelection","clientIds","clonedBlocks","map","_clientId","cloneBlock","previousSiblingId","newListItem","innerBlocks","length","createBlock","push","selectionStart","selectionEnd","attributeKey","offset"],"sources":["@wordpress/block-library/src/list-item/hooks/use-indent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock, cloneBlock } from '@wordpress/blocks';\n\nexport default function useIndentListItem( clientId ) {\n\tconst canIndent = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlockIndex( clientId ) > 0,\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks, selectionChange, multiSelect } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlock,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectionStart,\n\t\tgetSelectionEnd,\n\t\thasMultiSelection,\n\t\tgetMultiSelectedBlockClientIds,\n\t} = useSelect( blockEditorStore );\n\treturn [\n\t\tcanIndent,\n\t\tuseCallback( () => {\n\t\t\tconst _hasMultiSelection = hasMultiSelection();\n\t\t\tconst clientIds = _hasMultiSelection\n\t\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t\t: [ clientId ];\n\t\t\tconst clonedBlocks = clientIds.map( ( _clientId ) =>\n\t\t\t\tcloneBlock( getBlock( _clientId ) )\n\t\t\t);\n\t\t\tconst previousSiblingId = getPreviousBlockClientId( clientId );\n\t\t\tconst newListItem = cloneBlock( getBlock( previousSiblingId ) );\n\t\t\t// If the sibling has no innerBlocks, create a new `list` block.\n\t\t\tif ( ! newListItem.innerBlocks?.length ) {\n\t\t\t\tnewListItem.innerBlocks = [ createBlock( 'core/list' ) ];\n\t\t\t}\n\t\t\t// A list item usually has one `list`, but it's possible to have\n\t\t\t// more. So we need to preserve the previous `list` blocks and\n\t\t\t// merge the new blocks to the last `list`.\n\t\t\tnewListItem.innerBlocks[\n\t\t\t\tnewListItem.innerBlocks.length - 1\n\t\t\t].innerBlocks.push( ...clonedBlocks );\n\n\t\t\t// We get the selection start/end here, because when\n\t\t\t// we replace blocks, the selection is updated too.\n\t\t\tconst selectionStart = getSelectionStart();\n\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t// Replace the previous sibling of the block being indented and the indented blocks,\n\t\t\t// with a new block whose attributes are equal to the ones of the previous sibling and\n\t\t\t// whose descendants are the children of the previous sibling, followed by the indented blocks.\n\t\t\treplaceBlocks(\n\t\t\t\t[ previousSiblingId, ...clientIds ],\n\t\t\t\t[ newListItem ]\n\t\t\t);\n\t\t\tif ( ! _hasMultiSelection ) {\n\t\t\t\tselectionChange(\n\t\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\t\tselectionEnd.attributeKey,\n\t\t\t\t\tselectionEnd.clientId === selectionStart.clientId\n\t\t\t\t\t\t? selectionStart.offset\n\t\t\t\t\t\t: selectionEnd.offset,\n\t\t\t\t\tselectionEnd.offset\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmultiSelect(\n\t\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\t\tclonedBlocks[ clonedBlocks.length - 1 ].clientId\n\t\t\t\t);\n\t\t\t}\n\t\t}, [ clientId ] ),\n\t];\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMe,SAASI,iBAAiBA,CAAEC,QAAQ,EAAG;EACrD,MAAMC,SAAS,GAAG,IAAAC,eAAS,EACxBC,MAAM,IAAMA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,aAAa,CAAEL,QAAS,CAAC,GAAG,CAAC,EACtE,CAAEA,QAAQ,CACX,CAAC;EACD,MAAM;IAAEM,aAAa;IAAEC,eAAe;IAAEC;EAAY,CAAC,GACpD,IAAAC,iBAAW,EAAEL,kBAAiB,CAAC;EAChC,MAAM;IACLM,QAAQ;IACRC,wBAAwB;IACxBC,iBAAiB;IACjBC,eAAe;IACfC,iBAAiB;IACjBC;EACD,CAAC,GAAG,IAAAb,eAAS,EAAEE,kBAAiB,CAAC;EACjC,OAAO,CACNH,SAAS,EACT,IAAAe,oBAAW,EAAE,MAAM;IAClB,MAAMC,kBAAkB,GAAGH,iBAAiB,CAAC,CAAC;IAC9C,MAAMI,SAAS,GAAGD,kBAAkB,GACjCF,8BAA8B,CAAC,CAAC,GAChC,CAAEf,QAAQ,CAAE;IACf,MAAMmB,YAAY,GAAGD,SAAS,CAACE,GAAG,CAAIC,SAAS,IAC9C,IAAAC,kBAAU,EAAEZ,QAAQ,CAAEW,SAAU,CAAE,CACnC,CAAC;IACD,MAAME,iBAAiB,GAAGZ,wBAAwB,CAAEX,QAAS,CAAC;IAC9D,MAAMwB,WAAW,GAAG,IAAAF,kBAAU,EAAEZ,QAAQ,CAAEa,iBAAkB,CAAE,CAAC;IAC/D;IACA,IAAK,CAAEC,WAAW,CAACC,WAAW,EAAEC,MAAM,EAAG;MACxCF,WAAW,CAACC,WAAW,GAAG,CAAE,IAAAE,mBAAW,EAAE,WAAY,CAAC,CAAE;IACzD;IACA;IACA;IACA;IACAH,WAAW,CAACC,WAAW,CACtBD,WAAW,CAACC,WAAW,CAACC,MAAM,GAAG,CAAC,CAClC,CAACD,WAAW,CAACG,IAAI,CAAE,GAAGT,YAAa,CAAC;;IAErC;IACA;IACA,MAAMU,cAAc,GAAGjB,iBAAiB,CAAC,CAAC;IAC1C,MAAMkB,YAAY,GAAGjB,eAAe,CAAC,CAAC;IACtC;IACA;IACA;IACAP,aAAa,CACZ,CAAEiB,iBAAiB,EAAE,GAAGL,SAAS,CAAE,EACnC,CAAEM,WAAW,CACd,CAAC;IACD,IAAK,CAAEP,kBAAkB,EAAG;MAC3BV,eAAe,CACdY,YAAY,CAAE,CAAC,CAAE,CAACnB,QAAQ,EAC1B8B,YAAY,CAACC,YAAY,EACzBD,YAAY,CAAC9B,QAAQ,KAAK6B,cAAc,CAAC7B,QAAQ,GAC9C6B,cAAc,CAACG,MAAM,GACrBF,YAAY,CAACE,MAAM,EACtBF,YAAY,CAACE,MACd,CAAC;IACF,CAAC,MAAM;MACNxB,WAAW,CACVW,YAAY,CAAE,CAAC,CAAE,CAACnB,QAAQ,EAC1BmB,YAAY,CAAEA,YAAY,CAACO,MAAM,GAAG,CAAC,CAAE,CAAC1B,QACzC,CAAC;IACF;EACD,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC,CACjB;AACF"}
1
+ {"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useIndentListItem","clientId","replaceBlocks","selectionChange","multiSelect","useDispatch","blockEditorStore","getBlock","getPreviousBlockClientId","getSelectionStart","getSelectionEnd","hasMultiSelection","getMultiSelectedBlockClientIds","useSelect","useCallback","_hasMultiSelection","clientIds","clonedBlocks","map","_clientId","cloneBlock","previousSiblingId","newListItem","innerBlocks","length","createBlock","push","selectionStart","selectionEnd","attributeKey","offset"],"sources":["@wordpress/block-library/src/list-item/hooks/use-indent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock, cloneBlock } from '@wordpress/blocks';\n\nexport default function useIndentListItem( clientId ) {\n\tconst { replaceBlocks, selectionChange, multiSelect } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlock,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectionStart,\n\t\tgetSelectionEnd,\n\t\thasMultiSelection,\n\t\tgetMultiSelectedBlockClientIds,\n\t} = useSelect( blockEditorStore );\n\treturn useCallback( () => {\n\t\tconst _hasMultiSelection = hasMultiSelection();\n\t\tconst clientIds = _hasMultiSelection\n\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t: [ clientId ];\n\t\tconst clonedBlocks = clientIds.map( ( _clientId ) =>\n\t\t\tcloneBlock( getBlock( _clientId ) )\n\t\t);\n\t\tconst previousSiblingId = getPreviousBlockClientId( clientId );\n\t\tconst newListItem = cloneBlock( getBlock( previousSiblingId ) );\n\t\t// If the sibling has no innerBlocks, create a new `list` block.\n\t\tif ( ! newListItem.innerBlocks?.length ) {\n\t\t\tnewListItem.innerBlocks = [ createBlock( 'core/list' ) ];\n\t\t}\n\t\t// A list item usually has one `list`, but it's possible to have\n\t\t// more. So we need to preserve the previous `list` blocks and\n\t\t// merge the new blocks to the last `list`.\n\t\tnewListItem.innerBlocks[\n\t\t\tnewListItem.innerBlocks.length - 1\n\t\t].innerBlocks.push( ...clonedBlocks );\n\n\t\t// We get the selection start/end here, because when\n\t\t// we replace blocks, the selection is updated too.\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\t// Replace the previous sibling of the block being indented and the indented blocks,\n\t\t// with a new block whose attributes are equal to the ones of the previous sibling and\n\t\t// whose descendants are the children of the previous sibling, followed by the indented blocks.\n\t\treplaceBlocks( [ previousSiblingId, ...clientIds ], [ newListItem ] );\n\t\tif ( ! _hasMultiSelection ) {\n\t\t\tselectionChange(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tselectionEnd.attributeKey,\n\t\t\t\tselectionEnd.clientId === selectionStart.clientId\n\t\t\t\t\t? selectionStart.offset\n\t\t\t\t\t: selectionEnd.offset,\n\t\t\t\tselectionEnd.offset\n\t\t\t);\n\t\t} else {\n\t\t\tmultiSelect(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tclonedBlocks[ clonedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}, [ clientId ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMe,SAASI,iBAAiBA,CAAEC,QAAQ,EAAG;EACrD,MAAM;IAAEC,aAAa;IAAEC,eAAe;IAAEC;EAAY,CAAC,GACpD,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAChC,MAAM;IACLC,QAAQ;IACRC,wBAAwB;IACxBC,iBAAiB;IACjBC,eAAe;IACfC,iBAAiB;IACjBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAEP,kBAAiB,CAAC;EACjC,OAAO,IAAAQ,oBAAW,EAAE,MAAM;IACzB,MAAMC,kBAAkB,GAAGJ,iBAAiB,CAAC,CAAC;IAC9C,MAAMK,SAAS,GAAGD,kBAAkB,GACjCH,8BAA8B,CAAC,CAAC,GAChC,CAAEX,QAAQ,CAAE;IACf,MAAMgB,YAAY,GAAGD,SAAS,CAACE,GAAG,CAAIC,SAAS,IAC9C,IAAAC,kBAAU,EAAEb,QAAQ,CAAEY,SAAU,CAAE,CACnC,CAAC;IACD,MAAME,iBAAiB,GAAGb,wBAAwB,CAAEP,QAAS,CAAC;IAC9D,MAAMqB,WAAW,GAAG,IAAAF,kBAAU,EAAEb,QAAQ,CAAEc,iBAAkB,CAAE,CAAC;IAC/D;IACA,IAAK,CAAEC,WAAW,CAACC,WAAW,EAAEC,MAAM,EAAG;MACxCF,WAAW,CAACC,WAAW,GAAG,CAAE,IAAAE,mBAAW,EAAE,WAAY,CAAC,CAAE;IACzD;IACA;IACA;IACA;IACAH,WAAW,CAACC,WAAW,CACtBD,WAAW,CAACC,WAAW,CAACC,MAAM,GAAG,CAAC,CAClC,CAACD,WAAW,CAACG,IAAI,CAAE,GAAGT,YAAa,CAAC;;IAErC;IACA;IACA,MAAMU,cAAc,GAAGlB,iBAAiB,CAAC,CAAC;IAC1C,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;IACtC;IACA;IACA;IACAR,aAAa,CAAE,CAAEmB,iBAAiB,EAAE,GAAGL,SAAS,CAAE,EAAE,CAAEM,WAAW,CAAG,CAAC;IACrE,IAAK,CAAEP,kBAAkB,EAAG;MAC3BZ,eAAe,CACdc,YAAY,CAAE,CAAC,CAAE,CAAChB,QAAQ,EAC1B2B,YAAY,CAACC,YAAY,EACzBD,YAAY,CAAC3B,QAAQ,KAAK0B,cAAc,CAAC1B,QAAQ,GAC9C0B,cAAc,CAACG,MAAM,GACrBF,YAAY,CAACE,MAAM,EACtBF,YAAY,CAACE,MACd,CAAC;IACF,CAAC,MAAM;MACN1B,WAAW,CACVa,YAAY,CAAE,CAAC,CAAE,CAAChB,QAAQ,EAC1BgB,YAAY,CAAEA,YAAY,CAACO,MAAM,GAAG,CAAC,CAAE,CAACvB,QACzC,CAAC;IACF;EACD,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC;AAClB"}
@@ -29,7 +29,7 @@ function useMerge(clientId, onMerge) {
29
29
  mergeBlocks,
30
30
  moveBlocksToPosition
31
31
  } = (0, _data.useDispatch)(_blockEditor.store);
32
- const [, outdentListItem] = (0, _useOutdentListItem.default)(clientId);
32
+ const outdentListItem = (0, _useOutdentListItem.default)();
33
33
  function getTrailingId(id) {
34
34
  const order = getBlockOrder(id);
35
35
  if (!order.length) {
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_blockEditor","_useOutdentListItem","_interopRequireDefault","useMerge","clientId","onMerge","registry","useRegistry","getPreviousBlockClientId","getNextBlockClientId","getBlockOrder","getBlockRootClientId","getBlockName","useSelect","blockEditorStore","mergeBlocks","moveBlocksToPosition","useDispatch","outdentListItem","useOutdentListItem","getTrailingId","id","order","length","getParentListItemId","listId","parentListItemId","_getNextId","next","getNextId","forward","mergeWithNested","clientIdA","clientIdB","batch","nestedListClientId","nextBlockClientId","previousBlockClientId","trailingId"],"sources":["@wordpress/block-library/src/list-item/hooks/use-merge.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry, useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useMerge( clientId, onMerge ) {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst { mergeBlocks, moveBlocksToPosition } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ , outdentListItem ] = useOutdentListItem( clientId );\n\n\tfunction getTrailingId( id ) {\n\t\tconst order = getBlockOrder( id );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn id;\n\t\t}\n\n\t\treturn getTrailingId( order[ order.length - 1 ] );\n\t}\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) return;\n\t\treturn parentListItemId;\n\t}\n\n\t/**\n\t * Return the next list item with respect to the given list item. If none,\n\t * return the next list item of the parent list item if it exists.\n\t *\n\t * @param {string} id A list item client ID.\n\t * @return {string?} The client ID of the next list item.\n\t */\n\tfunction _getNextId( id ) {\n\t\tconst next = getNextBlockClientId( id );\n\t\tif ( next ) return next;\n\t\tconst parentListItemId = getParentListItemId( id );\n\t\tif ( ! parentListItemId ) return;\n\t\treturn _getNextId( parentListItemId );\n\t}\n\n\t/**\n\t * Given a client ID, return the client ID of the list item on the next\n\t * line, regardless of indentation level.\n\t *\n\t * @param {string} id The client ID of the current list item.\n\t * @return {string?} The client ID of the next list item.\n\t */\n\tfunction getNextId( id ) {\n\t\tconst order = getBlockOrder( id );\n\n\t\t// If the list item does not have a nested list, return the next list\n\t\t// item.\n\t\tif ( ! order.length ) {\n\t\t\treturn _getNextId( id );\n\t\t}\n\n\t\t// Get the first list item in the nested list.\n\t\treturn getBlockOrder( order[ 0 ] )[ 0 ];\n\t}\n\n\treturn ( forward ) => {\n\t\tfunction mergeWithNested( clientIdA, clientIdB ) {\n\t\t\tregistry.batch( () => {\n\t\t\t\t// When merging a sub list item with a higher next list item, we\n\t\t\t\t// also need to move any nested list items. Check if there's a\n\t\t\t\t// listed list, and append its nested list items to the current\n\t\t\t\t// list.\n\t\t\t\tconst [ nestedListClientId ] = getBlockOrder( clientIdB );\n\t\t\t\tif ( nestedListClientId ) {\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tgetBlockOrder( nestedListClientId ),\n\t\t\t\t\t\tnestedListClientId,\n\t\t\t\t\t\tgetBlockRootClientId( clientIdA )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tmergeBlocks( clientIdA, clientIdB );\n\t\t\t} );\n\t\t}\n\n\t\tif ( forward ) {\n\t\t\tconst nextBlockClientId = getNextId( clientId );\n\n\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\tonMerge( forward );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( getParentListItemId( nextBlockClientId ) ) {\n\t\t\t\toutdentListItem( nextBlockClientId );\n\t\t\t} else {\n\t\t\t\tmergeWithNested( clientId, nextBlockClientId );\n\t\t\t}\n\t\t} else {\n\t\t\t// Merging is only done from the top level. For lowel levels, the\n\t\t\t// list item is outdented instead.\n\t\t\tconst previousBlockClientId = getPreviousBlockClientId( clientId );\n\t\t\tif ( getParentListItemId( clientId ) ) {\n\t\t\t\toutdentListItem( clientId );\n\t\t\t} else if ( previousBlockClientId ) {\n\t\t\t\tconst trailingId = getTrailingId( previousBlockClientId );\n\t\t\t\tmergeWithNested( trailingId, clientId );\n\t\t\t} else {\n\t\t\t\tonMerge( forward );\n\t\t\t}\n\t\t}\n\t};\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_data","require","_blockEditor","_useOutdentListItem","_interopRequireDefault","useMerge","clientId","onMerge","registry","useRegistry","getPreviousBlockClientId","getNextBlockClientId","getBlockOrder","getBlockRootClientId","getBlockName","useSelect","blockEditorStore","mergeBlocks","moveBlocksToPosition","useDispatch","outdentListItem","useOutdentListItem","getTrailingId","id","order","length","getParentListItemId","listId","parentListItemId","_getNextId","next","getNextId","forward","mergeWithNested","clientIdA","clientIdB","batch","nestedListClientId","nextBlockClientId","previousBlockClientId","trailingId"],"sources":["@wordpress/block-library/src/list-item/hooks/use-merge.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRegistry, useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useMerge( clientId, onMerge ) {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst { mergeBlocks, moveBlocksToPosition } =\n\t\tuseDispatch( blockEditorStore );\n\tconst outdentListItem = useOutdentListItem();\n\n\tfunction getTrailingId( id ) {\n\t\tconst order = getBlockOrder( id );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn id;\n\t\t}\n\n\t\treturn getTrailingId( order[ order.length - 1 ] );\n\t}\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) return;\n\t\treturn parentListItemId;\n\t}\n\n\t/**\n\t * Return the next list item with respect to the given list item. If none,\n\t * return the next list item of the parent list item if it exists.\n\t *\n\t * @param {string} id A list item client ID.\n\t * @return {string?} The client ID of the next list item.\n\t */\n\tfunction _getNextId( id ) {\n\t\tconst next = getNextBlockClientId( id );\n\t\tif ( next ) return next;\n\t\tconst parentListItemId = getParentListItemId( id );\n\t\tif ( ! parentListItemId ) return;\n\t\treturn _getNextId( parentListItemId );\n\t}\n\n\t/**\n\t * Given a client ID, return the client ID of the list item on the next\n\t * line, regardless of indentation level.\n\t *\n\t * @param {string} id The client ID of the current list item.\n\t * @return {string?} The client ID of the next list item.\n\t */\n\tfunction getNextId( id ) {\n\t\tconst order = getBlockOrder( id );\n\n\t\t// If the list item does not have a nested list, return the next list\n\t\t// item.\n\t\tif ( ! order.length ) {\n\t\t\treturn _getNextId( id );\n\t\t}\n\n\t\t// Get the first list item in the nested list.\n\t\treturn getBlockOrder( order[ 0 ] )[ 0 ];\n\t}\n\n\treturn ( forward ) => {\n\t\tfunction mergeWithNested( clientIdA, clientIdB ) {\n\t\t\tregistry.batch( () => {\n\t\t\t\t// When merging a sub list item with a higher next list item, we\n\t\t\t\t// also need to move any nested list items. Check if there's a\n\t\t\t\t// listed list, and append its nested list items to the current\n\t\t\t\t// list.\n\t\t\t\tconst [ nestedListClientId ] = getBlockOrder( clientIdB );\n\t\t\t\tif ( nestedListClientId ) {\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tgetBlockOrder( nestedListClientId ),\n\t\t\t\t\t\tnestedListClientId,\n\t\t\t\t\t\tgetBlockRootClientId( clientIdA )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tmergeBlocks( clientIdA, clientIdB );\n\t\t\t} );\n\t\t}\n\n\t\tif ( forward ) {\n\t\t\tconst nextBlockClientId = getNextId( clientId );\n\n\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\tonMerge( forward );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( getParentListItemId( nextBlockClientId ) ) {\n\t\t\t\toutdentListItem( nextBlockClientId );\n\t\t\t} else {\n\t\t\t\tmergeWithNested( clientId, nextBlockClientId );\n\t\t\t}\n\t\t} else {\n\t\t\t// Merging is only done from the top level. For lowel levels, the\n\t\t\t// list item is outdented instead.\n\t\t\tconst previousBlockClientId = getPreviousBlockClientId( clientId );\n\t\t\tif ( getParentListItemId( clientId ) ) {\n\t\t\t\toutdentListItem( clientId );\n\t\t\t} else if ( previousBlockClientId ) {\n\t\t\t\tconst trailingId = getTrailingId( previousBlockClientId );\n\t\t\t\tmergeWithNested( trailingId, clientId );\n\t\t\t} else {\n\t\t\t\tonMerge( forward );\n\t\t\t}\n\t\t}\n\t};\n}\n"],"mappings":"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"}
@@ -12,22 +12,8 @@ var _blocks = require("@wordpress/blocks");
12
12
  * WordPress dependencies
13
13
  */
14
14
 
15
- function useOutdentListItem(clientId) {
15
+ function useOutdentListItem() {
16
16
  const registry = (0, _data.useRegistry)();
17
- const {
18
- canOutdent
19
- } = (0, _data.useSelect)(innerSelect => {
20
- const {
21
- getBlockRootClientId,
22
- getBlockName
23
- } = innerSelect(_blockEditor.store);
24
- const grandParentId = getBlockRootClientId(getBlockRootClientId(clientId));
25
- const grandParentName = getBlockName(grandParentId);
26
- const isListItem = grandParentName === 'core/list-item';
27
- return {
28
- canOutdent: isListItem
29
- };
30
- }, [clientId]);
31
17
  const {
32
18
  moveBlocksToPosition,
33
19
  removeBlock,
@@ -50,7 +36,7 @@ function useOutdentListItem(clientId) {
50
36
  if (getBlockName(parentListItemId) !== 'core/list-item') return;
51
37
  return parentListItemId;
52
38
  }
53
- return [canOutdent, (0, _element.useCallback)((clientIds = getSelectedBlockClientIds()) => {
39
+ return (0, _element.useCallback)((clientIds = getSelectedBlockClientIds()) => {
54
40
  if (!Array.isArray(clientIds)) {
55
41
  clientIds = [clientIds];
56
42
  }
@@ -86,6 +72,6 @@ function useOutdentListItem(clientId) {
86
72
  removeBlock(parentListId, shouldSelectParent);
87
73
  }
88
74
  });
89
- }, [])];
75
+ }, []);
90
76
  }
91
77
  //# sourceMappingURL=use-outdent-list-item.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useOutdentListItem","clientId","registry","useRegistry","canOutdent","useSelect","innerSelect","getBlockRootClientId","getBlockName","blockEditorStore","grandParentId","grandParentName","isListItem","moveBlocksToPosition","removeBlock","insertBlock","updateBlockListSettings","useDispatch","getBlockOrder","getBlockIndex","getSelectedBlockClientIds","getBlock","getBlockListSettings","getParentListItemId","id","listId","parentListItemId","useCallback","clientIds","Array","isArray","length","firstClientId","parentListId","lastClientId","order","followingListItems","slice","batch","nestedListId","nestedListBlock","cloneBlock","shouldSelectParent"],"sources":["@wordpress/block-library/src/list-item/hooks/use-outdent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { cloneBlock } from '@wordpress/blocks';\n\nexport default function useOutdentListItem( clientId ) {\n\tconst registry = useRegistry();\n\tconst { canOutdent } = useSelect(\n\t\t( innerSelect ) => {\n\t\t\tconst { getBlockRootClientId, getBlockName } =\n\t\t\t\tinnerSelect( blockEditorStore );\n\t\t\tconst grandParentId = getBlockRootClientId(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst grandParentName = getBlockName( grandParentId );\n\t\t\tconst isListItem = grandParentName === 'core/list-item';\n\n\t\t\treturn {\n\t\t\t\tcanOutdent: isListItem,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tinsertBlock,\n\t\tupdateBlockListSettings,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlockOrder,\n\t\tgetBlockIndex,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlock,\n\t\tgetBlockListSettings,\n\t} = useSelect( blockEditorStore );\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) return;\n\t\treturn parentListItemId;\n\t}\n\n\treturn [\n\t\tcanOutdent,\n\t\tuseCallback( ( clientIds = getSelectedBlockClientIds() ) => {\n\t\t\tif ( ! Array.isArray( clientIds ) ) {\n\t\t\t\tclientIds = [ clientIds ];\n\t\t\t}\n\n\t\t\tif ( ! clientIds.length ) return;\n\n\t\t\tconst firstClientId = clientIds[ 0 ];\n\n\t\t\t// Can't outdent if it's not a list item.\n\t\t\tif ( getBlockName( firstClientId ) !== 'core/list-item' ) return;\n\n\t\t\tconst parentListItemId = getParentListItemId( firstClientId );\n\n\t\t\t// Can't outdent if it's at the top level.\n\t\t\tif ( ! parentListItemId ) return;\n\n\t\t\tconst parentListId = getBlockRootClientId( firstClientId );\n\t\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\t\tconst order = getBlockOrder( parentListId );\n\t\t\tconst followingListItems = order.slice(\n\t\t\t\tgetBlockIndex( lastClientId ) + 1\n\t\t\t);\n\n\t\t\tregistry.batch( () => {\n\t\t\t\tif ( followingListItems.length ) {\n\t\t\t\t\tlet nestedListId = getBlockOrder( firstClientId )[ 0 ];\n\n\t\t\t\t\tif ( ! nestedListId ) {\n\t\t\t\t\t\tconst nestedListBlock = cloneBlock(\n\t\t\t\t\t\t\tgetBlock( parentListId ),\n\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\tnestedListId = nestedListBlock.clientId;\n\t\t\t\t\t\tinsertBlock( nestedListBlock, 0, firstClientId, false );\n\t\t\t\t\t\t// Immediately update the block list settings, otherwise\n\t\t\t\t\t\t// blocks can't be moved here due to canInsert checks.\n\t\t\t\t\t\tupdateBlockListSettings(\n\t\t\t\t\t\t\tnestedListId,\n\t\t\t\t\t\t\tgetBlockListSettings( parentListId )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tfollowingListItems,\n\t\t\t\t\t\tparentListId,\n\t\t\t\t\t\tnestedListId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\tclientIds,\n\t\t\t\t\tparentListId,\n\t\t\t\t\tgetBlockRootClientId( parentListItemId ),\n\t\t\t\t\tgetBlockIndex( parentListItemId ) + 1\n\t\t\t\t);\n\t\t\t\tif ( ! getBlockOrder( parentListId ).length ) {\n\t\t\t\t\tconst shouldSelectParent = false;\n\t\t\t\t\tremoveBlock( parentListId, shouldSelectParent );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, [] ),\n\t];\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMe,SAASI,kBAAkBA,CAAEC,QAAQ,EAAG;EACtD,MAAMC,QAAQ,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAC9B,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EAC7BC,WAAW,IAAM;IAClB,MAAM;MAAEC,oBAAoB;MAAEC;IAAa,CAAC,GAC3CF,WAAW,CAAEG,kBAAiB,CAAC;IAChC,MAAMC,aAAa,GAAGH,oBAAoB,CACzCA,oBAAoB,CAAEN,QAAS,CAChC,CAAC;IACD,MAAMU,eAAe,GAAGH,YAAY,CAAEE,aAAc,CAAC;IACrD,MAAME,UAAU,GAAGD,eAAe,KAAK,gBAAgB;IAEvD,OAAO;MACNP,UAAU,EAAEQ;IACb,CAAC;EACF,CAAC,EACD,CAAEX,QAAQ,CACX,CAAC;EACD,MAAM;IACLY,oBAAoB;IACpBC,WAAW;IACXC,WAAW;IACXC;EACD,CAAC,GAAG,IAAAC,iBAAW,EAAER,kBAAiB,CAAC;EACnC,MAAM;IACLF,oBAAoB;IACpBC,YAAY;IACZU,aAAa;IACbC,aAAa;IACbC,yBAAyB;IACzBC,QAAQ;IACRC;EACD,CAAC,GAAG,IAAAjB,eAAS,EAAEI,kBAAiB,CAAC;EAEjC,SAASc,mBAAmBA,CAAEC,EAAE,EAAG;IAClC,MAAMC,MAAM,GAAGlB,oBAAoB,CAAEiB,EAAG,CAAC;IACzC,MAAME,gBAAgB,GAAGnB,oBAAoB,CAAEkB,MAAO,CAAC;IACvD,IAAK,CAAEC,gBAAgB,EAAG;IAC1B,IAAKlB,YAAY,CAAEkB,gBAAiB,CAAC,KAAK,gBAAgB,EAAG;IAC7D,OAAOA,gBAAgB;EACxB;EAEA,OAAO,CACNtB,UAAU,EACV,IAAAuB,oBAAW,EAAE,CAAEC,SAAS,GAAGR,yBAAyB,CAAC,CAAC,KAAM;IAC3D,IAAK,CAAES,KAAK,CAACC,OAAO,CAAEF,SAAU,CAAC,EAAG;MACnCA,SAAS,GAAG,CAAEA,SAAS,CAAE;IAC1B;IAEA,IAAK,CAAEA,SAAS,CAACG,MAAM,EAAG;IAE1B,MAAMC,aAAa,GAAGJ,SAAS,CAAE,CAAC,CAAE;;IAEpC;IACA,IAAKpB,YAAY,CAAEwB,aAAc,CAAC,KAAK,gBAAgB,EAAG;IAE1D,MAAMN,gBAAgB,GAAGH,mBAAmB,CAAES,aAAc,CAAC;;IAE7D;IACA,IAAK,CAAEN,gBAAgB,EAAG;IAE1B,MAAMO,YAAY,GAAG1B,oBAAoB,CAAEyB,aAAc,CAAC;IAC1D,MAAME,YAAY,GAAGN,SAAS,CAAEA,SAAS,CAACG,MAAM,GAAG,CAAC,CAAE;IACtD,MAAMI,KAAK,GAAGjB,aAAa,CAAEe,YAAa,CAAC;IAC3C,MAAMG,kBAAkB,GAAGD,KAAK,CAACE,KAAK,CACrClB,aAAa,CAAEe,YAAa,CAAC,GAAG,CACjC,CAAC;IAEDhC,QAAQ,CAACoC,KAAK,CAAE,MAAM;MACrB,IAAKF,kBAAkB,CAACL,MAAM,EAAG;QAChC,IAAIQ,YAAY,GAAGrB,aAAa,CAAEc,aAAc,CAAC,CAAE,CAAC,CAAE;QAEtD,IAAK,CAAEO,YAAY,EAAG;UACrB,MAAMC,eAAe,GAAG,IAAAC,kBAAU,EACjCpB,QAAQ,CAAEY,YAAa,CAAC,EACxB,CAAC,CAAC,EACF,EACD,CAAC;UACDM,YAAY,GAAGC,eAAe,CAACvC,QAAQ;UACvCc,WAAW,CAAEyB,eAAe,EAAE,CAAC,EAAER,aAAa,EAAE,KAAM,CAAC;UACvD;UACA;UACAhB,uBAAuB,CACtBuB,YAAY,EACZjB,oBAAoB,CAAEW,YAAa,CACpC,CAAC;QACF;QAEApB,oBAAoB,CACnBuB,kBAAkB,EAClBH,YAAY,EACZM,YACD,CAAC;MACF;MACA1B,oBAAoB,CACnBe,SAAS,EACTK,YAAY,EACZ1B,oBAAoB,CAAEmB,gBAAiB,CAAC,EACxCP,aAAa,CAAEO,gBAAiB,CAAC,GAAG,CACrC,CAAC;MACD,IAAK,CAAER,aAAa,CAAEe,YAAa,CAAC,CAACF,MAAM,EAAG;QAC7C,MAAMW,kBAAkB,GAAG,KAAK;QAChC5B,WAAW,CAAEmB,YAAY,EAAES,kBAAmB,CAAC;MAChD;IACD,CAAE,CAAC;EACJ,CAAC,EAAE,EAAG,CAAC,CACP;AACF"}
1
+ {"version":3,"names":["_element","require","_data","_blockEditor","_blocks","useOutdentListItem","registry","useRegistry","moveBlocksToPosition","removeBlock","insertBlock","updateBlockListSettings","useDispatch","blockEditorStore","getBlockRootClientId","getBlockName","getBlockOrder","getBlockIndex","getSelectedBlockClientIds","getBlock","getBlockListSettings","useSelect","getParentListItemId","id","listId","parentListItemId","useCallback","clientIds","Array","isArray","length","firstClientId","parentListId","lastClientId","order","followingListItems","slice","batch","nestedListId","nestedListBlock","cloneBlock","clientId","shouldSelectParent"],"sources":["@wordpress/block-library/src/list-item/hooks/use-outdent-list-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { cloneBlock } from '@wordpress/blocks';\n\nexport default function useOutdentListItem() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tinsertBlock,\n\t\tupdateBlockListSettings,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlockOrder,\n\t\tgetBlockIndex,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlock,\n\t\tgetBlockListSettings,\n\t} = useSelect( blockEditorStore );\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) return;\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) return;\n\t\treturn parentListItemId;\n\t}\n\n\treturn useCallback( ( clientIds = getSelectedBlockClientIds() ) => {\n\t\tif ( ! Array.isArray( clientIds ) ) {\n\t\t\tclientIds = [ clientIds ];\n\t\t}\n\n\t\tif ( ! clientIds.length ) return;\n\n\t\tconst firstClientId = clientIds[ 0 ];\n\n\t\t// Can't outdent if it's not a list item.\n\t\tif ( getBlockName( firstClientId ) !== 'core/list-item' ) return;\n\n\t\tconst parentListItemId = getParentListItemId( firstClientId );\n\n\t\t// Can't outdent if it's at the top level.\n\t\tif ( ! parentListItemId ) return;\n\n\t\tconst parentListId = getBlockRootClientId( firstClientId );\n\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\tconst order = getBlockOrder( parentListId );\n\t\tconst followingListItems = order.slice(\n\t\t\tgetBlockIndex( lastClientId ) + 1\n\t\t);\n\n\t\tregistry.batch( () => {\n\t\t\tif ( followingListItems.length ) {\n\t\t\t\tlet nestedListId = getBlockOrder( firstClientId )[ 0 ];\n\n\t\t\t\tif ( ! nestedListId ) {\n\t\t\t\t\tconst nestedListBlock = cloneBlock(\n\t\t\t\t\t\tgetBlock( parentListId ),\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t[]\n\t\t\t\t\t);\n\t\t\t\t\tnestedListId = nestedListBlock.clientId;\n\t\t\t\t\tinsertBlock( nestedListBlock, 0, firstClientId, false );\n\t\t\t\t\t// Immediately update the block list settings, otherwise\n\t\t\t\t\t// blocks can't be moved here due to canInsert checks.\n\t\t\t\t\tupdateBlockListSettings(\n\t\t\t\t\t\tnestedListId,\n\t\t\t\t\t\tgetBlockListSettings( parentListId )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\tfollowingListItems,\n\t\t\t\t\tparentListId,\n\t\t\t\t\tnestedListId\n\t\t\t\t);\n\t\t\t}\n\t\t\tmoveBlocksToPosition(\n\t\t\t\tclientIds,\n\t\t\t\tparentListId,\n\t\t\t\tgetBlockRootClientId( parentListItemId ),\n\t\t\t\tgetBlockIndex( parentListItemId ) + 1\n\t\t\t);\n\t\t\tif ( ! getBlockOrder( parentListId ).length ) {\n\t\t\t\tconst shouldSelectParent = false;\n\t\t\t\tremoveBlock( parentListId, shouldSelectParent );\n\t\t\t}\n\t\t} );\n\t}, [] );\n}\n"],"mappings":"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"}
@@ -21,9 +21,10 @@ var _useIndentListItem = _interopRequireDefault(require("./use-indent-list-item"
21
21
  function useSpace(clientId) {
22
22
  const {
23
23
  getSelectionStart,
24
- getSelectionEnd
24
+ getSelectionEnd,
25
+ getBlockIndex
25
26
  } = (0, _data.useSelect)(_blockEditor.store);
26
- const [canIndent, indentListItem] = (0, _useIndentListItem.default)(clientId);
27
+ const indentListItem = (0, _useIndentListItem.default)(clientId);
27
28
  return (0, _compose.useRefEffect)(element => {
28
29
  function onKeyDown(event) {
29
30
  const {
@@ -33,11 +34,14 @@ function useSpace(clientId) {
33
34
  metaKey,
34
35
  ctrlKey
35
36
  } = event;
36
- if (event.defaultPrevented || !canIndent || keyCode !== _keycodes.SPACE ||
37
+ if (event.defaultPrevented || keyCode !== _keycodes.SPACE ||
37
38
  // Only override when no modifiers are pressed.
38
39
  shiftKey || altKey || metaKey || ctrlKey) {
39
40
  return;
40
41
  }
42
+ if (getBlockIndex(clientId) === 0) {
43
+ return;
44
+ }
41
45
  const selectionStart = getSelectionStart();
42
46
  const selectionEnd = getSelectionEnd();
43
47
  if (selectionStart.offset === 0 && selectionEnd.offset === 0) {
@@ -49,6 +53,6 @@ function useSpace(clientId) {
49
53
  return () => {
50
54
  element.removeEventListener('keydown', onKeyDown);
51
55
  };
52
- }, [canIndent, indentListItem]);
56
+ }, [clientId, indentListItem]);
53
57
  }
54
58
  //# sourceMappingURL=use-space.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_compose","require","_keycodes","_blockEditor","_data","_useIndentListItem","_interopRequireDefault","useSpace","clientId","getSelectionStart","getSelectionEnd","useSelect","blockEditorStore","canIndent","indentListItem","useIndentListItem","useRefEffect","element","onKeyDown","event","keyCode","shiftKey","altKey","metaKey","ctrlKey","defaultPrevented","SPACE","selectionStart","selectionEnd","offset","preventDefault","addEventListener","removeEventListener"],"sources":["@wordpress/block-library/src/list-item/hooks/use-space.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { SPACE } from '@wordpress/keycodes';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useIndentListItem from './use-indent-list-item';\n\nexport default function useSpace( clientId ) {\n\tconst { getSelectionStart, getSelectionEnd } =\n\t\tuseSelect( blockEditorStore );\n\tconst [ canIndent, indentListItem ] = useIndentListItem( clientId );\n\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t! canIndent ||\n\t\t\t\t\tkeyCode !== SPACE ||\n\t\t\t\t\t// Only override when no modifiers are pressed.\n\t\t\t\t\tshiftKey ||\n\t\t\t\t\taltKey ||\n\t\t\t\t\tmetaKey ||\n\t\t\t\t\tctrlKey\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t\tif (\n\t\t\t\t\tselectionStart.offset === 0 &&\n\t\t\t\t\tselectionEnd.offset === 0\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tindentListItem();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t\t};\n\t\t},\n\t\t[ canIndent, indentListItem ]\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,kBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGe,SAASM,QAAQA,CAAEC,QAAQ,EAAG;EAC5C,MAAM;IAAEC,iBAAiB;IAAEC;EAAgB,CAAC,GAC3C,IAAAC,eAAS,EAAEC,kBAAiB,CAAC;EAC9B,MAAM,CAAEC,SAAS,EAAEC,cAAc,CAAE,GAAG,IAAAC,0BAAiB,EAAEP,QAAS,CAAC;EAEnE,OAAO,IAAAQ,qBAAY,EAChBC,OAAO,IAAM;IACd,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,MAAM;QAAEC,OAAO;QAAEC,QAAQ;QAAEC,MAAM;QAAEC,OAAO;QAAEC;MAAQ,CAAC,GAAGL,KAAK;MAE7D,IACCA,KAAK,CAACM,gBAAgB,IACtB,CAAEZ,SAAS,IACXO,OAAO,KAAKM,eAAK;MACjB;MACAL,QAAQ,IACRC,MAAM,IACNC,OAAO,IACPC,OAAO,EACN;QACD;MACD;MAEA,MAAMG,cAAc,GAAGlB,iBAAiB,CAAC,CAAC;MAC1C,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;MACtC,IACCiB,cAAc,CAACE,MAAM,KAAK,CAAC,IAC3BD,YAAY,CAACC,MAAM,KAAK,CAAC,EACxB;QACDV,KAAK,CAACW,cAAc,CAAC,CAAC;QACtBhB,cAAc,CAAC,CAAC;MACjB;IACD;IAEAG,OAAO,CAACc,gBAAgB,CAAE,SAAS,EAAEb,SAAU,CAAC;IAChD,OAAO,MAAM;MACZD,OAAO,CAACe,mBAAmB,CAAE,SAAS,EAAEd,SAAU,CAAC;IACpD,CAAC;EACF,CAAC,EACD,CAAEL,SAAS,EAAEC,cAAc,CAC5B,CAAC;AACF"}
1
+ {"version":3,"names":["_compose","require","_keycodes","_blockEditor","_data","_useIndentListItem","_interopRequireDefault","useSpace","clientId","getSelectionStart","getSelectionEnd","getBlockIndex","useSelect","blockEditorStore","indentListItem","useIndentListItem","useRefEffect","element","onKeyDown","event","keyCode","shiftKey","altKey","metaKey","ctrlKey","defaultPrevented","SPACE","selectionStart","selectionEnd","offset","preventDefault","addEventListener","removeEventListener"],"sources":["@wordpress/block-library/src/list-item/hooks/use-space.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { SPACE } from '@wordpress/keycodes';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useIndentListItem from './use-indent-list-item';\n\nexport default function useSpace( clientId ) {\n\tconst { getSelectionStart, getSelectionEnd, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst indentListItem = useIndentListItem( clientId );\n\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\tkeyCode !== SPACE ||\n\t\t\t\t\t// Only override when no modifiers are pressed.\n\t\t\t\t\tshiftKey ||\n\t\t\t\t\taltKey ||\n\t\t\t\t\tmetaKey ||\n\t\t\t\t\tctrlKey\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockIndex( clientId ) === 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t\tif (\n\t\t\t\t\tselectionStart.offset === 0 &&\n\t\t\t\t\tselectionEnd.offset === 0\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tindentListItem();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t\t};\n\t\t},\n\t\t[ clientId, indentListItem ]\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,kBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGe,SAASM,QAAQA,CAAEC,QAAQ,EAAG;EAC5C,MAAM;IAAEC,iBAAiB;IAAEC,eAAe;IAAEC;EAAc,CAAC,GAC1D,IAAAC,eAAS,EAAEC,kBAAiB,CAAC;EAC9B,MAAMC,cAAc,GAAG,IAAAC,0BAAiB,EAAEP,QAAS,CAAC;EAEpD,OAAO,IAAAQ,qBAAY,EAChBC,OAAO,IAAM;IACd,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,MAAM;QAAEC,OAAO;QAAEC,QAAQ;QAAEC,MAAM;QAAEC,OAAO;QAAEC;MAAQ,CAAC,GAAGL,KAAK;MAE7D,IACCA,KAAK,CAACM,gBAAgB,IACtBL,OAAO,KAAKM,eAAK;MACjB;MACAL,QAAQ,IACRC,MAAM,IACNC,OAAO,IACPC,OAAO,EACN;QACD;MACD;MAEA,IAAKb,aAAa,CAAEH,QAAS,CAAC,KAAK,CAAC,EAAG;QACtC;MACD;MAEA,MAAMmB,cAAc,GAAGlB,iBAAiB,CAAC,CAAC;MAC1C,MAAMmB,YAAY,GAAGlB,eAAe,CAAC,CAAC;MACtC,IACCiB,cAAc,CAACE,MAAM,KAAK,CAAC,IAC3BD,YAAY,CAACC,MAAM,KAAK,CAAC,EACxB;QACDV,KAAK,CAACW,cAAc,CAAC,CAAC;QACtBhB,cAAc,CAAC,CAAC;MACjB;IACD;IAEAG,OAAO,CAACc,gBAAgB,CAAE,SAAS,EAAEb,SAAU,CAAC;IAChD,OAAO,MAAM;MACZD,OAAO,CAACe,mBAAmB,CAAE,SAAS,EAAEd,SAAU,CAAC;IACpD,CAAC;EACF,CAAC,EACD,CAAEV,QAAQ,EAAEM,cAAc,CAC3B,CAAC;AACF"}
@@ -180,6 +180,7 @@ class MediaContainer extends _element.Component {
180
180
  } = this.props;
181
181
  const {
182
182
  isUploadFailed,
183
+ isUploadPaused,
183
184
  retryMessage
184
185
  } = params;
185
186
  const focalPointValues = !focalPoint ? _components.IMAGE_DEFAULT_FOCAL_POINT : focalPoint;
@@ -199,6 +200,7 @@ class MediaContainer extends _element.Component {
199
200
  focalPoint: imageFill && focalPointValues,
200
201
  isSelected: isMediaSelected,
201
202
  isUploadFailed: isUploadFailed,
203
+ isUploadPaused: isUploadPaused,
202
204
  isUploadInProgress: isUploadInProgress,
203
205
  onSelectMediaUploadOption: this.onSelectMediaUploadOption,
204
206
  openMediaOptions: openMediaOptions,
@@ -300,6 +302,7 @@ class MediaContainer extends _element.Component {
300
302
  }) => {
301
303
  onSetOpenPickerRef(open);
302
304
  return (0, _react.createElement)(_react.Fragment, null, getMediaOptions(), (0, _react.createElement)(_blockEditor.MediaUploadProgress, {
305
+ enablePausedUploads: true,
303
306
  coverUrl: coverUrl,
304
307
  mediaId: mediaId,
305
308
  onUpdateMediaProgress: this.updateMediaProgress,