@wordpress/block-library 8.24.1 → 8.25.1-next.79a6196f.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 (509) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/build/audio/edit.js +15 -62
  4. package/build/audio/edit.js.map +1 -1
  5. package/build/audio/edit.native.js +1 -1
  6. package/build/audio/edit.native.js.map +1 -1
  7. package/build/audio/index.js +2 -2
  8. package/build/block/edit.js +157 -19
  9. package/build/block/edit.js.map +1 -1
  10. package/build/block/index.js +3 -2
  11. package/build/block/index.js.map +1 -1
  12. package/build/block/v1/edit.js +116 -0
  13. package/build/block/v1/edit.js.map +1 -0
  14. package/build/block/{edit.native.js → v1/edit.native.js} +2 -2
  15. package/build/block/v1/edit.native.js.map +1 -0
  16. package/build/button/index.js +2 -2
  17. package/build/button/save.js +1 -1
  18. package/build/button/save.js.map +1 -1
  19. package/build/code/edit.native.js +13 -14
  20. package/build/code/edit.native.js.map +1 -1
  21. package/build/code/index.js +2 -2
  22. package/build/code/save.js +6 -2
  23. package/build/code/save.js.map +1 -1
  24. package/build/comments-title/deprecated.js +1 -1
  25. package/build/comments-title/index.js +1 -1
  26. package/build/cover/edit/inspector-controls.js +1 -1
  27. package/build/cover/edit/inspector-controls.js.map +1 -1
  28. package/build/cover/edit.native.js +1 -0
  29. package/build/cover/edit.native.js.map +1 -1
  30. package/build/details/index.js +2 -2
  31. package/build/embed/deprecated.js +2 -2
  32. package/build/embed/embed-preview.native.js +1 -1
  33. package/build/embed/embed-preview.native.js.map +1 -1
  34. package/build/embed/icons.js +1 -1
  35. package/build/embed/icons.js.map +1 -1
  36. package/build/embed/index.js +2 -2
  37. package/build/embed/transforms.js +2 -2
  38. package/build/embed/util.js +6 -6
  39. package/build/embed/util.js.map +1 -1
  40. package/build/file/edit.js +20 -28
  41. package/build/file/edit.js.map +1 -1
  42. package/build/file/edit.native.js +1 -1
  43. package/build/file/edit.native.js.map +1 -1
  44. package/build/file/index.js +4 -4
  45. package/build/file/save.js +4 -1
  46. package/build/file/save.js.map +1 -1
  47. package/build/form-input/deprecated.js +147 -0
  48. package/build/form-input/deprecated.js.map +1 -0
  49. package/build/form-input/edit.js +1 -1
  50. package/build/form-input/edit.js.map +1 -1
  51. package/build/form-input/index.js +4 -2
  52. package/build/form-input/index.js.map +1 -1
  53. package/build/form-input/save.js +7 -9
  54. package/build/form-input/save.js.map +1 -1
  55. package/build/gallery/edit.js +38 -58
  56. package/build/gallery/edit.js.map +1 -1
  57. package/build/gallery/gallery.js +19 -24
  58. package/build/gallery/gallery.js.map +1 -1
  59. package/build/gallery/gallery.native.js +1 -1
  60. package/build/gallery/gallery.native.js.map +1 -1
  61. package/build/gallery/index.js +8 -4
  62. package/build/gallery/index.js.map +1 -1
  63. package/build/gallery/transforms.js +4 -68
  64. package/build/gallery/transforms.js.map +1 -1
  65. package/build/gallery/v1/gallery.native.js +1 -1
  66. package/build/gallery/v1/gallery.native.js.map +1 -1
  67. package/build/group/edit.js +6 -1
  68. package/build/group/edit.js.map +1 -1
  69. package/build/group/index.js +5 -1
  70. package/build/group/index.js.map +1 -1
  71. package/build/heading/index.js +3 -6
  72. package/build/heading/index.js.map +1 -1
  73. package/build/image/deprecated.js +11 -0
  74. package/build/image/deprecated.js.map +1 -1
  75. package/build/image/edit.native.js +4 -1
  76. package/build/image/edit.native.js.map +1 -1
  77. package/build/image/image.js +35 -71
  78. package/build/image/image.js.map +1 -1
  79. package/build/image/index.js +2 -2
  80. package/build/image/save.js +3 -1
  81. package/build/image/save.js.map +1 -1
  82. package/build/image/view.js +7 -1
  83. package/build/image/view.js.map +1 -1
  84. package/build/list/edit.js +10 -15
  85. package/build/list/edit.js.map +1 -1
  86. package/build/list-item/edit.js +17 -2
  87. package/build/list-item/edit.js.map +1 -1
  88. package/build/list-item/hooks/use-enter.js +5 -3
  89. package/build/list-item/hooks/use-enter.js.map +1 -1
  90. package/build/list-item/hooks/use-enter.native.js +4 -3
  91. package/build/list-item/hooks/use-enter.native.js.map +1 -1
  92. package/build/list-item/hooks/use-indent-list-item.js +2 -3
  93. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  94. package/build/list-item/hooks/use-merge.js +1 -1
  95. package/build/list-item/hooks/use-merge.js.map +1 -1
  96. package/build/list-item/hooks/use-outdent-list-item.js +3 -17
  97. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  98. package/build/list-item/hooks/use-space.js +8 -4
  99. package/build/list-item/hooks/use-space.js.map +1 -1
  100. package/build/list-item/index.js +10 -3
  101. package/build/list-item/index.js.map +1 -1
  102. package/build/media-text/media-container.native.js +3 -0
  103. package/build/media-text/media-container.native.js.map +1 -1
  104. package/build/navigation/constants.js +3 -1
  105. package/build/navigation/constants.js.map +1 -1
  106. package/build/navigation/edit/index.js +5 -1
  107. package/build/navigation/edit/index.js.map +1 -1
  108. package/build/navigation/view.js +25 -1
  109. package/build/navigation/view.js.map +1 -1
  110. package/build/page-list/convert-to-links-modal.js +2 -2
  111. package/build/page-list/convert-to-links-modal.js.map +1 -1
  112. package/build/paragraph/edit.js +54 -32
  113. package/build/paragraph/edit.js.map +1 -1
  114. package/build/paragraph/index.js +2 -4
  115. package/build/paragraph/index.js.map +1 -1
  116. package/build/paragraph/transforms.js +2 -4
  117. package/build/paragraph/transforms.js.map +1 -1
  118. package/build/pattern/edit.js +24 -2
  119. package/build/pattern/edit.js.map +1 -1
  120. package/build/pattern/recursion-detector.js +147 -0
  121. package/build/pattern/recursion-detector.js.map +1 -0
  122. package/build/post-featured-image/edit.js +19 -2
  123. package/build/post-featured-image/edit.js.map +1 -1
  124. package/build/post-featured-image/index.js +4 -0
  125. package/build/post-featured-image/index.js.map +1 -1
  126. package/build/post-title/index.js +1 -3
  127. package/build/post-title/index.js.map +1 -1
  128. package/build/preformatted/index.js +2 -3
  129. package/build/preformatted/index.js.map +1 -1
  130. package/build/pullquote/index.js +5 -7
  131. package/build/pullquote/index.js.map +1 -1
  132. package/build/query/edit/inspector-controls/index.js +3 -1
  133. package/build/query/edit/inspector-controls/index.js.map +1 -1
  134. package/build/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  135. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  136. package/build/query-pagination-numbers/index.js +1 -1
  137. package/build/query-title/index.js +1 -3
  138. package/build/query-title/index.js.map +1 -1
  139. package/build/quote/index.js +3 -5
  140. package/build/quote/index.js.map +1 -1
  141. package/build/quote/transforms.js +7 -6
  142. package/build/quote/transforms.js.map +1 -1
  143. package/build/search/edit.js +3 -5
  144. package/build/search/edit.js.map +1 -1
  145. package/build/search/index.js +0 -4
  146. package/build/search/index.js.map +1 -1
  147. package/build/site-logo/edit.js +7 -6
  148. package/build/site-logo/edit.js.map +1 -1
  149. package/build/site-title/index.js +1 -5
  150. package/build/site-title/index.js.map +1 -1
  151. package/build/social-link/icons/gravatar.js +22 -0
  152. package/build/social-link/icons/gravatar.js.map +1 -0
  153. package/build/social-link/icons/index.js +11 -0
  154. package/build/social-link/icons/index.js.map +1 -1
  155. package/build/social-link/variations.js +7 -0
  156. package/build/social-link/variations.js.map +1 -1
  157. package/build/spacer/edit.native.js +2 -2
  158. package/build/spacer/edit.native.js.map +1 -1
  159. package/build/table/edit.js +3 -1
  160. package/build/table/edit.js.map +1 -1
  161. package/build/table/index.js +9 -10
  162. package/build/table/index.js.map +1 -1
  163. package/build/table-of-contents/edit.js +2 -2
  164. package/build/table-of-contents/edit.js.map +1 -1
  165. package/build/table-of-contents/index.js +5 -2
  166. package/build/table-of-contents/index.js.map +1 -1
  167. package/build/tag-cloud/edit.js +5 -9
  168. package/build/tag-cloud/edit.js.map +1 -1
  169. package/build/utils/caption.js +90 -0
  170. package/build/utils/caption.js.map +1 -0
  171. package/build/utils/constants.js +16 -0
  172. package/build/utils/constants.js.map +1 -0
  173. package/build/utils/remove-anchor-tag.js +2 -1
  174. package/build/utils/remove-anchor-tag.js.map +1 -1
  175. package/build/verse/index.js +3 -5
  176. package/build/verse/index.js.map +1 -1
  177. package/build/video/deprecated.js +2 -2
  178. package/build/video/edit.js +16 -57
  179. package/build/video/edit.js.map +1 -1
  180. package/build/video/edit.native.js +1 -1
  181. package/build/video/edit.native.js.map +1 -1
  182. package/build/video/index.js +2 -2
  183. package/build-module/audio/edit.js +19 -66
  184. package/build-module/audio/edit.js.map +1 -1
  185. package/build-module/audio/edit.native.js +2 -2
  186. package/build-module/audio/edit.native.js.map +1 -1
  187. package/build-module/audio/index.js +2 -2
  188. package/build-module/block/edit.js +160 -22
  189. package/build-module/block/edit.js.map +1 -1
  190. package/build-module/block/index.js +3 -2
  191. package/build-module/block/index.js.map +1 -1
  192. package/build-module/block/v1/edit.js +108 -0
  193. package/build-module/block/v1/edit.js.map +1 -0
  194. package/build-module/block/{edit.native.js → v1/edit.native.js} +2 -2
  195. package/build-module/block/v1/edit.native.js.map +1 -0
  196. package/build-module/button/index.js +2 -2
  197. package/build-module/button/save.js +1 -1
  198. package/build-module/button/save.js.map +1 -1
  199. package/build-module/code/edit.native.js +14 -16
  200. package/build-module/code/edit.native.js.map +1 -1
  201. package/build-module/code/index.js +2 -2
  202. package/build-module/code/save.js +6 -2
  203. package/build-module/code/save.js.map +1 -1
  204. package/build-module/comments-title/deprecated.js +1 -1
  205. package/build-module/comments-title/index.js +1 -1
  206. package/build-module/cover/edit/inspector-controls.js +1 -1
  207. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  208. package/build-module/cover/edit.native.js +1 -0
  209. package/build-module/cover/edit.native.js.map +1 -1
  210. package/build-module/details/index.js +2 -2
  211. package/build-module/embed/deprecated.js +2 -2
  212. package/build-module/embed/embed-preview.native.js +2 -2
  213. package/build-module/embed/embed-preview.native.js.map +1 -1
  214. package/build-module/embed/icons.js +1 -1
  215. package/build-module/embed/icons.js.map +1 -1
  216. package/build-module/embed/index.js +2 -2
  217. package/build-module/embed/transforms.js +2 -2
  218. package/build-module/embed/util.js +6 -6
  219. package/build-module/embed/util.js.map +1 -1
  220. package/build-module/file/edit.js +20 -28
  221. package/build-module/file/edit.js.map +1 -1
  222. package/build-module/file/edit.native.js +1 -1
  223. package/build-module/file/edit.native.js.map +1 -1
  224. package/build-module/file/index.js +4 -4
  225. package/build-module/file/save.js +4 -1
  226. package/build-module/file/save.js.map +1 -1
  227. package/build-module/form-input/deprecated.js +138 -0
  228. package/build-module/form-input/deprecated.js.map +1 -0
  229. package/build-module/form-input/edit.js +1 -1
  230. package/build-module/form-input/edit.js.map +1 -1
  231. package/build-module/form-input/index.js +4 -2
  232. package/build-module/form-input/index.js.map +1 -1
  233. package/build-module/form-input/save.js +8 -10
  234. package/build-module/form-input/save.js.map +1 -1
  235. package/build-module/gallery/edit.js +41 -61
  236. package/build-module/gallery/edit.js.map +1 -1
  237. package/build-module/gallery/gallery.js +18 -21
  238. package/build-module/gallery/gallery.js.map +1 -1
  239. package/build-module/gallery/gallery.native.js +2 -2
  240. package/build-module/gallery/gallery.native.js.map +1 -1
  241. package/build-module/gallery/index.js +8 -4
  242. package/build-module/gallery/index.js.map +1 -1
  243. package/build-module/gallery/transforms.js +4 -68
  244. package/build-module/gallery/transforms.js.map +1 -1
  245. package/build-module/gallery/v1/gallery.native.js +2 -2
  246. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  247. package/build-module/group/edit.js +6 -1
  248. package/build-module/group/edit.js.map +1 -1
  249. package/build-module/group/index.js +5 -1
  250. package/build-module/group/index.js.map +1 -1
  251. package/build-module/heading/index.js +3 -6
  252. package/build-module/heading/index.js.map +1 -1
  253. package/build-module/image/deprecated.js +11 -0
  254. package/build-module/image/deprecated.js.map +1 -1
  255. package/build-module/image/edit.native.js +5 -2
  256. package/build-module/image/edit.native.js.map +1 -1
  257. package/build-module/image/image.js +35 -71
  258. package/build-module/image/image.js.map +1 -1
  259. package/build-module/image/index.js +2 -2
  260. package/build-module/image/save.js +3 -1
  261. package/build-module/image/save.js.map +1 -1
  262. package/build-module/image/view.js +7 -1
  263. package/build-module/image/view.js.map +1 -1
  264. package/build-module/list/edit.js +10 -15
  265. package/build-module/list/edit.js.map +1 -1
  266. package/build-module/list-item/edit.js +18 -3
  267. package/build-module/list-item/edit.js.map +1 -1
  268. package/build-module/list-item/hooks/use-enter.js +5 -3
  269. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  270. package/build-module/list-item/hooks/use-enter.native.js +4 -3
  271. package/build-module/list-item/hooks/use-enter.native.js.map +1 -1
  272. package/build-module/list-item/hooks/use-indent-list-item.js +2 -3
  273. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  274. package/build-module/list-item/hooks/use-merge.js +1 -1
  275. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  276. package/build-module/list-item/hooks/use-outdent-list-item.js +3 -17
  277. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  278. package/build-module/list-item/hooks/use-space.js +8 -4
  279. package/build-module/list-item/hooks/use-space.js.map +1 -1
  280. package/build-module/list-item/index.js +10 -3
  281. package/build-module/list-item/index.js.map +1 -1
  282. package/build-module/media-text/media-container.native.js +3 -0
  283. package/build-module/media-text/media-container.native.js.map +1 -1
  284. package/build-module/navigation/constants.js +1 -0
  285. package/build-module/navigation/constants.js.map +1 -1
  286. package/build-module/navigation/edit/index.js +7 -3
  287. package/build-module/navigation/edit/index.js.map +1 -1
  288. package/build-module/navigation/view.js +25 -1
  289. package/build-module/navigation/view.js.map +1 -1
  290. package/build-module/page-list/convert-to-links-modal.js +2 -2
  291. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  292. package/build-module/paragraph/edit.js +54 -32
  293. package/build-module/paragraph/edit.js.map +1 -1
  294. package/build-module/paragraph/index.js +2 -4
  295. package/build-module/paragraph/index.js.map +1 -1
  296. package/build-module/paragraph/transforms.js +2 -4
  297. package/build-module/paragraph/transforms.js.map +1 -1
  298. package/build-module/pattern/edit.js +26 -4
  299. package/build-module/pattern/edit.js.map +1 -1
  300. package/build-module/pattern/recursion-detector.js +139 -0
  301. package/build-module/pattern/recursion-detector.js.map +1 -0
  302. package/build-module/post-featured-image/edit.js +19 -2
  303. package/build-module/post-featured-image/edit.js.map +1 -1
  304. package/build-module/post-featured-image/index.js +4 -0
  305. package/build-module/post-featured-image/index.js.map +1 -1
  306. package/build-module/post-title/index.js +1 -3
  307. package/build-module/post-title/index.js.map +1 -1
  308. package/build-module/preformatted/index.js +2 -3
  309. package/build-module/preformatted/index.js.map +1 -1
  310. package/build-module/pullquote/index.js +5 -7
  311. package/build-module/pullquote/index.js.map +1 -1
  312. package/build-module/query/edit/inspector-controls/index.js +3 -1
  313. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  314. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  315. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  316. package/build-module/query-pagination-numbers/index.js +1 -1
  317. package/build-module/query-title/index.js +1 -3
  318. package/build-module/query-title/index.js.map +1 -1
  319. package/build-module/quote/index.js +3 -5
  320. package/build-module/quote/index.js.map +1 -1
  321. package/build-module/quote/transforms.js +7 -6
  322. package/build-module/quote/transforms.js.map +1 -1
  323. package/build-module/search/edit.js +3 -5
  324. package/build-module/search/edit.js.map +1 -1
  325. package/build-module/search/index.js +0 -4
  326. package/build-module/search/index.js.map +1 -1
  327. package/build-module/site-logo/edit.js +7 -6
  328. package/build-module/site-logo/edit.js.map +1 -1
  329. package/build-module/site-title/index.js +1 -5
  330. package/build-module/site-title/index.js.map +1 -1
  331. package/build-module/social-link/icons/gravatar.js +14 -0
  332. package/build-module/social-link/icons/gravatar.js.map +1 -0
  333. package/build-module/social-link/icons/index.js +1 -0
  334. package/build-module/social-link/icons/index.js.map +1 -1
  335. package/build-module/social-link/variations.js +8 -1
  336. package/build-module/social-link/variations.js.map +1 -1
  337. package/build-module/spacer/edit.native.js +2 -2
  338. package/build-module/spacer/edit.native.js.map +1 -1
  339. package/build-module/table/edit.js +3 -1
  340. package/build-module/table/edit.js.map +1 -1
  341. package/build-module/table/index.js +9 -10
  342. package/build-module/table/index.js.map +1 -1
  343. package/build-module/table-of-contents/edit.js +1 -1
  344. package/build-module/table-of-contents/edit.js.map +1 -1
  345. package/build-module/table-of-contents/index.js +5 -1
  346. package/build-module/table-of-contents/index.js.map +1 -1
  347. package/build-module/tag-cloud/edit.js +6 -10
  348. package/build-module/tag-cloud/edit.js.map +1 -1
  349. package/build-module/utils/caption.js +82 -0
  350. package/build-module/utils/caption.js.map +1 -0
  351. package/build-module/utils/constants.js +9 -0
  352. package/build-module/utils/constants.js.map +1 -0
  353. package/build-module/utils/remove-anchor-tag.js +2 -1
  354. package/build-module/utils/remove-anchor-tag.js.map +1 -1
  355. package/build-module/verse/index.js +3 -5
  356. package/build-module/verse/index.js.map +1 -1
  357. package/build-module/video/deprecated.js +2 -2
  358. package/build-module/video/edit.js +21 -62
  359. package/build-module/video/edit.js.map +1 -1
  360. package/build-module/video/edit.native.js +2 -2
  361. package/build-module/video/edit.native.js.map +1 -1
  362. package/build-module/video/index.js +2 -2
  363. package/build-style/button/editor-rtl.css +0 -37
  364. package/build-style/button/editor.css +0 -37
  365. package/build-style/button/style-rtl.css +6 -6
  366. package/build-style/button/style.css +6 -6
  367. package/build-style/editor-rtl.css +3 -55
  368. package/build-style/editor.css +3 -55
  369. package/build-style/navigation/editor-rtl.css +2 -4
  370. package/build-style/navigation/editor.css +2 -4
  371. package/build-style/navigation/style-rtl.css +14 -18
  372. package/build-style/navigation/style.css +14 -18
  373. package/build-style/search/style-rtl.css +26 -27
  374. package/build-style/search/style.css +26 -27
  375. package/build-style/social-links/style-rtl.css +14 -2
  376. package/build-style/social-links/style.css +14 -2
  377. package/build-style/style-rtl.css +60 -53
  378. package/build-style/style.css +60 -53
  379. package/build-style/table/editor-rtl.css +1 -14
  380. package/build-style/table/editor.css +1 -14
  381. package/package.json +32 -32
  382. package/src/audio/block.json +2 -2
  383. package/src/audio/edit.js +29 -92
  384. package/src/audio/edit.native.js +2 -1
  385. package/src/audio/test/__snapshots__/edit.native.js.snap +12 -0
  386. package/src/audio/test/edit.native.js +29 -0
  387. package/src/block/edit.js +218 -37
  388. package/src/block/index.js +3 -2
  389. package/src/block/index.php +48 -0
  390. package/src/block/v1/edit.js +163 -0
  391. package/src/block/{edit.native.js → v1/edit.native.js} +2 -2
  392. package/src/button/block.json +2 -2
  393. package/src/button/editor.scss +0 -43
  394. package/src/button/save.js +1 -1
  395. package/src/button/style.scss +6 -6
  396. package/src/buttons/test/__snapshots__/edit.native.js.snap +6 -0
  397. package/src/buttons/test/edit.native.js +49 -0
  398. package/src/code/block.json +2 -2
  399. package/src/code/edit.native.js +11 -13
  400. package/src/code/save.js +4 -1
  401. package/src/code/test/edit.native.js +2 -2
  402. package/src/comments-title/block.json +1 -1
  403. package/src/cover/edit/inspector-controls.js +1 -1
  404. package/src/cover/edit.native.js +1 -0
  405. package/src/cover/test/edit.native.js +7 -1
  406. package/src/details/block.json +2 -2
  407. package/src/embed/block.json +2 -2
  408. package/src/embed/embed-preview.native.js +2 -1
  409. package/src/embed/icons.js +1 -1
  410. package/src/embed/util.js +2 -2
  411. package/src/file/block.json +4 -4
  412. package/src/file/edit.js +18 -25
  413. package/src/file/edit.native.js +1 -1
  414. package/src/file/save.js +5 -1
  415. package/src/form-input/block.json +2 -2
  416. package/src/form-input/deprecated.js +142 -0
  417. package/src/form-input/edit.js +1 -1
  418. package/src/form-input/index.js +2 -0
  419. package/src/form-input/save.js +27 -24
  420. package/src/gallery/block.json +8 -4
  421. package/src/gallery/edit.js +70 -98
  422. package/src/gallery/gallery.js +22 -36
  423. package/src/gallery/gallery.native.js +6 -2
  424. package/src/gallery/index.php +15 -0
  425. package/src/gallery/transforms.js +2 -55
  426. package/src/gallery/v1/gallery.native.js +2 -1
  427. package/src/group/block.json +5 -1
  428. package/src/group/edit.js +4 -1
  429. package/src/heading/block.json +3 -6
  430. package/src/image/block.json +2 -2
  431. package/src/image/deprecated.js +8 -0
  432. package/src/image/edit.native.js +5 -3
  433. package/src/image/image.js +77 -127
  434. package/src/image/index.php +1 -6
  435. package/src/image/save.js +3 -1
  436. package/src/image/view.js +5 -2
  437. package/src/list/edit.js +27 -35
  438. package/src/list-item/block.json +10 -3
  439. package/src/list-item/edit.js +18 -2
  440. package/src/list-item/hooks/use-enter.js +63 -62
  441. package/src/list-item/hooks/use-enter.native.js +9 -5
  442. package/src/list-item/hooks/use-indent-list-item.js +43 -53
  443. package/src/list-item/hooks/use-merge.js +1 -1
  444. package/src/list-item/hooks/use-outdent-list-item.js +50 -69
  445. package/src/list-item/hooks/use-space.js +7 -4
  446. package/src/media-text/media-container.native.js +3 -1
  447. package/src/navigation/constants.js +2 -0
  448. package/src/navigation/edit/index.js +18 -3
  449. package/src/navigation/editor.scss +1 -1
  450. package/src/navigation/index.php +1 -1
  451. package/src/navigation/style.scss +18 -16
  452. package/src/navigation/view.js +29 -3
  453. package/src/navigation-link/test/__snapshots__/hooks.js.snap +6 -3
  454. package/src/page-list/convert-to-links-modal.js +2 -2
  455. package/src/paragraph/block.json +2 -4
  456. package/src/paragraph/edit.js +53 -40
  457. package/src/paragraph/test/__snapshots__/edit.native.js.snap +12 -0
  458. package/src/paragraph/test/edit.native.js +114 -0
  459. package/src/pattern/edit.js +35 -3
  460. package/src/pattern/index.php +16 -0
  461. package/src/pattern/recursion-detector.js +145 -0
  462. package/src/pattern/test/index.js +74 -0
  463. package/src/post-featured-image/block.json +4 -0
  464. package/src/post-featured-image/edit.js +32 -1
  465. package/src/post-featured-image/index.php +31 -0
  466. package/src/post-title/block.json +1 -3
  467. package/src/preformatted/block.json +2 -3
  468. package/src/pullquote/block.json +5 -7
  469. package/src/query/edit/inspector-controls/index.js +2 -0
  470. package/src/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  471. package/src/query-pagination-numbers/block.json +1 -1
  472. package/src/query-title/block.json +1 -3
  473. package/src/quote/block.json +3 -5
  474. package/src/quote/transforms.js +12 -11
  475. package/src/search/block.json +0 -4
  476. package/src/search/edit.js +2 -8
  477. package/src/search/index.php +3 -7
  478. package/src/search/style.scss +27 -29
  479. package/src/site-logo/edit.js +3 -4
  480. package/src/site-title/block.json +1 -5
  481. package/src/social-link/icons/gravatar.js +10 -0
  482. package/src/social-link/icons/index.js +1 -0
  483. package/src/social-link/index.php +5 -1
  484. package/src/social-link/socials-with-bg.scss +5 -0
  485. package/src/social-link/socials-without-bg.scss +4 -0
  486. package/src/social-link/variations.js +7 -0
  487. package/src/social-links/style.scss +14 -8
  488. package/src/spacer/edit.native.js +4 -2
  489. package/src/table/block.json +9 -10
  490. package/src/table/edit.js +3 -1
  491. package/src/table/editor.scss +1 -17
  492. package/src/table-of-contents/edit.js +1 -1
  493. package/src/table-of-contents/index.js +5 -1
  494. package/src/tag-cloud/edit.js +7 -7
  495. package/src/template-part/index.php +6 -0
  496. package/src/utils/caption.js +108 -0
  497. package/src/utils/constants.js +8 -0
  498. package/src/utils/remove-anchor-tag.js +2 -1
  499. package/src/verse/block.json +3 -5
  500. package/src/video/block.json +2 -2
  501. package/src/video/edit.js +40 -100
  502. package/src/video/edit.native.js +2 -1
  503. package/build/block/edit.native.js.map +0 -1
  504. package/build/table-of-contents/icon.js +0 -22
  505. package/build/table-of-contents/icon.js.map +0 -1
  506. package/build-module/block/edit.native.js.map +0 -1
  507. package/build-module/table-of-contents/icon.js +0 -15
  508. package/build-module/table-of-contents/icon.js.map +0 -1
  509. package/src/table-of-contents/icon.js +0 -18
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_blockEditor","_components","_element","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","useBlockProps","ref","useRef","TagName","borderProps","useBorderProps","colorProps","useColorProps","current","focus","controls","_react","createElement","Fragment","InspectorControls","PanelBody","title","__","CheckboxControl","checked","onChange","newVal","__experimentalGroup","TextControl","autoComplete","help","classNames","event","target","RichText","tagName","newLabel","undefined","style","_default","exports","default"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Input settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_blockEditor","_components","_element","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","useBlockProps","ref","useRef","TagName","borderProps","useBorderProps","colorProps","useColorProps","current","focus","controls","_react","createElement","Fragment","InspectorControls","PanelBody","title","__","CheckboxControl","checked","onChange","newVal","group","TextControl","autoComplete","help","classNames","event","target","RichText","tagName","newLabel","undefined","style","_default","exports","default"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Input settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.settings = exports.name = exports.metadata = exports.init = void 0;
8
8
  var _initBlock = _interopRequireDefault(require("../utils/init-block"));
