@wordpress/block-library 8.29.0 → 8.31.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 (527) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/audio/edit.js +7 -17
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/edit.native.js.map +1 -1
  5. package/build/avatar/edit.js.map +1 -1
  6. package/build/block/deprecated.js +71 -11
  7. package/build/block/deprecated.js.map +1 -1
  8. package/build/block/edit.js +65 -31
  9. package/build/block/edit.js.map +1 -1
  10. package/build/button/edit.js +2 -2
  11. package/build/button/edit.js.map +1 -1
  12. package/build/buttons/edit.native.js.map +1 -1
  13. package/build/buttons/transforms.js +16 -2
  14. package/build/buttons/transforms.js.map +1 -1
  15. package/build/code/save.js +3 -1
  16. package/build/code/save.js.map +1 -1
  17. package/build/code/transforms.js +17 -6
  18. package/build/code/transforms.js.map +1 -1
  19. package/build/columns/edit.js +3 -2
  20. package/build/columns/edit.js.map +1 -1
  21. package/build/comment-author-avatar/edit.js +1 -1
  22. package/build/comment-author-avatar/edit.js.map +1 -1
  23. package/build/cover/edit/block-controls.js +14 -3
  24. package/build/cover/edit/block-controls.js.map +1 -1
  25. package/build/cover/edit/index.js +2 -1
  26. package/build/cover/edit/index.js.map +1 -1
  27. package/build/cover/edit/inspector-controls.js.map +1 -1
  28. package/build/cover/edit/resizable-cover-popover.js +0 -6
  29. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  30. package/build/cover/edit.native.js.map +1 -1
  31. package/build/details/edit.js +1 -0
  32. package/build/details/edit.js.map +1 -1
  33. package/build/file/deprecated.js.map +1 -1
  34. package/build/file/edit.js +8 -13
  35. package/build/file/edit.js.map +1 -1
  36. package/build/file/edit.native.js.map +1 -1
  37. package/build/file/save.js.map +1 -1
  38. package/build/form-input/edit.js +1 -1
  39. package/build/form-input/edit.js.map +1 -1
  40. package/build/gallery/edit.js.map +1 -1
  41. package/build/gallery/gallery.native.js.map +1 -1
  42. package/build/gallery/v1/edit.js.map +1 -1
  43. package/build/gallery/v1/gallery.native.js.map +1 -1
  44. package/build/heading/index.js +4 -3
  45. package/build/heading/index.js.map +1 -1
  46. package/build/heading/transforms.js +17 -4
  47. package/build/heading/transforms.js.map +1 -1
  48. package/build/image/edit.js +8 -4
  49. package/build/image/edit.js.map +1 -1
  50. package/build/image/edit.native.js.map +1 -1
  51. package/build/image/image.js +22 -8
  52. package/build/image/image.js.map +1 -1
  53. package/build/latest-posts/edit.native.js.map +1 -1
  54. package/build/list/ordered-list-settings.js +1 -1
  55. package/build/list/ordered-list-settings.js.map +1 -1
  56. package/build/list-item/edit.js +1 -3
  57. package/build/list-item/edit.js.map +1 -1
  58. package/build/list-item/edit.native.js.map +1 -1
  59. package/build/list-item/hooks/index.js +0 -7
  60. package/build/list-item/hooks/index.js.map +1 -1
  61. package/build/list-item/hooks/use-indent-list-item.js +1 -0
  62. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  63. package/build/list-item/hooks/use-outdent-list-item.js +1 -0
  64. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  65. package/build/list-item/hooks/use-space.js +16 -7
  66. package/build/list-item/hooks/use-space.js.map +1 -1
  67. package/build/list-item/index.js +4 -1
  68. package/build/list-item/index.js.map +1 -1
  69. package/build/media-text/edit.js +33 -9
  70. package/build/media-text/edit.js.map +1 -1
  71. package/build/media-text/index.js +5 -0
  72. package/build/media-text/index.js.map +1 -1
  73. package/build/media-text/media-container.js +30 -11
  74. package/build/media-text/media-container.js.map +1 -1
  75. package/build/media-text/media-container.native.js +1 -1
  76. package/build/media-text/media-container.native.js.map +1 -1
  77. package/build/media-text/save.js +2 -2
  78. package/build/media-text/save.js.map +1 -1
  79. package/build/navigation/edit/index.js +23 -29
  80. package/build/navigation/edit/index.js.map +1 -1
  81. package/build/navigation/edit/navigation-menu-delete-control.js +12 -20
  82. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  83. package/build/navigation/edit/navigation-menu-selector.js +24 -23
  84. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  85. package/build/navigation/edit/placeholder/index.js +4 -4
  86. package/build/navigation/edit/placeholder/index.js.map +1 -1
  87. package/build/navigation/use-navigation-menu.js +15 -12
  88. package/build/navigation/use-navigation-menu.js.map +1 -1
  89. package/build/navigation-link/edit.js +12 -10
  90. package/build/navigation-link/edit.js.map +1 -1
  91. package/build/navigation-link/link-ui.js.map +1 -1
  92. package/build/navigation-submenu/edit.js +4 -0
  93. package/build/navigation-submenu/edit.js.map +1 -1
  94. package/build/paragraph/edit.native.js.map +1 -1
  95. package/build/pattern/edit.js +11 -0
  96. package/build/pattern/edit.js.map +1 -1
  97. package/build/post-author/edit.js +1 -0
  98. package/build/post-author/edit.js.map +1 -1
  99. package/build/post-excerpt/edit.js +1 -0
  100. package/build/post-excerpt/edit.js.map +1 -1
  101. package/build/post-featured-image/dimension-controls.js.map +1 -1
  102. package/build/post-featured-image/edit.js +12 -12
  103. package/build/post-featured-image/edit.js.map +1 -1
  104. package/build/post-featured-image/index.js +6 -0
  105. package/build/post-featured-image/index.js.map +1 -1
  106. package/build/post-navigation-link/edit.js +1 -0
  107. package/build/post-navigation-link/edit.js.map +1 -1
  108. package/build/post-terms/edit.js +2 -0
  109. package/build/post-terms/edit.js.map +1 -1
  110. package/build/post-title/edit.js +2 -2
  111. package/build/post-title/edit.js.map +1 -1
  112. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  113. package/build/query/utils.js +7 -5
  114. package/build/query/utils.js.map +1 -1
  115. package/build/query-pagination-next/edit.js.map +1 -1
  116. package/build/query-pagination-previous/edit.js.map +1 -1
  117. package/build/quote/deprecated.js +111 -12
  118. package/build/quote/deprecated.js.map +1 -1
  119. package/build/quote/edit.js +7 -7
  120. package/build/quote/edit.js.map +1 -1
  121. package/build/quote/index.js +1 -1
  122. package/build/quote/index.js.map +1 -1
  123. package/build/quote/save.js +2 -2
  124. package/build/quote/save.js.map +1 -1
  125. package/build/read-more/edit.js +1 -0
  126. package/build/read-more/edit.js.map +1 -1
  127. package/build/search/edit.js +3 -1
  128. package/build/search/edit.js.map +1 -1
  129. package/build/search/edit.native.js +2 -2
  130. package/build/search/edit.native.js.map +1 -1
  131. package/build/site-logo/edit.js +7 -2
  132. package/build/site-logo/edit.js.map +1 -1
  133. package/build/site-title/{edit/index.js → edit.js} +1 -1
  134. package/build/site-title/edit.js.map +1 -0
  135. package/build/social-link/edit.js +1 -1
  136. package/build/social-link/edit.js.map +1 -1
  137. package/build/social-link/icons/medium.js +1 -1
  138. package/build/social-link/icons/medium.js.map +1 -1
  139. package/build/social-link/icons/reddit.js +1 -1
  140. package/build/social-link/icons/reddit.js.map +1 -1
  141. package/build/social-links/edit.native.js.map +1 -1
  142. package/build/spacer/edit.js.map +1 -1
  143. package/build/table/deprecated.js +285 -175
  144. package/build/table/deprecated.js.map +1 -1
  145. package/build/table/index.js +1 -1
  146. package/build/table-of-contents/edit.js.map +1 -1
  147. package/build/template-part/edit/index.js +53 -1
  148. package/build/template-part/edit/index.js.map +1 -1
  149. package/build/template-part/edit/selection-modal.js +2 -8
  150. package/build/template-part/edit/selection-modal.js.map +1 -1
  151. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
  152. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  153. package/build/utils/caption.js +15 -5
  154. package/build/utils/caption.js.map +1 -1
  155. package/build/utils/get-transformed-metadata.js +57 -0
  156. package/build/utils/get-transformed-metadata.js.map +1 -0
  157. package/build/utils/hooks.js +55 -4
  158. package/build/utils/hooks.js.map +1 -1
  159. package/build/video/edit-common-settings.js.map +1 -1
  160. package/build/video/edit.js +7 -16
  161. package/build/video/edit.js.map +1 -1
  162. package/build/video/edit.native.js +3 -8
  163. package/build/video/edit.native.js.map +1 -1
  164. package/build-module/audio/edit.js +10 -20
  165. package/build-module/audio/edit.js.map +1 -1
  166. package/build-module/audio/edit.native.js.map +1 -1
  167. package/build-module/avatar/edit.js.map +1 -1
  168. package/build-module/block/deprecated.js +71 -11
  169. package/build-module/block/deprecated.js.map +1 -1
  170. package/build-module/block/edit.js +66 -32
  171. package/build-module/block/edit.js.map +1 -1
  172. package/build-module/button/edit.js +3 -3
  173. package/build-module/button/edit.js.map +1 -1
  174. package/build-module/buttons/edit.native.js.map +1 -1
  175. package/build-module/buttons/transforms.js +16 -2
  176. package/build-module/buttons/transforms.js.map +1 -1
  177. package/build-module/code/save.js +3 -1
  178. package/build-module/code/save.js.map +1 -1
  179. package/build-module/code/transforms.js +17 -6
  180. package/build-module/code/transforms.js.map +1 -1
  181. package/build-module/columns/edit.js +3 -2
  182. package/build-module/columns/edit.js.map +1 -1
  183. package/build-module/comment-author-avatar/edit.js +1 -1
  184. package/build-module/comment-author-avatar/edit.js.map +1 -1
  185. package/build-module/cover/edit/block-controls.js +15 -4
  186. package/build-module/cover/edit/block-controls.js.map +1 -1
  187. package/build-module/cover/edit/index.js +2 -1
  188. package/build-module/cover/edit/index.js.map +1 -1
  189. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  190. package/build-module/cover/edit/resizable-cover-popover.js +1 -7
  191. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  192. package/build-module/cover/edit.native.js.map +1 -1
  193. package/build-module/details/edit.js +1 -0
  194. package/build-module/details/edit.js.map +1 -1
  195. package/build-module/file/deprecated.js.map +1 -1
  196. package/build-module/file/edit.js +9 -14
  197. package/build-module/file/edit.js.map +1 -1
  198. package/build-module/file/edit.native.js.map +1 -1
  199. package/build-module/file/save.js.map +1 -1
  200. package/build-module/form-input/edit.js +1 -1
  201. package/build-module/form-input/edit.js.map +1 -1
  202. package/build-module/gallery/edit.js.map +1 -1
  203. package/build-module/gallery/gallery.native.js.map +1 -1
  204. package/build-module/gallery/v1/edit.js.map +1 -1
  205. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  206. package/build-module/heading/index.js +4 -3
  207. package/build-module/heading/index.js.map +1 -1
  208. package/build-module/heading/transforms.js +17 -4
  209. package/build-module/heading/transforms.js.map +1 -1
  210. package/build-module/image/edit.js +9 -5
  211. package/build-module/image/edit.js.map +1 -1
  212. package/build-module/image/edit.native.js.map +1 -1
  213. package/build-module/image/image.js +23 -9
  214. package/build-module/image/image.js.map +1 -1
  215. package/build-module/latest-posts/edit.native.js.map +1 -1
  216. package/build-module/list/ordered-list-settings.js +1 -1
  217. package/build-module/list/ordered-list-settings.js.map +1 -1
  218. package/build-module/list-item/edit.js +2 -4
  219. package/build-module/list-item/edit.js.map +1 -1
  220. package/build-module/list-item/edit.native.js.map +1 -1
  221. package/build-module/list-item/hooks/index.js +0 -1
  222. package/build-module/list-item/hooks/index.js.map +1 -1
  223. package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
  224. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  225. package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
  226. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  227. package/build-module/list-item/hooks/use-space.js +17 -8
  228. package/build-module/list-item/hooks/use-space.js.map +1 -1
  229. package/build-module/list-item/index.js +4 -1
  230. package/build-module/list-item/index.js.map +1 -1
  231. package/build-module/media-text/edit.js +34 -10
  232. package/build-module/media-text/edit.js.map +1 -1
  233. package/build-module/media-text/index.js +5 -0
  234. package/build-module/media-text/index.js.map +1 -1
  235. package/build-module/media-text/media-container.js +31 -12
  236. package/build-module/media-text/media-container.js.map +1 -1
  237. package/build-module/media-text/media-container.native.js +1 -1
  238. package/build-module/media-text/media-container.native.js.map +1 -1
  239. package/build-module/media-text/save.js +2 -2
  240. package/build-module/media-text/save.js.map +1 -1
  241. package/build-module/navigation/edit/index.js +24 -30
  242. package/build-module/navigation/edit/index.js.map +1 -1
  243. package/build-module/navigation/edit/navigation-menu-delete-control.js +15 -23
  244. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  245. package/build-module/navigation/edit/navigation-menu-selector.js +24 -23
  246. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  247. package/build-module/navigation/edit/placeholder/index.js +4 -4
  248. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  249. package/build-module/navigation/use-navigation-menu.js +15 -12
  250. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  251. package/build-module/navigation-link/edit.js +13 -11
  252. package/build-module/navigation-link/edit.js.map +1 -1
  253. package/build-module/navigation-link/link-ui.js.map +1 -1
  254. package/build-module/navigation-submenu/edit.js +4 -0
  255. package/build-module/navigation-submenu/edit.js.map +1 -1
  256. package/build-module/paragraph/edit.native.js.map +1 -1
  257. package/build-module/pattern/edit.js +11 -0
  258. package/build-module/pattern/edit.js.map +1 -1
  259. package/build-module/post-author/edit.js +1 -0
  260. package/build-module/post-author/edit.js.map +1 -1
  261. package/build-module/post-excerpt/edit.js +1 -0
  262. package/build-module/post-excerpt/edit.js.map +1 -1
  263. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  264. package/build-module/post-featured-image/edit.js +13 -13
  265. package/build-module/post-featured-image/edit.js.map +1 -1
  266. package/build-module/post-featured-image/index.js +6 -0
  267. package/build-module/post-featured-image/index.js.map +1 -1
  268. package/build-module/post-navigation-link/edit.js +1 -0
  269. package/build-module/post-navigation-link/edit.js.map +1 -1
  270. package/build-module/post-terms/edit.js +2 -0
  271. package/build-module/post-terms/edit.js.map +1 -1
  272. package/build-module/post-title/edit.js +2 -2
  273. package/build-module/post-title/edit.js.map +1 -1
  274. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  275. package/build-module/query/utils.js +7 -5
  276. package/build-module/query/utils.js.map +1 -1
  277. package/build-module/query-pagination-next/edit.js.map +1 -1
  278. package/build-module/query-pagination-previous/edit.js.map +1 -1
  279. package/build-module/quote/deprecated.js +112 -13
  280. package/build-module/quote/deprecated.js.map +1 -1
  281. package/build-module/quote/edit.js +7 -7
  282. package/build-module/quote/edit.js.map +1 -1
  283. package/build-module/quote/index.js +1 -1
  284. package/build-module/quote/index.js.map +1 -1
  285. package/build-module/quote/save.js +2 -2
  286. package/build-module/quote/save.js.map +1 -1
  287. package/build-module/read-more/edit.js +1 -0
  288. package/build-module/read-more/edit.js.map +1 -1
  289. package/build-module/search/edit.js +3 -1
  290. package/build-module/search/edit.js.map +1 -1
  291. package/build-module/search/edit.native.js +2 -2
  292. package/build-module/search/edit.native.js.map +1 -1
  293. package/build-module/site-logo/edit.js +7 -2
  294. package/build-module/site-logo/edit.js.map +1 -1
  295. package/build-module/site-title/{edit/index.js → edit.js} +1 -1
  296. package/build-module/site-title/edit.js.map +1 -0
  297. package/build-module/social-link/edit.js +1 -1
  298. package/build-module/social-link/edit.js.map +1 -1
  299. package/build-module/social-link/icons/medium.js +1 -1
  300. package/build-module/social-link/icons/medium.js.map +1 -1
  301. package/build-module/social-link/icons/reddit.js +1 -1
  302. package/build-module/social-link/icons/reddit.js.map +1 -1
  303. package/build-module/social-links/edit.native.js.map +1 -1
  304. package/build-module/spacer/edit.js.map +1 -1
  305. package/build-module/table/deprecated.js +286 -176
  306. package/build-module/table/deprecated.js.map +1 -1
  307. package/build-module/table/index.js +1 -1
  308. package/build-module/table-of-contents/edit.js.map +1 -1
  309. package/build-module/template-part/edit/index.js +57 -5
  310. package/build-module/template-part/edit/index.js.map +1 -1
  311. package/build-module/template-part/edit/selection-modal.js +2 -8
  312. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  313. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
  314. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  315. package/build-module/utils/caption.js +13 -3
  316. package/build-module/utils/caption.js.map +1 -1
  317. package/build-module/utils/get-transformed-metadata.js +51 -0
  318. package/build-module/utils/get-transformed-metadata.js.map +1 -0
  319. package/build-module/utils/hooks.js +54 -3
  320. package/build-module/utils/hooks.js.map +1 -1
  321. package/build-module/video/edit-common-settings.js.map +1 -1
  322. package/build-module/video/edit.js +10 -19
  323. package/build-module/video/edit.js.map +1 -1
  324. package/build-module/video/edit.native.js +3 -8
  325. package/build-module/video/edit.native.js.map +1 -1
  326. package/build-style/common-rtl.css +1 -0
  327. package/build-style/common.css +1 -0
  328. package/build-style/cover/style-rtl.css +2 -1
  329. package/build-style/cover/style.css +2 -1
  330. package/build-style/editor-rtl.css +11 -2
  331. package/build-style/editor.css +11 -2
  332. package/build-style/file/editor-rtl.css +3 -0
  333. package/build-style/file/editor.css +3 -0
  334. package/build-style/group/editor-rtl.css +1 -1
  335. package/build-style/group/editor.css +1 -1
  336. package/build-style/media-text/editor-rtl.css +7 -1
  337. package/build-style/media-text/editor.css +7 -1
  338. package/build-style/search/style-rtl.css +2 -0
  339. package/build-style/search/style.css +2 -0
  340. package/build-style/social-links/style-rtl.css +2 -2
  341. package/build-style/social-links/style.css +2 -2
  342. package/build-style/style-rtl.css +6 -3
  343. package/build-style/style.css +6 -3
  344. package/package.json +34 -34
  345. package/src/archives/index.php +4 -0
  346. package/src/audio/edit.js +9 -19
  347. package/src/audio/edit.native.js +3 -3
  348. package/src/avatar/edit.js +1 -1
  349. package/src/avatar/index.php +6 -0
  350. package/src/block/deprecated.js +76 -11
  351. package/src/block/edit.js +100 -32
  352. package/src/block/index.php +27 -12
  353. package/src/block/test/edit.native.js +67 -0
  354. package/src/button/edit.js +4 -3
  355. package/src/buttons/edit.native.js +1 -1
  356. package/src/buttons/transforms.js +14 -4
  357. package/src/calendar/index.php +17 -0
  358. package/src/categories/index.php +6 -0
  359. package/src/code/save.js +7 -1
  360. package/src/code/transforms.js +20 -5
  361. package/src/columns/edit.js +3 -2
  362. package/src/comment-author-avatar/edit.js +1 -1
  363. package/src/comment-author-name/index.php +4 -0
  364. package/src/comment-content/index.php +4 -0
  365. package/src/comment-date/index.php +4 -0
  366. package/src/comment-edit-link/index.php +4 -0
  367. package/src/comment-reply-link/index.php +4 -0
  368. package/src/comment-template/index.php +4 -0
  369. package/src/comments/index.php +12 -0
  370. package/src/comments-pagination/index.php +4 -0
  371. package/src/comments-pagination-next/index.php +4 -0
  372. package/src/comments-pagination-numbers/index.php +4 -0
  373. package/src/comments-pagination-previous/index.php +4 -0
  374. package/src/comments-title/index.php +4 -0
  375. package/src/cover/edit/block-controls.js +16 -2
  376. package/src/cover/edit/index.js +6 -3
  377. package/src/cover/edit/inspector-controls.js +1 -1
  378. package/src/cover/edit/resizable-cover-popover.js +1 -6
  379. package/src/cover/edit.native.js +1 -1
  380. package/src/cover/index.php +4 -0
  381. package/src/cover/style.scss +3 -2
  382. package/src/details/edit.js +1 -0
  383. package/src/file/deprecated.js +3 -3
  384. package/src/file/edit.js +10 -15
  385. package/src/file/edit.native.js +4 -4
  386. package/src/file/editor.scss +3 -0
  387. package/src/file/index.php +4 -0
  388. package/src/file/save.js +1 -1
  389. package/src/footnotes/index.php +1 -1
  390. package/src/form-input/edit.js +1 -1
  391. package/src/gallery/edit.js +3 -3
  392. package/src/gallery/gallery.native.js +1 -1
  393. package/src/gallery/index.php +6 -0
  394. package/src/gallery/test/index.native.js +1 -1
  395. package/src/gallery/v1/edit.js +2 -2
  396. package/src/gallery/v1/gallery.native.js +1 -1
  397. package/src/group/editor.scss +1 -1
  398. package/src/heading/index.js +4 -3
  399. package/src/heading/index.php +4 -0
  400. package/src/heading/transforms.js +27 -8
  401. package/src/home-link/index.php +10 -0
  402. package/src/image/edit.js +13 -5
  403. package/src/image/edit.native.js +1 -1
  404. package/src/image/editor.scss +1 -0
  405. package/src/image/image.js +34 -22
  406. package/src/image/index.php +12 -1
  407. package/src/latest-comments/index.php +4 -0
  408. package/src/latest-posts/edit.native.js +1 -1
  409. package/src/latest-posts/index.php +8 -0
  410. package/src/list/ordered-list-settings.js +1 -1
  411. package/src/list-item/edit.js +1 -2
  412. package/src/list-item/edit.native.js +1 -1
  413. package/src/list-item/hooks/index.js +0 -1
  414. package/src/list-item/hooks/use-indent-list-item.js +2 -0
  415. package/src/list-item/hooks/use-outdent-list-item.js +2 -0
  416. package/src/list-item/hooks/use-space.js +16 -9
  417. package/src/list-item/index.js +3 -0
  418. package/src/loginout/index.php +4 -0
  419. package/src/media-text/block.json +5 -0
  420. package/src/media-text/edit.js +70 -19
  421. package/src/media-text/editor.scss +7 -1
  422. package/src/media-text/index.php +70 -0
  423. package/src/media-text/media-container.js +49 -9
  424. package/src/media-text/media-container.native.js +5 -3
  425. package/src/media-text/save.js +2 -2
  426. package/src/media-text/test/edit.native.js +58 -0
  427. package/src/missing/test/edit-integration.native.js +2 -1
  428. package/src/navigation/edit/index.js +68 -72
  429. package/src/navigation/edit/navigation-menu-delete-control.js +22 -49
  430. package/src/navigation/edit/navigation-menu-selector.js +39 -21
  431. package/src/navigation/edit/placeholder/index.js +4 -4
  432. package/src/navigation/edit/test/navigation-menu-selector.js +77 -55
  433. package/src/navigation/index.php +118 -34
  434. package/src/navigation/test/use-navigation-menu.js +21 -21
  435. package/src/navigation/use-navigation-menu.js +23 -9
  436. package/src/navigation-link/edit.js +12 -13
  437. package/src/navigation-link/index.php +14 -0
  438. package/src/navigation-link/link-ui.js +2 -2
  439. package/src/navigation-submenu/edit.js +4 -0
  440. package/src/navigation-submenu/index.php +8 -0
  441. package/src/page-list/index.php +12 -0
  442. package/src/page-list-item/index.php +2 -0
  443. package/src/paragraph/edit.native.js +1 -1
  444. package/src/paragraph/test/edit.native.js +36 -0
  445. package/src/pattern/edit.js +14 -0
  446. package/src/pattern/index.php +2 -0
  447. package/src/post-author/edit.js +1 -0
  448. package/src/post-author/index.php +4 -0
  449. package/src/post-author-biography/index.php +4 -0
  450. package/src/post-author-name/index.php +4 -0
  451. package/src/post-comments-form/index.php +6 -0
  452. package/src/post-content/index.php +4 -0
  453. package/src/post-date/index.php +4 -0
  454. package/src/post-excerpt/edit.js +2 -1
  455. package/src/post-excerpt/index.php +4 -0
  456. package/src/post-featured-image/block.json +6 -0
  457. package/src/post-featured-image/dimension-controls.js +4 -4
  458. package/src/post-featured-image/edit.js +14 -12
  459. package/src/post-featured-image/index.php +15 -0
  460. package/src/post-navigation-link/edit.js +2 -1
  461. package/src/post-navigation-link/index.php +4 -0
  462. package/src/post-template/index.php +6 -0
  463. package/src/post-terms/edit.js +2 -0
  464. package/src/post-terms/index.php +6 -0
  465. package/src/post-title/edit.js +49 -43
  466. package/src/post-title/index.php +2 -0
  467. package/src/query/edit/pattern-selection-modal.js +1 -1
  468. package/src/query/index.php +2 -0
  469. package/src/query/utils.js +6 -4
  470. package/src/query-no-results/index.php +4 -0
  471. package/src/query-pagination/index.php +4 -0
  472. package/src/query-pagination-next/edit.js +1 -1
  473. package/src/query-pagination-next/index.php +4 -0
  474. package/src/query-pagination-numbers/index.php +4 -0
  475. package/src/query-pagination-previous/edit.js +1 -1
  476. package/src/query-pagination-previous/index.php +4 -0
  477. package/src/query-title/index.php +4 -0
  478. package/src/quote/block.json +1 -1
  479. package/src/quote/deprecated.js +110 -15
  480. package/src/quote/edit.js +16 -10
  481. package/src/quote/save.js +2 -2
  482. package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
  483. package/src/read-more/edit.js +2 -1
  484. package/src/read-more/index.php +4 -0
  485. package/src/rss/index.php +4 -0
  486. package/src/search/edit.js +3 -1
  487. package/src/search/edit.native.js +6 -6
  488. package/src/search/index.php +20 -2
  489. package/src/search/style.scss +2 -0
  490. package/src/shortcode/index.php +4 -0
  491. package/src/site-logo/edit.js +11 -6
  492. package/src/site-logo/index.php +20 -0
  493. package/src/site-tagline/index.php +4 -0
  494. package/src/site-title/index.php +4 -0
  495. package/src/social-link/edit.js +2 -2
  496. package/src/social-link/icons/medium.js +1 -1
  497. package/src/social-link/icons/reddit.js +1 -1
  498. package/src/social-link/index.php +22 -9
  499. package/src/social-link/socials-with-bg.scss +1 -1
  500. package/src/social-link/socials-without-bg.scss +1 -1
  501. package/src/social-links/edit.native.js +1 -1
  502. package/src/spacer/edit.js +1 -1
  503. package/src/table/block.json +1 -1
  504. package/src/table/deprecated.js +308 -175
  505. package/src/table-of-contents/edit.js +1 -1
  506. package/src/tag-cloud/index.php +4 -0
  507. package/src/template-part/edit/index.js +91 -4
  508. package/src/template-part/edit/selection-modal.js +4 -8
  509. package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
  510. package/src/template-part/index.php +10 -0
  511. package/src/term-description/index.php +4 -0
  512. package/src/utils/caption.js +10 -1
  513. package/src/utils/get-transformed-metadata.js +65 -0
  514. package/src/utils/hooks.js +53 -3
  515. package/src/video/edit-common-settings.js +1 -1
  516. package/src/video/edit.js +10 -18
  517. package/src/video/edit.native.js +7 -8
  518. package/src/video/test/edit.native.js +0 -14
  519. package/tsconfig.json +1 -0
  520. package/build/list-item/hooks/use-copy.js +0 -39
  521. package/build/list-item/hooks/use-copy.js.map +0 -1
  522. package/build/site-title/edit/index.js.map +0 -1
  523. package/build-module/list-item/hooks/use-copy.js +0 -32
  524. package/build-module/list-item/hooks/use-copy.js.map +0 -1
  525. package/build-module/site-title/edit/index.js.map +0 -1
  526. package/src/list-item/hooks/use-copy.js +0 -38
  527. /package/src/site-title/{edit/index.js → edit.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useState","useEffect","useCallback","usePrevious","__","RichText","BlockControls","__experimentalGetElementClassName","ToolbarButton","caption","captionIcon","createBlock","getDefaultBlockName","Caption","key","attributes","setAttributes","isSelected","insertBlocksAfter","placeholder","label","showToolbarButton","className","prevCaption","isCaptionEmpty","isEmpty","isPrevCaptionEmpty","showCaption","setShowCaption","ref","node","focus","createElement","Fragment","group","onClick","undefined","icon","isPressed","identifier","tagName","value","onChange","inlineToolbar","__unstableOnSplitAtEnd"],"sources":["@wordpress/block-library/src/utils/caption.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tRichText,\n\tBlockControls,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { caption as captionIcon } from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport function Caption( {\n\tkey = 'caption',\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tplaceholder = __( 'Add caption' ),\n\tlabel = __( 'Caption text' ),\n\tshowToolbarButton = true,\n\tclassName,\n} ) {\n\tconst caption = attributes[ key ];\n\tconst prevCaption = usePrevious( caption );\n\tconst isCaptionEmpty = RichText.isEmpty( caption );\n\tconst isPrevCaptionEmpty = RichText.isEmpty( prevCaption );\n\tconst [ showCaption, setShowCaption ] = useState( ! isCaptionEmpty );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( ! isCaptionEmpty && isPrevCaptionEmpty ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ isCaptionEmpty, isPrevCaptionEmpty ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && isCaptionEmpty ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, isCaptionEmpty ] );\n\n\t// Focus the caption when we click to add one.\n\tconst ref = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && isCaptionEmpty ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ isCaptionEmpty ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ showToolbarButton && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier={ key }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'caption' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useState","useEffect","useCallback","usePrevious","__","BlockControls","__experimentalGetElementClassName","privateApis","blockEditorPrivateApis","ToolbarButton","caption","captionIcon","createBlock","getDefaultBlockName","unlock","PrivateRichText","RichText","Caption","key","attributes","setAttributes","isSelected","insertBlocksAfter","placeholder","label","showToolbarButton","className","disableEditing","prevCaption","isCaptionEmpty","isEmpty","isPrevCaptionEmpty","showCaption","setShowCaption","ref","node","focus","createElement","Fragment","group","onClick","undefined","icon","isPressed","identifier","tagName","value","onChange","inlineToolbar","__unstableOnSplitAtEnd"],"sources":["@wordpress/block-library/src/utils/caption.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\t__experimentalGetElementClassName,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { caption as captionIcon } from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { PrivateRichText: RichText } = unlock( blockEditorPrivateApis );\n\nexport function Caption( {\n\tkey = 'caption',\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tplaceholder = __( 'Add caption' ),\n\tlabel = __( 'Caption text' ),\n\tshowToolbarButton = true,\n\tclassName,\n\tdisableEditing,\n} ) {\n\tconst caption = attributes[ key ];\n\tconst prevCaption = usePrevious( caption );\n\tconst isCaptionEmpty = RichText.isEmpty( caption );\n\tconst isPrevCaptionEmpty = RichText.isEmpty( prevCaption );\n\tconst [ showCaption, setShowCaption ] = useState( ! isCaptionEmpty );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( ! isCaptionEmpty && isPrevCaptionEmpty ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ isCaptionEmpty, isPrevCaptionEmpty ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && isCaptionEmpty ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, isCaptionEmpty ] );\n\n\t// Focus the caption when we click to add one.\n\tconst ref = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && isCaptionEmpty ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ isCaptionEmpty ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ showToolbarButton && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier={ key }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'caption' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisableEditing={ disableEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { getBlockType } from '@wordpress/blocks';
5
+
6
+ /**
7
+ * Transform the metadata attribute with only the values and bindings specified by each transform.
8
+ * Returns `undefined` if the input metadata is falsy.
9
+ *
10
+ * @param {Object} metadata Original metadata attribute from the block that is being transformed.
11
+ * @param {Object} newBlockName Name of the final block after the transformation.
12
+ * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.
13
+ * @return {Object|undefined} New metadata object only with the relevant properties.
14
+ */
15
+ export function getTransformedMetadata(metadata, newBlockName, bindingsCallback) {
16
+ if (!metadata) {
17
+ return;
18
+ }
19
+ const {
20
+ supports
21
+ } = getBlockType(newBlockName);
22
+ // Fixed until an opt-in mechanism is implemented.
23
+ const BLOCK_BINDINGS_SUPPORTED_BLOCKS = ['core/paragraph', 'core/heading', 'core/image', 'core/button'];
24
+ // The metadata properties that should be preserved after the transform.
25
+ const transformSupportedProps = [];
26
+ // If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.
27
+ if (BLOCK_BINDINGS_SUPPORTED_BLOCKS.includes(newBlockName) && bindingsCallback) {
28
+ transformSupportedProps.push('id', 'bindings');
29
+ }
30
+ // If it support block naming (true by default), add the `name` property.
31
+ if (supports.renaming !== false) {
32
+ transformSupportedProps.push('name');
33
+ }
34
+
35
+ // Return early if no supported properties.
36
+ if (!transformSupportedProps.length) {
37
+ return;
38
+ }
39
+ const newMetadata = Object.entries(metadata).reduce((obj, [prop, value]) => {
40
+ // If prop is not supported, don't add it to the new metadata object.
41
+ if (!transformSupportedProps.includes(prop)) {
42
+ return obj;
43
+ }
44
+ obj[prop] = prop === 'bindings' ? bindingsCallback(value) : value;
45
+ return obj;
46
+ }, {});
47
+
48
+ // Return undefined if object is empty.
49
+ return Object.keys(newMetadata).length ? newMetadata : undefined;
50
+ }
51
+ //# sourceMappingURL=get-transformed-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getBlockType","getTransformedMetadata","metadata","newBlockName","bindingsCallback","supports","BLOCK_BINDINGS_SUPPORTED_BLOCKS","transformSupportedProps","includes","push","renaming","length","newMetadata","Object","entries","reduce","obj","prop","value","keys","undefined"],"sources":["@wordpress/block-library/src/utils/get-transformed-metadata.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Transform the metadata attribute with only the values and bindings specified by each transform.\n * Returns `undefined` if the input metadata is falsy.\n *\n * @param {Object} metadata Original metadata attribute from the block that is being transformed.\n * @param {Object} newBlockName Name of the final block after the transformation.\n * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.\n * @return {Object|undefined} New metadata object only with the relevant properties.\n */\nexport function getTransformedMetadata(\n\tmetadata,\n\tnewBlockName,\n\tbindingsCallback\n) {\n\tif ( ! metadata ) {\n\t\treturn;\n\t}\n\tconst { supports } = getBlockType( newBlockName );\n\t// Fixed until an opt-in mechanism is implemented.\n\tconst BLOCK_BINDINGS_SUPPORTED_BLOCKS = [\n\t\t'core/paragraph',\n\t\t'core/heading',\n\t\t'core/image',\n\t\t'core/button',\n\t];\n\t// The metadata properties that should be preserved after the transform.\n\tconst transformSupportedProps = [];\n\t// If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.\n\tif (\n\t\tBLOCK_BINDINGS_SUPPORTED_BLOCKS.includes( newBlockName ) &&\n\t\tbindingsCallback\n\t) {\n\t\ttransformSupportedProps.push( 'id', 'bindings' );\n\t}\n\t// If it support block naming (true by default), add the `name` property.\n\tif ( supports.renaming !== false ) {\n\t\ttransformSupportedProps.push( 'name' );\n\t}\n\n\t// Return early if no supported properties.\n\tif ( ! transformSupportedProps.length ) {\n\t\treturn;\n\t}\n\n\tconst newMetadata = Object.entries( metadata ).reduce(\n\t\t( obj, [ prop, value ] ) => {\n\t\t\t// If prop is not supported, don't add it to the new metadata object.\n\t\t\tif ( ! transformSupportedProps.includes( prop ) ) {\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tobj[ prop ] =\n\t\t\t\tprop === 'bindings' ? bindingsCallback( value ) : value;\n\t\t\treturn obj;\n\t\t},\n\t\t{}\n\t);\n\n\t// Return undefined if object is empty.\n\treturn Object.keys( newMetadata ).length ? newMetadata : undefined;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,mBAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACrCC,QAAQ,EACRC,YAAY,EACZC,gBAAgB,EACf;EACD,IAAK,CAAEF,QAAQ,EAAG;IACjB;EACD;EACA,MAAM;IAAEG;EAAS,CAAC,GAAGL,YAAY,CAAEG,YAAa,CAAC;EACjD;EACA,MAAMG,+BAA+B,GAAG,CACvC,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,CACb;EACD;EACA,MAAMC,uBAAuB,GAAG,EAAE;EAClC;EACA,IACCD,+BAA+B,CAACE,QAAQ,CAAEL,YAAa,CAAC,IACxDC,gBAAgB,EACf;IACDG,uBAAuB,CAACE,IAAI,CAAE,IAAI,EAAE,UAAW,CAAC;EACjD;EACA;EACA,IAAKJ,QAAQ,CAACK,QAAQ,KAAK,KAAK,EAAG;IAClCH,uBAAuB,CAACE,IAAI,CAAE,MAAO,CAAC;EACvC;;EAEA;EACA,IAAK,CAAEF,uBAAuB,CAACI,MAAM,EAAG;IACvC;EACD;EAEA,MAAMC,WAAW,GAAGC,MAAM,CAACC,OAAO,CAAEZ,QAAS,CAAC,CAACa,MAAM,CACpD,CAAEC,GAAG,EAAE,CAAEC,IAAI,EAAEC,KAAK,CAAE,KAAM;IAC3B;IACA,IAAK,CAAEX,uBAAuB,CAACC,QAAQ,CAAES,IAAK,CAAC,EAAG;MACjD,OAAOD,GAAG;IACX;IACAA,GAAG,CAAEC,IAAI,CAAE,GACVA,IAAI,KAAK,UAAU,GAAGb,gBAAgB,CAAEc,KAAM,CAAC,GAAGA,KAAK;IACxD,OAAOF,GAAG;EACX,CAAC,EACD,CAAC,CACF,CAAC;;EAED;EACA,OAAOH,MAAM,CAACM,IAAI,CAAEP,WAAY,CAAC,CAACD,MAAM,GAAGC,WAAW,GAAGQ,SAAS;AACnE"}
@@ -2,6 +2,9 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { useSelect } from '@wordpress/data';
5
+ import { useLayoutEffect, useEffect, useRef } from '@wordpress/element';
6
+ import { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';
7
+ import { store as blockEditorStore } from '@wordpress/block-editor';
5
8
  import { store as coreStore } from '@wordpress/core-data';
6
9
 
7
10
  /**
@@ -14,7 +17,55 @@ import { store as coreStore } from '@wordpress/core-data';
14
17
  export function useCanEditEntity(kind, name, recordId) {
15
18
  return useSelect(select => select(coreStore).canUserEditEntityRecord(kind, name, recordId), [kind, name, recordId]);
16
19
  }
17
- export default {
18
- useCanEditEntity
19
- };
20
+
21
+ /**
22
+ * Handles uploading a media file from a blob URL on mount.
23
+ *
24
+ * @param {Object} args Upload media arguments.
25
+ * @param {string} args.url Blob URL.
26
+ * @param {?Array} args.allowedTypes Array of allowed media types.
27
+ * @param {Function} args.onChange Function called when the media is uploaded.
28
+ * @param {Function} args.onError Function called when an error happens.
29
+ */
30
+ export function useUploadMediaFromBlobURL(args = {}) {
31
+ const latestArgs = useRef(args);
32
+ const {
33
+ getSettings
34
+ } = useSelect(blockEditorStore);
35
+ useLayoutEffect(() => {
36
+ latestArgs.current = args;
37
+ });
38
+ useEffect(() => {
39
+ if (!latestArgs.current.url || !isBlobURL(latestArgs.current.url)) {
40
+ return;
41
+ }
42
+ const file = getBlobByURL(latestArgs.current.url);
43
+ if (!file) {
44
+ return;
45
+ }
46
+ const {
47
+ url,
48
+ allowedTypes,
49
+ onChange,
50
+ onError
51
+ } = latestArgs.current;
52
+ const {
53
+ mediaUpload
54
+ } = getSettings();
55
+ mediaUpload({
56
+ filesList: [file],
57
+ allowedTypes,
58
+ onFileChange: ([media]) => {
59
+ if (isBlobURL(media?.url)) {
60
+ return;
61
+ }
62
+ revokeBlobURL(url);
63
+ onChange(media);
64
+ },
65
+ onError: message => {
66
+ onError(message);
67
+ }
68
+ });
69
+ }, [getSettings]);
70
+ }
20
71
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","store","coreStore","useCanEditEntity","kind","name","recordId","select","canUserEditEntityRecord"],"sources":["@wordpress/block-library/src/utils/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Returns whether the current user can edit the given entity.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport function useCanEditEntity( kind, name, recordId ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUserEditEntityRecord( kind, name, recordId ),\n\t\t[ kind, name, recordId ]\n\t);\n}\n\nexport default {\n\tuseCanEditEntity,\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAG;EACxD,OAAON,SAAS,CACbO,MAAM,IACPA,MAAM,CAAEL,SAAU,CAAC,CAACM,uBAAuB,CAAEJ,IAAI,EAAEC,IAAI,EAAEC,QAAS,CAAC,EACpE,CAAEF,IAAI,EAAEC,IAAI,EAAEC,QAAQ,CACvB,CAAC;AACF;AAEA,eAAe;EACdH;AACD,CAAC"}
1
+ {"version":3,"names":["useSelect","useLayoutEffect","useEffect","useRef","getBlobByURL","isBlobURL","revokeBlobURL","store","blockEditorStore","coreStore","useCanEditEntity","kind","name","recordId","select","canUserEditEntityRecord","useUploadMediaFromBlobURL","args","latestArgs","getSettings","current","url","file","allowedTypes","onChange","onError","mediaUpload","filesList","onFileChange","media","message"],"sources":["@wordpress/block-library/src/utils/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useLayoutEffect, useEffect, useRef } from '@wordpress/element';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Returns whether the current user can edit the given entity.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport function useCanEditEntity( kind, name, recordId ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUserEditEntityRecord( kind, name, recordId ),\n\t\t[ kind, name, recordId ]\n\t);\n}\n\n/**\n * Handles uploading a media file from a blob URL on mount.\n *\n * @param {Object} args Upload media arguments.\n * @param {string} args.url Blob URL.\n * @param {?Array} args.allowedTypes Array of allowed media types.\n * @param {Function} args.onChange Function called when the media is uploaded.\n * @param {Function} args.onError Function called when an error happens.\n */\nexport function useUploadMediaFromBlobURL( args = {} ) {\n\tconst latestArgs = useRef( args );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseLayoutEffect( () => {\n\t\tlatestArgs.current = args;\n\t} );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! latestArgs.current.url ||\n\t\t\t! isBlobURL( latestArgs.current.url )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( latestArgs.current.url );\n\t\tif ( ! file ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { url, allowedTypes, onChange, onError } = latestArgs.current;\n\t\tconst { mediaUpload } = getSettings();\n\n\t\tmediaUpload( {\n\t\t\tfilesList: [ file ],\n\t\t\tallowedTypes,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tif ( isBlobURL( media?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trevokeBlobURL( url );\n\t\t\t\tonChange( media );\n\t\t\t},\n\t\t\tonError: ( message ) => {\n\t\t\t\tonError( message );\n\t\t\t},\n\t\t} );\n\t}, [ getSettings ] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,eAAe,EAAEC,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;AACvE,SAASC,YAAY,EAAEC,SAAS,EAAEC,aAAa,QAAQ,iBAAiB;AACxE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASD,KAAK,IAAIE,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAG;EACxD,OAAOb,SAAS,CACbc,MAAM,IACPA,MAAM,CAAEL,SAAU,CAAC,CAACM,uBAAuB,CAAEJ,IAAI,EAAEC,IAAI,EAAEC,QAAS,CAAC,EACpE,CAAEF,IAAI,EAAEC,IAAI,EAAEC,QAAQ,CACvB,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,yBAAyBA,CAAEC,IAAI,GAAG,CAAC,CAAC,EAAG;EACtD,MAAMC,UAAU,GAAGf,MAAM,CAAEc,IAAK,CAAC;EACjC,MAAM;IAAEE;EAAY,CAAC,GAAGnB,SAAS,CAAEQ,gBAAiB,CAAC;EAErDP,eAAe,CAAE,MAAM;IACtBiB,UAAU,CAACE,OAAO,GAAGH,IAAI;EAC1B,CAAE,CAAC;EAEHf,SAAS,CAAE,MAAM;IAChB,IACC,CAAEgB,UAAU,CAACE,OAAO,CAACC,GAAG,IACxB,CAAEhB,SAAS,CAAEa,UAAU,CAACE,OAAO,CAACC,GAAI,CAAC,EACpC;MACD;IACD;IAEA,MAAMC,IAAI,GAAGlB,YAAY,CAAEc,UAAU,CAACE,OAAO,CAACC,GAAI,CAAC;IACnD,IAAK,CAAEC,IAAI,EAAG;MACb;IACD;IAEA,MAAM;MAAED,GAAG;MAAEE,YAAY;MAAEC,QAAQ;MAAEC;IAAQ,CAAC,GAAGP,UAAU,CAACE,OAAO;IACnE,MAAM;MAAEM;IAAY,CAAC,GAAGP,WAAW,CAAC,CAAC;IAErCO,WAAW,CAAE;MACZC,SAAS,EAAE,CAAEL,IAAI,CAAE;MACnBC,YAAY;MACZK,YAAY,EAAEA,CAAE,CAAEC,KAAK,CAAE,KAAM;QAC9B,IAAKxB,SAAS,CAAEwB,KAAK,EAAER,GAAI,CAAC,EAAG;UAC9B;QACD;QAEAf,aAAa,CAAEe,GAAI,CAAC;QACpBG,QAAQ,CAAEK,KAAM,CAAC;MAClB,CAAC;MACDJ,OAAO,EAAIK,OAAO,IAAM;QACvBL,OAAO,CAAEK,OAAQ,CAAC;MACnB;IACD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEX,WAAW,CAAG,CAAC;AACrB"}
@@ -1 +1 @@
1
- {"version":3,"names":["__","_x","ToggleControl","SelectControl","useMemo","useCallback","Platform","options","value","label","VideoSettings","setAttributes","attributes","autoplay","controls","loop","muted","playsInline","preload","autoPlayHelpText","getAutoplayHelp","select","web","checked","native","toggleFactory","toggleAttribute","attribute","newValue","onChangePreload","createElement","Fragment","__nextHasNoMarginBottom","onChange","help","hideCancelButton"],"sources":["@wordpress/block-library/src/video/edit-common-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { ToggleControl, SelectControl } from '@wordpress/components';\nimport { useMemo, useCallback, Platform } from '@wordpress/element';\n\nconst options = [\n\t{ value: 'auto', label: __( 'Auto' ) },\n\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t{ value: 'none', label: _x( 'None', 'Preload value' ) },\n];\n\nconst VideoSettings = ( { setAttributes, attributes } ) => {\n\tconst { autoplay, controls, loop, muted, playsInline, preload } =\n\t\tattributes;\n\n\tconst autoPlayHelpText = __(\n\t\t'Autoplay may cause usability issues for some users.'\n\t);\n\tconst getAutoplayHelp = Platform.select( {\n\t\tweb: useCallback( ( checked ) => {\n\t\t\treturn checked ? autoPlayHelpText : null;\n\t\t}, [] ),\n\t\tnative: autoPlayHelpText,\n\t} );\n\n\tconst toggleFactory = useMemo( () => {\n\t\tconst toggleAttribute = ( attribute ) => {\n\t\t\treturn ( newValue ) => {\n\t\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\tautoplay: toggleAttribute( 'autoplay' ),\n\t\t\tloop: toggleAttribute( 'loop' ),\n\t\t\tmuted: toggleAttribute( 'muted' ),\n\t\t\tcontrols: toggleAttribute( 'controls' ),\n\t\t\tplaysInline: toggleAttribute( 'playsInline' ),\n\t\t};\n\t}, [] );\n\n\tconst onChangePreload = useCallback( ( value ) => {\n\t\tsetAttributes( { preload: value } );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\tchecked={ !! autoplay }\n\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\tchecked={ !! loop }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\tchecked={ !! muted }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\tchecked={ !! controls }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\tchecked={ !! playsInline }\n\t\t\t/>\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tvalue={ preload }\n\t\t\t\tonChange={ onChangePreload }\n\t\t\t\toptions={ options }\n\t\t\t\thideCancelButton={ true }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","_x","ToggleControl","SelectControl","useMemo","useCallback","Platform","options","value","label","VideoSettings","setAttributes","attributes","autoplay","controls","loop","muted","playsInline","preload","autoPlayHelpText","getAutoplayHelp","select","web","checked","native","toggleFactory","toggleAttribute","attribute","newValue","onChangePreload","createElement","Fragment","__nextHasNoMarginBottom","onChange","help","hideCancelButton"],"sources":["@wordpress/block-library/src/video/edit-common-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { ToggleControl, SelectControl } from '@wordpress/components';\nimport { useMemo, useCallback, Platform } from '@wordpress/element';\n\nconst options = [\n\t{ value: 'auto', label: __( 'Auto' ) },\n\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t{ value: 'none', label: _x( 'None', 'Preload value' ) },\n];\n\nconst VideoSettings = ( { setAttributes, attributes } ) => {\n\tconst { autoplay, controls, loop, muted, playsInline, preload } =\n\t\tattributes;\n\n\tconst autoPlayHelpText = __(\n\t\t'Autoplay may cause usability issues for some users.'\n\t);\n\tconst getAutoplayHelp = Platform.select( {\n\t\tweb: useCallback( ( checked ) => {\n\t\t\treturn checked ? autoPlayHelpText : null;\n\t\t}, [] ),\n\t\tnative: autoPlayHelpText,\n\t} );\n\n\tconst toggleFactory = useMemo( () => {\n\t\tconst toggleAttribute = ( attribute ) => {\n\t\t\treturn ( newValue ) => {\n\t\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\tautoplay: toggleAttribute( 'autoplay' ),\n\t\t\tloop: toggleAttribute( 'loop' ),\n\t\t\tmuted: toggleAttribute( 'muted' ),\n\t\t\tcontrols: toggleAttribute( 'controls' ),\n\t\t\tplaysInline: toggleAttribute( 'playsInline' ),\n\t\t};\n\t}, [] );\n\n\tconst onChangePreload = useCallback( ( value ) => {\n\t\tsetAttributes( { preload: value } );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\tchecked={ !! autoplay }\n\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\tchecked={ !! loop }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\tchecked={ !! muted }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\tchecked={ !! controls }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\tchecked={ !! playsInline }\n\t\t\t/>\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tvalue={ preload }\n\t\t\t\tonChange={ onChangePreload }\n\t\t\t\toptions={ options }\n\t\t\t\thideCancelButton\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n"],"mappings":"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"}
@@ -7,13 +7,13 @@ import classnames from 'classnames';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { getBlobByURL, isBlobURL } from '@wordpress/blob';
10
+ import { isBlobURL } from '@wordpress/blob';
11
11
  import { BaseControl, Button, Disabled, PanelBody, Spinner, Placeholder } from '@wordpress/components';
12
- import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaUpload, MediaUploadCheck, MediaReplaceFlow, useBlockProps, store as blockEditorStore } from '@wordpress/block-editor';
12
+ import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaUpload, MediaUploadCheck, MediaReplaceFlow, useBlockProps } from '@wordpress/block-editor';
13
13
  import { useRef, useEffect } from '@wordpress/element';
14
14
  import { __, sprintf } from '@wordpress/i18n';
15
15
  import { useInstanceId } from '@wordpress/compose';
16
- import { useDispatch, useSelect } from '@wordpress/data';
16
+ import { useDispatch } from '@wordpress/data';
17
17
  import { video as icon } from '@wordpress/icons';
18
18
  import { store as noticesStore } from '@wordpress/notices';
19
19
 
@@ -21,6 +21,7 @@ import { store as noticesStore } from '@wordpress/notices';
21
21
  * Internal dependencies
22
22
  */
23
23
  import { createUpgradedEmbedBlock } from '../embed/util';
24
+ import { useUploadMediaFromBlobURL } from '../utils/hooks';
24
25
  import VideoCommonSettings from './edit-common-settings';
25
26
  import TracksEditor from './tracks-editor';
26
27
  import Tracks from './tracks';
@@ -57,22 +58,12 @@ function VideoEdit({
57
58
  tracks
58
59
  } = attributes;
59
60
  const isTemporaryVideo = !id && isBlobURL(src);
60
- const {
61
- getSettings
62
- } = useSelect(blockEditorStore);
63
- useEffect(() => {
64
- if (!id && isBlobURL(src)) {
65
- const file = getBlobByURL(src);
66
- if (file) {
67
- getSettings().mediaUpload({
68
- filesList: [file],
69
- onFileChange: ([media]) => onSelectVideo(media),
70
- onError: onUploadError,
71
- allowedTypes: ALLOWED_MEDIA_TYPES
72
- });
73
- }
74
- }
75
- }, []);
61
+ useUploadMediaFromBlobURL({
62
+ url: src,
63
+ allowedTypes: ALLOWED_MEDIA_TYPES,
64
+ onChange: onSelectVideo,
65
+ onError: onUploadError
66
+ });
76
67
  useEffect(() => {
77
68
  // Placeholder may be rendered.
78
69
  if (videoPlayer.current) {
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","getBlobByURL","isBlobURL","BaseControl","Button","Disabled","PanelBody","Spinner","Placeholder","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaUpload","MediaUploadCheck","MediaReplaceFlow","useBlockProps","store","blockEditorStore","useRef","useEffect","__","sprintf","useInstanceId","useDispatch","useSelect","video","icon","noticesStore","createUpgradedEmbedBlock","VideoCommonSettings","TracksEditor","Tracks","Caption","placeholder","content","createElement","className","withIllustration","label","instructions","ALLOWED_MEDIA_TYPES","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","setAttributes","insertBlocksAfter","onReplace","instanceId","videoPlayer","posterImageButton","id","controls","poster","src","tracks","isTemporaryVideo","getSettings","file","mediaUpload","filesList","onFileChange","media","onSelectVideo","onError","onUploadError","allowedTypes","current","load","url","undefined","caption","image","onSelectURL","newSrc","embedBlock","createErrorNotice","message","type","classes","blockProps","onSelect","accept","value","onSelectPoster","onRemovePoster","focus","videoPosterDescription","Fragment","onChange","newTracks","group","mediaId","mediaURL","title","VisualLabel","render","open","variant","onClick","ref","hidden","isDisabled","showToolbarButton"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tBaseControl,\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tSpinner,\n\tPlaceholder,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\n// Much of this description is duplicated from MediaPlaceholder.\nconst placeholder = ( content ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\twithIllustration={ true }\n\t\t\ticon={ icon }\n\t\t\tlabel={ __( 'Video' ) }\n\t\t\tinstructions={ __(\n\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t) }\n\t\t>\n\t\t\t{ content }\n\t\t</Placeholder>\n\t);\n};\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst instanceId = useInstanceId( VideoEdit );\n\tconst videoPlayer = useRef();\n\tconst posterImageButton = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst isTemporaryVideo = ! id && isBlobURL( src );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\t\t\tif ( file ) {\n\t\t\t\tgetSettings().mediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ media ] ) => onSelectVideo( media ),\n\t\t\t\t\tonError: onUploadError,\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined, poster: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryVideo,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction onSelectPoster( image ) {\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tfunction onRemovePoster() {\n\t\tsetAttributes( { poster: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tposterImageButton.current.focus();\n\t}\n\n\tconst videoPosterDescription = `video-block__poster-image-description-${ instanceId }`;\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<BaseControl className=\"editor-video-poster-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectPoster }\n\t\t\t\t\t\t\t\tallowedTypes={\n\t\t\t\t\t\t\t\t\tVIDEO_POSTER_ALLOWED_MEDIA_TYPES\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\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\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tref={ posterImageButton }\n\t\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t\tvideoPosterDescription\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\t\t{ ! poster\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Select' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t</Button>\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<p id={ videoPosterDescription } hidden>\n\t\t\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\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'The current poster image url is %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tposter\n\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\t\t\t'There is no poster image currently selected'\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ onRemovePoster }\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the video tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tvideo when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryVideo && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,YAAY,EAAEC,SAAS,QAAQ,iBAAiB;AACzD,SACCC,WAAW,EACXC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,OAAO,EACPC,WAAW,QACL,uBAAuB;AAC9B,SACCC,aAAa,EACbC,SAAS,EACTC,iBAAiB,EACjBC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAa,EACbC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,MAAM,EAAEC,SAAS,QAAQ,oBAAoB;AACtD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,IAAI,QAAQ,kBAAkB;AAChD,SAASV,KAAK,IAAIW,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASC,wBAAwB,QAAQ,eAAe;AACxD,OAAOC,mBAAmB,MAAM,wBAAwB;AACxD,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,OAAO,QAAQ,kBAAkB;;AAE1C;AACA,MAAMC,WAAW,GAAKC,OAAO,IAAM;EAClC,OACCC,aAAA,CAAC5B,WAAW;IACX6B,SAAS,EAAC,gCAAgC;IAC1CC,gBAAgB,EAAG,IAAM;IACzBX,IAAI,EAAGA,IAAM;IACbY,KAAK,EAAGlB,EAAE,CAAE,OAAQ,CAAG;IACvBmB,YAAY,EAAGnB,EAAE,CAChB,+EACD;EAAG,GAEDc,OACU,CAAC;AAEhB,CAAC;AAED,MAAMM,mBAAmB,GAAG,CAAE,OAAO,CAAE;AACvC,MAAMC,gCAAgC,GAAG,CAAE,OAAO,CAAE;AAEpD,SAASC,SAASA,CAAE;EACnBC,UAAU,EAAEC,gBAAgB;EAC5BC,UAAU;EACVT,SAAS;EACTU,aAAa;EACbC,iBAAiB;EACjBC;AACD,CAAC,EAAG;EACH,MAAMC,UAAU,GAAG3B,aAAa,CAAEoB,SAAU,CAAC;EAC7C,MAAMQ,WAAW,GAAGhC,MAAM,CAAC,CAAC;EAC5B,MAAMiC,iBAAiB,GAAGjC,MAAM,CAAC,CAAC;EAClC,MAAM;IAAEkC,EAAE;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,GAAG;IAAEC;EAAO,CAAC,GAAGX,UAAU;EACxD,MAAMY,gBAAgB,GAAG,CAAEL,EAAE,IAAInD,SAAS,CAAEsD,GAAI,CAAC;EACjD,MAAM;IAAEG;EAAY,CAAC,GAAGlC,SAAS,CAAEP,gBAAiB,CAAC;EAErDE,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEiC,EAAE,IAAInD,SAAS,CAAEsD,GAAI,CAAC,EAAG;MAC/B,MAAMI,IAAI,GAAG3D,YAAY,CAAEuD,GAAI,CAAC;MAChC,IAAKI,IAAI,EAAG;QACXD,WAAW,CAAC,CAAC,CAACE,WAAW,CAAE;UAC1BC,SAAS,EAAE,CAAEF,IAAI,CAAE;UACnBG,YAAY,EAAEA,CAAE,CAAEC,KAAK,CAAE,KAAMC,aAAa,CAAED,KAAM,CAAC;UACrDE,OAAO,EAAEC,aAAa;UACtBC,YAAY,EAAE3B;QACf,CAAE,CAAC;MACJ;IACD;EACD,CAAC,EAAE,EAAG,CAAC;EAEPrB,SAAS,CAAE,MAAM;IAChB;IACA,IAAK+B,WAAW,CAACkB,OAAO,EAAG;MAC1BlB,WAAW,CAACkB,OAAO,CAACC,IAAI,CAAC,CAAC;IAC3B;EACD,CAAC,EAAE,CAAEf,MAAM,CAAG,CAAC;EAEf,SAASU,aAAaA,CAAED,KAAK,EAAG;IAC/B,IAAK,CAAEA,KAAK,IAAI,CAAEA,KAAK,CAACO,GAAG,EAAG;MAC7B;MACA;MACA;MACAxB,aAAa,CAAE;QACdS,GAAG,EAAEgB,SAAS;QACdnB,EAAE,EAAEmB,SAAS;QACbjB,MAAM,EAAEiB,SAAS;QACjBC,OAAO,EAAED;MACV,CAAE,CAAC;MACH;IACD;;IAEA;IACA;IACAzB,aAAa,CAAE;MACdS,GAAG,EAAEQ,KAAK,CAACO,GAAG;MACdlB,EAAE,EAAEW,KAAK,CAACX,EAAE;MACZE,MAAM,EACLS,KAAK,CAACU,KAAK,EAAElB,GAAG,KAAKQ,KAAK,CAACrC,IAAI,GAAGqC,KAAK,CAACU,KAAK,EAAElB,GAAG,GAAGgB,SAAS;MAC/DC,OAAO,EAAET,KAAK,CAACS;IAChB,CAAE,CAAC;EACJ;EAEA,SAASE,WAAWA,CAAEC,MAAM,EAAG;IAC9B,IAAKA,MAAM,KAAKpB,GAAG,EAAG;MACrB;MACA,MAAMqB,UAAU,GAAGhD,wBAAwB,CAAE;QAC5CiB,UAAU,EAAE;UAAEyB,GAAG,EAAEK;QAAO;MAC3B,CAAE,CAAC;MACH,IAAKJ,SAAS,KAAKK,UAAU,IAAI5B,SAAS,EAAG;QAC5CA,SAAS,CAAE4B,UAAW,CAAC;QACvB;MACD;MACA9B,aAAa,CAAE;QAAES,GAAG,EAAEoB,MAAM;QAAEvB,EAAE,EAAEmB,SAAS;QAAEjB,MAAM,EAAEiB;MAAU,CAAE,CAAC;IACnE;EACD;EAEA,MAAM;IAAEM;EAAkB,CAAC,GAAGtD,WAAW,CAAEI,YAAa,CAAC;EACzD,SAASuC,aAAaA,CAAEY,OAAO,EAAG;IACjCD,iBAAiB,CAAEC,OAAO,EAAE;MAAEC,IAAI,EAAE;IAAW,CAAE,CAAC;EACnD;EAEA,MAAMC,OAAO,GAAGjF,UAAU,CAAEqC,SAAS,EAAE;IACtC,cAAc,EAAEqB;EACjB,CAAE,CAAC;EAEH,MAAMwB,UAAU,GAAGlE,aAAa,CAAE;IACjCqB,SAAS,EAAE4C;EACZ,CAAE,CAAC;EAEH,IAAK,CAAEzB,GAAG,EAAG;IACZ,OACCpB,aAAA;MAAA,GAAU8C;IAAU,GACnB9C,aAAA,CAACxB,gBAAgB;MAChBe,IAAI,EAAGS,aAAA,CAAC1B,SAAS;QAACiB,IAAI,EAAGA;MAAM,CAAE,CAAG;MACpCwD,QAAQ,EAAGlB,aAAe;MAC1BU,WAAW,EAAGA,WAAa;MAC3BS,MAAM,EAAC,SAAS;MAChBhB,YAAY,EAAG3B,mBAAqB;MACpC4C,KAAK,EAAGvC,UAAY;MACpBoB,OAAO,EAAGC,aAAe;MACzBjC,WAAW,EAAGA;IAAa,CAC3B,CACG,CAAC;EAER;EAEA,SAASoD,cAAcA,CAAEZ,KAAK,EAAG;IAChC3B,aAAa,CAAE;MAAEQ,MAAM,EAAEmB,KAAK,CAACH;IAAI,CAAE,CAAC;EACvC;EAEA,SAASgB,cAAcA,CAAA,EAAG;IACzBxC,aAAa,CAAE;MAAEQ,MAAM,EAAEiB;IAAU,CAAE,CAAC;;IAEtC;IACApB,iBAAiB,CAACiB,OAAO,CAACmB,KAAK,CAAC,CAAC;EAClC;EAEA,MAAMC,sBAAsB,GAAI,yCAAyCvC,UAAY,EAAC;EAEtF,OACCd,aAAA,CAAAsD,QAAA,QACG7C,gBAAgB,IACjBT,aAAA,CAAAsD,QAAA,QACCtD,aAAA,CAAC3B,aAAa,QACb2B,aAAA,CAACL,YAAY;IACZ0B,MAAM,EAAGA,MAAQ;IACjBkC,QAAQ,EAAKC,SAAS,IAAM;MAC3B7C,aAAa,CAAE;QAAEU,MAAM,EAAEmC;MAAU,CAAE,CAAC;IACvC;EAAG,CACH,CACa,CAAC,EAChBxD,aAAA,CAAC3B,aAAa;IAACoF,KAAK,EAAC;EAAO,GAC3BzD,aAAA,CAACrB,gBAAgB;IAChB+E,OAAO,EAAGzC,EAAI;IACd0C,QAAQ,EAAGvC,GAAK;IAChBY,YAAY,EAAG3B,mBAAqB;IACpC2C,MAAM,EAAC,SAAS;IAChBD,QAAQ,EAAGlB,aAAe;IAC1BU,WAAW,EAAGA,WAAa;IAC3BT,OAAO,EAAGC;EAAe,CACzB,CACa,CACd,CACF,EACD/B,aAAA,CAACzB,iBAAiB,QACjByB,aAAA,CAAC9B,SAAS;IAAC0F,KAAK,EAAG3E,EAAE,CAAE,UAAW;EAAG,GACpCe,aAAA,CAACN,mBAAmB;IACnBiB,aAAa,EAAGA,aAAe;IAC/BD,UAAU,EAAGA;EAAY,CACzB,CAAC,EACFV,aAAA,CAACtB,gBAAgB,QAChBsB,aAAA,CAACjC,WAAW;IAACkC,SAAS,EAAC;EAA6B,GACnDD,aAAA,CAACjC,WAAW,CAAC8F,WAAW,QACrB5E,EAAE,CAAE,cAAe,CACG,CAAC,EAC1Be,aAAA,CAACvB,WAAW;IACXmF,KAAK,EAAG3E,EAAE,CAAE,qBAAsB,CAAG;IACrC8D,QAAQ,EAAGG,cAAgB;IAC3BlB,YAAY,EACX1B,gCACA;IACDwD,MAAM,EAAGA,CAAE;MAAEC;IAAK,CAAC,KAClB/D,aAAA,CAAChC,MAAM;MACNgG,OAAO,EAAC,SAAS;MACjBC,OAAO,EAAGF,IAAM;MAChBG,GAAG,EAAGlD,iBAAmB;MACzB,oBACCqC;IACA,GAEC,CAAElC,MAAM,GACPlC,EAAE,CAAE,QAAS,CAAC,GACdA,EAAE,CAAE,SAAU,CACV;EACN,CACH,CAAC,EACFe,aAAA;IAAGiB,EAAE,EAAGoC,sBAAwB;IAACc,MAAM;EAAA,GACpChD,MAAM,GACLjC,OAAO,EACP;EACAD,EAAE,CACD,oCACD,CAAC,EACDkC,MACA,CAAC,GACDlC,EAAE,CACF,6CACA,CACD,CAAC,EACF,CAAC,CAAEkC,MAAM,IACVnB,aAAA,CAAChC,MAAM;IACNiG,OAAO,EAAGd,cAAgB;IAC1Ba,OAAO,EAAC;EAAU,GAEhB/E,EAAE,CAAE,QAAS,CACR,CAEG,CACI,CACR,CACO,CAAC,EACpBe,aAAA;IAAA,GAAa8C;EAAU,GAMtB9C,aAAA,CAAC/B,QAAQ;IAACmG,UAAU,EAAG,CAAE3D;EAAkB,GAC1CT,aAAA;IACCkB,QAAQ,EAAGA,QAAU;IACrBC,MAAM,EAAGA,MAAQ;IACjBC,GAAG,EAAGA,GAAK;IACX8C,GAAG,EAAGnD;EAAa,GAEnBf,aAAA,CAACJ,MAAM;IAACyB,MAAM,EAAGA;EAAQ,CAAE,CACrB,CACE,CAAC,EACTC,gBAAgB,IAAItB,aAAA,CAAC7B,OAAO,MAAE,CAAC,EACjC6B,aAAA,CAACH,OAAO;IACPa,UAAU,EAAGA,UAAY;IACzBC,aAAa,EAAGA,aAAe;IAC/BH,UAAU,EAAGC,gBAAkB;IAC/BG,iBAAiB,EAAGA,iBAAmB;IACvCT,KAAK,EAAGlB,EAAE,CAAE,oBAAqB,CAAG;IACpCoF,iBAAiB,EAAG5D;EAAkB,CACtC,CACM,CACP,CAAC;AAEL;AAEA,eAAeF,SAAS"}
1
+ {"version":3,"names":["classnames","isBlobURL","BaseControl","Button","Disabled","PanelBody","Spinner","Placeholder","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaUpload","MediaUploadCheck","MediaReplaceFlow","useBlockProps","useRef","useEffect","__","sprintf","useInstanceId","useDispatch","video","icon","store","noticesStore","createUpgradedEmbedBlock","useUploadMediaFromBlobURL","VideoCommonSettings","TracksEditor","Tracks","Caption","placeholder","content","createElement","className","withIllustration","label","instructions","ALLOWED_MEDIA_TYPES","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","setAttributes","insertBlocksAfter","onReplace","instanceId","videoPlayer","posterImageButton","id","controls","poster","src","tracks","isTemporaryVideo","url","allowedTypes","onChange","onSelectVideo","onError","onUploadError","current","load","media","undefined","caption","image","onSelectURL","newSrc","embedBlock","createErrorNotice","message","type","classes","blockProps","onSelect","accept","value","onSelectPoster","onRemovePoster","focus","videoPosterDescription","Fragment","newTracks","group","mediaId","mediaURL","title","VisualLabel","render","open","variant","onClick","ref","hidden","isDisabled","showToolbarButton"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tBaseControl,\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tSpinner,\n\tPlaceholder,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\n// Much of this description is duplicated from MediaPlaceholder.\nconst placeholder = ( content ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\twithIllustration\n\t\t\ticon={ icon }\n\t\t\tlabel={ __( 'Video' ) }\n\t\t\tinstructions={ __(\n\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t) }\n\t\t>\n\t\t\t{ content }\n\t\t</Placeholder>\n\t);\n};\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst instanceId = useInstanceId( VideoEdit );\n\tconst videoPlayer = useRef();\n\tconst posterImageButton = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst isTemporaryVideo = ! id && isBlobURL( src );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: src,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined, poster: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryVideo,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction onSelectPoster( image ) {\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tfunction onRemovePoster() {\n\t\tsetAttributes( { poster: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tposterImageButton.current.focus();\n\t}\n\n\tconst videoPosterDescription = `video-block__poster-image-description-${ instanceId }`;\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<BaseControl className=\"editor-video-poster-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectPoster }\n\t\t\t\t\t\t\t\tallowedTypes={\n\t\t\t\t\t\t\t\t\tVIDEO_POSTER_ALLOWED_MEDIA_TYPES\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\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\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tref={ posterImageButton }\n\t\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t\tvideoPosterDescription\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\t\t{ ! poster\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Select' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t</Button>\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<p id={ videoPosterDescription } hidden>\n\t\t\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\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'The current poster image url is %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tposter\n\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\t\t\t'There is no poster image currently selected'\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ onRemovePoster }\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the video tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tvideo when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryVideo && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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"}
@@ -217,8 +217,7 @@ class VideoEdit extends Component {
217
217
  } = this.props;
218
218
  const {
219
219
  id,
220
- src,
221
- guid
220
+ src
222
221
  } = attributes;
223
222
  const {
224
223
  videoContainerHeight
@@ -239,11 +238,7 @@ class VideoEdit extends Component {
239
238
  }));
240
239
  }
241
240
  });
242
-
243
- // NOTE: `guid` is not part of the block's attribute definition. This case
244
- // handled here is a temporary fix until a we find a better approach.
245
- const isSourcePresent = src || guid && id;
246
- if (!isSourcePresent) {
241
+ if (!src) {
247
242
  return createElement(View, {
248
243
  style: {
249
244
  flex: 1
@@ -281,7 +276,7 @@ class VideoEdit extends Component {
281
276
  isUploadFailed,
282
277
  retryMessage
283
278
  }) => {
284
- const showVideo = isURL(src) && !isUploadInProgress && !isUploadFailed;
279
+ const showVideo = isURL(src) && getProtocol(attributes.src) !== 'file:' && !isUploadInProgress && !isUploadFailed;
285
280
  const icon = this.getIcon(isUploadFailed ? ICON_TYPE.RETRY : ICON_TYPE.UPLOAD);
286
281
  const styleIconContainer = isUploadFailed ? style.modalIconRetry : style.modalIcon;
287
282
  const iconContainer = createElement(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["View","TouchableWithoutFeedback","Text","Component","mediaUploadSync","requestImageFailedRetryDialog","requestImageUploadCancelDialog","Icon","ToolbarButton","ToolbarGroup","PanelBody","withPreferredColorScheme","compose","BlockCaption","MediaPlaceholder","MediaUpload","MediaUploadProgress","MEDIA_TYPE_VIDEO","BlockControls","VIDEO_ASPECT_RATIO","VideoPlayer","InspectorControls","RichText","store","blockEditorStore","__","sprintf","isURL","getProtocol","doAction","hasAction","video","SvgIcon","replace","withDispatch","withSelect","noticesStore","createUpgradedEmbedBlock","style","SvgIconRetry","VideoCommonSettings","ICON_TYPE","PLACEHOLDER","RETRY","UPLOAD","VideoEdit","constructor","props","state","isCaptionSelected","videoContainerHeight","mediaUploadStateReset","bind","onSelectMediaUploadOption","onSelectURL","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","updateMediaProgress","onVideoPressed","onVideoContanerLayout","onFocusCaption","componentDidMount","attributes","id","src","componentWillUnmount","isUploadInProgress","getDerivedStateFromProps","isSelected","setState","payload","setAttributes","mediaUrl","url","mediaServerId","mediaId","createErrorNotice","onReplace","test","embedBlock","undefined","poster","event","width","nativeEvent","layout","height","getIcon","iconType","iconStyle","createElement","icon","getStylesFromColorScheme","iconDark","iconUploading","iconUploadingDark","render","wasBlockJustInserted","guid","toolbarEditButton","allowedTypes","isReplacingMedia","onSelect","open","getMediaOptions","label","onClick","isSourcePresent","flex","onFocus","autoOpenMediaUpload","accessible","onPress","disabled","title","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onUpdateMediaProgress","onMediaUploadStateReset","renderContent","isUploadFailed","retryMessage","showVideo","styleIconContainer","modalIconRetry","modalIcon","iconContainer","videoStyle","containerStyle","containerFocused","container","onLayout","videoContainer","source","uri","paused","placeholderContainer","placeholderContainerDark","uploadFailedText","accessibilityLabelCreator","caption","isEmpty","clientId","onBlur","insertBlocksAfter","select","dispatch"],"sources":["@wordpress/block-library/src/video/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport {\n\tmediaUploadSync,\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n} from '@wordpress/react-native-bridge';\nimport {\n\tIcon,\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n} from '@wordpress/components';\nimport { withPreferredColorScheme, compose } from '@wordpress/compose';\nimport {\n\tBlockCaption,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadProgress,\n\tMEDIA_TYPE_VIDEO,\n\tBlockControls,\n\tVIDEO_ASPECT_RATIO,\n\tVideoPlayer,\n\tInspectorControls,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { isURL, getProtocol } from '@wordpress/url';\nimport { doAction, hasAction } from '@wordpress/hooks';\nimport { video as SvgIcon, replace } from '@wordpress/icons';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport style from './style.scss';\nimport SvgIconRetry from './icon-retry';\nimport VideoCommonSettings from './edit-common-settings';\n\nconst ICON_TYPE = {\n\tPLACEHOLDER: 'placeholder',\n\tRETRY: 'retry',\n\tUPLOAD: 'upload',\n};\n\nclass VideoEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisCaptionSelected: false,\n\t\t\tvideoContainerHeight: 0,\n\t\t};\n\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t\tthis.onSelectMediaUploadOption =\n\t\t\tthis.onSelectMediaUploadOption.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.onVideoPressed = this.onVideoPressed.bind( this );\n\t\tthis.onVideoContanerLayout = this.onVideoContanerLayout.bind( this );\n\t\tthis.onFocusCaption = this.onFocusCaption.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes } = this.props;\n\t\tif ( attributes.id && getProtocol( attributes.src ) === 'file:' ) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\t// This action will only exist if the user pressed the trash button on the block holder.\n\t\tif (\n\t\t\thasAction( 'blocks.onRemoveBlockCheckUpload' ) &&\n\t\t\tthis.state.isUploadInProgress\n\t\t) {\n\t\t\tdoAction(\n\t\t\t\t'blocks.onRemoveBlockCheckUpload',\n\t\t\t\tthis.props.attributes.id\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\t// Avoid a UI flicker in the toolbar by insuring that isCaptionSelected\n\t\t// is updated immediately any time the isSelected prop becomes false.\n\t\treturn {\n\t\t\tisCaptionSelected: props.isSelected && state.isCaptionSelected,\n\t\t};\n\t}\n\n\tonVideoPressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.src ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tisCaptionSelected: false,\n\t\t} );\n\t}\n\n\tonFocusCaption() {\n\t\tif ( ! this.state.isCaptionSelected ) {\n\t\t\tthis.setState( { isCaptionSelected: true } );\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { src: payload.mediaUrl, id: payload.mediaServerId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id: null, src: null } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonSelectMediaUploadOption( { id, url } ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id, src: url } );\n\t}\n\n\tonSelectURL( url ) {\n\t\tconst { createErrorNotice, onReplace, setAttributes } = this.props;\n\n\t\tif ( isURL( url ) && /^https?:/.test( getProtocol( url ) ) ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAttributes( { src: url, id: undefined, poster: undefined } );\n\t\t} else {\n\t\t\tcreateErrorNotice( __( 'Invalid URL.' ) );\n\t\t}\n\t}\n\n\tonVideoContanerLayout( event ) {\n\t\tconst { width } = event.nativeEvent.layout;\n\t\tconst height = width / VIDEO_ASPECT_RATIO;\n\t\tif ( height !== this.state.videoContainerHeight ) {\n\t\t\tthis.setState( { videoContainerHeight: height } );\n\t\t}\n\t}\n\n\tgetIcon( iconType ) {\n\t\tlet iconStyle;\n\t\tswitch ( iconType ) {\n\t\t\tcase ICON_TYPE.RETRY:\n\t\t\t\treturn <Icon icon={ SvgIconRetry } { ...style.icon } />;\n\t\t\tcase ICON_TYPE.PLACEHOLDER:\n\t\t\t\ticonStyle = this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyle.icon,\n\t\t\t\t\tstyle.iconDark\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase ICON_TYPE.UPLOAD:\n\t\t\t\ticonStyle = this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyle.iconUploading,\n\t\t\t\t\tstyle.iconUploadingDark\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn <Icon icon={ SvgIcon } { ...iconStyle } />;\n\t}\n\n\trender() {\n\t\tconst { setAttributes, attributes, isSelected, wasBlockJustInserted } =\n\t\t\tthis.props;\n\t\tconst { id, src, guid } = attributes;\n\t\tconst { videoContainerHeight } = this.state;\n\n\t\tconst toolbarEditButton = (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_VIDEO ] }\n\t\t\t\tisReplacingMedia={ true }\n\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tlabel={ __( 'Edit video' ) }\n\t\t\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t></MediaUpload>\n\t\t);\n\n\t\t// NOTE: `guid` is not part of the block's attribute definition. This case\n\t\t// handled here is a temporary fix until a we find a better approach.\n\t\tconst isSourcePresent = src || ( guid && id );\n\t\tif ( ! isSourcePresent ) {\n\t\t\treturn (\n\t\t\t\t<View style={ { flex: 1 } }>\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_VIDEO ] }\n\t\t\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\t\ticon={ this.getIcon( ICON_TYPE.PLACEHOLDER ) }\n\t\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\t\tautoOpenMediaUpload={\n\t\t\t\t\t\t\tisSelected && wasBlockJustInserted\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\taccessible={ ! isSelected }\n\t\t\t\tonPress={ this.onVideoPressed }\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t>\n\t\t\t\t<View style={ { flex: 1 } }>\n\t\t\t\t\t{ ! this.state.isCaptionSelected && (\n\t\t\t\t\t\t<BlockControls>{ toolbarEditButton }</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\t\t\trenderContent={ ( {\n\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\tisUploadFailed,\n\t\t\t\t\t\t\tretryMessage,\n\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\tconst showVideo =\n\t\t\t\t\t\t\t\tisURL( src ) &&\n\t\t\t\t\t\t\t\t! isUploadInProgress &&\n\t\t\t\t\t\t\t\t! isUploadFailed;\n\t\t\t\t\t\t\tconst icon = this.getIcon(\n\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t? ICON_TYPE.RETRY\n\t\t\t\t\t\t\t\t\t: ICON_TYPE.UPLOAD\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst styleIconContainer = isUploadFailed\n\t\t\t\t\t\t\t\t? style.modalIconRetry\n\t\t\t\t\t\t\t\t: style.modalIcon;\n\n\t\t\t\t\t\t\tconst iconContainer = (\n\t\t\t\t\t\t\t\t<View style={ styleIconContainer }>\n\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst videoStyle = {\n\t\t\t\t\t\t\t\theight: videoContainerHeight,\n\t\t\t\t\t\t\t\t...style.video,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst containerStyle =\n\t\t\t\t\t\t\t\tshowVideo && isSelected\n\t\t\t\t\t\t\t\t\t? style.containerFocused\n\t\t\t\t\t\t\t\t\t: style.container;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tonLayout={ this.onVideoContanerLayout }\n\t\t\t\t\t\t\t\t\tstyle={ containerStyle }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ showVideo && (\n\t\t\t\t\t\t\t\t\t\t<View style={ style.videoContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<VideoPlayer\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t! this.state\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.isCaptionSelected\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\tstyle={ videoStyle }\n\t\t\t\t\t\t\t\t\t\t\t\tsource={ { uri: src } }\n\t\t\t\t\t\t\t\t\t\t\t\tpaused={ true }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! showVideo && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\theight: videoContainerHeight,\n\t\t\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\t\t\t\t...this.props.getStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.placeholderContainer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.placeholderContainerDark\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>\n\t\t\t\t\t\t\t\t\t\t\t{ videoContainerHeight > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\ticonContainer }\n\t\t\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.uploadFailedText\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\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\t\t{ retryMessage }\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockCaption\n\t\t\t\t\t\taccessible={ true }\n\t\t\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\t\t\tRichText.isEmpty( caption )\n\t\t\t\t\t\t\t\t? /* translators: accessibility text. Empty video caption. */\n\t\t\t\t\t\t\t\t __( 'Video caption. Empty' )\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: video caption. */\n\t\t\t\t\t\t\t\t\t\t__( 'Video caption. %s' ),\n\t\t\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclientId={ this.props.clientId }\n\t\t\t\t\t\tisSelected={ this.state.isCaptionSelected }\n\t\t\t\t\t\tonFocus={ this.onFocusCaption }\n\t\t\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as props.\n\t\t\t\t\t\tinsertBlocksAfter={ this.props.insertBlocksAfter }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => ( {\n\t\twasBlockJustInserted: select( blockEditorStore ).wasBlockJustInserted(\n\t\t\tclientId,\n\t\t\t'inserter_menu'\n\t\t),\n\t} ) ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createErrorNotice } = dispatch( noticesStore );\n\n\t\treturn { createErrorNotice };\n\t} ),\n\twithPreferredColorScheme,\n] )( VideoEdit );\n"],"mappings":"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"}
1
+ {"version":3,"names":["View","TouchableWithoutFeedback","Text","Component","mediaUploadSync","requestImageFailedRetryDialog","requestImageUploadCancelDialog","Icon","ToolbarButton","ToolbarGroup","PanelBody","withPreferredColorScheme","compose","BlockCaption","MediaPlaceholder","MediaUpload","MediaUploadProgress","MEDIA_TYPE_VIDEO","BlockControls","VIDEO_ASPECT_RATIO","VideoPlayer","InspectorControls","RichText","store","blockEditorStore","__","sprintf","isURL","getProtocol","doAction","hasAction","video","SvgIcon","replace","withDispatch","withSelect","noticesStore","createUpgradedEmbedBlock","style","SvgIconRetry","VideoCommonSettings","ICON_TYPE","PLACEHOLDER","RETRY","UPLOAD","VideoEdit","constructor","props","state","isCaptionSelected","videoContainerHeight","mediaUploadStateReset","bind","onSelectMediaUploadOption","onSelectURL","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","updateMediaProgress","onVideoPressed","onVideoContanerLayout","onFocusCaption","componentDidMount","attributes","id","src","componentWillUnmount","isUploadInProgress","getDerivedStateFromProps","isSelected","setState","payload","setAttributes","mediaUrl","url","mediaServerId","mediaId","createErrorNotice","onReplace","test","embedBlock","undefined","poster","event","width","nativeEvent","layout","height","getIcon","iconType","iconStyle","createElement","icon","getStylesFromColorScheme","iconDark","iconUploading","iconUploadingDark","render","wasBlockJustInserted","toolbarEditButton","allowedTypes","isReplacingMedia","onSelect","open","getMediaOptions","label","onClick","flex","onFocus","autoOpenMediaUpload","accessible","onPress","disabled","title","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onUpdateMediaProgress","onMediaUploadStateReset","renderContent","isUploadFailed","retryMessage","showVideo","styleIconContainer","modalIconRetry","modalIcon","iconContainer","videoStyle","containerStyle","containerFocused","container","onLayout","videoContainer","source","uri","paused","placeholderContainer","placeholderContainerDark","uploadFailedText","accessibilityLabelCreator","caption","isEmpty","clientId","onBlur","insertBlocksAfter","select","dispatch"],"sources":["@wordpress/block-library/src/video/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport {\n\tmediaUploadSync,\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n} from '@wordpress/react-native-bridge';\nimport {\n\tIcon,\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n} from '@wordpress/components';\nimport { withPreferredColorScheme, compose } from '@wordpress/compose';\nimport {\n\tBlockCaption,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadProgress,\n\tMEDIA_TYPE_VIDEO,\n\tBlockControls,\n\tVIDEO_ASPECT_RATIO,\n\tVideoPlayer,\n\tInspectorControls,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { isURL, getProtocol } from '@wordpress/url';\nimport { doAction, hasAction } from '@wordpress/hooks';\nimport { video as SvgIcon, replace } from '@wordpress/icons';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport style from './style.scss';\nimport SvgIconRetry from './icon-retry';\nimport VideoCommonSettings from './edit-common-settings';\n\nconst ICON_TYPE = {\n\tPLACEHOLDER: 'placeholder',\n\tRETRY: 'retry',\n\tUPLOAD: 'upload',\n};\n\nclass VideoEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisCaptionSelected: false,\n\t\t\tvideoContainerHeight: 0,\n\t\t};\n\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t\tthis.onSelectMediaUploadOption =\n\t\t\tthis.onSelectMediaUploadOption.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.onVideoPressed = this.onVideoPressed.bind( this );\n\t\tthis.onVideoContanerLayout = this.onVideoContanerLayout.bind( this );\n\t\tthis.onFocusCaption = this.onFocusCaption.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes } = this.props;\n\t\tif ( attributes.id && getProtocol( attributes.src ) === 'file:' ) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\t// This action will only exist if the user pressed the trash button on the block holder.\n\t\tif (\n\t\t\thasAction( 'blocks.onRemoveBlockCheckUpload' ) &&\n\t\t\tthis.state.isUploadInProgress\n\t\t) {\n\t\t\tdoAction(\n\t\t\t\t'blocks.onRemoveBlockCheckUpload',\n\t\t\t\tthis.props.attributes.id\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\t// Avoid a UI flicker in the toolbar by insuring that isCaptionSelected\n\t\t// is updated immediately any time the isSelected prop becomes false.\n\t\treturn {\n\t\t\tisCaptionSelected: props.isSelected && state.isCaptionSelected,\n\t\t};\n\t}\n\n\tonVideoPressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.src ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tisCaptionSelected: false,\n\t\t} );\n\t}\n\n\tonFocusCaption() {\n\t\tif ( ! this.state.isCaptionSelected ) {\n\t\t\tthis.setState( { isCaptionSelected: true } );\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { src: payload.mediaUrl, id: payload.mediaServerId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id: null, src: null } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonSelectMediaUploadOption( { id, url } ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { id, src: url } );\n\t}\n\n\tonSelectURL( url ) {\n\t\tconst { createErrorNotice, onReplace, setAttributes } = this.props;\n\n\t\tif ( isURL( url ) && /^https?:/.test( getProtocol( url ) ) ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAttributes( { src: url, id: undefined, poster: undefined } );\n\t\t} else {\n\t\t\tcreateErrorNotice( __( 'Invalid URL.' ) );\n\t\t}\n\t}\n\n\tonVideoContanerLayout( event ) {\n\t\tconst { width } = event.nativeEvent.layout;\n\t\tconst height = width / VIDEO_ASPECT_RATIO;\n\t\tif ( height !== this.state.videoContainerHeight ) {\n\t\t\tthis.setState( { videoContainerHeight: height } );\n\t\t}\n\t}\n\n\tgetIcon( iconType ) {\n\t\tlet iconStyle;\n\t\tswitch ( iconType ) {\n\t\t\tcase ICON_TYPE.RETRY:\n\t\t\t\treturn <Icon icon={ SvgIconRetry } { ...style.icon } />;\n\t\t\tcase ICON_TYPE.PLACEHOLDER:\n\t\t\t\ticonStyle = this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyle.icon,\n\t\t\t\t\tstyle.iconDark\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase ICON_TYPE.UPLOAD:\n\t\t\t\ticonStyle = this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyle.iconUploading,\n\t\t\t\t\tstyle.iconUploadingDark\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn <Icon icon={ SvgIcon } { ...iconStyle } />;\n\t}\n\n\trender() {\n\t\tconst { setAttributes, attributes, isSelected, wasBlockJustInserted } =\n\t\t\tthis.props;\n\t\tconst { id, src } = attributes;\n\t\tconst { videoContainerHeight } = this.state;\n\n\t\tconst toolbarEditButton = (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_VIDEO ] }\n\t\t\t\tisReplacingMedia\n\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tlabel={ __( 'Edit video' ) }\n\t\t\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t></MediaUpload>\n\t\t);\n\n\t\tif ( ! src ) {\n\t\t\treturn (\n\t\t\t\t<View style={ { flex: 1 } }>\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_VIDEO ] }\n\t\t\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\t\ticon={ this.getIcon( ICON_TYPE.PLACEHOLDER ) }\n\t\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\t\tautoOpenMediaUpload={\n\t\t\t\t\t\t\tisSelected && wasBlockJustInserted\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\taccessible={ ! isSelected }\n\t\t\t\tonPress={ this.onVideoPressed }\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t>\n\t\t\t\t<View style={ { flex: 1 } }>\n\t\t\t\t\t{ ! this.state.isCaptionSelected && (\n\t\t\t\t\t\t<BlockControls>{ toolbarEditButton }</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\t\t\trenderContent={ ( {\n\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\tisUploadFailed,\n\t\t\t\t\t\t\tretryMessage,\n\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\tconst showVideo =\n\t\t\t\t\t\t\t\tisURL( src ) &&\n\t\t\t\t\t\t\t\tgetProtocol( attributes.src ) !== 'file:' &&\n\t\t\t\t\t\t\t\t! isUploadInProgress &&\n\t\t\t\t\t\t\t\t! isUploadFailed;\n\n\t\t\t\t\t\t\tconst icon = this.getIcon(\n\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t? ICON_TYPE.RETRY\n\t\t\t\t\t\t\t\t\t: ICON_TYPE.UPLOAD\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst styleIconContainer = isUploadFailed\n\t\t\t\t\t\t\t\t? style.modalIconRetry\n\t\t\t\t\t\t\t\t: style.modalIcon;\n\n\t\t\t\t\t\t\tconst iconContainer = (\n\t\t\t\t\t\t\t\t<View style={ styleIconContainer }>\n\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst videoStyle = {\n\t\t\t\t\t\t\t\theight: videoContainerHeight,\n\t\t\t\t\t\t\t\t...style.video,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst containerStyle =\n\t\t\t\t\t\t\t\tshowVideo && isSelected\n\t\t\t\t\t\t\t\t\t? style.containerFocused\n\t\t\t\t\t\t\t\t\t: style.container;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tonLayout={ this.onVideoContanerLayout }\n\t\t\t\t\t\t\t\t\tstyle={ containerStyle }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ showVideo && (\n\t\t\t\t\t\t\t\t\t\t<View style={ style.videoContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<VideoPlayer\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t! this.state\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.isCaptionSelected\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\tstyle={ videoStyle }\n\t\t\t\t\t\t\t\t\t\t\t\tsource={ { uri: src } }\n\t\t\t\t\t\t\t\t\t\t\t\tpaused\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! showVideo && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\theight: videoContainerHeight,\n\t\t\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\t\t\t\t...this.props.getStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.placeholderContainer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.placeholderContainerDark\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>\n\t\t\t\t\t\t\t\t\t\t\t{ videoContainerHeight > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\ticonContainer }\n\t\t\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle.uploadFailedText\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\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\t\t{ retryMessage }\n\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockCaption\n\t\t\t\t\t\taccessible\n\t\t\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\t\t\tRichText.isEmpty( caption )\n\t\t\t\t\t\t\t\t? /* translators: accessibility text. Empty video caption. */\n\t\t\t\t\t\t\t\t __( 'Video caption. Empty' )\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: video caption. */\n\t\t\t\t\t\t\t\t\t\t__( 'Video caption. %s' ),\n\t\t\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclientId={ this.props.clientId }\n\t\t\t\t\t\tisSelected={ this.state.isCaptionSelected }\n\t\t\t\t\t\tonFocus={ this.onFocusCaption }\n\t\t\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as props.\n\t\t\t\t\t\tinsertBlocksAfter={ this.props.insertBlocksAfter }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => ( {\n\t\twasBlockJustInserted: select( blockEditorStore ).wasBlockJustInserted(\n\t\t\tclientId,\n\t\t\t'inserter_menu'\n\t\t),\n\t} ) ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createErrorNotice } = dispatch( noticesStore );\n\n\t\treturn { createErrorNotice };\n\t} ),\n\twithPreferredColorScheme,\n] )( VideoEdit );\n"],"mappings":"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"}
@@ -96,6 +96,7 @@
96
96
  --wp-admin-border-width-focus: 2px;
97
97
  --wp-block-synced-color: #7a00df;
98
98
  --wp-block-synced-color--rgb: 122, 0, 223;
99
+ --wp-bound-block-color: #9747ff;
99
100
  }
100
101
  @media (min-resolution: 192dpi) {
101
102
  :root {
@@ -96,6 +96,7 @@
96
96
  --wp-admin-border-width-focus: 2px;
97
97
  --wp-block-synced-color: #7a00df;
98
98
  --wp-block-synced-color--rgb: 122, 0, 223;
99
+ --wp-bound-block-color: #9747ff;
99
100
  }
100
101
  @media (min-resolution: 192dpi) {
101
102
  :root {
@@ -95,7 +95,8 @@
95
95
  justify-content: center;
96
96
  align-items: center;
97
97
  padding: 1em;
98
- overflow-x: clip;
98
+ overflow: hidden;
99
+ overflow: clip;
99
100
  box-sizing: border-box; direction: ltr;
100
101
  /**
101
102
  * Set a default background color for has-background-dim _unless_ it includes another
@@ -95,7 +95,8 @@
95
95
  justify-content: center;
96
96
  align-items: center;
97
97
  padding: 1em;
98
- overflow-x: clip;
98
+ overflow: hidden;
99
+ overflow: clip;
99
100
  box-sizing: border-box;
100
101
  /*rtl:raw: direction: ltr; */
101
102
  /**
@@ -590,6 +590,9 @@ html :where(.wp-block-column) {
590
590
  .wp-block[data-align=left] > .wp-block-file, .wp-block[data-align=right] > .wp-block-file {
591
591
  height: auto;
592
592
  }
593
+ .wp-block[data-align=center] > .wp-block-file {
594
+ text-align: center;
595
+ }
593
596
  .wp-block-file .components-resizable-box__container {
594
597
  margin-bottom: 1em;
595
598
  }
@@ -1248,7 +1251,6 @@ figure.wp-block-gallery .components-spinner {
1248
1251
  margin: 0;
1249
1252
  }
1250
1253
  .wp-block-group__placeholder .components-placeholder__instructions {
1251
- text-align: center;
1252
1254
  margin-bottom: 18px;
1253
1255
  }
1254
1256
  .wp-block-group__placeholder .wp-block-group-placeholder__variations svg {
@@ -1275,6 +1277,7 @@ figure.wp-block-gallery .components-spinner {
1275
1277
  .wp-block-group__placeholder .components-placeholder {
1276
1278
  min-height: auto;
1277
1279
  padding: 24px;
1280
+ align-items: center;
1278
1281
  }
1279
1282
  .wp-block-group__placeholder .is-small .wp-block-group-placeholder__variations > li,
1280
1283
  .wp-block-group__placeholder .is-medium .wp-block-group-placeholder__variations > li {
@@ -1510,7 +1513,8 @@ figure.wp-block-image:not(.wp-block) {
1510
1513
  width: 100% !important;
1511
1514
  }
1512
1515
 
1513
- .wp-block-media-text.is-image-fill .editor-media-container__resizer {
1516
+ .wp-block-media-text.is-image-fill .editor-media-container__resizer,
1517
+ .wp-block-media-text.is-image-fill .components-placeholder.has-illustration {
1514
1518
  height: 100% !important;
1515
1519
  }
1516
1520
 
@@ -1518,6 +1522,11 @@ figure.wp-block-image:not(.wp-block) {
1518
1522
  max-width: unset;
1519
1523
  }
1520
1524
 
1525
+ /* Make the featured image placeholder the same height as the media selection area. */
1526
+ .wp-block-media-text--placeholder-image {
1527
+ min-height: 205px;
1528
+ }
1529
+
1521
1530
  .block-editor-block-list__block[data-type="core/more"] {
1522
1531
  max-width: 100%;
1523
1532
  text-align: center;