@wordpress/block-editor 12.21.0 → 12.22.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 (213) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-actions/index.js +2 -4
  3. package/build/components/block-actions/index.js.map +1 -1
  4. package/build/components/block-heading-level-dropdown/index.js +5 -5
  5. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  6. package/build/components/block-heading-level-dropdown/index.native.js +5 -4
  7. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  8. package/build/components/block-list/block-crash-boundary.native.js +49 -0
  9. package/build/components/block-list/block-crash-boundary.native.js.map +1 -0
  10. package/build/components/block-list/block-crash-warning.native.js +24 -0
  11. package/build/components/block-list/block-crash-warning.native.js.map +1 -0
  12. package/build/components/block-list/block.native.js +7 -2
  13. package/build/components/block-list/block.native.js.map +1 -1
  14. package/build/components/block-settings/container.native.js +2 -1
  15. package/build/components/block-settings/container.native.js.map +1 -1
  16. package/build/components/block-settings-menu/block-settings-dropdown.js +29 -29
  17. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  18. package/build/components/block-settings-menu-controls/index.js +1 -3
  19. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  20. package/build/components/block-toolbar/index.js +3 -1
  21. package/build/components/block-toolbar/index.js.map +1 -1
  22. package/build/components/block-toolbar/shuffle.js +1 -1
  23. package/build/components/block-toolbar/shuffle.js.map +1 -1
  24. package/build/components/child-layout-control/index.js +108 -11
  25. package/build/components/child-layout-control/index.js.map +1 -1
  26. package/build/components/convert-to-group-buttons/toolbar.js +11 -0
  27. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  28. package/build/components/global-styles/dimensions-panel.js +8 -33
  29. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  30. package/build/components/global-styles/use-global-styles-output.js +1 -1
  31. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  32. package/build/components/global-styles/utils.js +1 -3
  33. package/build/components/global-styles/utils.js.map +1 -1
  34. package/build/components/iframe/index.js +34 -30
  35. package/build/components/iframe/index.js.map +1 -1
  36. package/build/components/inserter/block-patterns-explorer/index.js +3 -6
  37. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
  38. package/build/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
  39. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  40. package/build/components/inserter/menu.js +3 -9
  41. package/build/components/inserter/menu.js.map +1 -1
  42. package/build/components/inserter/mobile-tab-navigation.js +1 -1
  43. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  44. package/build/components/inserter/search-results.js +2 -3
  45. package/build/components/inserter/search-results.js.map +1 -1
  46. package/build/components/inserter/tabs.js +1 -2
  47. package/build/components/inserter/tabs.js.map +1 -1
  48. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js +36 -0
  49. package/build/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
  50. package/build/components/list-view/block-select-button.js +2 -12
  51. package/build/components/list-view/block-select-button.js.map +1 -1
  52. package/build/components/list-view/block.js +4 -11
  53. package/build/components/list-view/block.js.map +1 -1
  54. package/build/components/list-view/utils.js +5 -3
  55. package/build/components/list-view/utils.js.map +1 -1
  56. package/build/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  57. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  58. package/build/components/use-moving-animation/index.js +4 -0
  59. package/build/components/use-moving-animation/index.js.map +1 -1
  60. package/build/components/warning/index.native.js +9 -4
  61. package/build/components/warning/index.native.js.map +1 -1
  62. package/build/hooks/anchor.js +7 -8
  63. package/build/hooks/anchor.js.map +1 -1
  64. package/build/hooks/background.js +39 -2
  65. package/build/hooks/background.js.map +1 -1
  66. package/build/hooks/index.js +2 -1
  67. package/build/hooks/index.js.map +1 -1
  68. package/build/hooks/layout-child.js +28 -6
  69. package/build/hooks/layout-child.js.map +1 -1
  70. package/build/hooks/layout.js +21 -10
  71. package/build/hooks/layout.js.map +1 -1
  72. package/build/hooks/position.js +1 -1
  73. package/build/hooks/position.js.map +1 -1
  74. package/build/private-apis.native.js +3 -1
  75. package/build/private-apis.native.js.map +1 -1
  76. package/build/store/reducer.js +31 -26
  77. package/build/store/reducer.js.map +1 -1
  78. package/build-module/components/block-actions/index.js +2 -4
  79. package/build-module/components/block-actions/index.js.map +1 -1
  80. package/build-module/components/block-heading-level-dropdown/index.js +5 -5
  81. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  82. package/build-module/components/block-heading-level-dropdown/index.native.js +5 -4
  83. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  84. package/build-module/components/block-list/block-crash-boundary.native.js +42 -0
  85. package/build-module/components/block-list/block-crash-boundary.native.js.map +1 -0
  86. package/build-module/components/block-list/block-crash-warning.native.js +15 -0
  87. package/build-module/components/block-list/block-crash-warning.native.js.map +1 -0
  88. package/build-module/components/block-list/block.native.js +7 -2
  89. package/build-module/components/block-list/block.native.js.map +1 -1
  90. package/build-module/components/block-settings/container.native.js +3 -2
  91. package/build-module/components/block-settings/container.native.js.map +1 -1
  92. package/build-module/components/block-settings-menu/block-settings-dropdown.js +30 -30
  93. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  94. package/build-module/components/block-settings-menu-controls/index.js +1 -3
  95. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  96. package/build-module/components/block-toolbar/index.js +3 -1
  97. package/build-module/components/block-toolbar/index.js.map +1 -1
  98. package/build-module/components/block-toolbar/shuffle.js +1 -1
  99. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  100. package/build-module/components/child-layout-control/index.js +109 -12
  101. package/build-module/components/child-layout-control/index.js.map +1 -1
  102. package/build-module/components/convert-to-group-buttons/toolbar.js +12 -1
  103. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  104. package/build-module/components/global-styles/dimensions-panel.js +9 -34
  105. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  106. package/build-module/components/global-styles/use-global-styles-output.js +1 -1
  107. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  108. package/build-module/components/global-styles/utils.js +0 -2
  109. package/build-module/components/global-styles/utils.js.map +1 -1
  110. package/build-module/components/iframe/index.js +34 -30
  111. package/build-module/components/iframe/index.js.map +1 -1
  112. package/build-module/components/inserter/block-patterns-explorer/index.js +3 -6
  113. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
  114. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +3 -1
  115. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  116. package/build-module/components/inserter/menu.js +3 -9
  117. package/build-module/components/inserter/menu.js.map +1 -1
  118. package/build-module/components/inserter/mobile-tab-navigation.js +1 -1
  119. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  120. package/build-module/components/inserter/search-results.js +2 -3
  121. package/build-module/components/inserter/search-results.js.map +1 -1
  122. package/build-module/components/inserter/tabs.js +1 -2
  123. package/build-module/components/inserter/tabs.js.map +1 -1
  124. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js +28 -0
  125. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.native.js.map +1 -0
  126. package/build-module/components/list-view/block-select-button.js +3 -13
  127. package/build-module/components/list-view/block-select-button.js.map +1 -1
  128. package/build-module/components/list-view/block.js +6 -13
  129. package/build-module/components/list-view/block.js.map +1 -1
  130. package/build-module/components/list-view/utils.js +2 -1
  131. package/build-module/components/list-view/utils.js.map +1 -1
  132. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  133. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  134. package/build-module/components/use-moving-animation/index.js +4 -0
  135. package/build-module/components/use-moving-animation/index.js.map +1 -1
  136. package/build-module/components/warning/index.native.js +9 -4
  137. package/build-module/components/warning/index.native.js.map +1 -1
  138. package/build-module/hooks/anchor.js +8 -9
  139. package/build-module/hooks/anchor.js.map +1 -1
  140. package/build-module/hooks/background.js +38 -1
  141. package/build-module/hooks/background.js.map +1 -1
  142. package/build-module/hooks/index.js +2 -1
  143. package/build-module/hooks/index.js.map +1 -1
  144. package/build-module/hooks/layout-child.js +28 -6
  145. package/build-module/hooks/layout-child.js.map +1 -1
  146. package/build-module/hooks/layout.js +21 -10
  147. package/build-module/hooks/layout.js.map +1 -1
  148. package/build-module/hooks/position.js +1 -1
  149. package/build-module/hooks/position.js.map +1 -1
  150. package/build-module/private-apis.native.js +3 -1
  151. package/build-module/private-apis.native.js.map +1 -1
  152. package/build-module/store/reducer.js +31 -26
  153. package/build-module/store/reducer.js.map +1 -1
  154. package/build-style/content-rtl.css +14 -0
  155. package/build-style/content.css +14 -0
  156. package/build-style/style-rtl.css +8 -20
  157. package/build-style/style.css +8 -20
  158. package/package.json +31 -31
  159. package/src/components/block-actions/index.js +2 -8
  160. package/src/components/block-bindings-toolbar-indicator/style.scss +10 -8
  161. package/src/components/block-heading-level-dropdown/README.md +5 -5
  162. package/src/components/block-heading-level-dropdown/index.js +5 -5
  163. package/src/components/block-heading-level-dropdown/index.native.js +5 -4
  164. package/src/components/block-list/block-crash-boundary.native.js +43 -0
  165. package/src/components/block-list/block-crash-warning.native.js +19 -0
  166. package/src/components/block-list/block.native.js +14 -7
  167. package/src/components/block-list/content.scss +16 -0
  168. package/src/components/block-settings/container.native.js +5 -1
  169. package/src/components/block-settings-menu/block-settings-dropdown.js +41 -56
  170. package/src/components/block-settings-menu-controls/README.md +0 -9
  171. package/src/components/block-settings-menu-controls/index.js +1 -6
  172. package/src/components/block-toolbar/index.js +3 -1
  173. package/src/components/block-toolbar/shuffle.js +1 -1
  174. package/src/components/block-toolbar/test/index.native.js +1 -7
  175. package/src/components/child-layout-control/index.js +147 -35
  176. package/src/components/convert-to-group-buttons/toolbar.js +13 -1
  177. package/src/components/global-styles/dimensions-panel.js +9 -34
  178. package/src/components/global-styles/test/use-global-styles-output.js +31 -0
  179. package/src/components/global-styles/use-global-styles-output.js +3 -1
  180. package/src/components/global-styles/utils.js +0 -18
  181. package/src/components/iframe/index.js +60 -44
  182. package/src/components/inserter/block-patterns-explorer/index.js +2 -9
  183. package/src/components/inserter/block-patterns-explorer/pattern-list.js +7 -1
  184. package/src/components/inserter/menu.js +4 -10
  185. package/src/components/inserter/mobile-tab-navigation.js +1 -1
  186. package/src/components/inserter/search-results.js +1 -2
  187. package/src/components/inserter/tabs.js +1 -2
  188. package/src/components/inspector-controls-tabs/advanced-controls-panel.native.js +31 -0
  189. package/src/components/link-control/style.scss +0 -5
  190. package/src/components/list-view/block-select-button.js +2 -18
  191. package/src/components/list-view/block.js +12 -21
  192. package/src/components/list-view/style.scss +34 -24
  193. package/src/components/list-view/utils.js +4 -1
  194. package/src/components/rich-text/README.md +6 -0
  195. package/src/components/spacing-sizes-control/sides-dropdown/index.js +1 -1
  196. package/src/components/use-moving-animation/index.js +1 -0
  197. package/src/components/warning/index.native.js +19 -15
  198. package/src/hooks/anchor.js +41 -61
  199. package/src/hooks/background.js +48 -3
  200. package/src/hooks/index.js +2 -0
  201. package/src/hooks/layout-child.js +44 -8
  202. package/src/hooks/layout.js +22 -18
  203. package/src/hooks/position.js +1 -1
  204. package/src/hooks/test/__snapshots__/anchor.native.js.snap +7 -0
  205. package/src/hooks/test/anchor.native.js +32 -0
  206. package/src/private-apis.native.js +2 -0
  207. package/src/store/reducer.js +41 -41
  208. package/tsconfig.json +1 -0
  209. package/build/utils/calculate-scale.js +0 -17
  210. package/build/utils/calculate-scale.js.map +0 -1
  211. package/build-module/utils/calculate-scale.js +0 -11
  212. package/build-module/utils/calculate-scale.js.map +0 -1
  213. package/src/utils/calculate-scale.js +0 -20
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_components","_compose","_a11y","_data","_blockTypesList","_interopRequireDefault","_blockPatternsList","_inserterMenuExtension","_panel","_noResults","_useInsertionPoint","_usePatternsState","_useBlockTypesState","_searchItems","_inserterListbox","_sorting","_orderInserterBlockItems","_store","INITIAL_INSERTER_RESULTS","EMPTY_ARRAY","InserterSearchResults","filterValue","onSelect","onHover","onHoverPattern","rootClientId","clientId","isAppender","__experimentalInsertionIndex","maxBlockPatterns","maxBlockTypes","showBlockDirectory","isDraggable","shouldFocusBlock","prioritizePatterns","selectBlockOnInsert","showBlocks","debouncedSpeak","useDebounce","speak","prioritizedBlocks","useSelect","select","blockListSettings","blockEditorStore","getBlockListSettings","prioritizedInserterBlocks","destinationRootClientId","onInsertBlocks","useInsertionPoint","insertionIndex","blockTypes","blockTypeCategories","blockTypeCollections","onSelectBlockType","useBlockTypesState","patterns","onClickPattern","usePatternsState","filteredBlockPatterns","useMemo","results","searchItems","undefined","slice","maxBlockTypesToShow","length","filteredBlockTypes","nonPatternBlockTypes","filter","blockType","name","orderedItems","orderBy","orderInserterBlockItems","searchBlockItems","useEffect","count","resultsFoundMessage","sprintf","_n","currentShownBlockTypes","useAsyncList","step","currentShownPatterns","hasItems","blocksUI","_react","createElement","default","title","VisuallyHidden","__","items","label","patternsUI","className","shownPatterns","blockPatterns","Slot","fillProps","fills","_default","exports"],"sources":["@wordpress/block-editor/src/components/inserter/search-results.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useEffect } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { useDebounce, useAsyncList } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport BlockPatternsList from '../block-patterns-list';\nimport __unstableInserterMenuExtension from '../inserter-menu-extension';\nimport InserterPanel from './panel';\nimport InserterNoResults from './no-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { searchBlockItems, searchItems } from './search-items';\nimport InserterListbox from '../inserter-listbox';\nimport { orderBy } from '../../utils/sorting';\nimport { orderInserterBlockItems } from '../../utils/order-inserter-block-items';\nimport { store as blockEditorStore } from '../../store';\n\nconst INITIAL_INSERTER_RESULTS = 9;\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation and rerendering the component.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nfunction InserterSearchResults( {\n\tfilterValue,\n\tonSelect,\n\tonHover,\n\tonHoverPattern,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\t__experimentalInsertionIndex,\n\tmaxBlockPatterns,\n\tmaxBlockTypes,\n\tshowBlockDirectory = false,\n\tisDraggable = true,\n\tshouldFocusBlock = true,\n\tprioritizePatterns,\n\tselectBlockOnInsert,\n\tshowBlocks = true,\n} ) {\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tconst { prioritizedBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst blockListSettings =\n\t\t\t\tselect( blockEditorStore ).getBlockListSettings( rootClientId );\n\n\t\t\treturn {\n\t\t\t\tprioritizedBlocks:\n\t\t\t\t\tblockListSettings?.prioritizedInserterBlocks || EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\tshouldFocusBlock,\n\t\tselectBlockOnInsert,\n\t} );\n\tconst [\n\t\tblockTypes,\n\t\tblockTypeCategories,\n\t\tblockTypeCollections,\n\t\tonSelectBlockType,\n\t] = useBlockTypesState( destinationRootClientId, onInsertBlocks );\n\tconst [ patterns, , onClickPattern ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\tif ( maxBlockPatterns === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst results = searchItems( patterns, filterValue );\n\t\treturn maxBlockPatterns !== undefined\n\t\t\t? results.slice( 0, maxBlockPatterns )\n\t\t\t: results;\n\t}, [ filterValue, patterns, maxBlockPatterns ] );\n\n\tlet maxBlockTypesToShow = maxBlockTypes;\n\tif ( prioritizePatterns && filteredBlockPatterns.length > 2 ) {\n\t\tmaxBlockTypesToShow = 0;\n\t}\n\n\tconst filteredBlockTypes = useMemo( () => {\n\t\tif ( maxBlockTypesToShow === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst nonPatternBlockTypes = blockTypes.filter(\n\t\t\t( blockType ) => blockType.name !== 'core/block'\n\t\t);\n\t\tlet orderedItems = orderBy( nonPatternBlockTypes, 'frecency', 'desc' );\n\n\t\tif ( ! filterValue && prioritizedBlocks.length ) {\n\t\t\torderedItems = orderInserterBlockItems(\n\t\t\t\torderedItems,\n\t\t\t\tprioritizedBlocks\n\t\t\t);\n\t\t}\n\n\t\tconst results = searchBlockItems(\n\t\t\torderedItems,\n\t\t\tblockTypeCategories,\n\t\t\tblockTypeCollections,\n\t\t\tfilterValue\n\t\t);\n\n\t\treturn maxBlockTypesToShow !== undefined\n\t\t\t? results.slice( 0, maxBlockTypesToShow )\n\t\t\t: results;\n\t}, [\n\t\tfilterValue,\n\t\tblockTypes,\n\t\tblockTypeCategories,\n\t\tblockTypeCollections,\n\t\tmaxBlockTypesToShow,\n\t\tprioritizedBlocks,\n\t] );\n\n\t// Announce search results on change.\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = filteredBlockTypes.length + filteredBlockPatterns.length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [\n\t\tfilterValue,\n\t\tdebouncedSpeak,\n\t\tfilteredBlockTypes,\n\t\tfilteredBlockPatterns,\n\t] );\n\n\tconst currentShownBlockTypes = useAsyncList( filteredBlockTypes, {\n\t\tstep: INITIAL_INSERTER_RESULTS,\n\t} );\n\tconst currentShownPatterns = useAsyncList(\n\t\tcurrentShownBlockTypes.length === filteredBlockTypes.length\n\t\t\t? filteredBlockPatterns\n\t\t\t: EMPTY_ARRAY\n\t);\n\n\tconst hasItems =\n\t\tfilteredBlockTypes.length > 0 || filteredBlockPatterns.length > 0;\n\n\tconst blocksUI = showBlocks && !! filteredBlockTypes.length && (\n\t\t<InserterPanel\n\t\t\ttitle={ <VisuallyHidden>{ __( 'Blocks' ) }</VisuallyHidden> }\n\t\t>\n\t\t\t<BlockTypesList\n\t\t\t\titems={ currentShownBlockTypes }\n\t\t\t\tonSelect={ onSelectBlockType }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ __( 'Blocks' ) }\n\t\t\t\tisDraggable={ isDraggable }\n\t\t\t/>\n\t\t</InserterPanel>\n\t);\n\n\tconst patternsUI = !! filteredBlockPatterns.length && (\n\t\t<InserterPanel\n\t\t\ttitle={\n\t\t\t\t<VisuallyHidden>{ __( 'Block patterns' ) }</VisuallyHidden>\n\t\t\t}\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-patterns\">\n\t\t\t\t<BlockPatternsList\n\t\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\tonClickPattern={ onClickPattern }\n\t\t\t\t\tonHover={ onHoverPattern }\n\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</InserterPanel>\n\t);\n\n\treturn (\n\t\t<InserterListbox>\n\t\t\t{ ! showBlockDirectory && ! hasItems && <InserterNoResults /> }\n\n\t\t\t{ prioritizePatterns ? patternsUI : blocksUI }\n\n\t\t\t{ !! filteredBlockTypes.length &&\n\t\t\t\t!! filteredBlockPatterns.length && (\n\t\t\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\t\t\t\t) }\n\n\t\t\t{ prioritizePatterns ? blocksUI : patternsUI }\n\n\t\t\t{ showBlockDirectory && (\n\t\t\t\t<__unstableInserterMenuExtension.Slot\n\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\tonSelect: onSelectBlockType,\n\t\t\t\t\t\tonHover,\n\t\t\t\t\t\tfilterValue,\n\t\t\t\t\t\thasItems,\n\t\t\t\t\t\trootClientId: destinationRootClientId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( fills ) => {\n\t\t\t\t\t\tif ( fills.length ) {\n\t\t\t\t\t\t\treturn fills;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( ! hasItems ) {\n\t\t\t\t\t\t\treturn <InserterNoResults />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} }\n\t\t\t\t</__unstableInserterMenuExtension.Slot>\n\t\t\t) }\n\t\t</InserterListbox>\n\t);\n}\n\nexport default InserterSearchResults;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_i18n","_components","_compose","_a11y","_data","_blockTypesList","_interopRequireDefault","_blockPatternsList","_inserterMenuExtension","_panel","_noResults","_useInsertionPoint","_usePatternsState","_useBlockTypesState","_searchItems","_inserterListbox","_sorting","_orderInserterBlockItems","_store","INITIAL_INSERTER_RESULTS","EMPTY_ARRAY","InserterSearchResults","filterValue","onSelect","onHover","onHoverPattern","rootClientId","clientId","isAppender","__experimentalInsertionIndex","maxBlockPatterns","maxBlockTypes","showBlockDirectory","isDraggable","shouldFocusBlock","prioritizePatterns","selectBlockOnInsert","debouncedSpeak","useDebounce","speak","prioritizedBlocks","useSelect","select","blockListSettings","blockEditorStore","getBlockListSettings","prioritizedInserterBlocks","destinationRootClientId","onInsertBlocks","useInsertionPoint","insertionIndex","blockTypes","blockTypeCategories","blockTypeCollections","onSelectBlockType","useBlockTypesState","patterns","onClickPattern","usePatternsState","filteredBlockPatterns","useMemo","results","searchItems","undefined","slice","maxBlockTypesToShow","length","filteredBlockTypes","nonPatternBlockTypes","filter","blockType","name","orderedItems","orderBy","orderInserterBlockItems","searchBlockItems","useEffect","count","resultsFoundMessage","sprintf","_n","currentShownBlockTypes","useAsyncList","step","currentShownPatterns","hasItems","blocksUI","_react","createElement","default","title","VisuallyHidden","__","items","label","patternsUI","className","shownPatterns","blockPatterns","Slot","fillProps","fills","_default","exports"],"sources":["@wordpress/block-editor/src/components/inserter/search-results.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useEffect } from '@wordpress/element';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { useDebounce, useAsyncList } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport BlockPatternsList from '../block-patterns-list';\nimport __unstableInserterMenuExtension from '../inserter-menu-extension';\nimport InserterPanel from './panel';\nimport InserterNoResults from './no-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { searchBlockItems, searchItems } from './search-items';\nimport InserterListbox from '../inserter-listbox';\nimport { orderBy } from '../../utils/sorting';\nimport { orderInserterBlockItems } from '../../utils/order-inserter-block-items';\nimport { store as blockEditorStore } from '../../store';\n\nconst INITIAL_INSERTER_RESULTS = 9;\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation and rerendering the component.\n *\n * @type {Array}\n */\nconst EMPTY_ARRAY = [];\n\nfunction InserterSearchResults( {\n\tfilterValue,\n\tonSelect,\n\tonHover,\n\tonHoverPattern,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\t__experimentalInsertionIndex,\n\tmaxBlockPatterns,\n\tmaxBlockTypes,\n\tshowBlockDirectory = false,\n\tisDraggable = true,\n\tshouldFocusBlock = true,\n\tprioritizePatterns,\n\tselectBlockOnInsert,\n} ) {\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tconst { prioritizedBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst blockListSettings =\n\t\t\t\tselect( blockEditorStore ).getBlockListSettings( rootClientId );\n\n\t\t\treturn {\n\t\t\t\tprioritizedBlocks:\n\t\t\t\t\tblockListSettings?.prioritizedInserterBlocks || EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\tshouldFocusBlock,\n\t\tselectBlockOnInsert,\n\t} );\n\tconst [\n\t\tblockTypes,\n\t\tblockTypeCategories,\n\t\tblockTypeCollections,\n\t\tonSelectBlockType,\n\t] = useBlockTypesState( destinationRootClientId, onInsertBlocks );\n\tconst [ patterns, , onClickPattern ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\tif ( maxBlockPatterns === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst results = searchItems( patterns, filterValue );\n\t\treturn maxBlockPatterns !== undefined\n\t\t\t? results.slice( 0, maxBlockPatterns )\n\t\t\t: results;\n\t}, [ filterValue, patterns, maxBlockPatterns ] );\n\n\tlet maxBlockTypesToShow = maxBlockTypes;\n\tif ( prioritizePatterns && filteredBlockPatterns.length > 2 ) {\n\t\tmaxBlockTypesToShow = 0;\n\t}\n\n\tconst filteredBlockTypes = useMemo( () => {\n\t\tif ( maxBlockTypesToShow === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst nonPatternBlockTypes = blockTypes.filter(\n\t\t\t( blockType ) => blockType.name !== 'core/block'\n\t\t);\n\t\tlet orderedItems = orderBy( nonPatternBlockTypes, 'frecency', 'desc' );\n\n\t\tif ( ! filterValue && prioritizedBlocks.length ) {\n\t\t\torderedItems = orderInserterBlockItems(\n\t\t\t\torderedItems,\n\t\t\t\tprioritizedBlocks\n\t\t\t);\n\t\t}\n\n\t\tconst results = searchBlockItems(\n\t\t\torderedItems,\n\t\t\tblockTypeCategories,\n\t\t\tblockTypeCollections,\n\t\t\tfilterValue\n\t\t);\n\n\t\treturn maxBlockTypesToShow !== undefined\n\t\t\t? results.slice( 0, maxBlockTypesToShow )\n\t\t\t: results;\n\t}, [\n\t\tfilterValue,\n\t\tblockTypes,\n\t\tblockTypeCategories,\n\t\tblockTypeCollections,\n\t\tmaxBlockTypesToShow,\n\t\tprioritizedBlocks,\n\t] );\n\n\t// Announce search results on change.\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = filteredBlockTypes.length + filteredBlockPatterns.length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [\n\t\tfilterValue,\n\t\tdebouncedSpeak,\n\t\tfilteredBlockTypes,\n\t\tfilteredBlockPatterns,\n\t] );\n\n\tconst currentShownBlockTypes = useAsyncList( filteredBlockTypes, {\n\t\tstep: INITIAL_INSERTER_RESULTS,\n\t} );\n\tconst currentShownPatterns = useAsyncList(\n\t\tcurrentShownBlockTypes.length === filteredBlockTypes.length\n\t\t\t? filteredBlockPatterns\n\t\t\t: EMPTY_ARRAY\n\t);\n\n\tconst hasItems =\n\t\tfilteredBlockTypes.length > 0 || filteredBlockPatterns.length > 0;\n\n\tconst blocksUI = !! filteredBlockTypes.length && (\n\t\t<InserterPanel\n\t\t\ttitle={ <VisuallyHidden>{ __( 'Blocks' ) }</VisuallyHidden> }\n\t\t>\n\t\t\t<BlockTypesList\n\t\t\t\titems={ currentShownBlockTypes }\n\t\t\t\tonSelect={ onSelectBlockType }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ __( 'Blocks' ) }\n\t\t\t\tisDraggable={ isDraggable }\n\t\t\t/>\n\t\t</InserterPanel>\n\t);\n\n\tconst patternsUI = !! filteredBlockPatterns.length && (\n\t\t<InserterPanel\n\t\t\ttitle={\n\t\t\t\t<VisuallyHidden>{ __( 'Block patterns' ) }</VisuallyHidden>\n\t\t\t}\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-patterns\">\n\t\t\t\t<BlockPatternsList\n\t\t\t\t\tshownPatterns={ currentShownPatterns }\n\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\tonClickPattern={ onClickPattern }\n\t\t\t\t\tonHover={ onHoverPattern }\n\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</InserterPanel>\n\t);\n\n\treturn (\n\t\t<InserterListbox>\n\t\t\t{ ! showBlockDirectory && ! hasItems && <InserterNoResults /> }\n\n\t\t\t{ prioritizePatterns ? patternsUI : blocksUI }\n\n\t\t\t{ !! filteredBlockTypes.length &&\n\t\t\t\t!! filteredBlockPatterns.length && (\n\t\t\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\t\t\t\t) }\n\n\t\t\t{ prioritizePatterns ? blocksUI : patternsUI }\n\n\t\t\t{ showBlockDirectory && (\n\t\t\t\t<__unstableInserterMenuExtension.Slot\n\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\tonSelect: onSelectBlockType,\n\t\t\t\t\t\tonHover,\n\t\t\t\t\t\tfilterValue,\n\t\t\t\t\t\thasItems,\n\t\t\t\t\t\trootClientId: destinationRootClientId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( fills ) => {\n\t\t\t\t\t\tif ( fills.length ) {\n\t\t\t\t\t\t\treturn fills;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( ! hasItems ) {\n\t\t\t\t\t\t\treturn <InserterNoResults />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t} }\n\t\t\t\t</__unstableInserterMenuExtension.Slot>\n\t\t\t) }\n\t\t</InserterListbox>\n\t);\n}\n\nexport default InserterSearchResults;\n"],"mappings":"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"}
@@ -35,13 +35,12 @@ const mediaTab = {
35
35
  title: (0, _i18n.__)('Media')
36
36
  };
37
37
  function InserterTabs({
38
- showBlocks = true,
39
38
  showPatterns = false,
40
39
  showMedia = false,
41
40
  onSelect,
42
41
  tabsContents
43
42
  }) {
44
- const tabs = [showBlocks && blocksTab, showPatterns && patternsTab, showMedia && mediaTab].filter(Boolean);
43
+ const tabs = [blocksTab, showPatterns && patternsTab, showMedia && mediaTab].filter(Boolean);
45
44
  return (0, _react.createElement)("div", {
46
45
  className: "block-editor-inserter__tabs"
47
46
  }, (0, _react.createElement)(Tabs, {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_lockUnlock","Tabs","unlock","componentsPrivateApis","blocksTab","name","title","__","patternsTab","mediaTab","InserterTabs","showBlocks","showPatterns","showMedia","onSelect","tabsContents","tabs","filter","Boolean","_react","createElement","className","TabList","map","tab","Tab","key","tabId","TabPanel","focusable","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter/tabs.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst blocksTab = {\n\tname: 'blocks',\n\t/* translators: Blocks tab title in the block inserter. */\n\ttitle: __( 'Blocks' ),\n};\nconst patternsTab = {\n\tname: 'patterns',\n\t/* translators: Theme and Directory Patterns tab title in the block inserter. */\n\ttitle: __( 'Patterns' ),\n};\n\nconst mediaTab = {\n\tname: 'media',\n\t/* translators: Media tab title in the block inserter. */\n\ttitle: __( 'Media' ),\n};\n\nfunction InserterTabs( {\n\tshowBlocks = true,\n\tshowPatterns = false,\n\tshowMedia = false,\n\tonSelect,\n\ttabsContents,\n} ) {\n\tconst tabs = [\n\t\tshowBlocks && blocksTab,\n\t\tshowPatterns && patternsTab,\n\t\tshowMedia && mediaTab,\n\t].filter( Boolean );\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__tabs\">\n\t\t\t<Tabs onSelect={ onSelect }>\n\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t<Tabs.Tab key={ tab.name } tabId={ tab.name }>\n\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ tabsContents[ tab.name ] }\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n\nexport default InserterTabs;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAM;EAAEG;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEhD,MAAMC,SAAS,GAAG;EACjBC,IAAI,EAAE,QAAQ;EACd;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,QAAS;AACrB,CAAC;AACD,MAAMC,WAAW,GAAG;EACnBH,IAAI,EAAE,UAAU;EAChB;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,UAAW;AACvB,CAAC;AAED,MAAME,QAAQ,GAAG;EAChBJ,IAAI,EAAE,OAAO;EACb;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ;AACpB,CAAC;AAED,SAASG,YAAYA,CAAE;EACtBC,UAAU,GAAG,IAAI;EACjBC,YAAY,GAAG,KAAK;EACpBC,SAAS,GAAG,KAAK;EACjBC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAMC,IAAI,GAAG,CACZL,UAAU,IAAIP,SAAS,EACvBQ,YAAY,IAAIJ,WAAW,EAC3BK,SAAS,IAAIJ,QAAQ,CACrB,CAACQ,MAAM,CAAEC,OAAQ,CAAC;EAEnB,OACC,IAAAC,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA6B,GAC3C,IAAAF,MAAA,CAAAC,aAAA,EAACnB,IAAI;IAACa,QAAQ,EAAGA;EAAU,GAC1B,IAAAK,MAAA,CAAAC,aAAA,EAACnB,IAAI,CAACqB,OAAO,QACVN,IAAI,CAACO,GAAG,CAAIC,GAAG,IAChB,IAAAL,MAAA,CAAAC,aAAA,EAACnB,IAAI,CAACwB,GAAG;IAACC,GAAG,EAAGF,GAAG,CAACnB,IAAM;IAACsB,KAAK,EAAGH,GAAG,CAACnB;EAAM,GAC1CmB,GAAG,CAAClB,KACG,CACT,CACW,CAAC,EACbU,IAAI,CAACO,GAAG,CAAIC,GAAG,IAChB,IAAAL,MAAA,CAAAC,aAAA,EAACnB,IAAI,CAAC2B,QAAQ;IACbF,GAAG,EAAGF,GAAG,CAACnB,IAAM;IAChBsB,KAAK,EAAGH,GAAG,CAACnB,IAAM;IAClBwB,SAAS,EAAG;EAAO,GAEjBd,YAAY,CAAES,GAAG,CAACnB,IAAI,CACV,CACd,CACG,CACF,CAAC;AAER;AAAC,IAAAyB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEctB,YAAY"}
1
+ {"version":3,"names":["_components","require","_i18n","_lockUnlock","Tabs","unlock","componentsPrivateApis","blocksTab","name","title","__","patternsTab","mediaTab","InserterTabs","showPatterns","showMedia","onSelect","tabsContents","tabs","filter","Boolean","_react","createElement","className","TabList","map","tab","Tab","key","tabId","TabPanel","focusable","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter/tabs.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst blocksTab = {\n\tname: 'blocks',\n\t/* translators: Blocks tab title in the block inserter. */\n\ttitle: __( 'Blocks' ),\n};\nconst patternsTab = {\n\tname: 'patterns',\n\t/* translators: Theme and Directory Patterns tab title in the block inserter. */\n\ttitle: __( 'Patterns' ),\n};\n\nconst mediaTab = {\n\tname: 'media',\n\t/* translators: Media tab title in the block inserter. */\n\ttitle: __( 'Media' ),\n};\n\nfunction InserterTabs( {\n\tshowPatterns = false,\n\tshowMedia = false,\n\tonSelect,\n\ttabsContents,\n} ) {\n\tconst tabs = [\n\t\tblocksTab,\n\t\tshowPatterns && patternsTab,\n\t\tshowMedia && mediaTab,\n\t].filter( Boolean );\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__tabs\">\n\t\t\t<Tabs onSelect={ onSelect }>\n\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t<Tabs.Tab key={ tab.name } tabId={ tab.name }>\n\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ tabsContents[ tab.name ] }\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) ) }\n\t\t\t</Tabs>\n\t\t</div>\n\t);\n}\n\nexport default InserterTabs;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAM;EAAEG;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEhD,MAAMC,SAAS,GAAG;EACjBC,IAAI,EAAE,QAAQ;EACd;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,QAAS;AACrB,CAAC;AACD,MAAMC,WAAW,GAAG;EACnBH,IAAI,EAAE,UAAU;EAChB;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,UAAW;AACvB,CAAC;AAED,MAAME,QAAQ,GAAG;EAChBJ,IAAI,EAAE,OAAO;EACb;EACAC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ;AACpB,CAAC;AAED,SAASG,YAAYA,CAAE;EACtBC,YAAY,GAAG,KAAK;EACpBC,SAAS,GAAG,KAAK;EACjBC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAMC,IAAI,GAAG,CACZX,SAAS,EACTO,YAAY,IAAIH,WAAW,EAC3BI,SAAS,IAAIH,QAAQ,CACrB,CAACO,MAAM,CAAEC,OAAQ,CAAC;EAEnB,OACC,IAAAC,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA6B,GAC3C,IAAAF,MAAA,CAAAC,aAAA,EAAClB,IAAI;IAACY,QAAQ,EAAGA;EAAU,GAC1B,IAAAK,MAAA,CAAAC,aAAA,EAAClB,IAAI,CAACoB,OAAO,QACVN,IAAI,CAACO,GAAG,CAAIC,GAAG,IAChB,IAAAL,MAAA,CAAAC,aAAA,EAAClB,IAAI,CAACuB,GAAG;IAACC,GAAG,EAAGF,GAAG,CAAClB,IAAM;IAACqB,KAAK,EAAGH,GAAG,CAAClB;EAAM,GAC1CkB,GAAG,CAACjB,KACG,CACT,CACW,CAAC,EACbS,IAAI,CAACO,GAAG,CAAIC,GAAG,IAChB,IAAAL,MAAA,CAAAC,aAAA,EAAClB,IAAI,CAAC0B,QAAQ;IACbF,GAAG,EAAGF,GAAG,CAAClB,IAAM;IAChBqB,KAAK,EAAGH,GAAG,CAAClB,IAAM;IAClBuB,SAAS,EAAG;EAAO,GAEjBd,YAAY,CAAES,GAAG,CAAClB,IAAI,CACV,CACd,CACG,CACF,CAAC;AAER;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcrB,YAAY"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = AdvancedControls;
8
+ var _react = require("react");
9
+ var _components = require("@wordpress/components");
10
+ var _i18n = require("@wordpress/i18n");
11
+ var _groups = _interopRequireDefault(require("../inspector-controls/groups"));
12
+ /**
13
+ * WordPress dependencies
14
+ */
15
+
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+
20
+ function AdvancedControls(props) {
21
+ const Slot = _groups.default.advanced?.Slot;
22
+ if (!Slot) {
23
+ return null;
24
+ }
25
+ return (0, _react.createElement)(Slot, {
26
+ ...props
27
+ }, fills => {
28
+ if (!fills.length) {
29
+ return null;
30
+ }
31
+ return (0, _react.createElement)(_components.PanelBody, {
32
+ title: (0, _i18n.__)('Advanced')
33
+ }, fills);
34
+ });
35
+ }
36
+ //# sourceMappingURL=advanced-controls-panel.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_i18n","_groups","_interopRequireDefault","AdvancedControls","props","Slot","groups","advanced","_react","createElement","fills","length","PanelBody","title","__"],"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/advanced-controls-panel.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport groups from '../inspector-controls/groups';\n\nexport default function AdvancedControls( props ) {\n\tconst Slot = groups.advanced?.Slot;\n\tif ( ! Slot ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Slot { ...props }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( ! fills.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<PanelBody title={ __( 'Advanced' ) }>{ fills }</PanelBody>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASI,gBAAgBA,CAAEC,KAAK,EAAG;EACjD,MAAMC,IAAI,GAAGC,eAAM,CAACC,QAAQ,EAAEF,IAAI;EAClC,IAAK,CAAEA,IAAI,EAAG;IACb,OAAO,IAAI;EACZ;EAEA,OACC,IAAAG,MAAA,CAAAC,aAAA,EAACJ,IAAI;IAAA,GAAMD;EAAK,GACXM,KAAK,IAAM;IACd,IAAK,CAAEA,KAAK,CAACC,MAAM,EAAG;MACrB,OAAO,IAAI;IACZ;IAEA,OACC,IAAAH,MAAA,CAAAC,aAAA,EAACX,WAAA,CAAAc,SAAS;MAACC,KAAK,EAAG,IAAAC,QAAE,EAAE,UAAW;IAAG,GAAGJ,KAAkB,CAAC;EAE7D,CACK,CAAC;AAET"}
@@ -24,7 +24,6 @@ var _blockLock = require("../block-lock");
24
24
  var _store = require("../../store");
25
25
  var _useListViewImages = _interopRequireDefault(require("./use-list-view-images"));
26
26
  var _context = require("./context");
27
- var _useBindingsAttributes = require("../../hooks/use-bindings-attributes");
28
27
  /**
29
28
  * External dependencies
30
29
  */
@@ -40,8 +39,7 @@ var _useBindingsAttributes = require("../../hooks/use-bindings-attributes");
40
39
  function ListViewBlockSelectButton({
41
40
  className,
42
41
  block: {
43
- clientId,
44
- name: blockName
42
+ clientId
45
43
  },
46
44
  onClick,
47
45
  onContextMenu,
@@ -53,7 +51,6 @@ function ListViewBlockSelectButton({
53
51
  onDragEnd,
54
52
  draggable,
55
53
  isExpanded,
56
- ariaLabel,
57
54
  ariaDescribedBy,
58
55
  updateFocusAndSelection
59
56
  }, ref) {
@@ -72,7 +69,6 @@ function ListViewBlockSelectButton({
72
69
  getBlockRootClientId,
73
70
  getBlockOrder,
74
71
  getBlocksByClientId,
75
- getBlockAttributes,
76
72
  canRemoveBlocks
77
73
  } = (0, _data.useSelect)(_store.store);
78
74
  const {
@@ -89,7 +85,6 @@ function ListViewBlockSelectButton({
89
85
  const {
90
86
  rootClientId
91
87
  } = (0, _context.useListViewContext)();
92
- const isConnected = getBlockAttributes(clientId)?.metadata?.bindings;
93
88
  const positionLabel = blockInformation?.positionLabel ? (0, _i18n.sprintf)(
94
89
  // translators: 1: Position of selected block, e.g. "Sticky" or "Fixed".
95
90
  (0, _i18n.__)('Position: %1$s'), blockInformation.positionLabel) : '';
@@ -220,7 +215,6 @@ function ListViewBlockSelectButton({
220
215
  onDragEnd: onDragEnd,
221
216
  draggable: draggable,
222
217
  href: `#block-${clientId}`,
223
- "aria-label": ariaLabel,
224
218
  "aria-describedby": ariaDescribedBy,
225
219
  "aria-expanded": isExpanded
226
220
  }, (0, _react.createElement)(_expander.default, {
@@ -243,11 +237,7 @@ function ListViewBlockSelectButton({
243
237
  }, (0, _react.createElement)(_components.__experimentalTruncate, {
244
238
  className: "block-editor-list-view-block-select-button__anchor",
245
239
  ellipsizeMode: "auto"
246
- }, blockInformation.anchor)), isConnected && (0, _useBindingsAttributes.canBindBlock)(blockName) && (0, _react.createElement)("span", {
247
- className: "block-editor-list-view-block-select-button__bindings"
248
- }, (0, _react.createElement)(_icons.Icon, {
249
- icon: _icons.connection
250
- })), positionLabel && isSticky && (0, _react.createElement)(_components.Tooltip, {
240
+ }, blockInformation.anchor)), positionLabel && isSticky && (0, _react.createElement)(_components.Tooltip, {
251
241
  text: positionLabel
252
242
  }, (0, _react.createElement)(_icons.Icon, {
253
243
  icon: _icons.pinSmall
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_element","_icons","_keycodes","_data","_keyboardShortcuts","_i18n","_isShallowEqual","_blockIcon","_useBlockDisplayInformation","_useBlockDisplayTitle","_expander","_blockLock","_store","_useListViewImages","_context","_useBindingsAttributes","ListViewBlockSelectButton","className","block","clientId","name","blockName","onClick","onContextMenu","onMouseDown","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","ariaLabel","ariaDescribedBy","updateFocusAndSelection","ref","blockInformation","useBlockDisplayInformation","blockTitle","useBlockDisplayTitle","context","isLocked","useBlockLock","canInsertBlockType","getSelectedBlockClientIds","getPreviousBlockClientId","getBlockRootClientId","getBlockOrder","getBlocksByClientId","getBlockAttributes","canRemoveBlocks","useSelect","blockEditorStore","duplicateBlocks","multiSelect","removeBlocks","useDispatch","isMatch","useShortcutEventMatch","isSticky","positionType","images","useListViewImages","rootClientId","useListViewContext","isConnected","metadata","bindings","positionLabel","sprintf","__","onDragStartHandler","event","dataTransfer","clearData","getBlocksToUpdate","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","onKeyDownHandler","keyCode","ENTER","SPACE","BACKSPACE","DELETE","_getPreviousBlockClie","blocksToDelete","blockToFocus","shouldUpdateSelection","length","defaultPrevented","preventDefault","canDuplicate","every","hasBlockSupport","updatedBlocks","blockClientIds","isShallowEqual","_react","createElement","Fragment","Button","classnames","onKeyDown","href","default","icon","showColors","__experimentalHStack","alignment","justify","spacing","__experimentalTruncate","ellipsizeMode","anchor","canBindBlock","Icon","connection","Tooltip","text","pinSmall","map","image","index","key","style","backgroundImage","url","zIndex","lock","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tTooltip,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport {\n\tIcon,\n\tconnection,\n\tlockSmall as lock,\n\tpinSmall,\n} from '@wordpress/icons';\nimport { SPACE, ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { __, sprintf } from '@wordpress/i18n';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport useListViewImages from './use-list-view-images';\nimport { useListViewContext } from './context';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId, name: blockName },\n\t\tonClick,\n\t\tonContextMenu,\n\t\tonMouseDown,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t\tariaLabel,\n\t\tariaDescribedBy,\n\t\tupdateFocusAndSelection,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetSelectedBlockClientIds,\n\t\tgetPreviousBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockOrder,\n\t\tgetBlocksByClientId,\n\t\tgetBlockAttributes,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { duplicateBlocks, multiSelect, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst isMatch = useShortcutEventMatch();\n\tconst isSticky = blockInformation?.positionType === 'sticky';\n\tconst images = useListViewImages( { clientId, isExpanded } );\n\tconst { rootClientId } = useListViewContext();\n\n\tconst isConnected = getBlockAttributes( clientId )?.metadata?.bindings;\n\n\tconst positionLabel = blockInformation?.positionLabel\n\t\t? sprintf(\n\t\t\t\t// translators: 1: Position of selected block, e.g. \"Sticky\" or \"Fixed\".\n\t\t\t\t__( 'Position: %1$s' ),\n\t\t\t\tblockInformation.positionLabel\n\t\t )\n\t\t: '';\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\t// Determine which blocks to update:\n\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t// If the focused block is not part of the block selection, only update the focused block.\n\tfunction getBlocksToUpdate() {\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst isUpdatingSelectedBlocks =\n\t\t\tselectedBlockClientIds.includes( clientId );\n\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t: clientId;\n\t\tconst firstBlockRootClientId =\n\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn {\n\t\t\tblocksToUpdate,\n\t\t\tfirstBlockClientId,\n\t\t\tfirstBlockRootClientId,\n\t\t\tselectedBlockClientIds,\n\t\t};\n\t}\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tasync function onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t} else if (\n\t\t\tevent.keyCode === BACKSPACE ||\n\t\t\tevent.keyCode === DELETE ||\n\t\t\tisMatch( 'core/block-editor/remove', event )\n\t\t) {\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: blocksToDelete,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\tselectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate();\n\n\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\tif ( ! canRemoveBlocks( blocksToDelete, firstBlockRootClientId ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blockToFocus =\n\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t// fallback to focus the parent block.\n\t\t\t\tfirstBlockRootClientId;\n\n\t\t\tremoveBlocks( blocksToDelete, false );\n\n\t\t\t// Update the selection if the original selection has been removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\tselectedBlockClientIds.length > 0 &&\n\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate, firstBlockRootClientId } =\n\t\t\t\tgetBlocksToUpdate();\n\n\t\t\tconst canDuplicate = getBlocksByClientId( blocksToUpdate ).every(\n\t\t\t\t( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\t\t\t\tcanInsertBlockType( block.name, firstBlockRootClientId )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( canDuplicate ) {\n\t\t\t\tconst updatedBlocks = await duplicateBlocks(\n\t\t\t\t\tblocksToUpdate,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\tif ( updatedBlocks?.length ) {\n\t\t\t\t\t// If blocks have been duplicated, focus the first duplicated block.\n\t\t\t\t\tupdateFocusAndSelection( updatedBlocks[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { firstBlockRootClientId, selectedBlockClientIds } =\n\t\t\t\tgetBlocksToUpdate();\n\t\t\tconst blockClientIds = getBlockOrder( firstBlockRootClientId );\n\t\t\tif ( ! blockClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a level.\n\t\t\t// This is a similar implementation to that used by `useSelectAll`.\n\t\t\t// `isShallowEqual` is used for the list view instead of a length check,\n\t\t\t// as the array of siblings of the currently focused block may be a different\n\t\t\t// set of blocks from the current block selection if the user is focused\n\t\t\t// on a different part of the list view from the block selection.\n\t\t\tif ( isShallowEqual( selectedBlockClientIds, blockClientIds ) ) {\n\t\t\t\t// Only select up a level if the first block is not the root block.\n\t\t\t\t// This ensures that the block selection can't break out of the root block\n\t\t\t\t// used by the list view, if the list view is only showing a partial hierarchy.\n\t\t\t\tif (\n\t\t\t\t\tfirstBlockRootClientId &&\n\t\t\t\t\tfirstBlockRootClientId !== rootClientId\n\t\t\t\t) {\n\t\t\t\t\tupdateFocusAndSelection( firstBlockRootClientId, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all while passing `null` to skip focusing to the editor canvas,\n\t\t\t// and retain focus within the list view.\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ],\n\t\t\t\tnull\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-label={ ariaLabel }\n\t\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon\n\t\t\t\t\ticon={ blockInformation?.icon }\n\t\t\t\t\tshowColors\n\t\t\t\t\tcontext=\"list-view\"\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t\t</span>\n\t\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__anchor\"\n\t\t\t\t\t\t\t\tellipsizeMode=\"auto\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isConnected && canBindBlock( blockName ) && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__bindings\">\n\t\t\t\t\t\t\t<Icon icon={ connection } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ positionLabel && isSticky && (\n\t\t\t\t\t\t<Tooltip text={ positionLabel }>\n\t\t\t\t\t\t\t<Icon icon={ pinSmall } />\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t{ images.length ? (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__images\"\n\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ images.map( ( image, index ) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__image\"\n\t\t\t\t\t\t\t\t\tkey={ image.clientId }\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\tbackgroundImage: `url(${ image.url })`,\n\t\t\t\t\t\t\t\t\t\tzIndex: images.length - index, // Ensure the first image is on top, and subsequent images are behind.\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : null }\n\t\t\t\t\t{ isLocked && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_element","_icons","_keycodes","_data","_keyboardShortcuts","_i18n","_isShallowEqual","_blockIcon","_useBlockDisplayInformation","_useBlockDisplayTitle","_expander","_blockLock","_store","_useListViewImages","_context","ListViewBlockSelectButton","className","block","clientId","onClick","onContextMenu","onMouseDown","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","ariaDescribedBy","updateFocusAndSelection","ref","blockInformation","useBlockDisplayInformation","blockTitle","useBlockDisplayTitle","context","isLocked","useBlockLock","canInsertBlockType","getSelectedBlockClientIds","getPreviousBlockClientId","getBlockRootClientId","getBlockOrder","getBlocksByClientId","canRemoveBlocks","useSelect","blockEditorStore","duplicateBlocks","multiSelect","removeBlocks","useDispatch","isMatch","useShortcutEventMatch","isSticky","positionType","images","useListViewImages","rootClientId","useListViewContext","positionLabel","sprintf","__","onDragStartHandler","event","dataTransfer","clearData","getBlocksToUpdate","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","onKeyDownHandler","keyCode","ENTER","SPACE","BACKSPACE","DELETE","_getPreviousBlockClie","blocksToDelete","blockToFocus","shouldUpdateSelection","length","defaultPrevented","preventDefault","canDuplicate","every","hasBlockSupport","name","updatedBlocks","blockClientIds","isShallowEqual","_react","createElement","Fragment","Button","classnames","onKeyDown","href","default","icon","showColors","__experimentalHStack","alignment","justify","spacing","__experimentalTruncate","ellipsizeMode","anchor","Tooltip","text","Icon","pinSmall","map","image","index","key","style","backgroundImage","url","zIndex","lock","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tTooltip,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, lockSmall as lock, pinSmall } from '@wordpress/icons';\nimport { SPACE, ENTER, BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { __, sprintf } from '@wordpress/i18n';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\nimport useListViewImages from './use-list-view-images';\nimport { useListViewContext } from './context';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonContextMenu,\n\t\tonMouseDown,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t\tariaDescribedBy,\n\t\tupdateFocusAndSelection,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetSelectedBlockClientIds,\n\t\tgetPreviousBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockOrder,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { duplicateBlocks, multiSelect, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst isMatch = useShortcutEventMatch();\n\tconst isSticky = blockInformation?.positionType === 'sticky';\n\tconst images = useListViewImages( { clientId, isExpanded } );\n\tconst { rootClientId } = useListViewContext();\n\n\tconst positionLabel = blockInformation?.positionLabel\n\t\t? sprintf(\n\t\t\t\t// translators: 1: Position of selected block, e.g. \"Sticky\" or \"Fixed\".\n\t\t\t\t__( 'Position: %1$s' ),\n\t\t\t\tblockInformation.positionLabel\n\t\t )\n\t\t: '';\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\t// Determine which blocks to update:\n\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t// If the focused block is not part of the block selection, only update the focused block.\n\tfunction getBlocksToUpdate() {\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst isUpdatingSelectedBlocks =\n\t\t\tselectedBlockClientIds.includes( clientId );\n\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t: clientId;\n\t\tconst firstBlockRootClientId =\n\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn {\n\t\t\tblocksToUpdate,\n\t\t\tfirstBlockClientId,\n\t\t\tfirstBlockRootClientId,\n\t\t\tselectedBlockClientIds,\n\t\t};\n\t}\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tasync function onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t} else if (\n\t\t\tevent.keyCode === BACKSPACE ||\n\t\t\tevent.keyCode === DELETE ||\n\t\t\tisMatch( 'core/block-editor/remove', event )\n\t\t) {\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: blocksToDelete,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\tselectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate();\n\n\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\tif ( ! canRemoveBlocks( blocksToDelete, firstBlockRootClientId ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blockToFocus =\n\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t// fallback to focus the parent block.\n\t\t\t\tfirstBlockRootClientId;\n\n\t\t\tremoveBlocks( blocksToDelete, false );\n\n\t\t\t// Update the selection if the original selection has been removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\tselectedBlockClientIds.length > 0 &&\n\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate, firstBlockRootClientId } =\n\t\t\t\tgetBlocksToUpdate();\n\n\t\t\tconst canDuplicate = getBlocksByClientId( blocksToUpdate ).every(\n\t\t\t\t( block ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\t\t\t\tcanInsertBlockType( block.name, firstBlockRootClientId )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( canDuplicate ) {\n\t\t\t\tconst updatedBlocks = await duplicateBlocks(\n\t\t\t\t\tblocksToUpdate,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\tif ( updatedBlocks?.length ) {\n\t\t\t\t\t// If blocks have been duplicated, focus the first duplicated block.\n\t\t\t\t\tupdateFocusAndSelection( updatedBlocks[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { firstBlockRootClientId, selectedBlockClientIds } =\n\t\t\t\tgetBlocksToUpdate();\n\t\t\tconst blockClientIds = getBlockOrder( firstBlockRootClientId );\n\t\t\tif ( ! blockClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a level.\n\t\t\t// This is a similar implementation to that used by `useSelectAll`.\n\t\t\t// `isShallowEqual` is used for the list view instead of a length check,\n\t\t\t// as the array of siblings of the currently focused block may be a different\n\t\t\t// set of blocks from the current block selection if the user is focused\n\t\t\t// on a different part of the list view from the block selection.\n\t\t\tif ( isShallowEqual( selectedBlockClientIds, blockClientIds ) ) {\n\t\t\t\t// Only select up a level if the first block is not the root block.\n\t\t\t\t// This ensures that the block selection can't break out of the root block\n\t\t\t\t// used by the list view, if the list view is only showing a partial hierarchy.\n\t\t\t\tif (\n\t\t\t\t\tfirstBlockRootClientId &&\n\t\t\t\t\tfirstBlockRootClientId !== rootClientId\n\t\t\t\t) {\n\t\t\t\t\tupdateFocusAndSelection( firstBlockRootClientId, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all while passing `null` to skip focusing to the editor canvas,\n\t\t\t// and retain focus within the list view.\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ],\n\t\t\t\tnull\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon\n\t\t\t\t\ticon={ blockInformation?.icon }\n\t\t\t\t\tshowColors\n\t\t\t\t\tcontext=\"list-view\"\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t\t</span>\n\t\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__anchor\"\n\t\t\t\t\t\t\t\tellipsizeMode=\"auto\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ positionLabel && isSticky && (\n\t\t\t\t\t\t<Tooltip text={ positionLabel }>\n\t\t\t\t\t\t\t<Icon icon={ pinSmall } />\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t{ images.length ? (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__images\"\n\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ images.map( ( image, index ) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__image\"\n\t\t\t\t\t\t\t\t\tkey={ image.clientId }\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\tbackgroundImage: `url(${ image.url })`,\n\t\t\t\t\t\t\t\t\t\tzIndex: images.length - index, // Ensure the first image is on top, and subsequent images are behind.\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : null }\n\t\t\t\t\t{ isLocked && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"],"mappings":"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"}
@@ -74,7 +74,6 @@ function ListViewBlock({
74
74
  toggleBlockHighlight
75
75
  } = (0, _data.useDispatch)(_store.store);
76
76
  const blockInformation = (0, _useBlockDisplayInformation.default)(clientId);
77
- const blockTitle = blockInformation?.name || blockInformation?.title || (0, _i18n.__)('Untitled');
78
77
  const {
79
78
  block,
80
79
  blockName,
@@ -100,7 +99,7 @@ function ListViewBlock({
100
99
  // Don't show the settings menu if block is disabled or content only.
101
100
  blockEditingMode === 'default';
102
101
  const instanceId = (0, _compose.useInstanceId)(ListViewBlock);
103
- const descriptionId = `list-view-block-select-button__${instanceId}`;
102
+ const descriptionId = `list-view-block-select-button__description-${instanceId}`;
104
103
  const {
105
104
  expand,
106
105
  collapse,
@@ -206,12 +205,7 @@ function ListViewBlock({
206
205
  return null;
207
206
  }
208
207
  const blockPositionDescription = (0, _utils.getBlockPositionDescription)(position, siblingBlockCount, level);
209
- const blockAriaLabel = isLocked ? (0, _i18n.sprintf)(
210
- // translators: %s: The title of the block. This string indicates a link to select the locked block.
211
- (0, _i18n.__)('%s (locked)'), blockTitle) : blockTitle;
212
- const settingsAriaLabel = (0, _i18n.sprintf)(
213
- // translators: %s: The title of the block.
214
- (0, _i18n.__)('Options for %s'), blockTitle);
208
+ const blockPropertiesDescription = (0, _utils.getBlockPropertiesDescription)(isLocked);
215
209
  const hasSiblings = siblingBlockCount > 0;
216
210
  const hasRenderedMovers = showBlockMovers && hasSiblings;
217
211
  const moverCellClassName = (0, _classnames.default)('block-editor-list-view-block__mover-cell', {
@@ -293,12 +287,11 @@ function ListViewBlock({
293
287
  onFocus: onFocus,
294
288
  isExpanded: canEdit ? isExpanded : undefined,
295
289
  selectedClientIds: selectedClientIds,
296
- ariaLabel: blockAriaLabel,
297
290
  ariaDescribedBy: descriptionId,
298
291
  updateFocusAndSelection: updateFocusAndSelection
299
292
  }), (0, _react.createElement)(_ariaReferencedText.default, {
300
293
  id: descriptionId
301
- }, blockPositionDescription))), hasRenderedMovers && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalTreeGridCell, {
294
+ }, `${blockPositionDescription} ${blockPropertiesDescription}`))), hasRenderedMovers && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalTreeGridCell, {
302
295
  className: moverCellClassName,
303
296
  withoutGridItem: true
304
297
  }, (0, _react.createElement)(_components.__experimentalTreeGridItem, null, ({
@@ -333,7 +326,7 @@ function ListViewBlock({
333
326
  clientIds: dropdownClientIds,
334
327
  block: block,
335
328
  icon: _icons.moreVertical,
336
- label: settingsAriaLabel,
329
+ label: (0, _i18n.__)('Actions'),
337
330
  popoverProps: {
338
331
  anchor: settingsPopoverAnchor // Used to position the settings at the cursor on right-click.
339
332
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_compose","_icons","_element","_data","_i18n","_keycodes","_leaf","_useListViewScrollIntoView","_button","_blockContents","_context","_utils","_store","_useBlockDisplayInformation","_blockLock","_ariaReferencedText","ListViewBlock","block","clientId","displacement","isAfterDraggedBlocks","isDragged","isNesting","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","useRef","rowRef","settingsRef","isHovered","setIsHovered","useState","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","useBlockLock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","useDispatch","blockEditorStore","blockInformation","useBlockDisplayInformation","blockTitle","name","title","__","blockName","blockEditingMode","useSelect","select","getBlock","getBlockName","getBlockEditingMode","allowRightClickOverrides","getSettings","showBlockActions","hasBlockSupport","instanceId","useInstanceId","descriptionId","expand","collapse","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","useListViewContext","onKeyDown","event","keyCode","ESCAPE","defaultPrevented","stopPropagation","preventDefault","undefined","onMouseEnter","useCallback","onMouseLeave","selectEditorBlock","updateFocusAndSelection","focusClientId","shouldSelectBlock","focusListItem","current","toggleExpanded","onContextMenu","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","useMemo","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","useListViewScrollIntoView","rowItemRef","blockPositionDescription","getBlockPositionDescription","blockAriaLabel","sprintf","settingsAriaLabel","hasSiblings","hasRenderedMovers","moverCellClassName","classnames","listViewBlockSettingsClassName","colSpan","classes","isSynced","dropdownClientIds","includes","currentlyEditingBlockInCanvas","_react","createElement","default","className","onFocus","onBlur","id","ref","__experimentalTreeGridCell","tabIndex","onClick","onToggleExpanded","ariaLabel","ariaDescribedBy","Fragment","withoutGridItem","__experimentalTreeGridItem","BlockMoverUpButton","orientation","clientIds","BlockMoverDownButton","icon","moreVertical","label","popoverProps","anchor","toggleProps","disableOpenOnArrowDown","__experimentalSelectBlock","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription, focusListItem } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tdisplacement,\n\tisAfterDraggedBlocks,\n\tisDragged,\n\tisNesting,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle =\n\t\tblockInformation?.name || blockInformation?.title || __( 'Untitled' );\n\n\tconst { block, blockName, blockEditingMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst allowRightClickOverrides = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().allowRightClickOverrides,\n\t\t[]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true ) &&\n\t\t// Don't show the settings menu if block is disabled or content only.\n\t\tblockEditingMode === 'default';\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t} = useListViewContext();\n\n\t// If multiple blocks are selected, deselect all blocks when the user\n\t// presses the escape key.\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t}\n\t};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef?.current );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// When switching between rendering modes (such as template preview and content only),\n\t// it is possible for a block to temporarily be unavailable. In this case, we should not\n\t// render the leaf, to avoid errors further down the tree.\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockAriaLabel = isLocked\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t__( '%s (locked)' ),\n\t\t\t\tblockTitle\n\t\t )\n\t\t: blockTitle;\n\n\tconst settingsAriaLabel = sprintf(\n\t\t// translators: %s: The title of the block.\n\t\t__( 'Options for %s' ),\n\t\tblockTitle\n\t);\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t\t'is-displacement-normal': displacement === 'normal',\n\t\t'is-displacement-up': displacement === 'up',\n\t\t'is-displacement-down': displacement === 'down',\n\t\t'is-after-dragged-blocks': isAfterDraggedBlocks,\n\t\t'is-nesting': isNesting,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tisDragged={ isDragged }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaLabel={ blockAriaLabel }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t\tupdateFocusAndSelection={ updateFocusAndSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_compose","_icons","_element","_data","_i18n","_keycodes","_leaf","_useListViewScrollIntoView","_button","_blockContents","_context","_utils","_store","_useBlockDisplayInformation","_blockLock","_ariaReferencedText","ListViewBlock","block","clientId","displacement","isAfterDraggedBlocks","isDragged","isNesting","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","useRef","rowRef","settingsRef","isHovered","setIsHovered","useState","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","useBlockLock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","useDispatch","blockEditorStore","blockInformation","useBlockDisplayInformation","blockName","blockEditingMode","useSelect","select","getBlock","getBlockName","getBlockEditingMode","allowRightClickOverrides","getSettings","showBlockActions","hasBlockSupport","instanceId","useInstanceId","descriptionId","expand","collapse","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","useListViewContext","onKeyDown","event","keyCode","ESCAPE","defaultPrevented","stopPropagation","preventDefault","undefined","onMouseEnter","useCallback","onMouseLeave","selectEditorBlock","updateFocusAndSelection","focusClientId","shouldSelectBlock","focusListItem","current","toggleExpanded","onContextMenu","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","useMemo","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","useListViewScrollIntoView","rowItemRef","blockPositionDescription","getBlockPositionDescription","blockPropertiesDescription","getBlockPropertiesDescription","hasSiblings","hasRenderedMovers","moverCellClassName","classnames","listViewBlockSettingsClassName","colSpan","classes","isSynced","dropdownClientIds","includes","currentlyEditingBlockInCanvas","_react","createElement","default","className","onFocus","onBlur","id","ref","__experimentalTreeGridCell","tabIndex","onClick","onToggleExpanded","ariaDescribedBy","Fragment","withoutGridItem","__experimentalTreeGridItem","BlockMoverUpButton","orientation","clientIds","BlockMoverDownButton","icon","moreVertical","label","__","popoverProps","anchor","toggleProps","disableOpenOnArrowDown","__experimentalSelectBlock","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport {\n\tgetBlockPositionDescription,\n\tgetBlockPropertiesDescription,\n\tfocusListItem,\n} from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tdisplacement,\n\tisAfterDraggedBlocks,\n\tisDragged,\n\tisNesting,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tconst { block, blockName, blockEditingMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst allowRightClickOverrides = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().allowRightClickOverrides,\n\t\t[]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true ) &&\n\t\t// Don't show the settings menu if block is disabled or content only.\n\t\tblockEditingMode === 'default';\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__description-${ instanceId }`;\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t} = useListViewContext();\n\n\t// If multiple blocks are selected, deselect all blocks when the user\n\t// presses the escape key.\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t}\n\t};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef?.current );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// When switching between rendering modes (such as template preview and content only),\n\t// it is possible for a block to temporarily be unavailable. In this case, we should not\n\t// render the leaf, to avoid errors further down the tree.\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockPropertiesDescription =\n\t\tgetBlockPropertiesDescription( isLocked );\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t\t'is-displacement-normal': displacement === 'normal',\n\t\t'is-displacement-up': displacement === 'up',\n\t\t'is-displacement-down': displacement === 'down',\n\t\t'is-after-dragged-blocks': isAfterDraggedBlocks,\n\t\t'is-nesting': isNesting,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tisDragged={ isDragged }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t\tupdateFocusAndSelection={ updateFocusAndSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ `${ blockPositionDescription } ${ blockPropertiesDescription }` }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.focusListItem = focusListItem;
7
- exports.getBlockPositionDescription = void 0;
7
+ exports.getBlockPropertiesDescription = exports.getBlockPositionDescription = void 0;
8
8
  exports.getCommonDepthClientIds = getCommonDepthClientIds;
9
9
  exports.getDragDisplacementValues = getDragDisplacementValues;
10
10
  exports.isClientIdSelected = void 0;
@@ -15,7 +15,9 @@ var _dom = require("@wordpress/dom");
15
15
  */
16
16
 
17
17
  const getBlockPositionDescription = (position, siblingCount, level) => (0, _i18n.sprintf)( /* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */
18
- (0, _i18n.__)('Block %1$d of %2$d, Level %3$d'), position, siblingCount, level);
18
+ (0, _i18n.__)('Block %1$d of %2$d, Level %3$d.'), position, siblingCount, level);
19
+ exports.getBlockPositionDescription = getBlockPositionDescription;
20
+ const getBlockPropertiesDescription = isLocked => isLocked ? (0, _i18n.__)('This block is locked.') : '';
19
21
 
20
22
  /**
21
23
  * Returns true if the client ID occurs within the block selection or multi-selection,
@@ -26,7 +28,7 @@ const getBlockPositionDescription = (position, siblingCount, level) => (0, _i18n
26
28
  *
27
29
  * @return {boolean} Whether the block is in multi-selection set.
28
30
  */
29
- exports.getBlockPositionDescription = getBlockPositionDescription;
31
+ exports.getBlockPropertiesDescription = getBlockPropertiesDescription;
30
32
  const isClientIdSelected = (clientId, selectedBlockClientIds) => Array.isArray(selectedBlockClientIds) && selectedBlockClientIds.length ? selectedBlockClientIds.indexOf(clientId) !== -1 : selectedBlockClientIds === clientId;
31
33
 
32
34
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_dom","getBlockPositionDescription","position","siblingCount","level","sprintf","__","exports","isClientIdSelected","clientId","selectedBlockClientIds","Array","isArray","length","indexOf","getCommonDepthClientIds","startId","endId","startParents","endParents","startPath","endPath","depth","Math","min","start","end","focusListItem","focusClientId","treeGridElement","getFocusElement","row","querySelector","focus","focusable","find","focusElement","window","requestAnimationFrame","getDragDisplacementValues","blockIndexes","blockDropTargetIndex","blockDropPosition","firstDraggedBlockIndex","isDragged","displacement","isNesting","isAfterDraggedBlocks","thisBlockIndex","undefined"],"sources":["@wordpress/block-editor/src/components/list-view/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { focus } from '@wordpress/dom';\n\nexport const getBlockPositionDescription = ( position, siblingCount, level ) =>\n\tsprintf(\n\t\t/* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */\n\t\t__( 'Block %1$d of %2$d, Level %3$d' ),\n\t\tposition,\n\t\tsiblingCount,\n\t\tlevel\n\t);\n\n/**\n * Returns true if the client ID occurs within the block selection or multi-selection,\n * or false otherwise.\n *\n * @param {string} clientId Block client ID.\n * @param {string|string[]} selectedBlockClientIds Selected block client ID, or an array of multi-selected blocks client IDs.\n *\n * @return {boolean} Whether the block is in multi-selection set.\n */\nexport const isClientIdSelected = ( clientId, selectedBlockClientIds ) =>\n\tArray.isArray( selectedBlockClientIds ) && selectedBlockClientIds.length\n\t\t? selectedBlockClientIds.indexOf( clientId ) !== -1\n\t\t: selectedBlockClientIds === clientId;\n\n/**\n * From a start and end clientId of potentially different nesting levels,\n * return the nearest-depth ids that have a common level of depth in the\n * nesting hierarchy. For multiple block selection, this ensure that the\n * selection is always at the same nesting level, and not split across\n * separate levels.\n *\n * @param {string} startId The first id of a selection.\n * @param {string} endId The end id of a selection, usually one that has been clicked on.\n * @param {string[]} startParents An array of ancestor ids for the start id, in descending order.\n * @param {string[]} endParents An array of ancestor ids for the end id, in descending order.\n * @return {Object} An object containing the start and end ids.\n */\nexport function getCommonDepthClientIds(\n\tstartId,\n\tendId,\n\tstartParents,\n\tendParents\n) {\n\tconst startPath = [ ...startParents, startId ];\n\tconst endPath = [ ...endParents, endId ];\n\tconst depth = Math.min( startPath.length, endPath.length ) - 1;\n\tconst start = startPath[ depth ];\n\tconst end = endPath[ depth ];\n\n\treturn {\n\t\tstart,\n\t\tend,\n\t};\n}\n\n/**\n * Shift focus to the list view item associated with a particular clientId.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {string} focusClientId The client ID of the block to focus.\n * @param {?HTMLElement} treeGridElement The container element to search within.\n */\nexport function focusListItem( focusClientId, treeGridElement ) {\n\tconst getFocusElement = () => {\n\t\tconst row = treeGridElement?.querySelector(\n\t\t\t`[role=row][data-block=\"${ focusClientId }\"]`\n\t\t);\n\t\tif ( ! row ) return null;\n\t\t// Focus the first focusable in the row, which is the ListViewBlockSelectButton.\n\t\treturn focus.focusable.find( row )[ 0 ];\n\t};\n\n\tlet focusElement = getFocusElement();\n\tif ( focusElement ) {\n\t\tfocusElement.focus();\n\t} else {\n\t\t// The element hasn't been painted yet. Defer focusing on the next frame.\n\t\t// This could happen when all blocks have been deleted and the default block\n\t\t// hasn't been added to the editor yet.\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tfocusElement = getFocusElement();\n\n\t\t\t// Ignore if the element still doesn't exist.\n\t\t\tif ( focusElement ) {\n\t\t\t\tfocusElement.focus();\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * Get values for the block that flag whether the block should be displaced up or down,\n * whether the block is being nested, and whether the block appears after the dragged\n * blocks. These values are used to determine the class names to apply to the block.\n * The list view rows are displaced visually via CSS rules. Displacement rules:\n * - `normal`: no displacement — used to apply a translateY of `0` so that the block\n * appears in its original position, and moves to that position smoothly when dragging\n * outside of the list view area.\n * - `up`: the block should be displaced up, creating room beneath the block for the drop indicator.\n * - `down`: the block should be displaced down, creating room above the block for the drop indicator.\n *\n * @param {Object} props\n * @param {Object} props.blockIndexes The indexes of all the blocks in the list view, keyed by clientId.\n * @param {number|null|undefined} props.blockDropTargetIndex The index of the block that the user is dropping to.\n * @param {?string} props.blockDropPosition The position relative to the block that the user is dropping to.\n * @param {string} props.clientId The client id for the current block.\n * @param {?number} props.firstDraggedBlockIndex The index of the first dragged block.\n * @param {?boolean} props.isDragged Whether the current block is being dragged. Dragged blocks skip displacement.\n * @return {Object} An object containing the `displacement`, `isAfterDraggedBlocks` and `isNesting` values.\n */\nexport function getDragDisplacementValues( {\n\tblockIndexes,\n\tblockDropTargetIndex,\n\tblockDropPosition,\n\tclientId,\n\tfirstDraggedBlockIndex,\n\tisDragged,\n} ) {\n\tlet displacement;\n\tlet isNesting;\n\tlet isAfterDraggedBlocks;\n\n\tif ( ! isDragged ) {\n\t\tisNesting = false;\n\t\tconst thisBlockIndex = blockIndexes[ clientId ];\n\t\tisAfterDraggedBlocks = thisBlockIndex > firstDraggedBlockIndex;\n\n\t\t// Determine where to displace the position of the current block, relative\n\t\t// to the blocks being dragged (in their original position) and the drop target\n\t\t// (the position where a user is currently dragging the blocks to).\n\t\tif (\n\t\t\tblockDropTargetIndex !== undefined &&\n\t\t\tblockDropTargetIndex !== null &&\n\t\t\tfirstDraggedBlockIndex !== undefined\n\t\t) {\n\t\t\t// If the block is being dragged and there is a valid drop target,\n\t\t\t// determine if the block being rendered should be displaced up or down.\n\n\t\t\tif ( thisBlockIndex !== undefined ) {\n\t\t\t\tif (\n\t\t\t\t\tthisBlockIndex >= firstDraggedBlockIndex &&\n\t\t\t\t\tthisBlockIndex < blockDropTargetIndex\n\t\t\t\t) {\n\t\t\t\t\t// If the current block appears after the set of dragged blocks\n\t\t\t\t\t// (in their original position), but is before the drop target,\n\t\t\t\t\t// then the current block should be displaced up.\n\t\t\t\t\tdisplacement = 'up';\n\t\t\t\t} else if (\n\t\t\t\t\tthisBlockIndex < firstDraggedBlockIndex &&\n\t\t\t\t\tthisBlockIndex >= blockDropTargetIndex\n\t\t\t\t) {\n\t\t\t\t\t// If the current block appears before the set of dragged blocks\n\t\t\t\t\t// (in their original position), but is after the drop target,\n\t\t\t\t\t// then the current block should be displaced down.\n\t\t\t\t\tdisplacement = 'down';\n\t\t\t\t} else {\n\t\t\t\t\tdisplacement = 'normal';\n\t\t\t\t}\n\t\t\t\tisNesting =\n\t\t\t\t\ttypeof blockDropTargetIndex === 'number' &&\n\t\t\t\t\tblockDropTargetIndex - 1 === thisBlockIndex &&\n\t\t\t\t\tblockDropPosition === 'inside';\n\t\t\t}\n\t\t} else if (\n\t\t\tblockDropTargetIndex === null &&\n\t\t\tfirstDraggedBlockIndex !== undefined\n\t\t) {\n\t\t\t// A `null` value for `blockDropTargetIndex` indicates that the\n\t\t\t// drop target is outside of the valid areas within the list view.\n\t\t\t// In this case, the drag is still active, but as there is no\n\t\t\t// valid drop target, we should remove the gap indicating where\n\t\t\t// the block would be inserted.\n\t\t\tif (\n\t\t\t\tthisBlockIndex !== undefined &&\n\t\t\t\tthisBlockIndex >= firstDraggedBlockIndex\n\t\t\t) {\n\t\t\t\tdisplacement = 'up';\n\t\t\t} else {\n\t\t\t\tdisplacement = 'normal';\n\t\t\t}\n\t\t} else if (\n\t\t\tblockDropTargetIndex !== undefined &&\n\t\t\tblockDropTargetIndex !== null &&\n\t\t\tfirstDraggedBlockIndex === undefined\n\t\t) {\n\t\t\t// If the blockdrop target is defined, but there are no dragged blocks,\n\t\t\t// then the block should be displaced relative to the drop target.\n\t\t\tif ( thisBlockIndex !== undefined ) {\n\t\t\t\tif ( thisBlockIndex < blockDropTargetIndex ) {\n\t\t\t\t\tdisplacement = 'normal';\n\t\t\t\t} else {\n\t\t\t\t\tdisplacement = 'down';\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( blockDropTargetIndex === null ) {\n\t\t\tdisplacement = 'normal';\n\t\t}\n\t}\n\n\treturn {\n\t\tdisplacement,\n\t\tisNesting,\n\t\tisAfterDraggedBlocks,\n\t};\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_dom","getBlockPositionDescription","position","siblingCount","level","sprintf","__","exports","getBlockPropertiesDescription","isLocked","isClientIdSelected","clientId","selectedBlockClientIds","Array","isArray","length","indexOf","getCommonDepthClientIds","startId","endId","startParents","endParents","startPath","endPath","depth","Math","min","start","end","focusListItem","focusClientId","treeGridElement","getFocusElement","row","querySelector","focus","focusable","find","focusElement","window","requestAnimationFrame","getDragDisplacementValues","blockIndexes","blockDropTargetIndex","blockDropPosition","firstDraggedBlockIndex","isDragged","displacement","isNesting","isAfterDraggedBlocks","thisBlockIndex","undefined"],"sources":["@wordpress/block-editor/src/components/list-view/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { focus } from '@wordpress/dom';\n\nexport const getBlockPositionDescription = ( position, siblingCount, level ) =>\n\tsprintf(\n\t\t/* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */\n\t\t__( 'Block %1$d of %2$d, Level %3$d.' ),\n\t\tposition,\n\t\tsiblingCount,\n\t\tlevel\n\t);\n\nexport const getBlockPropertiesDescription = ( isLocked ) =>\n\tisLocked ? __( 'This block is locked.' ) : '';\n\n/**\n * Returns true if the client ID occurs within the block selection or multi-selection,\n * or false otherwise.\n *\n * @param {string} clientId Block client ID.\n * @param {string|string[]} selectedBlockClientIds Selected block client ID, or an array of multi-selected blocks client IDs.\n *\n * @return {boolean} Whether the block is in multi-selection set.\n */\nexport const isClientIdSelected = ( clientId, selectedBlockClientIds ) =>\n\tArray.isArray( selectedBlockClientIds ) && selectedBlockClientIds.length\n\t\t? selectedBlockClientIds.indexOf( clientId ) !== -1\n\t\t: selectedBlockClientIds === clientId;\n\n/**\n * From a start and end clientId of potentially different nesting levels,\n * return the nearest-depth ids that have a common level of depth in the\n * nesting hierarchy. For multiple block selection, this ensure that the\n * selection is always at the same nesting level, and not split across\n * separate levels.\n *\n * @param {string} startId The first id of a selection.\n * @param {string} endId The end id of a selection, usually one that has been clicked on.\n * @param {string[]} startParents An array of ancestor ids for the start id, in descending order.\n * @param {string[]} endParents An array of ancestor ids for the end id, in descending order.\n * @return {Object} An object containing the start and end ids.\n */\nexport function getCommonDepthClientIds(\n\tstartId,\n\tendId,\n\tstartParents,\n\tendParents\n) {\n\tconst startPath = [ ...startParents, startId ];\n\tconst endPath = [ ...endParents, endId ];\n\tconst depth = Math.min( startPath.length, endPath.length ) - 1;\n\tconst start = startPath[ depth ];\n\tconst end = endPath[ depth ];\n\n\treturn {\n\t\tstart,\n\t\tend,\n\t};\n}\n\n/**\n * Shift focus to the list view item associated with a particular clientId.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {string} focusClientId The client ID of the block to focus.\n * @param {?HTMLElement} treeGridElement The container element to search within.\n */\nexport function focusListItem( focusClientId, treeGridElement ) {\n\tconst getFocusElement = () => {\n\t\tconst row = treeGridElement?.querySelector(\n\t\t\t`[role=row][data-block=\"${ focusClientId }\"]`\n\t\t);\n\t\tif ( ! row ) return null;\n\t\t// Focus the first focusable in the row, which is the ListViewBlockSelectButton.\n\t\treturn focus.focusable.find( row )[ 0 ];\n\t};\n\n\tlet focusElement = getFocusElement();\n\tif ( focusElement ) {\n\t\tfocusElement.focus();\n\t} else {\n\t\t// The element hasn't been painted yet. Defer focusing on the next frame.\n\t\t// This could happen when all blocks have been deleted and the default block\n\t\t// hasn't been added to the editor yet.\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tfocusElement = getFocusElement();\n\n\t\t\t// Ignore if the element still doesn't exist.\n\t\t\tif ( focusElement ) {\n\t\t\t\tfocusElement.focus();\n\t\t\t}\n\t\t} );\n\t}\n}\n\n/**\n * Get values for the block that flag whether the block should be displaced up or down,\n * whether the block is being nested, and whether the block appears after the dragged\n * blocks. These values are used to determine the class names to apply to the block.\n * The list view rows are displaced visually via CSS rules. Displacement rules:\n * - `normal`: no displacement — used to apply a translateY of `0` so that the block\n * appears in its original position, and moves to that position smoothly when dragging\n * outside of the list view area.\n * - `up`: the block should be displaced up, creating room beneath the block for the drop indicator.\n * - `down`: the block should be displaced down, creating room above the block for the drop indicator.\n *\n * @param {Object} props\n * @param {Object} props.blockIndexes The indexes of all the blocks in the list view, keyed by clientId.\n * @param {number|null|undefined} props.blockDropTargetIndex The index of the block that the user is dropping to.\n * @param {?string} props.blockDropPosition The position relative to the block that the user is dropping to.\n * @param {string} props.clientId The client id for the current block.\n * @param {?number} props.firstDraggedBlockIndex The index of the first dragged block.\n * @param {?boolean} props.isDragged Whether the current block is being dragged. Dragged blocks skip displacement.\n * @return {Object} An object containing the `displacement`, `isAfterDraggedBlocks` and `isNesting` values.\n */\nexport function getDragDisplacementValues( {\n\tblockIndexes,\n\tblockDropTargetIndex,\n\tblockDropPosition,\n\tclientId,\n\tfirstDraggedBlockIndex,\n\tisDragged,\n} ) {\n\tlet displacement;\n\tlet isNesting;\n\tlet isAfterDraggedBlocks;\n\n\tif ( ! isDragged ) {\n\t\tisNesting = false;\n\t\tconst thisBlockIndex = blockIndexes[ clientId ];\n\t\tisAfterDraggedBlocks = thisBlockIndex > firstDraggedBlockIndex;\n\n\t\t// Determine where to displace the position of the current block, relative\n\t\t// to the blocks being dragged (in their original position) and the drop target\n\t\t// (the position where a user is currently dragging the blocks to).\n\t\tif (\n\t\t\tblockDropTargetIndex !== undefined &&\n\t\t\tblockDropTargetIndex !== null &&\n\t\t\tfirstDraggedBlockIndex !== undefined\n\t\t) {\n\t\t\t// If the block is being dragged and there is a valid drop target,\n\t\t\t// determine if the block being rendered should be displaced up or down.\n\n\t\t\tif ( thisBlockIndex !== undefined ) {\n\t\t\t\tif (\n\t\t\t\t\tthisBlockIndex >= firstDraggedBlockIndex &&\n\t\t\t\t\tthisBlockIndex < blockDropTargetIndex\n\t\t\t\t) {\n\t\t\t\t\t// If the current block appears after the set of dragged blocks\n\t\t\t\t\t// (in their original position), but is before the drop target,\n\t\t\t\t\t// then the current block should be displaced up.\n\t\t\t\t\tdisplacement = 'up';\n\t\t\t\t} else if (\n\t\t\t\t\tthisBlockIndex < firstDraggedBlockIndex &&\n\t\t\t\t\tthisBlockIndex >= blockDropTargetIndex\n\t\t\t\t) {\n\t\t\t\t\t// If the current block appears before the set of dragged blocks\n\t\t\t\t\t// (in their original position), but is after the drop target,\n\t\t\t\t\t// then the current block should be displaced down.\n\t\t\t\t\tdisplacement = 'down';\n\t\t\t\t} else {\n\t\t\t\t\tdisplacement = 'normal';\n\t\t\t\t}\n\t\t\t\tisNesting =\n\t\t\t\t\ttypeof blockDropTargetIndex === 'number' &&\n\t\t\t\t\tblockDropTargetIndex - 1 === thisBlockIndex &&\n\t\t\t\t\tblockDropPosition === 'inside';\n\t\t\t}\n\t\t} else if (\n\t\t\tblockDropTargetIndex === null &&\n\t\t\tfirstDraggedBlockIndex !== undefined\n\t\t) {\n\t\t\t// A `null` value for `blockDropTargetIndex` indicates that the\n\t\t\t// drop target is outside of the valid areas within the list view.\n\t\t\t// In this case, the drag is still active, but as there is no\n\t\t\t// valid drop target, we should remove the gap indicating where\n\t\t\t// the block would be inserted.\n\t\t\tif (\n\t\t\t\tthisBlockIndex !== undefined &&\n\t\t\t\tthisBlockIndex >= firstDraggedBlockIndex\n\t\t\t) {\n\t\t\t\tdisplacement = 'up';\n\t\t\t} else {\n\t\t\t\tdisplacement = 'normal';\n\t\t\t}\n\t\t} else if (\n\t\t\tblockDropTargetIndex !== undefined &&\n\t\t\tblockDropTargetIndex !== null &&\n\t\t\tfirstDraggedBlockIndex === undefined\n\t\t) {\n\t\t\t// If the blockdrop target is defined, but there are no dragged blocks,\n\t\t\t// then the block should be displaced relative to the drop target.\n\t\t\tif ( thisBlockIndex !== undefined ) {\n\t\t\t\tif ( thisBlockIndex < blockDropTargetIndex ) {\n\t\t\t\t\tdisplacement = 'normal';\n\t\t\t\t} else {\n\t\t\t\t\tdisplacement = 'down';\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( blockDropTargetIndex === null ) {\n\t\t\tdisplacement = 'normal';\n\t\t}\n\t}\n\n\treturn {\n\t\tdisplacement,\n\t\tisNesting,\n\t\tisAfterDraggedBlocks,\n\t};\n}\n"],"mappings":";;;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIO,MAAME,2BAA2B,GAAGA,CAAEC,QAAQ,EAAEC,YAAY,EAAEC,KAAK,KACzE,IAAAC,aAAO,GACN;AACA,IAAAC,QAAE,EAAE,iCAAkC,CAAC,EACvCJ,QAAQ,EACRC,YAAY,EACZC,KACD,CAAC;AAACG,OAAA,CAAAN,2BAAA,GAAAA,2BAAA;AAEI,MAAMO,6BAA6B,GAAKC,QAAQ,IACtDA,QAAQ,GAAG,IAAAH,QAAE,EAAE,uBAAwB,CAAC,GAAG,EAAE;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAC,OAAA,CAAAC,6BAAA,GAAAA,6BAAA;AASO,MAAME,kBAAkB,GAAGA,CAAEC,QAAQ,EAAEC,sBAAsB,KACnEC,KAAK,CAACC,OAAO,CAAEF,sBAAuB,CAAC,IAAIA,sBAAsB,CAACG,MAAM,GACrEH,sBAAsB,CAACI,OAAO,CAAEL,QAAS,CAAC,KAAK,CAAC,CAAC,GACjDC,sBAAsB,KAAKD,QAAQ;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZAJ,OAAA,CAAAG,kBAAA,GAAAA,kBAAA;AAaO,SAASO,uBAAuBA,CACtCC,OAAO,EACPC,KAAK,EACLC,YAAY,EACZC,UAAU,EACT;EACD,MAAMC,SAAS,GAAG,CAAE,GAAGF,YAAY,EAAEF,OAAO,CAAE;EAC9C,MAAMK,OAAO,GAAG,CAAE,GAAGF,UAAU,EAAEF,KAAK,CAAE;EACxC,MAAMK,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAEJ,SAAS,CAACP,MAAM,EAAEQ,OAAO,CAACR,MAAO,CAAC,GAAG,CAAC;EAC9D,MAAMY,KAAK,GAAGL,SAAS,CAAEE,KAAK,CAAE;EAChC,MAAMI,GAAG,GAAGL,OAAO,CAAEC,KAAK,CAAE;EAE5B,OAAO;IACNG,KAAK;IACLC;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,aAAaA,CAAEC,aAAa,EAAEC,eAAe,EAAG;EAC/D,MAAMC,eAAe,GAAGA,CAAA,KAAM;IAC7B,MAAMC,GAAG,GAAGF,eAAe,EAAEG,aAAa,CACxC,0BAA0BJ,aAAe,IAC3C,CAAC;IACD,IAAK,CAAEG,GAAG,EAAG,OAAO,IAAI;IACxB;IACA,OAAOE,UAAK,CAACC,SAAS,CAACC,IAAI,CAAEJ,GAAI,CAAC,CAAE,CAAC,CAAE;EACxC,CAAC;EAED,IAAIK,YAAY,GAAGN,eAAe,CAAC,CAAC;EACpC,IAAKM,YAAY,EAAG;IACnBA,YAAY,CAACH,KAAK,CAAC,CAAC;EACrB,CAAC,MAAM;IACN;IACA;IACA;IACAI,MAAM,CAACC,qBAAqB,CAAE,MAAM;MACnCF,YAAY,GAAGN,eAAe,CAAC,CAAC;;MAEhC;MACA,IAAKM,YAAY,EAAG;QACnBA,YAAY,CAACH,KAAK,CAAC,CAAC;MACrB;IACD,CAAE,CAAC;EACJ;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,yBAAyBA,CAAE;EAC1CC,YAAY;EACZC,oBAAoB;EACpBC,iBAAiB;EACjBjC,QAAQ;EACRkC,sBAAsB;EACtBC;AACD,CAAC,EAAG;EACH,IAAIC,YAAY;EAChB,IAAIC,SAAS;EACb,IAAIC,oBAAoB;EAExB,IAAK,CAAEH,SAAS,EAAG;IAClBE,SAAS,GAAG,KAAK;IACjB,MAAME,cAAc,GAAGR,YAAY,CAAE/B,QAAQ,CAAE;IAC/CsC,oBAAoB,GAAGC,cAAc,GAAGL,sBAAsB;;IAE9D;IACA;IACA;IACA,IACCF,oBAAoB,KAAKQ,SAAS,IAClCR,oBAAoB,KAAK,IAAI,IAC7BE,sBAAsB,KAAKM,SAAS,EACnC;MACD;MACA;;MAEA,IAAKD,cAAc,KAAKC,SAAS,EAAG;QACnC,IACCD,cAAc,IAAIL,sBAAsB,IACxCK,cAAc,GAAGP,oBAAoB,EACpC;UACD;UACA;UACA;UACAI,YAAY,GAAG,IAAI;QACpB,CAAC,MAAM,IACNG,cAAc,GAAGL,sBAAsB,IACvCK,cAAc,IAAIP,oBAAoB,EACrC;UACD;UACA;UACA;UACAI,YAAY,GAAG,MAAM;QACtB,CAAC,MAAM;UACNA,YAAY,GAAG,QAAQ;QACxB;QACAC,SAAS,GACR,OAAOL,oBAAoB,KAAK,QAAQ,IACxCA,oBAAoB,GAAG,CAAC,KAAKO,cAAc,IAC3CN,iBAAiB,KAAK,QAAQ;MAChC;IACD,CAAC,MAAM,IACND,oBAAoB,KAAK,IAAI,IAC7BE,sBAAsB,KAAKM,SAAS,EACnC;MACD;MACA;MACA;MACA;MACA;MACA,IACCD,cAAc,KAAKC,SAAS,IAC5BD,cAAc,IAAIL,sBAAsB,EACvC;QACDE,YAAY,GAAG,IAAI;MACpB,CAAC,MAAM;QACNA,YAAY,GAAG,QAAQ;MACxB;IACD,CAAC,MAAM,IACNJ,oBAAoB,KAAKQ,SAAS,IAClCR,oBAAoB,KAAK,IAAI,IAC7BE,sBAAsB,KAAKM,SAAS,EACnC;MACD;MACA;MACA,IAAKD,cAAc,KAAKC,SAAS,EAAG;QACnC,IAAKD,cAAc,GAAGP,oBAAoB,EAAG;UAC5CI,YAAY,GAAG,QAAQ;QACxB,CAAC,MAAM;UACNA,YAAY,GAAG,MAAM;QACtB;MACD;IACD,CAAC,MAAM,IAAKJ,oBAAoB,KAAK,IAAI,EAAG;MAC3CI,YAAY,GAAG,QAAQ;IACxB;EACD;EAEA,OAAO;IACNA,YAAY;IACZC,SAAS;IACTC;EACD,CAAC;AACF"}