@wordpress/block-library 8.9.0 → 8.11.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 (502) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/block/edit.native.js +17 -10
  3. package/build/block/edit.native.js.map +1 -1
  4. package/build/code/index.js +1 -0
  5. package/build/code/index.js.map +1 -1
  6. package/build/column/index.js +1 -1
  7. package/build/columns/transforms.js +1 -5
  8. package/build/columns/transforms.js.map +1 -1
  9. package/build/comment-author-name/edit.js +1 -1
  10. package/build/comment-author-name/edit.js.map +1 -1
  11. package/build/comment-edit-link/edit.js +1 -1
  12. package/build/comment-edit-link/edit.js.map +1 -1
  13. package/build/cover/edit/inspector-controls.js +1 -1
  14. package/build/cover/edit/inspector-controls.js.map +1 -1
  15. package/build/cover/edit/resizable-cover-popover.js +3 -3
  16. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  17. package/build/cover/index.js +1 -1
  18. package/build/cover/variations.js +1 -1
  19. package/build/cover/variations.js.map +1 -1
  20. package/build/details/edit.js +19 -5
  21. package/build/details/edit.js.map +1 -1
  22. package/build/details/index.js +14 -10
  23. package/build/details/index.js.map +1 -1
  24. package/build/details/save.js +4 -1
  25. package/build/details/save.js.map +1 -1
  26. package/build/embed/variations.js +2 -2
  27. package/build/embed/variations.js.map +1 -1
  28. package/build/file/interactivity.js +19 -0
  29. package/build/file/interactivity.js.map +1 -0
  30. package/build/file/{utils.js → utils/index.js} +1 -1
  31. package/build/file/utils/index.js.map +1 -0
  32. package/build/file/view.js +1 -1
  33. package/build/file/view.js.map +1 -1
  34. package/build/freeform/modal.js +20 -17
  35. package/build/freeform/modal.js.map +1 -1
  36. package/build/gallery/edit.js +2 -8
  37. package/build/gallery/edit.js.map +1 -1
  38. package/build/gallery/v1/edit.js +1 -7
  39. package/build/gallery/v1/edit.js.map +1 -1
  40. package/build/gallery/v1/gallery-image.native.js +1 -3
  41. package/build/gallery/v1/gallery-image.native.js.map +1 -1
  42. package/build/group/transforms.js +0 -5
  43. package/build/group/transforms.js.map +1 -1
  44. package/build/image/deprecated.js +2 -4
  45. package/build/image/deprecated.js.map +1 -1
  46. package/build/image/edit.js +13 -11
  47. package/build/image/edit.js.map +1 -1
  48. package/build/image/image.js +7 -12
  49. package/build/image/image.js.map +1 -1
  50. package/build/image/index.js +3 -0
  51. package/build/image/index.js.map +1 -1
  52. package/build/image/interactivity.js +102 -0
  53. package/build/image/interactivity.js.map +1 -0
  54. package/build/image/save.js +2 -4
  55. package/build/image/save.js.map +1 -1
  56. package/build/image/utils.js +10 -18
  57. package/build/image/utils.js.map +1 -1
  58. package/build/index.js +0 -6
  59. package/build/index.js.map +1 -1
  60. package/build/index.native.js +1 -1
  61. package/build/index.native.js.map +1 -1
  62. package/build/latest-posts/edit.native.js +1 -3
  63. package/build/latest-posts/edit.native.js.map +1 -1
  64. package/build/list/edit.js +1 -1
  65. package/build/list/edit.js.map +1 -1
  66. package/build/list-item/edit.native.js +1 -1
  67. package/build/list-item/edit.native.js.map +1 -1
  68. package/build/list-item/transforms.js +4 -1
  69. package/build/list-item/transforms.js.map +1 -1
  70. package/build/list-item/utils.js +5 -1
  71. package/build/list-item/utils.js.map +1 -1
  72. package/build/loginout/index.js +11 -1
  73. package/build/loginout/index.js.map +1 -1
  74. package/build/media-text/deprecated.js +4 -6
  75. package/build/media-text/deprecated.js.map +1 -1
  76. package/build/media-text/edit.js +13 -11
  77. package/build/media-text/edit.js.map +1 -1
  78. package/build/media-text/media-container.js +3 -3
  79. package/build/media-text/media-container.js.map +1 -1
  80. package/build/media-text/save.js +1 -3
  81. package/build/media-text/save.js.map +1 -1
  82. package/build/navigation/constants.js +15 -0
  83. package/build/navigation/constants.js.map +1 -0
  84. package/build/navigation/edit/index.js +16 -26
  85. package/build/navigation/edit/index.js.map +1 -1
  86. package/build/navigation/edit/inner-blocks.js +5 -7
  87. package/build/navigation/edit/inner-blocks.js.map +1 -1
  88. package/build/navigation/edit/leaf-more-menu.js +148 -0
  89. package/build/navigation/edit/leaf-more-menu.js.map +1 -0
  90. package/build/navigation/edit/menu-inspector-controls.js +53 -8
  91. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  92. package/build/navigation/edit/navigation-menu-delete-control.js +6 -6
  93. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  94. package/build/navigation/edit/unsaved-inner-blocks.js +12 -25
  95. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  96. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  97. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  98. package/build/navigation/interactivity.js +157 -0
  99. package/build/navigation/interactivity.js.map +1 -0
  100. package/build/navigation-link/edit.js +7 -5
  101. package/build/navigation-link/edit.js.map +1 -1
  102. package/build/navigation-link/update-attributes.js +5 -5
  103. package/build/navigation-link/update-attributes.js.map +1 -1
  104. package/build/navigation-submenu/edit.js +7 -5
  105. package/build/navigation-submenu/edit.js.map +1 -1
  106. package/build/paragraph/index.js +5 -1
  107. package/build/paragraph/index.js.map +1 -1
  108. package/build/paragraph/transforms.js +5 -1
  109. package/build/paragraph/transforms.js.map +1 -1
  110. package/build/pattern/edit.js +42 -8
  111. package/build/pattern/edit.js.map +1 -1
  112. package/build/pattern/index.js +12 -5
  113. package/build/pattern/index.js.map +1 -1
  114. package/build/pattern/v1/edit.js +57 -0
  115. package/build/pattern/v1/edit.js.map +1 -0
  116. package/build/post-author-name/edit.js +1 -1
  117. package/build/post-author-name/edit.js.map +1 -1
  118. package/build/post-featured-image/edit.js +1 -2
  119. package/build/post-featured-image/edit.js.map +1 -1
  120. package/build/post-featured-image/overlay.js +5 -0
  121. package/build/post-featured-image/overlay.js.map +1 -1
  122. package/build/post-title/edit.js +24 -7
  123. package/build/post-title/edit.js.map +1 -1
  124. package/build/preformatted/edit.native.js +3 -2
  125. package/build/preformatted/edit.native.js.map +1 -1
  126. package/build/quote/transforms.js +23 -37
  127. package/build/quote/transforms.js.map +1 -1
  128. package/build/read-more/edit.js +1 -1
  129. package/build/read-more/edit.js.map +1 -1
  130. package/build/search/edit.js +9 -1
  131. package/build/search/edit.js.map +1 -1
  132. package/build/site-title/edit/index.js +1 -1
  133. package/build/site-title/edit/index.js.map +1 -1
  134. package/build/social-link/edit.js +21 -4
  135. package/build/social-link/edit.js.map +1 -1
  136. package/build/social-links/edit.js +2 -2
  137. package/build/social-links/edit.js.map +1 -1
  138. package/build/template-part/edit/index.js +1 -7
  139. package/build/template-part/edit/index.js.map +1 -1
  140. package/build/template-part/edit/utils/hooks.js +2 -2
  141. package/build/template-part/edit/utils/hooks.js.map +1 -1
  142. package/build/utils/interactivity/constants.js +9 -0
  143. package/build/utils/interactivity/constants.js.map +1 -0
  144. package/build/utils/interactivity/directives.js +236 -0
  145. package/build/utils/interactivity/directives.js.map +1 -0
  146. package/build/utils/interactivity/hooks.js +176 -0
  147. package/build/utils/interactivity/hooks.js.map +1 -0
  148. package/build/utils/interactivity/hydration.js +34 -0
  149. package/build/utils/interactivity/hydration.js.map +1 -0
  150. package/build/utils/interactivity/index.js +34 -0
  151. package/build/utils/interactivity/index.js.map +1 -0
  152. package/build/utils/interactivity/portals.js +108 -0
  153. package/build/utils/interactivity/portals.js.map +1 -0
  154. package/build/utils/interactivity/store.js +67 -0
  155. package/build/utils/interactivity/store.js.map +1 -0
  156. package/build/utils/interactivity/utils.js +87 -0
  157. package/build/utils/interactivity/utils.js.map +1 -0
  158. package/build/utils/interactivity/vdom.js +109 -0
  159. package/build/utils/interactivity/vdom.js.map +1 -0
  160. package/build-module/block/edit.native.js +7 -1
  161. package/build-module/block/edit.native.js.map +1 -1
  162. package/build-module/code/index.js +1 -0
  163. package/build-module/code/index.js.map +1 -1
  164. package/build-module/column/index.js +1 -1
  165. package/build-module/columns/transforms.js +1 -5
  166. package/build-module/columns/transforms.js.map +1 -1
  167. package/build-module/comment-author-name/edit.js +1 -1
  168. package/build-module/comment-author-name/edit.js.map +1 -1
  169. package/build-module/comment-edit-link/edit.js +1 -1
  170. package/build-module/comment-edit-link/edit.js.map +1 -1
  171. package/build-module/cover/edit/inspector-controls.js +1 -1
  172. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  173. package/build-module/cover/edit/resizable-cover-popover.js +3 -3
  174. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  175. package/build-module/cover/index.js +1 -1
  176. package/build-module/cover/variations.js +1 -1
  177. package/build-module/cover/variations.js.map +1 -1
  178. package/build-module/details/edit.js +20 -6
  179. package/build-module/details/edit.js.map +1 -1
  180. package/build-module/details/index.js +14 -10
  181. package/build-module/details/index.js.map +1 -1
  182. package/build-module/details/save.js +5 -2
  183. package/build-module/details/save.js.map +1 -1
  184. package/build-module/embed/variations.js +2 -2
  185. package/build-module/embed/variations.js.map +1 -1
  186. package/build-module/file/interactivity.js +15 -0
  187. package/build-module/file/interactivity.js.map +1 -0
  188. package/build-module/file/{utils.js → utils/index.js} +1 -1
  189. package/build-module/file/utils/index.js.map +1 -0
  190. package/build-module/file/view.js +1 -1
  191. package/build-module/file/view.js.map +1 -1
  192. package/build-module/freeform/modal.js +19 -18
  193. package/build-module/freeform/modal.js.map +1 -1
  194. package/build-module/gallery/edit.js +2 -8
  195. package/build-module/gallery/edit.js.map +1 -1
  196. package/build-module/gallery/v1/edit.js +1 -6
  197. package/build-module/gallery/v1/edit.js.map +1 -1
  198. package/build-module/gallery/v1/gallery-image.native.js +1 -2
  199. package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
  200. package/build-module/group/transforms.js +0 -5
  201. package/build-module/group/transforms.js.map +1 -1
  202. package/build-module/image/deprecated.js +2 -3
  203. package/build-module/image/deprecated.js.map +1 -1
  204. package/build-module/image/edit.js +12 -11
  205. package/build-module/image/edit.js.map +1 -1
  206. package/build-module/image/image.js +7 -11
  207. package/build-module/image/image.js.map +1 -1
  208. package/build-module/image/index.js +3 -0
  209. package/build-module/image/index.js.map +1 -1
  210. package/build-module/image/interactivity.js +99 -0
  211. package/build-module/image/interactivity.js.map +1 -0
  212. package/build-module/image/save.js +2 -3
  213. package/build-module/image/save.js.map +1 -1
  214. package/build-module/image/utils.js +10 -17
  215. package/build-module/image/utils.js.map +1 -1
  216. package/build-module/index.js +0 -4
  217. package/build-module/index.js.map +1 -1
  218. package/build-module/index.native.js +1 -1
  219. package/build-module/index.native.js.map +1 -1
  220. package/build-module/latest-posts/edit.native.js +1 -2
  221. package/build-module/latest-posts/edit.native.js.map +1 -1
  222. package/build-module/list/edit.js +1 -1
  223. package/build-module/list/edit.js.map +1 -1
  224. package/build-module/list-item/edit.native.js +1 -1
  225. package/build-module/list-item/edit.native.js.map +1 -1
  226. package/build-module/list-item/transforms.js +5 -2
  227. package/build-module/list-item/transforms.js.map +1 -1
  228. package/build-module/list-item/utils.js +5 -1
  229. package/build-module/list-item/utils.js.map +1 -1
  230. package/build-module/loginout/index.js +11 -1
  231. package/build-module/loginout/index.js.map +1 -1
  232. package/build-module/media-text/deprecated.js +4 -5
  233. package/build-module/media-text/deprecated.js.map +1 -1
  234. package/build-module/media-text/edit.js +13 -12
  235. package/build-module/media-text/edit.js.map +1 -1
  236. package/build-module/media-text/media-container.js +3 -3
  237. package/build-module/media-text/media-container.js.map +1 -1
  238. package/build-module/media-text/save.js +1 -2
  239. package/build-module/media-text/save.js.map +1 -1
  240. package/build-module/navigation/constants.js +6 -0
  241. package/build-module/navigation/constants.js.map +1 -0
  242. package/build-module/navigation/edit/index.js +18 -27
  243. package/build-module/navigation/edit/index.js.map +1 -1
  244. package/build-module/navigation/edit/inner-blocks.js +2 -4
  245. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  246. package/build-module/navigation/edit/leaf-more-menu.js +132 -0
  247. package/build-module/navigation/edit/leaf-more-menu.js.map +1 -0
  248. package/build-module/navigation/edit/menu-inspector-controls.js +52 -9
  249. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  250. package/build-module/navigation/edit/navigation-menu-delete-control.js +7 -7
  251. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  252. package/build-module/navigation/edit/unsaved-inner-blocks.js +9 -20
  253. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  254. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  255. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  256. package/build-module/navigation/interactivity.js +154 -0
  257. package/build-module/navigation/interactivity.js.map +1 -0
  258. package/build-module/navigation-link/edit.js +7 -5
  259. package/build-module/navigation-link/edit.js.map +1 -1
  260. package/build-module/navigation-link/update-attributes.js +4 -4
  261. package/build-module/navigation-link/update-attributes.js.map +1 -1
  262. package/build-module/navigation-submenu/edit.js +7 -5
  263. package/build-module/navigation-submenu/edit.js.map +1 -1
  264. package/build-module/paragraph/index.js +5 -1
  265. package/build-module/paragraph/index.js.map +1 -1
  266. package/build-module/paragraph/transforms.js +5 -1
  267. package/build-module/paragraph/transforms.js.map +1 -1
  268. package/build-module/pattern/edit.js +42 -9
  269. package/build-module/pattern/edit.js.map +1 -1
  270. package/build-module/pattern/index.js +12 -3
  271. package/build-module/pattern/index.js.map +1 -1
  272. package/build-module/pattern/v1/edit.js +48 -0
  273. package/build-module/pattern/v1/edit.js.map +1 -0
  274. package/build-module/post-author-name/edit.js +1 -1
  275. package/build-module/post-author-name/edit.js.map +1 -1
  276. package/build-module/post-featured-image/edit.js +1 -2
  277. package/build-module/post-featured-image/edit.js.map +1 -1
  278. package/build-module/post-featured-image/overlay.js +5 -0
  279. package/build-module/post-featured-image/overlay.js.map +1 -1
  280. package/build-module/post-title/edit.js +23 -7
  281. package/build-module/post-title/edit.js.map +1 -1
  282. package/build-module/preformatted/edit.native.js +3 -2
  283. package/build-module/preformatted/edit.native.js.map +1 -1
  284. package/build-module/quote/transforms.js +23 -37
  285. package/build-module/quote/transforms.js.map +1 -1
  286. package/build-module/read-more/edit.js +1 -1
  287. package/build-module/read-more/edit.js.map +1 -1
  288. package/build-module/search/edit.js +9 -1
  289. package/build-module/search/edit.js.map +1 -1
  290. package/build-module/site-title/edit/index.js +1 -1
  291. package/build-module/site-title/edit/index.js.map +1 -1
  292. package/build-module/social-link/edit.js +20 -5
  293. package/build-module/social-link/edit.js.map +1 -1
  294. package/build-module/social-links/edit.js +2 -2
  295. package/build-module/social-links/edit.js.map +1 -1
  296. package/build-module/template-part/edit/index.js +1 -6
  297. package/build-module/template-part/edit/index.js.map +1 -1
  298. package/build-module/template-part/edit/utils/hooks.js +1 -1
  299. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  300. package/build-module/utils/interactivity/constants.js +2 -0
  301. package/build-module/utils/interactivity/constants.js.map +1 -0
  302. package/build-module/utils/interactivity/directives.js +220 -0
  303. package/build-module/utils/interactivity/directives.js.map +1 -0
  304. package/build-module/utils/interactivity/hooks.js +162 -0
  305. package/build-module/utils/interactivity/hooks.js.map +1 -0
  306. package/build-module/utils/interactivity/hydration.js +21 -0
  307. package/build-module/utils/interactivity/hydration.js.map +1 -0
  308. package/build-module/utils/interactivity/index.js +17 -0
  309. package/build-module/utils/interactivity/index.js.map +1 -0
  310. package/build-module/utils/interactivity/portals.js +100 -0
  311. package/build-module/utils/interactivity/portals.js.map +1 -0
  312. package/build-module/utils/interactivity/store.js +56 -0
  313. package/build-module/utils/interactivity/store.js.map +1 -0
  314. package/build-module/utils/interactivity/utils.js +75 -0
  315. package/build-module/utils/interactivity/utils.js.map +1 -0
  316. package/build-module/utils/interactivity/vdom.js +97 -0
  317. package/build-module/utils/interactivity/vdom.js.map +1 -0
  318. package/build-style/common-rtl.css +1 -1
  319. package/build-style/common.css +1 -1
  320. package/build-style/cover/style-rtl.css +3 -2
  321. package/build-style/cover/style.css +3 -2
  322. package/build-style/{details-summary → details}/editor-rtl.css +1 -1
  323. package/build-style/{details-summary → details}/editor.css +1 -1
  324. package/build-style/details/style-rtl.css +14 -0
  325. package/build-style/details/style.css +14 -0
  326. package/build-style/editor-rtl.css +71 -5
  327. package/build-style/editor.css +71 -5
  328. package/build-style/file/editor-rtl.css +3 -0
  329. package/build-style/file/editor.css +3 -0
  330. package/build-style/freeform/editor-rtl.css +29 -0
  331. package/build-style/freeform/editor.css +29 -0
  332. package/build-style/gallery/editor-rtl.css +0 -4
  333. package/build-style/gallery/editor.css +0 -4
  334. package/build-style/gallery/style-rtl.css +2 -4
  335. package/build-style/gallery/style.css +2 -4
  336. package/build-style/image/style-rtl.css +98 -0
  337. package/build-style/image/style.css +98 -0
  338. package/build-style/navigation/editor-rtl.css +36 -0
  339. package/build-style/navigation/editor.css +36 -0
  340. package/build-style/post-comments-form/style-rtl.css +1 -1
  341. package/build-style/post-comments-form/style.css +1 -1
  342. package/build-style/search/editor-rtl.css +1 -0
  343. package/build-style/search/editor.css +1 -0
  344. package/build-style/site-logo/editor-rtl.css +1 -0
  345. package/build-style/site-logo/editor.css +1 -0
  346. package/build-style/style-rtl.css +116 -10
  347. package/build-style/style.css +116 -10
  348. package/build-style/video/style-rtl.css +1 -2
  349. package/build-style/video/style.css +1 -2
  350. package/package.json +37 -33
  351. package/src/block/edit.native.js +18 -4
  352. package/src/buttons/test/edit.native.js +0 -9
  353. package/src/code/block.json +1 -0
  354. package/src/column/block.json +1 -1
  355. package/src/columns/test/__snapshots__/transforms.native.js.snap +1 -1
  356. package/src/columns/test/transforms.native.js +3 -5
  357. package/src/columns/transforms.js +2 -8
  358. package/src/comment-author-name/edit.js +1 -1
  359. package/src/comment-edit-link/edit.js +1 -1
  360. package/src/comment-template/index.php +8 -7
  361. package/src/comments/index.php +1 -6
  362. package/src/cover/block.json +1 -1
  363. package/src/cover/edit/inspector-controls.js +56 -54
  364. package/src/cover/edit/resizable-cover-popover.js +2 -1
  365. package/src/cover/style.scss +5 -0
  366. package/src/cover/test/edit.js +56 -2
  367. package/src/cover/variations.js +1 -3
  368. package/src/details/block.json +8 -6
  369. package/src/details/edit.js +27 -5
  370. package/src/details/editor.scss +3 -0
  371. package/src/details/index.js +10 -5
  372. package/src/details/save.js +5 -1
  373. package/src/details/style.scss +16 -0
  374. package/src/editor.scss +1 -1
  375. package/src/embed/variations.js +2 -2
  376. package/src/file/editor.scss +4 -0
  377. package/src/file/interactivity.js +15 -0
  378. package/src/file/view.js +4 -1
  379. package/src/freeform/editor.scss +45 -0
  380. package/src/freeform/modal.js +22 -19
  381. package/src/gallery/edit.js +5 -8
  382. package/src/gallery/editor.scss +0 -6
  383. package/src/gallery/test/index.native.js +48 -3
  384. package/src/gallery/v1/edit.js +1 -6
  385. package/src/gallery/v1/gallery-image.native.js +1 -2
  386. package/src/group/test/__snapshots__/transforms.native.js.snap +1 -1
  387. package/src/group/test/transforms.native.js +3 -5
  388. package/src/group/transforms.js +0 -7
  389. package/src/image/block.json +3 -0
  390. package/src/image/deprecated.js +2 -3
  391. package/src/image/edit.js +18 -18
  392. package/src/image/image.js +8 -11
  393. package/src/image/index.php +75 -2
  394. package/src/image/interactivity.js +113 -0
  395. package/src/image/save.js +4 -3
  396. package/src/image/style.scss +113 -0
  397. package/src/image/test/edit.native.js +38 -16
  398. package/src/image/utils.js +11 -18
  399. package/src/index.js +0 -4
  400. package/src/index.native.js +1 -0
  401. package/src/latest-posts/edit.native.js +1 -4
  402. package/src/list/edit.js +1 -1
  403. package/src/list/test/edit.native.js +80 -1
  404. package/src/list-item/edit.native.js +1 -1
  405. package/src/list-item/transforms.js +4 -2
  406. package/src/loginout/block.json +11 -1
  407. package/src/media-text/deprecated.js +4 -5
  408. package/src/media-text/edit.js +12 -10
  409. package/src/media-text/media-container.js +3 -3
  410. package/src/media-text/save.js +1 -2
  411. package/src/navigation/constants.js +21 -0
  412. package/src/navigation/edit/index.js +71 -83
  413. package/src/navigation/edit/inner-blocks.js +6 -16
  414. package/src/navigation/edit/leaf-more-menu.js +170 -0
  415. package/src/navigation/edit/menu-inspector-controls.js +78 -10
  416. package/src/navigation/edit/navigation-menu-delete-control.js +29 -29
  417. package/src/navigation/edit/unsaved-inner-blocks.js +12 -40
  418. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  419. package/src/navigation/editor.scss +10 -0
  420. package/src/navigation/index.php +213 -204
  421. package/src/navigation/interactivity.js +151 -0
  422. package/src/navigation-link/edit.js +9 -3
  423. package/src/navigation-link/update-attributes.js +2 -2
  424. package/src/navigation-submenu/edit.js +9 -3
  425. package/src/paragraph/block.json +5 -1
  426. package/src/pattern/block.json +4 -0
  427. package/src/pattern/edit.js +53 -16
  428. package/src/pattern/index.js +5 -4
  429. package/src/pattern/index.php +14 -1
  430. package/src/pattern/v1/edit.js +57 -0
  431. package/src/post-author-name/edit.js +1 -1
  432. package/src/post-comments-form/style.scss +3 -1
  433. package/src/post-featured-image/edit.js +1 -1
  434. package/src/post-featured-image/index.php +1 -1
  435. package/src/post-featured-image/overlay.js +4 -0
  436. package/src/post-terms/index.php +2 -2
  437. package/src/post-title/edit.js +57 -44
  438. package/src/preformatted/edit.native.js +1 -3
  439. package/src/quote/test/__snapshots__/transforms.native.js.snap +1 -1
  440. package/src/quote/test/transforms.native.js +3 -5
  441. package/src/quote/transforms.js +9 -19
  442. package/src/read-more/edit.js +1 -1
  443. package/src/search/edit.js +9 -4
  444. package/src/search/editor.scss +1 -0
  445. package/src/site-logo/editor.scss +2 -1
  446. package/src/site-title/edit/index.js +1 -1
  447. package/src/social-link/edit.js +51 -26
  448. package/src/social-links/edit.js +33 -31
  449. package/src/style.scss +0 -1
  450. package/src/template-part/edit/index.js +4 -6
  451. package/src/template-part/edit/utils/hooks.js +1 -1
  452. package/src/template-part/index.php +22 -7
  453. package/src/utils/interactivity/constants.js +1 -0
  454. package/src/utils/interactivity/directives.js +200 -0
  455. package/src/utils/interactivity/hooks.js +145 -0
  456. package/src/utils/interactivity/hydration.js +22 -0
  457. package/src/utils/interactivity/index.js +17 -0
  458. package/src/utils/interactivity/portals.js +98 -0
  459. package/src/utils/interactivity/store.js +45 -0
  460. package/src/utils/interactivity/utils.js +66 -0
  461. package/src/utils/interactivity/vdom.js +94 -0
  462. package/tsconfig.json +1 -0
  463. package/tsconfig.tsbuildinfo +1 -1
  464. package/build/details-content/edit.js +0 -34
  465. package/build/details-content/edit.js.map +0 -1
  466. package/build/details-content/index.js +0 -94
  467. package/build/details-content/index.js.map +0 -1
  468. package/build/details-content/save.js +0 -20
  469. package/build/details-content/save.js.map +0 -1
  470. package/build/details-summary/edit.js +0 -42
  471. package/build/details-summary/edit.js.map +0 -1
  472. package/build/details-summary/index.js +0 -97
  473. package/build/details-summary/index.js.map +0 -1
  474. package/build/details-summary/save.js +0 -24
  475. package/build/details-summary/save.js.map +0 -1
  476. package/build/file/utils.js.map +0 -1
  477. package/build-module/details-content/edit.js +0 -23
  478. package/build-module/details-content/edit.js.map +0 -1
  479. package/build-module/details-content/index.js +0 -76
  480. package/build-module/details-content/index.js.map +0 -1
  481. package/build-module/details-content/save.js +0 -11
  482. package/build-module/details-content/save.js.map +0 -1
  483. package/build-module/details-summary/edit.js +0 -30
  484. package/build-module/details-summary/edit.js.map +0 -1
  485. package/build-module/details-summary/index.js +0 -79
  486. package/build-module/details-summary/index.js.map +0 -1
  487. package/build-module/details-summary/save.js +0 -16
  488. package/build-module/details-summary/save.js.map +0 -1
  489. package/build-module/file/utils.js.map +0 -1
  490. package/build-style/details-summary/style-rtl.css +0 -91
  491. package/build-style/details-summary/style.css +0 -91
  492. package/src/details-content/block.json +0 -50
  493. package/src/details-content/edit.js +0 -29
  494. package/src/details-content/index.js +0 -23
  495. package/src/details-content/save.js +0 -12
  496. package/src/details-summary/block.json +0 -53
  497. package/src/details-summary/edit.js +0 -27
  498. package/src/details-summary/editor.scss +0 -3
  499. package/src/details-summary/index.js +0 -23
  500. package/src/details-summary/save.js +0 -13
  501. package/src/details-summary/style.scss +0 -3
  502. /package/src/file/{utils.js → utils/index.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","columns","imageCrop","linkTarget","linkTo","sizeSlug","caption","showCaption","setShowCaption","prevCaption","captionRef","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","clearSelectedBlock","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","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","sharedIcon","title","instructions","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Math","min","isWeb","captionIcon","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\tsize=\"__unstable-large\"\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\tsize=\"__unstable-large\"\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={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\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\tsize=\"__unstable-large\"\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{ __( 'Resolution' ) }\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":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","columns","imageCrop","linkTarget","linkTo","sizeSlug","caption","showCaption","setShowCaption","prevCaption","captionRef","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","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","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","length","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","sharedIcon","title","instructions","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Math","min","isWeb","captionIcon","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} = 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}, [ 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\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\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\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\tsize=\"__unstable-large\"\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\tsize=\"__unstable-large\"\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={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\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\tsize=\"__unstable-large\"\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{ __( 'Resolution' ) }\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"]}
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _lodash = require("lodash");
15
-
16
14
  var _compose = require("@wordpress/compose");
