@wordpress/block-library 8.4.0 → 8.5.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 (405) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/archives/edit.js +3 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/audio/edit.js +2 -0
  5. package/build/audio/edit.js.map +1 -1
  6. package/build/avatar/edit.js +5 -9
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/categories/edit.js +5 -0
  9. package/build/categories/edit.js.map +1 -1
  10. package/build/columns/edit.js +1 -0
  11. package/build/columns/edit.js.map +1 -1
  12. package/build/columns/utils.js +2 -2
  13. package/build/columns/utils.js.map +1 -1
  14. package/build/comment-author-name/edit.js +2 -0
  15. package/build/comment-author-name/edit.js.map +1 -1
  16. package/build/comment-date/edit.js +1 -0
  17. package/build/comment-date/edit.js.map +1 -1
  18. package/build/comment-edit-link/edit.js +1 -0
  19. package/build/comment-edit-link/edit.js.map +1 -1
  20. package/build/comments-title/edit.js +2 -0
  21. package/build/comments-title/edit.js.map +1 -1
  22. package/build/cover/edit/inspector-controls.js +2 -0
  23. package/build/cover/edit/inspector-controls.js.map +1 -1
  24. package/build/embed/embed-controls.js +1 -0
  25. package/build/embed/embed-controls.js.map +1 -1
  26. package/build/file/inspector.js +3 -0
  27. package/build/file/inspector.js.map +1 -1
  28. package/build/freeform/modal.js +1 -1
  29. package/build/freeform/modal.js.map +1 -1
  30. package/build/gallery/edit.js +2 -0
  31. package/build/gallery/edit.js.map +1 -1
  32. package/build/gallery/shared.js +4 -8
  33. package/build/gallery/shared.js.map +1 -1
  34. package/build/gallery/use-image-sizes.js +4 -8
  35. package/build/gallery/use-image-sizes.js.map +1 -1
  36. package/build/gallery/v1/edit.js +8 -3
  37. package/build/gallery/v1/edit.js.map +1 -1
  38. package/build/gallery/v1/gallery-image.js +1 -3
  39. package/build/gallery/v1/gallery-image.js.map +1 -1
  40. package/build/gallery/v1/shared.js +4 -7
  41. package/build/gallery/v1/shared.js.map +1 -1
  42. package/build/image/edit.js +6 -4
  43. package/build/image/edit.js.map +1 -1
  44. package/build/image/image.js +6 -2
  45. package/build/image/image.js.map +1 -1
  46. package/build/image/utils.js +3 -1
  47. package/build/image/utils.js.map +1 -1
  48. package/build/index.js +3 -1
  49. package/build/index.js.map +1 -1
  50. package/build/latest-comments/edit.js +3 -0
  51. package/build/latest-comments/edit.js.map +1 -1
  52. package/build/latest-posts/edit.js +4 -0
  53. package/build/latest-posts/edit.js.map +1 -1
  54. package/build/list/ordered-list-settings.js +1 -0
  55. package/build/list/ordered-list-settings.js.map +1 -1
  56. package/build/list-item/edit.js +2 -2
  57. package/build/list-item/edit.js.map +1 -1
  58. package/build/list-item/hooks/use-outdent-list-item.js +2 -1
  59. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  60. package/build/loginout/edit.js +2 -0
  61. package/build/loginout/edit.js.map +1 -1
  62. package/build/media-text/edit.js +2 -0
  63. package/build/media-text/edit.js.map +1 -1
  64. package/build/more/edit.js +1 -0
  65. package/build/more/edit.js.map +1 -1
  66. package/build/navigation/edit/index.js +80 -54
  67. package/build/navigation/edit/index.js.map +1 -1
  68. package/build/navigation/edit/navigation-menu-selector.js +1 -1
  69. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build/navigation/edit/overlay-menu-preview.js +1 -0
  71. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  72. package/build/navigation/edit/placeholder/index.js +1 -1
  73. package/build/navigation/edit/placeholder/index.js.map +1 -1
  74. package/build/navigation/edit/unsaved-inner-blocks.js +1 -1
  75. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  76. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  77. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  78. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  79. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  80. package/build/navigation/edit/use-generate-default-navigation-title.js +1 -1
  81. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  82. package/build/navigation/edit/use-navigation-notice.js +4 -7
  83. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  84. package/build/navigation-link/link-ui.js +1 -0
  85. package/build/navigation-link/link-ui.js.map +1 -1
  86. package/build/page-list/convert-to-links-modal.js +47 -0
  87. package/build/page-list/convert-to-links-modal.js.map +1 -0
  88. package/build/page-list/edit.js +10 -24
  89. package/build/page-list/edit.js.map +1 -1
  90. package/build/paragraph/edit.js +1 -0
  91. package/build/paragraph/edit.js.map +1 -1
  92. package/build/post-author/edit.js +4 -0
  93. package/build/post-author/edit.js.map +1 -1
  94. package/build/post-author-name/edit.js +2 -0
  95. package/build/post-author-name/edit.js.map +1 -1
  96. package/build/post-date/edit.js +2 -0
  97. package/build/post-date/edit.js.map +1 -1
  98. package/build/post-excerpt/edit.js +1 -0
  99. package/build/post-excerpt/edit.js.map +1 -1
  100. package/build/post-featured-image/edit.js +2 -0
  101. package/build/post-featured-image/edit.js.map +1 -1
  102. package/build/post-navigation-link/edit.js +2 -0
  103. package/build/post-navigation-link/edit.js.map +1 -1
  104. package/build/post-terms/use-post-terms.js +1 -1
  105. package/build/post-terms/use-post-terms.js.map +1 -1
  106. package/build/post-time-to-read/edit.js +104 -0
  107. package/build/post-time-to-read/edit.js.map +1 -0
  108. package/build/post-time-to-read/icon.js +25 -0
  109. package/build/post-time-to-read/icon.js.map +1 -0
  110. package/build/post-time-to-read/index.js +57 -0
  111. package/build/post-time-to-read/index.js.map +1 -0
  112. package/build/post-title/edit.js +2 -0
  113. package/build/post-title/edit.js.map +1 -1
  114. package/build/query/edit/inspector-controls/index.js +1 -0
  115. package/build/query/edit/inspector-controls/index.js.map +1 -1
  116. package/build/query-title/edit.js +2 -0
  117. package/build/query-title/edit.js.map +1 -1
  118. package/build/read-more/edit.js +1 -0
  119. package/build/read-more/edit.js.map +1 -1
  120. package/build/rss/edit.js +3 -0
  121. package/build/rss/edit.js.map +1 -1
  122. package/build/site-logo/edit.js +3 -0
  123. package/build/site-logo/edit.js.map +1 -1
  124. package/build/site-tagline/index.js +1 -0
  125. package/build/site-tagline/index.js.map +1 -1
  126. package/build/site-title/edit/index.js +2 -0
  127. package/build/site-title/edit/index.js.map +1 -1
  128. package/build/social-links/edit.js +4 -1
  129. package/build/social-links/edit.js.map +1 -1
  130. package/build/spacer/controls.native.js +10 -8
  131. package/build/spacer/controls.native.js.map +1 -1
  132. package/build/spacer/edit.native.js +43 -5
  133. package/build/spacer/edit.native.js.map +1 -1
  134. package/build/spacer/save.native.js +30 -0
  135. package/build/spacer/save.native.js.map +1 -0
  136. package/build/table/edit.js +3 -0
  137. package/build/table/edit.js.map +1 -1
  138. package/build/table-of-contents/edit.js +1 -0
  139. package/build/table-of-contents/edit.js.map +1 -1
  140. package/build/tag-cloud/edit.js +1 -0
  141. package/build/tag-cloud/edit.js.map +1 -1
  142. package/build/template-part/edit/import-controls.js +29 -6
  143. package/build/template-part/edit/import-controls.js.map +1 -1
  144. package/build/video/edit-common-settings.js +5 -0
  145. package/build/video/edit-common-settings.js.map +1 -1
  146. package/build-module/archives/edit.js +3 -0
  147. package/build-module/archives/edit.js.map +1 -1
  148. package/build-module/audio/edit.js +2 -0
  149. package/build-module/audio/edit.js.map +1 -1
  150. package/build-module/avatar/edit.js +5 -8
  151. package/build-module/avatar/edit.js.map +1 -1
  152. package/build-module/categories/edit.js +5 -0
  153. package/build-module/categories/edit.js.map +1 -1
  154. package/build-module/columns/edit.js +1 -0
  155. package/build-module/columns/edit.js.map +1 -1
  156. package/build-module/columns/utils.js +3 -3
  157. package/build-module/columns/utils.js.map +1 -1
  158. package/build-module/comment-author-name/edit.js +2 -0
  159. package/build-module/comment-author-name/edit.js.map +1 -1
  160. package/build-module/comment-date/edit.js +1 -0
  161. package/build-module/comment-date/edit.js.map +1 -1
  162. package/build-module/comment-edit-link/edit.js +1 -0
  163. package/build-module/comment-edit-link/edit.js.map +1 -1
  164. package/build-module/comments-title/edit.js +2 -0
  165. package/build-module/comments-title/edit.js.map +1 -1
  166. package/build-module/cover/edit/inspector-controls.js +2 -0
  167. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  168. package/build-module/embed/embed-controls.js +1 -0
  169. package/build-module/embed/embed-controls.js.map +1 -1
  170. package/build-module/file/inspector.js +3 -0
  171. package/build-module/file/inspector.js.map +1 -1
  172. package/build-module/freeform/modal.js +1 -1
  173. package/build-module/freeform/modal.js.map +1 -1
  174. package/build-module/gallery/edit.js +2 -0
  175. package/build-module/gallery/edit.js.map +1 -1
  176. package/build-module/gallery/shared.js +4 -7
  177. package/build-module/gallery/shared.js.map +1 -1
  178. package/build-module/gallery/use-image-sizes.js +4 -7
  179. package/build-module/gallery/use-image-sizes.js.map +1 -1
  180. package/build-module/gallery/v1/edit.js +9 -4
  181. package/build-module/gallery/v1/edit.js.map +1 -1
  182. package/build-module/gallery/v1/gallery-image.js +1 -2
  183. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  184. package/build-module/gallery/v1/shared.js +4 -6
  185. package/build-module/gallery/v1/shared.js.map +1 -1
  186. package/build-module/image/edit.js +7 -5
  187. package/build-module/image/edit.js.map +1 -1
  188. package/build-module/image/image.js +7 -3
  189. package/build-module/image/image.js.map +1 -1
  190. package/build-module/image/utils.js +4 -2
  191. package/build-module/image/utils.js.map +1 -1
  192. package/build-module/index.js +2 -1
  193. package/build-module/index.js.map +1 -1
  194. package/build-module/latest-comments/edit.js +3 -0
  195. package/build-module/latest-comments/edit.js.map +1 -1
  196. package/build-module/latest-posts/edit.js +4 -0
  197. package/build-module/latest-posts/edit.js.map +1 -1
  198. package/build-module/list/ordered-list-settings.js +1 -0
  199. package/build-module/list/ordered-list-settings.js.map +1 -1
  200. package/build-module/list-item/edit.js +2 -2
  201. package/build-module/list-item/edit.js.map +1 -1
  202. package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
  203. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  204. package/build-module/loginout/edit.js +2 -0
  205. package/build-module/loginout/edit.js.map +1 -1
  206. package/build-module/media-text/edit.js +2 -0
  207. package/build-module/media-text/edit.js.map +1 -1
  208. package/build-module/more/edit.js +1 -0
  209. package/build-module/more/edit.js.map +1 -1
  210. package/build-module/navigation/edit/index.js +82 -56
  211. package/build-module/navigation/edit/index.js.map +1 -1
  212. package/build-module/navigation/edit/navigation-menu-selector.js +1 -1
  213. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  214. package/build-module/navigation/edit/overlay-menu-preview.js +1 -0
  215. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  216. package/build-module/navigation/edit/placeholder/index.js +1 -1
  217. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  218. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -1
  219. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  220. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  221. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  222. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  223. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  224. package/build-module/navigation/edit/use-generate-default-navigation-title.js +1 -1
  225. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  226. package/build-module/navigation/edit/use-navigation-notice.js +5 -8
  227. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  228. package/build-module/navigation-link/link-ui.js +1 -0
  229. package/build-module/navigation-link/link-ui.js.map +1 -1
  230. package/build-module/page-list/convert-to-links-modal.js +35 -0
  231. package/build-module/page-list/convert-to-links-modal.js.map +1 -0
  232. package/build-module/page-list/edit.js +10 -25
  233. package/build-module/page-list/edit.js.map +1 -1
  234. package/build-module/paragraph/edit.js +1 -0
  235. package/build-module/paragraph/edit.js.map +1 -1
  236. package/build-module/post-author/edit.js +4 -0
  237. package/build-module/post-author/edit.js.map +1 -1
  238. package/build-module/post-author-name/edit.js +2 -0
  239. package/build-module/post-author-name/edit.js.map +1 -1
  240. package/build-module/post-date/edit.js +2 -0
  241. package/build-module/post-date/edit.js.map +1 -1
  242. package/build-module/post-excerpt/edit.js +1 -0
  243. package/build-module/post-excerpt/edit.js.map +1 -1
  244. package/build-module/post-featured-image/edit.js +2 -0
  245. package/build-module/post-featured-image/edit.js.map +1 -1
  246. package/build-module/post-navigation-link/edit.js +2 -0
  247. package/build-module/post-navigation-link/edit.js.map +1 -1
  248. package/build-module/post-terms/use-post-terms.js +1 -1
  249. package/build-module/post-terms/use-post-terms.js.map +1 -1
  250. package/build-module/post-time-to-read/edit.js +90 -0
  251. package/build-module/post-time-to-read/edit.js.map +1 -0
  252. package/build-module/post-time-to-read/icon.js +15 -0
  253. package/build-module/post-time-to-read/icon.js.map +1 -0
  254. package/build-module/post-time-to-read/index.js +40 -0
  255. package/build-module/post-time-to-read/index.js.map +1 -0
  256. package/build-module/post-title/edit.js +2 -0
  257. package/build-module/post-title/edit.js.map +1 -1
  258. package/build-module/query/edit/inspector-controls/index.js +1 -0
  259. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  260. package/build-module/query-title/edit.js +2 -0
  261. package/build-module/query-title/edit.js.map +1 -1
  262. package/build-module/read-more/edit.js +1 -0
  263. package/build-module/read-more/edit.js.map +1 -1
  264. package/build-module/rss/edit.js +3 -0
  265. package/build-module/rss/edit.js.map +1 -1
  266. package/build-module/site-logo/edit.js +3 -0
  267. package/build-module/site-logo/edit.js.map +1 -1
  268. package/build-module/site-tagline/index.js +1 -0
  269. package/build-module/site-tagline/index.js.map +1 -1
  270. package/build-module/site-title/edit/index.js +2 -0
  271. package/build-module/site-title/edit/index.js.map +1 -1
  272. package/build-module/social-links/edit.js +4 -1
  273. package/build-module/social-links/edit.js.map +1 -1
  274. package/build-module/spacer/controls.native.js +9 -8
  275. package/build-module/spacer/controls.native.js.map +1 -1
  276. package/build-module/spacer/edit.native.js +39 -7
  277. package/build-module/spacer/edit.native.js.map +1 -1
  278. package/build-module/spacer/save.native.js +22 -0
  279. package/build-module/spacer/save.native.js.map +1 -0
  280. package/build-module/table/edit.js +3 -0
  281. package/build-module/table/edit.js.map +1 -1
  282. package/build-module/table-of-contents/edit.js +1 -0
  283. package/build-module/table-of-contents/edit.js.map +1 -1
  284. package/build-module/tag-cloud/edit.js +1 -0
  285. package/build-module/tag-cloud/edit.js.map +1 -1
  286. package/build-module/template-part/edit/import-controls.js +28 -6
  287. package/build-module/template-part/edit/import-controls.js.map +1 -1
  288. package/build-module/video/edit-common-settings.js +5 -0
  289. package/build-module/video/edit-common-settings.js.map +1 -1
  290. package/build-style/editor-rtl.css +4 -3
  291. package/build-style/editor.css +4 -3
  292. package/build-style/post-excerpt/editor-rtl.css +1 -1
  293. package/build-style/post-excerpt/editor.css +1 -1
  294. package/build-style/query/editor-rtl.css +1 -0
  295. package/build-style/query/editor.css +1 -0
  296. package/build-style/site-logo/editor-rtl.css +2 -2
  297. package/build-style/site-logo/editor.css +2 -2
  298. package/package.json +31 -30
  299. package/src/archives/edit.js +3 -0
  300. package/src/audio/edit.js +2 -0
  301. package/src/audio/test/__snapshots__/edit.native.js.snap +38 -38
  302. package/src/avatar/edit.js +2 -4
  303. package/src/buttons/test/__snapshots__/edit.native.js.snap +11 -11
  304. package/src/categories/edit.js +5 -0
  305. package/src/code/test/__snapshots__/edit.native.js.snap +2 -2
  306. package/src/columns/edit.js +1 -0
  307. package/src/columns/test/__snapshots__/edit.native.js.snap +66 -66
  308. package/src/columns/test/utils.js +54 -0
  309. package/src/columns/utils.js +8 -8
  310. package/src/comment-author-name/edit.js +2 -0
  311. package/src/comment-date/edit.js +1 -0
  312. package/src/comment-edit-link/edit.js +1 -0
  313. package/src/comments-title/edit.js +2 -0
  314. package/src/cover/edit/inspector-controls.js +2 -0
  315. package/src/cover/index.php +4 -6
  316. package/src/cover/test/__snapshots__/edit.native.js.snap +36 -36
  317. package/src/embed/embed-controls.js +1 -0
  318. package/src/embed/test/__snapshots__/index.native.js.snap +52 -52
  319. package/src/file/inspector.js +3 -0
  320. package/src/file/test/__snapshots__/edit.native.js.snap +49 -49
  321. package/src/freeform/modal.js +1 -1
  322. package/src/gallery/edit.js +2 -0
  323. package/src/gallery/shared.js +6 -11
  324. package/src/gallery/test/__snapshots__/index.native.js.snap +71 -71
  325. package/src/gallery/use-image-sizes.js +3 -16
  326. package/src/gallery/v1/edit.js +8 -16
  327. package/src/gallery/v1/gallery-image.js +1 -2
  328. package/src/gallery/v1/shared.js +5 -10
  329. package/src/group/test/__snapshots__/edit.native.js.snap +5 -5
  330. package/src/heading/test/__snapshots__/index.native.js.snap +1 -1
  331. package/src/image/edit.js +4 -4
  332. package/src/image/image.js +4 -9
  333. package/src/image/index.php +4 -4
  334. package/src/image/utils.js +2 -2
  335. package/src/index.js +2 -0
  336. package/src/latest-comments/edit.js +3 -0
  337. package/src/latest-posts/edit.js +4 -0
  338. package/src/list/ordered-list-settings.js +1 -0
  339. package/src/list/test/__snapshots__/edit.native.js.snap +4 -4
  340. package/src/list-item/edit.js +10 -3
  341. package/src/list-item/hooks/use-outdent-list-item.js +2 -1
  342. package/src/loginout/edit.js +2 -0
  343. package/src/media-text/edit.js +2 -0
  344. package/src/missing/test/__snapshots__/edit.native.js.snap +1 -1
  345. package/src/more/edit.js +1 -0
  346. package/src/navigation/edit/index.js +130 -82
  347. package/src/navigation/edit/navigation-menu-selector.js +1 -1
  348. package/src/navigation/edit/overlay-menu-preview.js +1 -0
  349. package/src/navigation/edit/placeholder/index.js +1 -1
  350. package/src/navigation/edit/unsaved-inner-blocks.js +1 -0
  351. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +51 -48
  352. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  353. package/src/navigation/edit/use-generate-default-navigation-title.js +1 -1
  354. package/src/navigation/edit/use-navigation-notice.js +16 -13
  355. package/src/navigation/index.php +42 -19
  356. package/src/navigation-link/link-ui.js +1 -0
  357. package/src/navigation-link/test/__snapshots__/hooks.js.snap +12 -12
  358. package/src/page-list/convert-to-links-modal.js +38 -0
  359. package/src/page-list/edit.js +11 -32
  360. package/src/paragraph/edit.js +1 -0
  361. package/src/post-author/edit.js +4 -0
  362. package/src/post-author-name/edit.js +2 -0
  363. package/src/post-date/edit.js +2 -0
  364. package/src/post-excerpt/edit.js +1 -0
  365. package/src/post-excerpt/editor.scss +1 -1
  366. package/src/post-featured-image/edit.js +2 -0
  367. package/src/post-navigation-link/edit.js +2 -0
  368. package/src/post-terms/index.php +1 -0
  369. package/src/post-terms/use-post-terms.js +1 -1
  370. package/src/post-time-to-read/block.json +20 -0
  371. package/src/post-time-to-read/edit.js +101 -0
  372. package/src/post-time-to-read/icon.js +15 -0
  373. package/src/post-time-to-read/index.js +17 -0
  374. package/src/post-time-to-read/index.php +62 -0
  375. package/src/post-title/edit.js +2 -0
  376. package/src/preformatted/test/__snapshots__/edit.native.js.snap +10 -10
  377. package/src/query/edit/inspector-controls/index.js +1 -0
  378. package/src/query/editor.scss +1 -0
  379. package/src/query-title/edit.js +2 -0
  380. package/src/read-more/edit.js +1 -0
  381. package/src/rss/edit.js +3 -0
  382. package/src/search/test/__snapshots__/edit.native.js.snap +60 -60
  383. package/src/separator/test/__snapshots__/edit.native.js.snap +1 -1
  384. package/src/site-logo/edit.js +3 -0
  385. package/src/site-logo/editor.scss +3 -3
  386. package/src/site-logo/index.php +7 -2
  387. package/src/site-tagline/block.json +1 -0
  388. package/src/site-title/edit/index.js +2 -0
  389. package/src/social-link/index.php +6 -6
  390. package/src/social-links/edit.js +3 -0
  391. package/src/social-links/test/__snapshots__/edit.native.js.snap +16 -16
  392. package/src/spacer/controls.native.js +13 -5
  393. package/src/spacer/edit.native.js +45 -6
  394. package/src/spacer/save.native.js +18 -0
  395. package/src/spacer/test/__snapshots__/index.native.js.snap +21 -9
  396. package/src/spacer/test/index.native.js +81 -0
  397. package/src/table/edit.js +3 -0
  398. package/src/table-of-contents/edit.js +1 -0
  399. package/src/tag-cloud/edit.js +1 -0
  400. package/src/template-part/edit/import-controls.js +24 -5
  401. package/src/template-part/index.php +7 -6
  402. package/src/verse/test/__snapshots__/edit.native.js.snap +2 -2
  403. package/src/video/edit-common-settings.js +5 -0
  404. package/tsconfig.json +2 -1
  405. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","compose","usePrevious","BaseControl","PanelBody","SelectControl","ToggleControl","RangeControl","Spinner","ToolbarButton","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","useInnerBlocksProps","BlockControls","MediaReplaceFlow","Platform","useCallback","useEffect","useState","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","caption","captionIcon","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useGetNewImages","useGetMedia","GapStyles","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","columns","imageCrop","linkTarget","linkTo","sizeSlug","showCaption","setShowCaption","prevCaption","captionRef","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","clearSelectedBlock","createSuccessNotice","createErrorNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","wasBlockJustInserted","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","length","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","title","instructions","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Math","min","isWeb","style","spacing","blockGap","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose, usePrevious } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { caption as captionIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst allowedBlocks = [ 'core/image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t} = props;\n\n\tconst { columns, imageCrop, linkTarget, linkTo, sizeSlug, caption } =\n\t\tattributes;\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst prevCaption = usePrevious( caption );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! caption ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst wasBlockJustInserted = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t\tif ( newImages?.length > 0 ) {\n\t\t\tclearSelectedBlock();\n\t\t}\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\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 file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\tmultiple={ true }\n\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tshowCaption={ showCaption }\n\t\t\t\tref={ Platform.isWeb ? captionRef : undefined }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","compose","usePrevious","BaseControl","PanelBody","SelectControl","ToggleControl","RangeControl","Spinner","ToolbarButton","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","useInnerBlocksProps","BlockControls","MediaReplaceFlow","Platform","useCallback","useEffect","useState","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","caption","captionIcon","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useGetNewImages","useGetMedia","GapStyles","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","columns","imageCrop","linkTarget","linkTo","sizeSlug","showCaption","setShowCaption","prevCaption","captionRef","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","clearSelectedBlock","createSuccessNotice","createErrorNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","wasBlockJustInserted","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","length","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","title","instructions","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Math","min","isWeb","style","spacing","blockGap","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose, usePrevious } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { caption as captionIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst allowedBlocks = [ 'core/image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t} = props;\n\n\tconst { columns, imageCrop, linkTarget, linkTo, sizeSlug, caption } =\n\t\tattributes;\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst prevCaption = usePrevious( caption );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! caption ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst wasBlockJustInserted = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t\tif ( newImages?.length > 0 ) {\n\t\t\tclearSelectedBlock();\n\t\t}\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\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 file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\tmultiple={ true }\n\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tshowCaption={ showCaption }\n\t\t\t\tref={ Platform.isWeb ? captionRef : undefined }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"]}
@@ -1,23 +1,20 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { get } from 'lodash';
5
1
  /**
6
2
  * WordPress dependencies
7
3
  */
8
-
9
4
  import { Platform } from '@wordpress/element';
10
5
  export function defaultColumnsNumber(imageCount) {
11
6
  return imageCount ? Math.min(3, imageCount) : 3;
12
7
  }
13
8
  export const pickRelevantMediaFiles = function (image) {
9
+ var _image$sizes, _image$sizes$sizeSlug, _image$media_details, _image$media_details$, _image$media_details$2, _image$sizes2, _image$sizes2$full, _image$media_details2, _image$media_details3, _image$media_details4;
10
+
14
11
  let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large';
15
12
  const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(_ref => {
16
13
  let [key] = _ref;
17
14
  return ['alt', 'id', 'link'].includes(key);
18
15
  }));
19
- imageProps.url = get(image, ['sizes', sizeSlug, 'url']) || get(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url || image.source_url;
20
- const fullUrl = get(image, ['sizes', 'full', 'url']) || get(image, ['media_details', 'sizes', 'full', 'source_url']);
16
+ imageProps.url = (image === null || image === void 0 ? void 0 : (_image$sizes = image.sizes) === null || _image$sizes === void 0 ? void 0 : (_image$sizes$sizeSlug = _image$sizes[sizeSlug]) === null || _image$sizes$sizeSlug === void 0 ? void 0 : _image$sizes$sizeSlug.url) || (image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$ = _image$media_details.sizes) === null || _image$media_details$ === void 0 ? void 0 : (_image$media_details$2 = _image$media_details$[sizeSlug]) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2.source_url) || (image === null || image === void 0 ? void 0 : image.url) || (image === null || image === void 0 ? void 0 : image.source_url);
17
+ const fullUrl = (image === null || image === void 0 ? void 0 : (_image$sizes2 = image.sizes) === null || _image$sizes2 === void 0 ? void 0 : (_image$sizes2$full = _image$sizes2.full) === null || _image$sizes2$full === void 0 ? void 0 : _image$sizes2$full.url) || (image === null || image === void 0 ? void 0 : (_image$media_details2 = image.media_details) === null || _image$media_details2 === void 0 ? void 0 : (_image$media_details3 = _image$media_details2.sizes) === null || _image$media_details3 === void 0 ? void 0 : (_image$media_details4 = _image$media_details3.full) === null || _image$media_details4 === void 0 ? void 0 : _image$media_details4.source_url);
21
18
 
22
19
  if (fullUrl) {
23
20
  imageProps.fullUrl = fullUrl;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/shared.js"],"names":["get","Platform","defaultColumnsNumber","imageCount","Math","min","pickRelevantMediaFiles","image","sizeSlug","imageProps","Object","fromEntries","entries","filter","key","includes","url","source_url","fullUrl","getGalleryBlockV2Enabled","window","wp","galleryBlockV2Enabled","isGalleryV2Enabled","isNative"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAT,QAAoB,QAApB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA,OAAO,SAASC,oBAAT,CAA+BC,UAA/B,EAA4C;AAClD,SAAOA,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAU,CAAV,EAAaF,UAAb,CAAH,GAA+B,CAAhD;AACA;AAED,OAAO,MAAMG,sBAAsB,GAAG,UAAEC,KAAF,EAAiC;AAAA,MAAxBC,QAAwB,uEAAb,OAAa;AACtE,QAAMC,UAAU,GAAGC,MAAM,CAACC,WAAP,CAClBD,MAAM,CAACE,OAAP,CAAgBL,KAAhB,aAAgBA,KAAhB,cAAgBA,KAAhB,GAAyB,EAAzB,EAA8BM,MAA9B,CAAsC;AAAA,QAAE,CAAEC,GAAF,CAAF;AAAA,WACrC,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,EAAwBC,QAAxB,CAAkCD,GAAlC,CADqC;AAAA,GAAtC,CADkB,CAAnB;AAMAL,EAAAA,UAAU,CAACO,GAAX,GACChB,GAAG,CAAEO,KAAF,EAAS,CAAE,OAAF,EAAWC,QAAX,EAAqB,KAArB,CAAT,CAAH,IACAR,GAAG,CAAEO,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4BC,QAA5B,EAAsC,YAAtC,CAAT,CADH,IAEAD,KAAK,CAACS,GAFN,IAGAT,KAAK,CAACU,UAJP;AAKA,QAAMC,OAAO,GACZlB,GAAG,CAAEO,KAAF,EAAS,CAAE,OAAF,EAAW,MAAX,EAAmB,KAAnB,CAAT,CAAH,IACAP,GAAG,CAAEO,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4B,MAA5B,EAAoC,YAApC,CAAT,CAFJ;;AAGA,MAAKW,OAAL,EAAe;AACdT,IAAAA,UAAU,CAACS,OAAX,GAAqBA,OAArB;AACA;;AACD,SAAOT,UAAP;AACA,CAnBM;;AAqBP,SAASU,wBAAT,GAAoC;AACnC;AACA;AACA,MAAK,CAAEC,MAAM,CAACC,EAAT,IAAe,OAAOD,MAAM,CAACC,EAAP,CAAUC,qBAAjB,KAA2C,SAA/D,EAA2E;AAC1E,UAAM,gDAAN;AACA;;AACD,SAAOF,MAAM,CAACC,EAAP,CAAUC,qBAAjB;AACA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASC,kBAAT,GAA8B;AACpC,MAAKtB,QAAQ,CAACuB,QAAd,EAAyB;AACxB,WAAOL,wBAAwB,EAA/B;AACA;;AAED,SAAO,IAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Platform } from '@wordpress/element';\n\nexport function defaultColumnsNumber( imageCount ) {\n\treturn imageCount ? Math.min( 3, imageCount ) : 3;\n}\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\tget( image, [ 'sizes', sizeSlug, 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', sizeSlug, 'source_url' ] ) ||\n\t\timage.url ||\n\t\timage.source_url;\n\tconst fullUrl =\n\t\tget( image, [ 'sizes', 'full', 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', 'full', 'source_url' ] );\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n\nfunction getGalleryBlockV2Enabled() {\n\t// We want to fail early here, at least during beta testing phase, to ensure\n\t// there aren't instances where undefined values cause false negatives.\n\tif ( ! window.wp || typeof window.wp.galleryBlockV2Enabled !== 'boolean' ) {\n\t\tthrow 'window.wp.galleryBlockV2Enabled is not defined';\n\t}\n\treturn window.wp.galleryBlockV2Enabled;\n}\n\n/**\n * The new gallery block format is not compatible with the use_BalanceTags option\n * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The\n * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method\n * can be removed when minimum supported WP version >=5.9.\n */\nexport function isGalleryV2Enabled() {\n\tif ( Platform.isNative ) {\n\t\treturn getGalleryBlockV2Enabled();\n\t}\n\n\treturn true;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/shared.js"],"names":["Platform","defaultColumnsNumber","imageCount","Math","min","pickRelevantMediaFiles","image","sizeSlug","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","fullUrl","full","getGalleryBlockV2Enabled","window","wp","galleryBlockV2Enabled","isGalleryV2Enabled","isNative"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,oBAAzB;AAEA,OAAO,SAASC,oBAAT,CAA+BC,UAA/B,EAA4C;AAClD,SAAOA,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAU,CAAV,EAAaF,UAAb,CAAH,GAA+B,CAAhD;AACA;AAED,OAAO,MAAMG,sBAAsB,GAAG,UAAEC,KAAF,EAAiC;AAAA;;AAAA,MAAxBC,QAAwB,uEAAb,OAAa;AACtE,QAAMC,UAAU,GAAGC,MAAM,CAACC,WAAP,CAClBD,MAAM,CAACE,OAAP,CAAgBL,KAAhB,aAAgBA,KAAhB,cAAgBA,KAAhB,GAAyB,EAAzB,EAA8BM,MAA9B,CAAsC;AAAA,QAAE,CAAEC,GAAF,CAAF;AAAA,WACrC,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,EAAwBC,QAAxB,CAAkCD,GAAlC,CADqC;AAAA,GAAtC,CADkB,CAAnB;AAMAL,EAAAA,UAAU,CAACO,GAAX,GACC,CAAAT,KAAK,SAAL,IAAAA,KAAK,WAAL,4BAAAA,KAAK,CAAEU,KAAP,uFAAgBT,QAAhB,iFAA4BQ,GAA5B,MACAT,KADA,aACAA,KADA,+CACAA,KAAK,CAAEW,aADP,kFACA,qBAAsBD,KADtB,oFACA,sBAA+BT,QAA/B,CADA,2DACA,uBAA2CW,UAD3C,MAEAZ,KAFA,aAEAA,KAFA,uBAEAA,KAAK,CAAES,GAFP,MAGAT,KAHA,aAGAA,KAHA,uBAGAA,KAAK,CAAEY,UAHP,CADD;AAKA,QAAMC,OAAO,GACZ,CAAAb,KAAK,SAAL,IAAAA,KAAK,WAAL,6BAAAA,KAAK,CAAEU,KAAP,sFAAcI,IAAd,0EAAoBL,GAApB,MACAT,KADA,aACAA,KADA,gDACAA,KAAK,CAAEW,aADP,mFACA,sBAAsBD,KADtB,mFACA,sBAA6BI,IAD7B,0DACA,sBAAmCF,UADnC,CADD;;AAGA,MAAKC,OAAL,EAAe;AACdX,IAAAA,UAAU,CAACW,OAAX,GAAqBA,OAArB;AACA;;AACD,SAAOX,UAAP;AACA,CAnBM;;AAqBP,SAASa,wBAAT,GAAoC;AACnC;AACA;AACA,MAAK,CAAEC,MAAM,CAACC,EAAT,IAAe,OAAOD,MAAM,CAACC,EAAP,CAAUC,qBAAjB,KAA2C,SAA/D,EAA2E;AAC1E,UAAM,gDAAN;AACA;;AACD,SAAOF,MAAM,CAACC,EAAP,CAAUC,qBAAjB;AACA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASC,kBAAT,GAA8B;AACpC,MAAKzB,QAAQ,CAAC0B,QAAd,EAAyB;AACxB,WAAOL,wBAAwB,EAA/B;AACA;;AAED,SAAO,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Platform } from '@wordpress/element';\n\nexport function defaultColumnsNumber( imageCount ) {\n\treturn imageCount ? Math.min( 3, imageCount ) : 3;\n}\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ sizeSlug ]?.url ||\n\t\timage?.media_details?.sizes?.[ sizeSlug ]?.source_url ||\n\t\timage?.url ||\n\t\timage?.source_url;\n\tconst fullUrl =\n\t\timage?.sizes?.full?.url ||\n\t\timage?.media_details?.sizes?.full?.source_url;\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n\nfunction getGalleryBlockV2Enabled() {\n\t// We want to fail early here, at least during beta testing phase, to ensure\n\t// there aren't instances where undefined values cause false negatives.\n\tif ( ! window.wp || typeof window.wp.galleryBlockV2Enabled !== 'boolean' ) {\n\t\tthrow 'window.wp.galleryBlockV2Enabled is not defined';\n\t}\n\treturn window.wp.galleryBlockV2Enabled;\n}\n\n/**\n * The new gallery block format is not compatible with the use_BalanceTags option\n * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The\n * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method\n * can be removed when minimum supported WP version >=5.9.\n */\nexport function isGalleryV2Enabled() {\n\tif ( Platform.isNative ) {\n\t\treturn getGalleryBlockV2Enabled();\n\t}\n\n\treturn true;\n}\n"]}
@@ -1,11 +1,6 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { get } from 'lodash';
5
1
  /**
6
2
  * WordPress dependencies
7
3
  */
8
-
9
4
  import { useMemo } from '@wordpress/element';
10
5
  /**
11
6
  * Calculates the image sizes that are avaible for the current gallery images in order to
@@ -38,8 +33,10 @@ export default function useImageSizes(images, isSelected, getSettings) {
38
33
  }
39
34
 
40
35
  const sizes = imageSizes.reduce((currentSizes, size) => {
41
- const defaultUrl = get(img, ['sizes', size.slug, 'url']);
42
- const mediaDetailsUrl = get(img, ['media_details', 'sizes', size.slug, 'source_url']);
36
+ var _img$sizes, _img$sizes$size$slug, _img$media_details, _img$media_details$si, _img$media_details$si2;
37
+
38
+ const defaultUrl = (_img$sizes = img.sizes) === null || _img$sizes === void 0 ? void 0 : (_img$sizes$size$slug = _img$sizes[size.slug]) === null || _img$sizes$size$slug === void 0 ? void 0 : _img$sizes$size$slug.url;
39
+ const mediaDetailsUrl = (_img$media_details = img.media_details) === null || _img$media_details === void 0 ? void 0 : (_img$media_details$si = _img$media_details.sizes) === null || _img$media_details$si === void 0 ? void 0 : (_img$media_details$si2 = _img$media_details$si[size.slug]) === null || _img$media_details$si2 === void 0 ? void 0 : _img$media_details$si2.source_url;
43
40
  return { ...currentSizes,
44
41
  [size.slug]: defaultUrl || mediaDetailsUrl
45
42
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/use-image-sizes.js"],"names":["get","useMemo","useImageSizes","images","isSelected","getSettings","getImageSizing","length","imageSizes","resizedImages","reduce","currentResizedImages","img","id","sizes","currentSizes","size","defaultUrl","slug","mediaDetailsUrl","parseInt","resizedImageSizes","Object","values","filter","some","map","name","value","label"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAT,QAAoB,QAApB;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,aAAT,CAAwBC,MAAxB,EAAgCC,UAAhC,EAA4CC,WAA5C,EAA0D;AACxE,SAAOJ,OAAO,CAAE,MAAMK,cAAc,EAAtB,EAA0B,CAAEH,MAAF,EAAUC,UAAV,CAA1B,CAAd;;AAEA,WAASE,cAAT,GAA0B;AACzB,QAAK,CAAEH,MAAF,IAAYA,MAAM,CAACI,MAAP,KAAkB,CAAnC,EAAuC;AACtC;AACA;;AACD,UAAM;AAAEC,MAAAA;AAAF,QAAiBH,WAAW,EAAlC;AACA,QAAII,aAAa,GAAG,EAApB;;AAEA,QAAKL,UAAL,EAAkB;AACjBK,MAAAA,aAAa,GAAGN,MAAM,CAACO,MAAP,CAAe,CAAEC,oBAAF,EAAwBC,GAAxB,KAAiC;AAC/D,YAAK,CAAEA,GAAG,CAACC,EAAX,EAAgB;AACf,iBAAOF,oBAAP;AACA;;AAED,cAAMG,KAAK,GAAGN,UAAU,CAACE,MAAX,CAAmB,CAAEK,YAAF,EAAgBC,IAAhB,KAA0B;AAC1D,gBAAMC,UAAU,GAAGjB,GAAG,CAAEY,GAAF,EAAO,CAC5B,OAD4B,EAE5BI,IAAI,CAACE,IAFuB,EAG5B,KAH4B,CAAP,CAAtB;AAKA,gBAAMC,eAAe,GAAGnB,GAAG,CAAEY,GAAF,EAAO,CACjC,eADiC,EAEjC,OAFiC,EAGjCI,IAAI,CAACE,IAH4B,EAIjC,YAJiC,CAAP,CAA3B;AAMA,iBAAO,EACN,GAAGH,YADG;AAEN,aAAEC,IAAI,CAACE,IAAP,GAAeD,UAAU,IAAIE;AAFvB,WAAP;AAIA,SAhBa,EAgBX,EAhBW,CAAd;AAiBA,eAAO,EACN,GAAGR,oBADG;AAEN,WAAES,QAAQ,CAAER,GAAG,CAACC,EAAN,EAAU,EAAV,CAAV,GAA4BC;AAFtB,SAAP;AAIA,OA1Be,EA0Bb,EA1Ba,CAAhB;AA2BA;;AACD,UAAMO,iBAAiB,GAAGC,MAAM,CAACC,MAAP,CAAed,aAAf,CAA1B;AACA,WAAOD,UAAU,CACfgB,MADK,CACG;AAAA,UAAE;AAAEN,QAAAA;AAAF,OAAF;AAAA,aACRG,iBAAiB,CAACI,IAAlB,CAA0BX,KAAF,IAAaA,KAAK,CAAEI,IAAF,CAA1C,CADQ;AAAA,KADH,EAILQ,GAJK,CAIA;AAAA,UAAE;AAAEC,QAAAA,IAAF;AAAQT,QAAAA;AAAR,OAAF;AAAA,aAAwB;AAAEU,QAAAA,KAAK,EAAEV,IAAT;AAAeW,QAAAA,KAAK,EAAEF;AAAtB,OAAxB;AAAA,KAJA,CAAP;AAKA;AACD","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Calculates the image sizes that are avaible for the current gallery images in order to\n * populate the 'Image size' selector.\n *\n * @param {Array} images Basic image block data taken from current gallery innerBlock\n * @param {boolean} isSelected Is the block currently selected in the editor.\n * @param {Function} getSettings Block editor store selector.\n *\n * @return {Array} An array of image size options.\n */\nexport default function useImageSizes( images, isSelected, getSettings ) {\n\treturn useMemo( () => getImageSizing(), [ images, isSelected ] );\n\n\tfunction getImageSizing() {\n\t\tif ( ! images || images.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { imageSizes } = getSettings();\n\t\tlet resizedImages = {};\n\n\t\tif ( isSelected ) {\n\t\t\tresizedImages = images.reduce( ( currentResizedImages, img ) => {\n\t\t\t\tif ( ! img.id ) {\n\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t}\n\n\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\tconst defaultUrl = get( img, [\n\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t'url',\n\t\t\t\t\t] );\n\t\t\t\t\tconst mediaDetailsUrl = get( img, [\n\t\t\t\t\t\t'media_details',\n\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t'source_url',\n\t\t\t\t\t] );\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t};\n\t\t\t\t}, {} );\n\t\t\t\treturn {\n\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t[ parseInt( img.id, 10 ) ]: sizes,\n\t\t\t\t};\n\t\t\t}, {} );\n\t\t}\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/use-image-sizes.js"],"names":["useMemo","useImageSizes","images","isSelected","getSettings","getImageSizing","length","imageSizes","resizedImages","reduce","currentResizedImages","img","id","sizes","currentSizes","size","defaultUrl","slug","url","mediaDetailsUrl","media_details","source_url","parseInt","resizedImageSizes","Object","values","filter","some","map","name","value","label"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,aAAT,CAAwBC,MAAxB,EAAgCC,UAAhC,EAA4CC,WAA5C,EAA0D;AACxE,SAAOJ,OAAO,CAAE,MAAMK,cAAc,EAAtB,EAA0B,CAAEH,MAAF,EAAUC,UAAV,CAA1B,CAAd;;AAEA,WAASE,cAAT,GAA0B;AACzB,QAAK,CAAEH,MAAF,IAAYA,MAAM,CAACI,MAAP,KAAkB,CAAnC,EAAuC;AACtC;AACA;;AACD,UAAM;AAAEC,MAAAA;AAAF,QAAiBH,WAAW,EAAlC;AACA,QAAII,aAAa,GAAG,EAApB;;AAEA,QAAKL,UAAL,EAAkB;AACjBK,MAAAA,aAAa,GAAGN,MAAM,CAACO,MAAP,CAAe,CAAEC,oBAAF,EAAwBC,GAAxB,KAAiC;AAC/D,YAAK,CAAEA,GAAG,CAACC,EAAX,EAAgB;AACf,iBAAOF,oBAAP;AACA;;AAED,cAAMG,KAAK,GAAGN,UAAU,CAACE,MAAX,CAAmB,CAAEK,YAAF,EAAgBC,IAAhB,KAA0B;AAAA;;AAC1D,gBAAMC,UAAU,iBAAGL,GAAG,CAACE,KAAP,uEAAG,WAAaE,IAAI,CAACE,IAAlB,CAAH,yDAAG,qBAA0BC,GAA7C;AACA,gBAAMC,eAAe,yBACpBR,GAAG,CAACS,aADgB,gFACpB,mBAAmBP,KADC,oFACpB,sBAA4BE,IAAI,CAACE,IAAjC,CADoB,2DACpB,uBAAyCI,UAD1C;AAEA,iBAAO,EACN,GAAGP,YADG;AAEN,aAAEC,IAAI,CAACE,IAAP,GAAeD,UAAU,IAAIG;AAFvB,WAAP;AAIA,SARa,EAQX,EARW,CAAd;AASA,eAAO,EACN,GAAGT,oBADG;AAEN,WAAEY,QAAQ,CAAEX,GAAG,CAACC,EAAN,EAAU,EAAV,CAAV,GAA4BC;AAFtB,SAAP;AAIA,OAlBe,EAkBb,EAlBa,CAAhB;AAmBA;;AACD,UAAMU,iBAAiB,GAAGC,MAAM,CAACC,MAAP,CAAejB,aAAf,CAA1B;AACA,WAAOD,UAAU,CACfmB,MADK,CACG;AAAA,UAAE;AAAET,QAAAA;AAAF,OAAF;AAAA,aACRM,iBAAiB,CAACI,IAAlB,CAA0Bd,KAAF,IAAaA,KAAK,CAAEI,IAAF,CAA1C,CADQ;AAAA,KADH,EAILW,GAJK,CAIA;AAAA,UAAE;AAAEC,QAAAA,IAAF;AAAQZ,QAAAA;AAAR,OAAF;AAAA,aAAwB;AAAEa,QAAAA,KAAK,EAAEb,IAAT;AAAec,QAAAA,KAAK,EAAEF;AAAtB,OAAxB;AAAA,KAJA,CAAP;AAKA;AACD","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Calculates the image sizes that are avaible for the current gallery images in order to\n * populate the 'Image size' selector.\n *\n * @param {Array} images Basic image block data taken from current gallery innerBlock\n * @param {boolean} isSelected Is the block currently selected in the editor.\n * @param {Function} getSettings Block editor store selector.\n *\n * @return {Array} An array of image size options.\n */\nexport default function useImageSizes( images, isSelected, getSettings ) {\n\treturn useMemo( () => getImageSizing(), [ images, isSelected ] );\n\n\tfunction getImageSizing() {\n\t\tif ( ! images || images.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { imageSizes } = getSettings();\n\t\tlet resizedImages = {};\n\n\t\tif ( isSelected ) {\n\t\t\tresizedImages = images.reduce( ( currentResizedImages, img ) => {\n\t\t\t\tif ( ! img.id ) {\n\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t}\n\n\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\tconst defaultUrl = img.sizes?.[ size.slug ]?.url;\n\t\t\t\t\tconst mediaDetailsUrl =\n\t\t\t\t\t\timg.media_details?.sizes?.[ size.slug ]?.source_url;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t};\n\t\t\t\t}, {} );\n\t\t\t\treturn {\n\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t[ parseInt( img.id, 10 ) ]: sizes,\n\t\t\t\t};\n\t\t\t}, {} );\n\t\t}\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n}\n"]}
@@ -4,7 +4,7 @@ import { createElement, Fragment } from "@wordpress/element";
4
4
  /**
5
5
  * External dependencies
6
6
  */
