@wordpress/block-editor 8.6.0 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +5 -2
  3. package/build/components/block-alignment-control/constants.js +48 -0
  4. package/build/components/block-alignment-control/constants.js.map +1 -0
  5. package/build/components/block-alignment-control/ui.js +9 -40
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.native.js +92 -0
  8. package/build/components/block-alignment-control/ui.native.js.map +1 -0
  9. package/build/components/block-alignment-matrix-control/index.js +1 -6
  10. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  11. package/build/components/block-content-overlay/index.js +4 -82
  12. package/build/components/block-content-overlay/index.js.map +1 -1
  13. package/build/components/block-draggable/draggable-chip.native.js +65 -0
  14. package/build/components/block-draggable/draggable-chip.native.js.map +1 -0
  15. package/build/components/block-draggable/dropping-insertion-point.native.js +157 -0
  16. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  17. package/build/components/block-draggable/index.native.js +488 -0
  18. package/build/components/block-draggable/index.native.js.map +1 -0
  19. package/build/components/block-draggable/use-scroll-when-dragging.native.js +130 -0
  20. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  21. package/build/components/block-list/block-list-context.native.js +195 -0
  22. package/build/components/block-list/block-list-context.native.js.map +1 -0
  23. package/build/components/block-list/block-list-item-cell.native.js +67 -0
  24. package/build/components/block-list/block-list-item-cell.native.js.map +1 -0
  25. package/build/components/block-list/block-list-item.native.js +12 -9
  26. package/build/components/block-list/block-list-item.native.js.map +1 -1
  27. package/build/components/block-list/block.native.js +27 -5
  28. package/build/components/block-list/block.native.js.map +1 -1
  29. package/build/components/block-list/index.js +34 -32
  30. package/build/components/block-list/index.js.map +1 -1
  31. package/build/components/block-list/index.native.js +75 -23
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/use-block-props/index.js +8 -4
  34. package/build/components/block-list/use-block-props/index.js.map +1 -1
  35. package/build/components/block-list/use-block-props/use-block-class-names.js +1 -7
  36. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  37. package/build/components/block-list/use-in-between-inserter.js +1 -1
  38. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  39. package/build/components/block-mobile-toolbar/index.native.js +10 -3
  40. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  41. package/build/components/block-mover/index.native.js +17 -4
  42. package/build/components/block-mover/index.native.js.map +1 -1
  43. package/build/components/block-navigation/dropdown.js +11 -5
  44. package/build/components/block-navigation/dropdown.js.map +1 -1
  45. package/build/components/block-popover/inbetween.js +19 -8
  46. package/build/components/block-popover/inbetween.js.map +1 -1
  47. package/build/components/block-popover/index.js +20 -16
  48. package/build/components/block-popover/index.js.map +1 -1
  49. package/build/components/block-preview/index.js +1 -1
  50. package/build/components/block-preview/index.js.map +1 -1
  51. package/build/components/block-tools/block-selection-button.js +1 -0
  52. package/build/components/block-tools/block-selection-button.js.map +1 -1
  53. package/build/components/block-tools/selected-block-popover.js +1 -29
  54. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  55. package/build/components/block-variation-transforms/index.js +16 -2
  56. package/build/components/block-variation-transforms/index.js.map +1 -1
  57. package/build/components/border-radius-control/input-controls.js +10 -3
  58. package/build/components/border-radius-control/input-controls.js.map +1 -1
  59. package/build/components/color-style-selector/index.js +9 -0
  60. package/build/components/color-style-selector/index.js.map +1 -1
  61. package/build/components/colors-gradients/dropdown.js +122 -41
  62. package/build/components/colors-gradients/dropdown.js.map +1 -1
  63. package/build/components/colors-gradients/panel-color-gradient-settings.js +35 -60
  64. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  65. package/build/components/convert-to-group-buttons/toolbar.js +22 -5
  66. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  67. package/build/components/iframe/index.js +51 -50
  68. package/build/components/iframe/index.js.map +1 -1
  69. package/build/components/image-editor/use-save-image.js +3 -1
  70. package/build/components/image-editor/use-save-image.js.map +1 -1
  71. package/build/components/index.js +14 -23
  72. package/build/components/index.js.map +1 -1
  73. package/build/components/inserter/index.js +21 -7
  74. package/build/components/inserter/index.js.map +1 -1
  75. package/build/components/inserter/index.native.js +2 -2
  76. package/build/components/inserter/index.native.js.map +1 -1
  77. package/build/components/inserter/quick-inserter.js +4 -5
  78. package/build/components/inserter/quick-inserter.js.map +1 -1
  79. package/build/components/link-control/constants.js +11 -1
  80. package/build/components/link-control/constants.js.map +1 -1
  81. package/build/components/link-control/search-results.js +4 -3
  82. package/build/components/link-control/search-results.js.map +1 -1
  83. package/build/components/link-control/use-search-handler.js +4 -4
  84. package/build/components/link-control/use-search-handler.js.map +1 -1
  85. package/build/components/list-view/block.js +15 -15
  86. package/build/components/list-view/block.js.map +1 -1
  87. package/build/components/list-view/branch.js +9 -13
  88. package/build/components/list-view/branch.js.map +1 -1
  89. package/build/components/list-view/context.js +1 -4
  90. package/build/components/list-view/context.js.map +1 -1
  91. package/build/components/list-view/drop-indicator.js +0 -1
  92. package/build/components/list-view/drop-indicator.js.map +1 -1
  93. package/build/components/list-view/index.js +15 -32
  94. package/build/components/list-view/index.js.map +1 -1
  95. package/build/components/media-placeholder/index.js +0 -2
  96. package/build/components/media-placeholder/index.js.map +1 -1
  97. package/build/components/media-replace-flow/index.js +0 -2
  98. package/build/components/media-replace-flow/index.js.map +1 -1
  99. package/build/components/media-upload/index.native.js +10 -4
  100. package/build/components/media-upload/index.native.js.map +1 -1
  101. package/build/components/navigable-toolbar/index.js +12 -2
  102. package/build/components/navigable-toolbar/index.js.map +1 -1
  103. package/build/components/plain-text/index.native.js +62 -7
  104. package/build/components/plain-text/index.native.js.map +1 -1
  105. package/build/components/publish-date-time-picker/index.js +55 -0
  106. package/build/components/publish-date-time-picker/index.js.map +1 -0
  107. package/build/components/rich-text/format-toolbar-container.js +0 -1
  108. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  109. package/build/components/rich-text/index.js +2 -2
  110. package/build/components/rich-text/index.js.map +1 -1
  111. package/build/components/rich-text/index.native.js +5 -1
  112. package/build/components/rich-text/index.native.js.map +1 -1
  113. package/build/components/url-input/index.js +11 -4
  114. package/build/components/url-input/index.js.map +1 -1
  115. package/build/components/use-block-drop-zone/index.native.js +167 -0
  116. package/build/components/use-block-drop-zone/index.native.js.map +1 -0
  117. package/build/components/use-on-block-drop/index.native.js +95 -0
  118. package/build/components/use-on-block-drop/index.native.js.map +1 -0
  119. package/build/components/use-setting/index.js +42 -18
  120. package/build/components/use-setting/index.js.map +1 -1
  121. package/build/components/warning/index.js +6 -1
  122. package/build/components/warning/index.js.map +1 -1
  123. package/build/components/writing-flow/use-click-selection.js +1 -3
  124. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  125. package/build/components/writing-flow/use-input.js +15 -0
  126. package/build/components/writing-flow/use-input.js.map +1 -1
  127. package/build/components/writing-flow/use-selection-observer.js +49 -8
  128. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  129. package/build/elements/index.js +9 -0
  130. package/build/elements/index.js.map +1 -0
  131. package/build/hooks/anchor.js.map +1 -1
  132. package/build/hooks/border.js +2 -7
  133. package/build/hooks/border.js.map +1 -1
  134. package/build/hooks/color-panel.js +14 -7
  135. package/build/hooks/color-panel.js.map +1 -1
  136. package/build/hooks/color.js +8 -88
  137. package/build/hooks/color.js.map +1 -1
  138. package/build/hooks/dimensions.js +16 -6
  139. package/build/hooks/dimensions.js.map +1 -1
  140. package/build/hooks/index.js +2 -0
  141. package/build/hooks/index.js.map +1 -1
  142. package/build/hooks/margin.js +64 -12
  143. package/build/hooks/margin.js.map +1 -1
  144. package/build/hooks/padding.js +60 -12
  145. package/build/hooks/padding.js.map +1 -1
  146. package/build/hooks/settings.js +32 -0
  147. package/build/hooks/settings.js.map +1 -0
  148. package/build/hooks/style.js +14 -13
  149. package/build/hooks/style.js.map +1 -1
  150. package/build/hooks/typography.js +6 -2
  151. package/build/hooks/typography.js.map +1 -1
  152. package/build/index.js +14 -0
  153. package/build/index.js.map +1 -1
  154. package/build/layouts/flex.js +5 -2
  155. package/build/layouts/flex.js.map +1 -1
  156. package/build/store/actions.js +14 -0
  157. package/build/store/actions.js.map +1 -1
  158. package/build/store/defaults.js +0 -1
  159. package/build/store/defaults.js.map +1 -1
  160. package/build/store/reducer.js +17 -2
  161. package/build/store/reducer.js.map +1 -1
  162. package/build/store/selectors.js +43 -13
  163. package/build/store/selectors.js.map +1 -1
  164. package/build-module/components/block-alignment-control/constants.js +36 -0
  165. package/build-module/components/block-alignment-control/constants.js.map +1 -0
  166. package/build-module/components/block-alignment-control/ui.js +4 -35
  167. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  168. package/build-module/components/block-alignment-control/ui.native.js +78 -0
  169. package/build-module/components/block-alignment-control/ui.native.js.map +1 -0
  170. package/build-module/components/block-alignment-matrix-control/index.js +1 -6
  171. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  172. package/build-module/components/block-content-overlay/index.js +3 -78
  173. package/build-module/components/block-content-overlay/index.js.map +1 -1
  174. package/build-module/components/block-draggable/draggable-chip.native.js +51 -0
  175. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -0
  176. package/build-module/components/block-draggable/dropping-insertion-point.native.js +137 -0
  177. package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  178. package/build-module/components/block-draggable/index.native.js +453 -0
  179. package/build-module/components/block-draggable/index.native.js.map +1 -0
  180. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +120 -0
  181. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  182. package/build-module/components/block-list/block-list-context.native.js +179 -0
  183. package/build-module/components/block-list/block-list-context.native.js.map +1 -0
  184. package/build-module/components/block-list/block-list-item-cell.native.js +59 -0
  185. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -0
  186. package/build-module/components/block-list/block-list-item.native.js +12 -9
  187. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  188. package/build-module/components/block-list/block.native.js +26 -5
  189. package/build-module/components/block-list/block.native.js.map +1 -1
  190. package/build-module/components/block-list/index.js +35 -33
  191. package/build-module/components/block-list/index.js.map +1 -1
  192. package/build-module/components/block-list/index.native.js +72 -23
  193. package/build-module/components/block-list/index.native.js.map +1 -1
  194. package/build-module/components/block-list/use-block-props/index.js +9 -5
  195. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  196. package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -7
  197. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  198. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  199. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  200. package/build-module/components/block-mobile-toolbar/index.native.js +9 -3
  201. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  202. package/build-module/components/block-mover/index.native.js +18 -5
  203. package/build-module/components/block-mover/index.native.js.map +1 -1
  204. package/build-module/components/block-navigation/dropdown.js +10 -5
  205. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  206. package/build-module/components/block-popover/inbetween.js +19 -8
  207. package/build-module/components/block-popover/inbetween.js.map +1 -1
  208. package/build-module/components/block-popover/index.js +21 -15
  209. package/build-module/components/block-popover/index.js.map +1 -1
  210. package/build-module/components/block-preview/index.js +1 -1
  211. package/build-module/components/block-preview/index.js.map +1 -1
  212. package/build-module/components/block-tools/block-selection-button.js +1 -0
  213. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  214. package/build-module/components/block-tools/selected-block-popover.js +2 -29
  215. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  216. package/build-module/components/block-variation-transforms/index.js +13 -2
  217. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  218. package/build-module/components/border-radius-control/input-controls.js +11 -4
  219. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  220. package/build-module/components/color-style-selector/index.js +6 -0
  221. package/build-module/components/color-style-selector/index.js.map +1 -1
  222. package/build-module/components/colors-gradients/dropdown.js +124 -43
  223. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  224. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +36 -64
  225. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  226. package/build-module/components/convert-to-group-buttons/toolbar.js +23 -6
  227. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  228. package/build-module/components/iframe/index.js +52 -51
  229. package/build-module/components/iframe/index.js.map +1 -1
  230. package/build-module/components/image-editor/use-save-image.js +2 -1
  231. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  232. package/build-module/components/index.js +2 -3
  233. package/build-module/components/index.js.map +1 -1
  234. package/build-module/components/inserter/index.js +21 -7
  235. package/build-module/components/inserter/index.js.map +1 -1
  236. package/build-module/components/inserter/index.native.js +2 -2
  237. package/build-module/components/inserter/index.native.js.map +1 -1
  238. package/build-module/components/inserter/quick-inserter.js +4 -5
  239. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  240. package/build-module/components/link-control/constants.js +5 -0
  241. package/build-module/components/link-control/constants.js.map +1 -1
  242. package/build-module/components/link-control/search-results.js +3 -4
  243. package/build-module/components/link-control/search-results.js.map +1 -1
  244. package/build-module/components/link-control/use-search-handler.js +5 -5
  245. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  246. package/build-module/components/list-view/block.js +15 -16
  247. package/build-module/components/list-view/block.js.map +1 -1
  248. package/build-module/components/list-view/branch.js +9 -13
  249. package/build-module/components/list-view/branch.js.map +1 -1
  250. package/build-module/components/list-view/context.js +1 -4
  251. package/build-module/components/list-view/context.js.map +1 -1
  252. package/build-module/components/list-view/drop-indicator.js +0 -1
  253. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  254. package/build-module/components/list-view/index.js +15 -31
  255. package/build-module/components/list-view/index.js.map +1 -1
  256. package/build-module/components/media-placeholder/index.js +0 -2
  257. package/build-module/components/media-placeholder/index.js.map +1 -1
  258. package/build-module/components/media-replace-flow/index.js +0 -2
  259. package/build-module/components/media-replace-flow/index.js.map +1 -1
  260. package/build-module/components/media-upload/index.native.js +8 -3
  261. package/build-module/components/media-upload/index.native.js.map +1 -1
  262. package/build-module/components/navigable-toolbar/index.js +12 -2
  263. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  264. package/build-module/components/plain-text/index.native.js +63 -8
  265. package/build-module/components/plain-text/index.native.js.map +1 -1
  266. package/build-module/components/publish-date-time-picker/index.js +42 -0
  267. package/build-module/components/publish-date-time-picker/index.js.map +1 -0
  268. package/build-module/components/rich-text/format-toolbar-container.js +0 -1
  269. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  270. package/build-module/components/rich-text/index.js +2 -2
  271. package/build-module/components/rich-text/index.js.map +1 -1
  272. package/build-module/components/rich-text/index.native.js +5 -1
  273. package/build-module/components/rich-text/index.native.js.map +1 -1
  274. package/build-module/components/url-input/index.js +11 -4
  275. package/build-module/components/url-input/index.js.map +1 -1
  276. package/build-module/components/use-block-drop-zone/index.native.js +148 -0
  277. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -0
  278. package/build-module/components/use-on-block-drop/index.native.js +83 -0
  279. package/build-module/components/use-on-block-drop/index.native.js.map +1 -0
  280. package/build-module/components/use-setting/index.js +43 -19
  281. package/build-module/components/use-setting/index.js.map +1 -1
  282. package/build-module/components/warning/index.js +6 -1
  283. package/build-module/components/warning/index.js.map +1 -1
  284. package/build-module/components/writing-flow/use-click-selection.js +1 -3
  285. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  286. package/build-module/components/writing-flow/use-input.js +15 -0
  287. package/build-module/components/writing-flow/use-input.js.map +1 -1
  288. package/build-module/components/writing-flow/use-selection-observer.js +49 -8
  289. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  290. package/build-module/elements/index.js +2 -0
  291. package/build-module/elements/index.js.map +1 -0
  292. package/build-module/hooks/anchor.js.map +1 -1
  293. package/build-module/hooks/border.js +2 -7
  294. package/build-module/hooks/border.js.map +1 -1
  295. package/build-module/hooks/color-panel.js +11 -6
  296. package/build-module/hooks/color-panel.js.map +1 -1
  297. package/build-module/hooks/color.js +8 -88
  298. package/build-module/hooks/color.js.map +1 -1
  299. package/build-module/hooks/dimensions.js +19 -9
  300. package/build-module/hooks/dimensions.js.map +1 -1
  301. package/build-module/hooks/index.js +1 -0
  302. package/build-module/hooks/index.js.map +1 -1
  303. package/build-module/hooks/margin.js +61 -13
  304. package/build-module/hooks/margin.js.map +1 -1
  305. package/build-module/hooks/padding.js +57 -13
  306. package/build-module/hooks/padding.js.map +1 -1
  307. package/build-module/hooks/settings.js +29 -0
  308. package/build-module/hooks/settings.js.map +1 -0
  309. package/build-module/hooks/style.js +15 -14
  310. package/build-module/hooks/style.js.map +1 -1
  311. package/build-module/hooks/typography.js +6 -2
  312. package/build-module/hooks/typography.js.map +1 -1
  313. package/build-module/index.js +1 -0
  314. package/build-module/index.js.map +1 -1
  315. package/build-module/layouts/flex.js +4 -2
  316. package/build-module/layouts/flex.js.map +1 -1
  317. package/build-module/store/actions.js +12 -0
  318. package/build-module/store/actions.js.map +1 -1
  319. package/build-module/store/defaults.js +0 -1
  320. package/build-module/store/defaults.js.map +1 -1
  321. package/build-module/store/reducer.js +17 -2
  322. package/build-module/store/reducer.js.map +1 -1
  323. package/build-module/store/selectors.js +37 -12
  324. package/build-module/store/selectors.js.map +1 -1
  325. package/build-style/style-rtl.css +100 -225
  326. package/build-style/style.css +100 -225
  327. package/package.json +30 -30
  328. package/src/components/block-alignment-control/constants.js +45 -0
  329. package/src/components/block-alignment-control/ui.js +69 -109
  330. package/src/components/block-alignment-control/ui.native.js +86 -0
  331. package/src/components/block-alignment-matrix-control/index.js +1 -5
  332. package/src/components/block-content-overlay/index.js +8 -95
  333. package/src/components/block-content-overlay/style.scss +2 -12
  334. package/src/components/block-draggable/draggable-chip.native.js +49 -0
  335. package/src/components/block-draggable/dropping-insertion-point.native.js +181 -0
  336. package/src/components/block-draggable/dropping-insertion-point.native.scss +8 -0
  337. package/src/components/block-draggable/index.native.js +462 -0
  338. package/src/components/block-draggable/style.native.scss +19 -0
  339. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +73 -0
  340. package/src/components/block-draggable/test/helpers.native.js +183 -0
  341. package/src/components/block-draggable/test/index.native.js +496 -0
  342. package/src/components/block-draggable/use-scroll-when-dragging.native.js +135 -0
  343. package/src/components/block-list/block-list-context.native.js +175 -0
  344. package/src/components/block-list/block-list-item-cell.native.js +49 -0
  345. package/src/components/block-list/block-list-item.native.js +7 -11
  346. package/src/components/block-list/block.native.js +37 -8
  347. package/src/components/block-list/index.js +44 -44
  348. package/src/components/block-list/index.native.js +54 -13
  349. package/src/components/block-list/style.scss +7 -18
  350. package/src/components/block-list/test/block-list-context.native.js +253 -0
  351. package/src/components/block-list/test/fixtures/block-list-context.native.js +79 -0
  352. package/src/components/block-list/use-block-props/index.js +10 -5
  353. package/src/components/block-list/use-block-props/use-block-class-names.js +1 -11
  354. package/src/components/block-list/use-in-between-inserter.js +1 -1
  355. package/src/components/block-mobile-toolbar/index.native.js +9 -1
  356. package/src/components/block-mover/index.native.js +22 -6
  357. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -0
  358. package/src/components/block-navigation/dropdown.js +12 -8
  359. package/src/components/block-popover/inbetween.js +21 -8
  360. package/src/components/block-popover/index.js +18 -15
  361. package/src/components/block-popover/style.scss +4 -0
  362. package/src/components/block-preview/index.js +1 -4
  363. package/src/components/block-switcher/style.scss +2 -39
  364. package/src/components/block-tools/block-selection-button.js +1 -0
  365. package/src/components/block-tools/selected-block-popover.js +1 -36
  366. package/src/components/block-tools/style.scss +1 -12
  367. package/src/components/block-variation-transforms/index.js +6 -2
  368. package/src/components/border-radius-control/input-controls.js +16 -8
  369. package/src/components/border-radius-control/style.scss +3 -2
  370. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  371. package/src/components/color-style-selector/index.js +18 -9
  372. package/src/components/colors-gradients/dropdown.js +130 -62
  373. package/src/components/colors-gradients/panel-color-gradient-settings.js +30 -76
  374. package/src/components/colors-gradients/style.scss +52 -50
  375. package/src/components/convert-to-group-buttons/toolbar.js +30 -13
  376. package/src/components/duotone-control/style.scss +1 -7
  377. package/src/components/iframe/index.js +62 -54
  378. package/src/components/image-editor/use-save-image.js +2 -1
  379. package/src/components/image-size-control/README.md +1 -1
  380. package/src/components/index.js +2 -3
  381. package/src/components/inserter/index.js +20 -0
  382. package/src/components/inserter/index.native.js +2 -2
  383. package/src/components/inserter/quick-inserter.js +3 -11
  384. package/src/components/inserter/style.native.scss +1 -0
  385. package/src/components/inserter/style.scss +2 -1
  386. package/src/components/link-control/constants.js +11 -0
  387. package/src/components/link-control/search-results.js +4 -5
  388. package/src/components/link-control/use-search-handler.js +11 -5
  389. package/src/components/list-view/block.js +24 -34
  390. package/src/components/list-view/branch.js +10 -20
  391. package/src/components/list-view/context.js +1 -4
  392. package/src/components/list-view/drop-indicator.js +0 -1
  393. package/src/components/list-view/index.js +11 -41
  394. package/src/components/list-view/style.scss +2 -1
  395. package/src/components/media-placeholder/index.js +0 -2
  396. package/src/components/media-replace-flow/index.js +0 -2
  397. package/src/components/media-upload/index.native.js +6 -2
  398. package/src/components/media-upload/test/index.native.js +31 -6
  399. package/src/components/navigable-toolbar/index.js +12 -2
  400. package/src/components/plain-text/index.native.js +64 -8
  401. package/src/components/preview-options/style.scss +0 -4
  402. package/src/components/publish-date-time-picker/README.md +52 -0
  403. package/src/components/publish-date-time-picker/index.js +50 -0
  404. package/src/components/publish-date-time-picker/style.scss +20 -0
  405. package/src/components/rich-text/format-toolbar-container.js +0 -1
  406. package/src/components/rich-text/index.js +3 -1
  407. package/src/components/rich-text/index.native.js +4 -0
  408. package/src/components/rich-text/style.scss +2 -8
  409. package/src/components/url-input/index.js +9 -4
  410. package/src/components/use-block-drop-zone/index.native.js +173 -0
  411. package/src/components/use-on-block-drop/index.native.js +119 -0
  412. package/src/components/use-setting/index.js +57 -21
  413. package/src/components/warning/index.js +47 -42
  414. package/src/components/warning/test/__snapshots__/index.js.snap +15 -6
  415. package/src/components/warning/test/index.js +1 -1
  416. package/src/components/writing-flow/use-click-selection.js +1 -4
  417. package/src/components/writing-flow/use-input.js +12 -0
  418. package/src/components/writing-flow/use-selection-observer.js +55 -10
  419. package/src/elements/index.js +1 -0
  420. package/src/hooks/anchor.js +1 -1
  421. package/src/hooks/border.js +2 -11
  422. package/src/hooks/border.scss +0 -48
  423. package/src/hooks/color-panel.js +13 -9
  424. package/src/hooks/color.js +5 -74
  425. package/src/hooks/color.scss +5 -58
  426. package/src/hooks/dimensions.js +55 -41
  427. package/src/hooks/index.js +1 -0
  428. package/src/hooks/margin.js +64 -15
  429. package/src/hooks/padding.js +60 -15
  430. package/src/hooks/padding.scss +12 -0
  431. package/src/hooks/settings.js +32 -0
  432. package/src/hooks/style.js +25 -39
  433. package/src/hooks/test/settings.js +48 -0
  434. package/src/hooks/typography.js +2 -0
  435. package/src/index.js +1 -0
  436. package/src/layouts/flex.js +11 -3
  437. package/src/store/actions.js +12 -0
  438. package/src/store/defaults.js +0 -1
  439. package/src/store/reducer.js +14 -1
  440. package/src/store/selectors.js +42 -12
  441. package/src/store/test/reducer.js +5 -0
  442. package/src/store/test/selectors.js +17 -0
  443. package/src/style.scss +2 -2
  444. package/tsconfig.tsbuildinfo +1 -1
  445. package/build/components/border-style-control/index.js +0 -60
  446. package/build/components/border-style-control/index.js.map +0 -1
  447. package/build/components/colors/color-panel.js +0 -82
  448. package/build/components/colors/color-panel.js.map +0 -1
  449. package/build/components/colors/color-panel.native.js +0 -11
  450. package/build/components/colors/color-panel.native.js.map +0 -1
  451. package/build/components/colors-gradients/tools-panel-color-dropdown.js +0 -89
  452. package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  453. package/build-module/components/border-style-control/index.js +0 -50
  454. package/build-module/components/border-style-control/index.js.map +0 -1
  455. package/build-module/components/colors/color-panel.js +0 -70
  456. package/build-module/components/colors/color-panel.js.map +0 -1
  457. package/build-module/components/colors/color-panel.native.js +0 -4
  458. package/build-module/components/colors/color-panel.native.js.map +0 -1
  459. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +0 -75
  460. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  461. package/src/components/block-alignment-matrix-control/style.scss +0 -10
  462. package/src/components/border-style-control/index.js +0 -47
  463. package/src/components/border-style-control/style.scss +0 -18
  464. package/src/components/colors/color-panel.js +0 -91
  465. package/src/components/colors/color-panel.native.js +0 -3
  466. package/src/components/colors-gradients/tools-panel-color-dropdown.js +0 -85
