@wordpress/block-editor 9.4.0 → 9.7.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 (483) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -8
  3. package/build/components/block-list/block-invalid-warning.native.js +54 -6
  4. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  5. package/build/components/block-list/block.js +14 -4
  6. package/build/components/block-list/block.js.map +1 -1
  7. package/build/components/block-list/block.native.js +2 -1
  8. package/build/components/block-list/block.native.js.map +1 -1
  9. package/build/components/block-list/index.native.js +5 -4
  10. package/build/components/block-list/index.native.js.map +1 -1
  11. package/build/components/block-list/layout.js +20 -5
  12. package/build/components/block-list/layout.js.map +1 -1
  13. package/build/components/block-list/use-block-props/use-block-class-names.js +5 -2
  14. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  15. package/build/components/block-lock/modal.js +37 -7
  16. package/build/components/block-lock/modal.js.map +1 -1
  17. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  18. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  19. package/build/components/block-mover/mover-description.js +95 -32
  20. package/build/components/block-mover/mover-description.js.map +1 -1
  21. package/build/components/block-pattern-setup/index.js +5 -17
  22. package/build/components/block-pattern-setup/index.js.map +1 -1
  23. package/build/components/block-popover/inbetween.js +2 -2
  24. package/build/components/block-popover/inbetween.js.map +1 -1
  25. package/build/components/block-popover/index.js +1 -1
  26. package/build/components/block-popover/index.js.map +1 -1
  27. package/build/components/block-settings-menu/block-mode-toggle.js +1 -1
  28. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  29. package/build/components/block-settings-menu/block-settings-dropdown.js +4 -1
  30. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  31. package/build/components/block-settings-menu-controls/index.js +1 -1
  32. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  33. package/build/components/block-styles/index.js +3 -6
  34. package/build/components/block-styles/index.js.map +1 -1
  35. package/build/components/block-styles/preview.native.js.map +1 -1
  36. package/build/components/block-switcher/index.js +7 -1
  37. package/build/components/block-switcher/index.js.map +1 -1
  38. package/build/components/block-title/index.js +8 -2
  39. package/build/components/block-title/index.js.map +1 -1
  40. package/build/components/block-title/use-block-display-title.js +12 -5
  41. package/build/components/block-title/use-block-display-title.js.map +1 -1
  42. package/build/components/block-tools/block-contextual-toolbar.js +1 -1
  43. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  44. package/build/components/block-tools/block-selection-button.js +1 -7
  45. package/build/components/block-tools/block-selection-button.js.map +1 -1
  46. package/build/components/block-tools/index.js +4 -1
  47. package/build/components/block-tools/index.js.map +1 -1
  48. package/build/components/block-types-list/index.js +1 -1
  49. package/build/components/block-types-list/index.js.map +1 -1
  50. package/build/components/block-types-list/index.native.js +65 -23
  51. package/build/components/block-types-list/index.native.js.map +1 -1
  52. package/build/components/border-radius-control/index.js +5 -1
  53. package/build/components/border-radius-control/index.js.map +1 -1
  54. package/build/components/colors/utils.js +6 -2
  55. package/build/components/colors/utils.js.map +1 -1
  56. package/build/components/colors/with-colors.js +1 -1
  57. package/build/components/colors/with-colors.js.map +1 -1
  58. package/build/components/colors-gradients/control.js +49 -39
  59. package/build/components/colors-gradients/control.js.map +1 -1
  60. package/build/components/colors-gradients/dropdown.js +9 -3
  61. package/build/components/colors-gradients/dropdown.js.map +1 -1
  62. package/build/components/date-format-picker/index.js +1 -1
  63. package/build/components/date-format-picker/index.js.map +1 -1
  64. package/build/components/font-appearance-control/index.js +10 -4
  65. package/build/components/font-appearance-control/index.js.map +1 -1
  66. package/build/components/iframe/index.js +19 -6
  67. package/build/components/iframe/index.js.map +1 -1
  68. package/build/components/image-editor/cropper.js +4 -3
  69. package/build/components/image-editor/cropper.js.map +1 -1
  70. package/build/components/image-editor/index.js +3 -1
  71. package/build/components/image-editor/index.js.map +1 -1
  72. package/build/components/image-size-control/index.js +3 -1
  73. package/build/components/image-size-control/index.js.map +1 -1
  74. package/build/components/index.js +13 -6
  75. package/build/components/index.js.map +1 -1
  76. package/build/components/index.native.js +11 -4
  77. package/build/components/index.native.js.map +1 -1
  78. package/build/components/inserter/block-types-tab.native.js +30 -16
  79. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  80. package/build/components/inserter/index.native.js +8 -3
  81. package/build/components/inserter/index.native.js.map +1 -1
  82. package/build/components/inserter/preview-panel.js +8 -8
  83. package/build/components/inserter/preview-panel.js.map +1 -1
  84. package/build/components/inserter/reusable-blocks-tab.native.js +5 -1
  85. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  86. package/build/components/inserter/search-results.native.js +5 -2
  87. package/build/components/inserter/search-results.native.js.map +1 -1
  88. package/build/components/inserter/utils.native.js +21 -0
  89. package/build/components/inserter/utils.native.js.map +1 -1
  90. package/build/components/inserter-list-item/index.js +7 -20
  91. package/build/components/inserter-list-item/index.js.map +1 -1
  92. package/build/components/letter-spacing-control/index.js +6 -3
  93. package/build/components/letter-spacing-control/index.js.map +1 -1
  94. package/build/components/line-height-control/index.js +6 -3
  95. package/build/components/line-height-control/index.js.map +1 -1
  96. package/build/components/link-control/index.js +1 -1
  97. package/build/components/link-control/index.js.map +1 -1
  98. package/build/components/link-control/is-url-like.js +1 -7
  99. package/build/components/link-control/is-url-like.js.map +1 -1
  100. package/build/components/link-control/use-search-handler.js +1 -7
  101. package/build/components/link-control/use-search-handler.js.map +1 -1
  102. package/build/components/list-view/block-select-button.js +15 -7
  103. package/build/components/list-view/block-select-button.js.map +1 -1
  104. package/build/components/list-view/branch.js +1 -7
  105. package/build/components/list-view/branch.js.map +1 -1
  106. package/build/components/list-view/drop-indicator.js +1 -1
  107. package/build/components/list-view/drop-indicator.js.map +1 -1
  108. package/build/components/list-view/expander.js +3 -1
  109. package/build/components/list-view/expander.js.map +1 -1
  110. package/build/components/media-placeholder/index.js +13 -2
  111. package/build/components/media-placeholder/index.js.map +1 -1
  112. package/build/components/media-replace-flow/index.js +3 -6
  113. package/build/components/media-replace-flow/index.js.map +1 -1
  114. package/build/components/media-upload/index.native.js +8 -3
  115. package/build/components/media-upload/index.native.js.map +1 -1
  116. package/build/components/observe-typing/index.js +22 -8
  117. package/build/components/observe-typing/index.js.map +1 -1
  118. package/build/components/preview-options/index.js +2 -2
  119. package/build/components/preview-options/index.js.map +1 -1
  120. package/build/components/{use-no-recursive-renders → recursion-provider}/index.js +40 -18
  121. package/build/components/recursion-provider/index.js.map +1 -0
  122. package/build/components/rich-text/format-toolbar-container.js +61 -12
  123. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  124. package/build/components/rich-text/index.js +8 -2
  125. package/build/components/rich-text/index.js.map +1 -1
  126. package/build/components/rich-text/index.native.js +3 -1
  127. package/build/components/rich-text/index.native.js.map +1 -1
  128. package/build/components/rich-text/use-before-input-rules.js +110 -0
  129. package/build/components/rich-text/use-before-input-rules.js.map +1 -0
  130. package/build/components/rich-text/use-format-types.js +36 -16
  131. package/build/components/rich-text/use-format-types.js.map +1 -1
  132. package/build/components/text-decoration-control/index.js +3 -1
  133. package/build/components/text-decoration-control/index.js.map +1 -1
  134. package/build/components/text-transform-control/index.js +3 -1
  135. package/build/components/text-transform-control/index.js.map +1 -1
  136. package/build/components/url-popover/image-url-input-ui.js +4 -1
  137. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  138. package/build/components/url-popover/index.js +2 -1
  139. package/build/components/url-popover/index.js.map +1 -1
  140. package/build/components/writing-flow/use-arrow-nav.js +38 -27
  141. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  142. package/build/components/writing-flow/use-drag-selection.js +9 -2
  143. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  144. package/build/components/writing-flow/use-multi-selection.js +3 -47
  145. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  146. package/build/components/writing-flow/use-select-all.js +3 -1
  147. package/build/components/writing-flow/use-select-all.js.map +1 -1
  148. package/build/components/writing-flow/use-selection-observer.js +1 -3
  149. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  150. package/build/components/writing-flow/use-tab-nav.js +1 -1
  151. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  152. package/build/hooks/color.js +2 -4
  153. package/build/hooks/color.js.map +1 -1
  154. package/build/hooks/index.js +8 -0
  155. package/build/hooks/index.js.map +1 -1
  156. package/build/hooks/layout.js +61 -15
  157. package/build/hooks/layout.js.map +1 -1
  158. package/build/hooks/style.js +41 -31
  159. package/build/hooks/style.js.map +1 -1
  160. package/build/hooks/utils.js +5 -3
  161. package/build/hooks/utils.js.map +1 -1
  162. package/build/index.js +7 -0
  163. package/build/index.js.map +1 -1
  164. package/build/layouts/flex.js +40 -36
  165. package/build/layouts/flex.js.map +1 -1
  166. package/build/layouts/flow.js +35 -37
  167. package/build/layouts/flow.js.map +1 -1
  168. package/build/layouts/utils.js +35 -3
  169. package/build/layouts/utils.js.map +1 -1
  170. package/build/store/actions.js +15 -18
  171. package/build/store/actions.js.map +1 -1
  172. package/build/store/index.js +0 -4
  173. package/build/store/index.js.map +1 -1
  174. package/build/store/reducer.js +5 -3
  175. package/build/store/reducer.js.map +1 -1
  176. package/build/store/selectors.js +3 -3
  177. package/build/store/selectors.js.map +1 -1
  178. package/build/utils/block-variation-transforms.js +15 -9
  179. package/build/utils/block-variation-transforms.js.map +1 -1
  180. package/build/utils/pasting.js +9 -1
  181. package/build/utils/pasting.js.map +1 -1
  182. package/build-module/components/block-list/block-invalid-warning.native.js +50 -6
  183. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  184. package/build-module/components/block-list/block.js +15 -5
  185. package/build-module/components/block-list/block.js.map +1 -1
  186. package/build-module/components/block-list/block.native.js +2 -1
  187. package/build-module/components/block-list/block.native.js.map +1 -1
  188. package/build-module/components/block-list/index.native.js +4 -2
  189. package/build-module/components/block-list/index.native.js.map +1 -1
  190. package/build-module/components/block-list/layout.js +19 -4
  191. package/build-module/components/block-list/layout.js.map +1 -1
  192. package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -2
  193. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  194. package/build-module/components/block-lock/modal.js +39 -8
  195. package/build-module/components/block-lock/modal.js.map +1 -1
  196. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +2 -2
  197. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  198. package/build-module/components/block-mover/mover-description.js +97 -33
  199. package/build-module/components/block-mover/mover-description.js.map +1 -1
  200. package/build-module/components/block-pattern-setup/index.js +6 -18
  201. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  202. package/build-module/components/block-popover/inbetween.js +2 -2
  203. package/build-module/components/block-popover/inbetween.js.map +1 -1
  204. package/build-module/components/block-popover/index.js +1 -1
  205. package/build-module/components/block-popover/index.js.map +1 -1
  206. package/build-module/components/block-settings-menu/block-mode-toggle.js +1 -1
  207. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  208. package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -1
  209. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  210. package/build-module/components/block-settings-menu-controls/index.js +2 -2
  211. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  212. package/build-module/components/block-styles/index.js +4 -7
  213. package/build-module/components/block-styles/index.js.map +1 -1
  214. package/build-module/components/block-styles/preview.native.js.map +1 -1
  215. package/build-module/components/block-switcher/index.js +7 -1
  216. package/build-module/components/block-switcher/index.js.map +1 -1
  217. package/build-module/components/block-title/index.js +8 -2
  218. package/build-module/components/block-title/index.js.map +1 -1
  219. package/build-module/components/block-title/use-block-display-title.js +12 -5
  220. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  221. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
  222. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  223. package/build-module/components/block-tools/block-selection-button.js +1 -7
  224. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  225. package/build-module/components/block-tools/index.js +4 -1
  226. package/build-module/components/block-tools/index.js.map +1 -1
  227. package/build-module/components/block-types-list/index.js +1 -1
  228. package/build-module/components/block-types-list/index.js.map +1 -1
  229. package/build-module/components/block-types-list/index.native.js +67 -25
  230. package/build-module/components/block-types-list/index.native.js.map +1 -1
  231. package/build-module/components/border-radius-control/index.js +6 -2
  232. package/build-module/components/border-radius-control/index.js.map +1 -1
  233. package/build-module/components/colors/utils.js +7 -3
  234. package/build-module/components/colors/utils.js.map +1 -1
  235. package/build-module/components/colors/with-colors.js +2 -2
  236. package/build-module/components/colors/with-colors.js.map +1 -1
  237. package/build-module/components/colors-gradients/control.js +50 -40
  238. package/build-module/components/colors-gradients/control.js.map +1 -1
  239. package/build-module/components/colors-gradients/dropdown.js +10 -4
  240. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  241. package/build-module/components/date-format-picker/index.js +1 -1
  242. package/build-module/components/date-format-picker/index.js.map +1 -1
  243. package/build-module/components/font-appearance-control/index.js +7 -4
  244. package/build-module/components/font-appearance-control/index.js.map +1 -1
  245. package/build-module/components/iframe/index.js +19 -6
  246. package/build-module/components/iframe/index.js.map +1 -1
  247. package/build-module/components/image-editor/cropper.js +4 -3
  248. package/build-module/components/image-editor/cropper.js.map +1 -1
  249. package/build-module/components/image-editor/index.js +3 -1
  250. package/build-module/components/image-editor/index.js.map +1 -1
  251. package/build-module/components/image-size-control/index.js +3 -1
  252. package/build-module/components/image-size-control/index.js.map +1 -1
  253. package/build-module/components/index.js +1 -1
  254. package/build-module/components/index.js.map +1 -1
  255. package/build-module/components/index.native.js +1 -1
  256. package/build-module/components/index.native.js.map +1 -1
  257. package/build-module/components/inserter/block-types-tab.native.js +31 -15
  258. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  259. package/build-module/components/inserter/index.native.js +9 -2
  260. package/build-module/components/inserter/index.native.js.map +1 -1
  261. package/build-module/components/inserter/preview-panel.js +9 -9
  262. package/build-module/components/inserter/preview-panel.js.map +1 -1
  263. package/build-module/components/inserter/reusable-blocks-tab.native.js +6 -2
  264. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  265. package/build-module/components/inserter/search-results.native.js +6 -3
  266. package/build-module/components/inserter/search-results.native.js.map +1 -1
  267. package/build-module/components/inserter/utils.native.js +19 -0
  268. package/build-module/components/inserter/utils.native.js.map +1 -1
  269. package/build-module/components/inserter-list-item/index.js +5 -18
  270. package/build-module/components/inserter-list-item/index.js.map +1 -1
  271. package/build-module/components/letter-spacing-control/index.js +5 -3
  272. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  273. package/build-module/components/line-height-control/index.js +5 -3
  274. package/build-module/components/line-height-control/index.js.map +1 -1
  275. package/build-module/components/link-control/index.js +1 -1
  276. package/build-module/components/link-control/index.js.map +1 -1
  277. package/build-module/components/link-control/is-url-like.js +1 -6
  278. package/build-module/components/link-control/is-url-like.js.map +1 -1
  279. package/build-module/components/link-control/use-search-handler.js +1 -6
  280. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  281. package/build-module/components/list-view/block-select-button.js +16 -8
  282. package/build-module/components/list-view/block-select-button.js.map +1 -1
  283. package/build-module/components/list-view/branch.js +1 -6
  284. package/build-module/components/list-view/branch.js.map +1 -1
  285. package/build-module/components/list-view/drop-indicator.js +1 -1
  286. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  287. package/build-module/components/list-view/expander.js +3 -2
  288. package/build-module/components/list-view/expander.js.map +1 -1
  289. package/build-module/components/media-placeholder/index.js +13 -2
  290. package/build-module/components/media-placeholder/index.js.map +1 -1
  291. package/build-module/components/media-replace-flow/index.js +4 -7
  292. package/build-module/components/media-replace-flow/index.js.map +1 -1
  293. package/build-module/components/media-upload/index.native.js +9 -2
  294. package/build-module/components/media-upload/index.native.js.map +1 -1
  295. package/build-module/components/observe-typing/index.js +22 -8
  296. package/build-module/components/observe-typing/index.js.map +1 -1
  297. package/build-module/components/preview-options/index.js +2 -2
  298. package/build-module/components/preview-options/index.js.map +1 -1
  299. package/build-module/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -19
  300. package/build-module/components/recursion-provider/index.js.map +1 -0
  301. package/build-module/components/rich-text/format-toolbar-container.js +58 -12
  302. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  303. package/build-module/components/rich-text/index.js +7 -2
  304. package/build-module/components/rich-text/index.js.map +1 -1
  305. package/build-module/components/rich-text/index.native.js +3 -1
  306. package/build-module/components/rich-text/index.native.js.map +1 -1
  307. package/build-module/components/rich-text/use-before-input-rules.js +96 -0
  308. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -0
  309. package/build-module/components/rich-text/use-format-types.js +37 -18
  310. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  311. package/build-module/components/text-decoration-control/index.js +4 -2
  312. package/build-module/components/text-decoration-control/index.js.map +1 -1
  313. package/build-module/components/text-transform-control/index.js +4 -2
  314. package/build-module/components/text-transform-control/index.js.map +1 -1
  315. package/build-module/components/url-popover/image-url-input-ui.js +4 -1
  316. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  317. package/build-module/components/url-popover/index.js +2 -1
  318. package/build-module/components/url-popover/index.js.map +1 -1
  319. package/build-module/components/writing-flow/use-arrow-nav.js +40 -29
  320. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  321. package/build-module/components/writing-flow/use-drag-selection.js +9 -2
  322. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  323. package/build-module/components/writing-flow/use-multi-selection.js +3 -45
  324. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  325. package/build-module/components/writing-flow/use-select-all.js +3 -1
  326. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  327. package/build-module/components/writing-flow/use-selection-observer.js +1 -3
  328. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  329. package/build-module/components/writing-flow/use-tab-nav.js +1 -1
  330. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  331. package/build-module/hooks/color.js +2 -3
  332. package/build-module/hooks/color.js.map +1 -1
  333. package/build-module/hooks/index.js +1 -0
  334. package/build-module/hooks/index.js.map +1 -1
  335. package/build-module/hooks/layout.js +62 -16
  336. package/build-module/hooks/layout.js.map +1 -1
  337. package/build-module/hooks/style.js +44 -35
  338. package/build-module/hooks/style.js.map +1 -1
  339. package/build-module/hooks/utils.js +5 -2
  340. package/build-module/hooks/utils.js.map +1 -1
  341. package/build-module/index.js +1 -1
  342. package/build-module/index.js.map +1 -1
  343. package/build-module/layouts/flex.js +41 -33
  344. package/build-module/layouts/flex.js.map +1 -1
  345. package/build-module/layouts/flow.js +35 -38
  346. package/build-module/layouts/flow.js.map +1 -1
  347. package/build-module/layouts/utils.js +33 -3
  348. package/build-module/layouts/utils.js.map +1 -1
  349. package/build-module/store/actions.js +9 -10
  350. package/build-module/store/actions.js.map +1 -1
  351. package/build-module/store/index.js +0 -4
  352. package/build-module/store/index.js.map +1 -1
  353. package/build-module/store/reducer.js +5 -2
  354. package/build-module/store/reducer.js.map +1 -1
  355. package/build-module/store/selectors.js +4 -4
  356. package/build-module/store/selectors.js.map +1 -1
  357. package/build-module/utils/block-variation-transforms.js +14 -7
  358. package/build-module/utils/block-variation-transforms.js.map +1 -1
  359. package/build-module/utils/pasting.js +9 -1
  360. package/build-module/utils/pasting.js.map +1 -1
  361. package/build-style/style-rtl.css +72 -14
  362. package/build-style/style.css +72 -14
  363. package/package.json +28 -28
  364. package/src/components/block-list/block-invalid-warning.native.js +42 -7
  365. package/src/components/block-list/block.js +15 -4
  366. package/src/components/block-list/block.native.js +1 -0
  367. package/src/components/block-list/index.native.js +2 -2
  368. package/src/components/block-list/layout.js +15 -3
  369. package/src/components/block-list/style.scss +1 -1
  370. package/src/components/block-list/use-block-props/use-block-class-names.js +5 -1
  371. package/src/components/block-lock/modal.js +47 -9
  372. package/src/components/block-lock/style.scss +10 -0
  373. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  374. package/src/components/block-mover/mover-description.js +131 -48
  375. package/src/components/block-mover/test/mover-description.js +55 -3
  376. package/src/components/block-pattern-setup/index.js +3 -15
  377. package/src/components/block-pattern-setup/style.scss +4 -2
  378. package/src/components/block-popover/inbetween.js +2 -1
  379. package/src/components/block-popover/index.js +1 -1
  380. package/src/components/block-popover/style.scss +25 -2
  381. package/src/components/block-settings-menu/block-mode-toggle.js +1 -0
  382. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
  383. package/src/components/block-settings-menu-controls/index.js +2 -2
  384. package/src/components/block-styles/index.js +4 -7
  385. package/src/components/block-styles/preview.native.js +1 -0
  386. package/src/components/block-styles/style.scss +10 -0
  387. package/src/components/block-switcher/index.js +7 -1
  388. package/src/components/block-title/index.js +3 -2
  389. package/src/components/block-title/use-block-display-title.js +11 -5
  390. package/src/components/block-tools/block-contextual-toolbar.js +3 -1
  391. package/src/components/block-tools/block-selection-button.js +0 -5
  392. package/src/components/block-tools/index.js +4 -1
  393. package/src/components/block-types-list/index.js +1 -1
  394. package/src/components/block-types-list/index.native.js +76 -24
  395. package/src/components/block-types-list/style.native.scss +18 -0
  396. package/src/components/border-radius-control/index.js +6 -1
  397. package/src/components/color-palette/test/__snapshots__/control.js.snap +91 -79
  398. package/src/components/colors/test/__snapshots__/with-colors.js.snap +1 -1
  399. package/src/components/colors/test/with-colors.js +1 -1
  400. package/src/components/colors/utils.js +5 -2
  401. package/src/components/colors/with-colors.js +2 -2
  402. package/src/components/colors-gradients/control.js +82 -65
  403. package/src/components/colors-gradients/dropdown.js +14 -3
  404. package/src/components/colors-gradients/style.scss +34 -9
  405. package/src/components/colors-gradients/test/control.js +16 -23
  406. package/src/components/date-format-picker/index.js +1 -0
  407. package/src/components/font-appearance-control/index.js +3 -0
  408. package/src/components/iframe/index.js +25 -6
  409. package/src/components/image-editor/cropper.js +9 -3
  410. package/src/components/image-editor/index.js +2 -0
  411. package/src/components/image-size-control/README.md +7 -0
  412. package/src/components/image-size-control/index.js +2 -0
  413. package/src/components/index.js +4 -1
  414. package/src/components/index.native.js +4 -1
  415. package/src/components/inserter/block-types-tab.native.js +42 -21
  416. package/src/components/inserter/index.native.js +7 -2
  417. package/src/components/inserter/preview-panel.js +6 -14
  418. package/src/components/inserter/reusable-blocks-tab.native.js +4 -2
  419. package/src/components/inserter/search-results.native.js +4 -2
  420. package/src/components/inserter/style.scss +1 -1
  421. package/src/components/inserter/test/block-types-tab.native.js +2 -0
  422. package/src/components/inserter/test/utils.native.js +37 -0
  423. package/src/components/inserter/utils.native.js +11 -0
  424. package/src/components/inserter-list-item/index.js +5 -18
  425. package/src/components/letter-spacing-control/index.js +2 -0
  426. package/src/components/line-height-control/index.js +2 -0
  427. package/src/components/link-control/index.js +1 -0
  428. package/src/components/link-control/is-url-like.js +1 -6
  429. package/src/components/link-control/test/index.js +6 -4
  430. package/src/components/link-control/use-search-handler.js +1 -6
  431. package/src/components/list-view/block-select-button.js +29 -14
  432. package/src/components/list-view/branch.js +1 -6
  433. package/src/components/list-view/drop-indicator.js +1 -1
  434. package/src/components/list-view/expander.js +4 -2
  435. package/src/components/list-view/style.scss +18 -4
  436. package/src/components/media-placeholder/index.js +19 -0
  437. package/src/components/media-replace-flow/index.js +3 -6
  438. package/src/components/media-replace-flow/test/index.js +14 -4
  439. package/src/components/media-upload/index.native.js +7 -3
  440. package/src/components/observe-typing/index.js +17 -14
  441. package/src/components/preview-options/index.js +2 -2
  442. package/src/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -28
  443. package/src/components/{use-no-recursive-renders/test/use-no-recursive-renders.js → recursion-provider/test/index.js} +5 -6
  444. package/src/components/rich-text/README.md +13 -1
  445. package/src/components/rich-text/format-toolbar-container.js +63 -14
  446. package/src/components/rich-text/index.js +3 -0
  447. package/src/components/rich-text/index.native.js +2 -0
  448. package/src/components/rich-text/use-before-input-rules.js +91 -0
  449. package/src/components/rich-text/use-format-types.js +38 -17
  450. package/src/components/text-decoration-control/index.js +4 -2
  451. package/src/components/text-transform-control/index.js +4 -2
  452. package/src/components/url-popover/image-url-input-ui.js +3 -0
  453. package/src/components/url-popover/index.js +1 -0
  454. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -0
  455. package/src/components/writing-flow/use-arrow-nav.js +36 -34
  456. package/src/components/writing-flow/use-drag-selection.js +7 -1
  457. package/src/components/writing-flow/use-multi-selection.js +1 -48
  458. package/src/components/writing-flow/use-select-all.js +2 -1
  459. package/src/components/writing-flow/use-selection-observer.js +2 -3
  460. package/src/components/writing-flow/use-tab-nav.js +1 -1
  461. package/src/hooks/color.js +10 -3
  462. package/src/hooks/index.js +1 -0
  463. package/src/hooks/layout.js +66 -23
  464. package/src/hooks/style.js +46 -39
  465. package/src/hooks/utils.js +7 -3
  466. package/src/index.js +1 -0
  467. package/src/layouts/flex.js +47 -41
  468. package/src/layouts/flow.js +35 -34
  469. package/src/layouts/test/flex.js +21 -0
  470. package/src/layouts/test/flow.js +21 -0
  471. package/src/layouts/test/utils.js +138 -0
  472. package/src/layouts/utils.js +44 -3
  473. package/src/store/actions.js +10 -11
  474. package/src/store/index.js +0 -4
  475. package/src/store/reducer.js +3 -2
  476. package/src/store/selectors.js +3 -4
  477. package/src/utils/block-variation-transforms.js +13 -6
  478. package/src/utils/pasting.js +10 -1
  479. package/src/utils/test/block-variation-transforms.js +24 -0
  480. package/src/utils/test/pasting.js +10 -0
  481. package/tsconfig.json +2 -1
  482. package/build/components/use-no-recursive-renders/index.js.map +0 -1
  483. package/build-module/components/use-no-recursive-renders/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"names":["classnames","Button","forwardRef","Icon","lock","SPACE","ENTER","BlockIcon","useBlockDisplayInformation","BlockTitle","ListViewExpander","useBlockLock","ListViewBlockSelectButton","ref","className","block","clientId","onClick","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","blockInformation","isLocked","onDragStartHandler","event","dataTransfer","clearData","onKeyDownHandler","keyCode","icon","anchor"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,kBAA3B;AACA,SAASC,KAAT,EAAgBC,KAAhB,QAA6B,qBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,OAAOC,UAAP,MAAuB,gBAAvB;AACA,OAAOC,gBAAP,MAA6B,YAA7B;AACA,SAASC,YAAT,QAA6B,eAA7B;;AAEA,SAASC,yBAAT,OAYCC,GAZD,EAaE;AAAA,MAZD;AACCC,IAAAA,SADD;AAECC,IAAAA,KAAK,EAAE;AAAEC,MAAAA;AAAF,KAFR;AAGCC,IAAAA,OAHD;AAICC,IAAAA,gBAJD;AAKCC,IAAAA,QALD;AAMCC,IAAAA,OAND;AAOCC,IAAAA,WAPD;AAQCC,IAAAA,SARD;AASCC,IAAAA;AATD,GAYC;AACD,QAAMC,gBAAgB,GAAGhB,0BAA0B,CAAEQ,QAAF,CAAnD;AACA,QAAM;AAAES,IAAAA;AAAF,MAAed,YAAY,CAAEK,QAAF,CAAjC,CAFC,CAID;AACA;AACA;AACA;;AACA,QAAMU,kBAAkB,GAAKC,KAAF,IAAa;AACvCA,IAAAA,KAAK,CAACC,YAAN,CAAmBC,SAAnB;AACAR,IAAAA,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAIM,KAAJ,CAAX;AACA,GAHD;;AAKA,WAASG,gBAAT,CAA2BH,KAA3B,EAAmC;AAClC,QAAKA,KAAK,CAACI,OAAN,KAAkBzB,KAAlB,IAA2BqB,KAAK,CAACI,OAAN,KAAkB1B,KAAlD,EAA0D;AACzDY,MAAAA,OAAO,CAAEU,KAAF,CAAP;AACA;AACD;;AAED,SACC,8BACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAG3B,UAAU,CACrB,4CADqB,EAErBc,SAFqB,CADvB;AAKC,IAAA,OAAO,EAAGG,OALX;AAMC,IAAA,SAAS,EAAGa,gBANb;AAOC,IAAA,GAAG,EAAGjB,GAPP;AAQC,IAAA,QAAQ,EAAGM,QARZ;AASC,IAAA,OAAO,EAAGC,OATX;AAUC,IAAA,WAAW,EAAGM,kBAVf;AAWC,IAAA,SAAS,EAAGJ,SAXb;AAYC,IAAA,SAAS,EAAGC,SAZb;AAaC,IAAA,IAAI,EAAI,UAAUP,QAAU,EAb7B;AAcC,mBAAc;AAdf,KAgBC,cAAC,gBAAD;AAAkB,IAAA,OAAO,EAAGE;AAA5B,IAhBD,EAiBC,cAAC,SAAD;AAAW,IAAA,IAAI,EAAGM,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEQ,IAApC;AAA2C,IAAA,UAAU;AAArD,IAjBD,EAkBC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,cAAC,UAAD;AAAY,IAAA,QAAQ,EAAGhB,QAAvB;AAAkC,IAAA,aAAa,EAAG;AAAlD,IADD,CAlBD,EAqBG,CAAAQ,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,CAAES,MAAlB,KACD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGT,gBAAgB,CAACS,MADpB,CAtBF,EA0BGR,QAAQ,IACT;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,cAAC,IAAD;AAAM,IAAA,IAAI,EAAGrB;AAAb,IADD,CA3BF,CADD,CADD;AAoCA;;AAED,eAAeF,UAAU,CAAEU,yBAAF,CAAzB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, lock } from '@wordpress/icons';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport BlockTitle from '../block-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst { isLocked } = useBlockLock( clientId );\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\tfunction onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-hidden={ true }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t<BlockTitle clientId={ clientId } maximumLength={ 35 } />\n\t\t\t\t</span>\n\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor\">\n\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ isLocked && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"names":["classnames","Button","__experimentalHStack","HStack","__experimentalTruncate","Truncate","forwardRef","Icon","lock","SPACE","ENTER","BlockIcon","useBlockDisplayInformation","useBlockDisplayTitle","ListViewExpander","useBlockLock","ListViewBlockSelectButton","ref","className","block","clientId","onClick","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","blockInformation","blockTitle","context","isLocked","onDragStartHandler","event","dataTransfer","clearData","onKeyDownHandler","keyCode","icon","anchor"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, lock } from '@wordpress/icons';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\tfunction onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-hidden={ true }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t\t</span>\n\t\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor\">\n\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isLocked && (\n\t\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"]}
