@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":["_blocks","require","_blob","_hooks","_constants","_shared","parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","isGalleryV2Enabled","name","attributes","images","length","innerBlocks","url","alt","createBlock","sizeSlug","linkDestination","addFilter","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","LINK_DESTINATION_NONE","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","randomOrder","imageId","isMatch","priority","files","file","indexOf","createBlobURL","pickRelevantMediaFiles","to","title","href","rel","linkClass","imageSizeSlug","linkTarget","anchor","className","index","_default","exports","default"],"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":["_blocks","require","_blob","_hooks","_constants","parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","name","attributes","images","length","innerBlocks","url","alt","createBlock","sizeSlug","linkDestination","addFilter","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","LINK_DESTINATION_NONE","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","randomOrder","imageId","isMatch","priority","files","file","indexOf","blob","createBlobURL","to","caption","title","href","rel","linkClass","imageSizeSlug","linkTarget","anchor","className","_default","exports","default"],"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":[]}
@@ -66,6 +66,7 @@ const metadata = exports.metadata = {
66
66
  text: true
67
67
  }
68
68
  },
69
+ shadow: true,
69
70
  spacing: {
70
71
  margin: ["top", "bottom"],
71
72
  padding: true,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","_transforms","_variations","metadata","exports","$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","settings","icon","example","innerBlocks","customTextColor","content","__","transforms","edit","save","deprecated","variations","init","initBlock"],"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":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","_transforms","_variations","metadata","exports","$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","settings","icon","example","innerBlocks","customTextColor","content","__","transforms","edit","save","deprecated","variations","init","initBlock"],"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":[]}
