@wordpress/block-editor 12.0.0 → 12.1.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 (311) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +1 -1
  3. package/build/components/block-controls/slot.js +12 -4
  4. package/build/components/block-controls/slot.js.map +1 -1
  5. package/build/components/block-controls/slot.native.js +10 -1
  6. package/build/components/block-controls/slot.native.js.map +1 -1
  7. package/build/components/block-draggable/index.js +11 -7
  8. package/build/components/block-draggable/index.js.map +1 -1
  9. package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
  10. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  11. package/build/components/block-list/block-invalid-warning.native.js +15 -7
  12. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  13. package/build/components/block-list/block-list-item-cell.native.js +15 -2
  14. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  15. package/build/components/block-list/block-list-item.native.js +158 -195
  16. package/build/components/block-list/block-list-item.native.js.map +1 -1
  17. package/build/components/block-list/block-outline.native.js +57 -0
  18. package/build/components/block-list/block-outline.native.js.map +1 -0
  19. package/build/components/block-list/block.native.js +343 -299
  20. package/build/components/block-list/block.native.js.map +1 -1
  21. package/build/components/block-list/index.native.js +202 -298
  22. package/build/components/block-list/index.native.js.map +1 -1
  23. package/build/components/block-list/insertion-point.native.js +4 -2
  24. package/build/components/block-list/insertion-point.native.js.map +1 -1
  25. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  26. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  27. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -10
  28. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  29. package/build/components/block-settings-menu-controls/index.js +15 -4
  30. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  31. package/build/components/block-tools/block-contextual-toolbar.js +17 -62
  32. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  33. package/build/components/block-tools/selected-block-popover.js +3 -8
  34. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  35. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  36. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  37. package/build/components/global-styles/advanced-panel.js +86 -0
  38. package/build/components/global-styles/advanced-panel.js.map +1 -0
  39. package/build/components/global-styles/color-panel.js +4 -1
  40. package/build/components/global-styles/color-panel.js.map +1 -1
  41. package/build/components/global-styles/dimensions-panel.js +6 -6
  42. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  43. package/build/components/global-styles/hooks.js +1 -2
  44. package/build/components/global-styles/hooks.js.map +1 -1
  45. package/build/components/global-styles/index.js +24 -0
  46. package/build/components/global-styles/index.js.map +1 -1
  47. package/build/components/global-styles/typography-panel.js +1 -1
  48. package/build/components/global-styles/typography-panel.js.map +1 -1
  49. package/build/components/global-styles/use-global-styles-output.js +27 -4
  50. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  51. package/build/components/global-styles/utils.js +30 -0
  52. package/build/components/global-styles/utils.js.map +1 -1
  53. package/build/components/image-editor/use-save-image.js +24 -8
  54. package/build/components/image-editor/use-save-image.js.map +1 -1
  55. package/build/components/inserter-draggable-blocks/index.js +5 -0
  56. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  57. package/build/components/inspector-controls/fill.js +1 -1
  58. package/build/components/inspector-controls/fill.js.map +1 -1
  59. package/build/components/inspector-controls/fill.native.js +1 -1
  60. package/build/components/inspector-controls/fill.native.js.map +1 -1
  61. package/build/components/inspector-controls/slot.js +3 -6
  62. package/build/components/inspector-controls/slot.js.map +1 -1
  63. package/build/components/inspector-controls/slot.native.js +1 -1
  64. package/build/components/inspector-controls/slot.native.js.map +1 -1
  65. package/build/components/line-height-control/index.js +7 -2
  66. package/build/components/line-height-control/index.js.map +1 -1
  67. package/build/components/link-control/use-internal-input-value.js +9 -8
  68. package/build/components/link-control/use-internal-input-value.js.map +1 -1
  69. package/build/components/list-view/block-contents.js +7 -2
  70. package/build/components/list-view/block-contents.js.map +1 -1
  71. package/build/components/list-view/block-select-button.js +2 -1
  72. package/build/components/list-view/block-select-button.js.map +1 -1
  73. package/build/components/list-view/block.js +4 -4
  74. package/build/components/list-view/block.js.map +1 -1
  75. package/build/components/list-view/index.js +32 -18
  76. package/build/components/list-view/index.js.map +1 -1
  77. package/build/components/list-view/use-list-view-drop-zone.js +163 -11
  78. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  79. package/build/components/media-placeholder/index.js +68 -7
  80. package/build/components/media-placeholder/index.js.map +1 -1
  81. package/build/components/multi-selection-inspector/index.js +2 -2
  82. package/build/components/multi-selection-inspector/index.js.map +1 -1
  83. package/build/components/off-canvas-editor/leaf-more-menu.js +3 -1
  84. package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  85. package/build/components/preview-options/index.js +6 -1
  86. package/build/components/preview-options/index.js.map +1 -1
  87. package/build/components/spacing-sizes-control/spacing-input-control.js +1 -1
  88. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  89. package/build/components/url-input/index.js +1 -2
  90. package/build/components/url-input/index.js.map +1 -1
  91. package/build/hooks/align.js +1 -1
  92. package/build/hooks/align.js.map +1 -1
  93. package/build/hooks/border.js +1 -1
  94. package/build/hooks/border.js.map +1 -1
  95. package/build/hooks/color.js +1 -1
  96. package/build/hooks/color.js.map +1 -1
  97. package/build/hooks/content-lock-ui.js +8 -12
  98. package/build/hooks/content-lock-ui.js.map +1 -1
  99. package/build/hooks/duotone.js +1 -1
  100. package/build/hooks/duotone.js.map +1 -1
  101. package/build/hooks/index.native.js +8 -0
  102. package/build/hooks/index.native.js.map +1 -1
  103. package/build/hooks/layout.js +2 -2
  104. package/build/hooks/layout.js.map +1 -1
  105. package/build/hooks/position.js +1 -1
  106. package/build/hooks/position.js.map +1 -1
  107. package/build/hooks/style.js +1 -1
  108. package/build/hooks/style.js.map +1 -1
  109. package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
  110. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  111. package/build/hooks/use-typography-props.js +14 -10
  112. package/build/hooks/use-typography-props.js.map +1 -1
  113. package/build/index.native.js +31 -0
  114. package/build/index.native.js.map +1 -0
  115. package/build/utils/use-should-contextual-toolbar-show.js +16 -12
  116. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
  117. package/build-module/components/block-controls/slot.js +11 -4
  118. package/build-module/components/block-controls/slot.js.map +1 -1
  119. package/build-module/components/block-controls/slot.native.js +9 -1
  120. package/build-module/components/block-controls/slot.native.js.map +1 -1
  121. package/build-module/components/block-draggable/index.js +10 -6
  122. package/build-module/components/block-draggable/index.js.map +1 -1
  123. package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
  124. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  125. package/build-module/components/block-list/block-invalid-warning.native.js +16 -8
  126. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  127. package/build-module/components/block-list/block-list-item-cell.native.js +13 -2
  128. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  129. package/build-module/components/block-list/block-list-item.native.js +160 -190
  130. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  131. package/build-module/components/block-list/block-outline.native.js +44 -0
  132. package/build-module/components/block-list/block-outline.native.js.map +1 -0
  133. package/build-module/components/block-list/block.native.js +341 -298
  134. package/build-module/components/block-list/block.native.js.map +1 -1
  135. package/build-module/components/block-list/index.native.js +203 -293
  136. package/build-module/components/block-list/index.native.js.map +1 -1
  137. package/build-module/components/block-list/insertion-point.native.js +4 -2
  138. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  139. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  140. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  141. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -9
  142. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  143. package/build-module/components/block-settings-menu-controls/index.js +13 -5
  144. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  145. package/build-module/components/block-tools/block-contextual-toolbar.js +18 -62
  146. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  147. package/build-module/components/block-tools/selected-block-popover.js +3 -7
  148. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  149. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
  150. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  151. package/build-module/components/global-styles/advanced-panel.js +74 -0
  152. package/build-module/components/global-styles/advanced-panel.js.map +1 -0
  153. package/build-module/components/global-styles/color-panel.js +5 -2
  154. package/build-module/components/global-styles/color-panel.js.map +1 -1
  155. package/build-module/components/global-styles/dimensions-panel.js +6 -6
  156. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  157. package/build-module/components/global-styles/hooks.js +1 -2
  158. package/build-module/components/global-styles/hooks.js.map +1 -1
  159. package/build-module/components/global-styles/index.js +3 -1
  160. package/build-module/components/global-styles/index.js.map +1 -1
  161. package/build-module/components/global-styles/typography-panel.js +1 -1
  162. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  163. package/build-module/components/global-styles/use-global-styles-output.js +25 -4
  164. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  165. package/build-module/components/global-styles/utils.js +25 -0
  166. package/build-module/components/global-styles/utils.js.map +1 -1
  167. package/build-module/components/image-editor/use-save-image.js +24 -8
  168. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  169. package/build-module/components/inserter-draggable-blocks/index.js +4 -0
  170. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  171. package/build-module/components/inspector-controls/fill.js +1 -1
  172. package/build-module/components/inspector-controls/fill.js.map +1 -1
  173. package/build-module/components/inspector-controls/fill.native.js +1 -1
  174. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  175. package/build-module/components/inspector-controls/slot.js +4 -7
  176. package/build-module/components/inspector-controls/slot.js.map +1 -1
  177. package/build-module/components/inspector-controls/slot.native.js +1 -1
  178. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  179. package/build-module/components/line-height-control/index.js +7 -2
  180. package/build-module/components/line-height-control/index.js.map +1 -1
  181. package/build-module/components/link-control/use-internal-input-value.js +9 -8
  182. package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
  183. package/build-module/components/list-view/block-contents.js +7 -3
  184. package/build-module/components/list-view/block-contents.js.map +1 -1
  185. package/build-module/components/list-view/block-select-button.js +2 -1
  186. package/build-module/components/list-view/block-select-button.js.map +1 -1
  187. package/build-module/components/list-view/block.js +4 -4
  188. package/build-module/components/list-view/block.js.map +1 -1
  189. package/build-module/components/list-view/index.js +32 -18
  190. package/build-module/components/list-view/index.js.map +1 -1
  191. package/build-module/components/list-view/use-list-view-drop-zone.js +160 -11
  192. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  193. package/build-module/components/media-placeholder/index.js +66 -7
  194. package/build-module/components/media-placeholder/index.js.map +1 -1
  195. package/build-module/components/multi-selection-inspector/index.js +2 -2
  196. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  197. package/build-module/components/off-canvas-editor/leaf-more-menu.js +3 -1
  198. package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
  199. package/build-module/components/preview-options/index.js +7 -2
  200. package/build-module/components/preview-options/index.js.map +1 -1
  201. package/build-module/components/spacing-sizes-control/spacing-input-control.js +1 -1
  202. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  203. package/build-module/components/url-input/index.js +1 -2
  204. package/build-module/components/url-input/index.js.map +1 -1
  205. package/build-module/hooks/align.js +1 -1
  206. package/build-module/hooks/align.js.map +1 -1
  207. package/build-module/hooks/border.js +1 -1
  208. package/build-module/hooks/border.js.map +1 -1
  209. package/build-module/hooks/color.js +1 -1
  210. package/build-module/hooks/color.js.map +1 -1
  211. package/build-module/hooks/content-lock-ui.js +8 -11
  212. package/build-module/hooks/content-lock-ui.js.map +1 -1
  213. package/build-module/hooks/duotone.js +1 -1
  214. package/build-module/hooks/duotone.js.map +1 -1
  215. package/build-module/hooks/index.native.js +1 -0
  216. package/build-module/hooks/index.native.js.map +1 -1
  217. package/build-module/hooks/layout.js +2 -2
  218. package/build-module/hooks/layout.js.map +1 -1
  219. package/build-module/hooks/position.js +1 -1
  220. package/build-module/hooks/position.js.map +1 -1
  221. package/build-module/hooks/style.js +1 -1
  222. package/build-module/hooks/style.js.map +1 -1
  223. package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
  224. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
  225. package/build-module/hooks/use-typography-props.js +14 -10
  226. package/build-module/hooks/use-typography-props.js.map +1 -1
  227. package/build-module/index.native.js +6 -0
  228. package/build-module/index.native.js.map +1 -0
  229. package/build-module/utils/use-should-contextual-toolbar-show.js +16 -12
  230. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
  231. package/build-style/content-rtl.css +0 -1
  232. package/build-style/content.css +0 -1
  233. package/build-style/style-rtl.css +37 -13
  234. package/build-style/style.css +37 -13
  235. package/package.json +31 -31
  236. package/src/components/block-breadcrumb/style.scss +2 -1
  237. package/src/components/block-controls/slot.js +8 -4
  238. package/src/components/block-controls/slot.native.js +6 -1
  239. package/src/components/block-draggable/index.js +10 -6
  240. package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
  241. package/src/components/block-list/block-invalid-warning.native.js +17 -9
  242. package/src/components/block-list/block-list-item-cell.native.js +10 -1
  243. package/src/components/block-list/block-list-item.native.js +180 -208
  244. package/src/components/block-list/block-outline.native.js +58 -0
  245. package/src/components/block-list/block.native.js +564 -523
  246. package/src/components/block-list/content.scss +0 -1
  247. package/src/components/block-list/index.native.js +229 -298
  248. package/src/components/block-list/insertion-point.native.js +2 -2
  249. package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
  250. package/src/components/block-list/test/index.native.js +205 -0
  251. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -1
  252. package/src/components/block-pattern-setup/style.scss +1 -4
  253. package/src/components/block-patterns-list/style.scss +1 -4
  254. package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
  255. package/src/components/block-settings-menu-controls/index.js +24 -4
  256. package/src/components/block-styles/style.scss +4 -4
  257. package/src/components/block-tools/block-contextual-toolbar.js +28 -62
  258. package/src/components/block-tools/selected-block-popover.js +3 -5
  259. package/src/components/block-tools/style.scss +8 -0
  260. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
  261. package/src/components/global-styles/advanced-panel.js +82 -0
  262. package/src/components/global-styles/color-panel.js +6 -1
  263. package/src/components/global-styles/dimensions-panel.js +6 -6
  264. package/src/components/global-styles/hooks.js +1 -5
  265. package/src/components/global-styles/index.js +6 -1
  266. package/src/components/global-styles/style.scss +14 -0
  267. package/src/components/global-styles/test/utils.js +57 -1
  268. package/src/components/global-styles/typography-panel.js +1 -1
  269. package/src/components/global-styles/use-global-styles-output.js +21 -3
  270. package/src/components/global-styles/utils.js +27 -0
  271. package/src/components/image-editor/use-save-image.js +20 -9
  272. package/src/components/inserter-draggable-blocks/index.js +4 -0
  273. package/src/components/inspector-controls/fill.js +1 -1
  274. package/src/components/inspector-controls/fill.native.js +1 -1
  275. package/src/components/inspector-controls/slot.js +4 -9
  276. package/src/components/inspector-controls/slot.native.js +1 -1
  277. package/src/components/line-height-control/index.js +7 -2
  278. package/src/components/line-height-control/stories/index.js +1 -1
  279. package/src/components/link-control/test/index.js +42 -0
  280. package/src/components/link-control/use-internal-input-value.js +8 -7
  281. package/src/components/list-view/block-contents.js +26 -20
  282. package/src/components/list-view/block-select-button.js +5 -1
  283. package/src/components/list-view/block.js +5 -2
  284. package/src/components/list-view/index.js +26 -14
  285. package/src/components/list-view/style.scss +5 -2
  286. package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
  287. package/src/components/list-view/use-list-view-drop-zone.js +194 -11
  288. package/src/components/media-placeholder/index.js +74 -1
  289. package/src/components/multi-selection-inspector/index.js +2 -2
  290. package/src/components/off-canvas-editor/leaf-more-menu.js +2 -1
  291. package/src/components/preview-options/index.js +9 -2
  292. package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
  293. package/src/components/url-input/index.js +1 -2
  294. package/src/hooks/align.js +2 -1
  295. package/src/hooks/border.js +2 -1
  296. package/src/hooks/color.js +2 -1
  297. package/src/hooks/content-lock-ui.js +3 -15
  298. package/src/hooks/duotone.js +1 -0
  299. package/src/hooks/index.native.js +1 -0
  300. package/src/hooks/layout.js +4 -2
  301. package/src/hooks/position.js +2 -1
  302. package/src/hooks/style.js +2 -1
  303. package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
  304. package/src/hooks/test/use-typography-props.js +47 -2
  305. package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
  306. package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
  307. package/src/hooks/use-typography-props.js +10 -11
  308. package/src/index.native.js +6 -0
  309. package/src/utils/use-should-contextual-toolbar-show.js +19 -9
  310. package/tsconfig.json +1 -0
  311. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 12.1.0 (2023-05-10)