@@ -1,13 +1,8 @@
1
1
  import { createElement, Fragment } from "@wordpress/element";
2
2
 
3
- /**
4
- * External dependencies
5
- */
6
- import { compact } from 'lodash';
7
3
  /**
8
4
  * WordPress dependencies
9
5
  */
10
-
11
6
  import { memo } from '@wordpress/element';
12
7
  import { AsyncModeProvider } from '@wordpress/data';
13
8
  /**
@@ -84,7 +79,7 @@ function ListViewBranch(props) {
84
79
  expandedState,
85
80
  draggedClientIds
86
81
  } = useListViewContext();
87
- const filteredBlocks = compact(blocks);
82
+ const filteredBlocks = blocks.filter(Boolean);
88
83
  const blockCount = filteredBlocks.length;
89
84
  let nextPosition = listPosition;
90
85
  return createElement(Fragment, null, filteredBlocks.map((block, index) => {
@@ -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","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","filteredBlocks","blockCount","nextPosition","map","index","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","showBlock","isSelected","isSelectedBranch","defaultProps"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,QAAxB;AAEA;AACA;AACA;;AACA,SAASC,IAAT,QAAqB,oBAArB;AACA,SAASC,iBAAT,QAAkC,iBAAlC;AAEA;AACA;AACA;;AACA,OAAOC,aAAP,MAA0B,SAA1B;AACA,SAASC,kBAAT,QAAmC,WAAnC;AACA,SAASC,kBAAT,QAAmC,SAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT,CACCC,KADD,EAECC,aAFD,EAGCC,gBAHD,EAICC,mBAJD,EAKE;AAAA;;AACD,QAAMC,SAAS,GAAGF,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEG,QAAlB,CAA4BL,KAAK,CAACM,QAAlC,CAAlB;;AACA,MAAKF,SAAL,EAAiB;AAChB,WAAO,CAAP;AACA;;AACD,QAAMG,UAAU,4BAAGN,aAAa,CAAED,KAAK,CAACM,QAAR,CAAhB,yEAAsCH,mBAAtD;;AAEA,MAAKI,UAAL,EAAkB;AACjB,WACC,IACAP,KAAK,CAACQ,WAAN,CAAkBC,MAAlB,CACCC,YAAY,CACXT,aADW,EAEXC,gBAFW,EAGXC,mBAHW,CADb,EAMC,CAND,CAFD;AAWA;;AACD,SAAO,CAAP;AACA;;AACD,MAAMO,YAAY,GACjB,CAAET,aAAF,EAAiBC,gBAAjB,EAAmCC,mBAAnC,KACA,CAAEQ,KAAF,EAASX,KAAT,KAAoB;AAAA;;AACnB,QAAMI,SAAS,GAAGF,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEG,QAAlB,CAA4BL,KAAK,CAACM,QAAlC,CAAlB;;AACA,MAAKF,SAAL,EAAiB;AAChB,WAAOO,KAAP;AACA;;AACD,QAAMJ,UAAU,6BACfN,aAAa,CAAED,KAAK,CAACM,QAAR,CADE,2EACoBH,mBADpC;;AAEA,MAAKI,UAAU,IAAIP,KAAK,CAACQ,WAAN,CAAkBI,MAAlB,GAA2B,CAA9C,EAAkD;AACjD,WACCD,KAAK,GACLZ,WAAW,CACVC,KADU,EAEVC,aAFU,EAGVC,gBAHU,EAIVC,mBAJU,CAFZ;AASA;;AACD,SAAOQ,KAAK,GAAG,CAAf;AACA,CArBF;;AAuBA,SAASE,cAAT,CAAyBC,KAAzB,EAAiC;AAChC,QAAM;AACLC,IAAAA,MADK;AAELC,IAAAA,WAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA,iBAJK;AAKLC,IAAAA,KAAK,GAAG,CALH;AAMLC,IAAAA,IAAI,GAAG,EANF;AAOLC,IAAAA,gBAAgB,GAAG,KAPd;AAQLC,IAAAA,YAAY,GAAG,CARV;AASLC,IAAAA,eATK;AAULhB,IAAAA;AAVK,MAWFO,KAXJ;AAaA,QAAM;AAAEb,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAsCL,kBAAkB,EAA9D;AAEA,QAAM2B,cAAc,GAAG/B,OAAO,CAAEsB,MAAF,CAA9B;AACA,QAAMU,UAAU,GAAGD,cAAc,CAACZ,MAAlC;AACA,MAAIc,YAAY,GAAGJ,YAAnB;AAEA,SACC,8BACGE,cAAc,CAACG,GAAf,CAAoB,CAAE3B,KAAF,EAAS4B,KAAT,KAAoB;AAAA;;AACzC,UAAM;AAAEtB,MAAAA,QAAF;AAAYE,MAAAA;AAAZ,QAA4BR,KAAlC;;AAEA,QAAK4B,KAAK,GAAG,CAAb,EAAiB;AAChBF,MAAAA,YAAY,IAAI3B,WAAW,CAC1ByB,cAAc,CAAEI,KAAK,GAAG,CAAV,CADY,EAE1B3B,aAF0B,EAG1BC,gBAH0B,EAI1BK,UAJ0B,CAA3B;AAMA;;AAED,UAAM;AAAEsB,MAAAA;AAAF,QAAiBN,eAAvB;AACA,UAAMO,WAAW,GAAGD,UAAU,CAAEH,YAAF,CAA9B;AAEA,UAAMK,QAAQ,GAAGH,KAAK,GAAG,CAAzB;AACA,UAAMI,WAAW,GAChBZ,IAAI,CAACR,MAAL,GAAc,CAAd,GACI,GAAGQ,IAAM,IAAIW,QAAU,EAD3B,GAEI,GAAGA,QAAU,EAHlB;AAIA,UAAME,eAAe,GAAG,CAAC,EAAEzB,WAAF,aAAEA,WAAF,eAAEA,WAAW,CAAEI,MAAf,CAAzB;AAEA,UAAMsB,YAAY,GAAGD,eAAe,4BACjChC,aAAa,CAAEK,QAAF,CADoB,yEACJC,UADI,GAEjC4B,SAFH;AAIA,UAAM/B,SAAS,GAAG,CAAC,EAAEF,gBAAF,aAAEA,gBAAF,eAAEA,gBAAgB,CAAEG,QAAlB,CAA4BC,QAA5B,CAAF,CAAnB;AAEA,UAAM8B,SAAS,GAAGhC,SAAS,IAAI0B,WAA/B,CA5ByC,CA8BzC;AACA;;AACA,UAAMO,UAAU,GAAGvC,kBAAkB,CACpCQ,QADoC,EAEpCY,iBAFoC,CAArC;AAIA,UAAMoB,gBAAgB,GACrBjB,gBAAgB,IAAMgB,UAAU,IAAIJ,eADrC;AAEA,WACC,cAAC,iBAAD;AAAmB,MAAA,GAAG,EAAG3B,QAAzB;AAAoC,MAAA,KAAK,EAAG,CAAE+B;AAA9C,OACGD,SAAS,IACV,cAAC,aAAD;AACC,MAAA,KAAK,EAAGpC,KADT;AAEC,MAAA,WAAW,EAAGgB,WAFf;AAGC,MAAA,UAAU,EAAGqB,UAHd;AAIC,MAAA,gBAAgB,EAAGC,gBAJpB;AAKC,MAAA,SAAS,EAAGlC,SALb;AAMC,MAAA,KAAK,EAAGe,KANT;AAOC,MAAA,QAAQ,EAAGY,QAPZ;AAQC,MAAA,QAAQ,EAAGN,UARZ;AASC,MAAA,iBAAiB,EAAGA,UATrB;AAUC,MAAA,eAAe,EAAGR,eAVnB;AAWC,MAAA,IAAI,EAAGe,WAXR;AAYC,MAAA,UAAU,EAAGE,YAZd;AAaC,MAAA,YAAY,EAAGR,YAbhB;AAcC,MAAA,iBAAiB,EAAGR;AAdrB,MAFF,EAmBG,CAAEkB,SAAF,IACD,0BACC;AAAI,MAAA,SAAS,EAAC;AAAd,MADD,CApBF,EAwBGH,eAAe,IAAIC,YAAnB,IAAmC,CAAE9B,SAArC,IACD,cAAC,cAAD;AACC,MAAA,MAAM,EAAGI,WADV;AAEC,MAAA,WAAW,EAAGQ,WAFf;AAGC,MAAA,eAAe,EAAGC,eAHnB;AAIC,MAAA,KAAK,EAAGE,KAAK,GAAG,CAJjB;AAKC,MAAA,IAAI,EAAGa,WALR;AAMC,MAAA,YAAY,EAAGN,YAAY,GAAG,CAN/B;AAOC,MAAA,eAAe,EAAGH,eAPnB;AAQC,MAAA,gBAAgB,EAAGe,gBARpB;AASC,MAAA,iBAAiB,EAAGpB,iBATrB;AAUC,MAAA,UAAU,EAAGX;AAVd,MAzBF,CADD;AAyCA,GA/EC,CADH,CADD;AAoFA;;AAEDM,cAAc,CAAC0B,YAAf,GAA8B;AAC7BvB,EAAAA,WAAW,EAAE,MAAM,CAAE;AADQ,CAA9B;AAIA,eAAetB,IAAI,CAAEmB,cAAF,CAAnB","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\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\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"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"names":["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","filter","Boolean","blockCount","nextPosition","map","index","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","showBlock","isSelected","isSelectedBranch","defaultProps"],"mappings":"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","sourcesContent":["/**\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\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\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 = blocks.filter( Boolean );\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"]}
@@ -70,7 +70,7 @@ export default function ListViewDropIndicator(_ref) {
70
70
  left: rect.left + indent,
71
71
  right: rect.right,
72
72
  width: 0,
73
- height: rect.height,
73
+ height: 0,
74
74
  ownerDocument
75
75
  };
76
76
 
@@ -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":"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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
+ {"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: 0,\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"]}
@@ -3,7 +3,8 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * WordPress dependencies
5
5
  */
