@wordpress/block-editor 12.17.0 → 12.18.1

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 (421) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +32 -0
  3. package/build/components/block-draggable/index.js +11 -3
  4. package/build/components/block-draggable/index.js.map +1 -1
  5. package/build/components/block-edit/context.js +3 -1
  6. package/build/components/block-edit/context.js.map +1 -1
  7. package/build/components/block-edit/index.js +4 -2
  8. package/build/components/block-edit/index.js.map +1 -1
  9. package/build/components/block-editing-mode/index.js +6 -3
  10. package/build/components/block-editing-mode/index.js.map +1 -1
  11. package/build/components/block-inspector/index.js +5 -2
  12. package/build/components/block-inspector/index.js.map +1 -1
  13. package/build/components/block-list/block.js +4 -3
  14. package/build/components/block-list/block.js.map +1 -1
  15. package/build/components/block-list/block.native.js +9 -5
  16. package/build/components/block-list/block.native.js.map +1 -1
  17. package/build/components/block-list/index.js +30 -4
  18. package/build/components/block-list/index.js.map +1 -1
  19. package/build/components/block-list/private-block-context.js +1 -1
  20. package/build/components/block-list/private-block-context.js.map +1 -1
  21. package/build/components/block-list/use-in-between-inserter.js +1 -1
  22. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  23. package/build/components/block-lock/toolbar.js +8 -2
  24. package/build/components/block-lock/toolbar.js.map +1 -1
  25. package/build/components/block-popover/inbetween.js +15 -3
  26. package/build/components/block-popover/inbetween.js.map +1 -1
  27. package/build/components/block-preview/auto.js +1 -1
  28. package/build/components/block-preview/auto.js.map +1 -1
  29. package/build/components/block-removal-warning-modal/index.js +3 -2
  30. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -4
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-switcher/block-transformations-menu.js +12 -1
  34. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  35. package/build/components/block-switcher/index.js +119 -90
  36. package/build/components/block-switcher/index.js.map +1 -1
  37. package/build/components/block-tools/insertion-point.js +10 -3
  38. package/build/components/block-tools/insertion-point.js.map +1 -1
  39. package/build/components/dimensions-tool/aspect-ratio-tool.js +2 -1
  40. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  41. package/build/components/font-sizes/fluid-utils.js +7 -1
  42. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  43. package/build/components/global-styles/border-panel.js +5 -14
  44. package/build/components/global-styles/border-panel.js.map +1 -1
  45. package/build/components/global-styles/dimensions-panel.js +30 -5
  46. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  47. package/build/components/global-styles/effects-panel.js +7 -1
  48. package/build/components/global-styles/effects-panel.js.map +1 -1
  49. package/build/components/global-styles/hooks.js +11 -8
  50. package/build/components/global-styles/hooks.js.map +1 -1
  51. package/build/components/global-styles/typography-panel.js +31 -14
  52. package/build/components/global-styles/typography-panel.js.map +1 -1
  53. package/build/components/global-styles/use-global-styles-output.js +6 -0
  54. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  55. package/build/components/iframe/get-compatibility-styles.js +99 -0
  56. package/build/components/iframe/get-compatibility-styles.js.map +1 -0
  57. package/build/components/iframe/index.js +2 -3
  58. package/build/components/iframe/index.js.map +1 -1
  59. package/build/components/index.js +16 -2
  60. package/build/components/index.js.map +1 -1
  61. package/build/components/index.native.js +16 -2
  62. package/build/components/index.native.js.map +1 -1
  63. package/build/components/inspector-controls/groups.js +2 -0
  64. package/build/components/inspector-controls/groups.js.map +1 -1
  65. package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
  66. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  67. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -2
  68. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  69. package/build/components/link-control/link-preview.js +30 -26
  70. package/build/components/link-control/link-preview.js.map +1 -1
  71. package/build/components/link-control/search-input.js +1 -9
  72. package/build/components/link-control/search-input.js.map +1 -1
  73. package/build/components/list-view/block-contents.js +3 -1
  74. package/build/components/list-view/block-contents.js.map +1 -1
  75. package/build/components/list-view/block.js +10 -1
  76. package/build/components/list-view/block.js.map +1 -1
  77. package/build/components/list-view/branch.js +29 -8
  78. package/build/components/list-view/branch.js.map +1 -1
  79. package/build/components/list-view/drop-indicator.js +100 -32
  80. package/build/components/list-view/drop-indicator.js.map +1 -1
  81. package/build/components/list-view/index.js +52 -4
  82. package/build/components/list-view/index.js.map +1 -1
  83. package/build/components/list-view/leaf.js +2 -2
  84. package/build/components/list-view/leaf.js.map +1 -1
  85. package/build/components/list-view/use-list-view-block-indexes.js +30 -0
  86. package/build/components/list-view/use-list-view-block-indexes.js.map +1 -0
  87. package/build/components/list-view/use-list-view-drop-zone.js +56 -5
  88. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  89. package/build/components/list-view/utils.js +92 -0
  90. package/build/components/list-view/utils.js.map +1 -1
  91. package/build/components/provider/index.js +1 -1
  92. package/build/components/provider/index.js.map +1 -1
  93. package/build/components/recursion-provider/index.js +21 -0
  94. package/build/components/recursion-provider/index.js.map +1 -1
  95. package/build/components/rich-text/index.js +30 -6
  96. package/build/components/rich-text/index.js.map +1 -1
  97. package/build/components/rich-text/native/index.native.js +9 -9
  98. package/build/components/rich-text/native/index.native.js.map +1 -1
  99. package/build/components/use-block-drop-zone/index.js +30 -7
  100. package/build/components/use-block-drop-zone/index.js.map +1 -1
  101. package/build/components/use-on-block-drop/index.js +50 -8
  102. package/build/components/use-on-block-drop/index.js.map +1 -1
  103. package/build/hooks/block-hooks.js +5 -14
  104. package/build/hooks/block-hooks.js.map +1 -1
  105. package/build/hooks/content-lock-ui.js +17 -42
  106. package/build/hooks/content-lock-ui.js.map +1 -1
  107. package/build/hooks/dimensions.js +71 -1
  108. package/build/hooks/dimensions.js.map +1 -1
  109. package/build/hooks/effects.js +66 -0
  110. package/build/hooks/effects.js.map +1 -0
  111. package/build/hooks/index.js +17 -4
  112. package/build/hooks/index.js.map +1 -1
  113. package/build/hooks/index.native.js +13 -0
  114. package/build/hooks/index.native.js.map +1 -1
  115. package/build/hooks/style.js +9 -2
  116. package/build/hooks/style.js.map +1 -1
  117. package/build/hooks/supports.js +2 -1
  118. package/build/hooks/supports.js.map +1 -1
  119. package/build/hooks/typography.native.js +2 -2
  120. package/build/hooks/typography.native.js.map +1 -1
  121. package/build/hooks/use-bindings-attributes.js +115 -0
  122. package/build/hooks/use-bindings-attributes.js.map +1 -0
  123. package/build/hooks/use-shadow-props.js +46 -0
  124. package/build/hooks/use-shadow-props.js.map +1 -0
  125. package/build/hooks/utils.js +12 -7
  126. package/build/hooks/utils.js.map +1 -1
  127. package/build/index.js +14 -0
  128. package/build/index.js.map +1 -1
  129. package/build/store/actions.js +10 -6
  130. package/build/store/actions.js.map +1 -1
  131. package/build/store/index.js +2 -0
  132. package/build/store/index.js.map +1 -1
  133. package/build/store/private-actions.js +37 -0
  134. package/build/store/private-actions.js.map +1 -1
  135. package/build/store/private-selectors.js +60 -9
  136. package/build/store/private-selectors.js.map +1 -1
  137. package/build/store/reducer.js +44 -3
  138. package/build/store/reducer.js.map +1 -1
  139. package/build/store/resolvers.js +27 -0
  140. package/build/store/resolvers.js.map +1 -0
  141. package/build/store/selectors.js +94 -56
  142. package/build/store/selectors.js.map +1 -1
  143. package/build/store/utils.js +5 -26
  144. package/build/store/utils.js.map +1 -1
  145. package/build/utils/index.js +0 -16
  146. package/build/utils/index.js.map +1 -1
  147. package/build/utils/math.js +13 -0
  148. package/build/utils/math.js.map +1 -1
  149. package/build/utils/object.js +17 -0
  150. package/build/utils/object.js.map +1 -1
  151. package/build/utils/transform-styles/index.js +37 -27
  152. package/build/utils/transform-styles/index.js.map +1 -1
  153. package/build-module/components/block-draggable/index.js +11 -3
  154. package/build-module/components/block-draggable/index.js.map +1 -1
  155. package/build-module/components/block-edit/context.js +1 -0
  156. package/build-module/components/block-edit/context.js.map +1 -1
  157. package/build-module/components/block-edit/index.js +5 -3
  158. package/build-module/components/block-edit/index.js.map +1 -1
  159. package/build-module/components/block-editing-mode/index.js +7 -4
  160. package/build-module/components/block-editing-mode/index.js.map +1 -1
  161. package/build-module/components/block-inspector/index.js +5 -2
  162. package/build-module/components/block-inspector/index.js.map +1 -1
  163. package/build-module/components/block-list/block.js +6 -5
  164. package/build-module/components/block-list/block.js.map +1 -1
  165. package/build-module/components/block-list/block.native.js +11 -7
  166. package/build-module/components/block-list/block.native.js.map +1 -1
  167. package/build-module/components/block-list/index.js +31 -5
  168. package/build-module/components/block-list/index.js.map +1 -1
  169. package/build-module/components/block-list/private-block-context.js +1 -1
  170. package/build-module/components/block-list/private-block-context.js.map +1 -1
  171. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  172. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  173. package/build-module/components/block-lock/toolbar.js +8 -2
  174. package/build-module/components/block-lock/toolbar.js.map +1 -1
  175. package/build-module/components/block-popover/inbetween.js +15 -3
  176. package/build-module/components/block-popover/inbetween.js.map +1 -1
  177. package/build-module/components/block-preview/auto.js +3 -3
  178. package/build-module/components/block-preview/auto.js.map +1 -1
  179. package/build-module/components/block-removal-warning-modal/index.js +3 -2
  180. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  181. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -4
  182. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  183. package/build-module/components/block-switcher/block-transformations-menu.js +12 -1
  184. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  185. package/build-module/components/block-switcher/index.js +116 -86
  186. package/build-module/components/block-switcher/index.js.map +1 -1
  187. package/build-module/components/block-tools/insertion-point.js +10 -3
  188. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  189. package/build-module/components/dimensions-tool/aspect-ratio-tool.js +2 -1
  190. package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  191. package/build-module/components/font-sizes/fluid-utils.js +7 -1
  192. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  193. package/build-module/components/global-styles/border-panel.js +5 -14
  194. package/build-module/components/global-styles/border-panel.js.map +1 -1
  195. package/build-module/components/global-styles/dimensions-panel.js +30 -5
  196. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  197. package/build-module/components/global-styles/effects-panel.js +7 -1
  198. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  199. package/build-module/components/global-styles/hooks.js +11 -8
  200. package/build-module/components/global-styles/hooks.js.map +1 -1
  201. package/build-module/components/global-styles/typography-panel.js +32 -15
  202. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  203. package/build-module/components/global-styles/use-global-styles-output.js +6 -0
  204. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  205. package/build-module/components/iframe/get-compatibility-styles.js +93 -0
  206. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -0
  207. package/build-module/components/iframe/index.js +2 -3
  208. package/build-module/components/iframe/index.js.map +1 -1
  209. package/build-module/components/index.js +1 -1
  210. package/build-module/components/index.js.map +1 -1
  211. package/build-module/components/index.native.js +1 -1
  212. package/build-module/components/index.native.js.map +1 -1
  213. package/build-module/components/inspector-controls/groups.js +2 -0
  214. package/build-module/components/inspector-controls/groups.js.map +1 -1
  215. package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
  216. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  217. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -2
  218. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  219. package/build-module/components/link-control/link-preview.js +32 -28
  220. package/build-module/components/link-control/link-preview.js.map +1 -1
  221. package/build-module/components/link-control/search-input.js +1 -8
  222. package/build-module/components/link-control/search-input.js.map +1 -1
  223. package/build-module/components/list-view/block-contents.js +3 -1
  224. package/build-module/components/list-view/block-contents.js.map +1 -1
  225. package/build-module/components/list-view/block.js +10 -1
  226. package/build-module/components/list-view/block.js.map +1 -1
  227. package/build-module/components/list-view/branch.js +30 -9
  228. package/build-module/components/list-view/branch.js.map +1 -1
  229. package/build-module/components/list-view/drop-indicator.js +99 -32
  230. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  231. package/build-module/components/list-view/index.js +54 -6
  232. package/build-module/components/list-view/index.js.map +1 -1
  233. package/build-module/components/list-view/leaf.js +2 -2
  234. package/build-module/components/list-view/leaf.js.map +1 -1
  235. package/build-module/components/list-view/use-list-view-block-indexes.js +23 -0
  236. package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -0
  237. package/build-module/components/list-view/use-list-view-drop-zone.js +58 -7
  238. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  239. package/build-module/components/list-view/utils.js +91 -0
  240. package/build-module/components/list-view/utils.js.map +1 -1
  241. package/build-module/components/provider/index.js +1 -1
  242. package/build-module/components/provider/index.js.map +1 -1
  243. package/build-module/components/recursion-provider/index.js +17 -0
  244. package/build-module/components/recursion-provider/index.js.map +1 -1
  245. package/build-module/components/rich-text/index.js +30 -6
  246. package/build-module/components/rich-text/index.js.map +1 -1
  247. package/build-module/components/rich-text/native/index.native.js +9 -9
  248. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  249. package/build-module/components/use-block-drop-zone/index.js +31 -8
  250. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  251. package/build-module/components/use-on-block-drop/index.js +51 -9
  252. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  253. package/build-module/hooks/block-hooks.js +5 -14
  254. package/build-module/hooks/block-hooks.js.map +1 -1
  255. package/build-module/hooks/content-lock-ui.js +19 -43
  256. package/build-module/hooks/content-lock-ui.js.map +1 -1
  257. package/build-module/hooks/dimensions.js +70 -2
  258. package/build-module/hooks/dimensions.js.map +1 -1
  259. package/build-module/hooks/effects.js +51 -0
  260. package/build-module/hooks/effects.js.map +1 -0
  261. package/build-module/hooks/index.js +5 -3
  262. package/build-module/hooks/index.js.map +1 -1
  263. package/build-module/hooks/index.native.js +1 -0
  264. package/build-module/hooks/index.native.js.map +1 -1
  265. package/build-module/hooks/style.js +9 -2
  266. package/build-module/hooks/style.js.map +1 -1
  267. package/build-module/hooks/supports.js +2 -1
  268. package/build-module/hooks/supports.js.map +1 -1
  269. package/build-module/hooks/typography.native.js +2 -2
  270. package/build-module/hooks/typography.native.js.map +1 -1
  271. package/build-module/hooks/use-bindings-attributes.js +112 -0
  272. package/build-module/hooks/use-bindings-attributes.js.map +1 -0
  273. package/build-module/hooks/use-shadow-props.js +39 -0
  274. package/build-module/hooks/use-shadow-props.js.map +1 -0
  275. package/build-module/hooks/utils.js +14 -9
  276. package/build-module/hooks/utils.js.map +1 -1
  277. package/build-module/index.js +1 -1
  278. package/build-module/index.js.map +1 -1
  279. package/build-module/store/actions.js +10 -6
  280. package/build-module/store/actions.js.map +1 -1
  281. package/build-module/store/index.js +2 -0
  282. package/build-module/store/index.js.map +1 -1
  283. package/build-module/store/private-actions.js +35 -0
  284. package/build-module/store/private-actions.js.map +1 -1
  285. package/build-module/store/private-selectors.js +53 -8
  286. package/build-module/store/private-selectors.js.map +1 -1
  287. package/build-module/store/reducer.js +43 -3
  288. package/build-module/store/reducer.js.map +1 -1
  289. package/build-module/store/resolvers.js +20 -0
  290. package/build-module/store/resolvers.js.map +1 -0
  291. package/build-module/store/selectors.js +89 -52
  292. package/build-module/store/selectors.js.map +1 -1
  293. package/build-module/store/utils.js +3 -23
  294. package/build-module/store/utils.js.map +1 -1
  295. package/build-module/utils/index.js +0 -1
  296. package/build-module/utils/index.js.map +1 -1
  297. package/build-module/utils/math.js +12 -0
  298. package/build-module/utils/math.js.map +1 -1
  299. package/build-module/utils/object.js +16 -0
  300. package/build-module/utils/object.js.map +1 -1
  301. package/build-module/utils/transform-styles/index.js +36 -27
  302. package/build-module/utils/transform-styles/index.js.map +1 -1
  303. package/build-style/content-rtl.css +33 -16
  304. package/build-style/content.css +33 -16
  305. package/build-style/default-editor-styles-rtl.css +1 -1
  306. package/build-style/default-editor-styles.css +1 -1
  307. package/build-style/style-rtl.css +169 -114
  308. package/build-style/style.css +169 -114
  309. package/package.json +31 -31
  310. package/src/components/block-canvas/style.scss +8 -1
  311. package/src/components/block-draggable/index.js +16 -5
  312. package/src/components/block-edit/context.js +1 -0
  313. package/src/components/block-edit/index.js +4 -0
  314. package/src/components/block-editing-mode/index.js +12 -7
  315. package/src/components/block-inspector/index.js +5 -2
  316. package/src/components/block-list/block.js +5 -4
  317. package/src/components/block-list/block.native.js +13 -3
  318. package/src/components/block-list/content.scss +34 -5
  319. package/src/components/block-list/index.js +52 -16
  320. package/src/components/block-list/private-block-context.js +1 -1
  321. package/src/components/block-list/use-in-between-inserter.js +1 -2
  322. package/src/components/block-lock/toolbar.js +10 -2
  323. package/src/components/block-popover/inbetween.js +22 -2
  324. package/src/components/block-preview/auto.js +3 -3
  325. package/src/components/block-removal-warning-modal/index.js +3 -2
  326. package/src/components/block-settings-menu/block-settings-dropdown.js +2 -7
  327. package/src/components/block-switcher/block-transformations-menu.js +18 -1
  328. package/src/components/block-switcher/index.js +133 -111
  329. package/src/components/block-switcher/style.scss +6 -4
  330. package/src/components/block-switcher/test/index.js +113 -230
  331. package/src/components/block-toolbar/style.scss +22 -18
  332. package/src/components/block-tools/insertion-point.js +15 -2
  333. package/src/components/block-tools/style.scss +8 -7
  334. package/src/components/dimensions-tool/aspect-ratio-tool.js +4 -1
  335. package/src/components/font-sizes/fluid-utils.js +8 -2
  336. package/src/components/font-sizes/test/fluid-utils.js +9 -0
  337. package/src/components/global-styles/border-panel.js +7 -17
  338. package/src/components/global-styles/dimensions-panel.js +50 -1
  339. package/src/components/global-styles/effects-panel.js +16 -1
  340. package/src/components/global-styles/hooks.js +11 -6
  341. package/src/components/global-styles/typography-panel.js +45 -13
  342. package/src/components/global-styles/use-global-styles-output.js +6 -0
  343. package/src/components/iframe/get-compatibility-styles.js +120 -0
  344. package/src/components/iframe/index.js +2 -3
  345. package/src/components/index.js +4 -2
  346. package/src/components/index.native.js +4 -2
  347. package/src/components/inspector-controls/groups.js +2 -0
  348. package/src/components/inspector-controls-tabs/styles-tab.js +1 -0
  349. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -0
  350. package/src/components/link-control/link-preview.js +31 -55
  351. package/src/components/link-control/search-input.js +1 -9
  352. package/src/components/link-control/style.scss +31 -85
  353. package/src/components/link-control/test/index.js +2 -1
  354. package/src/components/list-view/block-contents.js +5 -1
  355. package/src/components/list-view/block.js +9 -0
  356. package/src/components/list-view/branch.js +30 -10
  357. package/src/components/list-view/drop-indicator.js +139 -46
  358. package/src/components/list-view/index.js +74 -3
  359. package/src/components/list-view/leaf.js +2 -2
  360. package/src/components/list-view/style.scss +102 -13
  361. package/src/components/list-view/test/use-list-view-drop-zone.js +4 -0
  362. package/src/components/list-view/test/utils.js +218 -1
  363. package/src/components/list-view/use-list-view-block-indexes.js +29 -0
  364. package/src/components/list-view/use-list-view-drop-zone.js +78 -6
  365. package/src/components/list-view/utils.js +116 -0
  366. package/src/components/provider/index.js +3 -1
  367. package/src/components/recursion-provider/README.md +2 -2
  368. package/src/components/recursion-provider/index.js +17 -0
  369. package/src/components/rich-text/index.js +48 -10
  370. package/src/components/rich-text/native/index.native.js +10 -10
  371. package/src/components/use-block-drop-zone/index.js +60 -19
  372. package/src/components/use-block-drop-zone/test/index.js +32 -61
  373. package/src/components/use-on-block-drop/index.js +92 -11
  374. package/src/hooks/block-hooks.js +5 -17
  375. package/src/hooks/content-lock-ui.js +15 -55
  376. package/src/hooks/dimensions.js +74 -3
  377. package/src/hooks/effects.js +57 -0
  378. package/src/hooks/index.js +4 -2
  379. package/src/hooks/index.native.js +1 -0
  380. package/src/hooks/style.js +12 -0
  381. package/src/hooks/supports.js +2 -0
  382. package/src/hooks/test/effects.js +39 -0
  383. package/src/hooks/typography.native.js +2 -2
  384. package/src/hooks/use-bindings-attributes.js +148 -0
  385. package/src/hooks/use-shadow-props.js +37 -0
  386. package/src/hooks/utils.js +30 -10
  387. package/src/index.js +2 -0
  388. package/src/store/actions.js +9 -4
  389. package/src/store/index.js +2 -0
  390. package/src/store/private-actions.js +32 -0
  391. package/src/store/private-selectors.js +78 -21
  392. package/src/store/reducer.js +49 -2
  393. package/src/store/resolvers.js +17 -0
  394. package/src/store/selectors.js +169 -161
  395. package/src/store/test/registry-selectors.js +431 -0
  396. package/src/store/test/selectors.js +14 -400
  397. package/src/store/utils.js +10 -33
  398. package/src/style.scss +0 -1
  399. package/src/utils/index.js +0 -1
  400. package/src/utils/math.js +12 -0
  401. package/src/utils/object.js +16 -0
  402. package/src/utils/transform-styles/index.js +52 -37
  403. package/tsconfig.tsbuildinfo +1 -1
  404. package/build/components/iframe/use-compatibility-styles.js +0 -100
  405. package/build/components/iframe/use-compatibility-styles.js.map +0 -1
  406. package/build/hooks/custom-fields.js +0 -106
  407. package/build/hooks/custom-fields.js.map +0 -1
  408. package/build/utils/block-variation-transforms.js +0 -42
  409. package/build/utils/block-variation-transforms.js.map +0 -1
  410. package/build-module/components/iframe/use-compatibility-styles.js +0 -94
  411. package/build-module/components/iframe/use-compatibility-styles.js.map +0 -1
  412. package/build-module/hooks/custom-fields.js +0 -99
  413. package/build-module/hooks/custom-fields.js.map +0 -1
  414. package/build-module/utils/block-variation-transforms.js +0 -35
  415. package/build-module/utils/block-variation-transforms.js.map +0 -1
  416. package/src/components/block-switcher/test/__snapshots__/index.js.snap +0 -116
  417. package/src/components/contrast-checker/style.scss +0 -3
  418. package/src/components/iframe/use-compatibility-styles.js +0 -122
  419. package/src/hooks/custom-fields.js +0 -115
  420. package/src/utils/block-variation-transforms.js +0 -38
  421. package/src/utils/test/block-variation-transforms.js +0 -94
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_components","_url","_icons","_dom","_viewerSlot","_useRichUrlData","LinkPreview","value","onEditClick","hasRichPreviews","hasUnlinkControl","onRemove","additionalControls","showRichPreviews","url","richData","isFetching","useRichUrlData","hasRichData","Object","keys","length","displayURL","filterURLForDisplay","safeDecodeURI","isEmptyURL","displayTitle","stripHTML","title","icon","_react","createElement","src","alt","Icon","info","size","globe","__","className","classnames","Fragment","Tooltip","text","placement","ExternalLink","href","Button","edit","label","onClick","iconSize","linkOff","ViewerSlot","fillProps","image","description","__experimentalText","truncate","numberOfLines"],"sources":["@wordpress/block-editor/src/components/link-control/link-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalText as Text,\n\tTooltip,\n} from '@wordpress/components';\nimport { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';\nimport { Icon, globe, info, linkOff, edit } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { ViewerSlot } from './viewer-slot';\n\nimport useRichUrlData from './use-rich-url-data';\n\nexport default function LinkPreview( {\n\tvalue,\n\tonEditClick,\n\thasRichPreviews = false,\n\thasUnlinkControl = false,\n\tonRemove,\n\tadditionalControls,\n} ) {\n\t// Avoid fetching if rich previews are not desired.\n\tconst showRichPreviews = hasRichPreviews ? value?.url : null;\n\n\tconst { richData, isFetching } = useRichUrlData( showRichPreviews );\n\n\t// Rich data may be an empty object so test for that.\n\tconst hasRichData = richData && Object.keys( richData ).length;\n\n\tconst displayURL =\n\t\t( value && filterURLForDisplay( safeDecodeURI( value.url ), 16 ) ) ||\n\t\t'';\n\n\t// url can be undefined if the href attribute is unset\n\tconst isEmptyURL = ! value?.url?.length;\n\n\tconst displayTitle =\n\t\t! isEmptyURL &&\n\t\tstripHTML( richData?.title || value?.title || displayURL );\n\n\tlet icon;\n\n\tif ( richData?.icon ) {\n\t\ticon = <img src={ richData?.icon } alt=\"\" />;\n\t} else if ( isEmptyURL ) {\n\t\ticon = <Icon icon={ info } size={ 32 } />;\n\t} else {\n\t\ticon = <Icon icon={ globe } />;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\taria-label={ __( 'Currently selected' ) }\n\t\t\tclassName={ classnames( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-current': true,\n\t\t\t\t'is-rich': hasRichData,\n\t\t\t\t'is-fetching': !! isFetching,\n\t\t\t\t'is-preview': true,\n\t\t\t\t'is-error': isEmptyURL,\n\t\t\t\t'is-url-title': displayTitle === displayURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div className=\"block-editor-link-control__search-item-top\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-link-control__search-item-icon',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-image': richData?.icon,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"block-editor-link-control__search-item-details\">\n\t\t\t\t\t\t{ ! isEmptyURL ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\t\ttext={ value.url }\n\t\t\t\t\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-title\"\n\t\t\t\t\t\t\t\t\t\thref={ value.url }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ displayTitle }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t</Tooltip>\n\n\t\t\t\t\t\t\t\t{ value?.url && displayTitle !== displayURL && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-info\">\n\t\t\t\t\t\t\t\t\t\t{ displayURL }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-error-notice\">\n\t\t\t\t\t\t\t\t{ __( 'Link is empty' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action\"\n\t\t\t\t\tonClick={ onEditClick }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t\t{ hasUnlinkControl && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Unlink' ) }\n\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action block-editor-link-control__unlink\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<ViewerSlot fillProps={ value } />\n\t\t\t</div>\n\n\t\t\t{ !! (\n\t\t\t\t( hasRichData &&\n\t\t\t\t\t( richData?.image || richData?.description ) ) ||\n\t\t\t\tisFetching\n\t\t\t) && (\n\t\t\t\t<div className=\"block-editor-link-control__search-item-bottom\">\n\t\t\t\t\t{ ( richData?.image || isFetching ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\taria-hidden={ ! richData?.image }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-link-control__search-item-image',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-placeholder': ! richData?.image,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ richData?.image && (\n\t\t\t\t\t\t\t\t<img src={ richData?.image } alt=\"\" />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ( richData?.description || isFetching ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\taria-hidden={ ! richData?.description }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-link-control__search-item-description',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-placeholder': ! richData?.description,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ richData?.description && (\n\t\t\t\t\t\t\t\t<Text truncate numberOfLines=\"2\">\n\t\t\t\t\t\t\t\t\t{ richData.description }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ additionalControls && additionalControls() }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_components","_compose","_url","_icons","_dom","_data","_notices","_viewerSlot","_useRichUrlData","LinkPreview","value","onEditClick","hasRichPreviews","hasUnlinkControl","onRemove","additionalControls","showRichPreviews","url","richData","isFetching","useRichUrlData","hasRichData","Object","keys","length","displayURL","filterURLForDisplay","safeDecodeURI","isEmptyURL","displayTitle","stripHTML","title","icon","_react","createElement","src","alt","Icon","info","size","globe","createNotice","useDispatch","noticesStore","ref","useCopyToClipboard","__","isDismissible","type","className","classnames","Fragment","Tooltip","text","ExternalLink","href","__experimentalTruncate","numberOfLines","Button","edit","label","onClick","linkOff","copy","disabled","ViewerSlot","fillProps"],"sources":["@wordpress/block-editor/src/components/link-control/link-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n\tTooltip,\n} from '@wordpress/components';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';\nimport { Icon, globe, info, linkOff, edit, copy } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { ViewerSlot } from './viewer-slot';\n\nimport useRichUrlData from './use-rich-url-data';\n\nexport default function LinkPreview( {\n\tvalue,\n\tonEditClick,\n\thasRichPreviews = false,\n\thasUnlinkControl = false,\n\tonRemove,\n\tadditionalControls,\n} ) {\n\t// Avoid fetching if rich previews are not desired.\n\tconst showRichPreviews = hasRichPreviews ? value?.url : null;\n\n\tconst { richData, isFetching } = useRichUrlData( showRichPreviews );\n\n\t// Rich data may be an empty object so test for that.\n\tconst hasRichData = richData && Object.keys( richData ).length;\n\n\tconst displayURL =\n\t\t( value && filterURLForDisplay( safeDecodeURI( value.url ), 24 ) ) ||\n\t\t'';\n\n\t// url can be undefined if the href attribute is unset\n\tconst isEmptyURL = ! value?.url?.length;\n\n\tconst displayTitle =\n\t\t! isEmptyURL &&\n\t\tstripHTML( richData?.title || value?.title || displayURL );\n\n\tlet icon;\n\n\tif ( richData?.icon ) {\n\t\ticon = <img src={ richData?.icon } alt=\"\" />;\n\t} else if ( isEmptyURL ) {\n\t\ticon = <Icon icon={ info } size={ 32 } />;\n\t} else {\n\t\ticon = <Icon icon={ globe } />;\n\t}\n\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( value.url, () => {\n\t\tcreateNotice( 'info', __( 'Copied URL to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\taria-label={ __( 'Currently selected' ) }\n\t\t\tclassName={ classnames( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-current': true,\n\t\t\t\t'is-rich': hasRichData,\n\t\t\t\t'is-fetching': !! isFetching,\n\t\t\t\t'is-preview': true,\n\t\t\t\t'is-error': isEmptyURL,\n\t\t\t\t'is-url-title': displayTitle === displayURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div className=\"block-editor-link-control__search-item-top\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-link-control__search-item-icon',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-image': richData?.icon,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"block-editor-link-control__search-item-details\">\n\t\t\t\t\t\t{ ! isEmptyURL ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Tooltip text={ value.url }>\n\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-title\"\n\t\t\t\t\t\t\t\t\t\thref={ value.url }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t\t{ displayTitle }\n\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t{ value?.url && displayTitle !== displayURL && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-info\">\n\t\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t\t{ displayURL }\n\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-error-notice\">\n\t\t\t\t\t\t\t\t{ __( 'Link is empty' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action\"\n\t\t\t\t\tonClick={ onEditClick }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t{ hasUnlinkControl && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Unlink' ) }\n\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action block-editor-link-control__unlink\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Button\n\t\t\t\t\ticon={ copy }\n\t\t\t\t\tlabel={ __( 'Copy URL' ) }\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action block-editor-link-control__copy\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tdisabled={ isEmptyURL }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t/>\n\t\t\t\t<ViewerSlot fillProps={ value } />\n\t\t\t</div>\n\t\t\t{ additionalControls && additionalControls() }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _react = require("react");
9
- var _classnames = _interopRequireDefault(require("classnames"));
10
9
  var _compose = require("@wordpress/compose");
11
10
  var _element = require("@wordpress/element");
12
11
  var _i18n = require("@wordpress/i18n");
@@ -14,10 +13,6 @@ var _ = require("../");
14
13
  var _searchResults = _interopRequireDefault(require("./search-results"));
15
14
  var _constants = require("./constants");
16
15
  var _useSearchHandler = _interopRequireDefault(require("./use-search-handler"));
17
- /**
18
- * External dependencies
19
- */
20
-
21
16
  /**
22
17
  * WordPress dependencies
23
18
  */
@@ -108,9 +103,6 @@ const LinkControlSearchInput = (0, _element.forwardRef)(({
108
103
  }, suggestion);
109
104
  }
110
105
  };
