@wordpress/block-library 9.1.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 (387) hide show
  1. package/CHANGELOG.md +21 -17
  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/button/index.js +1 -0
  13. package/build/button/index.js.map +1 -1
  14. package/build/embed/embed-preview.js +4 -4
  15. package/build/embed/embed-preview.js.map +1 -1
  16. package/build/file/edit.js +14 -6
  17. package/build/file/edit.js.map +1 -1
  18. package/build/file/index.js +4 -0
  19. package/build/file/index.js.map +1 -1
  20. package/build/file/transforms.js +2 -3
  21. package/build/file/transforms.js.map +1 -1
  22. package/build/gallery/deprecated.js +6 -54
  23. package/build/gallery/deprecated.js.map +1 -1
  24. package/build/gallery/edit.js +9 -8
  25. package/build/gallery/edit.js.map +1 -1
  26. package/build/gallery/index.js +2 -2
  27. package/build/gallery/index.js.map +1 -1
  28. package/build/gallery/save.js +0 -11
  29. package/build/gallery/save.js.map +1 -1
  30. package/build/gallery/shared.js +0 -27
  31. package/build/gallery/shared.js.map +1 -1
  32. package/build/gallery/transforms.js +29 -80
  33. package/build/gallery/transforms.js.map +1 -1
  34. package/build/group/index.js +1 -0
  35. package/build/group/index.js.map +1 -1
  36. package/build/group/placeholder.js +5 -0
  37. package/build/group/placeholder.js.map +1 -1
  38. package/build/image/edit.js +13 -21
  39. package/build/image/edit.js.map +1 -1
  40. package/build/image/image.js +33 -19
  41. package/build/image/image.js.map +1 -1
  42. package/build/image/index.js +4 -0
  43. package/build/image/index.js.map +1 -1
  44. package/build/image/transforms.js +1 -1
  45. package/build/image/transforms.js.map +1 -1
  46. package/build/list-item/edit.js +1 -1
  47. package/build/list-item/edit.js.map +1 -1
  48. package/build/list-item/hooks/use-merge.js +8 -1
  49. package/build/list-item/hooks/use-merge.js.map +1 -1
  50. package/build/list-item/index.js +11 -1
  51. package/build/list-item/index.js.map +1 -1
  52. package/build/lock-unlock.js +1 -1
  53. package/build/lock-unlock.js.map +1 -1
  54. package/build/loginout/index.js +3 -0
  55. package/build/loginout/index.js.map +1 -1
  56. package/build/media-text/edit.js +3 -2
  57. package/build/media-text/edit.js.map +1 -1
  58. package/build/navigation-submenu/edit.js +1 -1
  59. package/build/navigation-submenu/edit.js.map +1 -1
  60. package/build/page-list/convert-to-links-modal.js +1 -1
  61. package/build/page-list/convert-to-links-modal.js.map +1 -1
  62. package/build/page-list/edit.js +1 -1
  63. package/build/page-list/edit.js.map +1 -1
  64. package/build/post-content/index.js +3 -0
  65. package/build/post-content/index.js.map +1 -1
  66. package/build/post-date/edit.js +3 -1
  67. package/build/post-date/edit.js.map +1 -1
  68. package/build/post-excerpt/index.js +3 -0
  69. package/build/post-excerpt/index.js.map +1 -1
  70. package/build/post-title/index.js +3 -0
  71. package/build/post-title/index.js.map +1 -1
  72. package/build/query/edit/inspector-controls/index.js +3 -2
  73. package/build/query/edit/inspector-controls/index.js.map +1 -1
  74. package/build/query/edit/query-toolbar.js +54 -61
  75. package/build/query/edit/query-toolbar.js.map +1 -1
  76. package/build/query/index.js +34 -0
  77. package/build/query/index.js.map +1 -1
  78. package/build/quote/edit.js +1 -0
  79. package/build/quote/edit.js.map +1 -1
  80. package/build/site-tagline/index.js +1 -0
  81. package/build/site-tagline/index.js.map +1 -1
  82. package/build/site-title/index.js +1 -0
  83. package/build/site-title/index.js.map +1 -1
  84. package/build/social-link/edit.js +9 -3
  85. package/build/social-link/edit.js.map +1 -1
  86. package/build/table/edit.js +8 -17
  87. package/build/table/edit.js.map +1 -1
  88. package/build/table-of-contents/index.js +1 -1
  89. package/build/template-part/edit/title-modal.js +1 -1
  90. package/build/template-part/edit/title-modal.js.map +1 -1
  91. package/build/utils/caption.js +2 -1
  92. package/build/utils/caption.js.map +1 -1
  93. package/build/utils/hooks.js +12 -0
  94. package/build/utils/hooks.js.map +1 -1
  95. package/build/verse/index.js +1 -0
  96. package/build/verse/index.js.map +1 -1
  97. package/build/video/deprecated.js +4 -0
  98. package/build/video/deprecated.js.map +1 -1
  99. package/build/video/edit.js +17 -7
  100. package/build/video/edit.js.map +1 -1
  101. package/build/video/index.js +4 -0
  102. package/build/video/index.js.map +1 -1
  103. package/build/video/transforms.js +1 -1
  104. package/build/video/transforms.js.map +1 -1
  105. package/build-module/audio/edit.js +20 -8
  106. package/build-module/audio/edit.js.map +1 -1
  107. package/build-module/audio/index.js +4 -0
  108. package/build-module/audio/index.js.map +1 -1
  109. package/build-module/audio/transforms.js +1 -1
  110. package/build-module/audio/transforms.js.map +1 -1
  111. package/build-module/block/edit.js +0 -1
  112. package/build-module/block/edit.js.map +1 -1
  113. package/build-module/block/index.js +5 -1
  114. package/build-module/block/index.js.map +1 -1
  115. package/build-module/button/index.js +1 -0
  116. package/build-module/button/index.js.map +1 -1
  117. package/build-module/embed/embed-preview.js +4 -4
  118. package/build-module/embed/embed-preview.js.map +1 -1
  119. package/build-module/file/edit.js +15 -7
  120. package/build-module/file/edit.js.map +1 -1
  121. package/build-module/file/index.js +4 -0
  122. package/build-module/file/index.js.map +1 -1
  123. package/build-module/file/transforms.js +2 -3
  124. package/build-module/file/transforms.js.map +1 -1
  125. package/build-module/gallery/deprecated.js +6 -54
  126. package/build-module/gallery/deprecated.js.map +1 -1
  127. package/build-module/gallery/edit.js +10 -9
  128. package/build-module/gallery/edit.js.map +1 -1
  129. package/build-module/gallery/index.js +1 -1
  130. package/build-module/gallery/index.js.map +1 -1
  131. package/build-module/gallery/save.js +0 -11
  132. package/build-module/gallery/save.js.map +1 -1
  133. package/build-module/gallery/shared.js +0 -25
  134. package/build-module/gallery/shared.js.map +1 -1
  135. package/build-module/gallery/transforms.js +29 -80
  136. package/build-module/gallery/transforms.js.map +1 -1
  137. package/build-module/group/index.js +1 -0
  138. package/build-module/group/index.js.map +1 -1
  139. package/build-module/group/placeholder.js +5 -0
  140. package/build-module/group/placeholder.js.map +1 -1
  141. package/build-module/image/edit.js +12 -20
  142. package/build-module/image/edit.js.map +1 -1
  143. package/build-module/image/image.js +28 -14
  144. package/build-module/image/image.js.map +1 -1
  145. package/build-module/image/index.js +4 -0
  146. package/build-module/image/index.js.map +1 -1
  147. package/build-module/image/transforms.js +1 -1
  148. package/build-module/image/transforms.js.map +1 -1
  149. package/build-module/list-item/edit.js +1 -1
  150. package/build-module/list-item/edit.js.map +1 -1
  151. package/build-module/list-item/hooks/use-merge.js +8 -1
  152. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  153. package/build-module/list-item/index.js +11 -1
  154. package/build-module/list-item/index.js.map +1 -1
  155. package/build-module/lock-unlock.js +1 -1
  156. package/build-module/lock-unlock.js.map +1 -1
  157. package/build-module/loginout/index.js +3 -0
  158. package/build-module/loginout/index.js.map +1 -1
  159. package/build-module/media-text/edit.js +3 -2
  160. package/build-module/media-text/edit.js.map +1 -1
  161. package/build-module/navigation-submenu/edit.js +1 -1
  162. package/build-module/navigation-submenu/edit.js.map +1 -1
  163. package/build-module/page-list/convert-to-links-modal.js +1 -1
  164. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  165. package/build-module/page-list/edit.js +1 -1
  166. package/build-module/page-list/edit.js.map +1 -1
  167. package/build-module/post-content/index.js +3 -0
  168. package/build-module/post-content/index.js.map +1 -1
  169. package/build-module/post-date/edit.js +4 -2
  170. package/build-module/post-date/edit.js.map +1 -1
  171. package/build-module/post-excerpt/index.js +3 -0
  172. package/build-module/post-excerpt/index.js.map +1 -1
  173. package/build-module/post-title/index.js +3 -0
  174. package/build-module/post-title/index.js.map +1 -1
  175. package/build-module/query/edit/inspector-controls/index.js +3 -2
  176. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  177. package/build-module/query/edit/query-toolbar.js +55 -62
  178. package/build-module/query/edit/query-toolbar.js.map +1 -1
  179. package/build-module/query/index.js +34 -0
  180. package/build-module/query/index.js.map +1 -1
  181. package/build-module/quote/edit.js +1 -0
  182. package/build-module/quote/edit.js.map +1 -1
  183. package/build-module/site-tagline/index.js +1 -0
  184. package/build-module/site-tagline/index.js.map +1 -1
  185. package/build-module/site-title/index.js +1 -0
  186. package/build-module/site-title/index.js.map +1 -1
  187. package/build-module/social-link/edit.js +9 -3
  188. package/build-module/social-link/edit.js.map +1 -1
  189. package/build-module/table/edit.js +9 -18
  190. package/build-module/table/edit.js.map +1 -1
  191. package/build-module/table-of-contents/index.js +1 -1
  192. package/build-module/template-part/edit/title-modal.js +1 -1
  193. package/build-module/template-part/edit/title-modal.js.map +1 -1
  194. package/build-module/utils/caption.js +2 -1
  195. package/build-module/utils/caption.js.map +1 -1
  196. package/build-module/utils/hooks.js +11 -0
  197. package/build-module/utils/hooks.js.map +1 -1
  198. package/build-module/verse/index.js +1 -0
  199. package/build-module/verse/index.js.map +1 -1
  200. package/build-module/video/deprecated.js +4 -0
  201. package/build-module/video/deprecated.js.map +1 -1
  202. package/build-module/video/edit.js +18 -8
  203. package/build-module/video/edit.js.map +1 -1
  204. package/build-module/video/index.js +4 -0
  205. package/build-module/video/index.js.map +1 -1
  206. package/build-module/video/transforms.js +1 -1
  207. package/build-module/video/transforms.js.map +1 -1
  208. package/build-style/audio/style-rtl.css +1 -1
  209. package/build-style/audio/style.css +1 -1
  210. package/build-style/audio/theme-rtl.css +2 -2
  211. package/build-style/audio/theme.css +2 -2
  212. package/build-style/common-rtl.css +1 -3
  213. package/build-style/common.css +1 -3
  214. package/build-style/editor-rtl.css +3 -12
  215. package/build-style/editor.css +3 -12
  216. package/build-style/embed/style-rtl.css +1 -1
  217. package/build-style/embed/style.css +1 -1
  218. package/build-style/embed/theme-rtl.css +2 -2
  219. package/build-style/embed/theme.css +2 -2
  220. package/build-style/image/editor-rtl.css +0 -12
  221. package/build-style/image/editor.css +0 -12
  222. package/build-style/image/style-rtl.css +7 -1
  223. package/build-style/image/style.css +7 -1
  224. package/build-style/media-text/style-rtl.css +4 -0
  225. package/build-style/media-text/style.css +4 -0
  226. package/build-style/navigation/style-rtl.css +1 -0
  227. package/build-style/navigation/style.css +1 -0
  228. package/build-style/post-comments-form/style-rtl.css +11 -10
  229. package/build-style/post-comments-form/style.css +11 -10
  230. package/build-style/query/editor-rtl.css +3 -0
  231. package/build-style/query/editor.css +3 -0
  232. package/build-style/reset-rtl.css +1 -5
  233. package/build-style/reset.css +1 -5
  234. package/build-style/search/style-rtl.css +1 -2
  235. package/build-style/search/style.css +1 -2
  236. package/build-style/social-links/style-rtl.css +91 -91
  237. package/build-style/social-links/style.css +91 -91
  238. package/build-style/style-rtl.css +119 -110
  239. package/build-style/style.css +119 -110
  240. package/build-style/table/theme-rtl.css +2 -2
  241. package/build-style/table/theme.css +2 -2
  242. package/build-style/theme-rtl.css +8 -8
  243. package/build-style/theme.css +8 -8
  244. package/build-style/video/style-rtl.css +1 -1
  245. package/build-style/video/style.css +1 -1
  246. package/build-style/video/theme-rtl.css +2 -2
  247. package/build-style/video/theme.css +2 -2
  248. package/package.json +35 -35
  249. package/src/audio/block.json +4 -0
  250. package/src/audio/edit.js +19 -7
  251. package/src/audio/style.scss +1 -1
  252. package/src/audio/theme.scss +1 -1
  253. package/src/audio/transforms.js +1 -1
  254. package/src/block/block.json +5 -1
  255. package/src/block/edit.js +0 -1
  256. package/src/button/block.json +1 -0
  257. package/src/button/index.php +14 -1
  258. package/src/embed/embed-preview.js +4 -6
  259. package/src/embed/style.scss +1 -1
  260. package/src/embed/theme.scss +1 -1
  261. package/src/file/block.json +4 -0
  262. package/src/file/edit.js +19 -6
  263. package/src/file/transforms.js +1 -2
  264. package/src/gallery/deprecated.js +6 -55
  265. package/src/gallery/edit.js +13 -10
  266. package/src/gallery/gallery-styles.native.scss +0 -2
  267. package/src/gallery/index.js +1 -1
  268. package/src/gallery/save.js +0 -10
  269. package/src/gallery/shared.js +0 -28
  270. package/src/gallery/transforms.js +56 -99
  271. package/src/group/block.json +1 -0
  272. package/src/group/placeholder.js +7 -0
  273. package/src/image/block.json +4 -0
  274. package/src/image/edit.js +10 -19
  275. package/src/image/editor.scss +0 -13
  276. package/src/image/image.js +45 -16
  277. package/src/image/index.php +26 -5
  278. package/src/image/style.scss +11 -1
  279. package/src/image/transforms.js +1 -1
  280. package/src/list-item/block.json +11 -1
  281. package/src/list-item/edit.js +1 -1
  282. package/src/list-item/hooks/use-merge.js +19 -5
  283. package/src/lock-unlock.js +1 -1
  284. package/src/loginout/block.json +3 -0
  285. package/src/media-text/edit.js +3 -2
  286. package/src/media-text/index.php +68 -18
  287. package/src/media-text/style.scss +4 -0
  288. package/src/navigation/index.php +5 -3
  289. package/src/navigation/style.scss +1 -0
  290. package/src/navigation-submenu/edit.js +1 -1
  291. package/src/page-list/convert-to-links-modal.js +1 -1
  292. package/src/page-list/edit.js +1 -1
  293. package/src/paragraph/test/__snapshots__/edit.native.js.snap +30 -0
  294. package/src/paragraph/test/edit.native.js +99 -0
  295. package/src/post-comments-form/style.scss +15 -12
  296. package/src/post-content/block.json +3 -0
  297. package/src/post-date/edit.js +5 -1
  298. package/src/post-date/index.php +9 -3
  299. package/src/post-excerpt/block.json +3 -0
  300. package/src/post-title/block.json +3 -0
  301. package/src/query/edit/inspector-controls/index.js +3 -2
  302. package/src/query/edit/query-toolbar.js +60 -72
  303. package/src/query/editor.scss +4 -0
  304. package/src/query/index.js +40 -0
  305. package/src/quote/edit.js +1 -0
  306. package/src/reset.scss +11 -12
  307. package/src/site-tagline/block.json +1 -0
  308. package/src/site-title/block.json +1 -0
  309. package/src/social-link/edit.js +9 -3
  310. package/src/social-links/style.scss +2 -2
  311. package/src/table/edit.js +11 -24
  312. package/src/table/theme.scss +1 -1
  313. package/src/table-of-contents/block.json +1 -1
  314. package/src/template-part/edit/title-modal.js +1 -1
  315. package/src/template-part/index.php +1 -1
  316. package/src/utils/caption.js +5 -1
  317. package/src/utils/hooks.js +14 -1
  318. package/src/verse/block.json +1 -0
  319. package/src/video/block.json +4 -0
  320. package/src/video/edit.js +23 -8
  321. package/src/video/style.scss +1 -1
  322. package/src/video/theme.scss +1 -1
  323. package/src/video/transforms.js +1 -1
  324. package/tsconfig.tsbuildinfo +1 -1
  325. package/build/gallery/edit-wrapper.js +0 -37
  326. package/build/gallery/edit-wrapper.js.map +0 -1
  327. package/build/gallery/v1/constants.js +0 -10
  328. package/build/gallery/v1/constants.js.map +0 -1
  329. package/build/gallery/v1/edit.js +0 -399
  330. package/build/gallery/v1/edit.js.map +0 -1
  331. package/build/gallery/v1/gallery-button.native.js +0 -55
  332. package/build/gallery/v1/gallery-button.native.js.map +0 -1
  333. package/build/gallery/v1/gallery-image.js +0 -285
  334. package/build/gallery/v1/gallery-image.js.map +0 -1
  335. package/build/gallery/v1/gallery-image.native.js +0 -297
  336. package/build/gallery/v1/gallery-image.native.js.map +0 -1
  337. package/build/gallery/v1/gallery.js +0 -112
  338. package/build/gallery/v1/gallery.js.map +0 -1
  339. package/build/gallery/v1/gallery.native.js +0 -139
  340. package/build/gallery/v1/gallery.native.js.map +0 -1
  341. package/build/gallery/v1/save.js +0 -81
  342. package/build/gallery/v1/save.js.map +0 -1
  343. package/build/gallery/v1/shared.js +0 -17
  344. package/build/gallery/v1/shared.js.map +0 -1
  345. package/build/gallery/v1/tiles.native.js +0 -83
  346. package/build/gallery/v1/tiles.native.js.map +0 -1
  347. package/build/utils/constants.js +0 -15
  348. package/build/utils/constants.js.map +0 -1
  349. package/build-module/gallery/edit-wrapper.js +0 -31
  350. package/build-module/gallery/edit-wrapper.js.map +0 -1
  351. package/build-module/gallery/v1/constants.js +0 -4
  352. package/build-module/gallery/v1/constants.js.map +0 -1
  353. package/build-module/gallery/v1/edit.js +0 -393
  354. package/build-module/gallery/v1/edit.js.map +0 -1
  355. package/build-module/gallery/v1/gallery-button.native.js +0 -46
  356. package/build-module/gallery/v1/gallery-button.native.js.map +0 -1
  357. package/build-module/gallery/v1/gallery-image.js +0 -279
  358. package/build-module/gallery/v1/gallery-image.js.map +0 -1
  359. package/build-module/gallery/v1/gallery-image.native.js +0 -291
  360. package/build-module/gallery/v1/gallery-image.native.js.map +0 -1
  361. package/build-module/gallery/v1/gallery.js +0 -104
  362. package/build-module/gallery/v1/gallery.js.map +0 -1
  363. package/build-module/gallery/v1/gallery.native.js +0 -131
  364. package/build-module/gallery/v1/gallery.native.js.map +0 -1
  365. package/build-module/gallery/v1/save.js +0 -74
  366. package/build-module/gallery/v1/save.js.map +0 -1
  367. package/build-module/gallery/v1/shared.js +0 -10
  368. package/build-module/gallery/v1/shared.js.map +0 -1
  369. package/build-module/gallery/v1/tiles.native.js +0 -75
  370. package/build-module/gallery/v1/tiles.native.js.map +0 -1
  371. package/build-module/utils/constants.js +0 -9
  372. package/build-module/utils/constants.js.map +0 -1
  373. package/src/gallery/edit-wrapper.js +0 -27
  374. package/src/gallery/v1/constants.js +0 -3
  375. package/src/gallery/v1/edit.js +0 -450
  376. package/src/gallery/v1/gallery-button.native.js +0 -47
  377. package/src/gallery/v1/gallery-image-style.native.scss +0 -109
  378. package/src/gallery/v1/gallery-image.js +0 -293
  379. package/src/gallery/v1/gallery-image.native.js +0 -348
  380. package/src/gallery/v1/gallery-styles.native.scss +0 -8
  381. package/src/gallery/v1/gallery.js +0 -125
  382. package/src/gallery/v1/gallery.native.js +0 -162
  383. package/src/gallery/v1/save.js +0 -98
  384. package/src/gallery/v1/shared.js +0 -19
  385. package/src/gallery/v1/tiles-styles.native.scss +0 -11
  386. package/src/gallery/v1/tiles.native.js +0 -79
  387. package/src/utils/constants.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","defaultColumnsNumber","imageCount","Math","min","pickRelevantMediaFiles","image","sizeSlug","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","fullUrl","full","getGalleryBlockV2Enabled","window","wp","galleryBlockV2Enabled","isGalleryV2Enabled","isNative"],"sources":["@wordpress/block-library/src/gallery/shared.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Platform } from '@wordpress/element';\n\nexport function defaultColumnsNumber( imageCount ) {\n\treturn imageCount ? Math.min( 3, imageCount ) : 3;\n}\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ sizeSlug ]?.url ||\n\t\timage?.media_details?.sizes?.[ sizeSlug ]?.source_url ||\n\t\timage?.url ||\n\t\timage?.source_url;\n\tconst fullUrl =\n\t\timage?.sizes?.full?.url ||\n\t\timage?.media_details?.sizes?.full?.source_url;\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n\nfunction getGalleryBlockV2Enabled() {\n\t// We want to fail early here, at least during beta testing phase, to ensure\n\t// there aren't instances where undefined values cause false negatives.\n\tif ( ! window.wp || typeof window.wp.galleryBlockV2Enabled !== 'boolean' ) {\n\t\tthrow 'window.wp.galleryBlockV2Enabled is not defined';\n\t}\n\treturn window.wp.galleryBlockV2Enabled;\n}\n\n/**\n * The new gallery block format is not compatible with the use_BalanceTags option\n * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The\n * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method\n * can be removed when minimum supported WP version >=5.9.\n */\nexport function isGalleryV2Enabled() {\n\tif ( Platform.isNative ) {\n\t\treturn getGalleryBlockV2Enabled();\n\t}\n\n\treturn true;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,oBAAoB;AAE7C,OAAO,SAASC,oBAAoBA,CAAEC,UAAU,EAAG;EAClD,OAAOA,UAAU,GAAGC,IAAI,CAACC,GAAG,CAAE,CAAC,EAAEF,UAAW,CAAC,GAAG,CAAC;AAClD;AAEA,OAAO,MAAMG,sBAAsB,GAAGA,CAAEC,KAAK,EAAEC,QAAQ,GAAG,OAAO,KAAM;EACtE,MAAMC,UAAU,GAAGC,MAAM,CAACC,WAAW,CACpCD,MAAM,CAACE,OAAO,CAAEL,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAE,CAAC,CAACM,MAAM,CAAE,CAAE,CAAEC,GAAG,CAAE,KAC9C,CAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAE,CAACC,QAAQ,CAAED,GAAI,CACvC,CACD,CAAC;EAEDL,UAAU,CAACO,GAAG,GACbT,KAAK,EAAEU,KAAK,GAAIT,QAAQ,CAAE,EAAEQ,GAAG,IAC/BT,KAAK,EAAEW,aAAa,EAAED,KAAK,GAAIT,QAAQ,CAAE,EAAEW,UAAU,IACrDZ,KAAK,EAAES,GAAG,IACVT,KAAK,EAAEY,UAAU;EAClB,MAAMC,OAAO,GACZb,KAAK,EAAEU,KAAK,EAAEI,IAAI,EAAEL,GAAG,IACvBT,KAAK,EAAEW,aAAa,EAAED,KAAK,EAAEI,IAAI,EAAEF,UAAU;EAC9C,IAAKC,OAAO,EAAG;IACdX,UAAU,CAACW,OAAO,GAAGA,OAAO;EAC7B;EACA,OAAOX,UAAU;AAClB,CAAC;AAED,SAASa,wBAAwBA,CAAA,EAAG;EACnC;EACA;EACA,IAAK,CAAEC,MAAM,CAACC,EAAE,IAAI,OAAOD,MAAM,CAACC,EAAE,CAACC,qBAAqB,KAAK,SAAS,EAAG;IAC1E,MAAM,gDAAgD;EACvD;EACA,OAAOF,MAAM,CAACC,EAAE,CAACC,qBAAqB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACpC,IAAKzB,QAAQ,CAAC0B,QAAQ,EAAG;IACxB,OAAOL,wBAAwB,CAAC,CAAC;EAClC;EAEA,OAAO,IAAI;AACZ","ignoreList":[]}
1
+ {"version":3,"names":["defaultColumnsNumber","imageCount","Math","min","pickRelevantMediaFiles","image","sizeSlug","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","fullUrl","full"],"sources":["@wordpress/block-library/src/gallery/shared.js"],"sourcesContent":["export function defaultColumnsNumber( imageCount ) {\n\treturn imageCount ? Math.min( 3, imageCount ) : 3;\n}\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ sizeSlug ]?.url ||\n\t\timage?.media_details?.sizes?.[ sizeSlug ]?.source_url ||\n\t\timage?.url ||\n\t\timage?.source_url;\n\tconst fullUrl =\n\t\timage?.sizes?.full?.url ||\n\t\timage?.media_details?.sizes?.full?.source_url;\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n"],"mappings":"AAAA,OAAO,SAASA,oBAAoBA,CAAEC,UAAU,EAAG;EAClD,OAAOA,UAAU,GAAGC,IAAI,CAACC,GAAG,CAAE,CAAC,EAAEF,UAAW,CAAC,GAAG,CAAC;AAClD;AAEA,OAAO,MAAMG,sBAAsB,GAAGA,CAAEC,KAAK,EAAEC,QAAQ,GAAG,OAAO,KAAM;EACtE,MAAMC,UAAU,GAAGC,MAAM,CAACC,WAAW,CACpCD,MAAM,CAACE,OAAO,CAAEL,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAE,CAAC,CAACM,MAAM,CAAE,CAAE,CAAEC,GAAG,CAAE,KAC9C,CAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAE,CAACC,QAAQ,CAAED,GAAI,CACvC,CACD,CAAC;EAEDL,UAAU,CAACO,GAAG,GACbT,KAAK,EAAEU,KAAK,GAAIT,QAAQ,CAAE,EAAEQ,GAAG,IAC/BT,KAAK,EAAEW,aAAa,EAAED,KAAK,GAAIT,QAAQ,CAAE,EAAEW,UAAU,IACrDZ,KAAK,EAAES,GAAG,IACVT,KAAK,EAAEY,UAAU;EAClB,MAAMC,OAAO,GACZb,KAAK,EAAEU,KAAK,EAAEI,IAAI,EAAEL,GAAG,IACvBT,KAAK,EAAEW,aAAa,EAAED,KAAK,EAAEI,IAAI,EAAEF,UAAU;EAC9C,IAAKC,OAAO,EAAG;IACdX,UAAU,CAACW,OAAO,GAAGA,OAAO;EAC7B;EACA,OAAOX,UAAU;AAClB,CAAC","ignoreList":[]}
@@ -9,7 +9,6 @@ import { addFilter } from '@wordpress/hooks';
9
9
  * Internal dependencies
10
10
  */
11
11
  import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_NONE, LINK_DESTINATION_MEDIA } from './constants';