@@ -72,19 +72,17 @@ function ListViewBranch(props) {
72
72
  blocks,
73
73
  selectBlock,
74
74
  showBlockMovers,
75
- showNestedBlocks,
76
75
  selectedClientIds,
77
76
  level = 1,
78
77
  path = '',
79
78
  isBranchSelected = false,
80
79
  listPosition = 0,
81
80
  fixedListWindow,
82
- expandNested
81
+ isExpanded
83
82
  } = props;
84
83
  const {
85
84
  expandedState,
86
- draggedClientIds,
87
- __experimentalPersistentListViewFeatures
85
+ draggedClientIds
88
86
  } = useListViewContext();
89
87
  const filteredBlocks = compact(blocks);
90
88
  const blockCount = filteredBlocks.length;
@@ -98,18 +96,17 @@ function ListViewBranch(props) {
98
96
  } = block;
99
97
 
100
98
  if (index > 0) {
101
- nextPosition += countBlocks(filteredBlocks[index - 1], expandedState, draggedClientIds, expandNested);
99
+ nextPosition += countBlocks(filteredBlocks[index - 1], expandedState, draggedClientIds, isExpanded);
102
100
  }
103
101
 
104
- const usesWindowing = __experimentalPersistentListViewFeatures;
105
102
  const {
106
103
  itemInView
107
104
  } = fixedListWindow;