17
15
 
18
16
  var _components = require("@wordpress/components");
@@ -41,10 +39,6 @@ var _gallery = _interopRequireDefault(require("./gallery"));
41
39
 
42
40
  var _constants = require("./constants");
43
41
 
44
- /**
45
- * External dependencies
46
- */
47
-
48
42
  /**
49
43
  * WordPress dependencies
50
44
  */
@@ -420,7 +414,7 @@ function GalleryEdit(props) {
420
414
  }
421
415
 
422
416
  const imageSizeOptions = getImagesSizeOptions();
423
- const shouldShowSizeOptions = hasImages && !(0, _lodash.isEmpty)(imageSizeOptions);
417
+ const shouldShowSizeOptions = hasImages && imageSizeOptions.length > 0;
424
418
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
425
419
  title: (0, _i18n.__)('Settings')
426
420
  }, images.length > 1 && (0, _element.createElement)(_components.RangeControl, (0, _extends2.default)({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","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","blockEditorStore","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","coreStore","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","sharedIcon","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","withNotices","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"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","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","blockEditorStore","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","coreStore","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","sharedIcon","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","withNotices","isNarrow"],"mappings":"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","sourcesContent":["/**\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 && imageSizeOptions.length > 0;\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"]}
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _reactNative = require("react-native");
13
13
 
14
- var _lodash = require("lodash");
15
-
16
14
  var _reactNativeBridge = require("@wordpress/react-native-bridge");
17
15
 
18
16
  var _components = require("@wordpress/components");
@@ -311,7 +309,7 @@ class GalleryImage extends _element.Component {
311
309
  caption,
312
310
  'aria-label': ariaLabel
313
311
  } = this.props;
314
- return (0, _lodash.isEmpty)(caption) ? ariaLabel : ariaLabel + '. ' + (0, _i18n.sprintf)(
312
+ return !caption ? ariaLabel : ariaLabel + '. ' + (0, _i18n.sprintf)(
315
313
  /* translators: accessibility text. %s: image caption. */
316
314
  (0, _i18n.__)('Image caption. %s'), caption);
317
315
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.native.js"],"names":["compose","StyleSheet","separatorStyle","style","separator","borderRightWidth","hairlineWidth","buttonStyle","button","aspectRatio","ICON_SIZE_ARROW","GalleryImage","Component","constructor","arguments","onSelectImage","bind","onSelectCaption","onMediaPressed","onCaptionChange","onSelectMedia","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","renderContent","state","captionSelected","isUploadInProgress","didUploadFail","setState","props","isSelected","onSelect","id","url","isBlockSelected","onSelectBlock","media","setAttributes","caption","componentDidUpdate","prevProps","image","source_url","alt","alt_text","payload","mediaServerId","mediaUrl","params","isFirstItem","isLastItem","onRemove","onMoveForward","onMoveBackward","ariaLabel","isCropped","getStylesFromColorScheme","isRTL","isUploadFailed","retryMessage","resizeMode","captionPlaceholderStyle","captionPlaceholder","captionPlaceholderDark","shouldShowCaptionEditable","shouldShowCaptionExpanded","captionContainerStyle","captionExpandedContainer","captionContainer","captionStyle","captionExpanded","mediaPickerOptions","destructiveButton","label","onPress","separated","value","height","warning","toolbarContainer","toolbar","moverButtonContainer","arrowRight","arrowLeft","undefined","color","render","containerStyle","galleryImageContainer","galleryImageContainerDark","accessibilityLabelImageContainer"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tStyleSheet,\n\tView,\n\tScrollView,\n\tTouchableWithoutFeedback,\n} from 'react-native';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\trequestImageFullscreenPreview,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { Image } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Caption, MediaUploadProgress } from '@wordpress/block-editor';\nimport { getProtocol } from '@wordpress/url';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { arrowLeft, arrowRight, warning } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from './gallery-button';\nimport style from './gallery-image-style.scss';\n\nconst { compose } = StyleSheet;\n\nconst separatorStyle = compose( style.separator, {\n\tborderRightWidth: StyleSheet.hairlineWidth,\n} );\nconst buttonStyle = compose( style.button, { aspectRatio: 1 } );\nconst ICON_SIZE_ARROW = 15;\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectCaption = this.onSelectCaption.bind( this );\n\t\tthis.onMediaPressed = this.onMediaPressed.bind( this );\n\t\tthis.onCaptionChange = this.onCaptionChange.bind( this );\n\t\tthis.onSelectMedia = this.onSelectMedia.bind( this );\n\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionSelected: false,\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t};\n\t}\n\n\tonSelectCaption() {\n\t\tif ( ! this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonMediaPressed() {\n\t\tconst { id, url, isSelected } = this.props;\n\t\tconst { captionSelected, isUploadInProgress, didUploadFail } =\n\t\t\tthis.state;\n\n\t\tthis.onSelectImage();\n\n\t\tif ( isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( id );\n\t\t} else if (\n\t\t\tdidUploadFail ||\n\t\t\t( id && getProtocol( url ) === 'file:' )\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( id );\n\t\t} else if ( isSelected && ! captionSelected ) {\n\t\t\trequestImageFullscreenPreview( url );\n\t\t}\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isBlockSelected ) {\n\t\t\tthis.props.onSelectBlock();\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\n\t\tif ( this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSelectMedia( media ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( media );\n\t}\n\n\tonCaptionChange( caption ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { caption } );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { isSelected, image, url } = this.props;\n\t\tif ( image && ! url ) {\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\n\t\t// Unselect the caption so when the user selects other image and comeback\n\t\t// the caption is not immediately selected.\n\t\tif (\n\t\t\tthis.state.captionSelected &&\n\t\t\t! isSelected &&\n\t\t\tprevProps.isSelected\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tupdateMediaProgress() {\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t} );\n\n\t\tthis.props.setAttributes( {\n\t\t\tid: payload.mediaServerId,\n\t\t\turl: payload.mediaUrl,\n\t\t} );\n\t}\n\n\tfinishMediaUploadWithFailure() {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: true,\n\t\t} );\n\t}\n\n\trenderContent( params ) {\n\t\tconst {\n\t\t\turl,\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\t'aria-label': ariaLabel,\n\t\t\tisCropped,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tisRTL,\n\t\t} = this.props;\n\n\t\tconst { isUploadInProgress, captionSelected } = this.state;\n\t\tconst { isUploadFailed, retryMessage } = params;\n\t\tconst resizeMode = isCropped ? 'cover' : 'contain';\n\n\t\tconst captionPlaceholderStyle = getStylesFromColorScheme(\n\t\t\tstyle.captionPlaceholder,\n\t\t\tstyle.captionPlaceholderDark\n\t\t);\n\n\t\tconst shouldShowCaptionEditable = ! isUploadFailed && isSelected;\n\t\tconst shouldShowCaptionExpanded =\n\t\t\t! isUploadFailed && ! isSelected && !! caption;\n\n\t\tconst captionContainerStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpandedContainer\n\t\t\t: style.captionContainer;\n\n\t\tconst captionStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpanded\n\t\t\t: style.caption;\n\n\t\tconst mediaPickerOptions = [\n\t\t\t{\n\t\t\t\tdestructiveButton: true,\n\t\t\t\tid: 'removeImage',\n\t\t\t\tlabel: __( 'Remove' ),\n\t\t\t\tonPress: onRemove,\n\t\t\t\tseparated: true,\n\t\t\t\tvalue: 'removeImage',\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Image\n\t\t\t\t\talt={ ariaLabel }\n\t\t\t\t\theight={ style.image.height }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\tmediaPickerOptions={ mediaPickerOptions }\n\t\t\t\t\tonSelectMediaUploadOption={ this.onSelectMedia }\n\t\t\t\t\tresizeMode={ resizeMode }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\tretryIcon={ warning }\n\t\t\t\t/>\n\n\t\t\t\t{ ! isUploadInProgress && isSelected && (\n\t\t\t\t\t<View style={ style.toolbarContainer }>\n\t\t\t\t\t\t<View style={ style.toolbar }>\n\t\t\t\t\t\t\t<View style={ style.moverButtonContainer }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowRight : arrowLeft }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisFirstItem ? undefined : onMoveBackward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Backward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<View style={ separatorStyle } />\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowLeft : arrowRight }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisLastItem ? undefined : onMoveForward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Forward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isUploadInProgress &&\n\t\t\t\t\t( shouldShowCaptionEditable ||\n\t\t\t\t\t\tshouldShowCaptionExpanded ) && (\n\t\t\t\t\t\t<View style={ captionContainerStyle }>\n\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\tnestedScrollEnabled\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"handled\"\n\t\t\t\t\t\t\t\tbounces={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Caption\n\t\t\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected && captionSelected }\n\t\t\t\t\t\t\t\t\tonChange={ this.onCaptionChange }\n\t\t\t\t\t\t\t\t\tonFocus={ this.onSelectCaption }\n\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\tisSelected ? __( 'Add caption' ) : null\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\tcaptionPlaceholderStyle.color\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstyle={ captionStyle }\n\t\t\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { id, onRemove, getStylesFromColorScheme, isSelected } =\n\t\t\tthis.props;\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyle.galleryImageContainer,\n\t\t\tstyle.galleryImageContainerDark\n\t\t);\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onMediaPressed }\n\t\t\t\taccessible={ ! isSelected } // We need only child views to be accessible after the selection.\n\t\t\t\taccessibilityLabel={ this.accessibilityLabelImageContainer() } // if we don't set this explicitly it reads system provided accessibilityLabels of all child components and those include pretty technical words which don't make sense\n\t\t\t\taccessibilityRole={ 'imagebutton' } // this makes VoiceOver to read a description of image provided by system on iOS and lets user know this is a button which conveys the message of tappablity\n\t\t\t>\n\t\t\t\t<View style={ containerStyle }>\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMediaUploadStateReset={ onRemove }\n\t\t\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n\n\taccessibilityLabelImageContainer() {\n\t\tconst { caption, 'aria-label': ariaLabel } = this.props;\n\n\t\treturn isEmpty( caption )\n\t\t\t? ariaLabel\n\t\t\t: ariaLabel +\n\t\t\t\t\t'. ' +\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: image caption. */\n\t\t\t\t\t\t__( 'Image caption. %s' ),\n\t\t\t\t\t\tcaption\n\t\t\t\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( GalleryImage );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/gallery-image.native.js"],"names":["compose","StyleSheet","separatorStyle","style","separator","borderRightWidth","hairlineWidth","buttonStyle","button","aspectRatio","ICON_SIZE_ARROW","GalleryImage","Component","constructor","arguments","onSelectImage","bind","onSelectCaption","onMediaPressed","onCaptionChange","onSelectMedia","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","renderContent","state","captionSelected","isUploadInProgress","didUploadFail","setState","props","isSelected","onSelect","id","url","isBlockSelected","onSelectBlock","media","setAttributes","caption","componentDidUpdate","prevProps","image","source_url","alt","alt_text","payload","mediaServerId","mediaUrl","params","isFirstItem","isLastItem","onRemove","onMoveForward","onMoveBackward","ariaLabel","isCropped","getStylesFromColorScheme","isRTL","isUploadFailed","retryMessage","resizeMode","captionPlaceholderStyle","captionPlaceholder","captionPlaceholderDark","shouldShowCaptionEditable","shouldShowCaptionExpanded","captionContainerStyle","captionExpandedContainer","captionContainer","captionStyle","captionExpanded","mediaPickerOptions","destructiveButton","label","onPress","separated","value","height","warning","toolbarContainer","toolbar","moverButtonContainer","arrowRight","arrowLeft","undefined","color","render","containerStyle","galleryImageContainer","galleryImageContainerDark","accessibilityLabelImageContainer"],"mappings":";;;;;;;;;AAkBA;;AAfA;;AAUA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AA9BA;AACA;AACA;;AAQA;AACA;AACA;;AAcA;AACA;AACA;AAIA,MAAM;AAAEA,EAAAA;AAAF,IAAcC,uBAApB;AAEA,MAAMC,cAAc,GAAGF,OAAO,CAAEG,2BAAMC,SAAR,EAAmB;AAChDC,EAAAA,gBAAgB,EAAEJ,wBAAWK;AADmB,CAAnB,CAA9B;AAGA,MAAMC,WAAW,GAAGP,OAAO,CAAEG,2BAAMK,MAAR,EAAgB;AAAEC,EAAAA,WAAW,EAAE;AAAf,CAAhB,CAA3B;AACA,MAAMC,eAAe,GAAG,EAAxB;;AAEA,MAAMC,YAAN,SAA2BC,kBAA3B,CAAqC;AACpCC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKC,aAAL,GAAqB,KAAKA,aAAL,CAAmBC,IAAnB,CAAyB,IAAzB,CAArB;AACA,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBD,IAArB,CAA2B,IAA3B,CAAvB;AACA,SAAKE,cAAL,GAAsB,KAAKA,cAAL,CAAoBF,IAApB,CAA0B,IAA1B,CAAtB;AACA,SAAKG,eAAL,GAAuB,KAAKA,eAAL,CAAqBH,IAArB,CAA2B,IAA3B,CAAvB;AACA,SAAKI,aAAL,GAAqB,KAAKA,aAAL,CAAmBJ,IAAnB,CAAyB,IAAzB,CAArB;AAEA,SAAKK,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBL,IAAzB,CAA+B,IAA/B,CAA3B;AACA,SAAKM,4BAAL,GACC,KAAKA,4BAAL,CAAkCN,IAAlC,CAAwC,IAAxC,CADD;AAEA,SAAKO,4BAAL,GACC,KAAKA,4BAAL,CAAkCP,IAAlC,CAAwC,IAAxC,CADD;AAEA,SAAKQ,aAAL,GAAqB,KAAKA,aAAL,CAAmBR,IAAnB,CAAyB,IAAzB,CAArB;AAEA,SAAKS,KAAL,GAAa;AACZC,MAAAA,eAAe,EAAE,KADL;AAEZC,MAAAA,kBAAkB,EAAE,KAFR;AAGZC,MAAAA,aAAa,EAAE;AAHH,KAAb;AAKA;;AAEDX,EAAAA,eAAe,GAAG;AACjB,QAAK,CAAE,KAAKQ,KAAL,CAAWC,eAAlB,EAAoC;AACnC,WAAKG,QAAL,CAAe;AACdH,QAAAA,eAAe,EAAE;AADH,OAAf;AAGA;;AAED,QAAK,CAAE,KAAKI,KAAL,CAAWC,UAAlB,EAA+B;AAC9B,WAAKD,KAAL,CAAWE,QAAX;AACA;AACD;;AAEDd,EAAAA,cAAc,GAAG;AAChB,UAAM;AAAEe,MAAAA,EAAF;AAAMC,MAAAA,GAAN;AAAWH,MAAAA;AAAX,QAA0B,KAAKD,KAArC;AACA,UAAM;AAAEJ,MAAAA,eAAF;AAAmBC,MAAAA,kBAAnB;AAAuCC,MAAAA;AAAvC,QACL,KAAKH,KADN;AAGA,SAAKV,aAAL;;AAEA,QAAKY,kBAAL,EAA0B;AACzB,6DAAgCM,EAAhC;AACA,KAFD,MAEO,IACNL,aAAa,IACXK,EAAE,IAAI,sBAAaC,GAAb,MAAuB,OAFzB,EAGL;AACD,4DAA+BD,EAA/B;AACA,KALM,MAKA,IAAKF,UAAU,IAAI,CAAEL,eAArB,EAAuC;AAC7C,4DAA+BQ,GAA/B;AACA;AACD;;AAEDnB,EAAAA,aAAa,GAAG;AACf,QAAK,CAAE,KAAKe,KAAL,CAAWK,eAAlB,EAAoC;AACnC,WAAKL,KAAL,CAAWM,aAAX;AACA;;AAED,QAAK,CAAE,KAAKN,KAAL,CAAWC,UAAlB,EAA+B;AAC9B,WAAKD,KAAL,CAAWE,QAAX;AACA;;AAED,QAAK,KAAKP,KAAL,CAAWC,eAAhB,EAAkC;AACjC,WAAKG,QAAL,CAAe;AACdH,QAAAA,eAAe,EAAE;AADH,OAAf;AAGA;AACD;;AAEDN,EAAAA,aAAa,CAAEiB,KAAF,EAAU;AACtB,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKR,KAA/B;AACAQ,IAAAA,aAAa,CAAED,KAAF,CAAb;AACA;;AAEDlB,EAAAA,eAAe,CAAEoB,OAAF,EAAY;AAC1B,UAAM;AAAED,MAAAA;AAAF,QAAoB,KAAKR,KAA/B;AACAQ,IAAAA,aAAa,CAAE;AAAEC,MAAAA;AAAF,KAAF,CAAb;AACA;;AAEDC,EAAAA,kBAAkB,CAAEC,SAAF,EAAc;AAC/B,UAAM;AAAEV,MAAAA,UAAF;AAAcW,MAAAA,KAAd;AAAqBR,MAAAA;AAArB,QAA6B,KAAKJ,KAAxC;;AACA,QAAKY,KAAK,IAAI,CAAER,GAAhB,EAAsB;AACrB,WAAKJ,KAAL,CAAWQ,aAAX,CAA0B;AACzBJ,QAAAA,GAAG,EAAEQ,KAAK,CAACC,UADc;AAEzBC,QAAAA,GAAG,EAAEF,KAAK,CAACG;AAFc,OAA1B;AAIA,KAP8B,CAS/B;AACA;;;AACA,QACC,KAAKpB,KAAL,CAAWC,eAAX,IACA,CAAEK,UADF,IAEAU,SAAS,CAACV,UAHX,EAIE;AACD,WAAKF,QAAL,CAAe;AACdH,QAAAA,eAAe,EAAE;AADH,OAAf;AAGA;AACD;;AAEDL,EAAAA,mBAAmB,GAAG;AACrB,QAAK,CAAE,KAAKI,KAAL,CAAWE,kBAAlB,EAAuC;AACtC,WAAKE,QAAL,CAAe;AAAEF,QAAAA,kBAAkB,EAAE;AAAtB,OAAf;AACA;AACD;;AAEDL,EAAAA,4BAA4B,CAAEwB,OAAF,EAAY;AACvC,SAAKjB,QAAL,CAAe;AACdF,MAAAA,kBAAkB,EAAE,KADN;AAEdC,MAAAA,aAAa,EAAE;AAFD,KAAf;AAKA,SAAKE,KAAL,CAAWQ,aAAX,CAA0B;AACzBL,MAAAA,EAAE,EAAEa,OAAO,CAACC,aADa;AAEzBb,MAAAA,GAAG,EAAEY,OAAO,CAACE;AAFY,KAA1B;AAIA;;AAEDzB,EAAAA,4BAA4B,GAAG;AAC9B,SAAKM,QAAL,CAAe;AACdF,MAAAA,kBAAkB,EAAE,KADN;AAEdC,MAAAA,aAAa,EAAE;AAFD,KAAf;AAIA;;AAEDJ,EAAAA,aAAa,CAAEyB,MAAF,EAAW;AACvB,UAAM;AACLf,MAAAA,GADK;AAELgB,MAAAA,WAFK;AAGLC,MAAAA,UAHK;AAILpB,MAAAA,UAJK;AAKLQ,MAAAA,OALK;AAMLa,MAAAA,QANK;AAOLC,MAAAA,aAPK;AAQLC,MAAAA,cARK;AASL,oBAAcC,SATT;AAULC,MAAAA,SAVK;AAWLC,MAAAA,wBAXK;AAYLC,MAAAA;AAZK,QAaF,KAAK5B,KAbT;AAeA,UAAM;AAAEH,MAAAA,kBAAF;AAAsBD,MAAAA;AAAtB,QAA0C,KAAKD,KAArD;AACA,UAAM;AAAEkC,MAAAA,cAAF;AAAkBC,MAAAA;AAAlB,QAAmCX,MAAzC;AACA,UAAMY,UAAU,GAAGL,SAAS,GAAG,OAAH,GAAa,SAAzC;AAEA,UAAMM,uBAAuB,GAAGL,wBAAwB,CACvDtD,2BAAM4D,kBADiD,EAEvD5D,2BAAM6D,sBAFiD,CAAxD;AAKA,UAAMC,yBAAyB,GAAG,CAAEN,cAAF,IAAoB5B,UAAtD;AACA,UAAMmC,yBAAyB,GAC9B,CAAEP,cAAF,IAAoB,CAAE5B,UAAtB,IAAoC,CAAC,CAAEQ,OADxC;AAGA,UAAM4B,qBAAqB,GAAGD,yBAAyB,GACpD/D,2BAAMiE,wBAD8C,GAEpDjE,2BAAMkE,gBAFT;AAIA,UAAMC,YAAY,GAAGJ,yBAAyB,GAC3C/D,2BAAMoE,eADqC,GAE3CpE,2BAAMoC,OAFT;AAIA,UAAMiC,kBAAkB,GAAG,CAC1B;AACCC,MAAAA,iBAAiB,EAAE,IADpB;AAECxC,MAAAA,EAAE,EAAE,aAFL;AAGCyC,MAAAA,KAAK,EAAE,cAAI,QAAJ,CAHR;AAICC,MAAAA,OAAO,EAAEvB,QAJV;AAKCwB,MAAAA,SAAS,EAAE,IALZ;AAMCC,MAAAA,KAAK,EAAE;AANR,KAD0B,CAA3B;AAWA,WACC,qDACC,4BAAC,iBAAD;AACC,MAAA,GAAG,EAAGtB,SADP;AAEC,MAAA,MAAM,EAAGpD,2BAAMuC,KAAN,CAAYoC,MAFtB;AAGC,MAAA,UAAU,EAAG/C,UAHd;AAIC,MAAA,cAAc,EAAG4B,cAJlB;AAKC,MAAA,kBAAkB,EAAGhC,kBALtB;AAMC,MAAA,kBAAkB,EAAG6C,kBANtB;AAOC,MAAA,yBAAyB,EAAG,KAAKpD,aAPlC;AAQC,MAAA,UAAU,EAAGyC,UARd;AASC,MAAA,GAAG,EAAG3B,GATP;AAUC,MAAA,YAAY,EAAG0B,YAVhB;AAWC,MAAA,SAAS,EAAGmB;AAXb,MADD,EAeG,CAAEpD,kBAAF,IAAwBI,UAAxB,IACD,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAG5B,2BAAM6E;AAApB,OACC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAG7E,2BAAM8E;AAApB,OACC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAG9E,2BAAM+E;AAApB,OACC,4BAAC,sBAAD;AACC,MAAA,KAAK,EAAG3E,WADT;AAEC,MAAA,IAAI,EAAGmD,KAAK,GAAGyB,iBAAH,GAAgBC,gBAF7B;AAGC,MAAA,QAAQ,EAAG1E,eAHZ;AAIC,MAAA,OAAO,EACNwC,WAAW,GAAGmC,SAAH,GAAe/B,cAL5B;AAOC,MAAA,kBAAkB,EAAG,cACpB,qBADoB,CAPtB;AAUC,uBAAgBJ,WAVjB;AAWC,MAAA,QAAQ,EAAG,CAAEnB;AAXd,MADD,EAcC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAG7B;AAAd,MAdD,EAeC,4BAAC,sBAAD;AACC,MAAA,KAAK,EAAGK,WADT;AAEC,MAAA,IAAI,EAAGmD,KAAK,GAAG0B,gBAAH,GAAeD,iBAF5B;AAGC,MAAA,QAAQ,EAAGzE,eAHZ;AAIC,MAAA,OAAO,EACNyC,UAAU,GAAGkC,SAAH,GAAehC,aAL3B;AAOC,MAAA,kBAAkB,EAAG,cACpB,oBADoB,CAPtB;AAUC,uBAAgBF,UAVjB;AAWC,MAAA,QAAQ,EAAG,CAAEpB;AAXd,MAfD,CADD,CADD,CAhBF,EAmDG,CAAEJ,kBAAF,KACCsC,yBAAyB,IAC1BC,yBAFA,KAGA,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAGC;AAAd,OACC,4BAAC,uBAAD;AACC,MAAA,mBAAmB,MADpB;AAEC,MAAA,yBAAyB,EAAC,SAF3B;AAGC,MAAA,OAAO,EAAG;AAHX,OAKC,4BAAC,oBAAD;AACC,MAAA,aAAa,MADd;AAEC,MAAA,UAAU,EAAGpC,UAAU,IAAIL,eAF5B;AAGC,MAAA,QAAQ,EAAG,KAAKP,eAHjB;AAIC,MAAA,OAAO,EAAG,KAAKF,eAJhB;AAKC,MAAA,WAAW,EACVc,UAAU,GAAG,cAAI,aAAJ,CAAH,GAAyB,IANrC;AAQC,MAAA,oBAAoB,EACnB+B,uBAAuB,CAACwB,KAT1B;AAWC,MAAA,KAAK,EAAGhB,YAXT;AAYC,MAAA,KAAK,EAAG/B;AAZT,MALD,CADD,CAtDH,CADD;AAgFA;;AAEDgD,EAAAA,MAAM,GAAG;AACR,UAAM;AAAEtD,MAAAA,EAAF;AAAMmB,MAAAA,QAAN;AAAgBK,MAAAA,wBAAhB;AAA0C1B,MAAAA;AAA1C,QACL,KAAKD,KADN;AAGA,UAAM0D,cAAc,GAAG/B,wBAAwB,CAC9CtD,2BAAMsF,qBADwC,EAE9CtF,2BAAMuF,yBAFwC,CAA/C;AAKA,WACC,4BAAC,qCAAD;AACC,MAAA,OAAO,EAAG,KAAKxE,cADhB;AAEC,MAAA,UAAU,EAAG,CAAEa,UAFhB,CAE6B;AAF7B;AAGC,MAAA,kBAAkB,EAAG,KAAK4D,gCAAL,EAHtB,CAGgE;AAHhE;AAIC,MAAA,iBAAiB,EAAG,aAJrB,CAIqC;;AAJrC,OAMC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAGH;AAAd,OACC,4BAAC,gCAAD;AACC,MAAA,OAAO,EAAGvD,EADX;AAEC,MAAA,qBAAqB,EAAG,KAAKZ,mBAF9B;AAGC,MAAA,8BAA8B,EAC7B,KAAKC,4BAJP;AAMC,MAAA,8BAA8B,EAC7B,KAAKC,4BAPP;AASC,MAAA,uBAAuB,EAAG6B,QAT3B;AAUC,MAAA,aAAa,EAAG,KAAK5B;AAVtB,MADD,CAND,CADD;AAuBA;;AAEDmE,EAAAA,gCAAgC,GAAG;AAClC,UAAM;AAAEpD,MAAAA,OAAF;AAAW,oBAAcgB;AAAzB,QAAuC,KAAKzB,KAAlD;AAEA,WAAO,CAAES,OAAF,GACJgB,SADI,GAEJA,SAAS,GACT,IADA,GAEA;AACC;AACA,kBAAI,mBAAJ,CAFD,EAGChB,OAHD,CAJH;AASA;;AAhTmC;;eAmTtB,uCAA0B5B,YAA1B,C","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tStyleSheet,\n\tView,\n\tScrollView,\n\tTouchableWithoutFeedback,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\trequestImageFullscreenPreview,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { Image } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Caption, MediaUploadProgress } from '@wordpress/block-editor';\nimport { getProtocol } from '@wordpress/url';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { arrowLeft, arrowRight, warning } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from './gallery-button';\nimport style from './gallery-image-style.scss';\n\nconst { compose } = StyleSheet;\n\nconst separatorStyle = compose( style.separator, {\n\tborderRightWidth: StyleSheet.hairlineWidth,\n} );\nconst buttonStyle = compose( style.button, { aspectRatio: 1 } );\nconst ICON_SIZE_ARROW = 15;\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectCaption = this.onSelectCaption.bind( this );\n\t\tthis.onMediaPressed = this.onMediaPressed.bind( this );\n\t\tthis.onCaptionChange = this.onCaptionChange.bind( this );\n\t\tthis.onSelectMedia = this.onSelectMedia.bind( this );\n\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionSelected: false,\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t};\n\t}\n\n\tonSelectCaption() {\n\t\tif ( ! this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonMediaPressed() {\n\t\tconst { id, url, isSelected } = this.props;\n\t\tconst { captionSelected, isUploadInProgress, didUploadFail } =\n\t\t\tthis.state;\n\n\t\tthis.onSelectImage();\n\n\t\tif ( isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( id );\n\t\t} else if (\n\t\t\tdidUploadFail ||\n\t\t\t( id && getProtocol( url ) === 'file:' )\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( id );\n\t\t} else if ( isSelected && ! captionSelected ) {\n\t\t\trequestImageFullscreenPreview( url );\n\t\t}\n\t}\n\n\tonSelectImage() {\n\t\tif ( ! this.props.isBlockSelected ) {\n\t\t\tthis.props.onSelectBlock();\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\n\t\tif ( this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSelectMedia( media ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( media );\n\t}\n\n\tonCaptionChange( caption ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { caption } );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { isSelected, image, url } = this.props;\n\t\tif ( image && ! url ) {\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\n\t\t// Unselect the caption so when the user selects other image and comeback\n\t\t// the caption is not immediately selected.\n\t\tif (\n\t\t\tthis.state.captionSelected &&\n\t\t\t! isSelected &&\n\t\t\tprevProps.isSelected\n\t\t) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tupdateMediaProgress() {\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: false,\n\t\t} );\n\n\t\tthis.props.setAttributes( {\n\t\t\tid: payload.mediaServerId,\n\t\t\turl: payload.mediaUrl,\n\t\t} );\n\t}\n\n\tfinishMediaUploadWithFailure() {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tdidUploadFail: true,\n\t\t} );\n\t}\n\n\trenderContent( params ) {\n\t\tconst {\n\t\t\turl,\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\t'aria-label': ariaLabel,\n\t\t\tisCropped,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tisRTL,\n\t\t} = this.props;\n\n\t\tconst { isUploadInProgress, captionSelected } = this.state;\n\t\tconst { isUploadFailed, retryMessage } = params;\n\t\tconst resizeMode = isCropped ? 'cover' : 'contain';\n\n\t\tconst captionPlaceholderStyle = getStylesFromColorScheme(\n\t\t\tstyle.captionPlaceholder,\n\t\t\tstyle.captionPlaceholderDark\n\t\t);\n\n\t\tconst shouldShowCaptionEditable = ! isUploadFailed && isSelected;\n\t\tconst shouldShowCaptionExpanded =\n\t\t\t! isUploadFailed && ! isSelected && !! caption;\n\n\t\tconst captionContainerStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpandedContainer\n\t\t\t: style.captionContainer;\n\n\t\tconst captionStyle = shouldShowCaptionExpanded\n\t\t\t? style.captionExpanded\n\t\t\t: style.caption;\n\n\t\tconst mediaPickerOptions = [\n\t\t\t{\n\t\t\t\tdestructiveButton: true,\n\t\t\t\tid: 'removeImage',\n\t\t\t\tlabel: __( 'Remove' ),\n\t\t\t\tonPress: onRemove,\n\t\t\t\tseparated: true,\n\t\t\t\tvalue: 'removeImage',\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Image\n\t\t\t\t\talt={ ariaLabel }\n\t\t\t\t\theight={ style.image.height }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\tisUploadInProgress={ isUploadInProgress }\n\t\t\t\t\tmediaPickerOptions={ mediaPickerOptions }\n\t\t\t\t\tonSelectMediaUploadOption={ this.onSelectMedia }\n\t\t\t\t\tresizeMode={ resizeMode }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\tretryIcon={ warning }\n\t\t\t\t/>\n\n\t\t\t\t{ ! isUploadInProgress && isSelected && (\n\t\t\t\t\t<View style={ style.toolbarContainer }>\n\t\t\t\t\t\t<View style={ style.toolbar }>\n\t\t\t\t\t\t\t<View style={ style.moverButtonContainer }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowRight : arrowLeft }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisFirstItem ? undefined : onMoveBackward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Backward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isFirstItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<View style={ separatorStyle } />\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\t\t\ticon={ isRTL ? arrowLeft : arrowRight }\n\t\t\t\t\t\t\t\t\ticonSize={ ICON_SIZE_ARROW }\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tisLastItem ? undefined : onMoveForward\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Move Image Forward'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\taria-disabled={ isLastItem }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isUploadInProgress &&\n\t\t\t\t\t( shouldShowCaptionEditable ||\n\t\t\t\t\t\tshouldShowCaptionExpanded ) && (\n\t\t\t\t\t\t<View style={ captionContainerStyle }>\n\t\t\t\t\t\t\t<ScrollView\n\t\t\t\t\t\t\t\tnestedScrollEnabled\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"handled\"\n\t\t\t\t\t\t\t\tbounces={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Caption\n\t\t\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t\t\t\tisSelected={ isSelected && captionSelected }\n\t\t\t\t\t\t\t\t\tonChange={ this.onCaptionChange }\n\t\t\t\t\t\t\t\t\tonFocus={ this.onSelectCaption }\n\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\tisSelected ? __( 'Add caption' ) : null\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\tcaptionPlaceholderStyle.color\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstyle={ captionStyle }\n\t\t\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { id, onRemove, getStylesFromColorScheme, isSelected } =\n\t\t\tthis.props;\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyle.galleryImageContainer,\n\t\t\tstyle.galleryImageContainerDark\n\t\t);\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onMediaPressed }\n\t\t\t\taccessible={ ! isSelected } // We need only child views to be accessible after the selection.\n\t\t\t\taccessibilityLabel={ this.accessibilityLabelImageContainer() } // if we don't set this explicitly it reads system provided accessibilityLabels of all child components and those include pretty technical words which don't make sense\n\t\t\t\taccessibilityRole={ 'imagebutton' } // this makes VoiceOver to read a description of image provided by system on iOS and lets user know this is a button which conveys the message of tappablity\n\t\t\t>\n\t\t\t\t<View style={ containerStyle }>\n\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMediaUploadStateReset={ onRemove }\n\t\t\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n\n\taccessibilityLabelImageContainer() {\n\t\tconst { caption, 'aria-label': ariaLabel } = this.props;\n\n\t\treturn ! caption\n\t\t\t? ariaLabel\n\t\t\t: ariaLabel +\n\t\t\t\t\t'. ' +\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: image caption. */\n\t\t\t\t\t\t__( 'Image caption. %s' ),\n\t\t\t\t\t\tcaption\n\t\t\t\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( GalleryImage );\n"]}
@@ -41,11 +41,6 @@ const transforms = {
41
41
  }, groupInnerBlocks);