@@ -123,6 +123,11 @@ function GroupPlaceHolder({
123
123
  const blockProps = (0, _blockEditor.useBlockProps)({
124
124
  className: 'wp-block-group__placeholder'
125
125
  });
126
+ (0, _element.useEffect)(() => {
127
+ if (variations && variations.length === 1) {
128
+ onSelect(variations[0]);
129
+ }
130
+ }, [onSelect, variations]);
126
131
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
127
132
  ...blockProps,
128
133
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Placeholder, {
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_blockEditor","_i18n","_blocks","_components","_element","_jsxRuntime","getGroupPlaceholderIcons","name","icons","group","jsx","SVG","xmlns","width","height","viewBox","children","Path","d","useShouldShowPlaceHolder","attributes","style","undefined","backgroundColor","textColor","fontSize","usedLayoutType","hasInnerBlocks","showPlaceholder","setShowPlaceholder","useState","useEffect","GroupPlaceHolder","onSelect","variations","useSelect","select","blocksStore","getBlockVariations","blockProps","useBlockProps","className","Placeholder","instructions","__","role","map","variation","Button","__next40pxDefaultSize","variant","icon","iconSize","onClick","label","title","description","_default","exports","default"],"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":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAAyD,IAAAM,WAAA,GAAAN,OAAA;AARzD;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,MAAMO,wBAAwB,GAAGA,CAAEC,IAAI,GAAG,OAAO,KAAM;EACtD,MAAMC,KAAK,GAAG;IACbC,KAAK,eACJ,IAAAJ,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAQ,GAAG;MACHC,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAc,IAAI;QAACC,CAAC,EAAC;MAA2E,CAAE;IAAC,CAClF,CACL;IACD,WAAW,eACV,IAAAb,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAQ,GAAG;MACHC,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAc,IAAI;QAACC,CAAC,EAAC;MAAqJ,CAAE;IAAC,CAC5J,CACL;IACD,aAAa,eACZ,IAAAb,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAQ,GAAG;MACHC,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAc,IAAI;QAACC,CAAC,EAAC;MAAoJ,CAAE;IAAC,CAC3J,CACL;IACD,YAAY,eACX,IAAAb,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAQ,GAAG;MACHC,KAAK,EAAC,4BAA4B;MAClCC,KAAK,EAAC,IAAI;MACVC,MAAM,EAAC,IAAI;MACXC,OAAO,EAAC,WAAW;MAAAC,QAAA,eAEnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAc,IAAI;QAACC,CAAC,EAAC;MAAwS,CAAE;IAAC,CAC/S;EAEP,CAAC;EACD,OAAOV,KAAK,GAAID,IAAI,CAAE;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASY,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,GAAG,IAAAC,iBAAQ,EACvD,CAAEH,cAAc,IACf,CAAEJ,eAAe,IACjB,CAAEE,QAAQ,IACV,CAAED,SAAS,IACX,CAAEH,KAAK,IACPK,cAAc,KAAK,MAAM,IACzBA,cAAc,KAAK,MACrB,CAAC;EAED,IAAAK,kBAAS,EAAE,MAAM;IAChB,IACC,CAAC,CAAEJ,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,SAASG,gBAAgBA,CAAE;EAAEzB,IAAI;EAAE0B;AAAS,CAAC,EAAG;EAC/C,MAAMC,UAAU,GAAG,IAAAC,eAAS,EACzBC,MAAM,IAAMA,MAAM,CAAEC,aAAY,CAAC,CAACC,kBAAkB,CAAE/B,IAAI,EAAE,OAAQ,CAAC,EACvE,CAAEA,IAAI,CACP,CAAC;EACD,MAAMgC,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCC,SAAS,EAAE;EACZ,CAAE,CAAC;EACH,oBACC,IAAApC,WAAA,CAAAK,GAAA;IAAA,GAAU6B,UAAU;IAAAvB,QAAA,eACnB,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAAuC,WAAW;MACXC,YAAY,EAAG,IAAAC,QAAE,EAAE,yCAA0C,CAAG;MAAA5B,QAAA,eAQhE,IAAAX,WAAA,CAAAK,GAAA;QACCmC,IAAI,EAAC,MAAM;QACXJ,SAAS,EAAC,wCAAwC;QAClD,cAAa,IAAAG,QAAE,EAAE,kBAAmB,CAAG;QAAA5B,QAAA,EAErCkB,UAAU,CAACY,GAAG,CAAIC,SAAS,iBAC5B,IAAA1C,WAAA,CAAAK,GAAA;UAAAM,QAAA,eACC,IAAAX,WAAA,CAAAK,GAAA,EAACP,WAAA,CAAA6C,MAAM;YACNC,qBAAqB;YACrBC,OAAO,EAAC,UAAU;YAClBC,IAAI,EAAG7C,wBAAwB,CAC9ByC,SAAS,CAACxC,IACX,CAAG;YACH6C,QAAQ,EAAG,EAAI;YACfC,OAAO,EAAGA,CAAA,KAAMpB,QAAQ,CAAEc,SAAU,CAAG;YACvCN,SAAS,EAAC,8CAA8C;YACxDa,KAAK,EAAI,GAAGP,SAAS,CAACQ,KAAO,KAAKR,SAAS,CAACS,WAAa;UAAG,CAC5D;QAAC,GAXOT,SAAS,CAACxC,IAYhB,CACH;MAAC,CACA;IAAC,CAEO;EAAC,CACV,CAAC;AAER;AAAC,IAAAkD,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc3B,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_blockEditor","_i18n","_blocks","_components","_element","_jsxRuntime","getGroupPlaceholderIcons","name","icons","group","jsx","SVG","xmlns","width","height","viewBox","children","Path","d","useShouldShowPlaceHolder","attributes","style","undefined","backgroundColor","textColor","fontSize","usedLayoutType","hasInnerBlocks","showPlaceholder","setShowPlaceholder","useState","useEffect","GroupPlaceHolder","onSelect","variations","useSelect","select","blocksStore","getBlockVariations","blockProps","useBlockProps","className","length","Placeholder","instructions","__","role","map","variation","Button","__next40pxDefaultSize","variant","icon","iconSize","onClick","label","title","description","_default","exports","default"],"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":"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","ignoreList":[]}
@@ -43,18 +43,6 @@ const pickRelevantMediaFiles = (image, size) => {
43
43
  return imageProps;
44
44
  };
45
45
 
46
- /**
47
- * Is the URL a temporary blob URL? A blob URL is one that is used temporarily
48
- * while the image is being uploaded and will not have an id yet allocated.
49
- *
50
- * @param {number=} id The id of the image.
51
- * @param {string=} url The url of the image.
52
- *
53
- * @return {boolean} Is the URL a Blob URL
54
- */
55
- exports.pickRelevantMediaFiles = pickRelevantMediaFiles;
56
- const isTemporaryImage = (id, url) => !id && (0, _blob.isBlobURL)(url);
57
-
58
46
  /**
59
47
  * Is the url for the image hosted externally. An externally hosted image has no
60
48
  * id and is not a blob url.
@@ -64,6 +52,7 @@ const isTemporaryImage = (id, url) => !id && (0, _blob.isBlobURL)(url);
64
52
  *
65
53
  * @return {boolean} Is the url an externally hosted url?
66
54
  */
55
+ exports.pickRelevantMediaFiles = pickRelevantMediaFiles;
67
56
  const isExternalImage = (id, url) => url && !id && !(0, _blob.isBlobURL)(url);
68
57
 
69
58
  /**
@@ -104,9 +93,7 @@ function ImageEdit({
104
93
  align,
105
94
  metadata
106
95
  } = attributes;
107
- const [temporaryURL, setTemporaryURL] = (0, _element.useState)(() => {
108
- return isTemporaryImage(id, url) ? url : undefined;
109
- });
96
+ const [temporaryURL, setTemporaryURL] = (0, _element.useState)(attributes.blob);
110
97
  const altRef = (0, _element.useRef)();
111
98
  (0, _element.useEffect)(() => {
112
99
  altRef.current = alt;
@@ -143,9 +130,9 @@ function ImageEdit({
143
130
  setAttributes({
144
131
  src: undefined,
145
132
  id: undefined,
146
- url: undefined
133
+ url: undefined,
134
+ blob: undefined
147
135
  });
148
- setTemporaryURL(undefined);
149
136
  }
150
137
  function onSelectImage(media) {
151
138
  if (!media || !media.url) {
@@ -154,15 +141,16 @@ function ImageEdit({
154
141
  alt: undefined,
155
142
  id: undefined,
156
143
  title: undefined,
157
- caption: undefined
144
+ caption: undefined,
145
+ blob: undefined
158
146
  });
147
+ setTemporaryURL();
159
148
  return;
160
149
  }
161
150
  if ((0, _blob.isBlobURL)(media.url)) {
162
151
  setTemporaryURL(media.url);
163
152
  return;
164
153
  }
165
- setTemporaryURL();
166
154
  const {
167
155
  imageDefaultSize
168
156
  } = getSettings();
@@ -236,22 +224,26 @@ function ImageEdit({
236
224
  }
237
225
  mediaAttributes.href = href;
238
226
  setAttributes({
227
+ blob: undefined,
239
228
  ...mediaAttributes,
240
229
  ...additionalAttributes,
241
230
  linkDestination
242
231
  });
232
+ setTemporaryURL();
243
233
  }
244
234
  function onSelectURL(newURL) {
245
235
  if (newURL !== url) {
246
236
  setAttributes({
237
+ blob: undefined,
247
238
  url: newURL,
248
239
  id: undefined,
249
240
  sizeSlug: getSettings().imageDefaultSize
250
241
  });
242
+ setTemporaryURL();
251
243
  }
252
244
  }
253
245
  (0, _hooks.useUploadMediaFromBlobURL)({
254
- url,
246
+ url: temporaryURL,
255
247
  allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
256
248
  onChange: onSelectImage,
257
249
  onError: onUploadError
@@ -267,7 +259,7 @@ function ImageEdit({
267
259
  const borderProps = (0, _blockEditor.__experimentalUseBorderProps)(attributes);
268
260
  const shadowProps = (0, _blockEditor.__experimentalGetShadowClassesAndStyles)(attributes);
269
261
  const classes = (0, _clsx.default)(className, {
270
- 'is-transient': temporaryURL,
262
+ 'is-transient': !!temporaryURL,
271
263
  'is-resized': !!width || !!height,
272
264
  [`size-${sizeSlug}`]: sizeSlug,
273
265
  'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_lockUnlock","_hooks","_image","_constants","_jsxRuntime","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isTemporaryImage","id","isBlobURL","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","useState","undefined","altRef","useRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","getSettings","useSelect","blockEditingMode","useBlockEditingMode","createErrorNotice","noticesStore","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","useUploadMediaFromBlobURL","allowedTypes","ALLOWED_MEDIA_TYPES","onChange","onError","isExternal","mediaPreview","jsx","__","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","clsx","style","keys","length","blockProps","useBlockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","sprintf","placeholder","content","Placeholder","withIllustration","icon","pluginsIcon","instructions","objectFit","children","jsxs","default","parentLayoutType","MediaPlaceholder","BlockIcon","onSelect","accept","value","disableMediaButtons","_default"],"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","_interopRequireDefault","require","_blob","_blocks","_components","_data","_blockEditor","_element","_i18n","_icons","_notices","_lockUnlock","_hooks","_image","_constants","_jsxRuntime","pickRelevantMediaFiles","image","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","exports","isExternalImage","id","isBlobURL","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","useState","blob","altRef","useRef","useEffect","current","captionRef","__unstableMarkNextChangeAsNotPersistent","useDispatch","blockEditorStore","undefined","getSettings","useSelect","blockEditingMode","useBlockEditingMode","createErrorNotice","noticesStore","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","useUploadMediaFromBlobURL","allowedTypes","ALLOWED_MEDIA_TYPES","onChange","onError","isExternal","mediaPreview","jsx","__","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","classes","clsx","style","keys","length","blockProps","useBlockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","sprintf","placeholder","content","Placeholder","withIllustration","icon","pluginsIcon","instructions","objectFit","children","jsxs","default","parentLayoutType","MediaPlaceholder","BlockIcon","onSelect","accept","value","disableMediaButtons","_default"],"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":[]}
@@ -21,8 +21,8 @@ var _lockUnlock = require("../lock-unlock");
21
21
  var _util = require("../embed/util");
22
22
  var _edit = require("./edit");
23
23
  var _caption = require("../utils/caption");
24
- var _constants = require("../utils/constants");
25
- var _constants2 = require("./constants");
24
+ var _hooks = require("../utils/hooks");
25
+ var _constants = require("./constants");
26
26
  var _utils = require("./utils");
27
27
  var _jsxRuntime = require("react/jsx-runtime");
28
28
  /**
@@ -161,7 +161,7 @@ function Image({
161
161
  const [externalBlob, setExternalBlob] = (0, _element.useState)();
162
162
  const hasNonContentControls = blockEditingMode === 'default';
163
163
  const isContentOnlyMode = blockEditingMode === 'contentOnly';
164
- const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport && parentLayoutType !== 'grid';
164
+ const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport;
165
165
  const imageSizeOptions = imageSizes.filter(({
166
166
  slug
167
167
  }) => image?.media_details?.sizes?.[slug]?.source_url).map(({
@@ -301,7 +301,7 @@ function Image({
301
301
  type: 'snackbar'
302
302
  });
303
303
  },
304
- allowedTypes: _constants2.ALLOWED_MEDIA_TYPES,
304
+ allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
305
305
  onError(message) {
306
306
  createErrorNotice(message, {
307
307
  type: 'snackbar'
@@ -332,6 +332,7 @@ function Image({
332
332
  // remove that override, even if the lightbox UI is disabled in the settings.
333
333
  !!lightbox && lightbox?.enabled !== lightboxSetting?.enabled || lightboxSetting?.allowEditing;
334
334
  const lightboxChecked = !!lightbox?.enabled || !lightbox && !!lightboxSetting?.enabled;
335
+ const dropdownMenuProps = (0, _hooks.useToolsPanelDropdownMenuProps)();
335
336
  const dimensionsControl = /*#__PURE__*/(0, _jsxRuntime.jsx)(DimensionsTool, {
336
337
  value: {
337
338
  width,
@@ -364,6 +365,21 @@ function Image({
364
365
  scaleOptions: scaleOptions,
365
366
  unitsOptions: dimensionsUnitsOptions
366
367
  });
368
+ const aspectRatioControl = /*#__PURE__*/(0, _jsxRuntime.jsx)(DimensionsTool, {
369
+ value: {
370
+ aspectRatio
371
+ },
372
+ onChange: ({
373
+ aspectRatio: newAspectRatio
374
+ }) => {
375
+ setAttributes({
376
+ aspectRatio: newAspectRatio,
377
+ scale: 'cover'
378
+ });
379
+ },
380
+ defaultAspectRatio: "auto",
381
+ tools: ['aspectRatio']
382
+ });
367
383
  const resetAll = () => {
368
384
  setAttributes({
369
385
  alt: undefined,
@@ -378,10 +394,11 @@ function Image({
378
394
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanel, {
379
395
  label: (0, _i18n.__)('Settings'),
380
396
  resetAll: resetAll,
381
- dropdownMenuProps: _constants.TOOLSPANEL_DROPDOWNMENU_PROPS,
382
- children: isResizable && dimensionsControl
397
+ dropdownMenuProps: dropdownMenuProps,
398
+ children: isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl)
383
399
  })
384
400
  });
401
+ const arePatternOverridesEnabled = metadata?.bindings?.__default?.source === 'core/pattern-overrides';
385
402
  const {
386
403
  lockUrlControls = false,
387
404
  lockHrefControls = false,
@@ -397,15 +414,12 @@ function Image({
397
414
  const {
398
415
  getBlockBindingsSource
399
416
  } = (0, _lockUnlock.unlock)(select(_blocks.store));
400
- const {
401
- getBlockParentsByBlockName
402
- } = (0, _lockUnlock.unlock)(select(_blockEditor.store));
403
417
  const {
404
418
  url: urlBinding,
405
419
  alt: altBinding,
406
420
  title: titleBinding
407
421
  } = metadata?.bindings || {};
408
- const hasParentPattern = getBlockParentsByBlockName(clientId, 'core/block').length > 0;
422
+ const hasParentPattern = !!context['pattern/overrides'];
409
423
  const urlBindingSource = getBlockBindingsSource(urlBinding?.source);
410
424
  const altBindingSource = getBlockBindingsSource(altBinding?.source);
411
425
  const titleBindingSource = getBlockBindingsSource(titleBinding?.source);
@@ -418,7 +432,7 @@ function Image({
418
432
  lockHrefControls:
419
433
  // Disable editing the link of the URL if the image is inside a pattern instance.
420
434
  // This is a temporary solution until we support overriding the link on the frontend.
421
- hasParentPattern,
435
+ hasParentPattern || arePatternOverridesEnabled,
422
436
  lockCaption:
423
437
  // Disable editing the caption if the image is inside a pattern instance.
424
438
  // This is a temporary solution until we support overriding the caption on the frontend.
@@ -438,7 +452,7 @@ function Image({
438
452
  lockTitleControlsMessage: titleBindingSource?.label ? (0, _i18n.sprintf)( /* translators: %s: Label of the bindings source. */
439
453
  (0, _i18n.__)('Connected to %s'), titleBindingSource.label) : (0, _i18n.__)('Connected to dynamic data')
440
454
  };
441
- }, [clientId, isSingleSelected, metadata?.bindings]);
455
+ }, [arePatternOverridesEnabled, context, isSingleSelected, metadata?.bindings]);
442
456
  const showUrlInput = isSingleSelected && !isEditingImage && !lockHrefControls && !lockUrlControls;
443
457
  const showCoverControls = isSingleSelected && canInsertCover;
444
458
  const showBlockControls = showUrlInput || allowCrop || showCoverControls;
@@ -472,7 +486,7 @@ function Image({
472
486
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaReplaceFlow, {
473
487
  mediaId: id,
474
488
  mediaURL: url,
475
- allowedTypes: _constants2.ALLOWED_MEDIA_TYPES,
489
+ allowedTypes: _constants.ALLOWED_MEDIA_TYPES,
476
490
  accept: "image/*",
477
491
  onSelect: onSelectImage,
478
492
  onSelectURL: onSelectURL,
@@ -570,7 +584,7 @@ function Image({
570
584
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalToolsPanel, {
571
585
  label: (0, _i18n.__)('Settings'),
572
586
  resetAll: resetAll,
573
- dropdownMenuProps: _constants.TOOLSPANEL_DROPDOWNMENU_PROPS,
587
+ dropdownMenuProps: dropdownMenuProps,
574
588
  children: [isSingleSelected && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
575
589
  label: (0, _i18n.__)('Alternative text'),
576
590
  isShownByDefault: true,
@@ -595,7 +609,7 @@ function Image({
595
609
  }),
596
610
  __nextHasNoMarginBottom: true
597
611
  })
598
- }), isResizable && dimensionsControl, !!imageSizeOptions.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResolutionTool, {
612
+ }), isResizable && (parentLayoutType === 'grid' ? aspectRatioControl : dimensionsControl), !!imageSizeOptions.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResolutionTool, {
599
613
  value: sizeSlug,
600
614
  onChange: updateImage,
601
615
  options: imageSizeOptions
@@ -679,7 +693,7 @@ function Image({
679
693
  borderProps: isRounded ? undefined : borderProps
680
694
  })
681
695
  });
682
- } else if (!isResizable) {
696
+ } else if (!isResizable || parentLayoutType === 'grid') {
683
697
  img = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
684
698
  style: {
685
699
  width,
@@ -698,8 +712,8 @@ function Image({
698
712
  const ratio = numericRatio || customRatio || naturalRatio || 1;
699
713
  const currentWidth = !numericWidth && numericHeight ? numericHeight * ratio : numericWidth;
700
714
  const currentHeight = !numericHeight && numericWidth ? numericWidth / ratio : numericHeight;
701
- const minWidth = naturalWidth < naturalHeight ? _constants2.MIN_SIZE : _constants2.MIN_SIZE * ratio;
702
- const minHeight = naturalHeight < naturalWidth ? _constants2.MIN_SIZE : _constants2.MIN_SIZE / ratio;
715
+ const minWidth = naturalWidth < naturalHeight ? _constants.MIN_SIZE : _constants.MIN_SIZE * ratio;
716
+ const minHeight = naturalHeight < naturalWidth ? _constants.MIN_SIZE : _constants.MIN_SIZE / ratio;
703
717
 
704
718
  // With the current implementation of ResizableBox, an image needs an
705
719
  // explicit pixel value for the max-width. In absence of being able to
@@ -792,7 +806,7 @@ function Image({
792
806
  isSelected: isSingleSelected,
793
807
  insertBlocksAfter: insertBlocksAfter,
794
808
  label: (0, _i18n.__)('Image caption text'),
795
- showToolbarButton: isSingleSelected && hasNonContentControls,
809
+ showToolbarButton: isSingleSelected && hasNonContentControls && !arePatternOverridesEnabled,
796
810
  readOnly: lockCaption
797
811
  })]
798
812
  });