108
- const blockInView = !usesWindowing || itemInView(nextPosition);
105
+ const blockInView = itemInView(nextPosition);
109
106
  const position = index + 1;
110
107
  const updatedPath = path.length > 0 ? `${path}_${position}` : `${position}`;
111
- const hasNestedBlocks = showNestedBlocks && !!innerBlocks && !!innerBlocks.length;
112
- const isExpanded = hasNestedBlocks ? (_expandedState$client = expandedState[clientId]) !== null && _expandedState$client !== void 0 ? _expandedState$client : expandNested : undefined;
108
+ const hasNestedBlocks = !!(innerBlocks !== null && innerBlocks !== void 0 && innerBlocks.length);
109
+ const shouldExpand = hasNestedBlocks ? (_expandedState$client = expandedState[clientId]) !== null && _expandedState$client !== void 0 ? _expandedState$client : isExpanded : undefined;
113
110
  const isDragged = !!(draggedClientIds !== null && draggedClientIds !== void 0 && draggedClientIds.includes(clientId));
114
111
  const showBlock = isDragged || blockInView; // Make updates to the selected or dragged blocks synchronous,
115
112
  // but asynchronous for any other block.
@@ -131,23 +128,22 @@ function ListViewBranch(props) {
131
128
  siblingBlockCount: blockCount,
132
129
  showBlockMovers: showBlockMovers,
133
130
  path: updatedPath,
134
- isExpanded: isExpanded,
131
+ isExpanded: shouldExpand,
135
132
  listPosition: nextPosition,
136
133
  selectedClientIds: selectedClientIds
137
134
  }), !showBlock && createElement("tr", null, createElement("td", {
138
135
  className: "block-editor-list-view-placeholder"
139
- })), hasNestedBlocks && isExpanded && !isDragged && createElement(ListViewBranch, {
136
+ })), hasNestedBlocks && shouldExpand && !isDragged && createElement(ListViewBranch, {
140
137
  blocks: innerBlocks,
141
138
  selectBlock: selectBlock,
142
139
  showBlockMovers: showBlockMovers,
143
- showNestedBlocks: showNestedBlocks,
144
140
  level: level + 1,
145
141
  path: updatedPath,
146
142
  listPosition: nextPosition + 1,
147
143
  fixedListWindow: fixedListWindow,
148
144
  isBranchSelected: isSelectedBranch,
149
145
  selectedClientIds: selectedClientIds,
150
- expandNested: expandNested
146
+ isExpanded: isExpanded
151
147
  }));
152
148
  }));
153
149
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"names":["compact","memo","AsyncModeProvider","ListViewBlock","useListViewContext","isClientIdSelected","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","ListViewBranch","props","blocks","selectBlock","showBlockMovers","showNestedBlocks","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","expandNested","__experimentalPersistentListViewFeatures","filteredBlocks","blockCount","nextPosition","map","index","usesWindowing","itemInView","blockInView","position","updatedPath","hasNestedBlocks","undefined","showBlock","isSelected","isSelectedBranch","defaultProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { compact } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\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\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) => ( count, block ) => {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn count;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\treturn (\n\t\t\tcount +\n\t\t\tcountBlocks(\n\t\t\t\tblock,\n\t\t\t\texpandedState,\n\t\t\t\tdraggedClientIds,\n\t\t\t\tisExpandedByDefault\n\t\t\t)\n\t\t);\n\t}\n\treturn count + 1;\n};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock,\n\t\tshowBlockMovers,\n\t\tshowNestedBlocks,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\texpandNested,\n\t} = props;\n\n\tconst {\n\t\texpandedState,\n\t\tdraggedClientIds,\n\t\t__experimentalPersistentListViewFeatures,\n\t} = useListViewContext();\n\n\tconst filteredBlocks = compact( blocks );\n\tconst blockCount = filteredBlocks.length;\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\texpandNested\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst usesWindowing = __experimentalPersistentListViewFeatures;\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView =\n\t\t\t\t\t! usesWindowing || 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 =\n\t\t\t\t\tshowNestedBlocks && !! innerBlocks && !! innerBlocks.length;\n\n\t\t\t\tconst isExpanded = hasNestedBlocks\n\t\t\t\t\t? expandedState[ clientId ] ?? expandNested\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\tconst showBlock = isDragged || blockInView;\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\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={ blockCount }\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={ isExpanded }\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/>\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 && isExpanded && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\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\tshowNestedBlocks={ showNestedBlocks }\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\texpandNested={ expandNested }\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</>\n\t);\n}\n\nListViewBranch.defaultProps = {\n\tselectBlock: () => {},\n};\n\nexport default memo( ListViewBranch );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"names":["compact","memo","AsyncModeProvider","ListViewBlock","useListViewContext","isClientIdSelected","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","filteredBlocks","blockCount","nextPosition","map","index","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","showBlock","isSelected","isSelectedBranch","defaultProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { compact } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\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\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) => ( count, block ) => {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn count;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\treturn (\n\t\t\tcount +\n\t\t\tcountBlocks(\n\t\t\t\tblock,\n\t\t\t\texpandedState,\n\t\t\t\tdraggedClientIds,\n\t\t\t\tisExpandedByDefault\n\t\t\t)\n\t\t);\n\t}\n\treturn count + 1;\n};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock,\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} = props;\n\n\tconst { expandedState, draggedClientIds } = useListViewContext();\n\n\tconst filteredBlocks = compact( blocks );\n\tconst blockCount = filteredBlocks.length;\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 = hasNestedBlocks\n\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\tconst showBlock = isDragged || blockInView;\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\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={ blockCount }\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/>\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\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/>\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</>\n\t);\n}\n\nListViewBranch.defaultProps = {\n\tselectBlock: () => {},\n};\n\nexport default memo( ListViewBranch );\n"]}
@@ -2,9 +2,6 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { createContext, useContext } from '@wordpress/element';
5
- export const ListViewContext = createContext({
6
- __experimentalFeatures: false,
7
- __experimentalPersistentListViewFeatures: false
8
- });
5
+ export const ListViewContext = createContext({});
9
6
  export const useListViewContext = () => useContext(ListViewContext);