7
- import { get, isEmpty } from 'lodash';
7
+ import { isEmpty } from 'lodash';
8
8
  /**
9
9
  * WordPress dependencies
10
10
  */
@@ -97,8 +97,10 @@ function GalleryEdit(props) {
97
97
 
98
98
  const image = getMedia(id);
99
99
  const sizes = imageSizes.reduce((currentSizes, size) => {
100
- const defaultUrl = get(image, ['sizes', size.slug, 'url']);
101
- const mediaDetailsUrl = get(image, ['media_details', 'sizes', size.slug, 'source_url']);
100
+ var _image$sizes, _image$sizes$size$slu, _image$media_details, _image$media_details$, _image$media_details$2;
101
+
102
+ const defaultUrl = image === null || image === void 0 ? void 0 : (_image$sizes = image.sizes) === null || _image$sizes === void 0 ? void 0 : (_image$sizes$size$slu = _image$sizes[size.slug]) === null || _image$sizes$size$slu === void 0 ? void 0 : _image$sizes$size$slu.url;
103
+ const mediaDetailsUrl = image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$ = _image$media_details.sizes) === null || _image$media_details$ === void 0 ? void 0 : (_image$media_details$2 = _image$media_details$[size.slug]) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2.source_url;
102
104
  return { ...currentSizes,
103
105
  [size.slug]: defaultUrl || mediaDetailsUrl
104
106
  };
@@ -300,11 +302,13 @@ function GalleryEdit(props) {
300
302
 
301
303
  function updateImagesSize(newSizeSlug) {
302
304
  const updatedImages = (images !== null && images !== void 0 ? images : []).map(image => {
305
+ var _resizedImages$parseI;
306
+
303
307
  if (!image.id) {
304
308
  return image;
305
309
  }
306
310
 
307
- const url = get(resizedImages, [parseInt(image.id, 10), newSizeSlug]);
311
+ const url = (_resizedImages$parseI = resizedImages[parseInt(image.id, 10)]) === null || _resizedImages$parseI === void 0 ? void 0 : _resizedImages$parseI[newSizeSlug];
308
312
  return { ...image,
309
313
  ...(url && {
310
314
  url
@@ -403,6 +407,7 @@ function GalleryEdit(props) {
403
407
  }, MOBILE_CONTROL_PROPS_RANGE_CONTROL, {
404
408
  required: true
405
409
  })), createElement(ToggleControl, {
410
+ __nextHasNoMarginBottom: true,
406
411
  label: __('Crop images'),
407
412
  checked: !!imageCrop,
408
413
  onChange: toggleImageCrop,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["get","isEmpty","compose","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","MediaPlaceholder","InspectorControls","useBlockProps","store","blockEditorStore","Platform","useEffect","useState","useMemo","__","getBlobByURL","isBlobURL","revokeBlobURL","useDispatch","useSelect","withViewportMatch","View","coreStore","sharedIcon","pickRelevantMediaFiles","defaultColumnsNumberV1","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","resizedImages","ids","reduce","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","mediaDetailsUrl","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","map","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","filter","img","i","Math","min","selectCaption","newImage","newImageId","toString","currentImage","find","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","resizedImageSizes","Object","values","some","name","updateImagesSize","newSizeSlug","updatedImages","url","OS","every","filesList","forEach","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { imageSizes, mediaUpload, getMedia, wasBlockJustInserted } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\t\twasBlockJustInserted: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t\t};\n\t\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn ( attributes.ids ?? [] ).reduce(\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\t\tconst defaultUrl = get( image, [\n\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t'url',\n\t\t\t\t\t\t] );\n\t\t\t\t\t\tconst mediaDetailsUrl = get( image, [\n\t\t\t\t\t\t\t'media_details',\n\t\t\t\t\t\t\t'sizes',\n\t\t\t\t\t\t\tsize.slug,\n\t\t\t\t\t\t\t'source_url',\n\t\t\t\t\t\t] );\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t};\n\t\t\t\t\t}, {} );\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: newAttrs.images.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = images.filter( ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = newImage.id.toString();\n\t\tconst currentImage = images.find( ( { id } ) => id === newImageId );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = attachmentCaptions.find(\n\t\t\t( { id } ) => id === newImageId\n\t\t);\n\n\t\t// If the attachment caption is updated.\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = ( images ?? [] ).map( ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url = get( resizedImages, [\n\t\t\t\tparseInt( image.id, 10 ),\n\t\t\t\tnewSizeSlug,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\timages.every( ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = images.map( ( { url } ) => getBlobByURL( url ) );\n\t\t\timages.forEach( ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block.\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["isEmpty","compose","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","MediaPlaceholder","InspectorControls","useBlockProps","store","blockEditorStore","Platform","useEffect","useState","useMemo","__","getBlobByURL","isBlobURL","revokeBlobURL","useDispatch","useSelect","withViewportMatch","View","coreStore","sharedIcon","pickRelevantMediaFiles","defaultColumnsNumberV1","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","resizedImages","ids","reduce","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","url","mediaDetailsUrl","media_details","source_url","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","map","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","filter","img","i","Math","min","selectCaption","newImage","newImageId","toString","currentImage","find","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","resizedImageSizes","Object","values","some","name","updateImagesSize","newSizeSlug","updatedImages","OS","every","filesList","forEach","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { imageSizes, mediaUpload, getMedia, wasBlockJustInserted } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\t\twasBlockJustInserted: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t\t};\n\t\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn ( attributes.ids ?? [] ).reduce(\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\t\tconst defaultUrl = image?.sizes?.[ size.slug ]?.url;\n\t\t\t\t\t\tconst mediaDetailsUrl =\n\t\t\t\t\t\t\timage?.media_details?.sizes?.[ size.slug ]\n\t\t\t\t\t\t\t\t?.source_url;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t};\n\t\t\t\t\t}, {} );\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: newAttrs.images.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = images.filter( ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = newImage.id.toString();\n\t\tconst currentImage = images.find( ( { id } ) => id === newImageId );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = attachmentCaptions.find(\n\t\t\t( { id } ) => id === newImageId\n\t\t);\n\n\t\t// If the attachment caption is updated.\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = ( images ?? [] ).map( ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url =\n\t\t\t\tresizedImages[ parseInt( image.id, 10 ) ]?.[ newSizeSlug ];\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\timages.every( ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = images.map( ( { url } ) => getBlobByURL( url ) );\n\t\t\timages.forEach( ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block.\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
@@ -4,7 +4,6 @@ import { createElement, Fragment } from "@wordpress/element";
4
4
  * External dependencies
5
5
  */
6
6
  import classnames from 'classnames';
7
- import { get } from 'lodash';
8
7
  /**
9
8
  * WordPress dependencies
10
9
  */
@@ -115,7 +114,7 @@ class GalleryImage extends Component {
115
114
  // make sure the text is not overwritten by empty captions.
116
115
 
117
116
 
118
- if (caption && !get(mediaAttributes, ['caption'])) {
117
+ if (caption && !mediaAttributes.caption) {
119
118
  const {
120
119
  caption: omittedCaption,
121
120
  ...restMediaAttributes
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.js"],"names":["classnames","get","Component","Button","Spinner","ButtonGroup","__","BACKSPACE","DELETE","withSelect","withDispatch","RichText","MediaPlaceholder","store","blockEditorStore","__experimentalGetElementClassName","isBlobURL","compose","closeSmall","chevronLeft","chevronRight","edit","image","imageIcon","coreStore","pickRelevantMediaFiles","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","isTemporaryImage","id","url","GalleryImage","constructor","arguments","onSelectImage","bind","onRemoveImage","bindContainer","onEdit","onSelectImageFromLibrary","onSelectCustomURL","state","isEditing","ref","container","props","isSelected","onSelect","event","ownerDocument","activeElement","indexOf","keyCode","preventDefault","onRemove","setState","componentDidUpdate","__unstableMarkNextChangeAsNotPersistent","setAttributes","source_url","alt","alt_text","deselectOnBlur","onDeselect","media","caption","sizeSlug","mediaAttributes","omittedAlt","restMediaAttributes","omittedCaption","newURL","undefined","render","linkTo","link","isFirstItem","isLastItem","onMoveForward","onMoveBackward","ariaLabel","href","img","className","title","src","newCaption","select","ownProps","getMedia","parseInt","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Button, Spinner, ButtonGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport {\n\tRichText,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { isBlobURL } from '@wordpress/blob';\nimport { compose } from '@wordpress/compose';\nimport {\n\tcloseSmall,\n\tchevronLeft,\n\tchevronRight,\n\tedit,\n\timage as imageIcon,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { pickRelevantMediaFiles } from './shared';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onRemoveImage = this.onRemoveImage.bind( this );\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.onEdit = this.onEdit.bind( this );\n\t\tthis.onSelectImageFromLibrary =\n\t\t\tthis.onSelectImageFromLibrary.bind( this );\n\t\tthis.onSelectCustomURL = this.onSelectCustomURL.bind( this );\n\t\tthis.state = {\n\t\t\tisEditing: false,\n\t\t};\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonRemoveImage( event ) {\n\t\tif (\n\t\t\tthis.container === this.container.ownerDocument.activeElement &&\n\t\t\tthis.props.isSelected &&\n\t\t\t[ BACKSPACE, DELETE ].indexOf( event.keyCode ) !== -1\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.props.onRemove();\n\t\t}\n\t}\n\n\tonEdit() {\n\t\tthis.setState( {\n\t\t\tisEditing: true,\n\t\t} );\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst { image, url, __unstableMarkNextChangeAsNotPersistent } =\n\t\t\tthis.props;\n\t\tif ( image && ! url ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\t}\n\n\tdeselectOnBlur() {\n\t\tthis.props.onDeselect();\n\t}\n\n\tonSelectImageFromLibrary( media ) {\n\t\tconst { setAttributes, id, url, alt, caption, sizeSlug } = this.props;\n\t\tif ( ! media || ! media.url ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, sizeSlug );\n\n\t\t// If the current image is temporary but an alt text was meanwhile\n\t\t// written by the user, make sure the text is not overwritten.\n\t\tif ( isTemporaryImage( id, url ) ) {\n\t\t\tif ( alt ) {\n\t\t\t\tconst { alt: omittedAlt, ...restMediaAttributes } =\n\t\t\t\t\tmediaAttributes;\n\t\t\t\tmediaAttributes = restMediaAttributes;\n\t\t\t}\n\t\t}\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 ( caption && ! get( 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\tsetAttributes( mediaAttributes );\n\t\tthis.setState( {\n\t\t\tisEditing: false,\n\t\t} );\n\t}\n\n\tonSelectCustomURL( newURL ) {\n\t\tconst { setAttributes, url } = this.props;\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} );\n\t\t\tthis.setState( {\n\t\t\t\tisEditing: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tlinkTo,\n\t\t\tlink,\n\t\t\tisFirstItem,\n\t\t\tisLastItem,\n\t\t\tisSelected,\n\t\t\tcaption,\n\t\t\tonRemove,\n\t\t\tonMoveForward,\n\t\t\tonMoveBackward,\n\t\t\tsetAttributes,\n\t\t\t'aria-label': ariaLabel,\n\t\t} = this.props;\n\t\tconst { isEditing } = this.state;\n\n\t\tlet href;\n\n\t\tswitch ( linkTo ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = link;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst img = (\n\t\t\t// Disable reason: Image itself is not meant to be interactive, but should\n\t\t\t// direct image selection and unfocus caption fields.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tdata-id={ id }\n\t\t\t\t\tonKeyDown={ this.onRemoveImage }\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\tref={ this.bindContainer }\n\t\t\t\t/>\n\t\t\t\t{ isBlobURL( url ) && <Spinner /> }\n\t\t\t</>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions */\n\t\t);\n\n\t\tconst className = classnames( {\n\t\t\t'is-selected': isSelected,\n\t\t\t'is-transient': isBlobURL( url ),\n\t\t} );\n\n\t\treturn (\n\t\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n\t\t\t<figure\n\t\t\t\tclassName={ className }\n\t\t\t\tonClick={ this.onSelectImage }\n\t\t\t\tonFocus={ this.onSelectImage }\n\t\t\t>\n\t\t\t\t{ ! isEditing && ( href ? <a href={ href }>{ img }</a> : img ) }\n\t\t\t\t{ isEditing && (\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tlabels={ { title: __( 'Edit gallery image' ) } }\n\t\t\t\t\t\ticon={ imageIcon }\n\t\t\t\t\t\tonSelect={ this.onSelectImageFromLibrary }\n\t\t\t\t\t\tonSelectURL={ this.onSelectCustomURL }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tallowedTypes={ [ 'image' ] }\n\t\t\t\t\t\tvalue={ { id, src: url } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<ButtonGroup className=\"block-library-gallery-item__inline-menu is-left\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\tonClick={ isFirstItem ? undefined : onMoveBackward }\n\t\t\t\t\t\tlabel={ __( 'Move image backward' ) }\n\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\tonClick={ isLastItem ? undefined : onMoveForward }\n\t\t\t\t\t\tlabel={ __( 'Move image forward' ) }\n\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t\t<ButtonGroup className=\"block-library-gallery-item__inline-menu is-right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ this.onEdit }\n\t\t\t\t\t\tlabel={ __( 'Replace image' ) }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tlabel={ __( 'Remove image' ) }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t\t{ ! isEditing && ( isSelected || caption ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ isSelected ? __( 'Add caption' ) : null }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( newCaption ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: newCaption } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getMedia } = select( coreStore );\n\t\tconst { id } = ownProps;\n\n\t\treturn {\n\t\t\timage: id ? getMedia( parseInt( id, 10 ) ) : null,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t};\n\t} ),\n] )( GalleryImage );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.js"],"names":["classnames","Component","Button","Spinner","ButtonGroup","__","BACKSPACE","DELETE","withSelect","withDispatch","RichText","MediaPlaceholder","store","blockEditorStore","__experimentalGetElementClassName","isBlobURL","compose","closeSmall","chevronLeft","chevronRight","edit","image","imageIcon","coreStore","pickRelevantMediaFiles","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","isTemporaryImage","id","url","GalleryImage","constructor","arguments","onSelectImage","bind","onRemoveImage","bindContainer","onEdit","onSelectImageFromLibrary","onSelectCustomURL","state","isEditing","ref","container","props","isSelected","onSelect","event","ownerDocument","activeElement","indexOf","keyCode","preventDefault","onRemove","setState","componentDidUpdate","__unstableMarkNextChangeAsNotPersistent","setAttributes","source_url","alt","alt_text","deselectOnBlur","onDeselect","media","caption","sizeSlug","mediaAttributes","omittedAlt","restMediaAttributes","omittedCaption","newURL","undefined","render","linkTo","link","isFirstItem","isLastItem","onMoveForward","onMoveBackward","ariaLabel","href","img","className","title","src","newCaption","select","ownProps","getMedia","parseInt","dispatch"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,MAAT,EAAiBC,OAAjB,EAA0BC,WAA1B,QAA6C,uBAA7C;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,MAApB,QAAkC,qBAAlC;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SACCC,QADD,EAECC,gBAFD,EAGCC,KAAK,IAAIC,gBAHV,EAICC,iCAJD,QAKO,yBALP;AAMA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SACCC,UADD,EAECC,WAFD,EAGCC,YAHD,EAICC,IAJD,EAKCC,KAAK,IAAIC,SALV,QAMO,kBANP;AAOA,SAASV,KAAK,IAAIW,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASC,sBAAT,QAAuC,UAAvC;AACA,SACCC,2BADD,EAECC,sBAFD,QAGO,aAHP;;AAKA,MAAMC,gBAAgB,GAAG,CAAEC,EAAF,EAAMC,GAAN,KAAe,CAAED,EAAF,IAAQb,SAAS,CAAEc,GAAF,CAAzD;;AAEA,MAAMC,YAAN,SAA2B7B,SAA3B,CAAqC;AACpC8B,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKC,aAAL,GAAqB,KAAKA,aAAL,CAAmBC,IAAnB,CAAyB,IAAzB,CAArB;AACA,SAAKC,aAAL,GAAqB,KAAKA,aAAL,CAAmBD,IAAnB,CAAyB,IAAzB,CAArB;AACA,SAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAyB,IAAzB,CAArB;AACA,SAAKG,MAAL,GAAc,KAAKA,MAAL,CAAYH,IAAZ,CAAkB,IAAlB,CAAd;AACA,SAAKI,wBAAL,GACC,KAAKA,wBAAL,CAA8BJ,IAA9B,CAAoC,IAApC,CADD;AAEA,SAAKK,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBL,IAAvB,CAA6B,IAA7B,CAAzB;AACA,SAAKM,KAAL,GAAa;AACZC,MAAAA,SAAS,EAAE;AADC,KAAb;AAGA;;AAEDL,EAAAA,aAAa,CAAEM,GAAF,EAAQ;AACpB,SAAKC,SAAL,GAAiBD,GAAjB;AACA;;AAEDT,EAAAA,aAAa,GAAG;AACf,QAAK,CAAE,KAAKW,KAAL,CAAWC,UAAlB,EAA+B;AAC9B,WAAKD,KAAL,CAAWE,QAAX;AACA;AACD;;AAEDX,EAAAA,aAAa,CAAEY,KAAF,EAAU;AACtB,QACC,KAAKJ,SAAL,KAAmB,KAAKA,SAAL,CAAeK,aAAf,CAA6BC,aAAhD,IACA,KAAKL,KAAL,CAAWC,UADX,IAEA,CAAEvC,SAAF,EAAaC,MAAb,EAAsB2C,OAAtB,CAA+BH,KAAK,CAACI,OAArC,MAAmD,CAAC,CAHrD,EAIE;AACDJ,MAAAA,KAAK,CAACK,cAAN;AACA,WAAKR,KAAL,CAAWS,QAAX;AACA;AACD;;AAEDhB,EAAAA,MAAM,GAAG;AACR,SAAKiB,QAAL,CAAe;AACdb,MAAAA,SAAS,EAAE;AADG,KAAf;AAGA;;AAEDc,EAAAA,kBAAkB,GAAG;AACpB,UAAM;AAAElC,MAAAA,KAAF;AAASQ,MAAAA,GAAT;AAAc2B,MAAAA;AAAd,QACL,KAAKZ,KADN;;AAEA,QAAKvB,KAAK,IAAI,CAAEQ,GAAhB,EAAsB;AACrB2B,MAAAA,uCAAuC;;AACvC,WAAKZ,KAAL,CAAWa,aAAX,CAA0B;AACzB5B,QAAAA,GAAG,EAAER,KAAK,CAACqC,UADc;AAEzBC,QAAAA,GAAG,EAAEtC,KAAK,CAACuC;AAFc,OAA1B;AAIA;AACD;;AAEDC,EAAAA,cAAc,GAAG;AAChB,SAAKjB,KAAL,CAAWkB,UAAX;AACA;;AAEDxB,EAAAA,wBAAwB,CAAEyB,KAAF,EAAU;AACjC,UAAM;AAAEN,MAAAA,aAAF;AAAiB7B,MAAAA,EAAjB;AAAqBC,MAAAA,GAArB;AAA0B8B,MAAAA,GAA1B;AAA+BK,MAAAA,OAA/B;AAAwCC,MAAAA;AAAxC,QAAqD,KAAKrB,KAAhE;;AACA,QAAK,CAAEmB,KAAF,IAAW,CAAEA,KAAK,CAAClC,GAAxB,EAA8B;AAC7B;AACA;;AAED,QAAIqC,eAAe,GAAG1C,sBAAsB,CAAEuC,KAAF,EAASE,QAAT,CAA5C,CANiC,CAQjC;AACA;;AACA,QAAKtC,gBAAgB,CAAEC,EAAF,EAAMC,GAAN,CAArB,EAAmC;AAClC,UAAK8B,GAAL,EAAW;AACV,cAAM;AAAEA,UAAAA,GAAG,EAAEQ,UAAP;AAAmB,aAAGC;AAAtB,YACLF,eADD;AAEAA,QAAAA,eAAe,GAAGE,mBAAlB;AACA;AACD,KAhBgC,CAkBjC;AACA;;;AACA,QAAKJ,OAAO,IAAI,CAAEE,eAAe,CAACF,OAAlC,EAA4C;AAC3C,YAAM;AAAEA,QAAAA,OAAO,EAAEK,cAAX;AAA2B,WAAGD;AAA9B,UACLF,eADD;AAEAA,MAAAA,eAAe,GAAGE,mBAAlB;AACA;;AAEDX,IAAAA,aAAa,CAAES,eAAF,CAAb;AACA,SAAKZ,QAAL,CAAe;AACdb,MAAAA,SAAS,EAAE;AADG,KAAf;AAGA;;AAEDF,EAAAA,iBAAiB,CAAE+B,MAAF,EAAW;AAC3B,UAAM;AAAEb,MAAAA,aAAF;AAAiB5B,MAAAA;AAAjB,QAAyB,KAAKe,KAApC;;AACA,QAAK0B,MAAM,KAAKzC,GAAhB,EAAsB;AACrB4B,MAAAA,aAAa,CAAE;AACd5B,QAAAA,GAAG,EAAEyC,MADS;AAEd1C,QAAAA,EAAE,EAAE2C;AAFU,OAAF,CAAb;AAIA,WAAKjB,QAAL,CAAe;AACdb,QAAAA,SAAS,EAAE;AADG,OAAf;AAGA;AACD;;AAED+B,EAAAA,MAAM,GAAG;AACR,UAAM;AACL3C,MAAAA,GADK;AAEL8B,MAAAA,GAFK;AAGL/B,MAAAA,EAHK;AAIL6C,MAAAA,MAJK;AAKLC,MAAAA,IALK;AAMLC,MAAAA,WANK;AAOLC,MAAAA,UAPK;AAQL/B,MAAAA,UARK;AASLmB,MAAAA,OATK;AAULX,MAAAA,QAVK;AAWLwB,MAAAA,aAXK;AAYLC,MAAAA,cAZK;AAaLrB,MAAAA,aAbK;AAcL,oBAAcsB;AAdT,QAeF,KAAKnC,KAfT;AAgBA,UAAM;AAAEH,MAAAA;AAAF,QAAgB,KAAKD,KAA3B;AAEA,QAAIwC,IAAJ;;AAEA,YAASP,MAAT;AACC,WAAK/C,sBAAL;AACCsD,QAAAA,IAAI,GAAGnD,GAAP;AACA;;AACD,WAAKJ,2BAAL;AACCuD,QAAAA,IAAI,GAAGN,IAAP;AACA;AANF;;AASA,UAAMO,GAAG,GACR;AACA;;AACA;AACA,kCACC;AACC,MAAA,GAAG,EAAGpD,GADP;AAEC,MAAA,GAAG,EAAG8B,GAFP;AAGC,iBAAU/B,EAHX;AAIC,MAAA,SAAS,EAAG,KAAKO,aAJlB;AAKC,MAAA,QAAQ,EAAC,GALV;AAMC,oBAAa4C,SANd;AAOC,MAAA,GAAG,EAAG,KAAK3C;AAPZ,MADD,EAUGrB,SAAS,CAAEc,GAAF,CAAT,IAAoB,cAAC,OAAD,OAVvB;AAYA;AAhBD;AAmBA,UAAMqD,SAAS,GAAGlF,UAAU,CAAE;AAC7B,qBAAe6C,UADc;AAE7B,sBAAgB9B,SAAS,CAAEc,GAAF;AAFI,KAAF,CAA5B;AAKA,WACC;AACA;AACC,QAAA,SAAS,EAAGqD,SADb;AAEC,QAAA,OAAO,EAAG,KAAKjD,aAFhB;AAGC,QAAA,OAAO,EAAG,KAAKA;AAHhB,SAKG,CAAEQ,SAAF,KAAiBuC,IAAI,GAAG;AAAG,QAAA,IAAI,EAAGA;AAAV,SAAmBC,GAAnB,CAAH,GAAkCA,GAAvD,CALH,EAMGxC,SAAS,IACV,cAAC,gBAAD;AACC,QAAA,MAAM,EAAG;AAAE0C,UAAAA,KAAK,EAAE9E,EAAE,CAAE,oBAAF;AAAX,SADV;AAEC,QAAA,IAAI,EAAGiB,SAFR;AAGC,QAAA,QAAQ,EAAG,KAAKgB,wBAHjB;AAIC,QAAA,WAAW,EAAG,KAAKC,iBAJpB;AAKC,QAAA,MAAM,EAAC,SALR;AAMC,QAAA,YAAY,EAAG,CAAE,OAAF,CANhB;AAOC,QAAA,KAAK,EAAG;AAAEX,UAAAA,EAAF;AAAMwD,UAAAA,GAAG,EAAEvD;AAAX;AAPT,QAPF,EAiBC,cAAC,WAAD;AAAa,QAAA,SAAS,EAAC;AAAvB,SACC,cAAC,MAAD;AACC,QAAA,IAAI,EAAGX,WADR;AAEC,QAAA,OAAO,EAAGyD,WAAW,GAAGJ,SAAH,GAAeO,cAFrC;AAGC,QAAA,KAAK,EAAGzE,EAAE,CAAE,qBAAF,CAHX;AAIC,yBAAgBsE,WAJjB;AAKC,QAAA,QAAQ,EAAG,CAAE9B;AALd,QADD,EAQC,cAAC,MAAD;AACC,QAAA,IAAI,EAAG1B,YADR;AAEC,QAAA,OAAO,EAAGyD,UAAU,GAAGL,SAAH,GAAeM,aAFpC;AAGC,QAAA,KAAK,EAAGxE,EAAE,CAAE,oBAAF,CAHX;AAIC,yBAAgBuE,UAJjB;AAKC,QAAA,QAAQ,EAAG,CAAE/B;AALd,QARD,CAjBD,EAiCC,cAAC,WAAD;AAAa,QAAA,SAAS,EAAC;AAAvB,SACC,cAAC,MAAD;AACC,QAAA,IAAI,EAAGzB,IADR;AAEC,QAAA,OAAO,EAAG,KAAKiB,MAFhB;AAGC,QAAA,KAAK,EAAGhC,EAAE,CAAE,eAAF,CAHX;AAIC,QAAA,QAAQ,EAAG,CAAEwC;AAJd,QADD,EAOC,cAAC,MAAD;AACC,QAAA,IAAI,EAAG5B,UADR;AAEC,QAAA,OAAO,EAAGoC,QAFX;AAGC,QAAA,KAAK,EAAGhD,EAAE,CAAE,cAAF,CAHX;AAIC,QAAA,QAAQ,EAAG,CAAEwC;AAJd,QAPD,CAjCD,EA+CG,CAAEJ,SAAF,KAAiBI,UAAU,IAAImB,OAA/B,KACD,cAAC,QAAD;AACC,QAAA,OAAO,EAAC,YADT;AAEC,QAAA,SAAS,EAAGlD,iCAAiC,CAC5C,SAD4C,CAF9C;AAKC,sBAAaT,EAAE,CAAE,oBAAF,CALhB;AAMC,QAAA,WAAW,EAAGwC,UAAU,GAAGxC,EAAE,CAAE,aAAF,CAAL,GAAyB,IANlD;AAOC,QAAA,KAAK,EAAG2D,OAPT;AAQC,QAAA,QAAQ,EAAKqB,UAAF,IACV5B,aAAa,CAAE;AAAEO,UAAAA,OAAO,EAAEqB;AAAX,SAAF,CATf;AAWC,QAAA,aAAa;AAXd,QAhDF;AAFD;AAkEA;;AAhOmC;;AAmOrC,eAAerE,OAAO,CAAE,CACvBR,UAAU,CAAE,CAAE8E,MAAF,EAAUC,QAAV,KAAwB;AACnC,QAAM;AAAEC,IAAAA;AAAF,MAAeF,MAAM,CAAE/D,SAAF,CAA3B;AACA,QAAM;AAAEK,IAAAA;AAAF,MAAS2D,QAAf;AAEA,SAAO;AACNlE,IAAAA,KAAK,EAAEO,EAAE,GAAG4D,QAAQ,CAAEC,QAAQ,CAAE7D,EAAF,EAAM,EAAN,CAAV,CAAX,GAAoC;AADvC,GAAP;AAGA,CAPS,CADa,EASvBnB,YAAY,CAAIiF,QAAF,IAAgB;AAC7B,QAAM;AAAElC,IAAAA;AAAF,MACLkC,QAAQ,CAAE7E,gBAAF,CADT;AAEA,SAAO;AACN2C,IAAAA;AADM,GAAP;AAGA,CANW,CATW,CAAF,CAAP,CAgBV1B,YAhBU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Button, Spinner, ButtonGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport {\n\tRichText,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { isBlobURL } from '@wordpress/blob';\nimport { compose } from '@wordpress/compose';\nimport {\n\tcloseSmall,\n\tchevronLeft,\n\tchevronRight,\n\tedit,\n\timage as imageIcon,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { pickRelevantMediaFiles } from './shared';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onRemoveImage = this.onRemoveImage.bind( this );\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.onEdit = this.onEdit.bind( this );\n\t\tthis.onSelectImageFromLibrary =\n\t\t\tthis.onSelectImageFromLibrary.bind( this );\n\t\tthis.onSelectCustomURL = this.onSelectCustomURL.bind( this );\n\t\tthis.state = {\n\t\t\tisEditing: false,\n\t\t};\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonRemoveImage( event ) {\n\t\tif (\n\t\t\tthis.container === this.container.ownerDocument.activeElement &&\n\t\t\tthis.props.isSelected &&\n\t\t\t[ BACKSPACE, DELETE ].indexOf( event.keyCode ) !== -1\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.props.onRemove();\n\t\t}\n\t}\n\n\tonEdit() {\n\t\tthis.setState( {\n\t\t\tisEditing: true,\n\t\t} );\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst { image, url, __unstableMarkNextChangeAsNotPersistent } =\n\t\t\tthis.props;\n\t\tif ( image && ! url ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\t}\n\n\tdeselectOnBlur() {\n\t\tthis.props.onDeselect();\n\t}\n\n\tonSelectImageFromLibrary( media ) {\n\t\tconst { setAttributes, id, url, alt, caption, sizeSlug } = this.props;\n\t\tif ( ! media || ! media.url ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, sizeSlug );\n\n\t\t// If the current image is temporary but an alt text was meanwhile\n\t\t// written by the user, make sure the text is not overwritten.\n\t\tif ( isTemporaryImage( id, url ) ) {\n\t\t\tif ( alt ) {\n\t\t\t\tconst { alt: omittedAlt, ...restMediaAttributes } =\n\t\t\t\t\tmediaAttributes;\n\t\t\t\tmediaAttributes = restMediaAttributes;\n\t\t\t}\n\t\t}\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 ( caption && ! 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\tsetAttributes( mediaAttributes );\n\t\tthis.setState( {\n\t\t\tisEditing: false,\n\t\t} );\n\t}\n\n\tonSelectCustomURL( newURL ) {\n\t\tconst { setAttributes, url } = this.props;\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} );\n\t\t\tthis.setState( {\n\t\t\t\tisEditing: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tlinkTo,\n\t\t\tlink,\n\t\t\tisFirstItem,\n\t\t\tisLastItem,\n\t\t\tisSelected,\n\t\t\tcaption,\n\t\t\tonRemove,\n\t\t\tonMoveForward,\n\t\t\tonMoveBackward,\n\t\t\tsetAttributes,\n\t\t\t'aria-label': ariaLabel,\n\t\t} = this.props;\n\t\tconst { isEditing } = this.state;\n\n\t\tlet href;\n\n\t\tswitch ( linkTo ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = link;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst img = (\n\t\t\t// Disable reason: Image itself is not meant to be interactive, but should\n\t\t\t// direct image selection and unfocus caption fields.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tdata-id={ id }\n\t\t\t\t\tonKeyDown={ this.onRemoveImage }\n\t\t\t\t\ttabIndex=\"0\"\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\tref={ this.bindContainer }\n\t\t\t\t/>\n\t\t\t\t{ isBlobURL( url ) && <Spinner /> }\n\t\t\t</>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions */\n\t\t);\n\n\t\tconst className = classnames( {\n\t\t\t'is-selected': isSelected,\n\t\t\t'is-transient': isBlobURL( url ),\n\t\t} );\n\n\t\treturn (\n\t\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n\t\t\t<figure\n\t\t\t\tclassName={ className }\n\t\t\t\tonClick={ this.onSelectImage }\n\t\t\t\tonFocus={ this.onSelectImage }\n\t\t\t>\n\t\t\t\t{ ! isEditing && ( href ? <a href={ href }>{ img }</a> : img ) }\n\t\t\t\t{ isEditing && (\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tlabels={ { title: __( 'Edit gallery image' ) } }\n\t\t\t\t\t\ticon={ imageIcon }\n\t\t\t\t\t\tonSelect={ this.onSelectImageFromLibrary }\n\t\t\t\t\t\tonSelectURL={ this.onSelectCustomURL }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tallowedTypes={ [ 'image' ] }\n\t\t\t\t\t\tvalue={ { id, src: url } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<ButtonGroup className=\"block-library-gallery-item__inline-menu is-left\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\tonClick={ isFirstItem ? undefined : onMoveBackward }\n\t\t\t\t\t\tlabel={ __( 'Move image backward' ) }\n\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\tonClick={ isLastItem ? undefined : onMoveForward }\n\t\t\t\t\t\tlabel={ __( 'Move image forward' ) }\n\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t\t<ButtonGroup className=\"block-library-gallery-item__inline-menu is-right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ this.onEdit }\n\t\t\t\t\t\tlabel={ __( 'Replace image' ) }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\tlabel={ __( 'Remove image' ) }\n\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t\t{ ! isEditing && ( isSelected || caption ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ isSelected ? __( 'Add caption' ) : null }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( newCaption ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: newCaption } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getMedia } = select( coreStore );\n\t\tconst { id } = ownProps;\n\n\t\treturn {\n\t\t\timage: id ? getMedia( parseInt( id, 10 ) ) : null,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t};\n\t} ),\n] )( GalleryImage );\n"]}