111
- const inputClasses = (0, _classnames.default)(className, {
112
- // 'has-no-label': ! hideLabelFromVision,
113
- });
114
106
  return (0, _react.createElement)("div", {
115
107
  className: "block-editor-link-control__search-input-container"
116
108
  }, (0, _react.createElement)(_.URLInput, {
@@ -118,7 +110,7 @@ const LinkControlSearchInput = (0, _element.forwardRef)(({
118
110
  __nextHasNoMarginBottom: true,
119
111
  label: (0, _i18n.__)('Link'),
120
112
  hideLabelFromVision: hideLabelFromVision,
121
- className: inputClasses,
113
+ className: className,
122
114
  value: value,
123
115
  onChange: onInputChange,
124
116
  placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : (0, _i18n.__)('Search or type url'),
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_element","_i18n","_","_searchResults","_constants","_useSearchHandler","noopSearchHandler","Promise","resolve","noop","LinkControlSearchInput","forwardRef","value","children","currentLink","className","placeholder","withCreateSuggestion","onCreateSuggestion","onChange","onSelect","showSuggestions","renderSuggestions","props","_react","createElement","default","fetchSuggestions","allowDirectEntry","showInitialSuggestions","suggestionsQuery","withURLSuggestion","createSuggestionButtonText","hideLabelFromVision","ref","genericSearchHandler","useSearchHandler","searchHandler","instanceId","useInstanceId","focusedSuggestion","setFocusedSuggestion","useState","onInputChange","selection","suggestion","handleRenderSuggestions","handleSuggestionClick","onSuggestionSelected","selectedSuggestion","CREATE_TYPE","type","title","url","e","Object","keys","length","id","restLinkProps","inputClasses","classnames","URLInput","disableSuggestions","__nextHasNoMarginBottom","label","__","__experimentalRenderSuggestions","__experimentalFetchLinkSuggestions","__experimentalHandleURLSuggestions","__experimentalShowInitialSuggestions","onSubmit","event","hasSuggestion","trim","preventDefault","_default","exports"],"sources":["@wordpress/block-editor/src/components/link-control/search-input.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { URLInput } from '../';\nimport LinkControlSearchResults from './search-results';\nimport { CREATE_TYPE } from './constants';\nimport useSearchHandler from './use-search-handler';\n\n// Must be a function as otherwise URLInput will default\n// to the fetchLinkSuggestions passed in block editor settings\n// which will cause an unintended http request.\nconst noopSearchHandler = () => Promise.resolve( [] );\n\nconst noop = () => {};\n\nconst LinkControlSearchInput = forwardRef(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tchildren,\n\t\t\tcurrentLink = {},\n\t\t\tclassName = null,\n\t\t\tplaceholder = null,\n\t\t\twithCreateSuggestion = false,\n\t\t\tonCreateSuggestion = noop,\n\t\t\tonChange = noop,\n\t\t\tonSelect = noop,\n\t\t\tshowSuggestions = true,\n\t\t\trenderSuggestions = ( props ) => (\n\t\t\t\t<LinkControlSearchResults { ...props } />\n\t\t\t),\n\t\t\tfetchSuggestions = null,\n\t\t\tallowDirectEntry = true,\n\t\t\tshowInitialSuggestions = false,\n\t\t\tsuggestionsQuery = {},\n\t\t\twithURLSuggestion = true,\n\t\t\tcreateSuggestionButtonText,\n\t\t\thideLabelFromVision = false,\n\t\t},\n\t\tref\n\t) => {\n\t\tconst genericSearchHandler = useSearchHandler(\n\t\t\tsuggestionsQuery,\n\t\t\tallowDirectEntry,\n\t\t\twithCreateSuggestion,\n\t\t\twithURLSuggestion\n\t\t);\n\n\t\tconst searchHandler = showSuggestions\n\t\t\t? fetchSuggestions || genericSearchHandler\n\t\t\t: noopSearchHandler;\n\n\t\tconst instanceId = useInstanceId( LinkControlSearchInput );\n\t\tconst [ focusedSuggestion, setFocusedSuggestion ] = useState();\n\n\t\t/**\n\t\t * Handles the user moving between different suggestions. Does not handle\n\t\t * choosing an individual item.\n\t\t *\n\t\t * @param {string} selection the url of the selected suggestion.\n\t\t * @param {Object} suggestion the suggestion object.\n\t\t */\n\t\tconst onInputChange = ( selection, suggestion ) => {\n\t\t\tonChange( selection );\n\t\t\tsetFocusedSuggestion( suggestion );\n\t\t};\n\n\t\tconst handleRenderSuggestions = ( props ) =>\n\t\t\trenderSuggestions( {\n\t\t\t\t...props,\n\t\t\t\tinstanceId,\n\t\t\t\twithCreateSuggestion,\n\t\t\t\tcreateSuggestionButtonText,\n\t\t\t\tsuggestionsQuery,\n\t\t\t\thandleSuggestionClick: ( suggestion ) => {\n\t\t\t\t\tif ( props.handleSuggestionClick ) {\n\t\t\t\t\t\tprops.handleSuggestionClick( suggestion );\n\t\t\t\t\t}\n\t\t\t\t\tonSuggestionSelected( suggestion );\n\t\t\t\t},\n\t\t\t} );\n\n\t\tconst onSuggestionSelected = async ( selectedSuggestion ) => {\n\t\t\tlet suggestion = selectedSuggestion;\n\t\t\tif ( CREATE_TYPE === selectedSuggestion.type ) {\n\t\t\t\t// Create a new page and call onSelect with the output from the onCreateSuggestion callback.\n\t\t\t\ttry {\n\t\t\t\t\tsuggestion = await onCreateSuggestion(\n\t\t\t\t\t\tselectedSuggestion.title\n\t\t\t\t\t);\n\t\t\t\t\tif ( suggestion?.url ) {\n\t\t\t\t\t\tonSelect( suggestion );\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tallowDirectEntry ||\n\t\t\t\t( suggestion && Object.keys( suggestion ).length >= 1 )\n\t\t\t) {\n\t\t\t\tconst { id, url, ...restLinkProps } = currentLink ?? {};\n\t\t\t\tonSelect(\n\t\t\t\t\t// Some direct entries don't have types or IDs, and we still need to clear the previous ones.\n\t\t\t\t\t{ ...restLinkProps, ...suggestion },\n\t\t\t\t\tsuggestion\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tconst inputClasses = classnames( className, {\n\t\t\t// 'has-no-label': ! hideLabelFromVision,\n\t\t} );\n\n\t\treturn (\n\t\t\t<div className=\"block-editor-link-control__search-input-container\">\n\t\t\t\t<URLInput\n\t\t\t\t\tdisableSuggestions={ currentLink?.url === value }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onInputChange }\n\t\t\t\t\tplaceholder={ placeholder ?? __( 'Search or type url' ) }\n\t\t\t\t\t__experimentalRenderSuggestions={\n\t\t\t\t\t\tshowSuggestions ? handleRenderSuggestions : null\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalFetchLinkSuggestions={ searchHandler }\n\t\t\t\t\t__experimentalHandleURLSuggestions={ true }\n\t\t\t\t\t__experimentalShowInitialSuggestions={\n\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t}\n\t\t\t\t\tonSubmit={ ( suggestion, event ) => {\n\t\t\t\t\t\tconst hasSuggestion = suggestion || focusedSuggestion;\n\n\t\t\t\t\t\t// If there is no suggestion and the value (ie: any manually entered URL) is empty\n\t\t\t\t\t\t// then don't allow submission otherwise we get empty links.\n\t\t\t\t\t\tif ( ! hasSuggestion && ! value?.trim()?.length ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonSuggestionSelected(\n\t\t\t\t\t\t\t\thasSuggestion || { url: value }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tref={ ref }\n\t\t\t\t/>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nexport default LinkControlSearchInput;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_compose","require","_element","_i18n","_","_searchResults","_interopRequireDefault","_constants","_useSearchHandler","noopSearchHandler","Promise","resolve","noop","LinkControlSearchInput","forwardRef","value","children","currentLink","className","placeholder","withCreateSuggestion","onCreateSuggestion","onChange","onSelect","showSuggestions","renderSuggestions","props","_react","createElement","default","fetchSuggestions","allowDirectEntry","showInitialSuggestions","suggestionsQuery","withURLSuggestion","createSuggestionButtonText","hideLabelFromVision","ref","genericSearchHandler","useSearchHandler","searchHandler","instanceId","useInstanceId","focusedSuggestion","setFocusedSuggestion","useState","onInputChange","selection","suggestion","handleRenderSuggestions","handleSuggestionClick","onSuggestionSelected","selectedSuggestion","CREATE_TYPE","type","title","url","e","Object","keys","length","id","restLinkProps","URLInput","disableSuggestions","__nextHasNoMarginBottom","label","__","__experimentalRenderSuggestions","__experimentalFetchLinkSuggestions","__experimentalHandleURLSuggestions","__experimentalShowInitialSuggestions","onSubmit","event","hasSuggestion","trim","preventDefault","_default","exports"],"sources":["@wordpress/block-editor/src/components/link-control/search-input.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { URLInput } from '../';\nimport LinkControlSearchResults from './search-results';\nimport { CREATE_TYPE } from './constants';\nimport useSearchHandler from './use-search-handler';\n\n// Must be a function as otherwise URLInput will default\n// to the fetchLinkSuggestions passed in block editor settings\n// which will cause an unintended http request.\nconst noopSearchHandler = () => Promise.resolve( [] );\n\nconst noop = () => {};\n\nconst LinkControlSearchInput = forwardRef(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tchildren,\n\t\t\tcurrentLink = {},\n\t\t\tclassName = null,\n\t\t\tplaceholder = null,\n\t\t\twithCreateSuggestion = false,\n\t\t\tonCreateSuggestion = noop,\n\t\t\tonChange = noop,\n\t\t\tonSelect = noop,\n\t\t\tshowSuggestions = true,\n\t\t\trenderSuggestions = ( props ) => (\n\t\t\t\t<LinkControlSearchResults { ...props } />\n\t\t\t),\n\t\t\tfetchSuggestions = null,\n\t\t\tallowDirectEntry = true,\n\t\t\tshowInitialSuggestions = false,\n\t\t\tsuggestionsQuery = {},\n\t\t\twithURLSuggestion = true,\n\t\t\tcreateSuggestionButtonText,\n\t\t\thideLabelFromVision = false,\n\t\t},\n\t\tref\n\t) => {\n\t\tconst genericSearchHandler = useSearchHandler(\n\t\t\tsuggestionsQuery,\n\t\t\tallowDirectEntry,\n\t\t\twithCreateSuggestion,\n\t\t\twithURLSuggestion\n\t\t);\n\n\t\tconst searchHandler = showSuggestions\n\t\t\t? fetchSuggestions || genericSearchHandler\n\t\t\t: noopSearchHandler;\n\n\t\tconst instanceId = useInstanceId( LinkControlSearchInput );\n\t\tconst [ focusedSuggestion, setFocusedSuggestion ] = useState();\n\n\t\t/**\n\t\t * Handles the user moving between different suggestions. Does not handle\n\t\t * choosing an individual item.\n\t\t *\n\t\t * @param {string} selection the url of the selected suggestion.\n\t\t * @param {Object} suggestion the suggestion object.\n\t\t */\n\t\tconst onInputChange = ( selection, suggestion ) => {\n\t\t\tonChange( selection );\n\t\t\tsetFocusedSuggestion( suggestion );\n\t\t};\n\n\t\tconst handleRenderSuggestions = ( props ) =>\n\t\t\trenderSuggestions( {\n\t\t\t\t...props,\n\t\t\t\tinstanceId,\n\t\t\t\twithCreateSuggestion,\n\t\t\t\tcreateSuggestionButtonText,\n\t\t\t\tsuggestionsQuery,\n\t\t\t\thandleSuggestionClick: ( suggestion ) => {\n\t\t\t\t\tif ( props.handleSuggestionClick ) {\n\t\t\t\t\t\tprops.handleSuggestionClick( suggestion );\n\t\t\t\t\t}\n\t\t\t\t\tonSuggestionSelected( suggestion );\n\t\t\t\t},\n\t\t\t} );\n\n\t\tconst onSuggestionSelected = async ( selectedSuggestion ) => {\n\t\t\tlet suggestion = selectedSuggestion;\n\t\t\tif ( CREATE_TYPE === selectedSuggestion.type ) {\n\t\t\t\t// Create a new page and call onSelect with the output from the onCreateSuggestion callback.\n\t\t\t\ttry {\n\t\t\t\t\tsuggestion = await onCreateSuggestion(\n\t\t\t\t\t\tselectedSuggestion.title\n\t\t\t\t\t);\n\t\t\t\t\tif ( suggestion?.url ) {\n\t\t\t\t\t\tonSelect( suggestion );\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tallowDirectEntry ||\n\t\t\t\t( suggestion && Object.keys( suggestion ).length >= 1 )\n\t\t\t) {\n\t\t\t\tconst { id, url, ...restLinkProps } = currentLink ?? {};\n\t\t\t\tonSelect(\n\t\t\t\t\t// Some direct entries don't have types or IDs, and we still need to clear the previous ones.\n\t\t\t\t\t{ ...restLinkProps, ...suggestion },\n\t\t\t\t\tsuggestion\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<div className=\"block-editor-link-control__search-input-container\">\n\t\t\t\t<URLInput\n\t\t\t\t\tdisableSuggestions={ currentLink?.url === value }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onInputChange }\n\t\t\t\t\tplaceholder={ placeholder ?? __( 'Search or type url' ) }\n\t\t\t\t\t__experimentalRenderSuggestions={\n\t\t\t\t\t\tshowSuggestions ? handleRenderSuggestions : null\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalFetchLinkSuggestions={ searchHandler }\n\t\t\t\t\t__experimentalHandleURLSuggestions={ true }\n\t\t\t\t\t__experimentalShowInitialSuggestions={\n\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t}\n\t\t\t\t\tonSubmit={ ( suggestion, event ) => {\n\t\t\t\t\t\tconst hasSuggestion = suggestion || focusedSuggestion;\n\n\t\t\t\t\t\t// If there is no suggestion and the value (ie: any manually entered URL) is empty\n\t\t\t\t\t\t// then don't allow submission otherwise we get empty links.\n\t\t\t\t\t\tif ( ! hasSuggestion && ! value?.trim()?.length ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonSuggestionSelected(\n\t\t\t\t\t\t\t\thasSuggestion || { url: value }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tref={ ref }\n\t\t\t\t/>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nexport default LinkControlSearchInput;\n"],"mappings":"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"}
@@ -73,7 +73,9 @@ const ListViewBlockContents = (0, _element.forwardRef)(({
73
73
  insertedBlock: insertedBlock,
74
74
  setInsertedBlock: setInsertedBlock
75
75
  }), (0, _react.createElement)(_blockDraggable.default, {
76
- clientIds: draggableClientIds
76
+ appendToOwnerDocument: true,
77
+ clientIds: draggableClientIds,
78
+ cloneClassname: 'block-editor-list-view-draggable-chip'
77
79
  }, ({
78
80
  draggable,
79
81
  onDragStart,
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_element","_blockSelectButton","_blockDraggable","_store","_context","ListViewBlockContents","forwardRef","onClick","onToggleExpanded","block","isSelected","position","siblingBlockCount","level","isExpanded","selectedClientIds","props","ref","clientId","blockMovingClientId","selectedBlockInBlockEditor","useSelect","select","hasBlockMovingClientId","getSelectedBlockClientId","blockEditorStore","AdditionalBlockContent","insertedBlock","setInsertedBlock","useListViewContext","isBlockMoveTarget","className","classnames","draggableClientIds","includes","_react","createElement","Fragment","default","clientIds","draggable","onDragStart","onDragEnd","_default","exports"],"sources":["@wordpress/block-editor/src/components/list-view/block-contents.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlockSelectButton from './block-select-button';\nimport BlockDraggable from '../block-draggable';\nimport { store as blockEditorStore } from '../../store';\nimport { useListViewContext } from './context';\n\nconst ListViewBlockContents = forwardRef(\n\t(\n\t\t{\n\t\t\tonClick,\n\t\t\tonToggleExpanded,\n\t\t\tblock,\n\t\t\tisSelected,\n\t\t\tposition,\n\t\t\tsiblingBlockCount,\n\t\t\tlevel,\n\t\t\tisExpanded,\n\t\t\tselectedClientIds,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst { clientId } = block;\n\n\t\tconst { blockMovingClientId, selectedBlockInBlockEditor } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { hasBlockMovingClientId, getSelectedBlockClientId } =\n\t\t\t\t\tselect( blockEditorStore );\n\t\t\t\treturn {\n\t\t\t\t\tblockMovingClientId: hasBlockMovingClientId(),\n\t\t\t\t\tselectedBlockInBlockEditor: getSelectedBlockClientId(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[]\n\t\t);\n\n\t\tconst { AdditionalBlockContent, insertedBlock, setInsertedBlock } =\n\t\t\tuseListViewContext();\n\n\t\tconst isBlockMoveTarget =\n\t\t\tblockMovingClientId && selectedBlockInBlockEditor === clientId;\n\n\t\tconst className = classnames( 'block-editor-list-view-block-contents', {\n\t\t\t'is-dropping-before': isBlockMoveTarget,\n\t\t} );\n\n\t\t// Only include all selected blocks if the currently clicked on block\n\t\t// is one of the selected blocks. This ensures that if a user attempts\n\t\t// to drag a block that isn't part of the selection, they're still able\n\t\t// to drag it and rearrange its position.\n\t\tconst draggableClientIds = selectedClientIds.includes( clientId )\n\t\t\t? selectedClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ AdditionalBlockContent && (\n\t\t\t\t\t<AdditionalBlockContent\n\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\tinsertedBlock={ insertedBlock }\n\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<BlockDraggable clientIds={ draggableClientIds }>\n\t\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t\t<ListViewBlockSelectButton\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\tonToggleExpanded={ onToggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport default ListViewBlockContents;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,kBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAMA,MAAMO,qBAAqB,GAAG,IAAAC,mBAAU,EACvC,CACC;EACCC,OAAO;EACPC,gBAAgB;EAChBC,KAAK;EACLC,UAAU;EACVC,QAAQ;EACRC,iBAAiB;EACjBC,KAAK;EACLC,UAAU;EACVC,iBAAiB;EACjB,GAAGC;AACJ,CAAC,EACDC,GAAG,KACC;EACJ,MAAM;IAAEC;EAAS,CAAC,GAAGT,KAAK;EAE1B,MAAM;IAAEU,mBAAmB;IAAEC;EAA2B,CAAC,GAAG,IAAAC,eAAS,EAClEC,MAAM,IAAM;IACb,MAAM;MAAEC,sBAAsB;MAAEC;IAAyB,CAAC,GACzDF,MAAM,CAAEG,YAAiB,CAAC;IAC3B,OAAO;MACNN,mBAAmB,EAAEI,sBAAsB,CAAC,CAAC;MAC7CH,0BAA0B,EAAEI,wBAAwB,CAAC;IACtD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAM;IAAEE,sBAAsB;IAAEC,aAAa;IAAEC;EAAiB,CAAC,GAChE,IAAAC,2BAAkB,EAAC,CAAC;EAErB,MAAMC,iBAAiB,GACtBX,mBAAmB,IAAIC,0BAA0B,KAAKF,QAAQ;EAE/D,MAAMa,SAAS,GAAG,IAAAC,mBAAU,EAAE,uCAAuC,EAAE;IACtE,oBAAoB,EAAEF;EACvB,CAAE,CAAC;;EAEH;EACA;EACA;EACA;EACA,MAAMG,kBAAkB,GAAGlB,iBAAiB,CAACmB,QAAQ,CAAEhB,QAAS,CAAC,GAC9DH,iBAAiB,GACjB,CAAEG,QAAQ,CAAE;EAEf,OACC,IAAAiB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACGX,sBAAsB,IACvB,IAAAS,MAAA,CAAAC,aAAA,EAACV,sBAAsB;IACtBjB,KAAK,EAAGA,KAAO;IACfkB,aAAa,EAAGA,aAAe;IAC/BC,gBAAgB,EAAGA;EAAkB,CACrC,CACD,EACD,IAAAO,MAAA,CAAAC,aAAA,EAAClC,eAAA,CAAAoC,OAAc;IAACC,SAAS,EAAGN;EAAoB,GAC7C,CAAE;IAAEO,SAAS;IAAEC,WAAW;IAAEC;EAAU,CAAC,KACxC,IAAAP,MAAA,CAAAC,aAAA,EAACnC,kBAAA,CAAAqC,OAAyB;IACzBrB,GAAG,EAAGA,GAAK;IACXc,SAAS,EAAGA,SAAW;IACvBtB,KAAK,EAAGA,KAAO;IACfF,OAAO,EAAGA,OAAS;IACnBC,gBAAgB,EAAGA,gBAAkB;IACrCE,UAAU,EAAGA,UAAY;IACzBC,QAAQ,EAAGA,QAAU;IACrBC,iBAAiB,EAAGA,iBAAmB;IACvCC,KAAK,EAAGA,KAAO;IACf2B,SAAS,EAAGA,SAAW;IACvBC,WAAW,EAAGA,WAAa;IAC3BC,SAAS,EAAGA,SAAW;IACvB5B,UAAU,EAAGA,UAAY;IAAA,GACpBE;EAAK,CACV,CAEa,CACf,CAAC;AAEL,CACD,CAAC;AAAC,IAAA2B,QAAA,GAEatC,qBAAqB;AAAAuC,OAAA,CAAAN,OAAA,GAAAK,QAAA"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_element","_blockSelectButton","_blockDraggable","_store","_context","ListViewBlockContents","forwardRef","onClick","onToggleExpanded","block","isSelected","position","siblingBlockCount","level","isExpanded","selectedClientIds","props","ref","clientId","blockMovingClientId","selectedBlockInBlockEditor","useSelect","select","hasBlockMovingClientId","getSelectedBlockClientId","blockEditorStore","AdditionalBlockContent","insertedBlock","setInsertedBlock","useListViewContext","isBlockMoveTarget","className","classnames","draggableClientIds","includes","_react","createElement","Fragment","default","appendToOwnerDocument","clientIds","cloneClassname","draggable","onDragStart","onDragEnd","_default","exports"],"sources":["@wordpress/block-editor/src/components/list-view/block-contents.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlockSelectButton from './block-select-button';\nimport BlockDraggable from '../block-draggable';\nimport { store as blockEditorStore } from '../../store';\nimport { useListViewContext } from './context';\n\nconst ListViewBlockContents = forwardRef(\n\t(\n\t\t{\n\t\t\tonClick,\n\t\t\tonToggleExpanded,\n\t\t\tblock,\n\t\t\tisSelected,\n\t\t\tposition,\n\t\t\tsiblingBlockCount,\n\t\t\tlevel,\n\t\t\tisExpanded,\n\t\t\tselectedClientIds,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst { clientId } = block;\n\n\t\tconst { blockMovingClientId, selectedBlockInBlockEditor } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { hasBlockMovingClientId, getSelectedBlockClientId } =\n\t\t\t\t\tselect( blockEditorStore );\n\t\t\t\treturn {\n\t\t\t\t\tblockMovingClientId: hasBlockMovingClientId(),\n\t\t\t\t\tselectedBlockInBlockEditor: getSelectedBlockClientId(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[]\n\t\t);\n\n\t\tconst { AdditionalBlockContent, insertedBlock, setInsertedBlock } =\n\t\t\tuseListViewContext();\n\n\t\tconst isBlockMoveTarget =\n\t\t\tblockMovingClientId && selectedBlockInBlockEditor === clientId;\n\n\t\tconst className = classnames( 'block-editor-list-view-block-contents', {\n\t\t\t'is-dropping-before': isBlockMoveTarget,\n\t\t} );\n\n\t\t// Only include all selected blocks if the currently clicked on block\n\t\t// is one of the selected blocks. This ensures that if a user attempts\n\t\t// to drag a block that isn't part of the selection, they're still able\n\t\t// to drag it and rearrange its position.\n\t\tconst draggableClientIds = selectedClientIds.includes( clientId )\n\t\t\t? selectedClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ AdditionalBlockContent && (\n\t\t\t\t\t<AdditionalBlockContent\n\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\tinsertedBlock={ insertedBlock }\n\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<BlockDraggable\n\t\t\t\t\tappendToOwnerDocument\n\t\t\t\t\tclientIds={ draggableClientIds }\n\t\t\t\t\tcloneClassname={ 'block-editor-list-view-draggable-chip' }\n\t\t\t\t>\n\t\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t\t<ListViewBlockSelectButton\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\tonToggleExpanded={ onToggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport default ListViewBlockContents;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,kBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAMA,MAAMO,qBAAqB,GAAG,IAAAC,mBAAU,EACvC,CACC;EACCC,OAAO;EACPC,gBAAgB;EAChBC,KAAK;EACLC,UAAU;EACVC,QAAQ;EACRC,iBAAiB;EACjBC,KAAK;EACLC,UAAU;EACVC,iBAAiB;EACjB,GAAGC;AACJ,CAAC,EACDC,GAAG,KACC;EACJ,MAAM;IAAEC;EAAS,CAAC,GAAGT,KAAK;EAE1B,MAAM;IAAEU,mBAAmB;IAAEC;EAA2B,CAAC,GAAG,IAAAC,eAAS,EAClEC,MAAM,IAAM;IACb,MAAM;MAAEC,sBAAsB;MAAEC;IAAyB,CAAC,GACzDF,MAAM,CAAEG,YAAiB,CAAC;IAC3B,OAAO;MACNN,mBAAmB,EAAEI,sBAAsB,CAAC,CAAC;MAC7CH,0BAA0B,EAAEI,wBAAwB,CAAC;IACtD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAM;IAAEE,sBAAsB;IAAEC,aAAa;IAAEC;EAAiB,CAAC,GAChE,IAAAC,2BAAkB,EAAC,CAAC;EAErB,MAAMC,iBAAiB,GACtBX,mBAAmB,IAAIC,0BAA0B,KAAKF,QAAQ;EAE/D,MAAMa,SAAS,GAAG,IAAAC,mBAAU,EAAE,uCAAuC,EAAE;IACtE,oBAAoB,EAAEF;EACvB,CAAE,CAAC;;EAEH;EACA;EACA;EACA;EACA,MAAMG,kBAAkB,GAAGlB,iBAAiB,CAACmB,QAAQ,CAAEhB,QAAS,CAAC,GAC9DH,iBAAiB,GACjB,CAAEG,QAAQ,CAAE;EAEf,OACC,IAAAiB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACGX,sBAAsB,IACvB,IAAAS,MAAA,CAAAC,aAAA,EAACV,sBAAsB;IACtBjB,KAAK,EAAGA,KAAO;IACfkB,aAAa,EAAGA,aAAe;IAC/BC,gBAAgB,EAAGA;EAAkB,CACrC,CACD,EACD,IAAAO,MAAA,CAAAC,aAAA,EAAClC,eAAA,CAAAoC,OAAc;IACdC,qBAAqB;IACrBC,SAAS,EAAGP,kBAAoB;IAChCQ,cAAc,EAAG;EAAyC,GAExD,CAAE;IAAEC,SAAS;IAAEC,WAAW;IAAEC;EAAU,CAAC,KACxC,IAAAT,MAAA,CAAAC,aAAA,EAACnC,kBAAA,CAAAqC,OAAyB;IACzBrB,GAAG,EAAGA,GAAK;IACXc,SAAS,EAAGA,SAAW;IACvBtB,KAAK,EAAGA,KAAO;IACfF,OAAO,EAAGA,OAAS;IACnBC,gBAAgB,EAAGA,gBAAkB;IACrCE,UAAU,EAAGA,UAAY;IACzBC,QAAQ,EAAGA,QAAU;IACrBC,iBAAiB,EAAGA,iBAAmB;IACvCC,KAAK,EAAGA,KAAO;IACf6B,SAAS,EAAGA,SAAW;IACvBC,WAAW,EAAGA,WAAa;IAC3BC,SAAS,EAAGA,SAAW;IACvB9B,UAAU,EAAGA,UAAY;IAAA,GACpBE;EAAK,CACV,CAEa,CACf,CAAC;AAEL,CACD,CAAC;AAAC,IAAA6B,QAAA,GAEaxC,qBAAqB;AAAAyC,OAAA,CAAAR,OAAA,GAAAO,QAAA"}
@@ -41,7 +41,10 @@ function ListViewBlock({
41
41
  block: {
42
42
  clientId
43
43
  },
44
+ displacement,
45
+ isAfterDraggedBlocks,
44
46
  isDragged,
47
+ isNesting,
45
48
  isSelected,
46
49
  isBranchSelected,
47
50
  selectBlock,
@@ -216,7 +219,12 @@ function ListViewBlock({
216
219
  'is-dragging': isDragged,
217
220
  'has-single-cell': !showBlockActions,
218
221
  'is-synced': blockInformation?.isSynced,
219
- 'is-draggable': canMove
222
+ 'is-draggable': canMove,
223
+ 'is-displacement-normal': displacement === 'normal',
224
+ 'is-displacement-up': displacement === 'up',
225
+ 'is-displacement-down': displacement === 'down',
226
+ 'is-after-dragged-blocks': isAfterDraggedBlocks,
227
+ 'is-nesting': isNesting
220
228
  });
221
229
 
222
230
  // Only include all selected blocks if the currently clicked on block
@@ -238,6 +246,7 @@ function ListViewBlock({
238
246
  const currentlyEditingBlockInCanvas = isSelected && selectedClientIds.length === 1;
239
247
  return (0, _react.createElement)(_leaf.default, {
240
248
  className: classes,
249
+ isDragged: isDragged,
241
250
  onKeyDown: onKeyDown,
242
251
  onMouseEnter: onMouseEnter,
243
252
  onMouseLeave: onMouseLeave,
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_compose","_icons","_element","_data","_i18n","_keycodes","_leaf","_useListViewScrollIntoView","_button","_blockContents","_context","_utils","_store","_useBlockDisplayInformation","_blockLock","_ariaReferencedText","ListViewBlock","block","clientId","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","useRef","rowRef","settingsRef","isHovered","setIsHovered","useState","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","useBlockLock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","useDispatch","blockEditorStore","blockInformation","useBlockDisplayInformation","blockTitle","name","title","__","blockName","blockEditingMode","useSelect","select","getBlock","getBlockName","getBlockEditingMode","allowRightClickOverrides","getSettings","showBlockActions","hasBlockSupport","instanceId","useInstanceId","descriptionId","blockPositionDescription","getBlockPositionDescription","blockAriaLabel","sprintf","settingsAriaLabel","expand","collapse","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","useListViewContext","hasSiblings","hasRenderedMovers","moverCellClassName","classnames","listViewBlockSettingsClassName","onKeyDown","event","keyCode","ESCAPE","defaultPrevented","stopPropagation","preventDefault","undefined","onMouseEnter","useCallback","onMouseLeave","selectEditorBlock","updateFocusAndSelection","focusClientId","shouldSelectBlock","focusListItem","toggleExpanded","onContextMenu","current","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","useMemo","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","colSpan","classes","isSynced","dropdownClientIds","includes","useListViewScrollIntoView","rowItemRef","currentlyEditingBlockInCanvas","_react","createElement","default","className","onFocus","onBlur","id","ref","__experimentalTreeGridCell","tabIndex","onClick","onToggleExpanded","ariaLabel","ariaDescribedBy","Fragment","withoutGridItem","__experimentalTreeGridItem","BlockMoverUpButton","orientation","clientIds","BlockMoverDownButton","icon","moreVertical","label","popoverProps","anchor","toggleProps","disableOpenOnArrowDown","__experimentalSelectBlock","_default","memo","exports"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription, focusListItem } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle =\n\t\tblockInformation?.name || blockInformation?.title || __( 'Untitled' );\n\n\tconst { block, blockName, blockEditingMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst allowRightClickOverrides = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().allowRightClickOverrides,\n\t\t[]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true ) &&\n\t\t// Don't show the settings menu if block is disabled or content only.\n\t\tblockEditingMode === 'default';\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockAriaLabel = isLocked\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t__( '%s (locked)' ),\n\t\t\t\tblockTitle\n\t\t )\n\t\t: blockTitle;\n\n\tconst settingsAriaLabel = sprintf(\n\t\t// translators: %s: The title of the block.\n\t\t__( 'Options for %s' ),\n\t\tblockTitle\n\t);\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\t// If multiple blocks are selected, deselect all blocks when the user\n\t// presses the escape key.\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t}\n\t};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaLabel={ blockAriaLabel }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t\tupdateFocusAndSelection={ updateFocusAndSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_blocks","_components","_compose","_icons","_element","_data","_i18n","_keycodes","_leaf","_useListViewScrollIntoView","_button","_blockContents","_context","_utils","_store","_useBlockDisplayInformation","_blockLock","_ariaReferencedText","ListViewBlock","block","clientId","displacement","isAfterDraggedBlocks","isDragged","isNesting","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","useRef","rowRef","settingsRef","isHovered","setIsHovered","useState","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","useBlockLock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","useDispatch","blockEditorStore","blockInformation","useBlockDisplayInformation","blockTitle","name","title","__","blockName","blockEditingMode","useSelect","select","getBlock","getBlockName","getBlockEditingMode","allowRightClickOverrides","getSettings","showBlockActions","hasBlockSupport","instanceId","useInstanceId","descriptionId","blockPositionDescription","getBlockPositionDescription","blockAriaLabel","sprintf","settingsAriaLabel","expand","collapse","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","useListViewContext","hasSiblings","hasRenderedMovers","moverCellClassName","classnames","listViewBlockSettingsClassName","onKeyDown","event","keyCode","ESCAPE","defaultPrevented","stopPropagation","preventDefault","undefined","onMouseEnter","useCallback","onMouseLeave","selectEditorBlock","updateFocusAndSelection","focusClientId","shouldSelectBlock","focusListItem","toggleExpanded","onContextMenu","current","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","useMemo","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","colSpan","classes","isSynced","dropdownClientIds","includes","useListViewScrollIntoView","rowItemRef","currentlyEditingBlockInCanvas","_react","createElement","default","className","onFocus","onBlur","id","ref","__experimentalTreeGridCell","tabIndex","onClick","onToggleExpanded","ariaLabel","ariaDescribedBy","Fragment","withoutGridItem","__experimentalTreeGridItem","BlockMoverUpButton","orientation","clientIds","BlockMoverDownButton","icon","moreVertical","label","popoverProps","anchor","toggleProps","disableOpenOnArrowDown","__experimentalSelectBlock","_default","memo","exports"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport { getBlockPositionDescription, focusListItem } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tdisplacement,\n\tisAfterDraggedBlocks,\n\tisDragged,\n\tisNesting,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle =\n\t\tblockInformation?.name || blockInformation?.title || __( 'Untitled' );\n\n\tconst { block, blockName, blockEditingMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getBlockEditingMode } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst allowRightClickOverrides = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().allowRightClickOverrides,\n\t\t[]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true ) &&\n\t\t// Don't show the settings menu if block is disabled or content only.\n\t\tblockEditingMode === 'default';\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockAriaLabel = isLocked\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block. This string indicates a link to select the locked block.\n\t\t\t\t__( '%s (locked)' ),\n\t\t\t\tblockTitle\n\t\t )\n\t\t: blockTitle;\n\n\tconst settingsAriaLabel = sprintf(\n\t\t// translators: %s: The title of the block.\n\t\t__( 'Options for %s' ),\n\t\tblockTitle\n\t);\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\t// If multiple blocks are selected, deselect all blocks when the user\n\t// presses the escape key.\n\tconst onKeyDown = ( event ) => {\n\t\tif (\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t}\n\t};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t\t'is-displacement-normal': displacement === 'normal',\n\t\t'is-displacement-up': displacement === 'up',\n\t\t'is-displacement-down': displacement === 'down',\n\t\t'is-after-dragged-blocks': isAfterDraggedBlocks,\n\t\t'is-nesting': isNesting,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tisDragged={ isDragged }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaLabel={ blockAriaLabel }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t\tupdateFocusAndSelection={ updateFocusAndSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ blockPositionDescription }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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"}
@@ -69,7 +69,6 @@ function ListViewBranch(props) {
69
69
  selectedClientIds,
70
70
  level = 1,
71
71
  path = '',
72
- isBranchDragged = false,
73
72
  isBranchSelected = false,
74
73
  listPosition = 0,
75
74
  fixedListWindow,
@@ -88,6 +87,10 @@ function ListViewBranch(props) {
88
87
  return select(_store.store).canEditBlock(parentId);
89
88
  }, [parentId]);
90
89
  const {
90
+ blockDropPosition,
91
+ blockDropTargetIndex,
92
+ firstDraggedBlockIndex,
93
+ blockIndexes,
91
94
  expandedState,
92
95
  draggedClientIds
93
96
  } = (0, _context.useListViewContext)();
@@ -111,6 +114,23 @@ function ListViewBranch(props) {
111
114
  if (index > 0) {
112
115
  nextPosition += countBlocks(filteredBlocks[index - 1], expandedState, draggedClientIds, isExpanded);
113
116
  }
117
+ const isDragged = !!draggedClientIds?.includes(clientId);
118
+
119
+ // Determine the displacement of the block while dragging. This
120
+ // works out whether the current block should be displaced up or
121
+ // down, relative to the dragged blocks and the drop target.
122
+ const {
123
+ displacement,
124
+ isAfterDraggedBlocks,
125
+ isNesting
126
+ } = (0, _utils.getDragDisplacementValues)({
127
+ blockIndexes,
128
+ blockDropTargetIndex,
129
+ blockDropPosition,
130
+ clientId,
131
+ firstDraggedBlockIndex,
132
+ isDragged
133
+ });
114
134
  const {
115
135
  itemInView
116
136
  } = fixedListWindow;
@@ -119,7 +139,6 @@ function ListViewBranch(props) {
119
139
  const updatedPath = path.length > 0 ? `${path}_${position}` : `${position}`;
120
140
  const hasNestedBlocks = !!innerBlocks?.length;
121
141
  const shouldExpand = hasNestedBlocks && shouldShowInnerBlocks ? (_expandedState$client = expandedState[clientId]) !== null && _expandedState$client !== void 0 ? _expandedState$client : isExpanded : undefined;
122
- const isDragged = !!draggedClientIds?.includes(clientId);
123
142
 
124
143
  // Make updates to the selected or dragged blocks synchronous,
125
144
  // but asynchronous for any other block.
@@ -132,7 +151,7 @@ function ListViewBranch(props) {
132
151
  // This prevents the entire tree from being rendered when a branch is
133
152
  // selected, or a user selects all blocks, while still enabling scroll
134
153
  // into view behavior when selecting a block or opening the list view.
135
- const showBlock = isDragged || blockInView || isBranchDragged || isSelected && clientId === selectedClientIds[0];
154
+ const showBlock = isDragged || blockInView || isSelected && clientId === selectedClientIds[0];
136
155
  return (0, _react.createElement)(_data.AsyncModeProvider, {
137
156
  key: clientId,
138
157
  value: !isSelected
@@ -141,20 +160,23 @@ function ListViewBranch(props) {
141
160
  selectBlock: selectBlock,
142
161
  isSelected: isSelected,
143
162
  isBranchSelected: isSelectedBranch,
144
- isDragged: isDragged || isBranchDragged,
163
+ isDragged: isDragged,
145
164
  level: level,
146
165
  position: position,
147
166
  rowCount: rowCount,
148
167
  siblingBlockCount: blockCount,
149
168
  showBlockMovers: showBlockMovers,
150
169
  path: updatedPath,
151
- isExpanded: shouldExpand,
170
+ isExpanded: isDragged ? false : shouldExpand,
152
171
  listPosition: nextPosition,
153
172
  selectedClientIds: selectedClientIds,
154
- isSyncedBranch: syncedBranch
173
+ isSyncedBranch: syncedBranch,
174
+ displacement: displacement,
175
+ isAfterDraggedBlocks: isAfterDraggedBlocks,
176
+ isNesting: isNesting
155
177
  }), !showBlock && (0, _react.createElement)("tr", null, (0, _react.createElement)("td", {
156
178
  className: "block-editor-list-view-placeholder"
157
- })), hasNestedBlocks && shouldExpand && (0, _react.createElement)(ListViewBranch, {
179
+ })), hasNestedBlocks && shouldExpand && !isDragged && (0, _react.createElement)(ListViewBranch, {
158
180
  parentId: clientId,
159
181
  blocks: innerBlocks,
160
182
  selectBlock: selectBlock,
@@ -164,7 +186,6 @@ function ListViewBranch(props) {
164
186
  listPosition: nextPosition + 1,
165
187
  fixedListWindow: fixedListWindow,
166
188
  isBranchSelected: isSelectedBranch,
167
- isBranchDragged: isDragged || isBranchDragged,
168
189
  selectedClientIds: selectedClientIds,
169
190
  isExpanded: isExpanded,
170
191
  isSyncedBranch: syncedBranch
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_data","_appender","_block","_interopRequireDefault","_context","_utils","_store","_useBlockDisplayInformation","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","_expandedState$block$","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","_expandedState$block$2","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchDragged","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","isSyncedBranch","showAppender","showAppenderProp","parentBlockInformation","useBlockDisplayInformation","syncedBranch","isSynced","canParentExpand","useSelect","select","blockEditorStore","canEditBlock","useListViewContext","filteredBlocks","filter","Boolean","blockCount","rowCount","nextPosition","_react","createElement","Fragment","map","index","_expandedState$client","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","isSelected","isClientIdSelected","isSelectedBranch","showBlock","AsyncModeProvider","key","value","default","siblingBlockCount","className","__experimentalTreeGridRow","setSize","positionInSet","__experimentalTreeGridCell","treeGridCellProps","Appender","nestingLevel","_default","memo","exports"],"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { Appender } from './appender';\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchDragged = false,\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t\tisSyncedBranch = false,\n\t\tshowAppender: showAppenderProp = true,\n\t} = props;\n\n\tconst parentBlockInformation = useBlockDisplayInformation( parentId );\n\tconst syncedBranch = isSyncedBranch || !! parentBlockInformation?.isSynced;\n\n\tconst canParentExpand = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parentId ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn select( blockEditorStore ).canEditBlock( parentId );\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst { expandedState, draggedClientIds } = useListViewContext();\n\n\tif ( ! canParentExpand ) {\n\t\treturn null;\n\t}\n\n\t// Only show the appender at the first level.\n\tconst showAppender = showAppenderProp && level === 1;\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\t// The appender means an extra row in List View, so add 1 to the row count.\n\tconst rowCount = showAppender ? blockCount + 1 : blockCount;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\n\t\t\t\t// To avoid performance issues, we only render blocks that are in view,\n\t\t\t\t// or blocks that are selected or dragged. If a block is selected,\n\t\t\t\t// it is only counted if it is the first of the block selection.\n\t\t\t\t// This prevents the entire tree from being rendered when a branch is\n\t\t\t\t// selected, or a user selects all blocks, while still enabling scroll\n\t\t\t\t// into view behavior when selecting a block or opening the list view.\n\t\t\t\tconst showBlock =\n\t\t\t\t\tisDragged ||\n\t\t\t\t\tblockInView ||\n\t\t\t\t\tisBranchDragged ||\n\t\t\t\t\t( isSelected && clientId === selectedClientIds[ 0 ] );\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged || isBranchDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ rowCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisBranchDragged={ isDragged || isBranchDragged }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ showAppender && (\n\t\t\t\t<TreeGridRow\n\t\t\t\t\tlevel={ level }\n\t\t\t\t\tsetSize={ rowCount }\n\t\t\t\t\tpositionInSet={ rowCount }\n\t\t\t\t\tisExpanded={ true }\n\t\t\t\t>\n\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t<Appender\n\t\t\t\t\t\t\t\tclientId={ parentId }\n\t\t\t\t\t\t\t\tnestingLevel={ level }\n\t\t\t\t\t\t\t\tblockCount={ blockCount }\n\t\t\t\t\t\t\t\t{ ...treeGridCellProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</TreeGridRow>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_element","_data","_appender","_block","_interopRequireDefault","_context","_utils","_store","_useBlockDisplayInformation","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","_expandedState$block$","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","_expandedState$block$2","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","isSyncedBranch","showAppender","showAppenderProp","parentBlockInformation","useBlockDisplayInformation","syncedBranch","isSynced","canParentExpand","useSelect","select","blockEditorStore","canEditBlock","blockDropPosition","blockDropTargetIndex","firstDraggedBlockIndex","blockIndexes","useListViewContext","filteredBlocks","filter","Boolean","blockCount","rowCount","nextPosition","_react","createElement","Fragment","map","index","_expandedState$client","displacement","isAfterDraggedBlocks","isNesting","getDragDisplacementValues","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","isSelected","isClientIdSelected","isSelectedBranch","showBlock","AsyncModeProvider","key","value","default","siblingBlockCount","className","__experimentalTreeGridRow","setSize","positionInSet","__experimentalTreeGridCell","treeGridCellProps","Appender","nestingLevel","_default","memo","exports"],"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { Appender } from './appender';\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { getDragDisplacementValues, isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t\tisSyncedBranch = false,\n\t\tshowAppender: showAppenderProp = true,\n\t} = props;\n\n\tconst parentBlockInformation = useBlockDisplayInformation( parentId );\n\tconst syncedBranch = isSyncedBranch || !! parentBlockInformation?.isSynced;\n\n\tconst canParentExpand = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parentId ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn select( blockEditorStore ).canEditBlock( parentId );\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst {\n\t\tblockDropPosition,\n\t\tblockDropTargetIndex,\n\t\tfirstDraggedBlockIndex,\n\t\tblockIndexes,\n\t\texpandedState,\n\t\tdraggedClientIds,\n\t} = useListViewContext();\n\n\tif ( ! canParentExpand ) {\n\t\treturn null;\n\t}\n\n\t// Only show the appender at the first level.\n\tconst showAppender = showAppenderProp && level === 1;\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\t// The appender means an extra row in List View, so add 1 to the row count.\n\tconst rowCount = showAppender ? blockCount + 1 : blockCount;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\t// Determine the displacement of the block while dragging. This\n\t\t\t\t// works out whether the current block should be displaced up or\n\t\t\t\t// down, relative to the dragged blocks and the drop target.\n\t\t\t\tconst { displacement, isAfterDraggedBlocks, isNesting } =\n\t\t\t\t\tgetDragDisplacementValues( {\n\t\t\t\t\t\tblockIndexes,\n\t\t\t\t\t\tblockDropTargetIndex,\n\t\t\t\t\t\tblockDropPosition,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tfirstDraggedBlockIndex,\n\t\t\t\t\t\tisDragged,\n\t\t\t\t\t} );\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\n\t\t\t\t// To avoid performance issues, we only render blocks that are in view,\n\t\t\t\t// or blocks that are selected or dragged. If a block is selected,\n\t\t\t\t// it is only counted if it is the first of the block selection.\n\t\t\t\t// This prevents the entire tree from being rendered when a branch is\n\t\t\t\t// selected, or a user selects all blocks, while still enabling scroll\n\t\t\t\t// into view behavior when selecting a block or opening the list view.\n\t\t\t\tconst showBlock =\n\t\t\t\t\tisDragged ||\n\t\t\t\t\tblockInView ||\n\t\t\t\t\t( isSelected && clientId === selectedClientIds[ 0 ] );\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ rowCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ isDragged ? false : shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t\tdisplacement={ displacement }\n\t\t\t\t\t\t\t\tisAfterDraggedBlocks={ isAfterDraggedBlocks }\n\t\t\t\t\t\t\t\tisNesting={ isNesting }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ showAppender && (\n\t\t\t\t<TreeGridRow\n\t\t\t\t\tlevel={ level }\n\t\t\t\t\tsetSize={ rowCount }\n\t\t\t\t\tpositionInSet={ rowCount }\n\t\t\t\t\tisExpanded={ true }\n\t\t\t\t>\n\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t<Appender\n\t\t\t\t\t\t\t\tclientId={ parentId }\n\t\t\t\t\t\t\t\tnestingLevel={ level }\n\t\t\t\t\t\t\t\tblockCount={ blockCount }\n\t\t\t\t\t\t\t\t{ ...treeGridCellProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</TreeGridRow>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"],"mappings":"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"}