12
- import { pickRelevantMediaFiles, isGalleryV2Enabled } from './shared';
13
12
  const parseShortcodeIds = ids => {
14
13
  if (!ids) {
15
14
  return [];
@@ -32,7 +31,7 @@ const parseShortcodeIds = ids => {
32
31
  * @return {Block} The transformed block.
33
32
  */
34
33
  function updateThirdPartyTransformToGallery(block) {
35
- if (isGalleryV2Enabled() && block.name === 'core/gallery' && block.attributes?.images.length > 0) {
34
+ if (block.name === 'core/gallery' && block.attributes?.images.length > 0) {
36
35
  const innerBlocks = block.attributes.images.map(({
37
36
  url,
38
37
  id,
@@ -110,36 +109,16 @@ const transforms = {
110
109
  const validImages = attributes.filter(({
111
110
  url
112
111
  }) => url);
113
- if (isGalleryV2Enabled()) {
114
- const innerBlocks = validImages.map(image => {
115
- // Gallery images can't currently be resized so make sure height and width are undefined.
116
- image.width = undefined;
117
- image.height = undefined;
118
- return createBlock('core/image', image);
119
- });
120
- return createBlock('core/gallery', {
121
- align,
122
- sizeSlug
123
- }, innerBlocks);
124
- }
112
+ const innerBlocks = validImages.map(image => {
113
+ // Gallery images can't currently be resized so make sure height and width are undefined.
114
+ image.width = undefined;
115
+ image.height = undefined;
116
+ return createBlock('core/image', image);
117
+ });
125
118
  return createBlock('core/gallery', {
126
- images: validImages.map(({
127
- id,
128
- url,
129
- alt,
130
- caption
131
- }) => ({
132
- id: id.toString(),
133
- url,
134
- alt,
135
- caption
136
- })),
137
- ids: validImages.map(({
138
- id
139
- }) => parseInt(id, 10)),
140
119
  align,
141
120
  sizeSlug
142
- });
121
+ }, innerBlocks);
143
122
  }
144
123
  }, {
145
124
  type: 'shortcode',
@@ -185,49 +164,21 @@ const transforms = {
185
164
  return files.length !== 1 && files.every(file => file.type.indexOf('image/') === 0);
186
165
  },
187
166
  transform(files) {
188
- if (isGalleryV2Enabled()) {
189
- const innerBlocks = files.map(file => createBlock('core/image', {
190
- url: createBlobURL(file)
191
- }));
192
- return createBlock('core/gallery', {}, innerBlocks);
193
- }
194
- const block = createBlock('core/gallery', {
195
- images: files.map(file => pickRelevantMediaFiles({
196
- url: createBlobURL(file)
197
- }))
198
- });
199
- return block;
167
+ const innerBlocks = files.map(file => createBlock('core/image', {
168
+ blob: createBlobURL(file)
169
+ }));
170
+ return createBlock('core/gallery', {}, innerBlocks);
200
171
  }
201
172
  }],
202
173
  to: [{
203
174
  type: 'block',
204
175
  blocks: ['core/image'],
205
176
  transform: ({
206
- align,
207
- images,
208
- ids,
209
- sizeSlug
177
+ align
210
178
  }, innerBlocks) => {
211
- if (isGalleryV2Enabled()) {
212
- if (innerBlocks.length > 0) {
213
- return innerBlocks.map(({
214
- attributes: {
215
- url,
216
- alt,
217
- caption,
218
- title,
219
- href,
220
- rel,
221
- linkClass,
222
- id,
223
- sizeSlug: imageSizeSlug,
224
- linkDestination,
225
- linkTarget,
226
- anchor,
227
- className
228
- }
229
- }) => createBlock('core/image', {
230
- align,
179
+ if (innerBlocks.length > 0) {
180
+ return innerBlocks.map(({
181
+ attributes: {
231
182
  url,
232
183
  alt,
233
184
  caption,
@@ -241,24 +192,22 @@ const transforms = {
241
192
  linkTarget,
242
193
  anchor,
243
194
  className
244
- }));
245
- }
246
- return createBlock('core/image', {
247
- align
248
- });
249
- }
250
- if (images.length > 0) {
251
- return images.map(({
252
- url,
253
- alt,
254
- caption
255
- }, index) => createBlock('core/image', {
256
- id: ids[index],
195
+ }
196
+ }) => createBlock('core/image', {
197
+ align,
257
198
  url,
258
199
  alt,
259
200
  caption,
260
- align,
261
- sizeSlug
201
+ title,
202
+ href,
203
+ rel,
204
+ linkClass,
205
+ id,
206
+ sizeSlug: imageSizeSlug,
207
+ linkDestination,
208
+ linkTarget,
209
+ anchor,
210
+ className
262
211
  }));
263
212
  }
264
213
  return createBlock('core/image', {
@@ -1 +1 @@
1
- {"version":3,"names":["createBlock","createBlobURL","addFilter","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","pickRelevantMediaFiles","isGalleryV2Enabled","parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","name","attributes","images","length","innerBlocks","url","alt","sizeSlug","linkDestination","updateThirdPartyTransformFromGallery","toBlock","fromBlocks","from","Array","isArray","galleryBlock","find","transformedBlock","includes","transforms","type","isMultiBlock","blocks","transform","align","every","attribute","undefined","validImages","filter","image","width","height","caption","toString","tag","named","columns","link","orderby","imageIds","linkTo","randomOrder","imageId","isMatch","priority","files","file","indexOf","to","title","href","rel","linkClass","imageSizeSlug","linkTarget","anchor","className","index"],"sources":["@wordpress/block-library/src/gallery/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\nimport { pickRelevantMediaFiles, isGalleryV2Enabled } from './shared';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this tranform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tisGalleryV2Enabled() &&\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.align === align\n\t\t\t\t)\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.sizeSlug === sizeSlug\n\t\t\t\t)\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = attributes.filter( ( { url } ) => url );\n\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t\t// Gallery images can't currently be resized so make sure height and width are undefined.\n\t\t\t\t\t\timage.width = undefined;\n\t\t\t\t\t\timage.height = undefined;\n\t\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/gallery',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/gallery', {\n\t\t\t\t\timages: validImages.map(\n\t\t\t\t\t\t( { id, url, alt, caption } ) => ( {\n\t\t\t\t\t\t\tid: id.toString(),\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t\tids: validImages.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t\t\talign,\n\t\t\t\t\tsizeSlug,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\t\t\ttransform( { named: { ids, columns = 3, link, orderby } } ) {\n\t\t\t\tconst imageIds = parseShortcodeIds( ids ).map( ( id ) =>\n\t\t\t\t\tparseInt( id, 10 )\n\t\t\t\t);\n\n\t\t\t\tlet linkTo = LINK_DESTINATION_NONE;\n\t\t\t\tif ( link === 'post' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t} else if ( link === 'file' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_MEDIA;\n\t\t\t\t}\n\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumns: parseInt( columns, 10 ),\n\t\t\t\t\t\tlinkTo,\n\t\t\t\t\t\trandomOrder: orderby === 'rand',\n\t\t\t\t\t},\n\t\t\t\t\timageIds.map( ( imageId ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', { id: imageId } )\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\treturn galleryBlock;\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrrides the image block transformation when mulitple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tfiles.every(\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t\t}\n\t\t\t\tconst block = createBlock( 'core/gallery', {\n\t\t\t\t\timages: files.map( ( file ) =>\n\t\t\t\t\t\tpickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align, images, ids, sizeSlug }, innerBlocks ) => {\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t\t( {\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\t\tclassName,\n\t\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\treturn createBlock( 'core/image', { align } );\n\t\t\t\t}\n\t\t\t\tif ( images.length > 0 ) {\n\t\t\t\t\treturn images.map( ( { url, alt, caption }, index ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: ids[ index ],\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\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":["createBlock","createBlobURL","addFilter","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","name","attributes","images","length","innerBlocks","url","alt","sizeSlug","linkDestination","updateThirdPartyTransformFromGallery","toBlock","fromBlocks","from","Array","isArray","galleryBlock","find","transformedBlock","includes","transforms","type","isMultiBlock","blocks","transform","align","every","attribute","undefined","validImages","filter","image","width","height","tag","named","columns","link","orderby","imageIds","linkTo","randomOrder","imageId","isMatch","priority","files","file","indexOf","blob","to","caption","title","href","rel","linkClass","imageSizeSlug","linkTarget","anchor","className"],"sources":["@wordpress/block-library/src/gallery/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this tranform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.align === align\n\t\t\t\t)\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.sizeSlug === sizeSlug\n\t\t\t\t)\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = attributes.filter( ( { url } ) => url );\n\n\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t// Gallery images can't currently be resized so make sure height and width are undefined.\n\t\t\t\t\timage.width = undefined;\n\t\t\t\t\timage.height = undefined;\n\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t},\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\t\t\ttransform( { named: { ids, columns = 3, link, orderby } } ) {\n\t\t\t\tconst imageIds = parseShortcodeIds( ids ).map( ( id ) =>\n\t\t\t\t\tparseInt( id, 10 )\n\t\t\t\t);\n\n\t\t\t\tlet linkTo = LINK_DESTINATION_NONE;\n\t\t\t\tif ( link === 'post' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t} else if ( link === 'file' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_MEDIA;\n\t\t\t\t}\n\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumns: parseInt( columns, 10 ),\n\t\t\t\t\t\tlinkTo,\n\t\t\t\t\t\trandomOrder: orderby === 'rand',\n\t\t\t\t\t},\n\t\t\t\t\timageIds.map( ( imageId ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', { id: imageId } )\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\treturn galleryBlock;\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrrides the image block transformation when mulitple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tfiles.every(\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align }, innerBlocks ) => {\n\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t( {\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":"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","ignoreList":[]}
@@ -57,6 +57,7 @@ const metadata = {
57
57
  text: true
58
58
  }
59
59
  },
60
+ shadow: true,
60
61
  spacing: {
61
62
  margin: ["top", "bottom"],
62
63
  padding: true,
@@ -1 +1 @@
1
- {"version":3,"names":["__","group","icon","initBlock","deprecated","edit","metadata","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","tagName","type","templateLock","allowedBlocks","supports","__experimentalOnEnter","__experimentalOnMerge","__experimentalSettings","align","anchor","ariaLabel","html","background","backgroundImage","backgroundSize","__experimentalDefaultControls","color","gradients","heading","button","link","text","spacing","margin","padding","blockGap","dimensions","minHeight","__experimentalBorder","radius","style","width","position","sticky","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","layout","allowSizingOnChildren","interactivity","clientNavigation","editorStyle","save","transforms","variations","settings","example","innerBlocks","customTextColor","content","init"],"sources":["@wordpress/block-library/src/group/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group 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';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","group","icon","initBlock","deprecated","edit","metadata","$schema","apiVersion","name","title","category","description","keywords","textdomain","attributes","tagName","type","templateLock","allowedBlocks","supports","__experimentalOnEnter","__experimentalOnMerge","__experimentalSettings","align","anchor","ariaLabel","html","background","backgroundImage","backgroundSize","__experimentalDefaultControls","color","gradients","heading","button","link","text","shadow","spacing","margin","padding","blockGap","dimensions","minHeight","__experimentalBorder","radius","style","width","position","sticky","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","layout","allowSizingOnChildren","interactivity","clientNavigation","editorStyle","save","transforms","variations","settings","example","innerBlocks","customTextColor","content","init"],"sources":["@wordpress/block-library/src/group/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group 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';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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","ignoreList":[]}
@@ -117,6 +117,11 @@ function GroupPlaceHolder({
117
117
  const blockProps = useBlockProps({
118
118
  className: 'wp-block-group__placeholder'
119
119
  });
120
+ useEffect(() => {
121
+ if (variations && variations.length === 1) {
122
+ onSelect(variations[0]);
123
+ }
124
+ }, [onSelect, variations]);
120
125
  return /*#__PURE__*/_jsx("div", {
121
126
  ...blockProps,
122
127
  children: /*#__PURE__*/_jsx(Placeholder, {
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useBlockProps","__","store","blocksStore","Path","SVG","Button","Placeholder","useState","useEffect","jsx","_jsx","getGroupPlaceholderIcons","name","icons","group","xmlns","width","height","viewBox","children","d","useShouldShowPlaceHolder","attributes","style","undefined","backgroundColor","textColor","fontSize","usedLayoutType","hasInnerBlocks","showPlaceholder","setShowPlaceholder","GroupPlaceHolder","onSelect","variations","select","getBlockVariations","blockProps","className","instructions","role","map","variation","__next40pxDefaultSize","variant","icon","iconSize","onClick","label","title","description"],"sources":["@wordpress/block-library/src/group/placeholder.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Path, SVG, Button, Placeholder } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Returns a custom variation icon.\n *\n * @param {string} name The block variation name.\n *\n * @return {JSX.Element} The SVG element.\n */\nconst getGroupPlaceholderIcons = ( name = 'group' ) => {\n\tconst icons = {\n\t\tgroup: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-row': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-stack': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm0 17a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-grid': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10ZM0 27a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t};\n\treturn icons?.[ name ];\n};\n\n/**\n * A custom hook to tell the Group block whether to show the variation placeholder.\n *\n * @param {Object} props Arguments to pass to hook.\n * @param {Object} [props.attributes] The block's attributes.\n * @param {string} [props.usedLayoutType] The block's current layout type.\n * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.\n *\n * @return {[boolean, Function]} A state value and setter function.\n */\nexport function useShouldShowPlaceHolder( {\n\tattributes = {\n\t\tstyle: undefined,\n\t\tbackgroundColor: undefined,\n\t\ttextColor: undefined,\n\t\tfontSize: undefined,\n\t},\n\tusedLayoutType = '',\n\thasInnerBlocks = false,\n} ) {\n\tconst { style, backgroundColor, textColor, fontSize } = attributes;\n\t/*\n\t * Shows the placeholder when no known styles are set,\n\t * or when a non-default layout has been selected.\n\t * Should the Group block support more style presets in the\n\t * future, e.g., attributes.spacingSize, we can add them to the\n\t * condition.\n\t */\n\tconst [ showPlaceholder, setShowPlaceholder ] = useState(\n\t\t! hasInnerBlocks &&\n\t\t\t! backgroundColor &&\n\t\t\t! fontSize &&\n\t\t\t! textColor &&\n\t\t\t! style &&\n\t\t\tusedLayoutType !== 'flex' &&\n\t\t\tusedLayoutType !== 'grid'\n\t);\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t!! hasInnerBlocks ||\n\t\t\t!! backgroundColor ||\n\t\t\t!! fontSize ||\n\t\t\t!! textColor ||\n\t\t\t!! style ||\n\t\t\tusedLayoutType === 'flex'\n\t\t) {\n\t\t\tsetShowPlaceholder( false );\n\t\t}\n\t}, [\n\t\tbackgroundColor,\n\t\tfontSize,\n\t\ttextColor,\n\t\tstyle,\n\t\tusedLayoutType,\n\t\thasInnerBlocks,\n\t] );\n\n\treturn [ showPlaceholder, setShowPlaceholder ];\n}\n\n/**\n * Display group variations if none is selected.\n *\n * @param {Object} props Component props.\n * @param {string} props.name The block's name.\n * @param {Function} props.onSelect Function to set block's attributes.\n *\n * @return {JSX.Element} The placeholder.\n */\nfunction GroupPlaceHolder( { name, onSelect } ) {\n\tconst variations = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockVariations( name, 'block' ),\n\t\t[ name ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-group__placeholder',\n\t} );\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\tinstructions={ __( 'Group blocks together. Select a layout:' ) }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Taken from BlockVariationPicker component.\n\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<ul\n\t\t\t\t\trole=\"list\"\n\t\t\t\t\tclassName=\"wp-block-group-placeholder__variations\"\n\t\t\t\t\taria-label={ __( 'Block variations' ) }\n\t\t\t\t>\n\t\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t\t<li key={ variation.name }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\ticon={ getGroupPlaceholderIcons(\n\t\t\t\t\t\t\t\t\tvariation.name\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticonSize={ 48 }\n\t\t\t\t\t\t\t\tonClick={ () => onSelect( variation ) }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-group-placeholder__variation-button\"\n\t\t\t\t\t\t\t\tlabel={ `${ variation.title }: ${ variation.description }` }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nexport default GroupPlaceHolder;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","useBlockProps","__","store","blocksStore","Path","SVG","Button","Placeholder","useState","useEffect","jsx","_jsx","getGroupPlaceholderIcons","name","icons","group","xmlns","width","height","viewBox","children","d","useShouldShowPlaceHolder","attributes","style","undefined","backgroundColor","textColor","fontSize","usedLayoutType","hasInnerBlocks","showPlaceholder","setShowPlaceholder","GroupPlaceHolder","onSelect","variations","select","getBlockVariations","blockProps","className","length","instructions","role","map","variation","__next40pxDefaultSize","variant","icon","iconSize","onClick","label","title","description"],"sources":["@wordpress/block-library/src/group/placeholder.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Path, SVG, Button, Placeholder } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Returns a custom variation icon.\n *\n * @param {string} name The block variation name.\n *\n * @return {JSX.Element} The SVG element.\n */\nconst getGroupPlaceholderIcons = ( name = 'group' ) => {\n\tconst icons = {\n\t\tgroup: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-row': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-stack': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm0 17a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-grid': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10ZM0 27a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t};\n\treturn icons?.[ name ];\n};\n\n/**\n * A custom hook to tell the Group block whether to show the variation placeholder.\n *\n * @param {Object} props Arguments to pass to hook.\n * @param {Object} [props.attributes] The block's attributes.\n * @param {string} [props.usedLayoutType] The block's current layout type.\n * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.\n *\n * @return {[boolean, Function]} A state value and setter function.\n */\nexport function useShouldShowPlaceHolder( {\n\tattributes = {\n\t\tstyle: undefined,\n\t\tbackgroundColor: undefined,\n\t\ttextColor: undefined,\n\t\tfontSize: undefined,\n\t},\n\tusedLayoutType = '',\n\thasInnerBlocks = false,\n} ) {\n\tconst { style, backgroundColor, textColor, fontSize } = attributes;\n\t/*\n\t * Shows the placeholder when no known styles are set,\n\t * or when a non-default layout has been selected.\n\t * Should the Group block support more style presets in the\n\t * future, e.g., attributes.spacingSize, we can add them to the\n\t * condition.\n\t */\n\tconst [ showPlaceholder, setShowPlaceholder ] = useState(\n\t\t! hasInnerBlocks &&\n\t\t\t! backgroundColor &&\n\t\t\t! fontSize &&\n\t\t\t! textColor &&\n\t\t\t! style &&\n\t\t\tusedLayoutType !== 'flex' &&\n\t\t\tusedLayoutType !== 'grid'\n\t);\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t!! hasInnerBlocks ||\n\t\t\t!! backgroundColor ||\n\t\t\t!! fontSize ||\n\t\t\t!! textColor ||\n\t\t\t!! style ||\n\t\t\tusedLayoutType === 'flex'\n\t\t) {\n\t\t\tsetShowPlaceholder( false );\n\t\t}\n\t}, [\n\t\tbackgroundColor,\n\t\tfontSize,\n\t\ttextColor,\n\t\tstyle,\n\t\tusedLayoutType,\n\t\thasInnerBlocks,\n\t] );\n\n\treturn [ showPlaceholder, setShowPlaceholder ];\n}\n\n/**\n * Display group variations if none is selected.\n *\n * @param {Object} props Component props.\n * @param {string} props.name The block's name.\n * @param {Function} props.onSelect Function to set block's attributes.\n *\n * @return {JSX.Element} The placeholder.\n */\nfunction GroupPlaceHolder( { name, onSelect } ) {\n\tconst variations = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockVariations( name, 'block' ),\n\t\t[ name ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-group__placeholder',\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( variations && variations.length === 1 ) {\n\t\t\tonSelect( variations[ 0 ] );\n\t\t}\n\t}, [ onSelect, variations ] );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\tinstructions={ __( 'Group blocks together. Select a layout:' ) }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Taken from BlockVariationPicker component.\n\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<ul\n\t\t\t\t\trole=\"list\"\n\t\t\t\t\tclassName=\"wp-block-group-placeholder__variations\"\n\t\t\t\t\taria-label={ __( 'Block variations' ) }\n\t\t\t\t>\n\t\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t\t<li key={ variation.name }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\ticon={ getGroupPlaceholderIcons(\n\t\t\t\t\t\t\t\t\tvariation.name\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticonSize={ 48 }\n\t\t\t\t\t\t\t\tonClick={ () => onSelect( variation ) }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-group-placeholder__variation-button\"\n\t\t\t\t\t\t\t\tlabel={ `${ variation.title }: ${ variation.description }` }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nexport default GroupPlaceHolder;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACxD,SAASC,IAAI,EAAEC,GAAG,EAAEC,MAAM,EAAEC,WAAW,QAAQ,uBAAuB;AACtE,SAASC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAOA,MAAMC,wBAAwB,GAAGA,CAAEC,IAAI,GAAG,OAAO,KAAM;EACtD,MAAMC,KAAK,GAAG;IACbC,KAAK,eACJJ,IAAA,CAACN,GAAG;MACHW,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnBT,IAAA,CAACP,IAAI;QAACiB,CAAC,EAAC;MAA2E,CAAE;IAAC,CAClF,CACL;IACD,WAAW,eACVV,IAAA,CAACN,GAAG;MACHW,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnBT,IAAA,CAACP,IAAI;QAACiB,CAAC,EAAC;MAAqJ,CAAE;IAAC,CAC5J,CACL;IACD,aAAa,eACZV,IAAA,CAACN,GAAG;MACHW,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnBT,IAAA,CAACP,IAAI;QAACiB,CAAC,EAAC;MAAoJ,CAAE;IAAC,CAC3J,CACL;IACD,YAAY,eACXV,IAAA,CAACN,GAAG;MACHW,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnBT,IAAA,CAACP,IAAI;QAACiB,CAAC,EAAC;MAAwS,CAAE;IAAC,CAC/S;EAEP,CAAC;EACD,OAAOP,KAAK,GAAID,IAAI,CAAE;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,wBAAwBA,CAAE;EACzCC,UAAU,GAAG;IACZC,KAAK,EAAEC,SAAS;IAChBC,eAAe,EAAED,SAAS;IAC1BE,SAAS,EAAEF,SAAS;IACpBG,QAAQ,EAAEH;EACX,CAAC;EACDI,cAAc,GAAG,EAAE;EACnBC,cAAc,GAAG;AAClB,CAAC,EAAG;EACH,MAAM;IAAEN,KAAK;IAAEE,eAAe;IAAEC,SAAS;IAAEC;EAAS,CAAC,GAAGL,UAAU;EAClE;AACD;AACA;AACA;AACA;AACA;AACA;EACC,MAAM,CAAEQ,eAAe,EAAEC,kBAAkB,CAAE,GAAGxB,QAAQ,CACvD,CAAEsB,cAAc,IACf,CAAEJ,eAAe,IACjB,CAAEE,QAAQ,IACV,CAAED,SAAS,IACX,CAAEH,KAAK,IACPK,cAAc,KAAK,MAAM,IACzBA,cAAc,KAAK,MACrB,CAAC;EAEDpB,SAAS,CAAE,MAAM;IAChB,IACC,CAAC,CAAEqB,cAAc,IACjB,CAAC,CAAEJ,eAAe,IAClB,CAAC,CAAEE,QAAQ,IACX,CAAC,CAAED,SAAS,IACZ,CAAC,CAAEH,KAAK,IACRK,cAAc,KAAK,MAAM,EACxB;MACDG,kBAAkB,CAAE,KAAM,CAAC;IAC5B;EACD,CAAC,EAAE,CACFN,eAAe,EACfE,QAAQ,EACRD,SAAS,EACTH,KAAK,EACLK,cAAc,EACdC,cAAc,CACb,CAAC;EAEH,OAAO,CAAEC,eAAe,EAAEC,kBAAkB,CAAE;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAAE;EAAEpB,IAAI;EAAEqB;AAAS,CAAC,EAAG;EAC/C,MAAMC,UAAU,GAAGpC,SAAS,CACzBqC,MAAM,IAAMA,MAAM,CAAEjC,WAAY,CAAC,CAACkC,kBAAkB,CAAExB,IAAI,EAAE,OAAQ,CAAC,EACvE,CAAEA,IAAI,CACP,CAAC;EACD,MAAMyB,UAAU,GAAGtC,aAAa,CAAE;IACjCuC,SAAS,EAAE;EACZ,CAAE,CAAC;EAEH9B,SAAS,CAAE,MAAM;IAChB,IAAK0B,UAAU,IAAIA,UAAU,CAACK,MAAM,KAAK,CAAC,EAAG;MAC5CN,QAAQ,CAAEC,UAAU,CAAE,CAAC,CAAG,CAAC;IAC5B;EACD,CAAC,EAAE,CAAED,QAAQ,EAAEC,UAAU,CAAG,CAAC;EAE7B,oBACCxB,IAAA;IAAA,GAAU2B,UAAU;IAAAlB,QAAA,eACnBT,IAAA,CAACJ,WAAW;MACXkC,YAAY,EAAGxC,EAAE,CAAE,yCAA0C,CAAG;MAAAmB,QAAA,eAQhET,IAAA;QACC+B,IAAI,EAAC,MAAM;QACXH,SAAS,EAAC,wCAAwC;QAClD,cAAatC,EAAE,CAAE,kBAAmB,CAAG;QAAAmB,QAAA,EAErCe,UAAU,CAACQ,GAAG,CAAIC,SAAS,iBAC5BjC,IAAA;UAAAS,QAAA,eACCT,IAAA,CAACL,MAAM;YACNuC,qBAAqB;YACrBC,OAAO,EAAC,UAAU;YAClBC,IAAI,EAAGnC,wBAAwB,CAC9BgC,SAAS,CAAC/B,IACX,CAAG;YACHmC,QAAQ,EAAG,EAAI;YACfC,OAAO,EAAGA,CAAA,KAAMf,QAAQ,CAAEU,SAAU,CAAG;YACvCL,SAAS,EAAC,8CAA8C;YACxDW,KAAK,EAAI,GAAGN,SAAS,CAACO,KAAO,KAAKP,SAAS,CAACQ,WAAa;UAAG,CAC5D;QAAC,GAXOR,SAAS,CAAC/B,IAYhB,CACH;MAAC,CACA;IAAC,CAEO;EAAC,CACV,CAAC;AAER;AAEA,eAAeoB,gBAAgB","ignoreList":[]}
@@ -35,17 +35,6 @@ export const pickRelevantMediaFiles = (image, size) => {
35
35
  return imageProps;
36
36
  };
37
37
 
38
- /**
39
- * Is the URL a temporary blob URL? A blob URL is one that is used temporarily
40
- * while the image is being uploaded and will not have an id yet allocated.
41
- *
42
- * @param {number=} id The id of the image.
43
- * @param {string=} url The url of the image.
44
- *
45
- * @return {boolean} Is the URL a Blob URL
46
- */
47
- const isTemporaryImage = (id, url) => !id && isBlobURL(url);
48
-
49
38
  /**
50
39
  * Is the url for the image hosted externally. An externally hosted image has no
51
40
  * id and is not a blob url.
@@ -94,9 +83,7 @@ export function ImageEdit({
94
83
  align,
95
84
  metadata
96
85
  } = attributes;
97
- const [temporaryURL, setTemporaryURL] = useState(() => {
98
- return isTemporaryImage(id, url) ? url : undefined;
99
- });
86
+ const [temporaryURL, setTemporaryURL] = useState(attributes.blob);
100
87
  const altRef = useRef();
101
88
  useEffect(() => {
102
89
  altRef.current = alt;
@@ -133,9 +120,9 @@ export function ImageEdit({
133
120
  setAttributes({
134
121
  src: undefined,
135
122
  id: undefined,
136
- url: undefined
123
+ url: undefined,
124
+ blob: undefined
137
125
  });
138
- setTemporaryURL(undefined);
139
126
  }
140
127
  function onSelectImage(media) {
141
128
  if (!media || !media.url) {
@@ -144,15 +131,16 @@ export function ImageEdit({
144
131
  alt: undefined,
145
132
  id: undefined,
146
133
  title: undefined,
147
- caption: undefined
134
+ caption: undefined,
135
+ blob: undefined
148
136
  });
137
+ setTemporaryURL();
149
138
  return;
150
139
  }
151
140
  if (isBlobURL(media.url)) {
152
141
  setTemporaryURL(media.url);
153
142
  return;
154
143
  }
155
- setTemporaryURL();
156
144
  const {
157
145
  imageDefaultSize
158
146
  } = getSettings();
@@ -226,22 +214,26 @@ export function ImageEdit({
226
214
  }
227
215
  mediaAttributes.href = href;
228
216
  setAttributes({
217
+ blob: undefined,
229
218
  ...mediaAttributes,
230
219
  ...additionalAttributes,
231
220
  linkDestination
232
221
  });
222
+ setTemporaryURL();
233
223
  }
234
224
  function onSelectURL(newURL) {
235
225
  if (newURL !== url) {
236
226
  setAttributes({
227
+ blob: undefined,
237
228
  url: newURL,
238
229
  id: undefined,
239
230
  sizeSlug: getSettings().imageDefaultSize
240
231
  });
232
+ setTemporaryURL();
241
233
  }
242
234
  }
243
235
  useUploadMediaFromBlobURL({
244
- url,
236
+ url: temporaryURL,
245
237
  allowedTypes: ALLOWED_MEDIA_TYPES,
246
238
  onChange: onSelectImage,
247
239
  onError: onUploadError
@@ -257,7 +249,7 @@ export function ImageEdit({
257
249
  const borderProps = useBorderProps(attributes);
258
250
  const shadowProps = getShadowClassesAndStyles(attributes);
259
251
  const classes = clsx(className, {
260
- 'is-transient': temporaryURL,
252
+ 'is-transient': !!temporaryURL,
261
253
  'is-resized': !!width || !!height,
262
254
  [`size-${sizeSlug}`]: sizeSlug,
263
255
  'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","isBlobURL","store","blocksStore","Placeholder","useDispatch","useSelect","BlockIcon","MediaPlaceholder","useBlockProps","blockEditorStore","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","useBlockEditingMode","useEffect","useRef","useState","__","sprintf","image","icon","plugins","pluginsIcon","noticesStore","unlock","useUploadMediaFromBlobURL","Image","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","jsx","_jsx","jsxs","_jsxs","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isTemporaryImage","id","isExternalImage","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","undefined","altRef","current","captionRef","__unstableMarkNextChangeAsNotPersistent","getSettings","blockEditingMode","createErrorNotice","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","href","onSelectURL","newURL","allowedTypes","onChange","onError","isExternal","mediaPreview","borderProps","shadowProps","classes","style","keys","length","blockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","placeholder","content","withIllustration","instructions","objectFit","children","parentLayoutType","onSelect","accept","value","disableMediaButtons"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( () => {\n\t\treturn isTemporaryImage( id, url ) ? url : undefined;\n\t} );\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\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\tsetTemporaryURL();\n\n\t\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\tsizeSlug: newSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName=\"edit-image-preview\"\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( { className: classes } );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration\n\t\t\t\ticon={ lockUrlControls ? pluginsIcon : icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls ? (\n\t\t\t\t\t<span className=\"block-bindings-media-placeholder-message\">\n\t\t\t\t\t\t{ lockUrlControlsMessage }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t<Image\n\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tparentLayoutType={ parentLayout?.type }\n\t\t\t/>\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","isBlobURL","store","blocksStore","Placeholder","useDispatch","useSelect","BlockIcon","MediaPlaceholder","useBlockProps","blockEditorStore","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","useBlockEditingMode","useEffect","useRef","useState","__","sprintf","image","icon","plugins","pluginsIcon","noticesStore","unlock","useUploadMediaFromBlobURL","Image","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","jsx","_jsx","jsxs","_jsxs","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isExternalImage","id","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","blob","altRef","current","captionRef","__unstableMarkNextChangeAsNotPersistent","undefined","getSettings","blockEditingMode","createErrorNotice","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","href","onSelectURL","newURL","allowedTypes","onChange","onError","isExternal","mediaPreview","borderProps","shadowProps","classes","style","keys","length","blockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","placeholder","content","withIllustration","instructions","objectFit","children","parentLayoutType","onSelect","accept","value","disableMediaButtons"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tblob: undefined,\n\t\t} );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\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\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\tsizeSlug: newSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName=\"edit-image-preview\"\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( { className: classes } );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration\n\t\t\t\ticon={ lockUrlControls ? pluginsIcon : icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls ? (\n\t\t\t\t\t<span className=\"block-bindings-media-placeholder-message\">\n\t\t\t\t\t\t{ lockUrlControlsMessage }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t<Image\n\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tparentLayoutType={ parentLayout?.type }\n\t\t\t/>\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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","ignoreList":[]}