@wordpress/block-editor 12.0.0 → 12.2.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 (627) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/build/autocompleters/block.js +13 -5
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-breadcrumb/index.js +6 -3
  6. package/build/components/block-breadcrumb/index.js.map +1 -1
  7. package/build/components/block-controls/slot.js +12 -4
  8. package/build/components/block-controls/slot.js.map +1 -1
  9. package/build/components/block-controls/slot.native.js +10 -1
  10. package/build/components/block-controls/slot.native.js.map +1 -1
  11. package/build/components/block-draggable/index.js +11 -7
  12. package/build/components/block-draggable/index.js.map +1 -1
  13. package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
  14. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  15. package/build/components/block-editing-mode/index.js +84 -0
  16. package/build/components/block-editing-mode/index.js.map +1 -0
  17. package/build/components/block-list/block-invalid-warning.native.js +15 -7
  18. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  19. package/build/components/block-list/block-list-block-context.js +15 -0
  20. package/build/components/block-list/block-list-block-context.js.map +1 -0
  21. package/build/components/block-list/block-list-item-cell.native.js +15 -2
  22. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  23. package/build/components/block-list/block-list-item.native.js +158 -195
  24. package/build/components/block-list/block-list-item.native.js.map +1 -1
  25. package/build/components/block-list/block-outline.native.js +57 -0
  26. package/build/components/block-list/block-outline.native.js.map +1 -0
  27. package/build/components/block-list/block.js +29 -37
  28. package/build/components/block-list/block.js.map +1 -1
  29. package/build/components/block-list/block.native.js +347 -311
  30. package/build/components/block-list/block.native.js.map +1 -1
  31. package/build/components/block-list/index.native.js +260 -357
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/insertion-point.native.js +4 -2
  34. package/build/components/block-list/insertion-point.native.js.map +1 -1
  35. package/build/components/block-list/use-block-props/index.js +2 -2
  36. package/build/components/block-list/use-block-props/index.js.map +1 -1
  37. package/build/components/block-list/use-in-between-inserter.js +7 -5
  38. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  39. package/build/components/block-list-appender/index.js +15 -1
  40. package/build/components/block-list-appender/index.js.map +1 -1
  41. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
  42. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  43. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
  44. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  45. package/build/components/block-settings-menu-controls/index.js +15 -4
  46. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  47. package/build/components/block-styles/preview-panel.js +1 -2
  48. package/build/components/block-styles/preview-panel.js.map +1 -1
  49. package/build/components/block-switcher/block-transformations-menu.js +8 -0
  50. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  51. package/build/components/block-switcher/block-variation-transformations.js +125 -0
  52. package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
  53. package/build/components/block-switcher/index.js +34 -12
  54. package/build/components/block-switcher/index.js.map +1 -1
  55. package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
  56. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  57. package/build/components/block-toolbar/index.js +9 -7
  58. package/build/components/block-toolbar/index.js.map +1 -1
  59. package/build/components/block-tools/block-contextual-toolbar.js +22 -65
  60. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  61. package/build/components/block-tools/insertion-point.js +11 -5
  62. package/build/components/block-tools/insertion-point.js.map +1 -1
  63. package/build/components/block-tools/selected-block-popover.js +3 -8
  64. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  65. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  66. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  67. package/build/components/convert-to-group-buttons/index.js +7 -2
  68. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  69. package/build/components/convert-to-group-buttons/index.native.js +87 -3
  70. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  71. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
  72. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  73. package/build/components/global-styles/advanced-panel.js +86 -0
  74. package/build/components/global-styles/advanced-panel.js.map +1 -0
  75. package/build/components/global-styles/color-panel.js +4 -1
  76. package/build/components/global-styles/color-panel.js.map +1 -1
  77. package/build/components/global-styles/dimensions-panel.js +9 -8
  78. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  79. package/build/components/global-styles/hooks.js +1 -2
  80. package/build/components/global-styles/hooks.js.map +1 -1
  81. package/build/components/global-styles/index.js +24 -0
  82. package/build/components/global-styles/index.js.map +1 -1
  83. package/build/components/global-styles/typography-panel.js +1 -1
  84. package/build/components/global-styles/typography-panel.js.map +1 -1
  85. package/build/components/global-styles/use-global-styles-output.js +27 -4
  86. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  87. package/build/components/global-styles/utils.js +30 -0
  88. package/build/components/global-styles/utils.js.map +1 -1
  89. package/build/components/iframe/index.js +14 -7
  90. package/build/components/iframe/index.js.map +1 -1
  91. package/build/components/image-editor/use-save-image.js +24 -8
  92. package/build/components/image-editor/use-save-image.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +2 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/index.native.js +7 -7
  96. package/build/components/inner-blocks/index.native.js.map +1 -1
  97. package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
  98. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  99. package/build/components/inserter/index.js +3 -7
  100. package/build/components/inserter/index.js.map +1 -1
  101. package/build/components/inserter/quick-inserter.js +2 -4
  102. package/build/components/inserter/quick-inserter.js.map +1 -1
  103. package/build/components/inserter/search-results.js +19 -6
  104. package/build/components/inserter/search-results.js.map +1 -1
  105. package/build/components/inserter-draggable-blocks/index.js +5 -0
  106. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  107. package/build/components/inspector-controls/fill.js +1 -1
  108. package/build/components/inspector-controls/fill.js.map +1 -1
  109. package/build/components/inspector-controls/fill.native.js +1 -1
  110. package/build/components/inspector-controls/fill.native.js.map +1 -1
  111. package/build/components/inspector-controls/slot.js +3 -6
  112. package/build/components/inspector-controls/slot.js.map +1 -1
  113. package/build/components/inspector-controls/slot.native.js +1 -1
  114. package/build/components/inspector-controls/slot.native.js.map +1 -1
  115. package/build/components/line-height-control/index.js +7 -2
  116. package/build/components/line-height-control/index.js.map +1 -1
  117. package/build/components/link-control/use-internal-input-value.js +9 -8
  118. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  119. package/build/components/list-view/appender.js +6 -1
  120. package/build/components/list-view/appender.js.map +1 -1
  121. package/build/components/list-view/block-contents.js +9 -2
  122. package/build/components/list-view/block-contents.js.map +1 -1
  123. package/build/components/list-view/block-select-button.js +2 -1
  124. package/build/components/list-view/block-select-button.js.map +1 -1
  125. package/build/components/list-view/block.js +25 -29
  126. package/build/components/list-view/block.js.map +1 -1
  127. package/build/components/list-view/branch.js +1 -3
  128. package/build/components/list-view/branch.js.map +1 -1
  129. package/build/components/list-view/index.js +43 -22
  130. package/build/components/list-view/index.js.map +1 -1
  131. package/build/components/list-view/use-list-view-client-ids.js +27 -3
  132. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  133. package/build/components/list-view/use-list-view-drop-zone.js +163 -11
  134. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +68 -7
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/multi-selection-inspector/index.js +2 -2
  138. package/build/components/multi-selection-inspector/index.js.map +1 -1
  139. package/build/components/preview-options/index.js +6 -1
  140. package/build/components/preview-options/index.js.map +1 -1
  141. package/build/components/publish-date-time-picker/index.js +0 -2
  142. package/build/components/publish-date-time-picker/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
  144. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  145. package/build/components/url-input/index.js +4 -2
  146. package/build/components/url-input/index.js.map +1 -1
  147. package/build/components/use-block-drop-zone/index.js +25 -15
  148. package/build/components/use-block-drop-zone/index.js.map +1 -1
  149. package/build/components/use-resize-canvas/index.js +8 -1
  150. package/build/components/use-resize-canvas/index.js.map +1 -1
  151. package/build/components/writing-flow/use-arrow-nav.js +13 -7
  152. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  153. package/build/hooks/align.js +4 -8
  154. package/build/hooks/align.js.map +1 -1
  155. package/build/hooks/behaviors.js +115 -0
  156. package/build/hooks/behaviors.js.map +1 -0
  157. package/build/hooks/border.js +1 -1
  158. package/build/hooks/border.js.map +1 -1
  159. package/build/hooks/color.js +1 -1
  160. package/build/hooks/color.js.map +1 -1
  161. package/build/hooks/content-lock-ui.js +8 -12
  162. package/build/hooks/content-lock-ui.js.map +1 -1
  163. package/build/hooks/dimensions.js +0 -30
  164. package/build/hooks/dimensions.js.map +1 -1
  165. package/build/hooks/duotone.js +5 -9
  166. package/build/hooks/duotone.js.map +1 -1
  167. package/build/hooks/index.js +2 -0
  168. package/build/hooks/index.js.map +1 -1
  169. package/build/hooks/index.native.js +8 -0
  170. package/build/hooks/index.native.js.map +1 -1
  171. package/build/hooks/layout.js +10 -11
  172. package/build/hooks/layout.js.map +1 -1
  173. package/build/hooks/position.js +1 -1
  174. package/build/hooks/position.js.map +1 -1
  175. package/build/hooks/style.js +1 -1
  176. package/build/hooks/style.js.map +1 -1
  177. package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
  178. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  179. package/build/hooks/use-typography-props.js +14 -10
  180. package/build/hooks/use-typography-props.js.map +1 -1
  181. package/build/index.native.js +31 -0
  182. package/build/index.native.js.map +1 -0
  183. package/build/private-apis.js +4 -7
  184. package/build/private-apis.js.map +1 -1
  185. package/build/store/private-actions.js +46 -0
  186. package/build/store/private-actions.js.map +1 -1
  187. package/build/store/private-selectors.js +88 -0
  188. package/build/store/private-selectors.js.map +1 -1
  189. package/build/store/reducer.js +36 -1
  190. package/build/store/reducer.js.map +1 -1
  191. package/build/store/selectors.js +28 -18
  192. package/build/store/selectors.js.map +1 -1
  193. package/build/utils/order-inserter-block-items.js +41 -0
  194. package/build/utils/order-inserter-block-items.js.map +1 -0
  195. package/build/utils/use-should-contextual-toolbar-show.js +16 -12
  196. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
  197. package/build-module/autocompleters/block.js +12 -5
  198. package/build-module/autocompleters/block.js.map +1 -1
  199. package/build-module/components/block-breadcrumb/index.js +5 -3
  200. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  201. package/build-module/components/block-controls/slot.js +11 -4
  202. package/build-module/components/block-controls/slot.js.map +1 -1
  203. package/build-module/components/block-controls/slot.native.js +9 -1
  204. package/build-module/components/block-controls/slot.native.js.map +1 -1
  205. package/build-module/components/block-draggable/index.js +10 -6
  206. package/build-module/components/block-draggable/index.js.map +1 -1
  207. package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
  208. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  209. package/build-module/components/block-editing-mode/index.js +72 -0
  210. package/build-module/components/block-editing-mode/index.js.map +1 -0
  211. package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
  212. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  213. package/build-module/components/block-list/block-list-block-context.js +6 -0
  214. package/build-module/components/block-list/block-list-block-context.js.map +1 -0
  215. package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
  216. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  217. package/build-module/components/block-list/block-list-item.native.js +160 -190
  218. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  219. package/build-module/components/block-list/block-outline.native.js +44 -0
  220. package/build-module/components/block-list/block-outline.native.js.map +1 -0
  221. package/build-module/components/block-list/block.js +26 -34
  222. package/build-module/components/block-list/block.js.map +1 -1
  223. package/build-module/components/block-list/block.native.js +345 -310
  224. package/build-module/components/block-list/block.native.js.map +1 -1
  225. package/build-module/components/block-list/index.native.js +263 -355
  226. package/build-module/components/block-list/index.native.js.map +1 -1
  227. package/build-module/components/block-list/insertion-point.native.js +4 -2
  228. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  229. package/build-module/components/block-list/use-block-props/index.js +1 -1
  230. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  231. package/build-module/components/block-list/use-in-between-inserter.js +6 -5
  232. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  233. package/build-module/components/block-list-appender/index.js +15 -1
  234. package/build-module/components/block-list-appender/index.js.map +1 -1
  235. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
  236. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  237. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
  238. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  239. package/build-module/components/block-settings-menu-controls/index.js +13 -5
  240. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  241. package/build-module/components/block-styles/preview-panel.js +1 -2
  242. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  243. package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
  244. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  245. package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
  246. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
  247. package/build-module/components/block-switcher/index.js +33 -12
  248. package/build-module/components/block-switcher/index.js.map +1 -1
  249. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
  250. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  251. package/build-module/components/block-toolbar/index.js +8 -7
  252. package/build-module/components/block-toolbar/index.js.map +1 -1
  253. package/build-module/components/block-tools/block-contextual-toolbar.js +22 -65
  254. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  255. package/build-module/components/block-tools/insertion-point.js +11 -5
  256. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  257. package/build-module/components/block-tools/selected-block-popover.js +3 -7
  258. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  259. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  260. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  261. package/build-module/components/convert-to-group-buttons/index.js +7 -2
  262. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  263. package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
  264. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  265. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
  266. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  267. package/build-module/components/global-styles/advanced-panel.js +74 -0
  268. package/build-module/components/global-styles/advanced-panel.js.map +1 -0
  269. package/build-module/components/global-styles/color-panel.js +5 -2
  270. package/build-module/components/global-styles/color-panel.js.map +1 -1
  271. package/build-module/components/global-styles/dimensions-panel.js +9 -8
  272. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  273. package/build-module/components/global-styles/hooks.js +1 -2
  274. package/build-module/components/global-styles/hooks.js.map +1 -1
  275. package/build-module/components/global-styles/index.js +3 -1
  276. package/build-module/components/global-styles/index.js.map +1 -1
  277. package/build-module/components/global-styles/typography-panel.js +1 -1
  278. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  279. package/build-module/components/global-styles/use-global-styles-output.js +25 -4
  280. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  281. package/build-module/components/global-styles/utils.js +25 -0
  282. package/build-module/components/global-styles/utils.js.map +1 -1
  283. package/build-module/components/iframe/index.js +15 -8
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/image-editor/use-save-image.js +24 -8
  286. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  287. package/build-module/components/inner-blocks/index.js +2 -1
  288. package/build-module/components/inner-blocks/index.js.map +1 -1
  289. package/build-module/components/inner-blocks/index.native.js +7 -6
  290. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  291. package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
  292. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  293. package/build-module/components/inserter/index.js +3 -7
  294. package/build-module/components/inserter/index.js.map +1 -1
  295. package/build-module/components/inserter/quick-inserter.js +2 -4
  296. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  297. package/build-module/components/inserter/search-results.js +16 -6
  298. package/build-module/components/inserter/search-results.js.map +1 -1
  299. package/build-module/components/inserter-draggable-blocks/index.js +4 -0
  300. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  301. package/build-module/components/inspector-controls/fill.js +1 -1
  302. package/build-module/components/inspector-controls/fill.js.map +1 -1
  303. package/build-module/components/inspector-controls/fill.native.js +1 -1
  304. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  305. package/build-module/components/inspector-controls/slot.js +4 -7
  306. package/build-module/components/inspector-controls/slot.js.map +1 -1
  307. package/build-module/components/inspector-controls/slot.native.js +1 -1
  308. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  309. package/build-module/components/line-height-control/index.js +7 -2
  310. package/build-module/components/line-height-control/index.js.map +1 -1
  311. package/build-module/components/link-control/use-internal-input-value.js +9 -8
  312. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  313. package/build-module/components/list-view/appender.js +6 -2
  314. package/build-module/components/list-view/appender.js.map +1 -1
  315. package/build-module/components/list-view/block-contents.js +9 -3
  316. package/build-module/components/list-view/block-contents.js.map +1 -1
  317. package/build-module/components/list-view/block-select-button.js +2 -1
  318. package/build-module/components/list-view/block-select-button.js.map +1 -1
  319. package/build-module/components/list-view/block.js +24 -29
  320. package/build-module/components/list-view/block.js.map +1 -1
  321. package/build-module/components/list-view/branch.js +1 -3
  322. package/build-module/components/list-view/branch.js.map +1 -1
  323. package/build-module/components/list-view/index.js +44 -23
  324. package/build-module/components/list-view/index.js.map +1 -1
  325. package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
  326. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  327. package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
  328. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  329. package/build-module/components/media-placeholder/index.js +66 -7
  330. package/build-module/components/media-placeholder/index.js.map +1 -1
  331. package/build-module/components/multi-selection-inspector/index.js +2 -2
  332. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  333. package/build-module/components/preview-options/index.js +7 -2
  334. package/build-module/components/preview-options/index.js.map +1 -1
  335. package/build-module/components/publish-date-time-picker/index.js +0 -2
  336. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  337. package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
  338. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  339. package/build-module/components/url-input/index.js +4 -2
  340. package/build-module/components/url-input/index.js.map +1 -1
  341. package/build-module/components/use-block-drop-zone/index.js +25 -16
  342. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  343. package/build-module/components/use-resize-canvas/index.js +8 -1
  344. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  345. package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
  346. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  347. package/build-module/hooks/align.js +4 -7
  348. package/build-module/hooks/align.js.map +1 -1
  349. package/build-module/hooks/behaviors.js +97 -0
  350. package/build-module/hooks/behaviors.js.map +1 -0
  351. package/build-module/hooks/border.js +1 -1
  352. package/build-module/hooks/border.js.map +1 -1
  353. package/build-module/hooks/color.js +1 -1
  354. package/build-module/hooks/color.js.map +1 -1
  355. package/build-module/hooks/content-lock-ui.js +8 -11
  356. package/build-module/hooks/content-lock-ui.js.map +1 -1
  357. package/build-module/hooks/dimensions.js +0 -28
  358. package/build-module/hooks/dimensions.js.map +1 -1
  359. package/build-module/hooks/duotone.js +4 -7
  360. package/build-module/hooks/duotone.js.map +1 -1
  361. package/build-module/hooks/index.js +1 -0
  362. package/build-module/hooks/index.js.map +1 -1
  363. package/build-module/hooks/index.native.js +1 -0
  364. package/build-module/hooks/index.native.js.map +1 -1
  365. package/build-module/hooks/layout.js +9 -11
  366. package/build-module/hooks/layout.js.map +1 -1
  367. package/build-module/hooks/position.js +1 -1
  368. package/build-module/hooks/position.js.map +1 -1
  369. package/build-module/hooks/style.js +1 -1
  370. package/build-module/hooks/style.js.map +1 -1
  371. package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
  372. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  373. package/build-module/hooks/use-typography-props.js +14 -10
  374. package/build-module/hooks/use-typography-props.js.map +1 -1
  375. package/build-module/index.native.js +6 -0
  376. package/build-module/index.native.js.map +1 -0
  377. package/build-module/private-apis.js +3 -5
  378. package/build-module/private-apis.js.map +1 -1
  379. package/build-module/store/private-actions.js +42 -0
  380. package/build-module/store/private-actions.js.map +1 -1
  381. package/build-module/store/private-selectors.js +79 -0
  382. package/build-module/store/private-selectors.js.map +1 -1
  383. package/build-module/store/reducer.js +34 -1
  384. package/build-module/store/reducer.js.map +1 -1
  385. package/build-module/store/selectors.js +26 -17
  386. package/build-module/store/selectors.js.map +1 -1
  387. package/build-module/utils/order-inserter-block-items.js +32 -0
  388. package/build-module/utils/order-inserter-block-items.js.map +1 -0
  389. package/build-module/utils/use-should-contextual-toolbar-show.js +16 -12
  390. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
  391. package/build-style/content-rtl.css +32 -14
  392. package/build-style/content.css +32 -14
  393. package/build-style/default-editor-styles-rtl.css +1 -1
  394. package/build-style/default-editor-styles.css +1 -1
  395. package/build-style/style-rtl.css +56 -77
  396. package/build-style/style.css +57 -77
  397. package/package.json +32 -31
  398. package/src/autocompleters/block.js +15 -7
  399. package/src/components/block-breadcrumb/index.js +11 -3
  400. package/src/components/block-breadcrumb/style.scss +2 -1
  401. package/src/components/block-controls/slot.js +8 -4
  402. package/src/components/block-controls/slot.native.js +6 -1
  403. package/src/components/block-draggable/index.js +10 -6
  404. package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
  405. package/src/components/block-editing-mode/index.js +71 -0
  406. package/src/components/block-list/block-invalid-warning.native.js +17 -9
  407. package/src/components/block-list/block-list-block-context.js +6 -0
  408. package/src/components/block-list/block-list-item-cell.native.js +10 -1
  409. package/src/components/block-list/block-list-item.native.js +180 -208
  410. package/src/components/block-list/block-outline.native.js +58 -0
  411. package/src/components/block-list/block.js +38 -56
  412. package/src/components/block-list/block.native.js +531 -501
  413. package/src/components/block-list/content.scss +5 -6
  414. package/src/components/block-list/index.native.js +324 -382
  415. package/src/components/block-list/insertion-point.native.js +2 -2
  416. package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
  417. package/src/components/block-list/test/index.native.js +205 -0
  418. package/src/components/block-list/use-block-props/index.js +1 -1
  419. package/src/components/block-list/use-in-between-inserter.js +7 -3
  420. package/src/components/block-list-appender/index.js +22 -4
  421. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +26 -1
  422. package/src/components/block-mover/style.scss +1 -0
  423. package/src/components/block-pattern-setup/style.scss +1 -4
  424. package/src/components/block-patterns-list/style.scss +1 -4
  425. package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
  426. package/src/components/block-settings-menu-controls/index.js +24 -4
  427. package/src/components/block-styles/preview-panel.js +1 -3
  428. package/src/components/block-styles/style.scss +4 -4
  429. package/src/components/block-switcher/block-transformations-menu.js +12 -0
  430. package/src/components/block-switcher/block-variation-transformations.js +115 -0
  431. package/src/components/block-switcher/index.js +38 -5
  432. package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
  433. package/src/components/block-switcher/style.scss +6 -5
  434. package/src/components/block-toolbar/index.js +10 -11
  435. package/src/components/block-tools/block-contextual-toolbar.js +32 -67
  436. package/src/components/block-tools/insertion-point.js +23 -9
  437. package/src/components/block-tools/selected-block-popover.js +3 -5
  438. package/src/components/block-tools/style.scss +8 -0
  439. package/src/components/button-block-appender/content.scss +22 -0
  440. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
  441. package/src/components/convert-to-group-buttons/index.js +9 -2
  442. package/src/components/convert-to-group-buttons/index.native.js +79 -1
  443. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
  444. package/src/components/global-styles/advanced-panel.js +82 -0
  445. package/src/components/global-styles/color-panel.js +6 -1
  446. package/src/components/global-styles/dimensions-panel.js +9 -8
  447. package/src/components/global-styles/hooks.js +1 -5
  448. package/src/components/global-styles/index.js +6 -1
  449. package/src/components/global-styles/style.scss +17 -0
  450. package/src/components/global-styles/test/utils.js +57 -1
  451. package/src/components/global-styles/typography-panel.js +1 -1
  452. package/src/components/global-styles/use-global-styles-output.js +21 -3
  453. package/src/components/global-styles/utils.js +27 -0
  454. package/src/components/iframe/index.js +22 -12
  455. package/src/components/image-editor/use-save-image.js +20 -9
  456. package/src/components/inner-blocks/README.md +5 -0
  457. package/src/components/inner-blocks/index.js +2 -0
  458. package/src/components/inner-blocks/index.native.js +16 -6
  459. package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
  460. package/src/components/inserter/index.js +1 -9
  461. package/src/components/inserter/quick-inserter.js +0 -2
  462. package/src/components/inserter/search-results.js +32 -6
  463. package/src/components/inserter-draggable-blocks/index.js +4 -0
  464. package/src/components/inspector-controls/fill.js +1 -1
  465. package/src/components/inspector-controls/fill.native.js +1 -1
  466. package/src/components/inspector-controls/slot.js +4 -9
  467. package/src/components/inspector-controls/slot.native.js +1 -1
  468. package/src/components/line-height-control/index.js +7 -2
  469. package/src/components/line-height-control/stories/index.js +1 -1
  470. package/src/components/link-control/test/index.js +42 -0
  471. package/src/components/link-control/use-internal-input-value.js +8 -7
  472. package/src/components/list-view/appender.js +3 -2
  473. package/src/components/list-view/block-contents.js +32 -20
  474. package/src/components/list-view/block-select-button.js +5 -1
  475. package/src/components/list-view/block.js +34 -37
  476. package/src/components/list-view/branch.js +1 -7
  477. package/src/components/list-view/index.js +42 -17
  478. package/src/components/list-view/style.scss +7 -7
  479. package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
  480. package/src/components/list-view/use-list-view-client-ids.js +21 -4
  481. package/src/components/list-view/use-list-view-drop-zone.js +194 -11
  482. package/src/components/media-placeholder/index.js +74 -1
  483. package/src/components/multi-selection-inspector/index.js +2 -2
  484. package/src/components/preview-options/index.js +9 -2
  485. package/src/components/publish-date-time-picker/index.js +0 -2
  486. package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
  487. package/src/components/url-input/README.md +6 -0
  488. package/src/components/url-input/index.js +2 -2
  489. package/src/components/use-block-drop-zone/index.js +31 -17
  490. package/src/components/use-resize-canvas/index.js +9 -1
  491. package/src/components/writing-flow/test/index.js +15 -0
  492. package/src/components/writing-flow/use-arrow-nav.js +17 -4
  493. package/src/hooks/align.js +5 -12
  494. package/src/hooks/behaviors.js +104 -0
  495. package/src/hooks/border.js +2 -1
  496. package/src/hooks/color.js +2 -1
  497. package/src/hooks/content-lock-ui.js +3 -15
  498. package/src/hooks/dimensions.js +0 -40
  499. package/src/hooks/duotone.js +4 -11
  500. package/src/hooks/index.js +1 -0
  501. package/src/hooks/index.native.js +1 -0
  502. package/src/hooks/layout.js +14 -20
  503. package/src/hooks/position.js +2 -1
  504. package/src/hooks/style.js +2 -1
  505. package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
  506. package/src/hooks/test/use-typography-props.js +47 -2
  507. package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
  508. package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
  509. package/src/hooks/use-typography-props.js +10 -11
  510. package/src/index.native.js +6 -0
  511. package/src/private-apis.js +2 -4
  512. package/src/store/private-actions.js +39 -0
  513. package/src/store/private-selectors.js +95 -0
  514. package/src/store/reducer.js +27 -0
  515. package/src/store/selectors.js +25 -15
  516. package/src/store/test/private-actions.js +32 -1
  517. package/src/store/test/private-selectors.js +158 -0
  518. package/src/store/test/reducer.js +48 -0
  519. package/src/style.scss +0 -3
  520. package/src/utils/order-inserter-block-items.js +26 -0
  521. package/src/utils/use-should-contextual-toolbar-show.js +19 -9
  522. package/tsconfig.json +1 -0
  523. package/tsconfig.tsbuildinfo +1 -1
  524. package/build/components/block-list/block-list-compact.native.js +0 -75
  525. package/build/components/block-list/block-list-compact.native.js.map +0 -1
  526. package/build/components/off-canvas-editor/appender.js +0 -125
  527. package/build/components/off-canvas-editor/appender.js.map +0 -1
  528. package/build/components/off-canvas-editor/block-contents.js +0 -141
  529. package/build/components/off-canvas-editor/block-contents.js.map +0 -1
  530. package/build/components/off-canvas-editor/block-select-button.js +0 -126
  531. package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
  532. package/build/components/off-canvas-editor/block.js +0 -297
  533. package/build/components/off-canvas-editor/block.js.map +0 -1
  534. package/build/components/off-canvas-editor/branch.js +0 -197
  535. package/build/components/off-canvas-editor/branch.js.map +0 -1
  536. package/build/components/off-canvas-editor/context.js +0 -19
  537. package/build/components/off-canvas-editor/context.js.map +0 -1
  538. package/build/components/off-canvas-editor/drop-indicator.js +0 -118
  539. package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
  540. package/build/components/off-canvas-editor/expander.js +0 -41
  541. package/build/components/off-canvas-editor/expander.js.map +0 -1
  542. package/build/components/off-canvas-editor/index.js +0 -236
  543. package/build/components/off-canvas-editor/index.js.map +0 -1
  544. package/build/components/off-canvas-editor/leaf-more-menu.js +0 -146
  545. package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  546. package/build/components/off-canvas-editor/leaf.js +0 -60
  547. package/build/components/off-canvas-editor/leaf.js.map +0 -1
  548. package/build/components/off-canvas-editor/link-ui.js +0 -186
  549. package/build/components/off-canvas-editor/link-ui.js.map +0 -1
  550. package/build/components/off-canvas-editor/update-attributes.js +0 -108
  551. package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
  552. package/build/components/off-canvas-editor/use-block-selection.js +0 -139
  553. package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
  554. package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
  555. package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  556. package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
  557. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  558. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
  559. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  560. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
  561. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  562. package/build/components/off-canvas-editor/utils.js +0 -60
  563. package/build/components/off-canvas-editor/utils.js.map +0 -1
  564. package/build-module/components/block-list/block-list-compact.native.js +0 -60
  565. package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
  566. package/build-module/components/off-canvas-editor/appender.js +0 -108
  567. package/build-module/components/off-canvas-editor/appender.js.map +0 -1
  568. package/build-module/components/off-canvas-editor/block-contents.js +0 -121
  569. package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
  570. package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
  571. package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
  572. package/build-module/components/off-canvas-editor/block.js +0 -273
  573. package/build-module/components/off-canvas-editor/block.js.map +0 -1
  574. package/build-module/components/off-canvas-editor/branch.js +0 -179
  575. package/build-module/components/off-canvas-editor/branch.js.map +0 -1
  576. package/build-module/components/off-canvas-editor/context.js +0 -7
  577. package/build-module/components/off-canvas-editor/context.js.map +0 -1
  578. package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
  579. package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
  580. package/build-module/components/off-canvas-editor/expander.js +0 -32
  581. package/build-module/components/off-canvas-editor/expander.js.map +0 -1
  582. package/build-module/components/off-canvas-editor/index.js +0 -213
  583. package/build-module/components/off-canvas-editor/index.js.map +0 -1
  584. package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -128
  585. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
  586. package/build-module/components/off-canvas-editor/leaf.js +0 -45
  587. package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
  588. package/build-module/components/off-canvas-editor/link-ui.js +0 -166
  589. package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
  590. package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
  591. package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
  592. package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
  593. package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
  594. package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
  595. package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
  596. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
  597. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
  598. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
  599. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
  600. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
  601. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
  602. package/build-module/components/off-canvas-editor/utils.js +0 -44
  603. package/build-module/components/off-canvas-editor/utils.js.map +0 -1
  604. package/src/components/block-list/block-list-compact.native.js +0 -63
  605. package/src/components/off-canvas-editor/README.md +0 -5
  606. package/src/components/off-canvas-editor/appender.js +0 -124
  607. package/src/components/off-canvas-editor/block-contents.js +0 -156
  608. package/src/components/off-canvas-editor/block-select-button.js +0 -128
  609. package/src/components/off-canvas-editor/block.js +0 -347
  610. package/src/components/off-canvas-editor/branch.js +0 -238
  611. package/src/components/off-canvas-editor/context.js +0 -8
  612. package/src/components/off-canvas-editor/drop-indicator.js +0 -126
  613. package/src/components/off-canvas-editor/expander.js +0 -26
  614. package/src/components/off-canvas-editor/index.js +0 -271
  615. package/src/components/off-canvas-editor/leaf-more-menu.js +0 -157
  616. package/src/components/off-canvas-editor/leaf.js +0 -52
  617. package/src/components/off-canvas-editor/link-ui.js +0 -167
  618. package/src/components/off-canvas-editor/style.scss +0 -34
  619. package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
  620. package/src/components/off-canvas-editor/test/utils.js +0 -50
  621. package/src/components/off-canvas-editor/update-attributes.js +0 -99
  622. package/src/components/off-canvas-editor/use-block-selection.js +0 -169
  623. package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
  624. package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
  625. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
  626. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
  627. package/src/components/off-canvas-editor/utils.js +0 -58
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"names":["identity","x","stylesMemo","getStyles","isRootList","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","styles","horizontal","overflowVisible","BlockList","Component","constructor","arguments","extraData","parentWidth","props","renderFooterAppender","renderAppender","onDeleteBlock","contentStyle","renderItem","bind","renderBlockListFooter","scrollViewInnerRef","addBlockToEndOfPost","shouldFlatListPreventAutomaticScroll","shouldShowInnerBlockAppender","renderEmptyList","getExtraData","getCellRendererComponent","onLayout","state","blockWidth","newBlock","insertBlock","blockCount","ref","scrollViewRef","isBlockInsertionPointVisible","blockClientIds","length","rootClientId","gridProperties","children","item","nativeEvent","layout","maxWidth","layoutWidth","Math","floor","width","setState","min","render","isRTL","blockList","DEFAULT_BLOCK_LIST_CONTEXT","scrollRef","onScroll","renderList","parentScrollRef","extraProps","clearSelectedBlock","title","header","isReadOnly","marginVertical","defaultBlock","marginTop","marginHorizontal","marginLeft","isFloatingToolbarVisible","contentResizeMode","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","alignmentHelpers","extraScrollHeight","height","scrollViewStyle","Platform","OS","removeClippedSubviews","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","innerAppender","clientId","onAddBlock","isGridItem","gridItemProps","numOfColumns","numColumns","tileCount","tileIndex","indexOf","paragraphBlock","withFooter","blockListFooter","select","orientation","filterInnerBlocks","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","getSettings","blockEditorStore","selectedBlockClientId","readOnly","rootBlockId","undefined","dispatch","replaceBlock","withPreferredColorScheme","EmptyListComponent","shouldShowInsertionPoint","defaultAppender","WIDE_ALIGNMENTS","alignments","full","EmptyListComponentCompose","getBlockInsertionPoint","insertionPoint","blockInsertionPointIsVisible","index"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tKeyboardAwareFlatList,\n\tReadableContentView,\n\tWIDE_ALIGNMENTS,\n\talignmentHelpers,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockListAppender from '../block-list-appender';\nimport BlockListItem from './block-list-item';\nimport BlockListItemCell from './block-list-item-cell';\nimport {\n\tBlockListProvider,\n\tBlockListConsumer,\n\tDEFAULT_BLOCK_LIST_CONTEXT,\n} from './block-list-context';\nimport { BlockDraggableWrapper } from '../block-draggable';\nimport { store as blockEditorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nconst stylesMemo = {};\nconst getStyles = (\n\tisRootList,\n\tisStackedHorizontally,\n\thorizontalAlignment\n) => {\n\tif ( isRootList ) {\n\t\treturn;\n\t}\n\tconst styleName = `${ isStackedHorizontally }-${ horizontalAlignment }`;\n\tif ( stylesMemo[ styleName ] ) {\n\t\treturn stylesMemo[ styleName ];\n\t}\n\tconst computedStyles = [\n\t\tisStackedHorizontally && styles.horizontal,\n\t\thorizontalAlignment && styles[ `is-aligned-${ horizontalAlignment }` ],\n\t\tstyles.overflowVisible,\n\t];\n\tstylesMemo[ styleName ] = computedStyles;\n\treturn computedStyles;\n};\n\nexport class BlockList extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.extraData = {\n\t\t\tparentWidth: this.props.parentWidth,\n\t\t\trenderFooterAppender: this.props.renderFooterAppender,\n\t\t\trenderAppender: this.props.renderAppender,\n\t\t\tonDeleteBlock: this.props.onDeleteBlock,\n\t\t\tcontentStyle: this.props.contentStyle,\n\t\t};\n\t\tthis.renderItem = this.renderItem.bind( this );\n\t\tthis.renderBlockListFooter = this.renderBlockListFooter.bind( this );\n\t\tthis.scrollViewInnerRef = this.scrollViewInnerRef.bind( this );\n\t\tthis.addBlockToEndOfPost = this.addBlockToEndOfPost.bind( this );\n\t\tthis.shouldFlatListPreventAutomaticScroll =\n\t\t\tthis.shouldFlatListPreventAutomaticScroll.bind( this );\n\t\tthis.shouldShowInnerBlockAppender =\n\t\t\tthis.shouldShowInnerBlockAppender.bind( this );\n\t\tthis.renderEmptyList = this.renderEmptyList.bind( this );\n\t\tthis.getExtraData = this.getExtraData.bind( this );\n\t\tthis.getCellRendererComponent =\n\t\t\tthis.getCellRendererComponent.bind( this );\n\n\t\tthis.onLayout = this.onLayout.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth || 0,\n\t\t};\n\t}\n\n\taddBlockToEndOfPost( newBlock ) {\n\t\tthis.props.insertBlock( newBlock, this.props.blockCount );\n\t}\n\n\tscrollViewInnerRef( ref ) {\n\t\tthis.scrollViewRef = ref;\n\t}\n\n\tshouldFlatListPreventAutomaticScroll() {\n\t\treturn this.props.isBlockInsertionPointVisible;\n\t}\n\n\tshouldShowInnerBlockAppender() {\n\t\tconst { blockClientIds, renderAppender } = this.props;\n\t\treturn renderAppender && blockClientIds.length > 0;\n\t}\n\n\trenderEmptyList() {\n\t\treturn (\n\t\t\t<EmptyListComponentCompose\n\t\t\t\trootClientId={ this.props.rootClientId }\n\t\t\t\trenderAppender={ this.props.renderAppender }\n\t\t\t\trenderFooterAppender={ this.props.renderFooterAppender }\n\t\t\t/>\n\t\t);\n\t}\n\n\tgetExtraData() {\n\t\tconst {\n\t\t\tparentWidth,\n\t\t\trenderFooterAppender,\n\t\t\tonDeleteBlock,\n\t\t\tcontentStyle,\n\t\t\trenderAppender,\n\t\t\tgridProperties,\n\t\t} = this.props;\n\t\tconst { blockWidth } = this.state;\n\t\tif (\n\t\t\tthis.extraData.parentWidth !== parentWidth ||\n\t\t\tthis.extraData.renderFooterAppender !== renderFooterAppender ||\n\t\t\tthis.extraData.onDeleteBlock !== onDeleteBlock ||\n\t\t\tthis.extraData.contentStyle !== contentStyle ||\n\t\t\tthis.extraData.renderAppender !== renderAppender ||\n\t\t\tthis.extraData.blockWidth !== blockWidth ||\n\t\t\tthis.extraData.gridProperties !== gridProperties\n\t\t) {\n\t\t\tthis.extraData = {\n\t\t\t\tparentWidth,\n\t\t\t\trenderFooterAppender,\n\t\t\t\tonDeleteBlock,\n\t\t\t\tcontentStyle,\n\t\t\t\trenderAppender,\n\t\t\t\tblockWidth,\n\t\t\t\tgridProperties,\n\t\t\t};\n\t\t}\n\t\treturn this.extraData;\n\t}\n\n\tgetCellRendererComponent( { children, item, onLayout } ) {\n\t\tconst { rootClientId } = this.props;\n\t\treturn (\n\t\t\t<BlockListItemCell\n\t\t\t\tchildren={ children }\n\t\t\t\tclientId={ item }\n\t\t\t\tonLayout={ onLayout }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t);\n\t}\n\n\tonLayout( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst { isRootList, maxWidth } = this.props;\n\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( isRootList && blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( {\n\t\t\t\tblockWidth: Math.min( layoutWidth, maxWidth ),\n\t\t\t} );\n\t\t} else if ( ! isRootList && ! blockWidth ) {\n\t\t\tthis.setState( { blockWidth: Math.min( layoutWidth, maxWidth ) } );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { isRootList, isRTL } = this.props;\n\t\t// Use of Context to propagate the main scroll ref to its children e.g InnerBlocks.\n\t\tconst blockList = isRootList ? (\n\t\t\t<BlockListProvider\n\t\t\t\tvalue={ {\n\t\t\t\t\t...DEFAULT_BLOCK_LIST_CONTEXT,\n\t\t\t\t\tscrollRef: this.scrollViewRef,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<BlockDraggableWrapper isRTL={ isRTL }>\n\t\t\t\t\t{ ( { onScroll } ) => this.renderList( { onScroll } ) }\n\t\t\t\t</BlockDraggableWrapper>\n\t\t\t</BlockListProvider>\n\t\t) : (\n\t\t\t<BlockListConsumer>\n\t\t\t\t{ ( { scrollRef } ) =>\n\t\t\t\t\tthis.renderList( {\n\t\t\t\t\t\tparentScrollRef: scrollRef,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t</BlockListConsumer>\n\t\t);\n\n\t\treturn blockList;\n\t}\n\n\trenderList( extraProps = {} ) {\n\t\tconst {\n\t\t\tclearSelectedBlock,\n\t\t\tblockClientIds,\n\t\t\ttitle,\n\t\t\theader,\n\t\t\tisReadOnly,\n\t\t\tisRootList,\n\t\t\thorizontal,\n\t\t\tmarginVertical = styles.defaultBlock.marginTop,\n\t\t\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\t\t\tisFloatingToolbarVisible,\n\t\t\tisStackedHorizontally,\n\t\t\thorizontalAlignment,\n\t\t\tcontentResizeMode,\n\t\t\tblockWidth,\n\t\t} = this.props;\n\t\tconst { parentScrollRef, onScroll } = extraProps;\n\n\t\tconst { blockToolbar, headerToolbar, floatingToolbar } = styles;\n\n\t\tconst containerStyle = {\n\t\t\tflex: isRootList ? 1 : 0,\n\t\t\t// We set negative margin in the parent to remove the edge spacing between parent block and child block in ineer blocks.\n\t\t\tmarginVertical: isRootList ? 0 : -marginVertical,\n\t\t\tmarginHorizontal: isRootList ? 0 : -marginHorizontal,\n\t\t};\n\n\t\tconst isContentStretch = contentResizeMode === 'stretch';\n\t\tconst isMultiBlocks = blockClientIds.length > 1;\n\t\tconst { isWider } = alignmentHelpers;\n\t\tconst extraScrollHeight =\n\t\t\theaderToolbar.height +\n\t\t\tblockToolbar.height +\n\t\t\t( isFloatingToolbarVisible ? floatingToolbar.height : 0 );\n\n\t\tconst scrollViewStyle = [\n\t\t\t{ flex: isRootList ? 1 : 0 },\n\t\t\t! isRootList && styles.overflowVisible,\n\t\t];\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ containerStyle }\n\t\t\t\tonAccessibilityEscape={ clearSelectedBlock }\n\t\t\t\tonLayout={ this.onLayout }\n\t\t\t\ttestID=\"block-list-wrapper\"\n\t\t\t>\n\t\t\t\t<KeyboardAwareFlatList\n\t\t\t\t\t{ ...( Platform.OS === 'android'\n\t\t\t\t\t\t? { removeClippedSubviews: false }\n\t\t\t\t\t\t: {} ) } // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541\n\t\t\t\t\taccessibilityLabel=\"block-list\"\n\t\t\t\t\tinnerRef={ ( ref ) => {\n\t\t\t\t\t\tthis.scrollViewInnerRef( parentScrollRef || ref );\n\t\t\t\t\t} }\n\t\t\t\t\textraScrollHeight={ extraScrollHeight }\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\tscrollViewStyle={ scrollViewStyle }\n\t\t\t\t\textraData={ this.getExtraData() }\n\t\t\t\t\tscrollEnabled={ isRootList }\n\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\thorizontal && styles.horizontalContentContainer,\n\t\t\t\t\t\tisWider( blockWidth, 'medium' ) &&\n\t\t\t\t\t\t\t( isContentStretch && isMultiBlocks\n\t\t\t\t\t\t\t\t? styles.horizontalContentContainerStretch\n\t\t\t\t\t\t\t\t: styles.horizontalContentContainerCenter ),\n\t\t\t\t\t] }\n\t\t\t\t\tstyle={ getStyles(\n\t\t\t\t\t\tisRootList,\n\t\t\t\t\t\tisStackedHorizontally,\n\t\t\t\t\t\thorizontalAlignment\n\t\t\t\t\t) }\n\t\t\t\t\tdata={ blockClientIds }\n\t\t\t\t\tkeyExtractor={ identity }\n\t\t\t\t\trenderItem={ this.renderItem }\n\t\t\t\t\tCellRendererComponent={ this.getCellRendererComponent }\n\t\t\t\t\tshouldPreventAutomaticScroll={\n\t\t\t\t\t\tthis.shouldFlatListPreventAutomaticScroll\n\t\t\t\t\t}\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tListHeaderComponent={ header }\n\t\t\t\t\tListEmptyComponent={ ! isReadOnly && this.renderEmptyList }\n\t\t\t\t\tListFooterComponent={ this.renderBlockListFooter }\n\t\t\t\t\tonScroll={ onScroll }\n\t\t\t\t/>\n\t\t\t\t{ this.shouldShowInnerBlockAppender() && (\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tmarginHorizontal:\n\t\t\t\t\t\t\t\tmarginHorizontal -\n\t\t\t\t\t\t\t\tstyles.innerAppender.marginLeft,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockListAppender\n\t\t\t\t\t\t\trootClientId={ this.props.rootClientId }\n\t\t\t\t\t\t\trenderAppender={ this.props.renderAppender }\n\t\t\t\t\t\t\tshowSeparator\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderItem( { item: clientId } ) {\n\t\tconst {\n\t\t\tcontentResizeMode,\n\t\t\tcontentStyle,\n\t\t\tonAddBlock,\n\t\t\tonDeleteBlock,\n\t\t\trootClientId,\n\t\t\tisStackedHorizontally,\n\t\t\tblockClientIds,\n\t\t\tparentWidth,\n\t\t\tmarginVertical = styles.defaultBlock.marginTop,\n\t\t\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\t\t\tgridProperties,\n\t\t} = this.props;\n\t\tconst { blockWidth } = this.state;\n\n\t\t// Extracting the grid item properties here to avoid\n\t\t// re-renders in the blockListItem component.\n\t\tconst isGridItem = !! gridProperties;\n\t\tconst gridItemProps = gridProperties && {\n\t\t\tnumOfColumns: gridProperties.numColumns,\n\t\t\ttileCount: blockClientIds.length,\n\t\t\ttileIndex: blockClientIds.indexOf( clientId ),\n\t\t};\n\t\treturn (\n\t\t\t<BlockListItem\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\tmarginVertical={ marginVertical }\n\t\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tshouldShowInnerBlockAppender={\n\t\t\t\t\tthis.shouldShowInnerBlockAppender\n\t\t\t\t}\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tisGridItem={ isGridItem }\n\t\t\t\t{ ...gridItemProps }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockListFooter() {\n\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\tconst {\n\t\t\tisReadOnly,\n\t\t\twithFooter = true,\n\t\t\trenderFooterAppender,\n\t\t} = this.props;\n\n\t\tif ( ! isReadOnly && withFooter ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\t\tthis.addBlockToEndOfPost( paragraphBlock );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t</>\n\t\t\t);\n\t\t} else if ( renderFooterAppender ) {\n\t\t\treturn renderFooterAppender();\n\t\t}\n\t\treturn null;\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { rootClientId, orientation, filterInnerBlocks } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst isStackedHorizontally = orientation === 'horizontal';\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tlet blockClientIds = getBlockOrder( rootClientId );\n\t\t\t// Display only block which fulfill the condition in passed `filterInnerBlocks` function.\n\t\t\tif ( filterInnerBlocks ) {\n\t\t\t\tblockClientIds = filterInnerBlocks( blockClientIds );\n\t\t\t}\n\n\t\t\tconst { maxWidth } = getSettings();\n\t\t\tconst isReadOnly = getSettings().readOnly;\n\n\t\t\tconst blockCount = getBlockCount();\n\t\t\tconst rootBlockId = getBlockHierarchyRootClientId(\n\t\t\t\tselectedBlockClientId\n\t\t\t);\n\n\t\t\tconst isFloatingToolbarVisible =\n\t\t\t\t!! selectedBlockClientId && !! getBlockCount( rootBlockId );\n\t\t\tconst isRTL = getSettings().isRTL;\n\n\t\t\treturn {\n\t\t\t\tblockClientIds,\n\t\t\t\tblockCount,\n\t\t\t\tisBlockInsertionPointVisible:\n\t\t\t\t\tPlatform.OS === 'ios' && isBlockInsertionPointVisible(),\n\t\t\t\tisReadOnly,\n\t\t\t\tisRootList: rootClientId === undefined,\n\t\t\t\tisFloatingToolbarVisible,\n\t\t\t\tisStackedHorizontally,\n\t\t\t\tmaxWidth,\n\t\t\t\tisRTL,\n\t\t\t};\n\t\t}\n\t),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { insertBlock, replaceBlock, clearSelectedBlock } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tclearSelectedBlock,\n\t\t\tinsertBlock,\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockList );\n\nclass EmptyListComponent extends Component {\n\trender() {\n\t\tconst {\n\t\t\tshouldShowInsertionPoint,\n\t\t\trootClientId,\n\t\t\trenderAppender,\n\t\t\trenderFooterAppender,\n\t\t} = this.props;\n\n\t\tif ( renderFooterAppender || renderAppender === false ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={ styles.defaultAppender }>\n\t\t\t\t<ReadableContentView\n\t\t\t\t\talign={\n\t\t\t\t\t\trenderAppender\n\t\t\t\t\t\t\t? WIDE_ALIGNMENTS.alignments.full\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<BlockListAppender\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\tshowSeparator={ shouldShowInsertionPoint }\n\t\t\t\t\t/>\n\t\t\t\t</ReadableContentView>\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nconst EmptyListComponentCompose = compose( [\n\twithSelect( ( select, { rootClientId, orientation } ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockInsertionPointVisible,\n\t\t} = select( blockEditorStore );\n\n\t\tconst isStackedHorizontally = orientation === 'horizontal';\n\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\t\tconst shouldShowInsertionPoint =\n\t\t\t! isStackedHorizontally &&\n\t\t\tblockInsertionPointIsVisible &&\n\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t! blockClientIds[ insertionPoint.index ] );\n\n\t\treturn {\n\t\t\tshouldShowInsertionPoint,\n\t\t};\n\t} ),\n] )( EmptyListComponent );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"names":["identity","x","stylesMemo","getStyles","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","styles","horizontal","overflowVisible","BlockList","blockWidth","initialBlockWidth","contentResizeMode","contentStyle","filterInnerBlocks","gridProperties","header","marginHorizontal","defaultBlock","marginLeft","marginVertical","marginTop","onAddBlock","onDeleteBlock","orientation","parentWidth","renderAppender","renderFooterAppender","rootClientId","withFooter","blockClientIds","blockCount","blockInsertionPointIsVisible","isReadOnly","isRootList","isFloatingToolbarVisible","maxWidth","isRTL","select","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","isBlockInsertionPointVisible","getSettings","blockEditorStore","selectedBlockClientId","rootBlockId","blockOrder","isRTLSetting","maxWidthSetting","readOnly","Platform","OS","undefined","insertBlock","clearSelectedBlock","extraData","setBlockWidth","addBlockToEndOfPost","newBlock","scrollViewRef","shouldFlatListPreventAutomaticScroll","shouldShowInnerBlockAppender","length","getExtraData","current","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","min","renderItem","item","clientId","index","isGridItem","gridItemProps","numOfColumns","numColumns","tileCount","tileIndex","indexOf","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","alignmentHelpers","extraScrollHeight","height","DEFAULT_BLOCK_LIST_CONTEXT","scrollRef","onScroll","removeClippedSubviews","ref","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","BlockListItemCell","map","currentClientId","innerAppender","Footer","paragraphBlock","blockListFooter","EmptyList","shouldShowInsertionPoint","getBlockInsertionPoint","insertionPoint","align","WIDE_ALIGNMENTS","alignments","full","wrapperStyles","containerStyles","defaultAppender"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tKeyboardAwareFlatList,\n\tWIDE_ALIGNMENTS,\n\talignmentHelpers,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockListAppender from '../block-list-appender';\nimport BlockListItem from './block-list-item';\nimport BlockListItemCell from './block-list-item-cell';\nimport {\n\tBlockListProvider,\n\tDEFAULT_BLOCK_LIST_CONTEXT,\n} from './block-list-context';\nimport { BlockDraggableWrapper } from '../block-draggable';\nimport { useEditorWrapperStyles } from '../../hooks/use-editor-wrapper-styles';\nimport { store as blockEditorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nconst stylesMemo = {};\nconst getStyles = ( isStackedHorizontally, horizontalAlignment ) => {\n\tconst styleName = `${ isStackedHorizontally }-${ horizontalAlignment }`;\n\tif ( stylesMemo[ styleName ] ) {\n\t\treturn stylesMemo[ styleName ];\n\t}\n\tconst computedStyles = [\n\t\tisStackedHorizontally && styles.horizontal,\n\t\thorizontalAlignment && styles[ `is-aligned-${ horizontalAlignment }` ],\n\t\tstyles.overflowVisible,\n\t];\n\tstylesMemo[ styleName ] = computedStyles;\n\treturn computedStyles;\n};\n\nexport default function BlockList( {\n\tblockWidth: initialBlockWidth,\n\tcontentResizeMode,\n\tcontentStyle,\n\tfilterInnerBlocks,\n\tgridProperties,\n\theader,\n\thorizontal,\n\thorizontalAlignment,\n\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\tmarginVertical = styles.defaultBlock.marginTop,\n\tonAddBlock,\n\tonDeleteBlock,\n\torientation,\n\tparentWidth,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n\twithFooter = true,\n} ) {\n\tconst {\n\t\tblockClientIds,\n\t\tblockCount,\n\t\tblockInsertionPointIsVisible,\n\t\tisReadOnly,\n\t\tisRootList,\n\t\tisFloatingToolbarVisible,\n\t\tisStackedHorizontally,\n\t\tmaxWidth,\n\t\tisRTL,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst rootBlockId = getBlockHierarchyRootClientId(\n\t\t\t\tselectedBlockClientId\n\t\t\t);\n\n\t\t\tlet blockOrder = getBlockOrder( rootClientId );\n\t\t\t// Display only block which fulfill the condition in passed `filterInnerBlocks` function.\n\t\t\tif ( filterInnerBlocks ) {\n\t\t\t\tblockOrder = filterInnerBlocks( blockOrder );\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\treadOnly,\n\t\t\t} = getSettings();\n\n\t\t\treturn {\n\t\t\t\tblockClientIds: blockOrder,\n\t\t\t\tblockCount: getBlockCount(),\n\t\t\t\tblockInsertionPointIsVisible:\n\t\t\t\t\tPlatform.OS === 'ios' && isBlockInsertionPointVisible(),\n\t\t\t\tisReadOnly: readOnly,\n\t\t\t\tisRootList: rootClientId === undefined,\n\t\t\t\tisFloatingToolbarVisible:\n\t\t\t\t\t!! selectedBlockClientId && !! getBlockCount( rootBlockId ),\n\t\t\t\tisStackedHorizontally: orientation === 'horizontal',\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t};\n\t\t},\n\t\t[ filterInnerBlocks, orientation, rootClientId ]\n\t);\n\n\tconst { insertBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst extraData = useRef( {\n\t\tparentWidth,\n\t\trenderFooterAppender,\n\t\trenderAppender,\n\t\tonDeleteBlock,\n\t\tcontentStyle,\n\t} );\n\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth || 0 );\n\n\tconst addBlockToEndOfPost = ( newBlock ) => {\n\t\tinsertBlock( newBlock, blockCount );\n\t};\n\n\tconst scrollViewRef = useRef( null );\n\n\tconst shouldFlatListPreventAutomaticScroll = () =>\n\t\tblockInsertionPointIsVisible;\n\n\tconst shouldShowInnerBlockAppender = () =>\n\t\trenderAppender && blockClientIds.length > 0;\n\n\tconst getExtraData = () => {\n\t\tif (\n\t\t\textraData.current.parentWidth !== parentWidth ||\n\t\t\textraData.current.renderFooterAppender !== renderFooterAppender ||\n\t\t\textraData.current.onDeleteBlock !== onDeleteBlock ||\n\t\t\textraData.current.contentStyle !== contentStyle ||\n\t\t\textraData.current.renderAppender !== renderAppender ||\n\t\t\textraData.current.blockWidth !== blockWidth ||\n\t\t\textraData.current.gridProperties !== gridProperties\n\t\t) {\n\t\t\textraData.current = {\n\t\t\t\tparentWidth,\n\t\t\t\trenderFooterAppender,\n\t\t\t\tonDeleteBlock,\n\t\t\t\tcontentStyle,\n\t\t\t\trenderAppender,\n\t\t\t\tblockWidth,\n\t\t\t\tgridProperties,\n\t\t\t};\n\t\t}\n\t\treturn extraData.current;\n\t};\n\n\tconst onLayout = ( { nativeEvent } ) => {\n\t\tconst { layout } = nativeEvent;\n\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( isRootList && blockWidth !== layoutWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t} else if ( ! isRootList && ! blockWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t}\n\t};\n\n\tconst renderItem = ( { item: clientId, index } ) => {\n\t\t// Extracting the grid item properties here to avoid\n\t\t// re-renders in the blockListItem component.\n\t\tconst isGridItem = !! gridProperties;\n\t\tconst gridItemProps = gridProperties && {\n\t\t\tnumOfColumns: gridProperties.numColumns,\n\t\t\ttileCount: blockClientIds.length,\n\t\t\ttileIndex: blockClientIds.indexOf( clientId ),\n\t\t};\n\t\treturn (\n\t\t\t<BlockListItem\n\t\t\t\tindex={ index }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\tmarginVertical={ marginVertical }\n\t\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tshouldShowInnerBlockAppender={ shouldShowInnerBlockAppender }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tisGridItem={ isGridItem }\n\t\t\t\t{ ...gridItemProps }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst { blockToolbar, headerToolbar, floatingToolbar } = styles;\n\n\tconst containerStyle = {\n\t\tflex: isRootList ? 1 : 0,\n\t\t// We set negative margin in the parent to remove the edge spacing between parent block and child block in ineer blocks.\n\t\tmarginVertical: isRootList ? 0 : -marginVertical,\n\t\tmarginHorizontal: isRootList ? 0 : -marginHorizontal,\n\t};\n\n\tconst isContentStretch = contentResizeMode === 'stretch';\n\tconst isMultiBlocks = blockClientIds.length > 1;\n\tconst { isWider } = alignmentHelpers;\n\tconst extraScrollHeight =\n\t\theaderToolbar.height +\n\t\tblockToolbar.height +\n\t\t( isFloatingToolbarVisible ? floatingToolbar.height : 0 );\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ containerStyle }\n\t\t\tonAccessibilityEscape={ clearSelectedBlock }\n\t\t\tonLayout={ onLayout }\n\t\t\ttestID=\"block-list-wrapper\"\n\t\t>\n\t\t\t{ isRootList ? (\n\t\t\t\t<BlockListProvider\n\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t...DEFAULT_BLOCK_LIST_CONTEXT,\n\t\t\t\t\t\tscrollRef: scrollViewRef.current,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<BlockDraggableWrapper isRTL={ isRTL }>\n\t\t\t\t\t\t{ ( { onScroll } ) => (\n\t\t\t\t\t\t\t<KeyboardAwareFlatList\n\t\t\t\t\t\t\t\t{ ...( Platform.OS === 'android'\n\t\t\t\t\t\t\t\t\t? { removeClippedSubviews: false }\n\t\t\t\t\t\t\t\t\t: {} ) } // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541\n\t\t\t\t\t\t\t\taccessibilityLabel=\"block-list\"\n\t\t\t\t\t\t\t\tinnerRef={ ( ref ) => {\n\t\t\t\t\t\t\t\t\tscrollViewRef.current = ref;\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\textraScrollHeight={ extraScrollHeight }\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\t\t\t\tscrollViewStyle={ { flex: 1 } }\n\t\t\t\t\t\t\t\textraData={ getExtraData() }\n\t\t\t\t\t\t\t\tscrollEnabled={ isRootList }\n\t\t\t\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\t\t\t\thorizontal &&\n\t\t\t\t\t\t\t\t\t\tstyles.horizontalContentContainer,\n\t\t\t\t\t\t\t\t\tisWider( blockWidth, 'medium' ) &&\n\t\t\t\t\t\t\t\t\t\t( isContentStretch && isMultiBlocks\n\t\t\t\t\t\t\t\t\t\t\t? styles.horizontalContentContainerStretch\n\t\t\t\t\t\t\t\t\t\t\t: styles.horizontalContentContainerCenter ),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\tdata={ blockClientIds }\n\t\t\t\t\t\t\t\tkeyExtractor={ identity }\n\t\t\t\t\t\t\t\trenderItem={ renderItem }\n\t\t\t\t\t\t\t\tCellRendererComponent={ BlockListItemCell }\n\t\t\t\t\t\t\t\tshouldPreventAutomaticScroll={\n\t\t\t\t\t\t\t\t\tshouldFlatListPreventAutomaticScroll\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tListHeaderComponent={ header }\n\t\t\t\t\t\t\t\tListEmptyComponent={\n\t\t\t\t\t\t\t\t\t! isReadOnly && (\n\t\t\t\t\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tListFooterComponent={\n\t\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\t\taddBlockToEndOfPost={\n\t\t\t\t\t\t\t\t\t\t\taddBlockToEndOfPost\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\twithFooter={ withFooter }\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\tonScroll={ onScroll }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockDraggableWrapper>\n\t\t\t\t</BlockListProvider>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{ blockClientIds.length > 0 ? (\n\t\t\t\t\t\t<View style={ [ { flex: 0 }, styles.overflowVisible ] }>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t...getStyles(\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally,\n\t\t\t\t\t\t\t\t\t\thorizontalAlignment\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\thorizontal &&\n\t\t\t\t\t\t\t\t\t\tstyles.horizontalContentContainer,\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ blockClientIds.map(\n\t\t\t\t\t\t\t\t\t( currentClientId, index ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<View key={ currentClientId }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ renderItem( {\n\t\t\t\t\t\t\t\t\t\t\t\t\titem: currentClientId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\taddBlockToEndOfPost={ addBlockToEndOfPost }\n\t\t\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twithFooter={ withFooter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\trenderFooterAppender={ renderFooterAppender }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ shouldShowInnerBlockAppender() && (\n\t\t\t\t<View\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tmarginHorizontal:\n\t\t\t\t\t\t\tmarginHorizontal - styles.innerAppender.marginLeft,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<BlockListAppender\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\tshowSeparator\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\nfunction Footer( {\n\taddBlockToEndOfPost,\n\tisReadOnly,\n\trenderFooterAppender,\n\twithFooter,\n} ) {\n\tif ( ! isReadOnly && withFooter ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\t\t\t\t\taddBlockToEndOfPost( paragraphBlock );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t</>\n\t\t);\n\t} else if ( renderFooterAppender ) {\n\t\treturn <View>{ renderFooterAppender() }</View>;\n\t}\n\n\treturn null;\n}\n\nfunction EmptyList( {\n\torientation,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n} ) {\n\tconst { shouldShowInsertionPoint } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockInsertionPointVisible,\n\t\t} = select( blockEditorStore );\n\n\t\tconst isStackedHorizontally = orientation === 'horizontal';\n\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\n\t\treturn {\n\t\t\tshouldShowInsertionPoint:\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t\t! blockClientIds[ insertionPoint.index ] ),\n\t\t};\n\t} );\n\tconst align = renderAppender ? WIDE_ALIGNMENTS.alignments.full : undefined;\n\tconst [ wrapperStyles ] = useEditorWrapperStyles( { align } );\n\n\tif ( renderFooterAppender || renderAppender === false ) {\n\t\treturn null;\n\t}\n\n\tconst containerStyles = [ styles.defaultAppender, wrapperStyles ];\n\n\treturn (\n\t\t<View style={ containerStyles }>\n\t\t\t<BlockListAppender\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\tshowSeparator={ shouldShowInsertionPoint }\n\t\t\t/>\n\t\t</View>\n\t);\n}\n"]}
@@ -30,12 +30,14 @@ var _style = _interopRequireDefault(require("./style.scss"));
30
30
  */
31
31
  const BlockInsertionPoint = _ref => {
32
32
  let {
33
- getStylesFromColorScheme
33
+ getStylesFromColorScheme,
34
+ testID
34
35
  } = _ref;
35
36
  const lineStyle = getStylesFromColorScheme(_style.default.lineStyleAddHere, _style.default.lineStyleAddHereDark);
36
37
  const labelStyle = getStylesFromColorScheme(_style.default.labelStyleAddHere, _style.default.labelStyleAddHereDark);
37
38
  return (0, _element.createElement)(_reactNative.View, {
38
- style: _style.default.containerStyleAddHere
39
+ style: _style.default.containerStyleAddHere,
40
+ testID: testID
39
41
  }, (0, _element.createElement)(_reactNative.View, {
40
42
  style: lineStyle
41
43
  }), (0, _element.createElement)(_reactNative.Text, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/insertion-point.native.js"],"names":["BlockInsertionPoint","getStylesFromColorScheme","lineStyle","styles","lineStyleAddHere","lineStyleAddHereDark","labelStyle","labelStyleAddHere","labelStyleAddHereDark","containerStyleAddHere"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGA,MAAMA,mBAAmB,GAAG,QAAoC;AAAA,MAAlC;AAAEC,IAAAA;AAAF,GAAkC;AAC/D,QAAMC,SAAS,GAAGD,wBAAwB,CACzCE,eAAOC,gBADkC,EAEzCD,eAAOE,oBAFkC,CAA1C;AAIA,QAAMC,UAAU,GAAGL,wBAAwB,CAC1CE,eAAOI,iBADmC,EAE1CJ,eAAOK,qBAFmC,CAA3C;AAKA,SACC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGL,eAAOM;AAArB,KACC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGP;AAAd,IADD,EAEC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGI;AAAd,KAA6B,cAAI,gBAAJ,CAA7B,CAFD,EAGC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGJ;AAAd,IAHD,CADD;AAOA,CAjBD;;eAmBe,uCAA0BF,mBAA1B,C","sourcesContent":["/**\n * External dependencies\n */\nimport { Text, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { withPreferredColorScheme } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst BlockInsertionPoint = ( { getStylesFromColorScheme } ) => {\n\tconst lineStyle = getStylesFromColorScheme(\n\t\tstyles.lineStyleAddHere,\n\t\tstyles.lineStyleAddHereDark\n\t);\n\tconst labelStyle = getStylesFromColorScheme(\n\t\tstyles.labelStyleAddHere,\n\t\tstyles.labelStyleAddHereDark\n\t);\n\n\treturn (\n\t\t<View style={ styles.containerStyleAddHere }>\n\t\t\t<View style={ lineStyle }></View>\n\t\t\t<Text style={ labelStyle }>{ __( 'ADD BLOCK HERE' ) }</Text>\n\t\t\t<View style={ lineStyle }></View>\n\t\t</View>\n\t);\n};\n\nexport default withPreferredColorScheme( BlockInsertionPoint );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/insertion-point.native.js"],"names":["BlockInsertionPoint","getStylesFromColorScheme","testID","lineStyle","styles","lineStyleAddHere","lineStyleAddHereDark","labelStyle","labelStyleAddHere","labelStyleAddHereDark","containerStyleAddHere"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGA,MAAMA,mBAAmB,GAAG,QAA4C;AAAA,MAA1C;AAAEC,IAAAA,wBAAF;AAA4BC,IAAAA;AAA5B,GAA0C;AACvE,QAAMC,SAAS,GAAGF,wBAAwB,CACzCG,eAAOC,gBADkC,EAEzCD,eAAOE,oBAFkC,CAA1C;AAIA,QAAMC,UAAU,GAAGN,wBAAwB,CAC1CG,eAAOI,iBADmC,EAE1CJ,eAAOK,qBAFmC,CAA3C;AAKA,SACC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGL,eAAOM,qBAArB;AAA6C,IAAA,MAAM,EAAGR;AAAtD,KACC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGC;AAAd,IADD,EAEC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGI;AAAd,KAA6B,cAAI,gBAAJ,CAA7B,CAFD,EAGC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGJ;AAAd,IAHD,CADD;AAOA,CAjBD;;eAmBe,uCAA0BH,mBAA1B,C","sourcesContent":["/**\n * External dependencies\n */\nimport { Text, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { withPreferredColorScheme } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst BlockInsertionPoint = ( { getStylesFromColorScheme, testID } ) => {\n\tconst lineStyle = getStylesFromColorScheme(\n\t\tstyles.lineStyleAddHere,\n\t\tstyles.lineStyleAddHereDark\n\t);\n\tconst labelStyle = getStylesFromColorScheme(\n\t\tstyles.labelStyleAddHere,\n\t\tstyles.labelStyleAddHereDark\n\t);\n\n\treturn (\n\t\t<View style={ styles.containerStyleAddHere } testID={ testID }>\n\t\t\t<View style={ lineStyle }></View>\n\t\t\t<Text style={ labelStyle }>{ __( 'ADD BLOCK HERE' ) }</Text>\n\t\t\t<View style={ lineStyle }></View>\n\t\t</View>\n\t);\n};\n\nexport default withPreferredColorScheme( BlockInsertionPoint );\n"]}
@@ -23,7 +23,7 @@ var _warning = _interopRequireDefault(require("@wordpress/warning"));
23
23
 
24
24
  var _useMovingAnimation = _interopRequireDefault(require("../../use-moving-animation"));
25
25
 
26
- var _block = require("../block");
26
+ var _blockListBlockContext = require("../block-list-block-context");
27
27
 
28
28
  var _useFocusFirstElement = require("./use-focus-first-element");
29
29
 
@@ -97,7 +97,7 @@ function useBlockProps() {
97
97
  className,
98
98
  wrapperProps = {},
99
99
  isAligned
100
- } = (0, _element.useContext)(_block.BlockListBlockContext);
100
+ } = (0, _element.useContext)(_blockListBlockContext.BlockListBlockContext);
101
101
  const {
102
102
  index,
103
103
  mode,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"names":["BLOCK_ANIMATION_THRESHOLD","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","BlockListBlockContext","index","mode","name","blockApiVersion","blockTitle","isPartOfSelection","adjustScrolling","enableAnimation","select","getBlockAttributes","getBlockIndex","getBlockMode","getBlockName","isTyping","getGlobalBlockCount","isBlockSelected","isBlockMultiSelected","isAncestorMultiSelected","isFirstMultiSelectedBlock","blockEditorStore","getActiveBlockVariation","blocksStore","isSelected","isPartOfMultiSelection","blockName","blockType","attributes","match","apiVersion","title","hasOverlay","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","blockEditContext","tabIndex","id","role","style","save","getBlockProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__unstableGetBlockProps as getBlockProps,\n\tgetBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { BlockListBlockContext } from '../block';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport { useBlockEditContext } from '../../block-edit/context';\nimport { useBlockClassNames } from './use-block-class-names';\nimport { useBlockDefaultClassName } from './use-block-default-class-name';\nimport { useBlockCustomClassName } from './use-block-custom-class-name';\nimport { useBlockMovingModeClassNames } from './use-block-moving-mode-class-names';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { store as blockEditorStore } from '../../../store';\nimport useBlockOverlayActive from '../../block-content-overlay';\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\nconst BLOCK_ANIMATION_THRESHOLD = 200;\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t} = useContext( BlockListBlockContext );\n\tconst {\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisPartOfSelection,\n\t\tadjustScrolling,\n\t\tenableAnimation,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisTyping,\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisAncestorMultiSelected,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst isPartOfMultiSelection =\n\t\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\t\tisAncestorMultiSelected( clientId );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\n\t\t\treturn {\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tname: blockName,\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisPartOfSelection: isSelected || isPartOfMultiSelection,\n\t\t\t\tadjustScrolling:\n\t\t\t\t\tisSelected || isFirstMultiSelectedBlock( clientId ),\n\t\t\t\tenableAnimation:\n\t\t\t\t\t! isTyping() &&\n\t\t\t\t\tgetGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasOverlay = useBlockOverlayActive( clientId );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( clientId ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( clientId ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered(),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( {\n\t\t\tisSelected: isPartOfSelection,\n\t\t\tadjustScrolling,\n\t\t\tenableAnimation,\n\t\t\ttriggerAnimationOnChange: index,\n\t\t} ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\treturn {\n\t\ttabIndex: 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tclassName: classnames(\n\t\t\t// The wp-block className is important for editor styles.\n\t\t\tclassnames( 'block-editor-block-list__block', {\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t} ),\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tuseBlockClassNames( clientId ),\n\t\t\tuseBlockDefaultClassName( clientId ),\n\t\t\tuseBlockCustomClassName( clientId ),\n\t\t\tuseBlockMovingModeClassNames( clientId )\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"names":["BLOCK_ANIMATION_THRESHOLD","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","BlockListBlockContext","index","mode","name","blockApiVersion","blockTitle","isPartOfSelection","adjustScrolling","enableAnimation","select","getBlockAttributes","getBlockIndex","getBlockMode","getBlockName","isTyping","getGlobalBlockCount","isBlockSelected","isBlockMultiSelected","isAncestorMultiSelected","isFirstMultiSelectedBlock","blockEditorStore","getActiveBlockVariation","blocksStore","isSelected","isPartOfMultiSelection","blockName","blockType","attributes","match","apiVersion","title","hasOverlay","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","blockEditContext","tabIndex","id","role","style","save","getBlockProps"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AArCA;AACA;AACA;;AAGA;AACA;AACA;;AAYA;AACA;AACA;;AAkBA;AACA;AACA;AACA;AACA,MAAMA,yBAAyB,GAAG,GAAlC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,aAAT,GAAgE;AAAA,MAAxCC,KAAwC,uEAAhC,EAAgC;AAAA,MAA5B;AAAEC,IAAAA;AAAF,GAA4B,uEAAL,EAAK;AACtE,QAAM;AACLC,IAAAA,QADK;AAELC,IAAAA,SAFK;AAGLC,IAAAA,YAAY,GAAG,EAHV;AAILC,IAAAA;AAJK,MAKF,yBAAYC,4CAAZ,CALJ;AAMA,QAAM;AACLC,IAAAA,KADK;AAELC,IAAAA,IAFK;AAGLC,IAAAA,IAHK;AAILC,IAAAA,eAJK;AAKLC,IAAAA,UALK;AAMLC,IAAAA,iBANK;AAOLC,IAAAA,eAPK;AAQLC,IAAAA;AARK,MASF,qBACDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,kBADK;AAELC,MAAAA,aAFK;AAGLC,MAAAA,YAHK;AAILC,MAAAA,YAJK;AAKLC,MAAAA,QALK;AAMLC,MAAAA,mBANK;AAOLC,MAAAA,eAPK;AAQLC,MAAAA,oBARK;AASLC,MAAAA,uBATK;AAULC,MAAAA;AAVK,QAWFV,MAAM,CAAEW,YAAF,CAXV;AAYA,UAAM;AAAEC,MAAAA;AAAF,QAA8BZ,MAAM,CAAEa,aAAF,CAA1C;AACA,UAAMC,UAAU,GAAGP,eAAe,CAAEpB,QAAF,CAAlC;AACA,UAAM4B,sBAAsB,GAC3BP,oBAAoB,CAAErB,QAAF,CAApB,IACAsB,uBAAuB,CAAEtB,QAAF,CAFxB;AAGA,UAAM6B,SAAS,GAAGZ,YAAY,CAAEjB,QAAF,CAA9B;AACA,UAAM8B,SAAS,GAAG,0BAAcD,SAAd,CAAlB;AACA,UAAME,UAAU,GAAGjB,kBAAkB,CAAEd,QAAF,CAArC;AACA,UAAMgC,KAAK,GAAGP,uBAAuB,CAAEI,SAAF,EAAaE,UAAb,CAArC;AAEA,WAAO;AACN1B,MAAAA,KAAK,EAAEU,aAAa,CAAEf,QAAF,CADd;AAENM,MAAAA,IAAI,EAAEU,YAAY,CAAEhB,QAAF,CAFZ;AAGNO,MAAAA,IAAI,EAAEsB,SAHA;AAINrB,MAAAA,eAAe,EAAE,CAAAsB,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEG,UAAX,KAAyB,CAJpC;AAKNxB,MAAAA,UAAU,EAAE,CAAAuB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEE,KAAP,MAAgBJ,SAAhB,aAAgBA,SAAhB,uBAAgBA,SAAS,CAAEI,KAA3B,CALN;AAMNxB,MAAAA,iBAAiB,EAAEiB,UAAU,IAAIC,sBAN3B;AAONjB,MAAAA,eAAe,EACdgB,UAAU,IAAIJ,yBAAyB,CAAEvB,QAAF,CARlC;AASNY,MAAAA,eAAe,EACd,CAAEM,QAAQ,EAAV,IACAC,mBAAmB,MAAMvB;AAXpB,KAAP;AAaA,GArCE,EAsCH,CAAEI,QAAF,CAtCG,CATJ;AAkDA,QAAMmC,UAAU,GAAG,kCAAuBnC,QAAvB,CAAnB,CAzDsE,CA2DtE;;AACA,QAAMoC,UAAU,GAAG,mBAAS,cAAI,WAAJ,CAAT,EAA4B3B,UAA5B,CAAnB;AACA,QAAM4B,UAAU,GAAG/B,IAAI,KAAK,MAAT,IAAmB,CAAEP,gBAArB,GAAwC,SAAxC,GAAoD,EAAvE;AACA,QAAMuC,UAAU,GAAG,2BAAc,CAChCxC,KAAK,CAACyC,GAD0B,EAEhC,gDAAsBvC,QAAtB,CAFgC,EAGhC,uCAAqBA,QAArB,CAHgC,EAIhC,sCAAiBA,QAAjB,CAJgC,EAKhC,qDAAkBA,QAAlB,CALgC,EAMhC,oCAAgBA,QAAhB,CANgC,EAOhC,iCAPgC,EAQhC,uDARgC,EAShC,iCAAoB;AACnB2B,IAAAA,UAAU,EAAEjB,iBADO;AAEnBC,IAAAA,eAFmB;AAGnBC,IAAAA,eAHmB;AAInB4B,IAAAA,wBAAwB,EAAEnC;AAJP,GAApB,CATgC,EAehC,0BAAa;AAAEoC,IAAAA,UAAU,EAAE,CAAEN;AAAhB,GAAb,CAfgC,CAAd,CAAnB;AAkBA,QAAMO,gBAAgB,GAAG,mCAAzB,CAhFsE,CAiFtE;;AACA,MAAKlC,eAAe,GAAG,CAAlB,IAAuBR,QAAQ,KAAK0C,gBAAgB,CAAC1C,QAA1D,EAAqE;AACpE,mHACE,eAAeO,IAAM,uFADvB;AAGA;;AAED,SAAO;AACNoC,IAAAA,QAAQ,EAAE,CADJ;AAEN,OAAGzC,YAFG;AAGN,OAAGJ,KAHG;AAINyC,IAAAA,GAAG,EAAED,UAJC;AAKNM,IAAAA,EAAE,EAAG,SAAS5C,QAAU,GAAGqC,UAAY,EALjC;AAMNQ,IAAAA,IAAI,EAAE,UANA;AAON,kBAAcT,UAPR;AAQN,kBAAcpC,QARR;AASN,iBAAaO,IATP;AAUN,kBAAcE,UAVR;AAWNR,IAAAA,SAAS,EAAE,0BACV;AACA,6BAAY,gCAAZ,EAA8C;AAC7C,kBAAY,CAAEE,SAD+B;AAE7C,2BAAqBgC;AAFwB,KAA9C,CAFU,EAMVlC,SANU,EAOVH,KAAK,CAACG,SAPI,EAQVC,YAAY,CAACD,SARH,EASV,4CAAoBD,QAApB,CATU,EAUV,wDAA0BA,QAA1B,CAVU,EAWV,sDAAyBA,QAAzB,CAXU,EAYV,gEAA8BA,QAA9B,CAZU,CAXL;AAyBN8C,IAAAA,KAAK,EAAE,EAAE,GAAG5C,YAAY,CAAC4C,KAAlB;AAAyB,SAAGhD,KAAK,CAACgD;AAAlC;AAzBD,GAAP;AA2BA;AAED;AACA;AACA;AACA;AACA;;;AACAjD,aAAa,CAACkD,IAAd,GAAqBC,+BAArB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__unstableGetBlockProps as getBlockProps,\n\tgetBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { BlockListBlockContext } from '../block-list-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport { useBlockEditContext } from '../../block-edit/context';\nimport { useBlockClassNames } from './use-block-class-names';\nimport { useBlockDefaultClassName } from './use-block-default-class-name';\nimport { useBlockCustomClassName } from './use-block-custom-class-name';\nimport { useBlockMovingModeClassNames } from './use-block-moving-mode-class-names';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { store as blockEditorStore } from '../../../store';\nimport useBlockOverlayActive from '../../block-content-overlay';\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\nconst BLOCK_ANIMATION_THRESHOLD = 200;\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t} = useContext( BlockListBlockContext );\n\tconst {\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisPartOfSelection,\n\t\tadjustScrolling,\n\t\tenableAnimation,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisTyping,\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisAncestorMultiSelected,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst isPartOfMultiSelection =\n\t\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\t\tisAncestorMultiSelected( clientId );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\n\t\t\treturn {\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tname: blockName,\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisPartOfSelection: isSelected || isPartOfMultiSelection,\n\t\t\t\tadjustScrolling:\n\t\t\t\t\tisSelected || isFirstMultiSelectedBlock( clientId ),\n\t\t\t\tenableAnimation:\n\t\t\t\t\t! isTyping() &&\n\t\t\t\t\tgetGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasOverlay = useBlockOverlayActive( clientId );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( clientId ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( clientId ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered(),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( {\n\t\t\tisSelected: isPartOfSelection,\n\t\t\tadjustScrolling,\n\t\t\tenableAnimation,\n\t\t\ttriggerAnimationOnChange: index,\n\t\t} ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\treturn {\n\t\ttabIndex: 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tclassName: classnames(\n\t\t\t// The wp-block className is important for editor styles.\n\t\t\tclassnames( 'block-editor-block-list__block', {\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t} ),\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tuseBlockClassNames( clientId ),\n\t\t\tuseBlockDefaultClassName( clientId ),\n\t\t\tuseBlockCustomClassName( clientId ),\n\t\t\tuseBlockMovingModeClassNames( clientId )\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"]}
@@ -17,6 +17,8 @@ var _store = require("../../store");
17
17
 
18
18
  var _insertionPoint = require("../block-tools/insertion-point");
19
19
 
20
+ var _lockUnlock = require("../../lock-unlock");
21
+
20
22
  /**
21
23
  * WordPress dependencies
22
24
  */
@@ -35,8 +37,9 @@ function useInBetweenInserter() {
35
37
  isMultiSelecting,
36
38
  getSelectedBlockClientIds,
37
39
  getTemplateLock,
38
- __unstableIsWithinBlockOverlay
39
- } = (0, _data.useSelect)(_store.store);
40
+ __unstableIsWithinBlockOverlay,
41
+ getBlockEditingMode
42
+ } = (0, _lockUnlock.unlock)((0, _data.useSelect)(_store.store));
40
43
  const {
41
44
  showInsertionPoint,
42
45
  hideInsertionPoint
@@ -72,10 +75,9 @@ function useInBetweenInserter() {
72
75
  if (!event.target.classList.contains('is-root-container')) {
73
76
  const blockElement = !!event.target.getAttribute('data-block') ? event.target : event.target.closest('[data-block]');
74
77
  rootClientId = blockElement.getAttribute('data-block');
75
- } // Don't set the insertion point if the template is locked.
76
-
78
+ }
77
79
 
78
- if (getTemplateLock(rootClientId)) {
80
+ if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled') {
79
81
  return;
80
82
  }
81
83
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"names":["useInBetweenInserter","openRef","InsertionPointOpenRef","isInBetweenInserterDisabled","select","blockEditorStore","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockRootClientId","getBlockIndex","isBlockInsertionPointVisible","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tisBlockInsertionPointVisible,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t} = useSelect( blockEditorStore );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\tif ( openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\t// Don't set the insertion point if the template is locked.\n\t\t\t\tif ( getTemplateLock( rootClientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t\tisBlockInsertionPointVisible,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"names":["useInBetweenInserter","openRef","InsertionPointOpenRef","isInBetweenInserterDisabled","select","blockEditorStore","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockRootClientId","getBlockIndex","isBlockInsertionPointVisible","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAbA;AACA;AACA;;AAMA;AACA;AACA;AAKO,SAASA,oBAAT,GAAgC;AACtC,QAAMC,OAAO,GAAG,yBAAYC,qCAAZ,CAAhB;AACA,QAAMC,2BAA2B,GAAG,qBACjCC,MAAF,IACCA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,WAA3B,GAAyCC,iBAAzC,IACAH,MAAM,CAAEC,YAAF,CAAN,CAA2BG,uBAA3B,OAAyD,UAHvB,EAInC,EAJmC,CAApC;AAMA,QAAM;AACLC,IAAAA,oBADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,4BAJK;AAKLC,IAAAA,gBALK;AAMLC,IAAAA,yBANK;AAOLC,IAAAA,eAPK;AAQLC,IAAAA,8BARK;AASLC,IAAAA;AATK,MAUF,wBAAQ,qBAAWZ,YAAX,CAAR,CAVJ;AAWA,QAAM;AAAEa,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MACL,uBAAad,YAAb,CADD;AAGA,SAAO,2BACJe,IAAF,IAAY;AACX,QAAKjB,2BAAL,EAAmC;AAClC;AACA;;AAED,aAASkB,WAAT,CAAsBC,KAAtB,EAA8B;AAAA;;AAC7B,UAAKrB,OAAO,CAACsB,OAAb,EAAuB;AACtB;AACA,OAH4B,CAK7B;;;AACA,UAAKD,KAAK,CAACE,MAAN,CAAaC,QAAb,KAA0BH,KAAK,CAACE,MAAN,CAAaE,SAA5C,EAAwD;AACvD;AACA;;AAED,UAAKb,gBAAgB,EAArB,EAA0B;AACzB;AACA;;AAED,UACC,CAAES,KAAK,CAACE,MAAN,CAAaG,SAAb,CAAuBC,QAAvB,CACD,iCADC,CADH,EAIE;AACDT,QAAAA,kBAAkB;AAClB;AACA;;AAED,UAAIU,YAAJ;;AACA,UACC,CAAEP,KAAK,CAACE,MAAN,CAAaG,SAAb,CAAuBC,QAAvB,CAAiC,mBAAjC,CADH,EAEE;AACD,cAAME,YAAY,GAAG,CAAC,CAAER,KAAK,CAACE,MAAN,CAAaO,YAAb,CACvB,YADuB,CAAH,GAGlBT,KAAK,CAACE,MAHY,GAIlBF,KAAK,CAACE,MAAN,CAAaQ,OAAb,CAAsB,cAAtB,CAJH;AAKAH,QAAAA,YAAY,GAAGC,YAAY,CAACC,YAAb,CAA2B,YAA3B,CAAf;AACA;;AAED,UACChB,eAAe,CAAEc,YAAF,CAAf,IACAZ,mBAAmB,CAAEY,YAAF,CAAnB,KAAwC,UAFzC,EAGE;AACD;AACA;;AAED,YAAMI,WAAW,GAChB,0BAAAxB,oBAAoB,CAAEoB,YAAF,CAApB,gFAAsCI,WAAtC,KACA,UAFD;AAGA,YAAMC,SAAS,GAAGZ,KAAK,CAACa,OAAxB;AACA,YAAMC,UAAU,GAAGd,KAAK,CAACe,OAAzB;AAEA,YAAMC,QAAQ,GAAGC,KAAK,CAACC,IAAN,CAAYlB,KAAK,CAACE,MAAN,CAAac,QAAzB,CAAjB;AACA,UAAIG,OAAO,GAAGH,QAAQ,CAACI,IAAT,CAAiBC,OAAF,IAAe;AAC3C,cAAMC,WAAW,GAAGD,OAAO,CAACE,qBAAR,EAApB;AACA,eACGF,OAAO,CAAChB,SAAR,CAAkBC,QAAlB,CAA4B,UAA5B,KACDK,WAAW,KAAK,UADf,IAEDW,WAAW,CAACE,GAAZ,GAAkBZ,SAFnB,IAGES,OAAO,CAAChB,SAAR,CAAkBC,QAAlB,CAA4B,UAA5B,KACDK,WAAW,KAAK,YADf,KAEC,qBACCW,WAAW,CAACG,KAAZ,GAAoBX,UADrB,GAECQ,WAAW,CAACI,IAAZ,GAAmBZ,UAJrB,CAJH;AAUA,OAZa,CAAd;;AAcA,UAAK,CAAEK,OAAP,EAAiB;AAChBtB,QAAAA,kBAAkB;AAClB;AACA,OAlE4B,CAoE7B;AACA;;;AACA,UAAK,CAAEsB,OAAO,CAACQ,EAAf,EAAoB;AACnBR,QAAAA,OAAO,GAAGA,OAAO,CAACS,iBAAlB;;AAEA,YAAK,CAAET,OAAP,EAAiB;AAChBtB,UAAAA,kBAAkB;AAClB;AACA;AACD,OA7E4B,CA+E7B;AACA;;;AACA,YAAMgC,QAAQ,GAAGV,OAAO,CAACQ,EAAR,CAAWG,KAAX,CAAkB,SAASC,MAA3B,CAAjB;;AACA,UACC,CAAEF,QAAF,IACAnC,8BAA8B,CAAEmC,QAAF,CAF/B,EAGE;AACD;AACA,OAvF4B,CAyF7B;AACA;;;AACA,UAAKrC,yBAAyB,GAAGwC,QAA5B,CAAsCH,QAAtC,CAAL,EAAwD;AACvD;AACA;;AACD,YAAMI,WAAW,GAAGd,OAAO,CAACI,qBAAR,EAApB;;AAEA,UACGZ,WAAW,KAAK,YAAhB,KACCX,KAAK,CAACa,OAAN,GAAgBoB,WAAW,CAACC,MAA5B,IACDlC,KAAK,CAACa,OAAN,GAAgBoB,WAAW,CAACT,GAF5B,CAAF,IAGEb,WAAW,KAAK,UAAhB,KACCX,KAAK,CAACe,OAAN,GAAgBkB,WAAW,CAACR,KAA5B,IACDzB,KAAK,CAACe,OAAN,GAAgBkB,WAAW,CAACP,IAF5B,CAJH,EAOE;AACD7B,QAAAA,kBAAkB;AAClB;AACA;;AAED,YAAMsC,KAAK,GAAG9C,aAAa,CAAEwC,QAAF,CAA3B,CA5G6B,CA8G7B;AACA;;AACA,UAAKM,KAAK,KAAK,CAAf,EAAmB;AAClBtC,QAAAA,kBAAkB;AAClB;AACA;;AAEDD,MAAAA,kBAAkB,CAAEW,YAAF,EAAgB4B,KAAhB,EAAuB;AACxCC,QAAAA,sBAAsB,EAAE;AADgB,OAAvB,CAAlB;AAGA;;AAEDtC,IAAAA,IAAI,CAACuC,gBAAL,CAAuB,WAAvB,EAAoCtC,WAApC;AAEA,WAAO,MAAM;AACZD,MAAAA,IAAI,CAACwC,mBAAL,CAA0B,WAA1B,EAAuCvC,WAAvC;AACA,KAFD;AAGA,GArIK,EAsIN,CACCpB,OADD,EAECQ,oBAFD,EAGCC,oBAHD,EAICC,aAJD,EAKCC,4BALD,EAMCC,gBAND,EAOCK,kBAPD,EAQCC,kBARD,EASCL,yBATD,EAUCX,2BAVD,CAtIM,CAAP;AAmJA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\nimport { unlock } from '../../lock-unlock';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tisBlockInsertionPointVisible,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t} = unlock( useSelect( blockEditorStore ) );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\tif ( openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled'\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t\tisBlockInsertionPointVisible,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"]}
@@ -96,6 +96,18 @@ function BlockListAppender(_ref2) {
96
96
  tagName: TagName = 'div'
97
97
  } = _ref2;
98
98
  const appender = useAppender(rootClientId, renderAppender);
99
+ const isDragOver = (0, _data.useSelect)(select => {
100
+ const {
101
+ getBlockInsertionPoint,
102
+ isBlockInsertionPointVisible,
103
+ getBlockCount
104
+ } = select(_store.store);
105
+ const insertionPoint = getBlockInsertionPoint(); // Ideally we should also check for `isDragging` but currently it
106
+ // requires a lot more setup. We can revisit this once we refactor
107
+ // the DnD utility hooks.
108
+
109
+ return isBlockInsertionPointVisible() && rootClientId === (insertionPoint === null || insertionPoint === void 0 ? void 0 : insertionPoint.rootClientId) && getBlockCount(rootClientId) === 0;
110
+ }, [rootClientId]);
99
111
 
100
112
  if (!appender) {
101
113
  return null;
@@ -111,7 +123,9 @@ function BlockListAppender(_ref2) {
111
123
  // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
112
124
  , {
113
125
  tabIndex: -1,
114
- className: (0, _classnames.default)('block-list-appender wp-block', className) // Needed in case the whole editor is content editable (for multi
126
+ className: (0, _classnames.default)('block-list-appender wp-block', className, {
127
+ 'is-drag-over': isDragOver
128
+ }) // Needed in case the whole editor is content editable (for multi
115
129
  // selection). It fixes an edge case where ArrowDown and ArrowRight
116
130
  // should collapse the selection to the end of that selection and
117
131
  // not into the appender.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["DefaultAppender","rootClientId","canInsertDefaultBlock","select","blockEditorStore","canInsertBlockType","useAppender","CustomAppender","hideInserter","isParentSelected","getTemplateLock","getSelectedBlockClientId","__unstableGetEditorMode","selectedBlockClientId","BlockListAppender","renderAppender","className","tagName","TagName","appender"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,eAAT,OAA6C;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AAC5C,QAAMC,qBAAqB,GAAG,qBAAaC,MAAF,IACxCA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,kBAA3B,CACC,kCADD,EAECJ,YAFD,CAD6B,CAA9B;;AAOA,MAAKC,qBAAL,EAA6B;AAC5B;AACA;AACA,WAAO,4BAAC,6BAAD;AAAsB,MAAA,YAAY,EAAGD;AAArC,MAAP;AACA,GAZ2C,CAc5C;;;AACA,SACC,4BAAC,4BAAD;AACC,IAAA,YAAY,EAAGA,YADhB;AAEC,IAAA,SAAS,EAAC;AAFX,IADD;AAMA;;AAED,SAASK,WAAT,CAAsBL,YAAtB,EAAoCM,cAApC,EAAqD;AACpD,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAqC,qBACxCN,MAAF,IAAc;AACb,UAAM;AACLO,MAAAA,eADK;AAELC,MAAAA,wBAFK;AAGLC,MAAAA;AAHK,QAIFT,MAAM,CAAEC,YAAF,CAJV;AAMA,UAAMS,qBAAqB,GAAGF,wBAAwB,EAAtD;AAEA,WAAO;AACNH,MAAAA,YAAY,EACX,CAAC,CAAEE,eAAe,CAAET,YAAF,CAAlB,IACAW,uBAAuB,OAAO,UAHzB;AAINH,MAAAA,gBAAgB,EACfR,YAAY,KAAKY,qBAAjB,IACE,CAAEZ,YAAF,IAAkB,CAAEY;AANjB,KAAP;AAQA,GAlByC,EAmB1C,CAAEZ,YAAF,CAnB0C,CAA3C;;AAsBA,MAAKO,YAAY,IAAID,cAAc,KAAK,KAAxC,EAAgD;AAC/C,WAAO,IAAP;AACA;;AAED,MAAKA,cAAL,EAAsB;AACrB;AACA,WAAO,4BAAC,cAAD,OAAP;AACA;;AAED,MAAK,CAAEE,gBAAP,EAA0B;AACzB,WAAO,IAAP;AACA;;AAED,SAAO,4BAAC,eAAD;AAAiB,IAAA,YAAY,EAAGR;AAAhC,IAAP;AACA;;AAED,SAASa,iBAAT,QAKI;AAAA,MALwB;AAC3Bb,IAAAA,YAD2B;AAE3Bc,IAAAA,cAF2B;AAG3BC,IAAAA,SAH2B;AAI3BC,IAAAA,OAAO,EAAEC,OAAO,GAAG;AAJQ,GAKxB;AACH,QAAMC,QAAQ,GAAGb,WAAW,CAAEL,YAAF,EAAgBc,cAAhB,CAA5B;;AAEA,MAAK,CAAEI,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,OAAD,CACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAG,yBACX,8BADW,EAEXH,SAFW,CAVb,CAcC;AACA;AACA;AACA;AAjBD;AAkBC,IAAA,eAAe,EAAG,KAlBnB,CAmBC;AACA;AACA;AACA;AACA;AACA;AACA;AAzBD;AA0BC;AA1BD,KA4BGG,QA5BH,CADD;AAgCA;;eAEcL,iB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { store as blockEditorStore } from '../../store';\n\nfunction DefaultAppender( { rootClientId } ) {\n\tconst canInsertDefaultBlock = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t)\n\t);\n\n\tif ( canInsertDefaultBlock ) {\n\t\t// Render the default block appender if the context supports use\n\t\t// of the default appender.\n\t\treturn <DefaultBlockAppender rootClientId={ rootClientId } />;\n\t}\n\n\t// Fallback in case the default block can't be inserted.\n\treturn (\n\t\t<ButtonBlockAppender\n\t\t\trootClientId={ rootClientId }\n\t\t\tclassName=\"block-list-appender__toggle\"\n\t\t/>\n\t);\n}\n\nfunction useAppender( rootClientId, CustomAppender ) {\n\tconst { hideInserter, isParentSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\thideInserter:\n\t\t\t\t\t!! getTemplateLock( rootClientId ) ||\n\t\t\t\t\t__unstableGetEditorMode() === 'zoom-out',\n\t\t\t\tisParentSelected:\n\t\t\t\t\trootClientId === selectedBlockClientId ||\n\t\t\t\t\t( ! rootClientId && ! selectedBlockClientId ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tif ( hideInserter || CustomAppender === false ) {\n\t\treturn null;\n\t}\n\n\tif ( CustomAppender ) {\n\t\t// Prefer custom render prop if provided.\n\t\treturn <CustomAppender />;\n\t}\n\n\tif ( ! isParentSelected ) {\n\t\treturn null;\n\t}\n\n\treturn <DefaultAppender rootClientId={ rootClientId } />;\n}\n\nfunction BlockListAppender( {\n\trootClientId,\n\trenderAppender,\n\tclassName,\n\ttagName: TagName = 'div',\n} ) {\n\tconst appender = useAppender( rootClientId, renderAppender );\n\n\tif ( ! appender ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TagName\n\t\t\t// A `tabIndex` is used on the wrapping `div` element in order to\n\t\t\t// force a focus event to occur when an appender `button` element\n\t\t\t// is clicked. In some browsers (Firefox, Safari), button clicks do\n\t\t\t// not emit a focus event, which could cause this event to propagate\n\t\t\t// unexpectedly. The `tabIndex` ensures that the interaction is\n\t\t\t// captured as a focus, without also adding an extra tab stop.\n\t\t\t//\n\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\ttabIndex={ -1 }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-list-appender wp-block',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t// Needed in case the whole editor is content editable (for multi\n\t\t\t// selection). It fixes an edge case where ArrowDown and ArrowRight\n\t\t\t// should collapse the selection to the end of that selection and\n\t\t\t// not into the appender.\n\t\t\tcontentEditable={ false }\n\t\t\t// The appender exists to let you add the first Paragraph before\n\t\t\t// any is inserted. To that end, this appender should visually be\n\t\t\t// presented as a block. That means theme CSS should style it as if\n\t\t\t// it were an empty paragraph block. That means a `wp-block` class to\n\t\t\t// ensure the width is correct, and a [data-block] attribute to ensure\n\t\t\t// the correct margin is applied, especially for classic themes which\n\t\t\t// have commonly targeted that attribute for margins.\n\t\t\tdata-block\n\t\t>\n\t\t\t{ appender }\n\t\t</TagName>\n\t);\n}\n\nexport default BlockListAppender;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["DefaultAppender","rootClientId","canInsertDefaultBlock","select","blockEditorStore","canInsertBlockType","useAppender","CustomAppender","hideInserter","isParentSelected","getTemplateLock","getSelectedBlockClientId","__unstableGetEditorMode","selectedBlockClientId","BlockListAppender","renderAppender","className","tagName","TagName","appender","isDragOver","getBlockInsertionPoint","isBlockInsertionPointVisible","getBlockCount","insertionPoint"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { store as blockEditorStore } from '../../store';\n\nfunction DefaultAppender( { rootClientId } ) {\n\tconst canInsertDefaultBlock = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t)\n\t);\n\n\tif ( canInsertDefaultBlock ) {\n\t\t// Render the default block appender if the context supports use\n\t\t// of the default appender.\n\t\treturn <DefaultBlockAppender rootClientId={ rootClientId } />;\n\t}\n\n\t// Fallback in case the default block can't be inserted.\n\treturn (\n\t\t<ButtonBlockAppender\n\t\t\trootClientId={ rootClientId }\n\t\t\tclassName=\"block-list-appender__toggle\"\n\t\t/>\n\t);\n}\n\nfunction useAppender( rootClientId, CustomAppender ) {\n\tconst { hideInserter, isParentSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\thideInserter:\n\t\t\t\t\t!! getTemplateLock( rootClientId ) ||\n\t\t\t\t\t__unstableGetEditorMode() === 'zoom-out',\n\t\t\t\tisParentSelected:\n\t\t\t\t\trootClientId === selectedBlockClientId ||\n\t\t\t\t\t( ! rootClientId && ! selectedBlockClientId ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tif ( hideInserter || CustomAppender === false ) {\n\t\treturn null;\n\t}\n\n\tif ( CustomAppender ) {\n\t\t// Prefer custom render prop if provided.\n\t\treturn <CustomAppender />;\n\t}\n\n\tif ( ! isParentSelected ) {\n\t\treturn null;\n\t}\n\n\treturn <DefaultAppender rootClientId={ rootClientId } />;\n}\n\nfunction BlockListAppender( {\n\trootClientId,\n\trenderAppender,\n\tclassName,\n\ttagName: TagName = 'div',\n} ) {\n\tconst appender = useAppender( rootClientId, renderAppender );\n\tconst isDragOver = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\t// Ideally we should also check for `isDragging` but currently it\n\t\t\t// requires a lot more setup. We can revisit this once we refactor\n\t\t\t// the DnD utility hooks.\n\t\t\treturn (\n\t\t\t\tisBlockInsertionPointVisible() &&\n\t\t\t\trootClientId === insertionPoint?.rootClientId &&\n\t\t\t\tgetBlockCount( rootClientId ) === 0\n\t\t\t);\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tif ( ! appender ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TagName\n\t\t\t// A `tabIndex` is used on the wrapping `div` element in order to\n\t\t\t// force a focus event to occur when an appender `button` element\n\t\t\t// is clicked. In some browsers (Firefox, Safari), button clicks do\n\t\t\t// not emit a focus event, which could cause this event to propagate\n\t\t\t// unexpectedly. The `tabIndex` ensures that the interaction is\n\t\t\t// captured as a focus, without also adding an extra tab stop.\n\t\t\t//\n\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\ttabIndex={ -1 }\n\t\t\tclassName={ classnames( 'block-list-appender wp-block', className, {\n\t\t\t\t'is-drag-over': isDragOver,\n\t\t\t} ) }\n\t\t\t// Needed in case the whole editor is content editable (for multi\n\t\t\t// selection). It fixes an edge case where ArrowDown and ArrowRight\n\t\t\t// should collapse the selection to the end of that selection and\n\t\t\t// not into the appender.\n\t\t\tcontentEditable={ false }\n\t\t\t// The appender exists to let you add the first Paragraph before\n\t\t\t// any is inserted. To that end, this appender should visually be\n\t\t\t// presented as a block. That means theme CSS should style it as if\n\t\t\t// it were an empty paragraph block. That means a `wp-block` class to\n\t\t\t// ensure the width is correct, and a [data-block] attribute to ensure\n\t\t\t// the correct margin is applied, especially for classic themes which\n\t\t\t// have commonly targeted that attribute for margins.\n\t\t\tdata-block\n\t\t>\n\t\t\t{ appender }\n\t\t</TagName>\n\t);\n}\n\nexport default BlockListAppender;\n"]}
@@ -35,6 +35,8 @@ var _store = require("../../store");
35
35
 
36
36
  var _blockTransformationsMenu = _interopRequireDefault(require("../block-switcher/block-transformations-menu"));
37
37
 
38
+ var _convertToGroupButtons = require("../convert-to-group-buttons");
39
+
38
40
  /**
39
41
  * External dependencies
40
42
  */
@@ -64,6 +66,7 @@ const BlockActionsMenu = _ref => {
64
66
  rootClientId,
65
67
  selectedBlockClientId,
66
68
  selectedBlockPossibleTransformations,
69
+ canRemove,
67
70
  // Dispatch.
68
71
  createSuccessNotice,
69
72
  convertToRegularBlocks,
@@ -96,7 +99,16 @@ const BlockActionsMenu = _ref => {
96
99
  backward: backwardButtonTitle,
97
100
  forward: forwardButtonTitle
98
101
  }
99
- } = (0, _moverDescription.getMoversSetup)(isStackedHorizontally, moversOptions);
102
+ } = (0, _moverDescription.getMoversSetup)(isStackedHorizontally, moversOptions); // Check if selected block is Groupable and/or Ungroupable.
103
+
104
+ const convertToGroupButtonProps = (0, _convertToGroupButtons.useConvertToGroupButtonProps)([selectedBlockClientId]);
105
+ const {
106
+ isGroupable,
107
+ isUngroupable
108
+ } = convertToGroupButtonProps;
109
+ const showConvertToGroupButton = (isGroupable || isUngroupable) && canRemove;
110
+ const convertToGroupButtons = (0, _convertToGroupButtons.useConvertToGroupButtons)({ ...convertToGroupButtonProps
111
+ });
100
112
  const allOptions = {
101
113
  settings: {
102
114
  id: 'settingsOption',
@@ -200,7 +212,7 @@ const BlockActionsMenu = _ref => {
200
212
  }
201
213
  }
202
214
  };
203
- const options = [wrapBlockMover && allOptions.backwardButton, wrapBlockMover && allOptions.forwardButton, wrapBlockSettings && allOptions.settings, !isLocked && selectedBlockPossibleTransformations.length && allOptions.transformButton, canDuplicate && allOptions.copyButton, canDuplicate && allOptions.cutButton, canDuplicate && isPasteEnabled && allOptions.pasteButton, canDuplicate && allOptions.duplicateButton, isReusableBlockType && allOptions.convertToRegularBlocks, !isLocked && allOptions.delete].filter(Boolean); // End early if there are no options to show.
215
+ const options = [wrapBlockMover && allOptions.backwardButton, wrapBlockMover && allOptions.forwardButton, wrapBlockSettings && allOptions.settings, !isLocked && selectedBlockPossibleTransformations.length && allOptions.transformButton, canDuplicate && allOptions.copyButton, canDuplicate && allOptions.cutButton, canDuplicate && isPasteEnabled && allOptions.pasteButton, canDuplicate && allOptions.duplicateButton, showConvertToGroupButton && isGroupable && convertToGroupButtons.group, showConvertToGroupButton && isUngroupable && convertToGroupButtons.ungroup, isReusableBlockType && innerBlockCount > 0 && allOptions.convertToRegularBlocks, !isLocked && allOptions.delete].filter(Boolean); // End early if there are no options to show.
204
216
 
205
217
  if (!options.length) {
206
218
  return (0, _element.createElement)(_components.ToolbarButton, {
@@ -281,7 +293,8 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
281
293
  getBlocksByClientId,
282
294
  getSelectedBlockClientIds,
283
295
  canInsertBlockType,
284
- getTemplateLock
296
+ getTemplateLock,
297
+ canRemoveBlock
285
298
  } = select(_store.store);
286
299
  const block = getBlock(clientId);
287
300
  const blockName = getBlockName(clientId);
@@ -304,6 +317,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
304
317
  const selectedBlockClientId = getSelectedBlockClientIds()[0];
305
318
  const selectedBlock = selectedBlockClientId ? getBlocksByClientId(selectedBlockClientId)[0] : undefined;
306
319
  const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems(selectedBlock, rootClientId) : EMPTY_BLOCK_LIST;
320
+ const canRemove = canRemoveBlock(selectedBlockClientId);
307
321
  const isReusableBlockType = block ? (0, _blocks.isReusableBlock)(block) : false;
308
322
  const reusableBlock = isReusableBlockType ? select(_coreData.store).getEntityRecord('postType', 'wp_block', block === null || block === void 0 ? void 0 : block.attributes.ref) : undefined;
309
323
  return {
@@ -320,7 +334,8 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
320
334
  reusableBlock,
321
335
  rootClientId,
322
336
  selectedBlockClientId,
323
- selectedBlockPossibleTransformations
337
+ selectedBlockPossibleTransformations,
338
+ canRemove
324
339
  };
325
340
  }), (0, _data.withDispatch)((dispatch, _ref3, _ref4) => {
326
341
  let {