9
+ var _deprecated = _interopRequireDefault(require("./deprecated"));
9
10
  var _edit = _interopRequireDefault(require("./edit"));
10
11
  var _save = _interopRequireDefault(require("./save"));
11
12
  var _variations = _interopRequireDefault(require("./variations"));
@@ -33,10 +34,10 @@ const metadata = {
33
34
  type: "string"
34
35
  },
35
36
  label: {
36
- type: "string",
37
+ type: "rich-text",
37
38
  "default": "Label",
38
39
  selector: ".wp-block-form-input__label-content",
39
- source: "html",
40
+ source: "rich-text",
40
41
  __experimentalRole: "content"
41
42
  },
42
43
  inlineLabel: {
@@ -91,6 +92,7 @@ const {
91
92
  } = metadata;
92
93
  exports.name = name;
93
94
  const settings = {
95
+ deprecated: _deprecated.default,
94
96
  edit: _edit.default,
95
97
  save: _save.default,
96
98
  variations: _variations.default
@@ -1 +1 @@
1
- {"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","_save","_variations","metadata","$schema","apiVersion","__experimental","name","title","category","ancestor","description","keywords","textdomain","icon","attributes","type","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","style","exports","settings","edit","save","variations","init","initBlock"],"sources":["@wordpress/block-library/src/form-input/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tsave,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAPA;AACA;AACA;AAFA,MAAAI,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAA,IAAA;MAAA;IAAA;IAAAT,IAAA;MAAAS,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAC,kBAAA;IAAA;IAAAC,WAAA;MAAAL,IAAA;MAAA;IAAA;IAAAM,QAAA;MAAAN,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAC,WAAA;MAAAR,IAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;MAAAH,kBAAA;IAAA;IAAAK,KAAA;MAAAT,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAG,qBAAA;MAAAV,IAAA;MAAA;IAAA;EAAA;EAAAW,QAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAC,+BAAA;MAAAC,6BAAA;QAAAF,MAAA;MAAA;IAAA;EAAA;EAAAG,KAAA;AAAA;AAAAC,OAAA,CAAAlC,QAAA,GAAAA,QAAA;AASA,MAAM;EAAEI;AAAK,CAAC,GAAGJ,QAAQ;AAACkC,OAAA,CAAA9B,IAAA,GAAAA,IAAA;AAInB,MAAM+B,QAAQ,GAAG;EACvBC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA;AACD,CAAC;AAACJ,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMI,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEpC,IAAI;EAAEJ,QAAQ;EAAEmC;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAK,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_initBlock","_interopRequireDefault","require","_deprecated","_edit","_save","_variations","metadata","$schema","apiVersion","__experimental","name","title","category","ancestor","description","keywords","textdomain","icon","attributes","type","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","style","exports","settings","deprecated","edit","save","variations","init","initBlock"],"sources":["@wordpress/block-library/src/form-input/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tdeprecated,\n\tedit,\n\tsave,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,WAAA,GAAAL,sBAAA,CAAAC,OAAA;AARA;AACA;AACA;AAFA,MAAAK,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAA,IAAA;MAAA;IAAA;IAAAT,IAAA;MAAAS,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAC,kBAAA;IAAA;IAAAC,WAAA;MAAAL,IAAA;MAAA;IAAA;IAAAM,QAAA;MAAAN,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAC,WAAA;MAAAR,IAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;MAAAH,kBAAA;IAAA;IAAAK,KAAA;MAAAT,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAG,qBAAA;MAAAV,IAAA;MAAA;IAAA;EAAA;EAAAW,QAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAC,+BAAA;MAAAC,6BAAA;QAAAF,MAAA;MAAA;IAAA;EAAA;EAAAG,KAAA;AAAA;AAAAC,OAAA,CAAAlC,QAAA,GAAAA,QAAA;AAUA,MAAM;EAAEI;AAAK,CAAC,GAAGJ,QAAQ;AAACkC,OAAA,CAAA9B,IAAA,GAAAA,IAAA;AAInB,MAAM+B,QAAQ,GAAG;EACvBC,UAAU,EAAVA,mBAAU;EACVC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA;AACD,CAAC;AAACL,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMK,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAErC,IAAI;EAAEJ,QAAQ;EAAEmC;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAM,IAAA,GAAAA,IAAA"}
@@ -9,6 +9,7 @@ var _react = require("react");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _removeAccents = _interopRequireDefault(require("remove-accents"));
11
11
  var _blockEditor = require("@wordpress/block-editor");
12
+ var _dom = require("@wordpress/dom");
12
13
  /**
13
14
  * External dependencies
14
15
  */
@@ -25,10 +26,7 @@ var _blockEditor = require("@wordpress/block-editor");
25
26
  * @return {string} Returns the slug.
26
27
  */
27
28
  const getNameFromLabel = content => {
28
- const dummyElement = document.createElement('div');
29
- dummyElement.innerHTML = content;
30
- // Get the slug.
31
- return (0, _removeAccents.default)(dummyElement.innerText)
29
+ return (0, _removeAccents.default)((0, _dom.__unstableStripHTML)(content))
32
30
  // Convert anything that's not a letter or number to a hyphen.
33
31
  .replace(/[^\p{L}\p{N}]+/gu, '-')
34
32
  // Convert to lowercase
@@ -56,6 +54,7 @@ function save({
56
54
  };
57
55
  const inputClasses = (0, _classnames.default)('wp-block-form-input__input', colorProps.className, borderProps.className);
58
56
  const TagName = type === 'textarea' ? 'textarea' : 'input';
57
+ const blockProps = _blockEditor.useBlockProps.save();
59
58
  if ('hidden' === type) {
60
59
  return (0, _react.createElement)("input", {
61
60
  type: type,
@@ -63,9 +62,9 @@ function save({
63
62
  value: value
64
63
  });
65
64
  }
66
-
67
- /* eslint-disable jsx-a11y/label-has-associated-control */
68
- return (0, _react.createElement)("label", {
65
+ return (0, _react.createElement)("div", {
66
+ ...blockProps
67
+ }, (0, _react.createElement)("label", {
69
68
  className: (0, _classnames.default)('wp-block-form-input__label', {
70
69
  'is-label-inline': inlineLabel
71
70
  })
@@ -81,7 +80,6 @@ function save({
81
80
  "aria-required": required,
82
81
  placeholder: placeholder || undefined,
83
82
  style: inputStyle
84
- }));
85
- /* eslint-enable jsx-a11y/label-has-associated-control */
83
+ })));
86
84
  }
87
85
  //# sourceMappingURL=save.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_removeAccents","_blockEditor","getNameFromLabel","content","dummyElement","document","createElement","innerHTML","removeAccents","innerText","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","getBorderClassesAndStyles","colorProps","getColorClassesAndStyles","inputStyle","style","inputClasses","classNames","className","TagName","_react","RichText","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\tconst dummyElement = document.createElement( 'div' );\n\tdummyElement.innerHTML = content;\n\t// Get the slug.\n\treturn (\n\t\tremoveAccents( dummyElement.innerText )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = classNames(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\t/* eslint-disable jsx-a11y/label-has-associated-control */\n\treturn (\n\t\t<label\n\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t} ) }\n\t\t>\n\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t<RichText.Content value={ label } />\n\t\t\t</span>\n\t\t\t<TagName\n\t\t\t\tclassName={ inputClasses }\n\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\trequired={ required }\n\t\t\t\taria-required={ required }\n\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\tstyle={ inputStyle }\n\t\t\t/>\n\t\t</label>\n\t);\n\t/* eslint-enable jsx-a11y/label-has-associated-control */\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAF,sBAAA,CAAAC,OAAA;AAKA,IAAAE,YAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,gBAAgB,GAAKC,OAAO,IAAM;EACvC,MAAMC,YAAY,GAAGC,QAAQ,CAACC,aAAa,CAAE,KAAM,CAAC;EACpDF,YAAY,CAACG,SAAS,GAAGJ,OAAO;EAChC;EACA,OACC,IAAAK,sBAAa,EAAEJ,YAAY,CAACK,SAAU;EACrC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAEc,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAG,IAAAC,oDAAyB,EAAET,UAAW,CAAC;EAC3D,MAAMU,UAAU,GAAG,IAAAC,mDAAwB,EAAEX,UAAW,CAAC;EAEzD,MAAMY,UAAU,GAAG;IAClB,GAAGJ,WAAW,CAACK,KAAK;IACpB,GAAGH,UAAU,CAACG;EACf,CAAC;EAED,MAAMC,YAAY,GAAG,IAAAC,mBAAU,EAC9B,4BAA4B,EAC5BL,UAAU,CAACM,SAAS,EACpBR,WAAW,CAACQ,SACb,CAAC;EACD,MAAMC,OAAO,GAAGhB,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,IAAK,QAAQ,KAAKA,IAAI,EAAG;IACxB,OAAO,IAAAiB,MAAA,CAAAzB,aAAA;MAAOQ,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;;EAEA;EACA,OACC,IAAAW,MAAA,CAAAzB,aAAA;IACCuB,SAAS,EAAG,IAAAD,mBAAU,EAAE,4BAA4B,EAAE;MACrD,iBAAiB,EAAEX;IACpB,CAAE;EAAG,GAEL,IAAAc,MAAA,CAAAzB,aAAA;IAAMuB,SAAS,EAAC;EAAoC,GACnD,IAAAE,MAAA,CAAAzB,aAAA,EAACL,YAAA,CAAA+B,QAAQ,CAACC,OAAO;IAACb,KAAK,EAAGJ;EAAO,CAAE,CAC9B,CAAC,EACP,IAAAe,MAAA,CAAAzB,aAAA,EAACwB,OAAO;IACPD,SAAS,EAAGF,YAAc;IAC1Bb,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGoB,SAAS,GAAGpB,IAAM;IAC/CC,IAAI,EAAGA,IAAI,IAAIb,gBAAgB,CAAEc,KAAM,CAAG;IAC1CE,QAAQ,EAAGA,QAAU;IACrB,iBAAgBA,QAAU;IAC1BC,WAAW,EAAGA,WAAW,IAAIe,SAAW;IACxCR,KAAK,EAAGD;EAAY,CACpB,CACK,CAAC;EAET;AACD"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_removeAccents","_blockEditor","_dom","getNameFromLabel","content","removeAccents","stripHTML","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","getBorderClassesAndStyles","colorProps","getColorClassesAndStyles","inputStyle","style","inputClasses","classNames","className","TagName","blockProps","useBlockProps","_react","createElement","RichText","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = classNames(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst blockProps = useBlockProps.save();\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t<label\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t</span>\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t</label>\n\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAF,sBAAA,CAAAC,OAAA;AAKA,IAAAE,YAAA,GAAAF,OAAA;AAMA,IAAAG,IAAA,GAAAH,OAAA;AAfA;AACA;AACA;;AAIA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,gBAAgB,GAAKC,OAAO,IAAM;EACvC,OACC,IAAAC,sBAAa,EAAE,IAAAC,wBAAS,EAAEF,OAAQ,CAAE;EACnC;EAAA,CACCG,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAEc,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAG,IAAAC,oDAAyB,EAAET,UAAW,CAAC;EAC3D,MAAMU,UAAU,GAAG,IAAAC,mDAAwB,EAAEX,UAAW,CAAC;EAEzD,MAAMY,UAAU,GAAG;IAClB,GAAGJ,WAAW,CAACK,KAAK;IACpB,GAAGH,UAAU,CAACG;EACf,CAAC;EAED,MAAMC,YAAY,GAAG,IAAAC,mBAAU,EAC9B,4BAA4B,EAC5BL,UAAU,CAACM,SAAS,EACpBR,WAAW,CAACQ,SACb,CAAC;EACD,MAAMC,OAAO,GAAGhB,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,MAAMiB,UAAU,GAAGC,0BAAa,CAACpB,IAAI,CAAC,CAAC;EAEvC,IAAK,QAAQ,KAAKE,IAAI,EAAG;IACxB,OAAO,IAAAmB,MAAA,CAAAC,aAAA;MAAOpB,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;EAEA,OACC,IAAAa,MAAA,CAAAC,aAAA;IAAA,GAAUH;EAAU,GAEnB,IAAAE,MAAA,CAAAC,aAAA;IACCL,SAAS,EAAG,IAAAD,mBAAU,EAAE,4BAA4B,EAAE;MACrD,iBAAiB,EAAEX;IACpB,CAAE;EAAG,GAEL,IAAAgB,MAAA,CAAAC,aAAA;IAAML,SAAS,EAAC;EAAoC,GACnD,IAAAI,MAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAA+B,QAAQ,CAACC,OAAO;IAAChB,KAAK,EAAGJ;EAAO,CAAE,CAC9B,CAAC,EACP,IAAAiB,MAAA,CAAAC,aAAA,EAACJ,OAAO;IACPD,SAAS,EAAGF,YAAc;IAC1Bb,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGuB,SAAS,GAAGvB,IAAM;IAC/CC,IAAI,EAAGA,IAAI,IAAIT,gBAAgB,CAAEU,KAAM,CAAG;IAC1CE,QAAQ,EAAGA,QAAU;IACrB,iBAAgBA,QAAU;IAC1BC,WAAW,EAAGA,WAAW,IAAIkB,SAAW;IACxCX,KAAK,EAAGD;EAAY,CACpB,CACK,CAEH,CAAC;AAER"}
@@ -18,7 +18,6 @@ var _primitives = require("@wordpress/primitives");
18
18
  var _blocks = require("@wordpress/blocks");
19
19
  var _blob = require("@wordpress/blob");
20
20
  var _notices = require("@wordpress/notices");
21
- var _icons = require("@wordpress/icons");
22
21
  var _sharedIcon = require("./shared-icon");
23
22
  var _shared = require("./shared");
24
23
  var _utils = require("./utils");
@@ -58,6 +57,7 @@ const PLACEHOLDER_TEXT = _element.Platform.isNative ? (0, _i18n.__)('Add media')
58
57
  const MOBILE_CONTROL_PROPS_RANGE_CONTROL = _element.Platform.isNative ? {
59
58
  type: 'stepper'
60
59
  } : {};
60
+ const EMPTY_ARRAY = [];
61
61
  function GalleryEdit(props) {
62
62
  const {
63
63
  setAttributes,
@@ -72,33 +72,11 @@ function GalleryEdit(props) {
72
72
  const {
73
73
  columns,
74
74
  imageCrop,
75
+ randomOrder,
75
76
  linkTarget,
76
77
  linkTo,
77
- sizeSlug,
78
- caption
78
+ sizeSlug
79
79
  } = attributes;
80
- const [showCaption, setShowCaption] = (0, _element.useState)(!!caption);
81
- const prevCaption = (0, _compose.usePrevious)(caption);
82
-
83
- // We need to show the caption when changes come from
84
- // history navigation(undo/redo).
85
- (0, _element.useEffect)(() => {
86
- if (caption && !prevCaption) {
87
- setShowCaption(true);
88
- }
89
- }, [caption, prevCaption]);
90
- (0, _element.useEffect)(() => {
91
- if (!isSelected && !caption) {
92
- setShowCaption(false);
93
- }
94
- }, [isSelected, caption]);
95
-
96
- // Focus the caption when we click to add one.
97
- const captionRef = (0, _element.useCallback)(node => {
98
- if (node && !caption) {
99
- node.focus();
100
- }
101
- }, [caption]);
102
80
  const {
103
81
  __unstableMarkNextChangeAsNotPersistent,
104
82
  replaceInnerBlocks,
@@ -112,23 +90,29 @@ function GalleryEdit(props) {
112
90
  const {
113
91
  getBlock,
114
92
  getSettings,
115
- preferredStyle
93
+ preferredStyle,
94
+ innerBlockImages,
95
+ blockWasJustInserted,
96
+ multiGallerySelection
116
97
  } = (0, _data.useSelect)(select => {
117
- const settings = select(_blockEditor.store).getSettings();
118
- const preferredStyleVariations = settings.__experimentalPreferredStyleVariations;
98
+ var _getBlock$innerBlocks;
99
+ const {
100
+ getBlockName,
101
+ getMultiSelectedBlockClientIds,
102
+ getSettings: _getSettings,
103
+ getBlock: _getBlock,
104
+ wasBlockJustInserted
105
+ } = select(_blockEditor.store);
106
+ const preferredStyleVariations = _getSettings().__experimentalPreferredStyleVariations;
107
+ const multiSelectedClientIds = getMultiSelectedBlockClientIds();
119
108
  return {
120
- getBlock: select(_blockEditor.store).getBlock,
121
- getSettings: select(_blockEditor.store).getSettings,
122
- preferredStyle: preferredStyleVariations?.value?.['core/image']
109
+ getBlock: _getBlock,
110
+ getSettings: _getSettings,
111
+ preferredStyle: preferredStyleVariations?.value?.['core/image'],
112
+ innerBlockImages: (_getBlock$innerBlocks = _getBlock(clientId)?.innerBlocks) !== null && _getBlock$innerBlocks !== void 0 ? _getBlock$innerBlocks : EMPTY_ARRAY,
113
+ blockWasJustInserted: wasBlockJustInserted(clientId, 'inserter_menu'),
114
+ multiGallerySelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/gallery')
123
115
  };
124
- }, []);
125
- const innerBlockImages = (0, _data.useSelect)(select => {
126
- var _select$getBlock$inne;
127
- const innerBlocks = (_select$getBlock$inne = select(_blockEditor.store).getBlock(clientId)?.innerBlocks) !== null && _select$getBlock$inne !== void 0 ? _select$getBlock$inne : [];
128
- return innerBlocks;
129
- }, [clientId]);
130
- const wasBlockJustInserted = (0, _data.useSelect)(select => {
131
- return select(_blockEditor.store).wasBlockJustInserted(clientId, 'inserter_menu');
132
116
  }, [clientId]);
133
117
  const images = (0, _element.useMemo)(() => innerBlockImages?.map(block => ({
134
118
  clientId: block.clientId,
@@ -288,6 +272,11 @@ function GalleryEdit(props) {
288
272
  function getImageCropHelp(checked) {
289
273
  return checked ? (0, _i18n.__)('Thumbnails are cropped to align.') : (0, _i18n.__)('Thumbnails are not cropped.');
290
274
  }
275
+ function toggleRandomOrder() {
276
+ setAttributes({
277
+ randomOrder: !randomOrder
278
+ });
279
+ }
291
280
  function toggleOpenInNewTab(openInNewTab) {
292
281
  const newLinkTarget = openInNewTab ? '_blank' : undefined;
293
282
  setAttributes({
@@ -352,7 +341,7 @@ function GalleryEdit(props) {
352
341
  isAppender: hasImages,
353
342
  disableMediaButtons: hasImages && !isSelected || imagesUploading,
354
343
  value: hasImageIds ? images : {},
355
- autoOpenMediaUpload: !hasImages && isSelected && wasBlockJustInserted,
344
+ autoOpenMediaUpload: !hasImages && isSelected && blockWasJustInserted,
356
345
  onFocus
357
346
  }
358
347
  });
@@ -407,6 +396,11 @@ function GalleryEdit(props) {
407
396
  checked: !!imageCrop,
408
397
  onChange: toggleImageCrop,
409
398
  help: getImageCropHelp
399
+ }), (0, _react.createElement)(_components.ToggleControl, {
400
+ __nextHasNoMarginBottom: true,
401
+ label: (0, _i18n.__)('Random order'),
402
+ checked: !!randomOrder,
403
+ onChange: toggleRandomOrder
410
404
  }), (0, _react.createElement)(_components.SelectControl, {
411
405
  __nextHasNoMarginBottom: true,
412
406
  label: (0, _i18n.__)('Link to'),
@@ -433,21 +427,7 @@ function GalleryEdit(props) {
433
427
  className: 'gallery-image-sizes'
434
428
  }, (0, _react.createElement)(_components.BaseControl.VisualLabel, null, (0, _i18n.__)('Resolution')), (0, _react.createElement)(_primitives.View, {
435
429
  className: 'gallery-image-sizes__loading'
436
- }, (0, _react.createElement)(_components.Spinner, null), (0, _i18n.__)('Loading options…'))))), _element.Platform.isWeb && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.BlockControls, {
437
- group: "block"
438
- }, !isContentLocked && (0, _react.createElement)(_components.ToolbarButton, {
439
- onClick: () => {
440
- setShowCaption(!showCaption);
441
- if (showCaption && caption) {
442
- setAttributes({
443
- caption: undefined
444
- });
445
- }
446
- },
447
- icon: _icons.caption,
448
- isPressed: showCaption,
449
- label: showCaption ? (0, _i18n.__)('Remove caption') : (0, _i18n.__)('Add caption')
450
- })), (0, _react.createElement)(_blockEditor.BlockControls, {
430
+ }, (0, _react.createElement)(_components.Spinner, null), (0, _i18n.__)('Loading options…'))))), _element.Platform.isWeb && (0, _react.createElement)(_react.Fragment, null, !multiGallerySelection && (0, _react.createElement)(_blockEditor.BlockControls, {
451
431
  group: "other"
452
432
  }, (0, _react.createElement)(_blockEditor.MediaReplaceFlow, {
453
433
  allowedTypes: ALLOWED_MEDIA_TYPES,
@@ -463,12 +443,12 @@ function GalleryEdit(props) {
463
443
  clientId: clientId
464
444
  })), (0, _react.createElement)(_gallery.default, {
465
445
  ...props,
466
- showCaption: showCaption,
467
- ref: _element.Platform.isWeb ? captionRef : undefined,
446
+ isContentLocked: isContentLocked,
468
447
  images: images,
469
448
  mediaPlaceholder: !hasImages || _element.Platform.isNative ? mediaPlaceholder : undefined,
470
449
  blockProps: innerBlocksProps,
471
- insertBlocksAfter: insertBlocksAfter
450
+ insertBlocksAfter: insertBlocksAfter,
451
+ multiGallerySelection: multiGallerySelection
472
452
  }));
473
453
  }
474
454
  var _default = (0, _compose.compose)([(0, _viewport.withViewportMatch)({
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_blockEditor","_element","_i18n","_data","_viewport","_primitives","_blocks","_blob","_notices","_icons","_sharedIcon","_shared","_utils","_utils2","_gallery","_constants","_useImageSizes","_useGetNewImages","_useGetMedia","_gapStyles","MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","__","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","_x","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","onFocus","columns","imageCrop","linkTarget","linkTo","sizeSlug","caption","showCaption","setShowCaption","useState","prevCaption","usePrevious","useEffect","captionRef","useCallback","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","useDispatch","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","getBlock","getSettings","preferredStyle","useSelect","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","_select$getBlock$inne","innerBlocks","wasBlockJustInserted","images","useMemo","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","useGetMedia","newImages","useGetNewImages","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","useImageSizes","imageAttributes","image","find","newClassName","newLinkTarget","rel","getUpdatedLinkTargetSettings","pickRelevantMediaFiles","getHrefAndDestination","linkDestination","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","createBlobURL","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","createBlock","concat","sort","a","b","length","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","sprintf","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","getImageSizeAttributes","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","_react","createElement","MediaPlaceholder","handleUpload","icon","sharedIcon","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","useBlockProps","classnames","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","useInnerBlocksProps","orientation","renderAppender","View","children","hasLinkTo","Fragment","InspectorControls","PanelBody","RangeControl","__nextHasNoMarginBottom","defaultColumnsNumber","onChange","min","max","Math","required","__next40pxDefaultSize","ToggleControl","help","SelectControl","options","hideCancelButton","isWeb","BaseControl","VisualLabel","Spinner","BlockControls","group","ToolbarButton","onClick","captionIcon","isPressed","MediaReplaceFlow","name","mediaIds","default","blockGap","style","spacing","ref","_default","compose","withViewportMatch","isNarrow","exports"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"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\tonFocus,\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\tconst innerBlocks =\n\t\t\t\tselect( blockEditorStore ).getBlock( clientId )?.innerBlocks ??\n\t\t\t\t[];\n\t\t\treturn 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\tonFocus,\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\t__next40pxDefaultSize\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{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\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"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_blockEditor","_element","_i18n","_data","_viewport","_primitives","_blocks","_blob","_notices","_sharedIcon","_shared","_utils","_utils2","_gallery","_constants","_useImageSizes","_useGetNewImages","_useGetMedia","_gapStyles","MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","__","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","_x","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","EMPTY_ARRAY","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","onFocus","columns","imageCrop","randomOrder","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","useDispatch","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","getBlock","getSettings","preferredStyle","innerBlockImages","blockWasJustInserted","multiGallerySelection","useSelect","select","_getBlock$innerBlocks","getBlockName","getMultiSelectedBlockClientIds","_getSettings","_getBlock","wasBlockJustInserted","preferredStyleVariations","__experimentalPreferredStyleVariations","multiSelectedClientIds","innerBlocks","length","every","_clientId","images","useMemo","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","useGetMedia","newImages","useGetNewImages","useEffect","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","useImageSizes","imageAttributes","image","find","newClassName","newLinkTarget","rel","getUpdatedLinkTargetSettings","pickRelevantMediaFiles","getHrefAndDestination","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","createBlobURL","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","createBlock","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","sprintf","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleRandomOrder","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","getImageSizeAttributes","imageSize","size","window","wp","media","view","settings","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","_react","createElement","MediaPlaceholder","handleUpload","icon","sharedIcon","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","useBlockProps","classnames","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","useInnerBlocksProps","orientation","renderAppender","View","children","hasLinkTo","Fragment","InspectorControls","PanelBody","RangeControl","__nextHasNoMarginBottom","defaultColumnsNumber","onChange","min","max","Math","required","__next40pxDefaultSize","ToggleControl","help","SelectControl","options","hideCancelButton","isWeb","BaseControl","VisualLabel","Spinner","BlockControls","group","MediaReplaceFlow","name","mediaIds","default","blockGap","style","spacing","_default","compose","withViewportMatch","isNarrow","exports"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\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 { Platform, useEffect, useMemo } 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';\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\nconst EMPTY_ARRAY = [];\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\tonFocus,\n\t} = props;\n\n\tconst { columns, imageCrop, randomOrder, linkTarget, linkTo, sizeSlug } =\n\t\tattributes;\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 {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tpreferredStyle,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst preferredStyleVariations =\n\t\t\t\t_getSettings().__experimentalPreferredStyleVariations;\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tpreferredStyle:\n\t\t\t\t\tpreferredStyleVariations?.value?.[ 'core/image' ],\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\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 toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\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 && blockWasJustInserted,\n\t\t\tonFocus,\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\t__next40pxDefaultSize\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<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Random order' ) }\n\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\tonChange={ toggleRandomOrder }\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{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\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\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAQA,IAAAG,YAAA,GAAAH,OAAA;AASA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AAKA,IAAAY,WAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AACA,IAAAe,OAAA,GAAAf,OAAA;AAIA,IAAAgB,QAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,UAAA,GAAAjB,OAAA;AAKA,IAAAkB,cAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,gBAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,YAAA,GAAArB,sBAAA,CAAAC,OAAA;AACA,IAAAqB,UAAA,GAAAtB,sBAAA,CAAAC,OAAA;AAtDA;AACA;AACA;;AAGA;AACA;AACA;;AA4BA;AACA;AACA;;AAmBA,MAAMsB,WAAW,GAAG,CAAC;AACrB,MAAMC,WAAW,GAAG,CACnB;EAAEC,KAAK,EAAEC,sCAA2B;EAAEC,KAAK,EAAE,IAAAC,QAAE,EAAE,iBAAkB;AAAE,CAAC,EACtE;EAAEH,KAAK,EAAEI,iCAAsB;EAAEF,KAAK,EAAE,IAAAC,QAAE,EAAE,YAAa;AAAE,CAAC,EAC5D;EACCH,KAAK,EAAEK,gCAAqB;EAC5BH,KAAK,EAAE,IAAAI,QAAE,EAAE,MAAM,EAAE,wBAAyB;AAC7C,CAAC,CACD;AACD,MAAMC,mBAAmB,GAAG,CAAE,OAAO,CAAE;AACvC,MAAMC,aAAa,GAAG,CAAE,YAAY,CAAE;AAEtC,MAAMC,gBAAgB,GAAGC,iBAAQ,CAACC,QAAQ,GACvC,IAAAR,QAAE,EAAE,WAAY,CAAC,GACjB,IAAAA,QAAE,EAAE,iEAAkE,CAAC;AAE1E,MAAMS,kCAAkC,GAAGF,iBAAQ,CAACC,QAAQ,GACzD;EAAEE,IAAI,EAAE;AAAU,CAAC,GACnB,CAAC,CAAC;AAEL,MAAMC,WAAW,GAAG,EAAE;AAEtB,SAASC,WAAWA,CAAEC,KAAK,EAAG;EAC7B,MAAM;IACLC,aAAa;IACbC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACVC,iBAAiB;IACjBC,eAAe;IACfC;EACD,CAAC,GAAGR,KAAK;EAET,MAAM;IAAES,OAAO;IAAEC,SAAS;IAAEC,WAAW;IAAEC,UAAU;IAAEC,MAAM;IAAEC;EAAS,CAAC,GACtEZ,UAAU;EAEX,MAAM;IACLa,uCAAuC;IACvCC,kBAAkB;IAClBC,qBAAqB;IACrBC;EACD,CAAC,GAAG,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EACnC,MAAM;IAAEC,mBAAmB;IAAEC;EAAkB,CAAC,GAC/C,IAAAH,iBAAW,EAAEI,cAAa,CAAC;EAE5B,MAAM;IACLC,QAAQ;IACRC,WAAW;IACXC,cAAc;IACdC,gBAAgB;IAChBC,oBAAoB;IACpBC;EACD,CAAC,GAAG,IAAAC,eAAS,EACVC,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACb,MAAM;MACLC,YAAY;MACZC,8BAA8B;MAC9BT,WAAW,EAAEU,YAAY;MACzBX,QAAQ,EAAEY,SAAS;MACnBC;IACD,CAAC,GAAGN,MAAM,CAAEX,kBAAiB,CAAC;IAC9B,MAAMkB,wBAAwB,GAC7BH,YAAY,CAAC,CAAC,CAACI,sCAAsC;IACtD,MAAMC,sBAAsB,GAAGN,8BAA8B,CAAC,CAAC;IAE/D,OAAO;MACNV,QAAQ,EAAEY,SAAS;MACnBX,WAAW,EAAEU,YAAY;MACzBT,cAAc,EACbY,wBAAwB,EAAEtD,KAAK,GAAI,YAAY,CAAE;MAClD2C,gBAAgB,GAAAK,qBAAA,GACfI,SAAS,CAAEhC,QAAS,CAAC,EAAEqC,WAAW,cAAAT,qBAAA,cAAAA,qBAAA,GAAIlC,WAAW;MAClD8B,oBAAoB,EAAES,oBAAoB,CACzCjC,QAAQ,EACR,eACD,CAAC;MACDyB,qBAAqB,EACpBW,sBAAsB,CAACE,MAAM,IAC7BF,sBAAsB,CAACG,KAAK,CACzBC,SAAS,IACVX,YAAY,CAAEW,SAAU,CAAC,KAAK,cAChC;IACF,CAAC;EACF,CAAC,EACD,CAAExC,QAAQ,CACX,CAAC;EAED,MAAMyC,MAAM,GAAG,IAAAC,gBAAO,EACrB,MACCnB,gBAAgB,EAAEoB,GAAG,CAAIC,KAAK,KAAQ;IACrC5C,QAAQ,EAAE4C,KAAK,CAAC5C,QAAQ;IACxB6C,EAAE,EAAED,KAAK,CAAC9C,UAAU,CAAC+C,EAAE;IACvBC,GAAG,EAAEF,KAAK,CAAC9C,UAAU,CAACgD,GAAG;IACzBhD,UAAU,EAAE8C,KAAK,CAAC9C,UAAU;IAC5BiD,gBAAgB,EAAEC,OAAO,CAAEJ,KAAK,CAACK,eAAgB;EAClD,CAAC,CAAG,CAAC,EACN,CAAE1B,gBAAgB,CACnB,CAAC;EAED,MAAM2B,SAAS,GAAG,IAAAC,oBAAW,EAAE5B,gBAAiB,CAAC;EAEjD,MAAM6B,SAAS,GAAG,IAAAC,wBAAe,EAAEZ,MAAM,EAAES,SAAU,CAAC;EAEtD,IAAAI,kBAAS,EAAE,MAAM;IAChBF,SAAS,EAAEG,OAAO,CAAIC,QAAQ,IAAM;MACnC;MACA7C,uCAAuC,CAAC,CAAC;MACzCE,qBAAqB,CAAE2C,QAAQ,CAACxD,QAAQ,EAAE;QACzC,GAAGyD,oBAAoB,CAAED,QAAQ,CAAC1D,UAAW,CAAC;QAC9C+C,EAAE,EAAEW,QAAQ,CAACX,EAAE;QACfa,KAAK,EAAEC;MACR,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEP,SAAS,CAAG,CAAC;EAElB,MAAMQ,gBAAgB,GAAG,IAAAC,sBAAa,EACrCX,SAAS,EACTjD,UAAU,EACVoB,WACD,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,SAASoC,oBAAoBA,CAAEK,eAAe,EAAG;IAChD,MAAMC,KAAK,GAAGD,eAAe,CAACjB,EAAE,GAC7BK,SAAS,CAACc,IAAI,CAAE,CAAE;MAAEnB;IAAG,CAAC,KAAMA,EAAE,KAAKiB,eAAe,CAACjB,EAAG,CAAC,GACzD,IAAI;IAEP,IAAIoB,YAAY;IAChB,IAAKH,eAAe,CAAC/D,SAAS,IAAI+D,eAAe,CAAC/D,SAAS,KAAK,EAAE,EAAG;MACpEkE,YAAY,GAAGH,eAAe,CAAC/D,SAAS;IACzC,CAAC,MAAM;MACNkE,YAAY,GAAG3C,cAAc,GACzB,YAAYA,cAAgB,EAAC,GAC9BqC,SAAS;IACb;IAEA,IAAIO,aAAa;IACjB,IAAKJ,eAAe,CAACtD,UAAU,IAAIsD,eAAe,CAACK,GAAG,EAAG;MACxD;MACAD,aAAa,GAAG;QACf1D,UAAU,EAAEsD,eAAe,CAACtD,UAAU;QACtC2D,GAAG,EAAEL,eAAe,CAACK;MACtB,CAAC;IACF,CAAC,MAAM;MACN;MACAD,aAAa,GAAG,IAAAE,oCAA4B,EAC3C5D,UAAU,EACVV,UACD,CAAC;IACF;IAEA,OAAO;MACN,GAAG,IAAAuE,8BAAsB,EAAEN,KAAK,EAAErD,QAAS,CAAC;MAC5C,GAAG,IAAA4D,4BAAqB,EACvBP,KAAK,EACLtD,MAAM,EACNqD,eAAe,EAAES,eAClB,CAAC;MACD,GAAGL,aAAa;MAChBnE,SAAS,EAAEkE,YAAY;MACvBvD,QAAQ;MACR8D,OAAO,EAAEV,eAAe,CAACU,OAAO,IAAIT,KAAK,CAACS,OAAO,EAAEC,GAAG;MACtDC,GAAG,EAAEZ,eAAe,CAACY,GAAG,IAAIX,KAAK,CAACY;IACnC,CAAC;EACF;EAEA,SAASC,eAAeA,CAAEC,IAAI,EAAG;IAChC;IACA,MAAMC,cAAc,GACnBxF,iBAAQ,CAACC,QAAQ,IAAIsF,IAAI,CAAChC,EAAE,GACzBK,SAAS,CAACc,IAAI,CAAE,CAAE;MAAEnB;IAAG,CAAC,KAAMA,EAAE,KAAKgC,IAAI,CAAChC,EAAG,CAAC,GAC9C,IAAI;IAER,MAAMkC,iBAAiB,GAAGD,cAAc,GACrCA,cAAc,EAAEE,UAAU,GAC1BH,IAAI,CAACpF,IAAI;IAEZ,OACCN,mBAAmB,CAAC8F,IAAI,CACrBC,SAAS,IAAMH,iBAAiB,EAAEI,OAAO,CAAED,SAAU,CAAC,KAAK,CAC9D,CAAC,IAAIL,IAAI,CAAC/B,GAAG,EAAEqC,OAAO,CAAE,OAAQ,CAAC,KAAK,CAAC;EAEzC;EAEA,SAASC,YAAYA,CAAEC,cAAc,EAAG;IACvC,MAAMC,cAAc,GACnBC,MAAM,CAACC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAAEL,cAAe,CAAC,KAChD,mBAAmB;IAEpB,MAAMM,UAAU,GAAGL,cAAc,GAC9BM,KAAK,CAACC,IAAI,CAAER,cAAe,CAAC,CAAC1C,GAAG,CAAIkC,IAAI,IAAM;MAC9C,IAAK,CAAEA,IAAI,CAAC/B,GAAG,EAAG;QACjB,OAAO,IAAAuB,8BAAsB,EAAE;UAC9BvB,GAAG,EAAE,IAAAgD,mBAAa,EAAEjB,IAAK;QAC1B,CAAE,CAAC;MACJ;MAEA,OAAOA,IAAI;IACX,CAAE,CAAC,GACHQ,cAAc;IAEjB,IAAK,CAAEM,UAAU,CAACpD,KAAK,CAAEqC,eAAgB,CAAC,EAAG;MAC5C1D,iBAAiB,CAChB,IAAAnC,QAAE,EACD,8DACD,CAAC,EACD;QAAE8D,EAAE,EAAE,6BAA6B;QAAEpD,IAAI,EAAE;MAAW,CACvD,CAAC;IACF;IAEA,MAAMsG,eAAe,GAAGJ,UAAU,CAChCK,MAAM,CAAInB,IAAI,IAAMA,IAAI,CAAC/B,GAAG,IAAI8B,eAAe,CAAEC,IAAK,CAAE,CAAC,CACzDlC,GAAG,CAAIkC,IAAI,IAAM;MACjB,IAAK,CAAEA,IAAI,CAAC/B,GAAG,EAAG;QACjB,OAAO,IAAAuB,8BAAsB,EAAE;UAC9BvB,GAAG,EAAE,IAAAgD,mBAAa,EAAEjB,IAAK;QAC1B,CAAE,CAAC;MACJ;MAEA,OAAOA,IAAI;IACZ,CAAE,CAAC;;IAEJ;IACA;IACA;IACA,MAAMoB,WAAW,GAAGF,eAAe,CAACG,MAAM,CACzC,CAAEC,MAAM,EAAEpC,KAAK,EAAEqC,KAAK,MACnBD,MAAM,CAAEpC,KAAK,CAAClB,EAAE,CAAE,GAAGuD,KAAK,EAAID,MAAM,CACtC,EACD,CAAC,CACF,CAAC;IAED,MAAME,mBAAmB,GAAG,CAAEf,cAAc,GACzC/D,gBAAgB,CAACyE,MAAM,CAAIpD,KAAK,IAChCmD,eAAe,CAAC/B,IAAI,CACjBsC,GAAG,IAAMA,GAAG,CAACzD,EAAE,KAAKD,KAAK,CAAC9C,UAAU,CAAC+C,EACxC,CACA,CAAC,GACDtB,gBAAgB;IAEnB,MAAMgF,YAAY,GAAGR,eAAe,CAACC,MAAM,CACxCM,GAAG,IACJ,CAAED,mBAAmB,CAACrC,IAAI,CACvBwC,WAAW,IAAMF,GAAG,CAACzD,EAAE,KAAK2D,WAAW,CAAC1G,UAAU,CAAC+C,EACtD,CACF,CAAC;IAED,MAAM4D,SAAS,GAAGF,YAAY,CAAC5D,GAAG,CAAIoB,KAAK,IAAM;MAChD,OAAO,IAAA2C,mBAAW,EAAE,YAAY,EAAE;QACjC7D,EAAE,EAAEkB,KAAK,CAAClB,EAAE;QACZC,GAAG,EAAEiB,KAAK,CAACjB,GAAG;QACd0B,OAAO,EAAET,KAAK,CAACS,OAAO;QACtBE,GAAG,EAAEX,KAAK,CAACW;MACZ,CAAE,CAAC;IACJ,CAAE,CAAC;IAEH9D,kBAAkB,CACjBZ,QAAQ,EACRqG,mBAAmB,CACjBM,MAAM,CAAEF,SAAU,CAAC,CACnBG,IAAI,CACJ,CAAEC,CAAC,EAAEC,CAAC,KACLb,WAAW,CAAEY,CAAC,CAAC/G,UAAU,CAAC+C,EAAE,CAAE,GAC9BoD,WAAW,CAAEa,CAAC,CAAChH,UAAU,CAAC+C,EAAE,CAC9B,CACF,CAAC;;IAED;IACA,IAAK4D,SAAS,EAAEnE,MAAM,GAAG,CAAC,EAAG;MAC5BxB,WAAW,CAAE2F,SAAS,CAAE,CAAC,CAAE,CAACzG,QAAS,CAAC;IACvC;EACD;EAEA,SAAS+G,aAAaA,CAAEC,OAAO,EAAG;IACjC9F,iBAAiB,CAAE8F,OAAO,EAAE;MAAEvH,IAAI,EAAE;IAAW,CAAE,CAAC;EACnD;EAEA,SAASwH,SAASA,CAAErI,KAAK,EAAG;IAC3BiB,aAAa,CAAE;MAAEY,MAAM,EAAE7B;IAAM,CAAE,CAAC;IAClC,MAAMsI,iBAAiB,GAAG,CAAC,CAAC;IAC5B,MAAMC,MAAM,GAAG,EAAE;IACjB/F,QAAQ,CAAEpB,QAAS,CAAC,CAACqC,WAAW,CAACkB,OAAO,CAAIX,KAAK,IAAM;MACtDuE,MAAM,CAACC,IAAI,CAAExE,KAAK,CAAC5C,QAAS,CAAC;MAC7B,MAAM+D,KAAK,GAAGnB,KAAK,CAAC9C,UAAU,CAAC+C,EAAE,GAC9BK,SAAS,CAACc,IAAI,CAAE,CAAE;QAAEnB;MAAG,CAAC,KAAMA,EAAE,KAAKD,KAAK,CAAC9C,UAAU,CAAC+C,EAAG,CAAC,GAC1D,IAAI;MACPqE,iBAAiB,CAAEtE,KAAK,CAAC5C,QAAQ,CAAE,GAAG,IAAAsE,4BAAqB,EAC1DP,KAAK,EACLnF,KACD,CAAC;IACF,CAAE,CAAC;IACHiC,qBAAqB,CAAEsG,MAAM,EAAED,iBAAiB,EAAE,IAAK,CAAC;IACxD,MAAMG,UAAU,GAAG,CAAE,GAAG1I,WAAW,CAAE,CAACqF,IAAI,CACvCsD,QAAQ,IAAMA,QAAQ,CAAC1I,KAAK,KAAKA,KACpC,CAAC;IAEDqC,mBAAmB,CAClB,IAAAsG,aAAO,GACN;IACA,IAAAxI,QAAE,EAAE,wCAAyC,CAAC,EAC9CsI,UAAU,CAACvI,KACZ,CAAC,EACD;MACC+D,EAAE,EAAE,2BAA2B;MAC/BpD,IAAI,EAAE;IACP,CACD,CAAC;EACF;EAEA,SAAS+H,gBAAgBA,CAAE5I,KAAK,EAAG;IAClCiB,aAAa,CAAE;MAAEQ,OAAO,EAAEzB;IAAM,CAAE,CAAC;EACpC;EAEA,SAAS6I,eAAeA,CAAA,EAAG;IAC1B5H,aAAa,CAAE;MAAES,SAAS,EAAE,CAAEA;IAAU,CAAE,CAAC;EAC5C;EAEA,SAASoH,gBAAgBA,CAAEC,OAAO,EAAG;IACpC,OAAOA,OAAO,GACX,IAAA5I,QAAE,EAAE,kCAAmC,CAAC,GACxC,IAAAA,QAAE,EAAE,6BAA8B,CAAC;EACvC;EAEA,SAAS6I,iBAAiBA,CAAA,EAAG;IAC5B/H,aAAa,CAAE;MAAEU,WAAW,EAAE,CAAEA;IAAY,CAAE,CAAC;EAChD;EAEA,SAASsH,kBAAkBA,CAAEC,YAAY,EAAG;IAC3C,MAAM5D,aAAa,GAAG4D,YAAY,GAAG,QAAQ,GAAGnE,SAAS;IACzD9D,aAAa,CAAE;MAAEW,UAAU,EAAE0D;IAAc,CAAE,CAAC;IAC9C,MAAMgD,iBAAiB,GAAG,CAAC,CAAC;IAC5B,MAAMC,MAAM,GAAG,EAAE;IACjB/F,QAAQ,CAAEpB,QAAS,CAAC,CAACqC,WAAW,CAACkB,OAAO,CAAIX,KAAK,IAAM;MACtDuE,MAAM,CAACC,IAAI,CAAExE,KAAK,CAAC5C,QAAS,CAAC;MAC7BkH,iBAAiB,CAAEtE,KAAK,CAAC5C,QAAQ,CAAE,GAAG,IAAAoE,oCAA4B,EACjEF,aAAa,EACbtB,KAAK,CAAC9C,UACP,CAAC;IACF,CAAE,CAAC;IACHe,qBAAqB,CAAEsG,MAAM,EAAED,iBAAiB,EAAE,IAAK,CAAC;IACxD,MAAMa,UAAU,GAAGD,YAAY,GAC5B,IAAA/I,QAAE,EAAE,+CAAgD,CAAC,GACrD,IAAAA,QAAE,EAAE,mDAAoD,CAAC;IAC5DkC,mBAAmB,CAAE8G,UAAU,EAAE;MAChClF,EAAE,EAAE,iCAAiC;MACrCpD,IAAI,EAAE;IACP,CAAE,CAAC;EACJ;EAEA,SAASuI,gBAAgBA,CAAEC,WAAW,EAAG;IACxCpI,aAAa,CAAE;MAAEa,QAAQ,EAAEuH;IAAY,CAAE,CAAC;IAC1C,MAAMf,iBAAiB,GAAG,CAAC,CAAC;IAC5B,MAAMC,MAAM,GAAG,EAAE;IACjB/F,QAAQ,CAAEpB,QAAS,CAAC,CAACqC,WAAW,CAACkB,OAAO,CAAIX,KAAK,IAAM;MACtDuE,MAAM,CAACC,IAAI,CAAExE,KAAK,CAAC5C,QAAS,CAAC;MAC7B,MAAM+D,KAAK,GAAGnB,KAAK,CAAC9C,UAAU,CAAC+C,EAAE,GAC9BK,SAAS,CAACc,IAAI,CAAE,CAAE;QAAEnB;MAAG,CAAC,KAAMA,EAAE,KAAKD,KAAK,CAAC9C,UAAU,CAAC+C,EAAG,CAAC,GAC1D,IAAI;MACPqE,iBAAiB,CAAEtE,KAAK,CAAC5C,QAAQ,CAAE,GAAG,IAAAkI,8BAAsB,EAC3DnE,KAAK,EACLkE,WACD,CAAC;IACF,CAAE,CAAC;IACHpH,qBAAqB,CAAEsG,MAAM,EAAED,iBAAiB,EAAE,IAAK,CAAC;IACxD,MAAMiB,SAAS,GAAGvE,gBAAgB,CAACI,IAAI,CACpCoE,IAAI,IAAMA,IAAI,CAACxJ,KAAK,KAAKqJ,WAC5B,CAAC;IAEDhH,mBAAmB,CAClB,IAAAsG,aAAO,GACN;IACA,IAAAxI,QAAE,EAAE,wCAAyC,CAAC,EAC9CoJ,SAAS,CAACrJ,KACX,CAAC,EACD;MACC+D,EAAE,EAAE,6BAA6B;MACjCpD,IAAI,EAAE;IACP,CACD,CAAC;EACF;EAEA,IAAA6D,kBAAS,EAAE,MAAM;IAChB;IACA,IAAK,CAAE7C,MAAM,EAAG;MACfE,uCAAuC,CAAC,CAAC;MACzCd,aAAa,CAAE;QACdY,MAAM,EACL4H,MAAM,EAAEC,EAAE,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,IAAI,IACrD1J;MACF,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAEwB,MAAM,CAAG,CAAC;EAEf,MAAMmI,SAAS,GAAG,CAAC,CAAEnG,MAAM,CAACH,MAAM;EAClC,MAAMuG,WAAW,GAAGD,SAAS,IAAInG,MAAM,CAACwC,IAAI,CAAIlB,KAAK,IAAM,CAAC,CAAEA,KAAK,CAAClB,EAAG,CAAC;EACxE,MAAMiG,eAAe,GAAGrG,MAAM,CAACwC,IAAI,CAAIqB,GAAG,IACzC,CAAEhH,iBAAQ,CAACC,QAAQ,GAChB,CAAE+G,GAAG,CAACzD,EAAE,IAAIyD,GAAG,CAACxD,GAAG,EAAEqC,OAAO,CAAE,OAAQ,CAAC,KAAK,CAAC,GAC7CmB,GAAG,CAACxD,GAAG,EAAEqC,OAAO,CAAE,OAAQ,CAAC,KAAK,CACpC,CAAC;;EAED;EACA,MAAM4D,qBAAqB,GAAGzJ,iBAAQ,CAACqC,MAAM,CAAE;IAC9CqH,GAAG,EAAE;MACJC,YAAY,EAAE,KAAK;MACnBC,mBAAmB,EAAEJ,eAAe;MACpClK,KAAK,EAAE,CAAC;IACT,CAAC;IACDuK,MAAM,EAAE;MACPF,YAAY,EAAEJ,WAAW;MACzBO,UAAU,EAAER,SAAS;MACrBM,mBAAmB,EAChBN,SAAS,IAAI,CAAE3I,UAAU,IAAM6I,eAAe;MACjDlK,KAAK,EAAEiK,WAAW,GAAGpG,MAAM,GAAG,CAAC,CAAC;MAChC4G,mBAAmB,EAClB,CAAET,SAAS,IAAI3I,UAAU,IAAIuB,oBAAoB;MAClDpB;IACD;EACD,CAAE,CAAC;EACH,MAAMkJ,gBAAgB,GACrB,IAAAC,MAAA,CAAAC,aAAA,EAACjM,YAAA,CAAAkM,gBAAgB;IAChBC,YAAY,EAAG,KAAO;IACtBC,IAAI,EAAGC,sBAAY;IACnBC,MAAM,EAAG;MACRC,KAAK,EAAE,IAAA/K,QAAE,EAAE,SAAU,CAAC;MACtBgL,YAAY,EAAE1K;IACf,CAAG;IACH2K,QAAQ,EAAG5E,YAAc;IACzB6E,MAAM,EAAC,SAAS;IAChBC,YAAY,EAAG/K,mBAAqB;IACpCgL,QAAQ;IACRC,OAAO,EAAGrD,aAAe;IAAA,GACpBgC;EAAqB,CAC1B,CACD;EAED,MAAMsB,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCvK,SAAS,EAAE,IAAAwK,mBAAU,EAAExK,SAAS,EAAE,mBAAoB;EACvD,CAAE,CAAC;EAEH,MAAMyK,qBAAqB,GAAGlL,iBAAQ,CAACC,QAAQ,IAAI;IAClDkL,gBAAgB,EAAE,CAAC;IACnBC,cAAc,EAAE;EACjB,CAAC;EAED,MAAMC,gBAAgB,GAAG,IAAAC,gCAAmB,EAAEP,UAAU,EAAE;IACzDjL,aAAa;IACbyL,WAAW,EAAE,YAAY;IACzBC,cAAc,EAAE,KAAK;IACrB,GAAGN;EACJ,CAAE,CAAC;EAEH,IAAK,CAAE5B,SAAS,EAAG;IAClB,OACC,IAAAW,MAAA,CAAAC,aAAA,EAAC5L,WAAA,CAAAmN,IAAI;MAAA,GAAMJ;IAAgB,GACxBA,gBAAgB,CAACK,QAAQ,EACzB1B,gBACG,CAAC;EAET;EAEA,MAAM2B,SAAS,GAAGxK,MAAM,IAAIA,MAAM,KAAK,MAAM;EAE7C,OACC,IAAA8I,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA2B,QAAA,QACC,IAAA3B,MAAA,CAAAC,aAAA,EAACjM,YAAA,CAAA4N,iBAAiB,QACjB,IAAA5B,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAA8N,SAAS;IAACtB,KAAK,EAAG,IAAA/K,QAAE,EAAE,UAAW;EAAG,GAClC0D,MAAM,CAACH,MAAM,GAAG,CAAC,IAClB,IAAAiH,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAA+N,YAAY;IACZC,uBAAuB;IACvBxM,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBH,KAAK,EACJyB,OAAO,GACJA,OAAO,GACP,IAAAkL,4BAAoB,EAAE9I,MAAM,CAACH,MAAO,CACvC;IACDkJ,QAAQ,EAAGhE,gBAAkB;IAC7BiE,GAAG,EAAG,CAAG;IACTC,GAAG,EAAGC,IAAI,CAACF,GAAG,CAAE/M,WAAW,EAAE+D,MAAM,CAACH,MAAO,CAAG;IAAA,GACzC9C,kCAAkC;IACvCoM,QAAQ;IACRC,qBAAqB;EAAA,CACrB,CACD,EACD,IAAAtC,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAAwO,aAAa;IACbR,uBAAuB;IACvBxM,KAAK,EAAG,IAAAC,QAAE,EAAE,aAAc,CAAG;IAC7B4I,OAAO,EAAG,CAAC,CAAErH,SAAW;IACxBkL,QAAQ,EAAG/D,eAAiB;IAC5BsE,IAAI,EAAGrE;EAAkB,CACzB,CAAC,EACF,IAAA6B,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAAwO,aAAa;IACbR,uBAAuB;IACvBxM,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;IAC9B4I,OAAO,EAAG,CAAC,CAAEpH,WAAa;IAC1BiL,QAAQ,EAAG5D;EAAmB,CAC9B,CAAC,EACF,IAAA2B,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAA0O,aAAa;IACbV,uBAAuB;IACvBxM,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBH,KAAK,EAAG6B,MAAQ;IAChB+K,QAAQ,EAAGvE,SAAW;IACtBgF,OAAO,EAAGtN,WAAa;IACvBuN,gBAAgB,EAAG,IAAM;IACzB9D,IAAI,EAAC;EAAkB,CACvB,CAAC,EACA6C,SAAS,IACV,IAAA1B,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAAwO,aAAa;IACbR,uBAAuB;IACvBxM,KAAK,EAAG,IAAAC,QAAE,EAAE,iBAAkB,CAAG;IACjC4I,OAAO,EAAGnH,UAAU,KAAK,QAAU;IACnCgL,QAAQ,EAAG3D;EAAoB,CAC/B,CACD,EACCjE,gBAAgB,EAAEtB,MAAM,GAAG,CAAC,IAC7B,IAAAiH,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAA0O,aAAa;IACbV,uBAAuB;IACvBxM,KAAK,EAAG,IAAAC,QAAE,EAAE,YAAa,CAAG;IAC5BgN,IAAI,EAAG,IAAAhN,QAAE,EACR,uCACD,CAAG;IACHH,KAAK,EAAG8B,QAAU;IAClBuL,OAAO,EAAGrI,gBAAkB;IAC5B4H,QAAQ,EAAGxD,gBAAkB;IAC7BkE,gBAAgB,EAAG,IAAM;IACzB9D,IAAI,EAAC;EAAkB,CACvB,CACD,EACC9I,iBAAQ,CAAC6M,KAAK,IAAI,CAAEvI,gBAAgB,IAAIiF,WAAW,IACpD,IAAAU,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAA8O,WAAW;IAACrM,SAAS,EAAG;EAAuB,GAC/C,IAAAwJ,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAA8O,WAAW,CAACC,WAAW,QACrB,IAAAtN,QAAE,EAAE,YAAa,CACK,CAAC,EAC1B,IAAAwK,MAAA,CAAAC,aAAA,EAAC5L,WAAA,CAAAmN,IAAI;IAAChL,SAAS,EAAG;EAAgC,GACjD,IAAAwJ,MAAA,CAAAC,aAAA,EAAClM,WAAA,CAAAgP,OAAO,MAAE,CAAC,EACT,IAAAvN,QAAE,EAAE,kBAAmB,CACpB,CACM,CAEJ,CACO,CAAC,EAClBO,iBAAQ,CAAC6M,KAAK,IACf,IAAA5C,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA2B,QAAA,QACG,CAAEzJ,qBAAqB,IACxB,IAAA8H,MAAA,CAAAC,aAAA,EAACjM,YAAA,CAAAgP,aAAa;IAACC,KAAK,EAAC;EAAO,GAC3B,IAAAjD,MAAA,CAAAC,aAAA,EAACjM,YAAA,CAAAkP,gBAAgB;IAChBvC,YAAY,EAAG/K,mBAAqB;IACpC8K,MAAM,EAAC,SAAS;IAChBP,YAAY,EAAG,KAAO;IACtBM,QAAQ,EAAG5E,YAAc;IACzBsH,IAAI,EAAG,IAAA3N,QAAE,EAAE,KAAM,CAAG;IACpBoL,QAAQ,EAAG,IAAM;IACjBwC,QAAQ,EAAGlK,MAAM,CACfuD,MAAM,CAAIjC,KAAK,IAAMA,KAAK,CAAClB,EAAG,CAAC,CAC/BF,GAAG,CAAIoB,KAAK,IAAMA,KAAK,CAAClB,EAAG,CAAG;IAChCoG,YAAY,EAAGJ;EAAa,CAC5B,CACa,CACf,EACD,IAAAU,MAAA,CAAAC,aAAA,EAAC/K,UAAA,CAAAmO,OAAS;IACTC,QAAQ,EAAG/M,UAAU,CAACgN,KAAK,EAAEC,OAAO,EAAEF,QAAU;IAChD7M,QAAQ,EAAGA;EAAU,CACrB,CACA,CACF,EACD,IAAAuJ,MAAA,CAAAC,aAAA,EAACpL,QAAA,CAAAwO,OAAO;IAAA,GACFhN,KAAK;IACVO,eAAe,EAAGA,eAAiB;IACnCsC,MAAM,EAAGA,MAAQ;IACjB6G,gBAAgB,EACf,CAAEV,SAAS,IAAItJ,iBAAQ,CAACC,QAAQ,GAC7B+J,gBAAgB,GAChB3F,SACH;IACD0G,UAAU,EAAGM,gBAAkB;IAC/BzK,iBAAiB,EAAGA,iBAAmB;IACvCuB,qBAAqB,EAAGA;EAAuB,CAC/C,CACA,CAAC;AAEL;AAAC,IAAAuL,QAAA,GACc,IAAAC,gBAAO,EAAE,CAAE,IAAAC,2BAAiB,EAAE;EAAEC,QAAQ,EAAE;AAAU,CAAE,CAAC,CAAG,CAAC,CACzExN,WACD,CAAC;AAAAyN,OAAA,CAAAR,OAAA,GAAAI,QAAA"}
@@ -4,14 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = exports.Gallery = void 0;
7
+ exports.default = Gallery;
8
8
  var _react = require("react");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _blockEditor = require("@wordpress/block-editor");
11
10
  var _i18n = require("@wordpress/i18n");
12
- var _blocks = require("@wordpress/blocks");
13
11
  var _primitives = require("@wordpress/primitives");
14
- var _element = require("@wordpress/element");
12
+ var _caption = require("../utils/caption");
15
13
  /**
16
14
  * External dependencies
17
15
  */
@@ -20,7 +18,11 @@ var _element = require("@wordpress/element");
20
18
  * WordPress dependencies
21
19
  */
22
20
 
23
- const Gallery = (props, captionRef) => {
21
+ /**
22
+ * Internal dependencies
23
+ */
24
+
25
+ function Gallery(props) {
24
26
  const {
25
27
  attributes,
26
28
  isSelected,
@@ -29,12 +31,12 @@ const Gallery = (props, captionRef) => {
29
31
  insertBlocksAfter,
30
32
  blockProps,
31
33
  __unstableLayoutClassNames: layoutClassNames,
32
- showCaption
34
+ isContentLocked,
35
+ multiGallerySelection
33
36
  } = props;
34
37
  const {
35
38
  align,
36
39
  columns,
37
- caption,
38
40
  imageCrop
39
41
  } = attributes;
40
42
  return (0, _react.createElement)("figure", {
@@ -47,22 +49,15 @@ const Gallery = (props, captionRef) => {
47
49
  })
48
50
  }, blockProps.children, isSelected && !blockProps.children && (0, _react.createElement)(_primitives.View, {
49
51
  className: "blocks-gallery-media-placeholder-wrapper"
50
- }, mediaPlaceholder), showCaption && (!_blockEditor.RichText.isEmpty(caption) || isSelected) && (0, _react.createElement)(_blockEditor.RichText, {
51
- identifier: "caption",
52
- "aria-label": (0, _i18n.__)('Gallery caption text'),
53
- placeholder: (0, _i18n.__)('Write gallery caption…'),
54
- value: caption,
55
- className: (0, _classnames.default)('blocks-gallery-caption', (0, _blockEditor.__experimentalGetElementClassName)('caption')),
56
- ref: captionRef,
57
- tagName: "figcaption",
58
- onChange: value => setAttributes({
59
- caption: value
60
- }),
61
- inlineToolbar: true,
62
- __unstableOnSplitAtEnd: () => insertBlocksAfter((0, _blocks.createBlock)((0, _blocks.getDefaultBlockName)()))
52
+ }, mediaPlaceholder), (0, _react.createElement)(_caption.Caption, {
53
+ attributes: attributes,
54
+ setAttributes: setAttributes,
55
+ isSelected: isSelected,
56
+ insertBlocksAfter: insertBlocksAfter,
57
+ showToolbarButton: !multiGallerySelection && !isContentLocked,
58
+ className: "blocks-gallery-caption",
59
+ label: (0, _i18n.__)('Gallery caption text'),
60
+ placeholder: (0, _i18n.__)('Add gallery caption')
63
61
  }));
64
- };
65
- exports.Gallery = Gallery;
66
- var _default = (0, _element.forwardRef)(Gallery);
67
- exports.default = _default;
62
+ }
68
63
  //# sourceMappingURL=gallery.js.map