10
7
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/context.js"],"names":["createContext","useContext","ListViewContext","__experimentalFeatures","__experimentalPersistentListViewFeatures","useListViewContext"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,oBAA1C;AAEA,OAAO,MAAMC,eAAe,GAAGF,aAAa,CAAE;AAC7CG,EAAAA,sBAAsB,EAAE,KADqB;AAE7CC,EAAAA,wCAAwC,EAAE;AAFG,CAAF,CAArC;AAKP,OAAO,MAAMC,kBAAkB,GAAG,MAAMJ,UAAU,CAAEC,eAAF,CAA3C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\nexport const ListViewContext = createContext( {\n\t__experimentalFeatures: false,\n\t__experimentalPersistentListViewFeatures: false,\n} );\n\nexport const useListViewContext = () => useContext( ListViewContext );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/context.js"],"names":["createContext","useContext","ListViewContext","useListViewContext"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,oBAA1C;AAEA,OAAO,MAAMC,eAAe,GAAGF,aAAa,CAAE,EAAF,CAArC;AAEP,OAAO,MAAMG,kBAAkB,GAAG,MAAMF,UAAU,CAAEC,eAAF,CAA3C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\nexport const ListViewContext = createContext( {} );\n\nexport const useListViewContext = () => useContext( ListViewContext );\n"]}
@@ -96,7 +96,6 @@ export default function ListViewDropIndicator(_ref) {
96
96
  }
97
97
 
98
98
  return createElement(Popover, {
99
- noArrow: true,
100
99
  animate: false,
101
100
  getAnchorRect: getAnchorRect,
102
101
  focusOnMount: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/drop-indicator.js"],"names":["Popover","useCallback","useMemo","ListViewDropIndicator","listViewRef","blockDropTarget","rootClientId","clientId","dropPosition","rootBlockElement","blockElement","current","_rootBlockElement","querySelector","undefined","_blockElement","targetElement","getDropIndicatorIndent","targetElementRect","getBoundingClientRect","rootBlockIconElement","rootBlockIconRect","right","left","style","indent","width","offsetWidth","getAnchorRect","ownerDocument","rect","anchorRect","height","top","bottom"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,uBAAxB;AACA,SAASC,WAAT,EAAsBC,OAAtB,QAAqC,oBAArC;AAEA,eAAe,SAASC,qBAAT,OAGX;AAAA,MAH2C;AAC9CC,IAAAA,WAD8C;AAE9CC,IAAAA;AAF8C,GAG3C;AACH,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,QAAhB;AAA0BC,IAAAA;AAA1B,MAA2CH,eAAe,IAAI,EAApE;AAEA,QAAM,CAAEI,gBAAF,EAAoBC,YAApB,IAAqCR,OAAO,CAAE,MAAM;AACzD,QAAK,CAAEE,WAAW,CAACO,OAAnB,EAA6B;AAC5B,aAAO,EAAP;AACA,KAHwD,CAKzD;AACA;;;AACA,UAAMC,iBAAiB,GAAGN,YAAY,GACnCF,WAAW,CAACO,OAAZ,CAAoBE,aAApB,CACC,gBAAgBP,YAAc,IAD/B,CADmC,GAInCQ,SAJH,CAPyD,CAazD;AACA;AACA;;;AACA,UAAMC,aAAa,GAAGR,QAAQ,GAC3BH,WAAW,CAACO,OAAZ,CAAoBE,aAApB,CACC,gBAAgBN,QAAU,IAD3B,CAD2B,GAI3BO,SAJH;;AAMA,WAAO,CAAEF,iBAAF,EAAqBG,aAArB,CAAP;AACA,GAvBiD,EAuB/C,CAAET,YAAF,EAAgBC,QAAhB,CAvB+C,CAAlD,CAHG,CA4BH;AACA;AACA;;AACA,QAAMS,aAAa,GAAGN,YAAY,IAAID,gBAAtC;AAEA,QAAMQ,sBAAsB,GAAGhB,WAAW,CAAE,MAAM;AACjD,QAAK,CAAEQ,gBAAP,EAA0B;AACzB,aAAO,CAAP;AACA,KAHgD,CAKjD;AACA;AACA;;;AACA,UAAMS,iBAAiB,GAAGF,aAAa,CAACG,qBAAd,EAA1B;AACA,UAAMC,oBAAoB,GAAGX,gBAAgB,CAACI,aAAjB,CAC5B,0BAD4B,CAA7B;AAGA,UAAMQ,iBAAiB,GAAGD,oBAAoB,CAACD,qBAArB,EAA1B;AACA,WAAOE,iBAAiB,CAACC,KAAlB,GAA0BJ,iBAAiB,CAACK,IAAnD;AACA,GAdyC,EAcvC,CAAEd,gBAAF,EAAoBO,aAApB,CAduC,CAA1C;AAgBA,QAAMQ,KAAK,GAAGtB,OAAO,CAAE,MAAM;AAC5B,QAAK,CAAEc,aAAP,EAAuB;AACtB,aAAO,EAAP;AACA;;AAED,UAAMS,MAAM,GAAGR,sBAAsB,EAArC;AAEA,WAAO;AACNS,MAAAA,KAAK,EAAEV,aAAa,CAACW,WAAd,GAA4BF;AAD7B,KAAP;AAGA,GAVoB,EAUlB,CAAER,sBAAF,EAA0BD,aAA1B,CAVkB,CAArB;AAYA,QAAMY,aAAa,GAAG3B,WAAW,CAAE,MAAM;AACxC,QAAK,CAAEe,aAAP,EAAuB;AACtB,aAAO,EAAP;AACA;;AAED,UAAMa,aAAa,GAAGb,aAAa,CAACa,aAApC;AACA,UAAMC,IAAI,GAAGd,aAAa,CAACG,qBAAd,EAAb;AACA,UAAMM,MAAM,GAAGR,sBAAsB,EAArC;AAEA,UAAMc,UAAU,GAAG;AAClBR,MAAAA,IAAI,EAAEO,IAAI,CAACP,IAAL,GAAYE,MADA;AAElBH,MAAAA,KAAK,EAAEQ,IAAI,CAACR,KAFM;AAGlBI,MAAAA,KAAK,EAAE,CAHW;AAIlBM,MAAAA,MAAM,EAAEF,IAAI,CAACE,MAJK;AAKlBH,MAAAA;AALkB,KAAnB;;AAQA,QAAKrB,YAAY,KAAK,KAAtB,EAA8B;AAC7B,aAAO,EACN,GAAGuB,UADG;AAENE,QAAAA,GAAG,EAAEH,IAAI,CAACG,GAFJ;AAGNC,QAAAA,MAAM,EAAEJ,IAAI,CAACG;AAHP,OAAP;AAKA;;AAED,QAAKzB,YAAY,KAAK,QAAjB,IAA6BA,YAAY,KAAK,QAAnD,EAA8D;AAC7D,aAAO,EACN,GAAGuB,UADG;AAENE,QAAAA,GAAG,EAAEH,IAAI,CAACI,MAFJ;AAGNA,QAAAA,MAAM,EAAEJ,IAAI,CAACI;AAHP,OAAP;AAKA;;AAED,WAAO,EAAP;AACA,GAlCgC,EAkC9B,CAAElB,aAAF,EAAiBR,YAAjB,EAA+BS,sBAA/B,CAlC8B,CAAjC;;AAoCA,MAAK,CAAED,aAAP,EAAuB;AACtB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,OAAD;AACC,IAAA,OAAO,MADR;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,aAAa,EAAGY,aAHjB;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAC;AALX,KAOC;AACC,IAAA,KAAK,EAAGJ,KADT;AAEC,IAAA,SAAS,EAAC;AAFX,IAPD,CADD;AAcA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Popover } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\nexport default function ListViewDropIndicator( {\n\tlistViewRef,\n\tblockDropTarget,\n} ) {\n\tconst { rootClientId, clientId, dropPosition } = blockDropTarget || {};\n\n\tconst [ rootBlockElement, blockElement ] = useMemo( () => {\n\t\tif ( ! listViewRef.current ) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// The rootClientId will be defined whenever dropping into inner\n\t\t// block lists, but is undefined when dropping at the root level.\n\t\tconst _rootBlockElement = rootClientId\n\t\t\t? listViewRef.current.querySelector(\n\t\t\t\t\t`[data-block=\"${ rootClientId }\"]`\n\t\t\t )\n\t\t\t: undefined;\n\n\t\t// The clientId represents the sibling block, the dragged block will\n\t\t// usually be inserted adjacent to it. It will be undefined when\n\t\t// dropping a block into an empty block list.\n\t\tconst _blockElement = clientId\n\t\t\t? listViewRef.current.querySelector(\n\t\t\t\t\t`[data-block=\"${ clientId }\"]`\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn [ _rootBlockElement, _blockElement ];\n\t}, [ rootClientId, clientId ] );\n\n\t// The targetElement is the element that the drop indicator will appear\n\t// before or after. When dropping into an empty block list, blockElement\n\t// is undefined, so the indicator will appear after the rootBlockElement.\n\tconst targetElement = blockElement || rootBlockElement;\n\n\tconst getDropIndicatorIndent = useCallback( () => {\n\t\tif ( ! rootBlockElement ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Calculate the indent using the block icon of the root block.\n\t\t// Using a classname selector here might be flaky and could be\n\t\t// improved.\n\t\tconst targetElementRect = targetElement.getBoundingClientRect();\n\t\tconst rootBlockIconElement = rootBlockElement.querySelector(\n\t\t\t'.block-editor-block-icon'\n\t\t);\n\t\tconst rootBlockIconRect = rootBlockIconElement.getBoundingClientRect();\n\t\treturn rootBlockIconRect.right - targetElementRect.left;\n\t}, [ rootBlockElement, targetElement ] );\n\n\tconst style = useMemo( () => {\n\t\tif ( ! targetElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst indent = getDropIndicatorIndent();\n\n\t\treturn {\n\t\t\twidth: targetElement.offsetWidth - indent,\n\t\t};\n\t}, [ getDropIndicatorIndent, targetElement ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ! targetElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst ownerDocument = targetElement.ownerDocument;\n\t\tconst rect = targetElement.getBoundingClientRect();\n\t\tconst indent = getDropIndicatorIndent();\n\n\t\tconst anchorRect = {\n\t\t\tleft: rect.left + indent,\n\t\t\tright: rect.right,\n\t\t\twidth: 0,\n\t\t\theight: rect.height,\n\t\t\townerDocument,\n\t\t};\n\n\t\tif ( dropPosition === 'top' ) {\n\t\t\treturn {\n\t\t\t\t...anchorRect,\n\t\t\t\ttop: rect.top,\n\t\t\t\tbottom: rect.top,\n\t\t\t};\n\t\t}\n\n\t\tif ( dropPosition === 'bottom' || dropPosition === 'inside' ) {\n\t\t\treturn {\n\t\t\t\t...anchorRect,\n\t\t\t\ttop: rect.bottom,\n\t\t\t\tbottom: rect.bottom,\n\t\t\t};\n\t\t}\n\n\t\treturn {};\n\t}, [ targetElement, dropPosition, getDropIndicatorIndent ] );\n\n\tif ( ! targetElement ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tnoArrow\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\tclassName=\"block-editor-list-view-drop-indicator\"\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={ style }\n\t\t\t\tclassName=\"block-editor-list-view-drop-indicator__line\"\n\t\t\t/>\n\t\t</Popover>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/drop-indicator.js"],"names":["Popover","useCallback","useMemo","ListViewDropIndicator","listViewRef","blockDropTarget","rootClientId","clientId","dropPosition","rootBlockElement","blockElement","current","_rootBlockElement","querySelector","undefined","_blockElement","targetElement","getDropIndicatorIndent","targetElementRect","getBoundingClientRect","rootBlockIconElement","rootBlockIconRect","right","left","style","indent","width","offsetWidth","getAnchorRect","ownerDocument","rect","anchorRect","height","top","bottom"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Popover } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\nexport default function ListViewDropIndicator( {\n\tlistViewRef,\n\tblockDropTarget,\n} ) {\n\tconst { rootClientId, clientId, dropPosition } = blockDropTarget || {};\n\n\tconst [ rootBlockElement, blockElement ] = useMemo( () => {\n\t\tif ( ! listViewRef.current ) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// The rootClientId will be defined whenever dropping into inner\n\t\t// block lists, but is undefined when dropping at the root level.\n\t\tconst _rootBlockElement = rootClientId\n\t\t\t? listViewRef.current.querySelector(\n\t\t\t\t\t`[data-block=\"${ rootClientId }\"]`\n\t\t\t )\n\t\t\t: undefined;\n\n\t\t// The clientId represents the sibling block, the dragged block will\n\t\t// usually be inserted adjacent to it. It will be undefined when\n\t\t// dropping a block into an empty block list.\n\t\tconst _blockElement = clientId\n\t\t\t? listViewRef.current.querySelector(\n\t\t\t\t\t`[data-block=\"${ clientId }\"]`\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn [ _rootBlockElement, _blockElement ];\n\t}, [ rootClientId, clientId ] );\n\n\t// The targetElement is the element that the drop indicator will appear\n\t// before or after. When dropping into an empty block list, blockElement\n\t// is undefined, so the indicator will appear after the rootBlockElement.\n\tconst targetElement = blockElement || rootBlockElement;\n\n\tconst getDropIndicatorIndent = useCallback( () => {\n\t\tif ( ! rootBlockElement ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Calculate the indent using the block icon of the root block.\n\t\t// Using a classname selector here might be flaky and could be\n\t\t// improved.\n\t\tconst targetElementRect = targetElement.getBoundingClientRect();\n\t\tconst rootBlockIconElement = rootBlockElement.querySelector(\n\t\t\t'.block-editor-block-icon'\n\t\t);\n\t\tconst rootBlockIconRect = rootBlockIconElement.getBoundingClientRect();\n\t\treturn rootBlockIconRect.right - targetElementRect.left;\n\t}, [ rootBlockElement, targetElement ] );\n\n\tconst style = useMemo( () => {\n\t\tif ( ! targetElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst indent = getDropIndicatorIndent();\n\n\t\treturn {\n\t\t\twidth: targetElement.offsetWidth - indent,\n\t\t};\n\t}, [ getDropIndicatorIndent, targetElement ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ! targetElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst ownerDocument = targetElement.ownerDocument;\n\t\tconst rect = targetElement.getBoundingClientRect();\n\t\tconst indent = getDropIndicatorIndent();\n\n\t\tconst anchorRect = {\n\t\t\tleft: rect.left + indent,\n\t\t\tright: rect.right,\n\t\t\twidth: 0,\n\t\t\theight: rect.height,\n\t\t\townerDocument,\n\t\t};\n\n\t\tif ( dropPosition === 'top' ) {\n\t\t\treturn {\n\t\t\t\t...anchorRect,\n\t\t\t\ttop: rect.top,\n\t\t\t\tbottom: rect.top,\n\t\t\t};\n\t\t}\n\n\t\tif ( dropPosition === 'bottom' || dropPosition === 'inside' ) {\n\t\t\treturn {\n\t\t\t\t...anchorRect,\n\t\t\t\ttop: rect.bottom,\n\t\t\t\tbottom: rect.bottom,\n\t\t\t};\n\t\t}\n\n\t\treturn {};\n\t}, [ targetElement, dropPosition, getDropIndicatorIndent ] );\n\n\tif ( ! targetElement ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\tclassName=\"block-editor-list-view-drop-indicator\"\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={ style }\n\t\t\t\tclassName=\"block-editor-list-view-drop-indicator__line\"\n\t\t\t/>\n\t\t</Popover>\n\t);\n}\n"]}
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import { createElement } from "@wordpress/element";
3
2
 
4
3
  /**
@@ -36,33 +35,22 @@ const expanded = (state, action) => {
36
35
 
37
36
  export const BLOCK_LIST_ITEM_HEIGHT = 36;
38
37
  /**
39
- * Wrap `ListViewRows` with `TreeGrid`. ListViewRows is a
40
- * recursive component (it renders itself), so this ensures TreeGrid is only
41
- * present at the very top of the navigation grid.
38
+ * Show a hierarchical list of blocks.
42
39
  *
43
- * @param {Object} props Components props.
44
- * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
45
- * @param {boolean} props.showNestedBlocks Flag to enable displaying nested blocks.
46
- * @param {boolean} props.showBlockMovers Flag to enable block movers
47
- * @param {boolean} props.__experimentalFeatures Flag to enable experimental features.
48
- * @param {boolean} props.__experimentalPersistentListViewFeatures Flag to enable features for the Persistent List View experiment.
49
- * @param {boolean} props.__experimentalHideContainerBlockActions Flag to hide actions of top level blocks (like core/widget-area)
50
- * @param {string} props.id Unique identifier for the root list element (primarily for a11y purposes).
51
- * @param {boolean} props.expandNested Flag to determine whether nested levels are expanded by default.
52
- * @param {Object} ref Forwarded ref
40
+ * @param {Object} props Components props.
41
+ * @param {string} props.id An HTML element id for the root element of ListView.
42
+ * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
43
+ * @param {boolean} props.showBlockMovers Flag to enable block movers
44
+ * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.
45
+ * @param {Object} ref Forwarded ref
53
46
  */
54
47
 
55
48
  function ListView(_ref, ref) {
56
49
  let {
57
- blocks,
58
- __experimentalFeatures,
59
- __experimentalPersistentListViewFeatures,
60
- __experimentalHideContainerBlockActions,
61
- showNestedBlocks,
62
- showBlockMovers,
63
50
  id,
64
- expandNested = false,
65
- ...props
51
+ blocks,
52
+ showBlockMovers = false,
53
+ isExpanded = false
66
54
  } = _ref;
67
55
  const {
68
56
  clientIdsTree,
@@ -109,7 +97,7 @@ function ListView(_ref, ref) {
109
97
  // See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.
110
98
 
111
99
  const [fixedListWindow] = useFixedWindowList(elementRef, BLOCK_LIST_ITEM_HEIGHT, visibleBlockCount, {
112
- useWindowing: __experimentalPersistentListViewFeatures,
100
+ useWindowing: true,
113
101
  windowOverscan: 40
114
102
  });
115
103
  const expand = useCallback(clientId => {
@@ -150,15 +138,12 @@ function ListView(_ref, ref) {
150
138
  }
151
139
  }, [updateBlockSelection]);
152
140
  const contextValue = useMemo(() => ({
153
- __experimentalFeatures,
154
- __experimentalPersistentListViewFeatures,
155
- __experimentalHideContainerBlockActions,
156
141
  isTreeGridMounted: isMounted.current,
157
142
  draggedClientIds,
158
143
  expandedState,
159
144
  expand,
160
145
  collapse
161
- }), [__experimentalFeatures, __experimentalPersistentListViewFeatures, __experimentalHideContainerBlockActions, isMounted.current, draggedClientIds, expandedState, expand, collapse]);
146
+ }), [isMounted.current, draggedClientIds, expandedState, expand, collapse]);
162
147
  return createElement(AsyncModeProvider, {
163
148
  value: true
164
149
  }, createElement(ListViewDropIndicator, {
@@ -174,15 +159,14 @@ function ListView(_ref, ref) {
174
159
  onFocusRow: focusRow
175
160
  }, createElement(ListViewContext.Provider, {
176
161
  value: contextValue
177
- }, createElement(ListViewBranch, _extends({
162
+ }, createElement(ListViewBranch, {
178
163
  blocks: clientIdsTree,
179
164
  selectBlock: selectEditorBlock,
180
- showNestedBlocks: showNestedBlocks,
181
165
  showBlockMovers: showBlockMovers,
182
166
  fixedListWindow: fixedListWindow,
183
167
  selectedClientIds: selectedClientIds,
184
- expandNested: expandNested
185
- }, props)))));
168
+ isExpanded: isExpanded
169
+ }))));
186
170
  }
187
171
 
188
172
  export default forwardRef(ListView);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/index.js"],"names":["useMergeRefs","__experimentalUseFixedWindowList","useFixedWindowList","__experimentalTreeGrid","TreeGrid","AsyncModeProvider","useSelect","useCallback","useEffect","useMemo","useRef","useReducer","forwardRef","__","ListViewBranch","ListViewContext","ListViewDropIndicator","useBlockSelection","useListViewClientIds","useListViewDropZone","useListViewExpandSelectedItem","store","blockEditorStore","expanded","state","action","Array","isArray","clientIds","reduce","newState","id","type","BLOCK_LIST_ITEM_HEIGHT","ListView","ref","blocks","__experimentalFeatures","__experimentalPersistentListViewFeatures","__experimentalHideContainerBlockActions","showNestedBlocks","showBlockMovers","expandNested","props","clientIdsTree","draggedClientIds","selectedClientIds","visibleBlockCount","select","getGlobalBlockCount","getClientIdsOfDescendants","draggedBlockCount","length","updateBlockSelection","expandedState","setExpandedState","dropZoneRef","target","blockDropTarget","elementRef","treeGridRef","isMounted","setSelectedTreeId","firstSelectedBlockClientId","selectEditorBlock","event","clientId","current","fixedListWindow","useWindowing","windowOverscan","expand","collapse","expandRow","row","dataset","block","collapseRow","focusRow","startRow","endRow","shiftKey","contextValue","isTreeGridMounted"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport { __experimentalTreeGrid as TreeGrid } from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicator from './drop-indicator';\nimport useBlockSelection from './use-block-selection';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport useListViewExpandSelectedItem from './use-list-view-expand-selected-item';\nimport { store as blockEditorStore } from '../../store';\n\nconst expanded = ( state, action ) => {\n\tif ( Array.isArray( action.clientIds ) ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.clientIds.reduce(\n\t\t\t\t( newState, id ) => ( {\n\t\t\t\t\t...newState,\n\t\t\t\t\t[ id ]: action.type === 'expand',\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t};\n\t}\n\treturn state;\n};\n\nexport const BLOCK_LIST_ITEM_HEIGHT = 36;\n\n/**\n * Wrap `ListViewRows` with `TreeGrid`. ListViewRows is a\n * recursive component (it renders itself), so this ensures TreeGrid is only\n * present at the very top of the navigation grid.\n *\n * @param {Object} props Components props.\n * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {boolean} props.showNestedBlocks Flag to enable displaying nested blocks.\n * @param {boolean} props.showBlockMovers Flag to enable block movers\n * @param {boolean} props.__experimentalFeatures Flag to enable experimental features.\n * @param {boolean} props.__experimentalPersistentListViewFeatures Flag to enable features for the Persistent List View experiment.\n * @param {boolean} props.__experimentalHideContainerBlockActions Flag to hide actions of top level blocks (like core/widget-area)\n * @param {string} props.id Unique identifier for the root list element (primarily for a11y purposes).\n * @param {boolean} props.expandNested Flag to determine whether nested levels are expanded by default.\n * @param {Object} ref Forwarded ref\n */\nfunction ListView(\n\t{\n\t\tblocks,\n\t\t__experimentalFeatures,\n\t\t__experimentalPersistentListViewFeatures,\n\t\t__experimentalHideContainerBlockActions,\n\t\tshowNestedBlocks,\n\t\tshowBlockMovers,\n\t\tid,\n\t\texpandNested = false,\n\t\t...props\n\t},\n\tref\n) {\n\tconst {\n\t\tclientIdsTree,\n\t\tdraggedClientIds,\n\t\tselectedClientIds,\n\t} = useListViewClientIds( blocks );\n\n\tconst { visibleBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getGlobalBlockCount, getClientIdsOfDescendants } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\n\tconst { updateBlockSelection } = useBlockSelection();\n\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();\n\tconst elementRef = useRef();\n\tconst treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );\n\n\tconst isMounted = useRef( false );\n\tconst { setSelectedTreeId } = useListViewExpandSelectedItem( {\n\t\tfirstSelectedBlockClientId: selectedClientIds[ 0 ],\n\t\tsetExpandedState,\n\t} );\n\tconst selectEditorBlock = useCallback(\n\t\t( event, clientId ) => {\n\t\t\tupdateBlockSelection( event, clientId );\n\t\t\tsetSelectedTreeId( clientId );\n\t\t},\n\t\t[ setSelectedTreeId, updateBlockSelection ]\n\t);\n\tuseEffect( () => {\n\t\tisMounted.current = true;\n\t}, [] );\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\tBLOCK_LIST_ITEM_HEIGHT,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\tuseWindowing: __experimentalPersistentListViewFeatures,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\tconst expand = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( { type: 'expand', clientIds: [ clientId ] } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( { type: 'collapse', clientIds: [ clientId ] } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\tconst focusRow = useCallback(\n\t\t( event, startRow, endRow ) => {\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tupdateBlockSelection(\n\t\t\t\t\tevent,\n\t\t\t\t\tstartRow?.dataset?.block,\n\t\t\t\t\tendRow?.dataset?.block\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ updateBlockSelection ]\n\t);\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\t__experimentalFeatures,\n\t\t\t__experimentalPersistentListViewFeatures,\n\t\t\t__experimentalHideContainerBlockActions,\n\t\t\tisTreeGridMounted: isMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t} ),\n\t\t[\n\t\t\t__experimentalFeatures,\n\t\t\t__experimentalPersistentListViewFeatures,\n\t\t\t__experimentalHideContainerBlockActions,\n\t\t\tisMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t]\n\t);\n\n\treturn (\n\t\t<AsyncModeProvider value={ true }>\n\t\t\t<ListViewDropIndicator\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t<TreeGrid\n\t\t\t\tid={ id }\n\t\t\t\tclassName=\"block-editor-list-view-tree\"\n\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\tref={ treeGridRef }\n\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\tonExpandRow={ expandRow }\n\t\t\t\tonFocusRow={ focusRow }\n\t\t\t>\n\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\tshowNestedBlocks={ showNestedBlocks }\n\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\texpandNested={ expandNested }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t</ListViewContext.Provider>\n\t\t\t</TreeGrid>\n\t\t</AsyncModeProvider>\n\t);\n}\nexport default forwardRef( ListView );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/index.js"],"names":["useMergeRefs","__experimentalUseFixedWindowList","useFixedWindowList","__experimentalTreeGrid","TreeGrid","AsyncModeProvider","useSelect","useCallback","useEffect","useMemo","useRef","useReducer","forwardRef","__","ListViewBranch","ListViewContext","ListViewDropIndicator","useBlockSelection","useListViewClientIds","useListViewDropZone","useListViewExpandSelectedItem","store","blockEditorStore","expanded","state","action","Array","isArray","clientIds","reduce","newState","id","type","BLOCK_LIST_ITEM_HEIGHT","ListView","ref","blocks","showBlockMovers","isExpanded","clientIdsTree","draggedClientIds","selectedClientIds","visibleBlockCount","select","getGlobalBlockCount","getClientIdsOfDescendants","draggedBlockCount","length","updateBlockSelection","expandedState","setExpandedState","dropZoneRef","target","blockDropTarget","elementRef","treeGridRef","isMounted","setSelectedTreeId","firstSelectedBlockClientId","selectEditorBlock","event","clientId","current","fixedListWindow","useWindowing","windowOverscan","expand","collapse","expandRow","row","dataset","block","collapseRow","focusRow","startRow","endRow","shiftKey","contextValue","isTreeGridMounted"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport { __experimentalTreeGrid as TreeGrid } from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicator from './drop-indicator';\nimport useBlockSelection from './use-block-selection';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport useListViewExpandSelectedItem from './use-list-view-expand-selected-item';\nimport { store as blockEditorStore } from '../../store';\n\nconst expanded = ( state, action ) => {\n\tif ( Array.isArray( action.clientIds ) ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.clientIds.reduce(\n\t\t\t\t( newState, id ) => ( {\n\t\t\t\t\t...newState,\n\t\t\t\t\t[ id ]: action.type === 'expand',\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t};\n\t}\n\treturn state;\n};\n\nexport const BLOCK_LIST_ITEM_HEIGHT = 36;\n\n/**\n * Show a hierarchical list of blocks.\n *\n * @param {Object} props Components props.\n * @param {string} props.id An HTML element id for the root element of ListView.\n * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {boolean} props.showBlockMovers Flag to enable block movers\n * @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.\n * @param {Object} ref Forwarded ref\n */\nfunction ListView(\n\t{ id, blocks, showBlockMovers = false, isExpanded = false },\n\tref\n) {\n\tconst {\n\t\tclientIdsTree,\n\t\tdraggedClientIds,\n\t\tselectedClientIds,\n\t} = useListViewClientIds( blocks );\n\n\tconst { visibleBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getGlobalBlockCount, getClientIdsOfDescendants } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\n\tconst { updateBlockSelection } = useBlockSelection();\n\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();\n\tconst elementRef = useRef();\n\tconst treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );\n\n\tconst isMounted = useRef( false );\n\tconst { setSelectedTreeId } = useListViewExpandSelectedItem( {\n\t\tfirstSelectedBlockClientId: selectedClientIds[ 0 ],\n\t\tsetExpandedState,\n\t} );\n\tconst selectEditorBlock = useCallback(\n\t\t( event, clientId ) => {\n\t\t\tupdateBlockSelection( event, clientId );\n\t\t\tsetSelectedTreeId( clientId );\n\t\t},\n\t\t[ setSelectedTreeId, updateBlockSelection ]\n\t);\n\tuseEffect( () => {\n\t\tisMounted.current = true;\n\t}, [] );\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\tBLOCK_LIST_ITEM_HEIGHT,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\tuseWindowing: true,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\tconst expand = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( { type: 'expand', clientIds: [ clientId ] } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( { type: 'collapse', clientIds: [ clientId ] } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\tconst focusRow = useCallback(\n\t\t( event, startRow, endRow ) => {\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tupdateBlockSelection(\n\t\t\t\t\tevent,\n\t\t\t\t\tstartRow?.dataset?.block,\n\t\t\t\t\tendRow?.dataset?.block\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ updateBlockSelection ]\n\t);\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tisTreeGridMounted: isMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t} ),\n\t\t[ isMounted.current, draggedClientIds, expandedState, expand, collapse ]\n\t);\n\n\treturn (\n\t\t<AsyncModeProvider value={ true }>\n\t\t\t<ListViewDropIndicator\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t<TreeGrid\n\t\t\t\tid={ id }\n\t\t\t\tclassName=\"block-editor-list-view-tree\"\n\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\tref={ treeGridRef }\n\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\tonExpandRow={ expandRow }\n\t\t\t\tonFocusRow={ focusRow }\n\t\t\t>\n\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t/>\n\t\t\t\t</ListViewContext.Provider>\n\t\t\t</TreeGrid>\n\t\t</AsyncModeProvider>\n\t);\n}\nexport default forwardRef( ListView );\n"]}
@@ -73,7 +73,6 @@ export function MediaPlaceholder(_ref2) {
73
73
  onDoubleClick,
74
74
  onFilesPreUpload = noop,
75
75
  onHTMLDrop = noop,
76
- onClose = noop,
77
76
  children,
78
77
  mediaLibraryButton,
79
78
  placeholder,
@@ -313,7 +312,6 @@ export function MediaPlaceholder(_ref2) {
313
312
  gallery: multiple && onlyAllowsImages(),
314
313
  multiple: multiple,
315
314
  onSelect: onSelect,
316
- onClose: onClose,
317
315
  allowedTypes: allowedTypes,
318
316
  value: Array.isArray(value) ? value.map(_ref7 => {
319
317
  let {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"names":["noop","classnames","Button","FormFileUpload","Placeholder","DropZone","withFilters","__","useState","useEffect","useSelect","keyboardReturn","MediaUpload","MediaUploadCheck","URLPopover","store","blockEditorStore","InsertFromURLPopover","src","onChange","onSubmit","onClose","MediaPlaceholder","value","allowedTypes","className","icon","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onSelectURL","onDoubleClick","onFilesPreUpload","onHTMLDrop","children","mediaLibraryButton","placeholder","style","mediaUpload","select","getSettings","setSrc","isURLInputVisible","setIsURLInputVisible","onlyAllowsImages","length","every","allowedType","startsWith","onChangeSrc","event","target","openURLInput","closeURLInput","onSubmitSrc","preventDefault","onFilesUpload","files","setMedia","lastMediaPassed","newMedia","filteredMedia","filter","item","id","some","Number","urlSlug","url","includes","concat","map","media","cutOffIndex","lastIndexOf","slice","filesList","onFileChange","onUpload","defaultRenderPlaceholder","content","instructions","title","undefined","typesAllowed","firstAllowedType","isOneType","isAudio","isImage","isVideo","placeholderClassName","renderPlaceholder","renderDropZone","renderCancelLink","renderUrlSelectionUI","renderMediaUploadChecked","defaultButton","open","libraryButton","uploadMediaLibraryButton","Array","isArray","openFileDialog"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFormFileUpload,\n\tPlaceholder,\n\tDropZone,\n\twithFilters,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport URLPopover from '../url-popover';\nimport { store as blockEditorStore } from '../../store';\n\nconst InsertFromURLPopover = ( { src, onChange, onSubmit, onClose } ) => (\n\t<URLPopover onClose={ onClose }>\n\t\t<form\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-form\"\n\t\t\tonSubmit={ onSubmit }\n\t\t>\n\t\t\t<input\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-field\"\n\t\t\t\ttype=\"text\"\n\t\t\t\taria-label={ __( 'URL' ) }\n\t\t\t\tplaceholder={ __( 'Paste or type URL' ) }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalue={ src }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-submit-button\"\n\t\t\t\ticon={ keyboardReturn }\n\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\ttype=\"submit\"\n\t\t\t/>\n\t\t</form>\n\t</URLPopover>\n);\n\nexport function MediaPlaceholder( {\n\tvalue = {},\n\tallowedTypes,\n\tclassName,\n\ticon,\n\tlabels = {},\n\tmediaPreview,\n\tnotices,\n\tisAppender,\n\taccept,\n\taddToGallery,\n\tmultiple = false,\n\thandleUpload = true,\n\tdisableDropZone,\n\tdisableMediaButtons,\n\tonError,\n\tonSelect,\n\tonCancel,\n\tonSelectURL,\n\tonDoubleClick,\n\tonFilesPreUpload = noop,\n\tonHTMLDrop = noop,\n\tonClose = noop,\n\tchildren,\n\tmediaLibraryButton,\n\tplaceholder,\n\tstyle,\n} ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\tconst [ src, setSrc ] = useState( '' );\n\tconst [ isURLInputVisible, setIsURLInputVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tsetSrc( value?.src ?? '' );\n\t}, [ value?.src ] );\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst onChangeSrc = ( event ) => {\n\t\tsetSrc( event.target.value );\n\t};\n\n\tconst openURLInput = () => {\n\t\tsetIsURLInputVisible( true );\n\t};\n\tconst closeURLInput = () => {\n\t\tsetIsURLInputVisible( false );\n\t};\n\n\tconst onSubmitSrc = ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( src && onSelectURL ) {\n\t\t\tonSelectURL( src );\n\t\t\tcloseURLInput();\n\t\t}\n\t};\n\n\tconst onFilesUpload = ( files ) => {\n\t\tif ( ! handleUpload ) {\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesPreUpload( files );\n\t\tlet setMedia;\n\t\tif ( multiple ) {\n\t\t\tif ( addToGallery ) {\n\t\t\t\t// Since the setMedia function runs multiple times per upload group\n\t\t\t\t// and is passed newMedia containing every item in its group each time, we must\n\t\t\t\t// filter out whatever this upload group had previously returned to the\n\t\t\t\t// gallery before adding and returning the image array with replacement newMedia\n\t\t\t\t// values.\n\n\t\t\t\t// Define an array to store urls from newMedia between subsequent function calls.\n\t\t\t\tlet lastMediaPassed = [];\n\t\t\t\tsetMedia = ( newMedia ) => {\n\t\t\t\t\t// Remove any images this upload group is responsible for (lastMediaPassed).\n\t\t\t\t\t// Their replacements are contained in newMedia.\n\t\t\t\t\tconst filteredMedia = ( value ?? [] ).filter( ( item ) => {\n\t\t\t\t\t\t// If Item has id, only remove it if lastMediaPassed has an item with that id.\n\t\t\t\t\t\tif ( item.id ) {\n\t\t\t\t\t\t\treturn ! lastMediaPassed.some(\n\t\t\t\t\t\t\t\t// Be sure to convert to number for comparison.\n\t\t\t\t\t\t\t\t( { id } ) => Number( id ) === Number( item.id )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compare transient images via .includes since gallery may append extra info onto the url.\n\t\t\t\t\t\treturn ! lastMediaPassed.some( ( { urlSlug } ) =>\n\t\t\t\t\t\t\titem.url.includes( urlSlug )\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t\t// Return the filtered media array along with newMedia.\n\t\t\t\t\tonSelect( filteredMedia.concat( newMedia ) );\n\t\t\t\t\t// Reset lastMediaPassed and set it with ids and urls from newMedia.\n\t\t\t\t\tlastMediaPassed = newMedia.map( ( media ) => {\n\t\t\t\t\t\t// Add everything up to '.fileType' to compare via .includes.\n\t\t\t\t\t\tconst cutOffIndex = media.url.lastIndexOf( '.' );\n\t\t\t\t\t\tconst urlSlug = media.url.slice( 0, cutOffIndex );\n\t\t\t\t\t\treturn { id: media.id, urlSlug };\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsetMedia = onSelect;\n\t\t\t}\n\t\t} else {\n\t\t\tsetMedia = ( [ media ] ) => onSelect( media );\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tconst onUpload = ( event ) => {\n\t\tonFilesUpload( event.target.files );\n\t};\n\n\tconst defaultRenderPlaceholder = ( content ) => {\n\t\tlet { instructions, title } = labels;\n\n\t\tif ( ! mediaUpload && ! onSelectURL ) {\n\t\t\tinstructions = __(\n\t\t\t\t'To edit this block, you need permission to upload media.'\n\t\t\t);\n\t\t}\n\n\t\tif ( instructions === undefined || title === undefined ) {\n\t\t\tconst typesAllowed = allowedTypes ?? [];\n\n\t\t\tconst [ firstAllowedType ] = typesAllowed;\n\t\t\tconst isOneType = 1 === typesAllowed.length;\n\t\t\tconst isAudio = isOneType && 'audio' === firstAllowedType;\n\t\t\tconst isImage = isOneType && 'image' === firstAllowedType;\n\t\t\tconst isVideo = isOneType && 'video' === firstAllowedType;\n\n\t\t\tif ( instructions === undefined && mediaUpload ) {\n\t\t\t\tinstructions = __(\n\t\t\t\t\t'Upload a media file or pick one from your media library.'\n\t\t\t\t);\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an audio file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( title === undefined ) {\n\t\t\t\ttitle = __( 'Media' );\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\ttitle = __( 'Audio' );\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\ttitle = __( 'Image' );\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\ttitle = __( 'Video' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'is-appender': isAppender,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tinstructions={ instructions }\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tnotices={ notices }\n\t\t\t\tonDoubleClick={ onDoubleClick }\n\t\t\t\tpreview={ mediaPreview }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t\t{ children }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\tconst renderPlaceholder = placeholder ?? defaultRenderPlaceholder;\n\n\tconst renderDropZone = () => {\n\t\tif ( disableDropZone ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<DropZone onFilesDrop={ onFilesUpload } onHTMLDrop={ onHTMLDrop } />\n\t\t);\n\t};\n\n\tconst renderCancelLink = () => {\n\t\treturn (\n\t\t\tonCancel && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-media-placeholder__cancel-button\"\n\t\t\t\t\ttitle={ __( 'Cancel' ) }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderUrlSelectionUI = () => {\n\t\treturn (\n\t\t\tonSelectURL && (\n\t\t\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\t\t\tonClick={ openURLInput }\n\t\t\t\t\t\tisPressed={ isURLInputVisible }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert from URL' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t{ isURLInputVisible && (\n\t\t\t\t\t\t<InsertFromURLPopover\n\t\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\t\tonChange={ onChangeSrc }\n\t\t\t\t\t\t\tonSubmit={ onSubmitSrc }\n\t\t\t\t\t\t\tonClose={ closeURLInput }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderMediaUploadChecked = () => {\n\t\tconst defaultButton = ( { open } ) => {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Media Library' ) }\n\t\t\t\t</Button>\n\t\t\t);\n\t\t};\n\t\tconst libraryButton = mediaLibraryButton ?? defaultButton;\n\t\tconst uploadMediaLibraryButton = (\n\t\t\t<MediaUpload\n\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\tgallery={ multiple && onlyAllowsImages() }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tonClose={ onClose }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tvalue={\n\t\t\t\t\tArray.isArray( value )\n\t\t\t\t\t\t? value.map( ( { id } ) => id )\n\t\t\t\t\t\t: value.id\n\t\t\t\t}\n\t\t\t\trender={ libraryButton }\n\t\t\t/>\n\t\t);\n\n\t\tif ( mediaUpload && isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn renderPlaceholder( content );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tif ( mediaUpload ) {\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</FormFileUpload>\n\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t</>\n\t\t\t);\n\t\t\treturn renderPlaceholder( content );\n\t\t}\n\n\t\treturn renderPlaceholder( uploadMediaLibraryButton );\n\t};\n\n\tif ( disableMediaButtons ) {\n\t\treturn <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck\n\t\t\tfallback={ renderPlaceholder( renderUrlSelectionUI() ) }\n\t\t>\n\t\t\t{ renderMediaUploadChecked() }\n\t\t</MediaUploadCheck>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters( 'editor.MediaPlaceholder' )( MediaPlaceholder );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"names":["noop","classnames","Button","FormFileUpload","Placeholder","DropZone","withFilters","__","useState","useEffect","useSelect","keyboardReturn","MediaUpload","MediaUploadCheck","URLPopover","store","blockEditorStore","InsertFromURLPopover","src","onChange","onSubmit","onClose","MediaPlaceholder","value","allowedTypes","className","icon","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onSelectURL","onDoubleClick","onFilesPreUpload","onHTMLDrop","children","mediaLibraryButton","placeholder","style","mediaUpload","select","getSettings","setSrc","isURLInputVisible","setIsURLInputVisible","onlyAllowsImages","length","every","allowedType","startsWith","onChangeSrc","event","target","openURLInput","closeURLInput","onSubmitSrc","preventDefault","onFilesUpload","files","setMedia","lastMediaPassed","newMedia","filteredMedia","filter","item","id","some","Number","urlSlug","url","includes","concat","map","media","cutOffIndex","lastIndexOf","slice","filesList","onFileChange","onUpload","defaultRenderPlaceholder","content","instructions","title","undefined","typesAllowed","firstAllowedType","isOneType","isAudio","isImage","isVideo","placeholderClassName","renderPlaceholder","renderDropZone","renderCancelLink","renderUrlSelectionUI","renderMediaUploadChecked","defaultButton","open","libraryButton","uploadMediaLibraryButton","Array","isArray","openFileDialog"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFormFileUpload,\n\tPlaceholder,\n\tDropZone,\n\twithFilters,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport URLPopover from '../url-popover';\nimport { store as blockEditorStore } from '../../store';\n\nconst InsertFromURLPopover = ( { src, onChange, onSubmit, onClose } ) => (\n\t<URLPopover onClose={ onClose }>\n\t\t<form\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-form\"\n\t\t\tonSubmit={ onSubmit }\n\t\t>\n\t\t\t<input\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-field\"\n\t\t\t\ttype=\"text\"\n\t\t\t\taria-label={ __( 'URL' ) }\n\t\t\t\tplaceholder={ __( 'Paste or type URL' ) }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalue={ src }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-submit-button\"\n\t\t\t\ticon={ keyboardReturn }\n\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\ttype=\"submit\"\n\t\t\t/>\n\t\t</form>\n\t</URLPopover>\n);\n\nexport function MediaPlaceholder( {\n\tvalue = {},\n\tallowedTypes,\n\tclassName,\n\ticon,\n\tlabels = {},\n\tmediaPreview,\n\tnotices,\n\tisAppender,\n\taccept,\n\taddToGallery,\n\tmultiple = false,\n\thandleUpload = true,\n\tdisableDropZone,\n\tdisableMediaButtons,\n\tonError,\n\tonSelect,\n\tonCancel,\n\tonSelectURL,\n\tonDoubleClick,\n\tonFilesPreUpload = noop,\n\tonHTMLDrop = noop,\n\tchildren,\n\tmediaLibraryButton,\n\tplaceholder,\n\tstyle,\n} ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\tconst [ src, setSrc ] = useState( '' );\n\tconst [ isURLInputVisible, setIsURLInputVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tsetSrc( value?.src ?? '' );\n\t}, [ value?.src ] );\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst onChangeSrc = ( event ) => {\n\t\tsetSrc( event.target.value );\n\t};\n\n\tconst openURLInput = () => {\n\t\tsetIsURLInputVisible( true );\n\t};\n\tconst closeURLInput = () => {\n\t\tsetIsURLInputVisible( false );\n\t};\n\n\tconst onSubmitSrc = ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( src && onSelectURL ) {\n\t\t\tonSelectURL( src );\n\t\t\tcloseURLInput();\n\t\t}\n\t};\n\n\tconst onFilesUpload = ( files ) => {\n\t\tif ( ! handleUpload ) {\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesPreUpload( files );\n\t\tlet setMedia;\n\t\tif ( multiple ) {\n\t\t\tif ( addToGallery ) {\n\t\t\t\t// Since the setMedia function runs multiple times per upload group\n\t\t\t\t// and is passed newMedia containing every item in its group each time, we must\n\t\t\t\t// filter out whatever this upload group had previously returned to the\n\t\t\t\t// gallery before adding and returning the image array with replacement newMedia\n\t\t\t\t// values.\n\n\t\t\t\t// Define an array to store urls from newMedia between subsequent function calls.\n\t\t\t\tlet lastMediaPassed = [];\n\t\t\t\tsetMedia = ( newMedia ) => {\n\t\t\t\t\t// Remove any images this upload group is responsible for (lastMediaPassed).\n\t\t\t\t\t// Their replacements are contained in newMedia.\n\t\t\t\t\tconst filteredMedia = ( value ?? [] ).filter( ( item ) => {\n\t\t\t\t\t\t// If Item has id, only remove it if lastMediaPassed has an item with that id.\n\t\t\t\t\t\tif ( item.id ) {\n\t\t\t\t\t\t\treturn ! lastMediaPassed.some(\n\t\t\t\t\t\t\t\t// Be sure to convert to number for comparison.\n\t\t\t\t\t\t\t\t( { id } ) => Number( id ) === Number( item.id )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compare transient images via .includes since gallery may append extra info onto the url.\n\t\t\t\t\t\treturn ! lastMediaPassed.some( ( { urlSlug } ) =>\n\t\t\t\t\t\t\titem.url.includes( urlSlug )\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t\t// Return the filtered media array along with newMedia.\n\t\t\t\t\tonSelect( filteredMedia.concat( newMedia ) );\n\t\t\t\t\t// Reset lastMediaPassed and set it with ids and urls from newMedia.\n\t\t\t\t\tlastMediaPassed = newMedia.map( ( media ) => {\n\t\t\t\t\t\t// Add everything up to '.fileType' to compare via .includes.\n\t\t\t\t\t\tconst cutOffIndex = media.url.lastIndexOf( '.' );\n\t\t\t\t\t\tconst urlSlug = media.url.slice( 0, cutOffIndex );\n\t\t\t\t\t\treturn { id: media.id, urlSlug };\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsetMedia = onSelect;\n\t\t\t}\n\t\t} else {\n\t\t\tsetMedia = ( [ media ] ) => onSelect( media );\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tconst onUpload = ( event ) => {\n\t\tonFilesUpload( event.target.files );\n\t};\n\n\tconst defaultRenderPlaceholder = ( content ) => {\n\t\tlet { instructions, title } = labels;\n\n\t\tif ( ! mediaUpload && ! onSelectURL ) {\n\t\t\tinstructions = __(\n\t\t\t\t'To edit this block, you need permission to upload media.'\n\t\t\t);\n\t\t}\n\n\t\tif ( instructions === undefined || title === undefined ) {\n\t\t\tconst typesAllowed = allowedTypes ?? [];\n\n\t\t\tconst [ firstAllowedType ] = typesAllowed;\n\t\t\tconst isOneType = 1 === typesAllowed.length;\n\t\t\tconst isAudio = isOneType && 'audio' === firstAllowedType;\n\t\t\tconst isImage = isOneType && 'image' === firstAllowedType;\n\t\t\tconst isVideo = isOneType && 'video' === firstAllowedType;\n\n\t\t\tif ( instructions === undefined && mediaUpload ) {\n\t\t\t\tinstructions = __(\n\t\t\t\t\t'Upload a media file or pick one from your media library.'\n\t\t\t\t);\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an audio file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( title === undefined ) {\n\t\t\t\ttitle = __( 'Media' );\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\ttitle = __( 'Audio' );\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\ttitle = __( 'Image' );\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\ttitle = __( 'Video' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'is-appender': isAppender,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tinstructions={ instructions }\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tnotices={ notices }\n\t\t\t\tonDoubleClick={ onDoubleClick }\n\t\t\t\tpreview={ mediaPreview }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t\t{ children }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\tconst renderPlaceholder = placeholder ?? defaultRenderPlaceholder;\n\n\tconst renderDropZone = () => {\n\t\tif ( disableDropZone ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<DropZone onFilesDrop={ onFilesUpload } onHTMLDrop={ onHTMLDrop } />\n\t\t);\n\t};\n\n\tconst renderCancelLink = () => {\n\t\treturn (\n\t\t\tonCancel && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-media-placeholder__cancel-button\"\n\t\t\t\t\ttitle={ __( 'Cancel' ) }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderUrlSelectionUI = () => {\n\t\treturn (\n\t\t\tonSelectURL && (\n\t\t\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\t\t\tonClick={ openURLInput }\n\t\t\t\t\t\tisPressed={ isURLInputVisible }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert from URL' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t{ isURLInputVisible && (\n\t\t\t\t\t\t<InsertFromURLPopover\n\t\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\t\tonChange={ onChangeSrc }\n\t\t\t\t\t\t\tonSubmit={ onSubmitSrc }\n\t\t\t\t\t\t\tonClose={ closeURLInput }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderMediaUploadChecked = () => {\n\t\tconst defaultButton = ( { open } ) => {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Media Library' ) }\n\t\t\t\t</Button>\n\t\t\t);\n\t\t};\n\t\tconst libraryButton = mediaLibraryButton ?? defaultButton;\n\t\tconst uploadMediaLibraryButton = (\n\t\t\t<MediaUpload\n\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\tgallery={ multiple && onlyAllowsImages() }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tvalue={\n\t\t\t\t\tArray.isArray( value )\n\t\t\t\t\t\t? value.map( ( { id } ) => id )\n\t\t\t\t\t\t: value.id\n\t\t\t\t}\n\t\t\t\trender={ libraryButton }\n\t\t\t/>\n\t\t);\n\n\t\tif ( mediaUpload && isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn renderPlaceholder( content );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tif ( mediaUpload ) {\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</FormFileUpload>\n\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t</>\n\t\t\t);\n\t\t\treturn renderPlaceholder( content );\n\t\t}\n\n\t\treturn renderPlaceholder( uploadMediaLibraryButton );\n\t};\n\n\tif ( disableMediaButtons ) {\n\t\treturn <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck\n\t\t\tfallback={ renderPlaceholder( renderUrlSelectionUI() ) }\n\t\t>\n\t\t\t{ renderMediaUploadChecked() }\n\t\t</MediaUploadCheck>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters( 'editor.MediaPlaceholder' )( MediaPlaceholder );\n"]}
@@ -38,7 +38,6 @@ const MediaReplaceFlow = _ref => {
38
38
  onSelect,
39
39
  onSelectURL,
40
40
  onFilesUpload = noop,
41
- onCloseModal = noop,
42
41
  name = __('Replace'),
43
42
  createNotice,
44
43
  removeNotice,
@@ -154,7 +153,6 @@ const MediaReplaceFlow = _ref => {
154
153
  value: multiple ? mediaIds : mediaId,
155
154
  onSelect: media => selectMedia(media, onClose),
156
155
  allowedTypes: allowedTypes,
157
- onClose: onCloseModal,
158
156
  render: _ref5 => {
159
157
  let {
160
158
  open
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/media-replace-flow/index.js"],"names":["noop","uniqueId","useState","useRef","__","speak","FormFileUpload","NavigableMenu","MenuItem","ToolbarButton","Dropdown","withFilters","useSelect","withDispatch","DOWN","upload","media","mediaIcon","compose","__unstableStripHTML","stripHTML","store","noticesStore","MediaUpload","MediaUploadCheck","LinkControl","blockEditorStore","MediaReplaceFlow","mediaURL","mediaId","mediaIds","allowedTypes","accept","onError","onSelect","onSelectURL","onFilesUpload","onCloseModal","name","createNotice","removeNotice","children","multiple","addToGallery","handleUpload","mediaURLValue","setMediaURLValue","mediaUpload","select","getSettings","editMediaButtonRef","errorNoticeID","onUploadError","message","safeMessage","setTimeout","id","isDismissible","selectMedia","closeMenu","url","uploadFiles","event","files","target","filesList","onFileChange","openOnArrowDown","keyCode","preventDefault","click","onlyAllowsImages","length","every","allowedType","startsWith","gallery","POPOVER_PROPS","isAlternate","isOpen","onToggle","onClose","open","openFileDialog","current","focus","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop, uniqueId } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport {\n\tFormFileUpload,\n\tNavigableMenu,\n\tMenuItem,\n\tToolbarButton,\n\tDropdown,\n\twithFilters,\n} from '@wordpress/components';\nimport { useSelect, withDispatch } from '@wordpress/data';\nimport { DOWN } from '@wordpress/keycodes';\nimport { upload, media as mediaIcon } from '@wordpress/icons';\nimport { compose } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport LinkControl from '../link-control';\nimport { store as blockEditorStore } from '../../store';\n\nconst MediaReplaceFlow = ( {\n\tmediaURL,\n\tmediaId,\n\tmediaIds,\n\tallowedTypes,\n\taccept,\n\tonError,\n\tonSelect,\n\tonSelectURL,\n\tonFilesUpload = noop,\n\tonCloseModal = noop,\n\tname = __( 'Replace' ),\n\tcreateNotice,\n\tremoveNotice,\n\tchildren,\n\tmultiple = false,\n\taddToGallery,\n\thandleUpload = true,\n} ) => {\n\tconst [ mediaURLValue, setMediaURLValue ] = useState( mediaURL );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst editMediaButtonRef = useRef();\n\tconst errorNoticeID = uniqueId(\n\t\t'block-editor/media-replace-flow/error-notice/'\n\t);\n\n\tconst onUploadError = ( message ) => {\n\t\tconst safeMessage = stripHTML( message );\n\t\tif ( onError ) {\n\t\t\tonError( safeMessage );\n\t\t\treturn;\n\t\t}\n\t\t// We need to set a timeout for showing the notice\n\t\t// so that VoiceOver and possibly other screen readers\n\t\t// can announce the error afer the toolbar button\n\t\t// regains focus once the upload dialog closes.\n\t\t// Otherwise VO simply skips over the notice and announces\n\t\t// the focused element and the open menu.\n\t\tsetTimeout( () => {\n\t\t\tcreateNotice( 'error', safeMessage, {\n\t\t\t\tspeak: true,\n\t\t\t\tid: errorNoticeID,\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t}, 1000 );\n\t};\n\n\tconst selectMedia = ( media, closeMenu ) => {\n\t\tcloseMenu();\n\t\tsetMediaURLValue( media?.url );\n\t\t// Calling `onSelect` after the state update since it might unmount the component.\n\t\tonSelect( media );\n\t\tspeak( __( 'The media file has been replaced' ) );\n\t\tremoveNotice( errorNoticeID );\n\t};\n\n\tconst uploadFiles = ( event, closeMenu ) => {\n\t\tconst files = event.target.files;\n\t\tif ( ! handleUpload ) {\n\t\t\tcloseMenu();\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesUpload( files );\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tselectMedia( media, closeMenu );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.target.click();\n\t\t}\n\t};\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst gallery = multiple && onlyAllowsImages();\n\n\tconst POPOVER_PROPS = {\n\t\tisAlternate: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tcontentClassName=\"block-editor-media-replace-flow__options\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tref={ editMediaButtonRef }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t>\n\t\t\t\t\t{ name }\n\t\t\t\t</ToolbarButton>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu className=\"block-editor-media-replace-flow__media-upload-menu\">\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tgallery={ gallery }\n\t\t\t\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\tvalue={ multiple ? mediaIds : mediaId }\n\t\t\t\t\t\t\tonSelect={ ( media ) =>\n\t\t\t\t\t\t\t\tselectMedia( media, onClose )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\t\t\t\tonClose={ onCloseModal }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<MenuItem icon={ mediaIcon } onClick={ open }>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\tuploadFiles( event, onClose );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t{ onSelectURL && (\n\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t\t\t\t\t<form className=\"block-editor-media-flow__url-input\">\n\t\t\t\t\t\t\t<span className=\"block-editor-media-replace-flow__image-url-label\">\n\t\t\t\t\t\t\t\t{ __( 'Current media URL:' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tvalue={ { url: mediaURLValue } }\n\t\t\t\t\t\t\t\tsettings={ [] }\n\t\t\t\t\t\t\t\tshowSuggestions={ false }\n\t\t\t\t\t\t\t\tonChange={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\tsetMediaURLValue( url );\n\t\t\t\t\t\t\t\t\tonSelectURL( url );\n\t\t\t\t\t\t\t\t\teditMediaButtonRef.current.focus();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-replace-flow/README.md\n */\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createNotice, removeNotice } = dispatch( noticesStore );\n\t\treturn {\n\t\t\tcreateNotice,\n\t\t\tremoveNotice,\n\t\t};\n\t} ),\n\twithFilters( 'editor.MediaReplaceFlow' ),\n] )( MediaReplaceFlow );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/media-replace-flow/index.js"],"names":["noop","uniqueId","useState","useRef","__","speak","FormFileUpload","NavigableMenu","MenuItem","ToolbarButton","Dropdown","withFilters","useSelect","withDispatch","DOWN","upload","media","mediaIcon","compose","__unstableStripHTML","stripHTML","store","noticesStore","MediaUpload","MediaUploadCheck","LinkControl","blockEditorStore","MediaReplaceFlow","mediaURL","mediaId","mediaIds","allowedTypes","accept","onError","onSelect","onSelectURL","onFilesUpload","name","createNotice","removeNotice","children","multiple","addToGallery","handleUpload","mediaURLValue","setMediaURLValue","mediaUpload","select","getSettings","editMediaButtonRef","errorNoticeID","onUploadError","message","safeMessage","setTimeout","id","isDismissible","selectMedia","closeMenu","url","uploadFiles","event","files","target","filesList","onFileChange","openOnArrowDown","keyCode","preventDefault","click","onlyAllowsImages","length","every","allowedType","startsWith","gallery","POPOVER_PROPS","isAlternate","isOpen","onToggle","onClose","open","openFileDialog","current","focus","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop, uniqueId } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport {\n\tFormFileUpload,\n\tNavigableMenu,\n\tMenuItem,\n\tToolbarButton,\n\tDropdown,\n\twithFilters,\n} from '@wordpress/components';\nimport { useSelect, withDispatch } from '@wordpress/data';\nimport { DOWN } from '@wordpress/keycodes';\nimport { upload, media as mediaIcon } from '@wordpress/icons';\nimport { compose } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport LinkControl from '../link-control';\nimport { store as blockEditorStore } from '../../store';\n\nconst MediaReplaceFlow = ( {\n\tmediaURL,\n\tmediaId,\n\tmediaIds,\n\tallowedTypes,\n\taccept,\n\tonError,\n\tonSelect,\n\tonSelectURL,\n\tonFilesUpload = noop,\n\tname = __( 'Replace' ),\n\tcreateNotice,\n\tremoveNotice,\n\tchildren,\n\tmultiple = false,\n\taddToGallery,\n\thandleUpload = true,\n} ) => {\n\tconst [ mediaURLValue, setMediaURLValue ] = useState( mediaURL );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst editMediaButtonRef = useRef();\n\tconst errorNoticeID = uniqueId(\n\t\t'block-editor/media-replace-flow/error-notice/'\n\t);\n\n\tconst onUploadError = ( message ) => {\n\t\tconst safeMessage = stripHTML( message );\n\t\tif ( onError ) {\n\t\t\tonError( safeMessage );\n\t\t\treturn;\n\t\t}\n\t\t// We need to set a timeout for showing the notice\n\t\t// so that VoiceOver and possibly other screen readers\n\t\t// can announce the error afer the toolbar button\n\t\t// regains focus once the upload dialog closes.\n\t\t// Otherwise VO simply skips over the notice and announces\n\t\t// the focused element and the open menu.\n\t\tsetTimeout( () => {\n\t\t\tcreateNotice( 'error', safeMessage, {\n\t\t\t\tspeak: true,\n\t\t\t\tid: errorNoticeID,\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t}, 1000 );\n\t};\n\n\tconst selectMedia = ( media, closeMenu ) => {\n\t\tcloseMenu();\n\t\tsetMediaURLValue( media?.url );\n\t\t// Calling `onSelect` after the state update since it might unmount the component.\n\t\tonSelect( media );\n\t\tspeak( __( 'The media file has been replaced' ) );\n\t\tremoveNotice( errorNoticeID );\n\t};\n\n\tconst uploadFiles = ( event, closeMenu ) => {\n\t\tconst files = event.target.files;\n\t\tif ( ! handleUpload ) {\n\t\t\tcloseMenu();\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesUpload( files );\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tselectMedia( media, closeMenu );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.target.click();\n\t\t}\n\t};\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst gallery = multiple && onlyAllowsImages();\n\n\tconst POPOVER_PROPS = {\n\t\tisAlternate: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tcontentClassName=\"block-editor-media-replace-flow__options\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tref={ editMediaButtonRef }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t>\n\t\t\t\t\t{ name }\n\t\t\t\t</ToolbarButton>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu className=\"block-editor-media-replace-flow__media-upload-menu\">\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tgallery={ gallery }\n\t\t\t\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\tvalue={ multiple ? mediaIds : mediaId }\n\t\t\t\t\t\t\tonSelect={ ( media ) =>\n\t\t\t\t\t\t\t\tselectMedia( media, onClose )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<MenuItem icon={ mediaIcon } onClick={ open }>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\tuploadFiles( event, onClose );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t{ onSelectURL && (\n\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t\t\t\t\t<form className=\"block-editor-media-flow__url-input\">\n\t\t\t\t\t\t\t<span className=\"block-editor-media-replace-flow__image-url-label\">\n\t\t\t\t\t\t\t\t{ __( 'Current media URL:' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tvalue={ { url: mediaURLValue } }\n\t\t\t\t\t\t\t\tsettings={ [] }\n\t\t\t\t\t\t\t\tshowSuggestions={ false }\n\t\t\t\t\t\t\t\tonChange={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\tsetMediaURLValue( url );\n\t\t\t\t\t\t\t\t\tonSelectURL( url );\n\t\t\t\t\t\t\t\t\teditMediaButtonRef.current.focus();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-replace-flow/README.md\n */\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createNotice, removeNotice } = dispatch( noticesStore );\n\t\treturn {\n\t\t\tcreateNotice,\n\t\t\tremoveNotice,\n\t\t};\n\t} ),\n\twithFilters( 'editor.MediaReplaceFlow' ),\n] )( MediaReplaceFlow );\n"]}
@@ -26,6 +26,7 @@ export const OPTION_TAKE_VIDEO = __('Take a Video');
26
26
  export const OPTION_TAKE_PHOTO = __('Take a Photo');
27
27
  export const OPTION_TAKE_PHOTO_OR_VIDEO = __('Take a Photo or Video');
28
28
  export const OPTION_INSERT_FROM_URL = __('Insert from URL');
29
+ export const OPTION_WORDPRESS_MEDIA_LIBRARY = __('WordPress Media Library');
29
30
  const URL_MEDIA_SOURCE = 'URL';
30
31
  const PICKER_OPENING_DELAY = 200;
31
32
  export class MediaUpload extends Component {
@@ -63,6 +64,9 @@ export class MediaUpload extends Component {
63
64
  }
64
65
 
65
66
  getAllSources() {
67
+ const {
68
+ onSelectURL
69
+ } = this.props;
66
70
  const cameraImageSource = {
67
71
  id: mediaSources.deviceCamera,
68
72
  // ID is the value sent to native.
@@ -102,10 +106,11 @@ export class MediaUpload extends Component {
102
106
  id: URL_MEDIA_SOURCE,
103
107
  value: URL_MEDIA_SOURCE,
104
108
  label: __('Insert from URL'),
105
- types: [MEDIA_TYPE_AUDIO],
109
+ types: [MEDIA_TYPE_AUDIO, MEDIA_TYPE_IMAGE],
106
110
  icon: globe
107
- };
108
- const internalSources = [deviceLibrarySource, cameraImageSource, cameraVideoSource, siteLibrarySource, urlSource];
111
+ }; // Only include `urlSource` option if `onSelectURL` prop is present, in order to match the web behavior.
112
+
113
+ const internalSources = [deviceLibrarySource, cameraImageSource, cameraVideoSource, siteLibrarySource, ...(onSelectURL ? [urlSource] : [])];
109
114
  return internalSources.concat(this.state.otherMediaOptions);
110
115
  }
111
116