6
+
7
+ - `MediaPlaceholder`: Remove the undocumented `onHTMLDrop` prop ([#49673](https://github.com/WordPress/gutenberg/pull/49673)).
8
+
5
9
  ## 12.0.0 (2023-04-26)
6
10
 
7
11
  ### Breaking Changes
package/README.md CHANGED
@@ -539,7 +539,7 @@ Provides the CSS class names and inline styles for a block's typography support
539
539
  _Parameters_
540
540
 
541
541
  - _attributes_ `Object`: Block attributes.
542
- - _fluidTypographySettings_ `Object|boolean`: If boolean, whether the function should try to convert font sizes to fluid values, otherwise an object containing theme fluid typography settings.
542
+ - _settings_ `Object|boolean`: Merged theme.json settings
543
543
 
544
544
  _Returns_
545
545
 
@@ -13,6 +13,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _components = require("@wordpress/components");
15
15
 
16
+ var _warning = _interopRequireDefault(require("@wordpress/warning"));
17
+
16
18
  var _groups = _interopRequireDefault(require("./groups"));
17
19
 
18
20
  /**
@@ -23,16 +25,22 @@ var _groups = _interopRequireDefault(require("./groups"));
23
25
  * Internal dependencies
24
26
  */
25
27
  function BlockControlsSlot(_ref) {
28
+ var _groups$group;
29
+
26
30
  let {
27
31
  group = 'default',
28
32
  ...props
29
33
  } = _ref;
30
34
  const accessibleToolbarState = (0, _element.useContext)(_components.__experimentalToolbarContext);
31
- const Slot = _groups.default[group].Slot;
32
- const fills = (0, _components.__experimentalUseSlotFills)(Slot.__unstableName);
33
- const hasFills = Boolean(fills && fills.length);
35
+ const Slot = (_groups$group = _groups.default[group]) === null || _groups$group === void 0 ? void 0 : _groups$group.Slot;
36
+ const fills = (0, _components.__experimentalUseSlotFills)(Slot === null || Slot === void 0 ? void 0 : Slot.__unstableName);
37
+
38
+ if (!Slot) {
39
+ typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? (0, _warning.default)(`Unknown BlockControls group "${group}" provided.`) : void 0;
40
+ return null;
41
+ }
34
42
 
35
- if (!hasFills) {
43
+ if (!(fills !== null && fills !== void 0 && fills.length)) {
36
44
  return null;
37
45
  }
38
46
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-controls/slot.js"],"names":["BlockControlsSlot","group","props","accessibleToolbarState","ToolbarContext","Slot","groups","fills","__unstableName","hasFills","Boolean","length"],"mappings":";;;;;;;;;AAGA;;;;AACA;;AASA;;AAbA;AACA;AACA;;AAQA;AACA;AACA;AAGe,SAASA,iBAAT,OAA8D;AAAA,MAAlC;AAAEC,IAAAA,KAAK,GAAG,SAAV;AAAqB,OAAGC;AAAxB,GAAkC;AAC5E,QAAMC,sBAAsB,GAAG,yBAAYC,wCAAZ,CAA/B;AACA,QAAMC,IAAI,GAAGC,gBAAQL,KAAR,EAAgBI,IAA7B;AACA,QAAME,KAAK,GAAG,4CAAcF,IAAI,CAACG,cAAnB,CAAd;AACA,QAAMC,QAAQ,GAAGC,OAAO,CAAEH,KAAK,IAAIA,KAAK,CAACI,MAAjB,CAAxB;;AAEA,MAAK,CAAEF,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,MAAKR,KAAK,KAAK,SAAf,EAA2B;AAC1B,WACC,4BAAC,IAAD,6BACMC,KADN;AAEC,MAAA,gBAAgB,MAFjB;AAGC,MAAA,SAAS,EAAGC;AAHb,OADD;AAOA;;AAED,SACC,4BAAC,wBAAD,QACC,4BAAC,IAAD,6BACMD,KADN;AAEC,IAAA,gBAAgB,MAFjB;AAGC,IAAA,SAAS,EAAGC;AAHb,KADD,CADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst accessibleToolbarState = useContext( ToolbarContext );\n\tconst Slot = groups[ group ].Slot;\n\tconst fills = useSlotFills( Slot.__unstableName );\n\tconst hasFills = Boolean( fills && fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\tif ( group === 'default' ) {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\t{ ...props }\n\t\t\t\tbubblesVirtually\n\t\t\t\tfillProps={ accessibleToolbarState }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<Slot\n\t\t\t\t{ ...props }\n\t\t\t\tbubblesVirtually\n\t\t\t\tfillProps={ accessibleToolbarState }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-controls/slot.js"],"names":["BlockControlsSlot","group","props","accessibleToolbarState","ToolbarContext","Slot","groups","fills","__unstableName","length"],"mappings":";;;;;;;;;AAGA;;;;AACA;;AAKA;;AAKA;;AAdA;AACA;AACA;;AASA;AACA;AACA;AAGe,SAASA,iBAAT,OAA8D;AAAA;;AAAA,MAAlC;AAAEC,IAAAA,KAAK,GAAG,SAAV;AAAqB,OAAGC;AAAxB,GAAkC;AAC5E,QAAMC,sBAAsB,GAAG,yBAAYC,wCAAZ,CAA/B;AACA,QAAMC,IAAI,oBAAGC,gBAAQL,KAAR,CAAH,kDAAG,cAAiBI,IAA9B;AACA,QAAME,KAAK,GAAG,4CAAcF,IAAd,aAAcA,IAAd,uBAAcA,IAAI,CAAEG,cAApB,CAAd;;AACA,MAAK,CAAEH,IAAP,EAAc;AACb,mHAAU,gCAAgCJ,KAAO,aAAjD;AACA,WAAO,IAAP;AACA;;AAED,MAAK,EAAEM,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEE,MAAT,CAAL,EAAuB;AACtB,WAAO,IAAP;AACA;;AAED,MAAKR,KAAK,KAAK,SAAf,EAA2B;AAC1B,WACC,4BAAC,IAAD,6BACMC,KADN;AAEC,MAAA,gBAAgB,MAFjB;AAGC,MAAA,SAAS,EAAGC;AAHb,OADD;AAOA;;AAED,SACC,4BAAC,wBAAD,QACC,4BAAC,IAAD,6BACMD,KADN;AAEC,IAAA,gBAAgB,MAFjB;AAGC,IAAA,SAAS,EAAGC;AAHb,KADD,CADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst accessibleToolbarState = useContext( ToolbarContext );\n\tconst Slot = groups[ group ]?.Slot;\n\tconst fills = useSlotFills( Slot?.__unstableName );\n\tif ( ! Slot ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tif ( ! fills?.length ) {\n\t\treturn null;\n\t}\n\n\tif ( group === 'default' ) {\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\t{ ...props }\n\t\t\t\tbubblesVirtually\n\t\t\t\tfillProps={ accessibleToolbarState }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<Slot\n\t\t\t\t{ ...props }\n\t\t\t\tbubblesVirtually\n\t\t\t\tfillProps={ accessibleToolbarState }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n}\n"]}
@@ -13,6 +13,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _components = require("@wordpress/components");
15
15
 
16
+ var _warning = _interopRequireDefault(require("@wordpress/warning"));
17
+
16
18
  var _groups = _interopRequireDefault(require("./groups"));
17
19
 
18
20
  /**
@@ -23,12 +25,19 @@ var _groups = _interopRequireDefault(require("./groups"));
23
25
  * Internal dependencies
24
26
  */
25
27
  function BlockControlsSlot(_ref) {
28
+ var _groups$group;
29
+
26
30
  let {
27
31
  group = 'default',
28
32
  ...props
29
33
  } = _ref;
30
34
  const accessibleToolbarState = (0, _element.useContext)(_components.__experimentalToolbarContext);
31
- const Slot = _groups.default[group].Slot;
35
+ const Slot = (_groups$group = _groups.default[group]) === null || _groups$group === void 0 ? void 0 : _groups$group.Slot;
36
+
37
+ if (!Slot) {
38
+ typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production" ? (0, _warning.default)(`Unknown BlockControls group "${group}" provided.`) : void 0;
39
+ return null;
40
+ }
32
41
 
33
42
  if (group === 'default') {
34
43
  return (0, _element.createElement)(Slot, (0, _extends2.default)({}, props, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-controls/slot.native.js"],"names":["BlockControlsSlot","group","props","accessibleToolbarState","ToolbarContext","Slot","groups","fills","length"],"mappings":";;;;;;;;;AAGA;;;;AACA;;AAQA;;AAZA;AACA;AACA;;AAOA;AACA;AACA;AAGe,SAASA,iBAAT,OAA8D;AAAA,MAAlC;AAAEC,IAAAA,KAAK,GAAG,SAAV;AAAqB,OAAGC;AAAxB,GAAkC;AAC5E,QAAMC,sBAAsB,GAAG,yBAAYC,wCAAZ,CAA/B;AACA,QAAMC,IAAI,GAAGC,gBAAQL,KAAR,EAAgBI,IAA7B;;AAEA,MAAKJ,KAAK,KAAK,SAAf,EAA2B;AAC1B,WAAO,4BAAC,IAAD,6BAAWC,KAAX;AAAmB,MAAA,SAAS,EAAGC;AAA/B,OAAP;AACA;;AAED,SACC,4BAAC,IAAD,6BAAWD,KAAX;AAAmB,IAAA,SAAS,EAAGC;AAA/B,MACKI,KAAF,IAAa;AACd,QAAK,CAAEA,KAAK,CAACC,MAAb,EAAsB;AACrB,aAAO,IAAP;AACA;;AACD,WAAO,4BAAC,wBAAD,QAAgBD,KAAhB,CAAP;AACA,GANF,CADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst accessibleToolbarState = useContext( ToolbarContext );\n\tconst Slot = groups[ group ].Slot;\n\n\tif ( group === 'default' ) {\n\t\treturn <Slot { ...props } fillProps={ accessibleToolbarState } />;\n\t}\n\n\treturn (\n\t\t<Slot { ...props } fillProps={ accessibleToolbarState }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( ! fills.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn <ToolbarGroup>{ fills }</ToolbarGroup>;\n\t\t\t} }\n\t\t</Slot>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-controls/slot.native.js"],"names":["BlockControlsSlot","group","props","accessibleToolbarState","ToolbarContext","Slot","groups","fills","length"],"mappings":";;;;;;;;;AAGA;;;;AACA;;AAIA;;AAKA;;AAbA;AACA;AACA;;AAQA;AACA;AACA;AAGe,SAASA,iBAAT,OAA8D;AAAA;;AAAA,MAAlC;AAAEC,IAAAA,KAAK,GAAG,SAAV;AAAqB,OAAGC;AAAxB,GAAkC;AAC5E,QAAMC,sBAAsB,GAAG,yBAAYC,wCAAZ,CAA/B;AACA,QAAMC,IAAI,oBAAGC,gBAAQL,KAAR,CAAH,kDAAG,cAAiBI,IAA9B;;AACA,MAAK,CAAEA,IAAP,EAAc;AACb,mHAAU,gCAAgCJ,KAAO,aAAjD;AACA,WAAO,IAAP;AACA;;AAED,MAAKA,KAAK,KAAK,SAAf,EAA2B;AAC1B,WAAO,4BAAC,IAAD,6BAAWC,KAAX;AAAmB,MAAA,SAAS,EAAGC;AAA/B,OAAP;AACA;;AAED,SACC,4BAAC,IAAD,6BAAWD,KAAX;AAAmB,IAAA,SAAS,EAAGC;AAA/B,MACKI,KAAF,IAAa;AACd,QAAK,CAAEA,KAAK,CAACC,MAAb,EAAsB;AACrB,aAAO,IAAP;AACA;;AACD,WAAO,4BAAC,wBAAD,QAAgBD,KAAhB,CAAP;AACA,GANF,CADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst accessibleToolbarState = useContext( ToolbarContext );\n\tconst Slot = groups[ group ]?.Slot;\n\tif ( ! Slot ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tif ( group === 'default' ) {\n\t\treturn <Slot { ...props } fillProps={ accessibleToolbarState } />;\n\t}\n\n\treturn (\n\t\t<Slot { ...props } fillProps={ accessibleToolbarState }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( ! fills.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn <ToolbarGroup>{ fills }</ToolbarGroup>;\n\t\t\t} }\n\t\t</Slot>\n\t);\n}\n"]}
@@ -87,13 +87,17 @@ const BlockDraggable = _ref => {
87
87
  __experimentalTransferDataType: "wp-blocks",
88
88
  transferData: transferData,
89
89
  onDragStart: event => {
90
- startDraggingBlocks(clientIds);
91
- isDragging.current = true;
92
- startScrolling(event);
93
-
94
- if (onDragStart) {
95
- onDragStart();
96
- }
90
+ // Defer hiding the dragged source element to the next
91
+ // frame to enable dragging.
92
+ window.requestAnimationFrame(() => {
93
+ startDraggingBlocks(clientIds);
94
+ isDragging.current = true;
95
+ startScrolling(event);
96
+
97
+ if (onDragStart) {
98
+ onDragStart();
99
+ }
100
+ });
97
101
  },
98
102
  onDragOver: scrollOnDragOver,
99
103
  onDragEnd: () => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"names":["BlockDraggable","children","clientIds","cloneClassname","onDragStart","onDragEnd","srcRootClientId","isDraggable","icon","select","canMoveBlocks","getBlockRootClientId","getBlockName","blockEditorStore","rootClientId","blockName","isDragging","startScrolling","scrollOnDragOver","stopScrolling","startDraggingBlocks","stopDraggingBlocks","current","draggable","transferData","type","srcClientIds","event","length","onDraggableStart","onDraggableEnd"],"mappings":";;;;;;;;;AAMA;;AAHA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AAbA;AACA;AACA;;AAMA;AACA;AACA;AAKA,MAAMA,cAAc,GAAG,QAMhB;AAAA,MANkB;AACxBC,IAAAA,QADwB;AAExBC,IAAAA,SAFwB;AAGxBC,IAAAA,cAHwB;AAIxBC,IAAAA,WAJwB;AAKxBC,IAAAA;AALwB,GAMlB;AACN,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA,WAAnB;AAAgCC,IAAAA;AAAhC,MAAyC,qBAC5CC,MAAF,IAAc;AAAA;;AACb,UAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA,oBAAjB;AAAuCC,MAAAA;AAAvC,QACLH,MAAM,CAAEI,YAAF,CADP;AAEA,UAAMC,YAAY,GAAGH,oBAAoB,CAAET,SAAS,CAAE,CAAF,CAAX,CAAzC;AACA,UAAMa,SAAS,GAAGH,YAAY,CAAEV,SAAS,CAAE,CAAF,CAAX,CAA9B;AAEA,WAAO;AACNI,MAAAA,eAAe,EAAEQ,YADX;AAENP,MAAAA,WAAW,EAAEG,aAAa,CAAER,SAAF,EAAaY,YAAb,CAFpB;AAGNN,MAAAA,IAAI,mBAAE,0BAAcO,SAAd,CAAF,kDAAE,cAA2BP;AAH3B,KAAP;AAKA,GAZ6C,EAa9C,CAAEN,SAAF,CAb8C,CAA/C;AAeA,QAAMc,UAAU,GAAG,qBAAQ,KAAR,CAAnB;AACA,QAAM,CAAEC,cAAF,EAAkBC,gBAAlB,EAAoCC,aAApC,IACL,qCADD;AAGA,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MACL,uBAAaR,YAAb,CADD,CApBM,CAuBN;;AACA,0BAAW,MAAM;AAChB,WAAO,MAAM;AACZ,UAAKG,UAAU,CAACM,OAAhB,EAA0B;AACzBD,QAAAA,kBAAkB;AAClB;AACD,KAJD;AAKA,GAND,EAMG,EANH;;AAQA,MAAK,CAAEd,WAAP,EAAqB;AACpB,WAAON,QAAQ,CAAE;AAAEsB,MAAAA,SAAS,EAAE;AAAb,KAAF,CAAf;AACA;;AAED,QAAMC,YAAY,GAAG;AACpBC,IAAAA,IAAI,EAAE,OADc;AAEpBC,IAAAA,YAAY,EAAExB,SAFM;AAGpBI,IAAAA;AAHoB,GAArB;AAMA,SACC,4BAAC,qBAAD;AACC,IAAA,cAAc,EAAGH,cADlB;AAEC,IAAA,8BAA8B,EAAC,WAFhC;AAGC,IAAA,YAAY,EAAGqB,YAHhB;AAIC,IAAA,WAAW,EAAKG,KAAF,IAAa;AAC1BP,MAAAA,mBAAmB,CAAElB,SAAF,CAAnB;AACAc,MAAAA,UAAU,CAACM,OAAX,GAAqB,IAArB;AAEAL,MAAAA,cAAc,CAAEU,KAAF,CAAd;;AAEA,UAAKvB,WAAL,EAAmB;AAClBA,QAAAA,WAAW;AACX;AACD,KAbF;AAcC,IAAA,UAAU,EAAGc,gBAdd;AAeC,IAAA,SAAS,EAAG,MAAM;AACjBG,MAAAA,kBAAkB;AAClBL,MAAAA,UAAU,CAACM,OAAX,GAAqB,KAArB;AAEAH,MAAAA,aAAa;;AAEb,UAAKd,SAAL,EAAiB;AAChBA,QAAAA,SAAS;AACT;AACD,KAxBF;AAyBC,IAAA,2BAA2B,EAC1B,4BAAC,sBAAD;AAAoB,MAAA,KAAK,EAAGH,SAAS,CAAC0B,MAAtC;AAA+C,MAAA,IAAI,EAAGpB;AAAtD;AA1BF,KA6BG,SAA4C;AAAA,QAA1C;AAAEqB,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,KAA0C;AAC7C,WAAO7B,QAAQ,CAAE;AAChBsB,MAAAA,SAAS,EAAE,IADK;AAEhBnB,MAAAA,WAAW,EAAEyB,gBAFG;AAGhBxB,MAAAA,SAAS,EAAEyB;AAHK,KAAF,CAAf;AAKA,GAnCF,CADD;AAuCA,CAvFD;;eAyFe9B,c","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockDraggable = ( {\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\tonDragStart,\n\tonDragEnd,\n} ) => {\n\tconst { srcRootClientId, isDraggable, icon } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canMoveBlocks, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\ticon: getBlockType( blockName )?.icon,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst isDragging = useRef( false );\n\tconst [ startScrolling, scrollOnDragOver, stopScrolling ] =\n\t\tuseScrollWhenDragging();\n\n\tconst { startDraggingBlocks, stopDraggingBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Stop dragging blocks if the block draggable is unmounted.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( isDragging.current ) {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tif ( ! isDraggable ) {\n\t\treturn children( { draggable: false } );\n\t}\n\n\tconst transferData = {\n\t\ttype: 'block',\n\t\tsrcClientIds: clientIds,\n\t\tsrcRootClientId,\n\t};\n\n\treturn (\n\t\t<Draggable\n\t\t\tcloneClassname={ cloneClassname }\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ transferData }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\tstartDraggingBlocks( clientIds );\n\t\t\t\tisDragging.current = true;\n\n\t\t\t\tstartScrolling( event );\n\n\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\tonDragStart();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonDragOver={ scrollOnDragOver }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t\tisDragging.current = false;\n\n\t\t\t\tstopScrolling();\n\n\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\tonDragEnd();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip count={ clientIds.length } icon={ icon } />\n\t\t\t}\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default BlockDraggable;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"names":["BlockDraggable","children","clientIds","cloneClassname","onDragStart","onDragEnd","srcRootClientId","isDraggable","icon","select","canMoveBlocks","getBlockRootClientId","getBlockName","blockEditorStore","rootClientId","blockName","isDragging","startScrolling","scrollOnDragOver","stopScrolling","startDraggingBlocks","stopDraggingBlocks","current","draggable","transferData","type","srcClientIds","event","window","requestAnimationFrame","length","onDraggableStart","onDraggableEnd"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockDraggable = ( {\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\tonDragStart,\n\tonDragEnd,\n} ) => {\n\tconst { srcRootClientId, isDraggable, icon } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canMoveBlocks, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\ticon: getBlockType( blockName )?.icon,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst isDragging = useRef( false );\n\tconst [ startScrolling, scrollOnDragOver, stopScrolling ] =\n\t\tuseScrollWhenDragging();\n\n\tconst { startDraggingBlocks, stopDraggingBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Stop dragging blocks if the block draggable is unmounted.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( isDragging.current ) {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tif ( ! isDraggable ) {\n\t\treturn children( { draggable: false } );\n\t}\n\n\tconst transferData = {\n\t\ttype: 'block',\n\t\tsrcClientIds: clientIds,\n\t\tsrcRootClientId,\n\t};\n\n\treturn (\n\t\t<Draggable\n\t\t\tcloneClassname={ cloneClassname }\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ transferData }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t// Defer hiding the dragged source element to the next\n\t\t\t\t// frame to enable dragging.\n\t\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\t\tstartDraggingBlocks( clientIds );\n\t\t\t\t\tisDragging.current = true;\n\n\t\t\t\t\tstartScrolling( event );\n\n\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\tonDragStart();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonDragOver={ scrollOnDragOver }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t\tisDragging.current = false;\n\n\t\t\t\tstopScrolling();\n\n\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\tonDragEnd();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip count={ clientIds.length } icon={ icon } />\n\t\t\t}\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default BlockDraggable;\n"]}
@@ -64,13 +64,13 @@ function useScrollWhenDragging() {
64
64
  // User is dragging downwards.
65
65
  const moveableDistance = Math.max(scrollParentHeight - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);
66
66
  const dragDistance = Math.max(offsetDragPosition - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);
67
- const distancePercentage = dragDistance / moveableDistance;
67
+ const distancePercentage = moveableDistance === 0 || dragDistance === 0 ? 0 : dragDistance / moveableDistance;
68
68
  velocityY.current = VELOCITY_MULTIPLIER * distancePercentage;
69
69
  } else if (event.clientY < offsetDragStartPosition) {
70
70
  // User is dragging upwards.
71
71
  const moveableDistance = Math.max(offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);
72
72
  const dragDistance = Math.max(offsetDragStartPosition - offsetDragPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);
73
- const distancePercentage = dragDistance / moveableDistance;
73
+ const distancePercentage = moveableDistance === 0 || dragDistance === 0 ? 0 : dragDistance / moveableDistance;
74
74
  velocityY.current = -VELOCITY_MULTIPLIER * distancePercentage;
75
75
  } else {
76
76
  velocityY.current = 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/use-scroll-when-dragging.js"],"names":["SCROLL_INACTIVE_DISTANCE_PX","SCROLL_INTERVAL_MS","PIXELS_PER_SECOND_PER_PERCENTAGE","VELOCITY_MULTIPLIER","useScrollWhenDragging","dragStartY","velocityY","scrollParentY","scrollEditorInterval","current","clearInterval","startScrolling","event","clientY","target","setInterval","newTop","scrollTop","scroll","top","scrollOnDragOver","scrollParentHeight","offsetHeight","offsetDragStartPosition","offsetTop","offsetDragPosition","moveableDistance","Math","max","dragDistance","distancePercentage","stopScrolling"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getScrollContainer } from '@wordpress/dom';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\n\nconst SCROLL_INACTIVE_DISTANCE_PX = 50;\nconst SCROLL_INTERVAL_MS = 25;\nconst PIXELS_PER_SECOND_PER_PERCENTAGE = 1000;\nconst VELOCITY_MULTIPLIER =\n\tPIXELS_PER_SECOND_PER_PERCENTAGE * ( SCROLL_INTERVAL_MS / 1000 );\n\n/**\n * React hook that scrolls the scroll container when a block is being dragged.\n *\n * @return {Function[]} `startScrolling`, `scrollOnDragOver`, `stopScrolling`\n * functions to be called in `onDragStart`, `onDragOver`\n * and `onDragEnd` events respectively.\n */\nexport default function useScrollWhenDragging() {\n\tconst dragStartY = useRef( null );\n\tconst velocityY = useRef( null );\n\tconst scrollParentY = useRef( null );\n\tconst scrollEditorInterval = useRef( null );\n\n\t// Clear interval when unmounting.\n\tuseEffect(\n\t\t() => () => {\n\t\t\tif ( scrollEditorInterval.current ) {\n\t\t\t\tclearInterval( scrollEditorInterval.current );\n\t\t\t\tscrollEditorInterval.current = null;\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\tconst startScrolling = useCallback( ( event ) => {\n\t\tdragStartY.current = event.clientY;\n\n\t\t// Find nearest parent(s) to scroll.\n\t\tscrollParentY.current = getScrollContainer( event.target );\n\n\t\tscrollEditorInterval.current = setInterval( () => {\n\t\t\tif ( scrollParentY.current && velocityY.current ) {\n\t\t\t\tconst newTop =\n\t\t\t\t\tscrollParentY.current.scrollTop + velocityY.current;\n\n\t\t\t\t// Setting `behavior: 'smooth'` as a scroll property seems to hurt performance.\n\t\t\t\t// Better to use a small scroll interval.\n\t\t\t\tscrollParentY.current.scroll( {\n\t\t\t\t\ttop: newTop,\n\t\t\t\t} );\n\t\t\t}\n\t\t}, SCROLL_INTERVAL_MS );\n\t}, [] );\n\n\tconst scrollOnDragOver = useCallback( ( event ) => {\n\t\tif ( ! scrollParentY.current ) {\n\t\t\treturn;\n\t\t}\n\t\tconst scrollParentHeight = scrollParentY.current.offsetHeight;\n\t\tconst offsetDragStartPosition =\n\t\t\tdragStartY.current - scrollParentY.current.offsetTop;\n\t\tconst offsetDragPosition =\n\t\t\tevent.clientY - scrollParentY.current.offsetTop;\n\n\t\tif ( event.clientY > offsetDragStartPosition ) {\n\t\t\t// User is dragging downwards.\n\t\t\tconst moveableDistance = Math.max(\n\t\t\t\tscrollParentHeight -\n\t\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst dragDistance = Math.max(\n\t\t\t\toffsetDragPosition -\n\t\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst distancePercentage = dragDistance / moveableDistance;\n\t\t\tvelocityY.current = VELOCITY_MULTIPLIER * distancePercentage;\n\t\t} else if ( event.clientY < offsetDragStartPosition ) {\n\t\t\t// User is dragging upwards.\n\t\t\tconst moveableDistance = Math.max(\n\t\t\t\toffsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst dragDistance = Math.max(\n\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\toffsetDragPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst distancePercentage = dragDistance / moveableDistance;\n\t\t\tvelocityY.current = -VELOCITY_MULTIPLIER * distancePercentage;\n\t\t} else {\n\t\t\tvelocityY.current = 0;\n\t\t}\n\t}, [] );\n\n\tconst stopScrolling = () => {\n\t\tdragStartY.current = null;\n\t\tscrollParentY.current = null;\n\n\t\tif ( scrollEditorInterval.current ) {\n\t\t\tclearInterval( scrollEditorInterval.current );\n\t\t\tscrollEditorInterval.current = null;\n\t\t}\n\t};\n\n\treturn [ startScrolling, scrollOnDragOver, stopScrolling ];\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/use-scroll-when-dragging.js"],"names":["SCROLL_INACTIVE_DISTANCE_PX","SCROLL_INTERVAL_MS","PIXELS_PER_SECOND_PER_PERCENTAGE","VELOCITY_MULTIPLIER","useScrollWhenDragging","dragStartY","velocityY","scrollParentY","scrollEditorInterval","current","clearInterval","startScrolling","event","clientY","target","setInterval","newTop","scrollTop","scroll","top","scrollOnDragOver","scrollParentHeight","offsetHeight","offsetDragStartPosition","offsetTop","offsetDragPosition","moveableDistance","Math","max","dragDistance","distancePercentage","stopScrolling"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getScrollContainer } from '@wordpress/dom';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\n\nconst SCROLL_INACTIVE_DISTANCE_PX = 50;\nconst SCROLL_INTERVAL_MS = 25;\nconst PIXELS_PER_SECOND_PER_PERCENTAGE = 1000;\nconst VELOCITY_MULTIPLIER =\n\tPIXELS_PER_SECOND_PER_PERCENTAGE * ( SCROLL_INTERVAL_MS / 1000 );\n\n/**\n * React hook that scrolls the scroll container when a block is being dragged.\n *\n * @return {Function[]} `startScrolling`, `scrollOnDragOver`, `stopScrolling`\n * functions to be called in `onDragStart`, `onDragOver`\n * and `onDragEnd` events respectively.\n */\nexport default function useScrollWhenDragging() {\n\tconst dragStartY = useRef( null );\n\tconst velocityY = useRef( null );\n\tconst scrollParentY = useRef( null );\n\tconst scrollEditorInterval = useRef( null );\n\n\t// Clear interval when unmounting.\n\tuseEffect(\n\t\t() => () => {\n\t\t\tif ( scrollEditorInterval.current ) {\n\t\t\t\tclearInterval( scrollEditorInterval.current );\n\t\t\t\tscrollEditorInterval.current = null;\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\tconst startScrolling = useCallback( ( event ) => {\n\t\tdragStartY.current = event.clientY;\n\n\t\t// Find nearest parent(s) to scroll.\n\t\tscrollParentY.current = getScrollContainer( event.target );\n\n\t\tscrollEditorInterval.current = setInterval( () => {\n\t\t\tif ( scrollParentY.current && velocityY.current ) {\n\t\t\t\tconst newTop =\n\t\t\t\t\tscrollParentY.current.scrollTop + velocityY.current;\n\n\t\t\t\t// Setting `behavior: 'smooth'` as a scroll property seems to hurt performance.\n\t\t\t\t// Better to use a small scroll interval.\n\t\t\t\tscrollParentY.current.scroll( {\n\t\t\t\t\ttop: newTop,\n\t\t\t\t} );\n\t\t\t}\n\t\t}, SCROLL_INTERVAL_MS );\n\t}, [] );\n\n\tconst scrollOnDragOver = useCallback( ( event ) => {\n\t\tif ( ! scrollParentY.current ) {\n\t\t\treturn;\n\t\t}\n\t\tconst scrollParentHeight = scrollParentY.current.offsetHeight;\n\t\tconst offsetDragStartPosition =\n\t\t\tdragStartY.current - scrollParentY.current.offsetTop;\n\t\tconst offsetDragPosition =\n\t\t\tevent.clientY - scrollParentY.current.offsetTop;\n\n\t\tif ( event.clientY > offsetDragStartPosition ) {\n\t\t\t// User is dragging downwards.\n\t\t\tconst moveableDistance = Math.max(\n\t\t\t\tscrollParentHeight -\n\t\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst dragDistance = Math.max(\n\t\t\t\toffsetDragPosition -\n\t\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst distancePercentage =\n\t\t\t\tmoveableDistance === 0 || dragDistance === 0\n\t\t\t\t\t? 0\n\t\t\t\t\t: dragDistance / moveableDistance;\n\t\t\tvelocityY.current = VELOCITY_MULTIPLIER * distancePercentage;\n\t\t} else if ( event.clientY < offsetDragStartPosition ) {\n\t\t\t// User is dragging upwards.\n\t\t\tconst moveableDistance = Math.max(\n\t\t\t\toffsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst dragDistance = Math.max(\n\t\t\t\toffsetDragStartPosition -\n\t\t\t\t\toffsetDragPosition -\n\t\t\t\t\tSCROLL_INACTIVE_DISTANCE_PX,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst distancePercentage =\n\t\t\t\tmoveableDistance === 0 || dragDistance === 0\n\t\t\t\t\t? 0\n\t\t\t\t\t: dragDistance / moveableDistance;\n\t\t\tvelocityY.current = -VELOCITY_MULTIPLIER * distancePercentage;\n\t\t} else {\n\t\t\tvelocityY.current = 0;\n\t\t}\n\t}, [] );\n\n\tconst stopScrolling = () => {\n\t\tdragStartY.current = null;\n\t\tscrollParentY.current = null;\n\n\t\tif ( scrollEditorInterval.current ) {\n\t\t\tclearInterval( scrollEditorInterval.current );\n\t\t\tscrollEditorInterval.current = null;\n\t\t}\n\t};\n\n\treturn [ startScrolling, scrollOnDragOver, stopScrolling ];\n}\n"]}
@@ -34,27 +34,35 @@ var _store = require("../../store");
34
34
  */
35
35
  function BlockInvalidWarning(_ref) {
36
36
  let {
37
- blockTitle,
38
- icon,
39
37
  clientId
40
38
  } = _ref;
41
- const accessibilityLabel = (0, _i18n.sprintf)(
42
- /* translators: accessibility text for blocks with invalid content. %d: localized block title */
43
- (0, _i18n.__)('%s block. This block has invalid content'), blockTitle);
44
39
 
45
40
  const selector = select => {
46
41
  const {
47
42
  getBlock
48
43
  } = select(_store.store);
49
44
  const block = getBlock(clientId);
45
+ const {
46
+ name
47
+ } = block || {};
48
+ const blockType = (0, _blocks.getBlockType)(name || 'core/missing');
49
+ const title = blockType === null || blockType === void 0 ? void 0 : blockType.title;
50
+ const blockIcon = blockType === null || blockType === void 0 ? void 0 : blockType.icon;
50
51
  return {
51
- block
52
+ block,
53
+ blockTitle: title,
54
+ icon: blockIcon
52
55
  };
53
56
  };
54
57
 
55
58
  const {
56
- block
59
+ block,
60
+ blockTitle,
61
+ icon
57
62
  } = (0, _data.useSelect)(selector, [clientId]);
63
+ const accessibilityLabel = (0, _i18n.sprintf)(
64
+ /* translators: accessibility text for blocks with invalid content. %d: localized block title */
65
+ (0, _i18n.__)('%s block. This block has invalid content'), blockTitle);
58
66
  const {
59
67
  replaceBlock
60
68
  } = (0, _data.useDispatch)(_store.store);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"names":["BlockInvalidWarning","blockTitle","icon","clientId","accessibilityLabel","selector","select","getBlock","blockEditorStore","block","replaceBlock","recoverBlock","name","attributes","innerBlocks","attemptBlockRecovery"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAIe,SAASA,mBAAT,OAA+D;AAAA,MAAjC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,IAAd;AAAoBC,IAAAA;AAApB,GAAiC;AAC7E,QAAMC,kBAAkB,GAAG;AAC1B;AACA,gBAAI,0CAAJ,CAF0B,EAG1BH,UAH0B,CAA3B;;AAMA,QAAMI,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEE,YAAF,CAA3B;AACA,UAAMC,KAAK,GAAGF,QAAQ,CAAEJ,QAAF,CAAtB;AACA,WAAO;AACNM,MAAAA;AADM,KAAP;AAGA,GAND;;AAQA,QAAM;AAAEA,IAAAA;AAAF,MAAY,qBAAWJ,QAAX,EAAqB,CAAEF,QAAF,CAArB,CAAlB;AAEA,QAAM;AAAEO,IAAAA;AAAF,MAAmB,uBAAaF,YAAb,CAAzB;;AAEA,QAAMG,YAAY,GAAG;AAAA,QAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,UAAR;AAAoBC,MAAAA;AAApB,KAAF;AAAA,WACpB,yBAAaF,IAAb,EAAmBC,UAAnB,EAA+BC,WAA/B,CADoB;AAAA,GAArB;;AAGA,QAAMC,oBAAoB,GAAG,MAAM;AAClCL,IAAAA,YAAY,CAAED,KAAK,CAACN,QAAR,EAAkBQ,YAAY,CAAEF,KAAF,CAA9B,CAAZ;AACA,GAFD;;AAIA,SACC,4BAAC,qCAAD;AACC,IAAA,OAAO,EAAGM,oBADX;AAEC,IAAA,UAAU,EAAG,IAFd;AAGC,IAAA,iBAAiB,EAAG;AAHrB,KAKC,4BAAC,gBAAD;AACC,IAAA,KAAK,EAAGd,UADT,CAEC;AAFD;AAGC,IAAA,OAAO,EAAG,cACT,4DADS,CAHX;AAMC,IAAA,IAAI,EAAGC,IANR;AAOC,IAAA,kBAAkB,EAAGE;AAPtB,IALD,CADD;AAiBA","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { blockTitle, icon, clientId } ) {\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %d: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\treturn {\n\t\t\tblock,\n\t\t};\n\t};\n\n\tconst { block } = useSelect( selector, [ clientId ] );\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible={ true }\n\t\t\taccessibilityRole={ 'button' }\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"names":["BlockInvalidWarning","clientId","selector","select","getBlock","blockEditorStore","block","name","blockType","title","blockIcon","icon","blockTitle","accessibilityLabel","replaceBlock","recoverBlock","attributes","innerBlocks","attemptBlockRecovery"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAIe,SAASA,mBAAT,OAA6C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;;AAC3D,QAAMC,QAAQ,GAAKC,MAAF,IAAc;AAC9B,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEE,YAAF,CAA3B;AACA,UAAMC,KAAK,GAAGF,QAAQ,CAAEH,QAAF,CAAtB;AACA,UAAM;AAAEM,MAAAA;AAAF,QAAWD,KAAK,IAAI,EAA1B;AAEA,UAAME,SAAS,GAAG,0BAAcD,IAAI,IAAI,cAAtB,CAAlB;AACA,UAAME,KAAK,GAAGD,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEC,KAAzB;AACA,UAAMC,SAAS,GAAGF,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEG,IAA7B;AAEA,WAAO;AACNL,MAAAA,KADM;AAENM,MAAAA,UAAU,EAAEH,KAFN;AAGNE,MAAAA,IAAI,EAAED;AAHA,KAAP;AAKA,GAdD;;AAgBA,QAAM;AAAEJ,IAAAA,KAAF;AAASM,IAAAA,UAAT;AAAqBD,IAAAA;AAArB,MAA8B,qBAAWT,QAAX,EAAqB,CAAED,QAAF,CAArB,CAApC;AAEA,QAAMY,kBAAkB,GAAG;AAC1B;AACA,gBAAI,0CAAJ,CAF0B,EAG1BD,UAH0B,CAA3B;AAMA,QAAM;AAAEE,IAAAA;AAAF,MAAmB,uBAAaT,YAAb,CAAzB;;AAEA,QAAMU,YAAY,GAAG;AAAA,QAAE;AAAER,MAAAA,IAAF;AAAQS,MAAAA,UAAR;AAAoBC,MAAAA;AAApB,KAAF;AAAA,WACpB,yBAAaV,IAAb,EAAmBS,UAAnB,EAA+BC,WAA/B,CADoB;AAAA,GAArB;;AAGA,QAAMC,oBAAoB,GAAG,MAAM;AAClCJ,IAAAA,YAAY,CAAER,KAAK,CAACL,QAAR,EAAkBc,YAAY,CAAET,KAAF,CAA9B,CAAZ;AACA,GAFD;;AAIA,SACC,4BAAC,qCAAD;AACC,IAAA,OAAO,EAAGY,oBADX;AAEC,IAAA,UAAU,EAAG,IAFd;AAGC,IAAA,iBAAiB,EAAG;AAHrB,KAKC,4BAAC,gBAAD;AACC,IAAA,KAAK,EAAGN,UADT,CAEC;AAFD;AAGC,IAAA,OAAO,EAAG,cACT,4DADS,CAHX;AAMC,IAAA,IAAI,EAAGD,IANR;AAOC,IAAA,kBAAkB,EAAGE;AAPtB,IALD,CADD;AAiBA","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { clientId } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst blockIcon = blockType?.icon;\n\n\t\treturn {\n\t\t\tblock,\n\t\t\tblockTitle: title,\n\t\t\ticon: blockIcon,\n\t\t};\n\t};\n\n\tconst { block, blockTitle, icon } = useSelect( selector, [ clientId ] );\n\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %d: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible={ true }\n\t\t\taccessibilityRole={ 'button' }\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"]}
@@ -9,8 +9,12 @@ var _element = require("@wordpress/element");
9
9
 
10
10
  var _reactNative = require("react-native");
11
11
 
12
+ var _data = require("@wordpress/data");
13
+
12
14
  var _blockListContext = require("./block-list-context");
13
15
 
16
+ var _store = require("../../store");
17
+
14
18
  /**
15
19
  * External dependencies
16
20
  */
@@ -25,14 +29,23 @@ var _blockListContext = require("./block-list-context");
25
29
  function BlockListItemCell(_ref) {
26
30
  let {
27
31
  children,
28
- clientId,
29
- rootClientId,
32
+ item: clientId,
30
33
  onLayout
31
34
  } = _ref;
32
35
  const {
33
36
  blocksLayouts,
34
37
  updateBlocksLayouts
35
38
  } = (0, _blockListContext.useBlockListContext)();
39
+ const {
40
+ rootClientId
41
+ } = (0, _data.useSelect)(select => {
42
+ const {
43
+ getBlockRootClientId
44
+ } = select(_store.store);
45
+ return {
46
+ rootClientId: getBlockRootClientId(clientId)
47
+ };
48
+ }, [clientId]);
36
49
  (0, _element.useEffect)(() => {
37
50
  return () => {
38
51
  updateBlocksLayouts(blocksLayouts, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item-cell.native.js"],"names":["BlockListItemCell","children","clientId","rootClientId","onLayout","blocksLayouts","updateBlocksLayouts","shouldRemove","onCellLayout","event","nativeEvent","layout"],"mappings":";;;;;;;AAQA;;AALA;;AAUA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAGA,SAASA,iBAAT,OAA6E;AAAA,MAAjD;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA,YAAtB;AAAoCC,IAAAA;AAApC,GAAiD;AAC5E,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAyC,4CAA/C;AAEA,0BAAW,MAAM;AAChB,WAAO,MAAM;AACZA,MAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCH,QAAAA,QADmC;AAEnCK,QAAAA,YAAY,EAAE;AAFqB,OAAjB,CAAnB;AAIA,KALD;AAMA,GAPD,EAOG,EAPH;AASA,QAAMC,YAAY,GAAG,0BAClBC,KAAF,IAAa;AACZ,UAAM;AACLC,MAAAA,WAAW,EAAE;AAAEC,QAAAA;AAAF;AADR,QAEFF,KAFJ;AAGAH,IAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCH,MAAAA,QADmC;AAEnCC,MAAAA,YAFmC;AAGnC,SAAGQ;AAHgC,KAAjB,CAAnB;;AAMA,QAAKP,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEK,KAAF,CAAR;AACA;AACD,GAdmB,EAepB,CAAEP,QAAF,EAAYC,YAAZ,EAA0BG,mBAA1B,EAA+CF,QAA/C,CAfoB,CAArB;AAkBA,SAAO,4BAAC,iBAAD;AAAM,IAAA,QAAQ,EAAGI;AAAjB,KAAkCP,QAAlC,CAAP;AACA;;eAEcD,iB","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockListContext } from './block-list-context';\n\nfunction BlockListItemCell( { children, clientId, rootClientId, onLayout } ) {\n\tconst { blocksLayouts, updateBlocksLayouts } = useBlockListContext();\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\tshouldRemove: true,\n\t\t\t} );\n\t\t};\n\t}, [] );\n\n\tconst onCellLayout = useCallback(\n\t\t( event ) => {\n\t\t\tconst {\n\t\t\t\tnativeEvent: { layout },\n\t\t\t} = event;\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\trootClientId,\n\t\t\t\t...layout,\n\t\t\t} );\n\n\t\t\tif ( onLayout ) {\n\t\t\t\tonLayout( event );\n\t\t\t}\n\t\t},\n\t\t[ clientId, rootClientId, updateBlocksLayouts, onLayout ]\n\t);\n\n\treturn <View onLayout={ onCellLayout }>{ children }</View>;\n}\n\nexport default BlockListItemCell;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item-cell.native.js"],"names":["BlockListItemCell","children","item","clientId","onLayout","blocksLayouts","updateBlocksLayouts","rootClientId","select","getBlockRootClientId","blockEditorStore","shouldRemove","onCellLayout","event","nativeEvent","layout"],"mappings":";;;;;;;AAQA;;AALA;;AAMA;;AAKA;;AACA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAIA,SAASA,iBAAT,OAAqE;AAAA,MAAzC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAI,EAAEC,QAAlB;AAA4BC,IAAAA;AAA5B,GAAyC;AACpE,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAyC,4CAA/C;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAmB,qBACtBC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA2BD,MAAM,CAAEE,YAAF,CAAvC;AACA,WAAO;AAAEH,MAAAA,YAAY,EAAEE,oBAAoB,CAAEN,QAAF;AAApC,KAAP;AACA,GAJuB,EAKxB,CAAEA,QAAF,CALwB,CAAzB;AAQA,0BAAW,MAAM;AAChB,WAAO,MAAM;AACZG,MAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCF,QAAAA,QADmC;AAEnCQ,QAAAA,YAAY,EAAE;AAFqB,OAAjB,CAAnB;AAIA,KALD;AAMA,GAPD,EAOG,EAPH;AASA,QAAMC,YAAY,GAAG,0BAClBC,KAAF,IAAa;AACZ,UAAM;AACLC,MAAAA,WAAW,EAAE;AAAEC,QAAAA;AAAF;AADR,QAEFF,KAFJ;AAGAP,IAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCF,MAAAA,QADmC;AAEnCI,MAAAA,YAFmC;AAGnC,SAAGQ;AAHgC,KAAjB,CAAnB;;AAMA,QAAKX,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAES,KAAF,CAAR;AACA;AACD,GAdmB,EAepB,CAAEV,QAAF,EAAYI,YAAZ,EAA0BD,mBAA1B,EAA+CF,QAA/C,CAfoB,CAArB;AAkBA,SAAO,4BAAC,iBAAD;AAAM,IAAA,QAAQ,EAAGQ;AAAjB,KAAkCX,QAAlC,CAAP;AACA;;eAEcD,iB","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockListContext } from './block-list-context';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListItemCell( { children, item: clientId, onLayout } ) {\n\tconst { blocksLayouts, updateBlocksLayouts } = useBlockListContext();\n\tconst { rootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\t\t\treturn { rootClientId: getBlockRootClientId( clientId ) };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\tshouldRemove: true,\n\t\t\t} );\n\t\t};\n\t}, [] );\n\n\tconst onCellLayout = useCallback(\n\t\t( event ) => {\n\t\t\tconst {\n\t\t\t\tnativeEvent: { layout },\n\t\t\t} = event;\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\trootClientId,\n\t\t\t\t...layout,\n\t\t\t} );\n\n\t\t\tif ( onLayout ) {\n\t\t\t\tonLayout( event );\n\t\t\t}\n\t\t},\n\t\t[ clientId, rootClientId, updateBlocksLayouts, onLayout ]\n\t);\n\n\treturn <View onLayout={ onCellLayout }>{ children }</View>;\n}\n\nexport default BlockListItemCell;\n"]}