@wordpress/block-library 9.2.0 → 9.3.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 (302) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/audio/edit.js +20 -8
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/index.js +4 -0
  5. package/build/audio/index.js.map +1 -1
  6. package/build/audio/transforms.js +1 -1
  7. package/build/audio/transforms.js.map +1 -1
  8. package/build/block/edit.js +0 -1
  9. package/build/block/edit.js.map +1 -1
  10. package/build/block/index.js +5 -1
  11. package/build/block/index.js.map +1 -1
  12. package/build/embed/embed-preview.js +4 -4
  13. package/build/embed/embed-preview.js.map +1 -1
  14. package/build/file/edit.js +14 -6
  15. package/build/file/edit.js.map +1 -1
  16. package/build/file/index.js +4 -0
  17. package/build/file/index.js.map +1 -1
  18. package/build/file/transforms.js +2 -3
  19. package/build/file/transforms.js.map +1 -1
  20. package/build/gallery/deprecated.js +6 -54
  21. package/build/gallery/deprecated.js.map +1 -1
  22. package/build/gallery/edit.js +9 -8
  23. package/build/gallery/edit.js.map +1 -1
  24. package/build/gallery/index.js +2 -2
  25. package/build/gallery/index.js.map +1 -1
  26. package/build/gallery/save.js +0 -11
  27. package/build/gallery/save.js.map +1 -1
  28. package/build/gallery/shared.js +0 -27
  29. package/build/gallery/shared.js.map +1 -1
  30. package/build/gallery/transforms.js +29 -80
  31. package/build/gallery/transforms.js.map +1 -1
  32. package/build/group/index.js +1 -0
  33. package/build/group/index.js.map +1 -1
  34. package/build/group/placeholder.js +5 -0
  35. package/build/group/placeholder.js.map +1 -1
  36. package/build/image/edit.js +13 -21
  37. package/build/image/edit.js.map +1 -1
  38. package/build/image/image.js +30 -17
  39. package/build/image/image.js.map +1 -1
  40. package/build/image/index.js +4 -0
  41. package/build/image/index.js.map +1 -1
  42. package/build/image/transforms.js +1 -1
  43. package/build/image/transforms.js.map +1 -1
  44. package/build/list-item/edit.js +1 -1
  45. package/build/list-item/edit.js.map +1 -1
  46. package/build/list-item/hooks/use-merge.js +8 -1
  47. package/build/list-item/hooks/use-merge.js.map +1 -1
  48. package/build/list-item/index.js +11 -1
  49. package/build/list-item/index.js.map +1 -1
  50. package/build/loginout/index.js +3 -0
  51. package/build/loginout/index.js.map +1 -1
  52. package/build/media-text/edit.js +3 -2
  53. package/build/media-text/edit.js.map +1 -1
  54. package/build/navigation-submenu/edit.js +1 -1
  55. package/build/navigation-submenu/edit.js.map +1 -1
  56. package/build/page-list/convert-to-links-modal.js +1 -1
  57. package/build/page-list/convert-to-links-modal.js.map +1 -1
  58. package/build/page-list/edit.js +1 -1
  59. package/build/page-list/edit.js.map +1 -1
  60. package/build/post-content/index.js +3 -0
  61. package/build/post-content/index.js.map +1 -1
  62. package/build/post-date/edit.js +3 -1
  63. package/build/post-date/edit.js.map +1 -1
  64. package/build/post-excerpt/index.js +3 -0
  65. package/build/post-excerpt/index.js.map +1 -1
  66. package/build/post-title/index.js +3 -0
  67. package/build/post-title/index.js.map +1 -1
  68. package/build/query/edit/inspector-controls/index.js +3 -2
  69. package/build/query/edit/inspector-controls/index.js.map +1 -1
  70. package/build/query/edit/query-toolbar.js +54 -61
  71. package/build/query/edit/query-toolbar.js.map +1 -1
  72. package/build/query/index.js +34 -0
  73. package/build/query/index.js.map +1 -1
  74. package/build/social-link/edit.js +27 -7
  75. package/build/social-link/edit.js.map +1 -1
  76. package/build/table/edit.js +8 -17
  77. package/build/table/edit.js.map +1 -1
  78. package/build/template-part/edit/title-modal.js +1 -1
  79. package/build/template-part/edit/title-modal.js.map +1 -1
  80. package/build/utils/hooks.js +12 -0
  81. package/build/utils/hooks.js.map +1 -1
  82. package/build/video/deprecated.js +4 -0
  83. package/build/video/deprecated.js.map +1 -1
  84. package/build/video/edit.js +17 -7
  85. package/build/video/edit.js.map +1 -1
  86. package/build/video/index.js +4 -0
  87. package/build/video/index.js.map +1 -1
  88. package/build/video/transforms.js +1 -1
  89. package/build/video/transforms.js.map +1 -1
  90. package/build-module/audio/edit.js +20 -8
  91. package/build-module/audio/edit.js.map +1 -1
  92. package/build-module/audio/index.js +4 -0
  93. package/build-module/audio/index.js.map +1 -1
  94. package/build-module/audio/transforms.js +1 -1
  95. package/build-module/audio/transforms.js.map +1 -1
  96. package/build-module/block/edit.js +0 -1
  97. package/build-module/block/edit.js.map +1 -1
  98. package/build-module/block/index.js +5 -1
  99. package/build-module/block/index.js.map +1 -1
  100. package/build-module/embed/embed-preview.js +4 -4
  101. package/build-module/embed/embed-preview.js.map +1 -1
  102. package/build-module/file/edit.js +15 -7
  103. package/build-module/file/edit.js.map +1 -1
  104. package/build-module/file/index.js +4 -0
  105. package/build-module/file/index.js.map +1 -1
  106. package/build-module/file/transforms.js +2 -3
  107. package/build-module/file/transforms.js.map +1 -1
  108. package/build-module/gallery/deprecated.js +6 -54
  109. package/build-module/gallery/deprecated.js.map +1 -1
  110. package/build-module/gallery/edit.js +10 -9
  111. package/build-module/gallery/edit.js.map +1 -1
  112. package/build-module/gallery/index.js +1 -1
  113. package/build-module/gallery/index.js.map +1 -1
  114. package/build-module/gallery/save.js +0 -11
  115. package/build-module/gallery/save.js.map +1 -1
  116. package/build-module/gallery/shared.js +0 -25
  117. package/build-module/gallery/shared.js.map +1 -1
  118. package/build-module/gallery/transforms.js +29 -80
  119. package/build-module/gallery/transforms.js.map +1 -1
  120. package/build-module/group/index.js +1 -0
  121. package/build-module/group/index.js.map +1 -1
  122. package/build-module/group/placeholder.js +5 -0
  123. package/build-module/group/placeholder.js.map +1 -1
  124. package/build-module/image/edit.js +12 -20
  125. package/build-module/image/edit.js.map +1 -1
  126. package/build-module/image/image.js +25 -12
  127. package/build-module/image/image.js.map +1 -1
  128. package/build-module/image/index.js +4 -0
  129. package/build-module/image/index.js.map +1 -1
  130. package/build-module/image/transforms.js +1 -1
  131. package/build-module/image/transforms.js.map +1 -1
  132. package/build-module/list-item/edit.js +1 -1
  133. package/build-module/list-item/edit.js.map +1 -1
  134. package/build-module/list-item/hooks/use-merge.js +8 -1
  135. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  136. package/build-module/list-item/index.js +11 -1
  137. package/build-module/list-item/index.js.map +1 -1
  138. package/build-module/loginout/index.js +3 -0
  139. package/build-module/loginout/index.js.map +1 -1
  140. package/build-module/media-text/edit.js +3 -2
  141. package/build-module/media-text/edit.js.map +1 -1
  142. package/build-module/navigation-submenu/edit.js +1 -1
  143. package/build-module/navigation-submenu/edit.js.map +1 -1
  144. package/build-module/page-list/convert-to-links-modal.js +1 -1
  145. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  146. package/build-module/page-list/edit.js +1 -1
  147. package/build-module/page-list/edit.js.map +1 -1
  148. package/build-module/post-content/index.js +3 -0
  149. package/build-module/post-content/index.js.map +1 -1
  150. package/build-module/post-date/edit.js +4 -2
  151. package/build-module/post-date/edit.js.map +1 -1
  152. package/build-module/post-excerpt/index.js +3 -0
  153. package/build-module/post-excerpt/index.js.map +1 -1
  154. package/build-module/post-title/index.js +3 -0
  155. package/build-module/post-title/index.js.map +1 -1
  156. package/build-module/query/edit/inspector-controls/index.js +3 -2
  157. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  158. package/build-module/query/edit/query-toolbar.js +55 -62
  159. package/build-module/query/edit/query-toolbar.js.map +1 -1
  160. package/build-module/query/index.js +34 -0
  161. package/build-module/query/index.js.map +1 -1
  162. package/build-module/social-link/edit.js +28 -8
  163. package/build-module/social-link/edit.js.map +1 -1
  164. package/build-module/table/edit.js +9 -18
  165. package/build-module/table/edit.js.map +1 -1
  166. package/build-module/template-part/edit/title-modal.js +1 -1
  167. package/build-module/template-part/edit/title-modal.js.map +1 -1
  168. package/build-module/utils/hooks.js +11 -0
  169. package/build-module/utils/hooks.js.map +1 -1
  170. package/build-module/video/deprecated.js +4 -0
  171. package/build-module/video/deprecated.js.map +1 -1
  172. package/build-module/video/edit.js +18 -8
  173. package/build-module/video/edit.js.map +1 -1
  174. package/build-module/video/index.js +4 -0
  175. package/build-module/video/index.js.map +1 -1
  176. package/build-module/video/transforms.js +1 -1
  177. package/build-module/video/transforms.js.map +1 -1
  178. package/build-style/editor-rtl.css +3 -0
  179. package/build-style/editor.css +3 -0
  180. package/build-style/post-comments-form/style-rtl.css +11 -10
  181. package/build-style/post-comments-form/style.css +11 -10
  182. package/build-style/query/editor-rtl.css +3 -0
  183. package/build-style/query/editor.css +3 -0
  184. package/build-style/social-links/style-rtl.css +91 -91
  185. package/build-style/social-links/style.css +91 -91
  186. package/build-style/style-rtl.css +102 -101
  187. package/build-style/style.css +102 -101
  188. package/package.json +35 -35
  189. package/src/audio/block.json +4 -0
  190. package/src/audio/edit.js +19 -7
  191. package/src/audio/transforms.js +1 -1
  192. package/src/block/block.json +5 -1
  193. package/src/block/edit.js +0 -1
  194. package/src/button/index.php +14 -1
  195. package/src/embed/embed-preview.js +4 -6
  196. package/src/file/block.json +4 -0
  197. package/src/file/edit.js +19 -6
  198. package/src/file/transforms.js +1 -2
  199. package/src/gallery/deprecated.js +6 -55
  200. package/src/gallery/edit.js +13 -10
  201. package/src/gallery/gallery-styles.native.scss +0 -2
  202. package/src/gallery/index.js +1 -1
  203. package/src/gallery/save.js +0 -10
  204. package/src/gallery/shared.js +0 -28
  205. package/src/gallery/transforms.js +56 -99
  206. package/src/group/block.json +1 -0
  207. package/src/group/placeholder.js +7 -0
  208. package/src/image/block.json +4 -0
  209. package/src/image/edit.js +10 -19
  210. package/src/image/image.js +36 -14
  211. package/src/image/index.php +26 -5
  212. package/src/image/transforms.js +1 -1
  213. package/src/list-item/block.json +11 -1
  214. package/src/list-item/edit.js +1 -1
  215. package/src/list-item/hooks/use-merge.js +19 -5
  216. package/src/loginout/block.json +3 -0
  217. package/src/media-text/edit.js +3 -2
  218. package/src/navigation-submenu/edit.js +1 -1
  219. package/src/page-list/convert-to-links-modal.js +1 -1
  220. package/src/page-list/edit.js +1 -1
  221. package/src/post-comments-form/style.scss +15 -12
  222. package/src/post-content/block.json +3 -0
  223. package/src/post-date/edit.js +5 -1
  224. package/src/post-date/index.php +8 -2
  225. package/src/post-excerpt/block.json +3 -0
  226. package/src/post-title/block.json +3 -0
  227. package/src/query/edit/inspector-controls/index.js +3 -2
  228. package/src/query/edit/query-toolbar.js +60 -72
  229. package/src/query/editor.scss +4 -0
  230. package/src/query/index.js +40 -0
  231. package/src/social-link/edit.js +29 -3
  232. package/src/social-links/style.scss +2 -2
  233. package/src/table/edit.js +11 -24
  234. package/src/template-part/edit/title-modal.js +1 -1
  235. package/src/utils/hooks.js +14 -1
  236. package/src/video/block.json +4 -0
  237. package/src/video/edit.js +23 -8
  238. package/src/video/transforms.js +1 -1
  239. package/tsconfig.tsbuildinfo +1 -1
  240. package/build/gallery/edit-wrapper.js +0 -37
  241. package/build/gallery/edit-wrapper.js.map +0 -1
  242. package/build/gallery/v1/constants.js +0 -10
  243. package/build/gallery/v1/constants.js.map +0 -1
  244. package/build/gallery/v1/edit.js +0 -399
  245. package/build/gallery/v1/edit.js.map +0 -1
  246. package/build/gallery/v1/gallery-button.native.js +0 -55
  247. package/build/gallery/v1/gallery-button.native.js.map +0 -1
  248. package/build/gallery/v1/gallery-image.js +0 -285
  249. package/build/gallery/v1/gallery-image.js.map +0 -1
  250. package/build/gallery/v1/gallery-image.native.js +0 -297
  251. package/build/gallery/v1/gallery-image.native.js.map +0 -1
  252. package/build/gallery/v1/gallery.js +0 -112
  253. package/build/gallery/v1/gallery.js.map +0 -1
  254. package/build/gallery/v1/gallery.native.js +0 -139
  255. package/build/gallery/v1/gallery.native.js.map +0 -1
  256. package/build/gallery/v1/save.js +0 -81
  257. package/build/gallery/v1/save.js.map +0 -1
  258. package/build/gallery/v1/shared.js +0 -17
  259. package/build/gallery/v1/shared.js.map +0 -1
  260. package/build/gallery/v1/tiles.native.js +0 -83
  261. package/build/gallery/v1/tiles.native.js.map +0 -1
  262. package/build/utils/constants.js +0 -15
  263. package/build/utils/constants.js.map +0 -1
  264. package/build-module/gallery/edit-wrapper.js +0 -31
  265. package/build-module/gallery/edit-wrapper.js.map +0 -1
  266. package/build-module/gallery/v1/constants.js +0 -4
  267. package/build-module/gallery/v1/constants.js.map +0 -1
  268. package/build-module/gallery/v1/edit.js +0 -393
  269. package/build-module/gallery/v1/edit.js.map +0 -1
  270. package/build-module/gallery/v1/gallery-button.native.js +0 -46
  271. package/build-module/gallery/v1/gallery-button.native.js.map +0 -1
  272. package/build-module/gallery/v1/gallery-image.js +0 -279
  273. package/build-module/gallery/v1/gallery-image.js.map +0 -1
  274. package/build-module/gallery/v1/gallery-image.native.js +0 -291
  275. package/build-module/gallery/v1/gallery-image.native.js.map +0 -1
  276. package/build-module/gallery/v1/gallery.js +0 -104
  277. package/build-module/gallery/v1/gallery.js.map +0 -1
  278. package/build-module/gallery/v1/gallery.native.js +0 -131
  279. package/build-module/gallery/v1/gallery.native.js.map +0 -1
  280. package/build-module/gallery/v1/save.js +0 -74
  281. package/build-module/gallery/v1/save.js.map +0 -1
  282. package/build-module/gallery/v1/shared.js +0 -10
  283. package/build-module/gallery/v1/shared.js.map +0 -1
  284. package/build-module/gallery/v1/tiles.native.js +0 -75
  285. package/build-module/gallery/v1/tiles.native.js.map +0 -1
  286. package/build-module/utils/constants.js +0 -9
  287. package/build-module/utils/constants.js.map +0 -1
  288. package/src/gallery/edit-wrapper.js +0 -27
  289. package/src/gallery/v1/constants.js +0 -3
  290. package/src/gallery/v1/edit.js +0 -450
  291. package/src/gallery/v1/gallery-button.native.js +0 -47
  292. package/src/gallery/v1/gallery-image-style.native.scss +0 -109
  293. package/src/gallery/v1/gallery-image.js +0 -293
  294. package/src/gallery/v1/gallery-image.native.js +0 -348
  295. package/src/gallery/v1/gallery-styles.native.scss +0 -8
  296. package/src/gallery/v1/gallery.js +0 -125
  297. package/src/gallery/v1/gallery.native.js +0 -162
  298. package/src/gallery/v1/save.js +0 -98
  299. package/src/gallery/v1/shared.js +0 -19
  300. package/src/gallery/v1/tiles-styles.native.scss +0 -11
  301. package/src/gallery/v1/tiles.native.js +0 -79
  302. package/src/utils/constants.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"names":["_blob","require","_blocks","transforms","from","type","isMatch","files","length","indexOf","transform","file","block","createBlock","src","createBlobURL","tag","attributes","shortcode","named","mp4","m4v","webm","ogv","flv","poster","loop","autoplay","preload","node","nodeName","children","firstChild","videoElement","hasAttribute","undefined","controls","muted","getAttribute","playsInline","_default","exports","default"],"sources":["@wordpress/block-library/src/video/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length === 1 &&\n\t\t\t\t\tfiles[ 0 ].type.indexOf( 'video/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t// in the video block\n\t\t\t\tconst block = createBlock( 'core/video', {\n\t\t\t\t\tsrc: createBlobURL( file ),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'video',\n\t\t\tattributes: {\n\t\t\t\tsrc: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( {\n\t\t\t\t\t\tnamed: { src, mp4, m4v, webm, ogv, flv },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\treturn src || mp4 || m4v || webm || ogv || flv;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tposter: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { poster } } ) => {\n\t\t\t\t\t\treturn poster;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tloop: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { loop } } ) => {\n\t\t\t\t\t\treturn loop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tautoplay: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { autoplay } } ) => {\n\t\t\t\t\t\treturn autoplay;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpreload: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { preload } } ) => {\n\t\t\t\t\t\treturn preload;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'P' &&\n\t\t\t\tnode.children.length === 1 &&\n\t\t\t\tnode.firstChild.nodeName === 'VIDEO',\n\t\t\ttransform: ( node ) => {\n\t\t\t\tconst videoElement = node.firstChild;\n\t\t\t\tconst attributes = {\n\t\t\t\t\tautoplay: videoElement.hasAttribute( 'autoplay' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcontrols: videoElement.hasAttribute( 'controls' )\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: false,\n\t\t\t\t\tloop: videoElement.hasAttribute( 'loop' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tmuted: videoElement.hasAttribute( 'muted' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tpreload:\n\t\t\t\t\t\tvideoElement.getAttribute( 'preload' ) || undefined,\n\t\t\t\t\tplaysInline: videoElement.hasAttribute( 'playsinline' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tposter: videoElement.getAttribute( 'poster' ) || undefined,\n\t\t\t\t\tsrc: videoElement.getAttribute( 'src' ) || undefined,\n\t\t\t\t};\n\t\t\t\treturn createBlock( 'core/video', attributes );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blob","require","_blocks","transforms","from","type","isMatch","files","length","indexOf","transform","file","block","createBlock","blob","createBlobURL","tag","attributes","src","shortcode","named","mp4","m4v","webm","ogv","flv","poster","loop","autoplay","preload","node","nodeName","children","firstChild","videoElement","hasAttribute","undefined","controls","muted","getAttribute","playsInline","_default","exports","default"],"sources":["@wordpress/block-library/src/video/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length === 1 &&\n\t\t\t\t\tfiles[ 0 ].type.indexOf( 'video/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t// in the video block\n\t\t\t\tconst block = createBlock( 'core/video', {\n\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'video',\n\t\t\tattributes: {\n\t\t\t\tsrc: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( {\n\t\t\t\t\t\tnamed: { src, mp4, m4v, webm, ogv, flv },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\treturn src || mp4 || m4v || webm || ogv || flv;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tposter: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { poster } } ) => {\n\t\t\t\t\t\treturn poster;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tloop: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { loop } } ) => {\n\t\t\t\t\t\treturn loop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tautoplay: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { autoplay } } ) => {\n\t\t\t\t\t\treturn autoplay;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpreload: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { preload } } ) => {\n\t\t\t\t\t\treturn preload;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'P' &&\n\t\t\t\tnode.children.length === 1 &&\n\t\t\t\tnode.firstChild.nodeName === 'VIDEO',\n\t\t\ttransform: ( node ) => {\n\t\t\t\tconst videoElement = node.firstChild;\n\t\t\t\tconst attributes = {\n\t\t\t\t\tautoplay: videoElement.hasAttribute( 'autoplay' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcontrols: videoElement.hasAttribute( 'controls' )\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: false,\n\t\t\t\t\tloop: videoElement.hasAttribute( 'loop' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tmuted: videoElement.hasAttribute( 'muted' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tpreload:\n\t\t\t\t\t\tvideoElement.getAttribute( 'preload' ) || undefined,\n\t\t\t\t\tplaysInline: videoElement.hasAttribute( 'playsinline' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tposter: videoElement.getAttribute( 'poster' ) || undefined,\n\t\t\t\t\tsrc: videoElement.getAttribute( 'src' ) || undefined,\n\t\t\t\t};\n\t\t\t\treturn createBlock( 'core/video', attributes );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,7 @@ import { __, _x } from '@wordpress/i18n';
13
13
  import { useDispatch } from '@wordpress/data';
14
14
  import { audio as icon } from '@wordpress/icons';
15
15
  import { store as noticesStore } from '@wordpress/notices';
16
+ import { useState } from '@wordpress/element';
16
17
 
17
18
  /**
18
19
  * Internal dependencies
@@ -39,9 +40,9 @@ function AudioEdit({
39
40
  preload,
40
41
  src
41
42
  } = attributes;
42
- const isTemporaryAudio = !id && isBlobURL(src);
43
+ const [temporaryURL, setTemporaryURL] = useState(attributes.blob);
43
44
  useUploadMediaFromBlobURL({
44
- url: src,
45
+ url: temporaryURL,
45
46
  allowedTypes: ALLOWED_MEDIA_TYPES,
46
47
  onChange: onSelectAudio,
47
48
  onError: onUploadError
@@ -69,8 +70,10 @@ function AudioEdit({
69
70
  }
70
71
  setAttributes({
71
72
  src: newSrc,
72
- id: undefined
73
+ id: undefined,
74
+ blob: undefined
73
75
  });
76
+ setTemporaryURL();
74
77
  }
75
78
  }
76
79
  const {
@@ -91,25 +94,34 @@ function AudioEdit({
91
94
  setAttributes({
92
95
  src: undefined,
93
96
  id: undefined,
94
- caption: undefined
97
+ caption: undefined,
98
+ blob: undefined
95
99
  });
100
+ setTemporaryURL();
101
+ return;
102
+ }
103
+ if (isBlobURL(media.url)) {
104
+ setTemporaryURL(media.url);
96
105
  return;
97
106
  }
107
+
98
108
  // Sets the block's attribute and updates the edit component from the
99
109
  // selected media, then switches off the editing UI.
100
110
  setAttributes({
111
+ blob: undefined,
101
112
  src: media.url,
102
113
  id: media.id,
103
114
  caption: media.caption
104
115
  });
116
+ setTemporaryURL();
105
117
  }
106
118
  const classes = clsx(className, {
107
- 'is-transient': isTemporaryAudio
119
+ 'is-transient': !!temporaryURL
108
120
  });
109
121
  const blockProps = useBlockProps({
110
122
  className: classes
111
123
  });
112
- if (!src) {
124
+ if (!src && !temporaryURL) {
113
125
  return /*#__PURE__*/_jsx("div", {
114
126
  ...blockProps,
115
127
  children: /*#__PURE__*/_jsx(MediaPlaceholder, {
@@ -181,9 +193,9 @@ function AudioEdit({
181
193
  isDisabled: !isSingleSelected,
182
194
  children: /*#__PURE__*/_jsx("audio", {
183
195
  controls: "controls",
184
- src: src
196
+ src: src !== null && src !== void 0 ? src : temporaryURL
185
197
  })
186
- }), isTemporaryAudio && /*#__PURE__*/_jsx(Spinner, {}), /*#__PURE__*/_jsx(Caption, {
198
+ }), !!temporaryURL && /*#__PURE__*/_jsx(Spinner, {}), /*#__PURE__*/_jsx(Caption, {
187
199
  attributes: attributes,
188
200
  setAttributes: setAttributes,
189
201
  isSelected: isSingleSelected,
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","isBlobURL","Disabled","PanelBody","SelectControl","Spinner","ToggleControl","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","__","_x","useDispatch","audio","icon","store","noticesStore","createUpgradedEmbedBlock","useUploadMediaFromBlobURL","Caption","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","className","setAttributes","onReplace","isSelected","isSingleSelected","insertBlocksAfter","id","autoplay","loop","preload","src","isTemporaryAudio","url","allowedTypes","onChange","onSelectAudio","onError","onUploadError","toggleAttribute","attribute","newValue","onSelectURL","newSrc","embedBlock","undefined","createErrorNotice","message","type","getAutoplayHelp","checked","media","caption","classes","blockProps","children","onSelect","accept","value","group","mediaId","mediaURL","title","__nextHasNoMarginBottom","label","help","options","isDisabled","controls","showToolbarButton"],"sources":["@wordpress/block-library/src/audio/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { audio 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 { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected: isSingleSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\tconst isTemporaryAudio = ! id && isBlobURL( src );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: src,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectAudio,\n\t\tonError: onUploadError,\n\t} );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\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 } );\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\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed 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\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': isTemporaryAudio,\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={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\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/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio 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\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryAudio && <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={ __( 'Audio 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 AudioEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","isBlobURL","Disabled","PanelBody","SelectControl","Spinner","ToggleControl","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","__","_x","useDispatch","audio","icon","store","noticesStore","useState","createUpgradedEmbedBlock","useUploadMediaFromBlobURL","Caption","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","className","setAttributes","onReplace","isSelected","isSingleSelected","insertBlocksAfter","id","autoplay","loop","preload","src","temporaryURL","setTemporaryURL","blob","url","allowedTypes","onChange","onSelectAudio","onError","onUploadError","toggleAttribute","attribute","newValue","onSelectURL","newSrc","embedBlock","undefined","createErrorNotice","message","type","getAutoplayHelp","checked","media","caption","classes","blockProps","children","onSelect","accept","value","group","mediaId","mediaURL","title","__nextHasNoMarginBottom","label","help","options","isDisabled","controls","showToolbarButton"],"sources":["@wordpress/block-library/src/audio/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { audio as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected: isSingleSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectAudio,\n\t\tonError: onUploadError,\n\t} );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\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, blob: undefined } );\n\t\t\tsetTemporaryURL();\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\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed 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\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\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, then switches off the editing UI.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\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={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\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/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio 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\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src ?? temporaryURL } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <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={ __( 'Audio 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 AudioEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,10 @@ const metadata = {
19
19
  keywords: ["music", "sound", "podcast", "recording"],
20
20
  textdomain: "default",
21
21
  attributes: {
22
+ blob: {
23
+ type: "string",
24
+ __experimentalRole: "local"
25
+ },
22
26
  src: {
23
27
  type: "string",
24
28
  source: "attribute",
@@ -1 +1 @@
1
- {"version":3,"names":["audio","icon","initBlock","deprecated","edit","metadata","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","src","type","source","selector","attribute","__experimentalRole","caption","id","autoplay","loop","preload","supports","anchor","align","spacing","margin","padding","__experimentalDefaultControls","interactivity","clientNavigation","editorStyle","style","save","transforms","settings","example","viewportWidth","init"],"sources":["@wordpress/block-library/src/audio/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { audio as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsrc: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',\n\t\t},\n\t\tviewportWidth: 350,\n\t},\n\ttransforms,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,IAAI,QAAQ,kBAAkB;;AAEhD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,GAAA;MAAAC,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAC,kBAAA;IAAA;IAAAC,OAAA;MAAAL,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAE,kBAAA;IAAA;IAAAE,EAAA;MAAAN,IAAA;MAAAI,kBAAA;IAAA;IAAAG,QAAA;MAAAP,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;IAAAK,IAAA;MAAAR,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;IAAAM,OAAA;MAAAT,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;EAAA;EAAAO,QAAA;IAAAC,MAAA;IAAAC,KAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAC,6BAAA;QAAAF,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAE,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,WAAA;EAAAC,KAAA;AAAA;AAE1B,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAE9B;AAAK,CAAC,GAAGH,QAAQ;AAEzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAM+B,QAAQ,GAAG;EACvBtC,IAAI;EACJuC,OAAO,EAAE;IACR1B,UAAU,EAAE;MACXC,GAAG,EAAE;IACN,CAAC;IACD0B,aAAa,EAAE;EAChB,CAAC;EACDH,UAAU;EACVnC,UAAU;EACVC,IAAI;EACJiC;AACD,CAAC;AAED,OAAO,MAAMK,IAAI,GAAGA,CAAA,KAAMxC,SAAS,CAAE;EAAEM,IAAI;EAAEH,QAAQ;EAAEkC;AAAS,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["audio","icon","initBlock","deprecated","edit","metadata","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","blob","type","__experimentalRole","src","source","selector","attribute","caption","id","autoplay","loop","preload","supports","anchor","align","spacing","margin","padding","__experimentalDefaultControls","interactivity","clientNavigation","editorStyle","style","save","transforms","settings","example","viewportWidth","init"],"sources":["@wordpress/block-library/src/audio/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { audio as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsrc: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',\n\t\t},\n\t\tviewportWidth: 350,\n\t},\n\ttransforms,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,IAAI,QAAQ,kBAAkB;;AAEhD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAC,IAAA;MAAAC,kBAAA;IAAA;IAAAC,GAAA;MAAAF,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAC,SAAA;MAAAJ,kBAAA;IAAA;IAAAK,OAAA;MAAAN,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAH,kBAAA;IAAA;IAAAM,EAAA;MAAAP,IAAA;MAAAC,kBAAA;IAAA;IAAAO,QAAA;MAAAR,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;IAAAI,IAAA;MAAAT,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;IAAAK,OAAA;MAAAV,IAAA;MAAAG,MAAA;MAAAC,QAAA;MAAAC,SAAA;IAAA;EAAA;EAAAM,QAAA;IAAAC,MAAA;IAAAC,KAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAC,6BAAA;QAAAF,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAE,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,WAAA;EAAAC,KAAA;AAAA;AAE1B,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAE/B;AAAK,CAAC,GAAGH,QAAQ;AAEzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAMgC,QAAQ,GAAG;EACvBvC,IAAI;EACJwC,OAAO,EAAE;IACR3B,UAAU,EAAE;MACXI,GAAG,EAAE;IACN,CAAC;IACDwB,aAAa,EAAE;EAChB,CAAC;EACDH,UAAU;EACVpC,UAAU;EACVC,IAAI;EACJkC;AACD,CAAC;AAED,OAAO,MAAMK,IAAI,GAAGA,CAAA,KAAMzC,SAAS,CAAE;EAAEM,IAAI;EAAEH,QAAQ;EAAEmC;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -15,7 +15,7 @@ const transforms = {
15
15
  // It's already done as part of the `componentDidMount`
16
16
  // in the audio block.
17
17
  const block = createBlock('core/audio', {
18
- src: createBlobURL(file)
18
+ blob: createBlobURL(file)
19
19
  });
20
20
  return block;
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createBlobURL","createBlock","transforms","from","type","isMatch","files","length","indexOf","transform","file","block","src","tag","attributes","shortcode","named","mp3","m4a","ogg","wav","wma","loop","autoplay","preload"],"sources":["@wordpress/block-library/src/audio/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length === 1 &&\n\t\t\t\t\tfiles[ 0 ].type.indexOf( 'audio/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t// in the audio block.\n\t\t\t\tconst block = createBlock( 'core/audio', {\n\t\t\t\t\tsrc: createBlobURL( file ),\n\t\t\t\t} );\n\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'audio',\n\t\t\tattributes: {\n\t\t\t\tsrc: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( {\n\t\t\t\t\t\tnamed: { src, mp3, m4a, ogg, wav, wma },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\treturn src || mp3 || m4a || ogg || wav || wma;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tloop: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { loop } } ) => {\n\t\t\t\t\t\treturn loop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tautoplay: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { autoplay } } ) => {\n\t\t\t\t\t\treturn autoplay;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpreload: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { preload } } ) => {\n\t\t\t\t\t\treturn preload;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,WAAW,QAAQ,mBAAmB;AAE/C,MAAMC,UAAU,GAAG;EAClBC,IAAI,EAAE,CACL;IACCC,IAAI,EAAE,OAAO;IACbC,OAAOA,CAAEC,KAAK,EAAG;MAChB,OACCA,KAAK,CAACC,MAAM,KAAK,CAAC,IAClBD,KAAK,CAAE,CAAC,CAAE,CAACF,IAAI,CAACI,OAAO,CAAE,QAAS,CAAC,KAAK,CAAC;IAE3C,CAAC;IACDC,SAASA,CAAEH,KAAK,EAAG;MAClB,MAAMI,IAAI,GAAGJ,KAAK,CAAE,CAAC,CAAE;MACvB;MACA;MACA;MACA,MAAMK,KAAK,GAAGV,WAAW,CAAE,YAAY,EAAE;QACxCW,GAAG,EAAEZ,aAAa,CAAEU,IAAK;MAC1B,CAAE,CAAC;MAEH,OAAOC,KAAK;IACb;EACD,CAAC,EACD;IACCP,IAAI,EAAE,WAAW;IACjBS,GAAG,EAAE,OAAO;IACZC,UAAU,EAAE;MACXF,GAAG,EAAE;QACJR,IAAI,EAAE,QAAQ;QACdW,SAAS,EAAEA,CAAE;UACZC,KAAK,EAAE;YAAEJ,GAAG;YAAEK,GAAG;YAAEC,GAAG;YAAEC,GAAG;YAAEC,GAAG;YAAEC;UAAI;QACvC,CAAC,KAAM;UACN,OAAOT,GAAG,IAAIK,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG;QAC9C;MACD,CAAC;MACDC,IAAI,EAAE;QACLlB,IAAI,EAAE,QAAQ;QACdW,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEM;UAAK;QAAE,CAAC,KAAM;UACrC,OAAOA,IAAI;QACZ;MACD,CAAC;MACDC,QAAQ,EAAE;QACTnB,IAAI,EAAE,QAAQ;QACdW,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEO;UAAS;QAAE,CAAC,KAAM;UACzC,OAAOA,QAAQ;QAChB;MACD,CAAC;MACDC,OAAO,EAAE;QACRpB,IAAI,EAAE,QAAQ;QACdW,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEQ;UAAQ;QAAE,CAAC,KAAM;UACxC,OAAOA,OAAO;QACf;MACD;IACD;EACD,CAAC;AAEH,CAAC;AAED,eAAetB,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["createBlobURL","createBlock","transforms","from","type","isMatch","files","length","indexOf","transform","file","block","blob","tag","attributes","src","shortcode","named","mp3","m4a","ogg","wav","wma","loop","autoplay","preload"],"sources":["@wordpress/block-library/src/audio/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length === 1 &&\n\t\t\t\t\tfiles[ 0 ].type.indexOf( 'audio/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t// in the audio block.\n\t\t\t\tconst block = createBlock( 'core/audio', {\n\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t} );\n\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'audio',\n\t\t\tattributes: {\n\t\t\t\tsrc: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( {\n\t\t\t\t\t\tnamed: { src, mp3, m4a, ogg, wav, wma },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\treturn src || mp3 || m4a || ogg || wav || wma;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tloop: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { loop } } ) => {\n\t\t\t\t\t\treturn loop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tautoplay: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { autoplay } } ) => {\n\t\t\t\t\t\treturn autoplay;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpreload: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { preload } } ) => {\n\t\t\t\t\t\treturn preload;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,WAAW,QAAQ,mBAAmB;AAE/C,MAAMC,UAAU,GAAG;EAClBC,IAAI,EAAE,CACL;IACCC,IAAI,EAAE,OAAO;IACbC,OAAOA,CAAEC,KAAK,EAAG;MAChB,OACCA,KAAK,CAACC,MAAM,KAAK,CAAC,IAClBD,KAAK,CAAE,CAAC,CAAE,CAACF,IAAI,CAACI,OAAO,CAAE,QAAS,CAAC,KAAK,CAAC;IAE3C,CAAC;IACDC,SAASA,CAAEH,KAAK,EAAG;MAClB,MAAMI,IAAI,GAAGJ,KAAK,CAAE,CAAC,CAAE;MACvB;MACA;MACA;MACA,MAAMK,KAAK,GAAGV,WAAW,CAAE,YAAY,EAAE;QACxCW,IAAI,EAAEZ,aAAa,CAAEU,IAAK;MAC3B,CAAE,CAAC;MAEH,OAAOC,KAAK;IACb;EACD,CAAC,EACD;IACCP,IAAI,EAAE,WAAW;IACjBS,GAAG,EAAE,OAAO;IACZC,UAAU,EAAE;MACXC,GAAG,EAAE;QACJX,IAAI,EAAE,QAAQ;QACdY,SAAS,EAAEA,CAAE;UACZC,KAAK,EAAE;YAAEF,GAAG;YAAEG,GAAG;YAAEC,GAAG;YAAEC,GAAG;YAAEC,GAAG;YAAEC;UAAI;QACvC,CAAC,KAAM;UACN,OAAOP,GAAG,IAAIG,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG;QAC9C;MACD,CAAC;MACDC,IAAI,EAAE;QACLnB,IAAI,EAAE,QAAQ;QACdY,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEM;UAAK;QAAE,CAAC,KAAM;UACrC,OAAOA,IAAI;QACZ;MACD,CAAC;MACDC,QAAQ,EAAE;QACTpB,IAAI,EAAE,QAAQ;QACdY,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEO;UAAS;QAAE,CAAC,KAAM;UACzC,OAAOA,QAAQ;QAChB;MACD,CAAC;MACDC,OAAO,EAAE;QACRrB,IAAI,EAAE,QAAQ;QACdY,SAAS,EAAEA,CAAE;UAAEC,KAAK,EAAE;YAAEQ;UAAQ;QAAE,CAAC,KAAM;UACxC,OAAOA,OAAO;QACf;MACD;IACD;EACD,CAAC;AAEH,CAAC;AAED,eAAevB,UAAU","ignoreList":[]}
@@ -214,7 +214,6 @@ function ReusableBlockEdit({
214
214
  children: /*#__PURE__*/_jsx(ToolbarButton, {
215
215
  onClick: resetContent,
216
216
  disabled: !content,
217
- __experimentalIsFocusable: true,
218
217
  children: __('Reset')
219
218
  })
220
219
  })
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","useEntityBlockEditor","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","blocksStore","name","patternBlockName","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useLayoutClasses","isOverridableBlock","hasOverridableBlocks","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","innerBlocks","RecursionWarning","blockProps","children","NOOP","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","content","__unstableParentLayout","patternClientId","setAttributes","record","hasResolved","id","isMissing","setBlockEditingMode","__unstableMarkLastChangeAsPersistent","userCanEdit","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","getBlockEditingMode","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","layoutClasses","className","innerBlocksProps","templateLock","value","onInput","onChange","renderAppender","ButtonBlockAppender","handleEditOriginal","postId","postType","resetContent","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport {\n\tuseEntityRecord,\n\tstore as coreStore,\n\tuseEntityBlockEditor,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock, hasOverridableBlocks } =\n\tunlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\nconst NOOP = () => {};\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', 'wp_block', {\n\t\tid: ref,\n\t} );\n\tconst isMissing = hasResolved && ! record;\n\n\tconst { setBlockEditingMode, __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( patternClientId ),\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( blocks ),\n\t\t[ hasPatternOverridesSource, blocks ]\n\t);\n\n\tconst { alignment, layout } = useInferredLayout( blocks, parentLayout );\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\t// Use `blocks` variable until `innerBlocks` is populated, which has the proper clientIds.\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\tvalue: innerBlocks.length > 0 ? innerBlocks : blocks,\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\trenderAppender: blocks?.length ? undefined : blocks.ButtonBlockAppender,\n\t} );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\t// Make sure any previous changes are persisted before resetting.\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\tsetAttributes( { content: undefined } );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","useEntityBlockEditor","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","blocksStore","name","patternBlockName","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useLayoutClasses","isOverridableBlock","hasOverridableBlocks","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","innerBlocks","RecursionWarning","blockProps","children","NOOP","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","content","__unstableParentLayout","patternClientId","setAttributes","record","hasResolved","id","isMissing","setBlockEditingMode","__unstableMarkLastChangeAsPersistent","userCanEdit","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","getBlockEditingMode","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","layoutClasses","className","innerBlocksProps","templateLock","value","onInput","onChange","renderAppender","ButtonBlockAppender","handleEditOriginal","postId","postType","resetContent","onClick","disabled"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport {\n\tuseEntityRecord,\n\tstore as coreStore,\n\tuseEntityBlockEditor,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock, hasOverridableBlocks } =\n\tunlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\nconst NOOP = () => {};\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', 'wp_block', {\n\t\tid: ref,\n\t} );\n\tconst isMissing = hasResolved && ! record;\n\n\tconst { setBlockEditingMode, __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( patternClientId ),\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( blocks ),\n\t\t[ hasPatternOverridesSource, blocks ]\n\t);\n\n\tconst { alignment, layout } = useInferredLayout( blocks, parentLayout );\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\t// Use `blocks` variable until `innerBlocks` is populated, which has the proper clientIds.\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\tvalue: innerBlocks.length > 0 ? innerBlocks : blocks,\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\trenderAppender: blocks?.length ? undefined : blocks.ButtonBlockAppender,\n\t} );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\t// Make sure any previous changes are persisted before resetting.\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\tsetAttributes( { content: undefined } );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,9 +24,13 @@ const metadata = {
24
24
  type: "number"
25
25
  },
26
26
  content: {
27
- type: "object"
27
+ type: "object",
28
+ "default": {}
28
29
  }
29
30
  },
31
+ providesContext: {
32
+ "pattern/overrides": "content"
33
+ },
30
34
  supports: {
31
35
  customClassName: false,
32
36
  html: false,
@@ -1 +1 @@
1
- {"version":3,"names":["symbol","icon","store","coreStore","select","decodeEntities","initBlock","metadata","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","ref","type","content","supports","customClassName","html","inserter","renaming","interactivity","clientNavigation","edit","deprecated","settings","__experimentalLabel","entity","getEditedEntityRecord","init"],"sources":["@wordpress/block-library/src/block/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { symbol as icon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tdeprecated,\n\tedit,\n\ticon,\n\t__experimentalLabel: ( { ref } ) => {\n\t\tif ( ! ref ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst entity = select( coreStore ).getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_block',\n\t\t\tref\n\t\t);\n\t\tif ( ! entity?.title ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn decodeEntities( entity.title );\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAI,QAAQ,kBAAkB;AACjD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SAASC,cAAc,QAAQ,0BAA0B;;AAEzD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,GAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;MAAAD,IAAA;IAAA;EAAA;EAAAE,QAAA;IAAAC,eAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAElB;AAAK,CAAC,GAAGH,QAAQ;AAEzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAMmB,QAAQ,GAAG;EACvBD,UAAU;EACVD,IAAI;EACJ1B,IAAI;EACJ6B,mBAAmB,EAAEA,CAAE;IAAEb;EAAI,CAAC,KAAM;IACnC,IAAK,CAAEA,GAAG,EAAG;MACZ;IACD;IAEA,MAAMc,MAAM,GAAG3B,MAAM,CAAED,SAAU,CAAC,CAAC6B,qBAAqB,CACvD,UAAU,EACV,UAAU,EACVf,GACD,CAAC;IACD,IAAK,CAAEc,MAAM,EAAEpB,KAAK,EAAG;MACtB;IACD;IAEA,OAAON,cAAc,CAAE0B,MAAM,CAACpB,KAAM,CAAC;EACtC;AACD,CAAC;AAED,OAAO,MAAMsB,IAAI,GAAGA,CAAA,KAAM3B,SAAS,CAAE;EAAEI,IAAI;EAAEH,QAAQ;EAAEsB;AAAS,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["symbol","icon","store","coreStore","select","decodeEntities","initBlock","metadata","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","ref","type","content","providesContext","supports","customClassName","html","inserter","renaming","interactivity","clientNavigation","edit","deprecated","settings","__experimentalLabel","entity","getEditedEntityRecord","init"],"sources":["@wordpress/block-library/src/block/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { symbol as icon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tdeprecated,\n\tedit,\n\ticon,\n\t__experimentalLabel: ( { ref } ) => {\n\t\tif ( ! ref ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst entity = select( coreStore ).getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_block',\n\t\t\tref\n\t\t);\n\t\tif ( ! entity?.title ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn decodeEntities( entity.title );\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAI,QAAQ,kBAAkB;AACjD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SAASC,cAAc,QAAQ,0BAA0B;;AAEzD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,GAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;MAAAD,IAAA;MAAA;IAAA;EAAA;EAAAE,eAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,eAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAEnB;AAAK,CAAC,GAAGH,QAAQ;AAEzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAMoB,QAAQ,GAAG;EACvBD,UAAU;EACVD,IAAI;EACJ3B,IAAI;EACJ8B,mBAAmB,EAAEA,CAAE;IAAEd;EAAI,CAAC,KAAM;IACnC,IAAK,CAAEA,GAAG,EAAG;MACZ;IACD;IAEA,MAAMe,MAAM,GAAG5B,MAAM,CAAED,SAAU,CAAC,CAAC8B,qBAAqB,CACvD,UAAU,EACV,UAAU,EACVhB,GACD,CAAC;IACD,IAAK,CAAEe,MAAM,EAAErB,KAAK,EAAG;MACtB;IACD;IAEA,OAAON,cAAc,CAAE2B,MAAM,CAACrB,KAAM,CAAC;EACtC;AACD,CAAC;AAED,OAAO,MAAMuB,IAAI,GAAGA,CAAA,KAAM5B,SAAS,CAAE;EAAEI,IAAI;EAAEH,QAAQ;EAAEuB;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -16,6 +16,7 @@ import { Placeholder, SandBox } from '@wordpress/components';
16
16
  import { RichText, BlockIcon, __experimentalGetElementClassName } from '@wordpress/block-editor';
17
17
  import { Component } from '@wordpress/element';
18
18
  import { createBlock, getDefaultBlockName } from '@wordpress/blocks';
19
+ import { getAuthority } from '@wordpress/url';
19
20
 
20
21
  /**
21
22
  * Internal dependencies
@@ -73,11 +74,10 @@ class EmbedPreview extends Component {
73
74
  interactive
74
75
  } = this.state;
75
76
  const html = 'photo' === type ? getPhotoHtml(preview) : preview.html;
76
- const parsedHost = new URL(url).host.split('.');
77
- const parsedHostBaseUrl = parsedHost.splice(parsedHost.length - 2, parsedHost.length - 1).join('.');
77
+ const embedSourceUrl = getAuthority(url);
78
78
  const iframeTitle = sprintf(
79
79
  // translators: %s: host providing embed content e.g: www.youtube.com
80
- __('Embedded content from %s'), parsedHostBaseUrl);
80
+ __('Embedded content from %s'), embedSourceUrl);
81
81
  const sandboxClassnames = clsx(type, className, 'wp-block-embed__wrapper');
82
82
 
83
83
  // Disabled because the overlay div doesn't actually have a role or functionality
@@ -120,7 +120,7 @@ class EmbedPreview extends Component {
120
120
  }), /*#__PURE__*/_jsx("p", {
121
121
  className: "components-placeholder__error",
122
122
  children: sprintf( /* translators: %s: host providing embed content e.g: www.youtube.com */
123
- __("Embedded content from %s can't be previewed in the editor."), parsedHostBaseUrl)
123
+ __("Embedded content from %s can't be previewed in the editor."), embedSourceUrl)
124
124
  })]
125
125
  }), (!RichText.isEmpty(caption) || isSelected) && /*#__PURE__*/_jsx(RichText, {
126
126
  identifier: "caption",
@@ -1 +1 @@
1
- {"version":3,"names":["getPhotoHtml","clsx","__","sprintf","Placeholder","SandBox","RichText","BlockIcon","__experimentalGetElementClassName","Component","createBlock","getDefaultBlockName","WpEmbedPreview","jsx","_jsx","jsxs","_jsxs","EmbedPreview","constructor","arguments","hideOverlay","bind","state","interactive","getDerivedStateFromProps","nextProps","isSelected","setState","render","preview","previewable","url","type","caption","onCaptionChange","className","icon","label","insertBlocksAfter","props","scripts","html","parsedHost","URL","host","split","parsedHostBaseUrl","splice","length","join","iframeTitle","sandboxClassnames","embedWrapper","children","title","onFocus","onMouseUp","showColors","href","isEmpty","identifier","tagName","placeholder","value","onChange","inlineToolbar","__unstableOnSplitAtEnd"],"sources":["@wordpress/block-library/src/embed/embed-preview.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { getPhotoHtml } from './util';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, SandBox } from '@wordpress/components';\nimport {\n\tRichText,\n\tBlockIcon,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { Component } from '@wordpress/element';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport WpEmbedPreview from './wp-embed-preview';\n\nclass EmbedPreview extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.hideOverlay = this.hideOverlay.bind( this );\n\t\tthis.state = {\n\t\t\tinteractive: false,\n\t\t};\n\t}\n\n\tstatic getDerivedStateFromProps( nextProps, state ) {\n\t\tif ( ! nextProps.isSelected && state.interactive ) {\n\t\t\t// We only want to change this when the block is not selected, because changing it when\n\t\t\t// the block becomes selected makes the overlap disappear too early. Hiding the overlay\n\t\t\t// happens on mouseup when the overlay is clicked.\n\t\t\treturn { interactive: false };\n\t\t}\n\n\t\treturn null;\n\t}\n\n\thideOverlay() {\n\t\t// This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop\n\t\t// changing, because that happens on mouse down, and the overlay immediately disappears,\n\t\t// and the mouse event can end up in the preview content. We can't use onClick on\n\t\t// the overlay to hide it either, because then the editor misses the mouseup event, and\n\t\t// thinks we're multi-selecting blocks.\n\t\tthis.setState( { interactive: true } );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tpreview,\n\t\t\tpreviewable,\n\t\t\turl,\n\t\t\ttype,\n\t\t\tcaption,\n\t\t\tonCaptionChange,\n\t\t\tisSelected,\n\t\t\tclassName,\n\t\t\ticon,\n\t\t\tlabel,\n\t\t\tinsertBlocksAfter,\n\t\t} = this.props;\n\t\tconst { scripts } = preview;\n\t\tconst { interactive } = this.state;\n\n\t\tconst html = 'photo' === type ? getPhotoHtml( preview ) : preview.html;\n\t\tconst parsedHost = new URL( url ).host.split( '.' );\n\t\tconst parsedHostBaseUrl = parsedHost\n\t\t\t.splice( parsedHost.length - 2, parsedHost.length - 1 )\n\t\t\t.join( '.' );\n\t\tconst iframeTitle = sprintf(\n\t\t\t// translators: %s: host providing embed content e.g: www.youtube.com\n\t\t\t__( 'Embedded content from %s' ),\n\t\t\tparsedHostBaseUrl\n\t\t);\n\t\tconst sandboxClassnames = clsx(\n\t\t\ttype,\n\t\t\tclassName,\n\t\t\t'wp-block-embed__wrapper'\n\t\t);\n\n\t\t// Disabled because the overlay div doesn't actually have a role or functionality\n\t\t// as far as the user is concerned. We're just catching the first click so that\n\t\t// the block can be selected without interacting with the embed preview that the overlay covers.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\tconst embedWrapper =\n\t\t\t'wp-embed' === type ? (\n\t\t\t\t<WpEmbedPreview html={ html } />\n\t\t\t) : (\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t<SandBox\n\t\t\t\t\t\thtml={ html }\n\t\t\t\t\t\tscripts={ scripts }\n\t\t\t\t\t\ttitle={ iframeTitle }\n\t\t\t\t\t\ttype={ sandboxClassnames }\n\t\t\t\t\t\tonFocus={ this.hideOverlay }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! interactive && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-library-embed__interactive-overlay\"\n\t\t\t\t\t\t\tonMouseUp={ this.hideOverlay }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ clsx( className, 'wp-block-embed', {\n\t\t\t\t\t'is-type-video': 'video' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ previewable ? (\n\t\t\t\t\tembedWrapper\n\t\t\t\t) : (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t<p className=\"components-placeholder__error\">\n\t\t\t\t\t\t\t<a href={ url }>{ url }</a>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p className=\"components-placeholder__error\">\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: host providing embed content e.g: www.youtube.com */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\"Embedded content from %s can't be previewed in the editor.\"\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tparsedHostBaseUrl\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</Placeholder>\n\t\t\t\t) }\n\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ onCaptionChange }\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\t</figure>\n\t\t);\n\t}\n}\n\nexport default EmbedPreview;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getPhotoHtml","clsx","__","sprintf","Placeholder","SandBox","RichText","BlockIcon","__experimentalGetElementClassName","Component","createBlock","getDefaultBlockName","getAuthority","WpEmbedPreview","jsx","_jsx","jsxs","_jsxs","EmbedPreview","constructor","arguments","hideOverlay","bind","state","interactive","getDerivedStateFromProps","nextProps","isSelected","setState","render","preview","previewable","url","type","caption","onCaptionChange","className","icon","label","insertBlocksAfter","props","scripts","html","embedSourceUrl","iframeTitle","sandboxClassnames","embedWrapper","children","title","onFocus","onMouseUp","showColors","href","isEmpty","identifier","tagName","placeholder","value","onChange","inlineToolbar","__unstableOnSplitAtEnd"],"sources":["@wordpress/block-library/src/embed/embed-preview.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { getPhotoHtml } from './util';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, SandBox } from '@wordpress/components';\nimport {\n\tRichText,\n\tBlockIcon,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { Component } from '@wordpress/element';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { getAuthority } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport WpEmbedPreview from './wp-embed-preview';\n\nclass EmbedPreview extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.hideOverlay = this.hideOverlay.bind( this );\n\t\tthis.state = {\n\t\t\tinteractive: false,\n\t\t};\n\t}\n\n\tstatic getDerivedStateFromProps( nextProps, state ) {\n\t\tif ( ! nextProps.isSelected && state.interactive ) {\n\t\t\t// We only want to change this when the block is not selected, because changing it when\n\t\t\t// the block becomes selected makes the overlap disappear too early. Hiding the overlay\n\t\t\t// happens on mouseup when the overlay is clicked.\n\t\t\treturn { interactive: false };\n\t\t}\n\n\t\treturn null;\n\t}\n\n\thideOverlay() {\n\t\t// This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop\n\t\t// changing, because that happens on mouse down, and the overlay immediately disappears,\n\t\t// and the mouse event can end up in the preview content. We can't use onClick on\n\t\t// the overlay to hide it either, because then the editor misses the mouseup event, and\n\t\t// thinks we're multi-selecting blocks.\n\t\tthis.setState( { interactive: true } );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tpreview,\n\t\t\tpreviewable,\n\t\t\turl,\n\t\t\ttype,\n\t\t\tcaption,\n\t\t\tonCaptionChange,\n\t\t\tisSelected,\n\t\t\tclassName,\n\t\t\ticon,\n\t\t\tlabel,\n\t\t\tinsertBlocksAfter,\n\t\t} = this.props;\n\t\tconst { scripts } = preview;\n\t\tconst { interactive } = this.state;\n\n\t\tconst html = 'photo' === type ? getPhotoHtml( preview ) : preview.html;\n\t\tconst embedSourceUrl = getAuthority( url );\n\t\tconst iframeTitle = sprintf(\n\t\t\t// translators: %s: host providing embed content e.g: www.youtube.com\n\t\t\t__( 'Embedded content from %s' ),\n\t\t\tembedSourceUrl\n\t\t);\n\t\tconst sandboxClassnames = clsx(\n\t\t\ttype,\n\t\t\tclassName,\n\t\t\t'wp-block-embed__wrapper'\n\t\t);\n\n\t\t// Disabled because the overlay div doesn't actually have a role or functionality\n\t\t// as far as the user is concerned. We're just catching the first click so that\n\t\t// the block can be selected without interacting with the embed preview that the overlay covers.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\tconst embedWrapper =\n\t\t\t'wp-embed' === type ? (\n\t\t\t\t<WpEmbedPreview html={ html } />\n\t\t\t) : (\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t<SandBox\n\t\t\t\t\t\thtml={ html }\n\t\t\t\t\t\tscripts={ scripts }\n\t\t\t\t\t\ttitle={ iframeTitle }\n\t\t\t\t\t\ttype={ sandboxClassnames }\n\t\t\t\t\t\tonFocus={ this.hideOverlay }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! interactive && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-library-embed__interactive-overlay\"\n\t\t\t\t\t\t\tonMouseUp={ this.hideOverlay }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ clsx( className, 'wp-block-embed', {\n\t\t\t\t\t'is-type-video': 'video' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ previewable ? (\n\t\t\t\t\tembedWrapper\n\t\t\t\t) : (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t<p className=\"components-placeholder__error\">\n\t\t\t\t\t\t\t<a href={ url }>{ url }</a>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p className=\"components-placeholder__error\">\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: host providing embed content e.g: www.youtube.com */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\"Embedded content from %s can't be previewed in the editor.\"\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tembedSourceUrl\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</Placeholder>\n\t\t\t\t) }\n\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ onCaptionChange }\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\t</figure>\n\t\t);\n\t}\n}\n\nexport default EmbedPreview;\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ import { isBlobURL } from '@wordpress/blob';
10
10
  import { __unstableGetAnimateClassName as getAnimateClassName, ResizableBox, ToolbarButton } from '@wordpress/components';
11
11
  import { useSelect, useDispatch } from '@wordpress/data';
12
12
  import { BlockControls, BlockIcon, MediaPlaceholder, MediaReplaceFlow, RichText, useBlockProps, store as blockEditorStore, __experimentalGetElementClassName } from '@wordpress/block-editor';
13
- import { useEffect } from '@wordpress/element';
13
+ import { useEffect, useState } from '@wordpress/element';
14
14
  import { useCopyToClipboard } from '@wordpress/compose';
15
15
  import { __, _x } from '@wordpress/i18n';
16
16
  import { file as icon } from '@wordpress/icons';
@@ -66,6 +66,7 @@ function FileEdit({
66
66
  displayPreview,
67
67
  previewHeight
68
68
  } = attributes;
69
+ const [temporaryURL, setTemporaryURL] = useState(attributes.blob);
69
70
  const {
70
71
  media
71
72
  } = useSelect(select => ({
@@ -79,7 +80,7 @@ function FileEdit({
79
80
  __unstableMarkNextChangeAsNotPersistent
80
81
  } = useDispatch(blockEditorStore);
81
82
  useUploadMediaFromBlobURL({
82
- url: href,
83
+ url: temporaryURL,
83
84
  onChange: onSelectFile,
84
85
  onError: onUploadError
85
86
  });
@@ -98,6 +99,11 @@ function FileEdit({
98
99
  }, []);
99
100
  function onSelectFile(newMedia) {
100
101
  if (!newMedia || !newMedia.url) {
102
+ setTemporaryURL();
103
+ return;
104
+ }
105
+ if (isBlobURL(newMedia.url)) {
106
+ setTemporaryURL(newMedia.url);
101
107
  return;
102
108
  }
103
109
  const isPdf = newMedia.url.endsWith('.pdf');
@@ -108,8 +114,10 @@ function FileEdit({
108
114
  id: newMedia.id,
109
115
  displayPreview: isPdf ? true : undefined,
110
116
  previewHeight: isPdf ? 600 : undefined,
111
- fileId: `wp-block-file--media-${clientId}`
117
+ fileId: `wp-block-file--media-${clientId}`,
118
+ blob: undefined
112
119
  });
120
+ setTemporaryURL();
113
121
  }
114
122
  function onUploadError(message) {
115
123
  setAttributes({
@@ -155,14 +163,14 @@ function FileEdit({
155
163
  }
156
164
  const attachmentPage = media && media.link;
157
165
  const blockProps = useBlockProps({
158
- className: clsx(isBlobURL(href) && getAnimateClassName({
166
+ className: clsx(!!temporaryURL && getAnimateClassName({
159
167
  type: 'loading'
160
168
  }), {
161
- 'is-transient': isBlobURL(href)
169
+ 'is-transient': !!temporaryURL
162
170
  })
163
171
  });
164
172
  const displayPreviewInEditor = browserSupportsPdfs() && displayPreview;
165
- if (!href) {
173
+ if (!href && !temporaryURL) {
166
174
  return /*#__PURE__*/_jsx("div", {
167
175
  ...blockProps,
168
176
  children: /*#__PURE__*/_jsx(MediaPlaceholder, {
@@ -182,7 +190,7 @@ function FileEdit({
182
190
  return /*#__PURE__*/_jsxs(_Fragment, {
183
191
  children: [/*#__PURE__*/_jsx(FileBlockInspector, {
184
192
  hrefs: {
185
- href,
193
+ href: href || temporaryURL,
186
194
  textLinkHref,
187
195
  attachmentPage
188
196
  },