6
- import { chevronRightSmall, Icon } from '@wordpress/icons';
6
+ import { chevronRightSmall, chevronLeftSmall, Icon } from '@wordpress/icons';
7
+ import { isRTL } from '@wordpress/i18n';
7
8
  export default function ListViewExpander(_ref) {
8
9
  let {
9
10
  onClick
@@ -24,7 +25,7 @@ export default function ListViewExpander(_ref) {
24
25
  }),
25
26
  "aria-hidden": "true"
26
27
  }, createElement(Icon, {
27
- icon: chevronRightSmall
28
+ icon: isRTL() ? chevronLeftSmall : chevronRightSmall
28
29
  }))
29
30
  );
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/expander.js"],"names":["chevronRightSmall","Icon","ListViewExpander","onClick","event","forceToggle"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,iBAAT,EAA4BC,IAA5B,QAAwC,kBAAxC;AACA,eAAe,SAASC,gBAAT,OAAyC;AAAA,MAAd;AAAEC,IAAAA;AAAF,GAAc;AACvD,SACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACC,MAAA,SAAS,EAAC,kCADX;AAEC,MAAA,OAAO,EAAKC,KAAF,IAAaD,OAAO,CAAEC,KAAF,EAAS;AAAEC,QAAAA,WAAW,EAAE;AAAf,OAAT,CAF/B;AAGC,qBAAY;AAHb,OAKC,cAAC,IAAD;AAAM,MAAA,IAAI,EAAGL;AAAb,MALD;AAVD;AAkBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { chevronRightSmall, Icon } from '@wordpress/icons';\nexport default function ListViewExpander( { onClick } ) {\n\treturn (\n\t\t// Keyboard events are handled by TreeGrid see: components/src/tree-grid/index.js\n\t\t//\n\t\t// The expander component is implemented as a pseudo element in the w3 example\n\t\t// https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html\n\t\t//\n\t\t// We've mimicked this by adding an icon with aria-hidden set to true to hide this from the accessibility tree.\n\t\t// For the current tree grid implementation, please do not try to make this a button.\n\t\t//\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n\t\t<span\n\t\t\tclassName=\"block-editor-list-view__expander\"\n\t\t\tonClick={ ( event ) => onClick( event, { forceToggle: true } ) }\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<Icon icon={ chevronRightSmall } />\n\t\t</span>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/expander.js"],"names":["chevronRightSmall","chevronLeftSmall","Icon","isRTL","ListViewExpander","onClick","event","forceToggle"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,iBAAT,EAA4BC,gBAA5B,EAA8CC,IAA9C,QAA0D,kBAA1D;AACA,SAASC,KAAT,QAAsB,iBAAtB;AAEA,eAAe,SAASC,gBAAT,OAAyC;AAAA,MAAd;AAAEC,IAAAA;AAAF,GAAc;AACvD,SACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACC,MAAA,SAAS,EAAC,kCADX;AAEC,MAAA,OAAO,EAAKC,KAAF,IAAaD,OAAO,CAAEC,KAAF,EAAS;AAAEC,QAAAA,WAAW,EAAE;AAAf,OAAT,CAF/B;AAGC,qBAAY;AAHb,OAKC,cAAC,IAAD;AAAM,MAAA,IAAI,EAAGJ,KAAK,KAAKF,gBAAL,GAAwBD;AAA1C,MALD;AAVD;AAkBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { chevronRightSmall, chevronLeftSmall, Icon } from '@wordpress/icons';\nimport { isRTL } from '@wordpress/i18n';\n\nexport default function ListViewExpander( { onClick } ) {\n\treturn (\n\t\t// Keyboard events are handled by TreeGrid see: components/src/tree-grid/index.js\n\t\t//\n\t\t// The expander component is implemented as a pseudo element in the w3 example\n\t\t// https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html\n\t\t//\n\t\t// We've mimicked this by adding an icon with aria-hidden set to true to hide this from the accessibility tree.\n\t\t// For the current tree grid implementation, please do not try to make this a button.\n\t\t//\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n\t\t<span\n\t\t\tclassName=\"block-editor-list-view__expander\"\n\t\t\tonClick={ ( event ) => onClick( event, { forceToggle: true } ) }\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<Icon icon={ isRTL() ? chevronLeftSmall : chevronRightSmall } />\n\t\t</span>\n\t);\n}\n"]}
@@ -71,6 +71,7 @@ export function MediaPlaceholder(_ref2) {
71
71
  onSelect,
72
72
  onCancel,
73
73
  onSelectURL,
74
+ onToggleFeaturedImage,
74
75
  onDoubleClick,
75
76
  onFilesPreUpload = noop,
76
77
  onHTMLDrop = noop,
@@ -294,6 +295,16 @@ export function MediaPlaceholder(_ref2) {
294
295
  }));
295
296
  };
296
297
 
298
+ const renderFeaturedImageToggle = () => {
299
+ return onToggleFeaturedImage && createElement("div", {
300
+ className: "block-editor-media-placeholder__url-input-container"
301
+ }, createElement(Button, {
302
+ className: "block-editor-media-placeholder__button",
303
+ onClick: onToggleFeaturedImage,
304
+ variant: "tertiary"
305
+ }, __('Use featured image')));
306
+ };
307
+
297
308
  const renderMediaUploadChecked = () => {
298
309
  const defaultButton = _ref6 => {
299
310
  let {
@@ -337,7 +348,7 @@ export function MediaPlaceholder(_ref2) {
337
348
  variant: "primary",
338
349
  className: classnames('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button'),
339
350
  onClick: openFileDialog
340
- }, __('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderCancelLink());
351
+ }, __('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderFeaturedImageToggle(), renderCancelLink());
341
352
  return renderPlaceholder(content);
342
353
  }
343
354
  }));
@@ -350,7 +361,7 @@ export function MediaPlaceholder(_ref2) {
350
361
  onChange: onUpload,
351
362
  accept: accept,
352
363
  multiple: multiple
353
- }, __('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderCancelLink());
364
+ }, __('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderFeaturedImageToggle(), renderCancelLink());
354
365
  return renderPlaceholder(content);
355
366
  }
356
367
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"names":["classnames","Button","FormFileUpload","Placeholder","DropZone","withFilters","__","useState","useEffect","useSelect","keyboardReturn","MediaUpload","MediaUploadCheck","URLPopover","store","blockEditorStore","noop","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 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 noop = () => {};\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\tmode={ 'browse' }\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":["classnames","Button","FormFileUpload","Placeholder","DropZone","withFilters","__","useState","useEffect","useSelect","keyboardReturn","MediaUpload","MediaUploadCheck","URLPopover","store","blockEditorStore","noop","InsertFromURLPopover","src","onChange","onSubmit","onClose","MediaPlaceholder","value","allowedTypes","className","icon","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onSelectURL","onToggleFeaturedImage","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","renderFeaturedImageToggle","renderMediaUploadChecked","defaultButton","open","libraryButton","uploadMediaLibraryButton","Array","isArray","openFileDialog"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\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 noop = () => {};\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\tonToggleFeaturedImage,\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 renderFeaturedImageToggle = () => {\n\t\treturn (\n\t\t\tonToggleFeaturedImage && (\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={ onToggleFeaturedImage }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Use featured image' ) }\n\t\t\t\t\t</Button>\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\tmode={ 'browse' }\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{ renderFeaturedImageToggle() }\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{ renderFeaturedImageToggle() }\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"]}
@@ -3,7 +3,7 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * WordPress dependencies
5
5
  */
6
- import { useState, useRef } from '@wordpress/element';
6
+ import { useRef } from '@wordpress/element';
7
7
  import { __ } from '@wordpress/i18n';
8
8
  import { speak } from '@wordpress/a11y';
9
9
  import { FormFileUpload, NavigableMenu, MenuItem, ToolbarButton, Dropdown, withFilters, Tooltip } from '@wordpress/components';
@@ -47,7 +47,6 @@ const MediaReplaceFlow = _ref => {
47
47
  addToGallery,
48
48
  handleUpload = true
49
49
  } = _ref;
50
- const [mediaURLValue, setMediaURLValue] = useState(mediaURL);
51
50
  const mediaUpload = useSelect(select => {
52
51
  return select(blockEditorStore).getSettings().mediaUpload;
53
52
  }, []);
@@ -82,8 +81,7 @@ const MediaReplaceFlow = _ref => {
82
81
  onToggleFeaturedImage();
83
82
  }
84
83
 
85
- closeMenu();
86
- setMediaURLValue(media === null || media === void 0 ? void 0 : media.url); // Calling `onSelect` after the state update since it might unmount the component.
84
+ closeMenu(); // Calling `onSelect` after the state update since it might unmount the component.
87
85
 
88
86
  onSelect(media);
89
87
  speak(__('The media file has been replaced'));
@@ -194,11 +192,11 @@ const MediaReplaceFlow = _ref => {
194
192
  }, createElement("span", {
195
193
  className: "block-editor-media-replace-flow__image-url-label"
196
194
  }, __('Current media URL:')), createElement(Tooltip, {
197
- text: mediaURLValue,
195
+ text: mediaURL,
198
196
  position: "bottom"
199
197
  }, createElement("div", null, createElement(LinkControl, {
200
198
  value: {
201
- url: mediaURLValue
199
+ url: mediaURL
202
200
  },
203
201
  settings: [],
204
202
  showSuggestions: false,
@@ -206,7 +204,6 @@ const MediaReplaceFlow = _ref => {
206
204
  let {
207
205
  url
208
206
  } = _ref7;
209
- setMediaURLValue(url);
210
207
  onSelectURL(url);
211
208
  editMediaButtonRef.current.focus();
212
209
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/media-replace-flow/index.js"],"names":["useState","useRef","__","speak","FormFileUpload","NavigableMenu","MenuItem","ToolbarButton","Dropdown","withFilters","Tooltip","useSelect","withDispatch","DOWN","postFeaturedImage","upload","media","mediaIcon","compose","__unstableStripHTML","stripHTML","store","noticesStore","MediaUpload","MediaUploadCheck","LinkControl","blockEditorStore","noop","uniqueId","MediaReplaceFlow","mediaURL","mediaId","mediaIds","allowedTypes","accept","onError","onSelect","onSelectURL","onToggleFeaturedImage","useFeaturedImage","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 * 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\tTooltip,\n} from '@wordpress/components';\nimport { useSelect, withDispatch } from '@wordpress/data';\nimport { DOWN } from '@wordpress/keycodes';\nimport {\n\tpostFeaturedImage,\n\tupload,\n\tmedia as mediaIcon,\n} 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 noop = () => {};\nlet uniqueId = 0;\n\nconst MediaReplaceFlow = ( {\n\tmediaURL,\n\tmediaId,\n\tmediaIds,\n\tallowedTypes,\n\taccept,\n\tonError,\n\tonSelect,\n\tonSelectURL,\n\tonToggleFeaturedImage,\n\tuseFeaturedImage,\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 = `block-editor/media-replace-flow/error-notice/${ ++uniqueId }`;\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\tif ( useFeaturedImage && onToggleFeaturedImage ) {\n\t\t\tonToggleFeaturedImage();\n\t\t}\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<>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\tgallery={ gallery }\n\t\t\t\t\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\tvalue={ multiple ? mediaIds : mediaId }\n\t\t\t\t\t\t\t\tonSelect={ ( media ) =>\n\t\t\t\t\t\t\t\t\tselectMedia( media, onClose )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\ticon={ mediaIcon }\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tuploadFiles( event, onClose );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t</>\n\t\t\t\t\t\t{ onToggleFeaturedImage && (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\ticon={ postFeaturedImage }\n\t\t\t\t\t\t\t\tonClick={ onToggleFeaturedImage }\n\t\t\t\t\t\t\t\tisPressed={ useFeaturedImage }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Use featured image' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\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\n\t\t\t\t\t\t\t<Tooltip text={ mediaURLValue } position=\"bottom\">\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\t\t\tvalue={ { url: mediaURLValue } }\n\t\t\t\t\t\t\t\t\t\tsettings={ [] }\n\t\t\t\t\t\t\t\t\t\tshowSuggestions={ false }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetMediaURLValue( url );\n\t\t\t\t\t\t\t\t\t\t\tonSelectURL( url );\n\t\t\t\t\t\t\t\t\t\t\teditMediaButtonRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</Tooltip>\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":["useRef","__","speak","FormFileUpload","NavigableMenu","MenuItem","ToolbarButton","Dropdown","withFilters","Tooltip","useSelect","withDispatch","DOWN","postFeaturedImage","upload","media","mediaIcon","compose","__unstableStripHTML","stripHTML","store","noticesStore","MediaUpload","MediaUploadCheck","LinkControl","blockEditorStore","noop","uniqueId","MediaReplaceFlow","mediaURL","mediaId","mediaIds","allowedTypes","accept","onError","onSelect","onSelectURL","onToggleFeaturedImage","useFeaturedImage","onFilesUpload","name","createNotice","removeNotice","children","multiple","addToGallery","handleUpload","mediaUpload","select","getSettings","editMediaButtonRef","errorNoticeID","onUploadError","message","safeMessage","setTimeout","id","isDismissible","selectMedia","closeMenu","uploadFiles","event","files","target","filesList","onFileChange","openOnArrowDown","keyCode","preventDefault","click","onlyAllowsImages","length","every","allowedType","startsWith","gallery","POPOVER_PROPS","isAlternate","isOpen","onToggle","onClose","open","openFileDialog","url","current","focus","dispatch"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { 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\tTooltip,\n} from '@wordpress/components';\nimport { useSelect, withDispatch } from '@wordpress/data';\nimport { DOWN } from '@wordpress/keycodes';\nimport {\n\tpostFeaturedImage,\n\tupload,\n\tmedia as mediaIcon,\n} 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 noop = () => {};\nlet uniqueId = 0;\n\nconst MediaReplaceFlow = ( {\n\tmediaURL,\n\tmediaId,\n\tmediaIds,\n\tallowedTypes,\n\taccept,\n\tonError,\n\tonSelect,\n\tonSelectURL,\n\tonToggleFeaturedImage,\n\tuseFeaturedImage,\n\tonFilesUpload = noop,\n\tname = __( 'Replace' ),\n\tcreateNotice,\n\tremoveNotice,\n\tchildren,\n\tmultiple = false,\n\taddToGallery,\n\thandleUpload = true,\n} ) => {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst editMediaButtonRef = useRef();\n\tconst errorNoticeID = `block-editor/media-replace-flow/error-notice/${ ++uniqueId }`;\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\tif ( useFeaturedImage && onToggleFeaturedImage ) {\n\t\t\tonToggleFeaturedImage();\n\t\t}\n\t\tcloseMenu();\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<>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\tgallery={ gallery }\n\t\t\t\t\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\tvalue={ multiple ? mediaIds : mediaId }\n\t\t\t\t\t\t\t\tonSelect={ ( media ) =>\n\t\t\t\t\t\t\t\t\tselectMedia( media, onClose )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\ticon={ mediaIcon }\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tuploadFiles( event, onClose );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t</>\n\t\t\t\t\t\t{ onToggleFeaturedImage && (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\ticon={ postFeaturedImage }\n\t\t\t\t\t\t\t\tonClick={ onToggleFeaturedImage }\n\t\t\t\t\t\t\t\tisPressed={ useFeaturedImage }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Use featured image' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\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\n\t\t\t\t\t\t\t<Tooltip text={ mediaURL } position=\"bottom\">\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\t\t\tvalue={ { url: mediaURL } }\n\t\t\t\t\t\t\t\t\t\tsettings={ [] }\n\t\t\t\t\t\t\t\t\t\tshowSuggestions={ false }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\t\t\tonSelectURL( url );\n\t\t\t\t\t\t\t\t\t\t\teditMediaButtonRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</Tooltip>\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,10 +1,10 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
1
2
  import { createElement } from "@wordpress/element";
2
3
 
3
4
  /**
4
5
  * External dependencies
5
6
  */
6
7
  import { Platform } from 'react-native';
7
- import { delay } from 'lodash';
8
8
  import prompt from 'react-native-prompt-android';
9
9
  /**
10
10
  * WordPress dependencies
@@ -32,6 +32,9 @@ const PICKER_OPENING_DELAY = 200;
32
32
  export class MediaUpload extends Component {
33
33
  constructor(props) {
34
34
  super(props);
35
+
36
+ _defineProperty(this, "pickerTimeout", void 0);
37
+
35
38
  this.onPickerPresent = this.onPickerPresent.bind(this);
36
39
  this.onPickerSelect = this.onPickerSelect.bind(this);
37
40
  this.getAllSources = this.getAllSources.bind(this);
@@ -63,6 +66,10 @@ export class MediaUpload extends Component {
63
66
  }
64
67
  }
65
68
 
69
+ componentWillUnmount() {
70
+ clearTimeout(this.pickerTimeout);
71
+ }
72
+
66
73
  getAllSources() {
67
74
  const {
68
75
  onSelectURL
@@ -149,7 +156,7 @@ export class MediaUpload extends Component {
149
156
  // the delay below is required because on iOS this action sheet gets dismissed by the close event of the Inserter
150
157
  // so this delay allows the Inserter to be closed fully before presenting action sheet.
151
158
  if (autoOpen && isIOS) {
152
- delay(() => this.picker.presentPicker(), PICKER_OPENING_DELAY);
159
+ this.pickerTimeout = setTimeout(() => this.picker.presentPicker(), PICKER_OPENING_DELAY);
153
160
  } else {
154
161
  this.picker.presentPicker();
155
162
  }