42
42
  }
43
43
 
44
- }],
45
- to: [{
46
- type: 'block',
47
- blocks: ['*'],
48
- transform: (attributes, innerBlocks) => innerBlocks
49
44
  }]
50
45
  };
51
46
  var _default = transforms;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/group/transforms.js"],"names":["transforms","from","type","isMultiBlock","blocks","__experimentalConvert","alignments","widestAlignment","reduce","accumulator","block","align","attributes","indexOf","undefined","groupInnerBlocks","map","name","innerBlocks","layout","to","transform"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGA,MAAMA,UAAU,GAAG;AAClBC,EAAAA,IAAI,EAAE,CACL;AACCC,IAAAA,IAAI,EAAE,OADP;AAECC,IAAAA,YAAY,EAAE,IAFf;AAGCC,IAAAA,MAAM,EAAE,CAAE,GAAF,CAHT;;AAICC,IAAAA,qBAAqB,CAAED,MAAF,EAAW;AAC/B,YAAME,UAAU,GAAG,CAAE,MAAF,EAAU,MAAV,CAAnB,CAD+B,CAG/B;;AACA,YAAMC,eAAe,GAAGH,MAAM,CAACI,MAAP,CACvB,CAAEC,WAAF,EAAeC,KAAf,KAA0B;AACzB,cAAM;AAAEC,UAAAA;AAAF,YAAYD,KAAK,CAACE,UAAxB;AACA,eAAON,UAAU,CAACO,OAAX,CAAoBF,KAApB,IACNL,UAAU,CAACO,OAAX,CAAoBJ,WAApB,CADM,GAEJE,KAFI,GAGJF,WAHH;AAIA,OAPsB,EAQvBK,SARuB,CAAxB,CAJ+B,CAe/B;AACA;AACA;AACA;AACA;;AACA,YAAMC,gBAAgB,GAAGX,MAAM,CAACY,GAAP,CAAcN,KAAF,IAAa;AACjD,eAAO,yBACNA,KAAK,CAACO,IADA,EAENP,KAAK,CAACE,UAFA,EAGNF,KAAK,CAACQ,WAHA,CAAP;AAKA,OANwB,CAAzB;AAQA,aAAO,yBACN,YADM,EAEN;AACCP,QAAAA,KAAK,EAAEJ,eADR;AAECY,QAAAA,MAAM,EAAE;AAAEjB,UAAAA,IAAI,EAAE;AAAR;AAFT,OAFM,EAMNa,gBANM,CAAP;AAQA;;AAxCF,GADK,CADY;AA6ClBK,EAAAA,EAAE,EAAE,CACH;AACClB,IAAAA,IAAI,EAAE,OADP;AAECE,IAAAA,MAAM,EAAE,CAAE,GAAF,CAFT;AAGCiB,IAAAA,SAAS,EAAE,CAAET,UAAF,EAAcM,WAAd,KAA+BA;AAH3C,GADG;AA7Cc,CAAnB;eAsDelB,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert( blocks ) {\n\t\t\t\tconst alignments = [ 'wide', 'full' ];\n\n\t\t\t\t// Determine the widest setting of all the blocks to be grouped\n\t\t\t\tconst widestAlignment = blocks.reduce(\n\t\t\t\t\t( accumulator, block ) => {\n\t\t\t\t\t\tconst { align } = block.attributes;\n\t\t\t\t\t\treturn alignments.indexOf( align ) >\n\t\t\t\t\t\t\talignments.indexOf( accumulator )\n\t\t\t\t\t\t\t? align\n\t\t\t\t\t\t\t: accumulator;\n\t\t\t\t\t},\n\t\t\t\t\tundefined\n\t\t\t\t);\n\n\t\t\t\t// Clone the Blocks to be Grouped\n\t\t\t\t// Failing to create new block references causes the original blocks\n\t\t\t\t// to be replaced in the switchToBlockType call thereby meaning they\n\t\t\t\t// are removed both from their original location and within the\n\t\t\t\t// new group block.\n\t\t\t\tconst groupInnerBlocks = blocks.map( ( block ) => {\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\talign: widestAlignment,\n\t\t\t\t\t\tlayout: { type: 'constrained' },\n\t\t\t\t\t},\n\t\t\t\t\tgroupInnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ '*' ],\n\t\t\ttransform: ( attributes, innerBlocks ) => innerBlocks,\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/group/transforms.js"],"names":["transforms","from","type","isMultiBlock","blocks","__experimentalConvert","alignments","widestAlignment","reduce","accumulator","block","align","attributes","indexOf","undefined","groupInnerBlocks","map","name","innerBlocks","layout"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGA,MAAMA,UAAU,GAAG;AAClBC,EAAAA,IAAI,EAAE,CACL;AACCC,IAAAA,IAAI,EAAE,OADP;AAECC,IAAAA,YAAY,EAAE,IAFf;AAGCC,IAAAA,MAAM,EAAE,CAAE,GAAF,CAHT;;AAICC,IAAAA,qBAAqB,CAAED,MAAF,EAAW;AAC/B,YAAME,UAAU,GAAG,CAAE,MAAF,EAAU,MAAV,CAAnB,CAD+B,CAG/B;;AACA,YAAMC,eAAe,GAAGH,MAAM,CAACI,MAAP,CACvB,CAAEC,WAAF,EAAeC,KAAf,KAA0B;AACzB,cAAM;AAAEC,UAAAA;AAAF,YAAYD,KAAK,CAACE,UAAxB;AACA,eAAON,UAAU,CAACO,OAAX,CAAoBF,KAApB,IACNL,UAAU,CAACO,OAAX,CAAoBJ,WAApB,CADM,GAEJE,KAFI,GAGJF,WAHH;AAIA,OAPsB,EAQvBK,SARuB,CAAxB,CAJ+B,CAe/B;AACA;AACA;AACA;AACA;;AACA,YAAMC,gBAAgB,GAAGX,MAAM,CAACY,GAAP,CAAcN,KAAF,IAAa;AACjD,eAAO,yBACNA,KAAK,CAACO,IADA,EAENP,KAAK,CAACE,UAFA,EAGNF,KAAK,CAACQ,WAHA,CAAP;AAKA,OANwB,CAAzB;AAQA,aAAO,yBACN,YADM,EAEN;AACCP,QAAAA,KAAK,EAAEJ,eADR;AAECY,QAAAA,MAAM,EAAE;AAAEjB,UAAAA,IAAI,EAAE;AAAR;AAFT,OAFM,EAMNa,gBANM,CAAP;AAQA;;AAxCF,GADK;AADY,CAAnB;eA+Cef,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert( blocks ) {\n\t\t\t\tconst alignments = [ 'wide', 'full' ];\n\n\t\t\t\t// Determine the widest setting of all the blocks to be grouped\n\t\t\t\tconst widestAlignment = blocks.reduce(\n\t\t\t\t\t( accumulator, block ) => {\n\t\t\t\t\t\tconst { align } = block.attributes;\n\t\t\t\t\t\treturn alignments.indexOf( align ) >\n\t\t\t\t\t\t\talignments.indexOf( accumulator )\n\t\t\t\t\t\t\t? align\n\t\t\t\t\t\t\t: accumulator;\n\t\t\t\t\t},\n\t\t\t\t\tundefined\n\t\t\t\t);\n\n\t\t\t\t// Clone the Blocks to be Grouped\n\t\t\t\t// Failing to create new block references causes the original blocks\n\t\t\t\t// to be replaced in the switchToBlockType call thereby meaning they\n\t\t\t\t// are removed both from their original location and within the\n\t\t\t\t// new group block.\n\t\t\t\tconst groupInnerBlocks = blocks.map( ( block ) => {\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\talign: widestAlignment,\n\t\t\t\t\t\tlayout: { type: 'constrained' },\n\t\t\t\t\t},\n\t\t\t\t\tgroupInnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
@@ -13,8 +13,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
- var _lodash = require("lodash");
17
-
18
16
  var _blockEditor = require("@wordpress/block-editor");
19
17
 
20
18
  /**
@@ -137,7 +135,7 @@ const deprecated = [// The following deprecation moves existing border radius st
137
135
  sizeSlug,
138
136
  title
139
137
  } = attributes;
140
- const newRel = (0, _lodash.isEmpty)(rel) ? undefined : rel;
138
+ const newRel = !rel ? undefined : rel;
141
139
  const classes = (0, _classnames.default)({
142
140
  [`align${align}`]: align,
143
141
  [`size-${sizeSlug}`]: sizeSlug,
@@ -198,7 +196,7 @@ const deprecated = [// The following deprecation moves existing border radius st
198
196
  sizeSlug,
199
197
  title
200
198
  } = attributes;
201
- const newRel = (0, _lodash.isEmpty)(rel) ? undefined : rel;
199
+ const newRel = !rel ? undefined : rel;
202
200
  const classes = (0, _classnames.default)({
203
201
  [`align${align}`]: align,
204
202
  [`size-${sizeSlug}`]: sizeSlug,