@wordpress/block-library 8.4.0 → 8.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/archives/edit.js +3 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/audio/edit.js +2 -0
  5. package/build/audio/edit.js.map +1 -1
  6. package/build/avatar/edit.js +5 -9
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/categories/edit.js +5 -0
  9. package/build/categories/edit.js.map +1 -1
  10. package/build/columns/edit.js +1 -0
  11. package/build/columns/edit.js.map +1 -1
  12. package/build/columns/utils.js +2 -2
  13. package/build/columns/utils.js.map +1 -1
  14. package/build/comment-author-name/edit.js +2 -0
  15. package/build/comment-author-name/edit.js.map +1 -1
  16. package/build/comment-date/edit.js +1 -0
  17. package/build/comment-date/edit.js.map +1 -1
  18. package/build/comment-edit-link/edit.js +1 -0
  19. package/build/comment-edit-link/edit.js.map +1 -1
  20. package/build/comments-title/edit.js +2 -0
  21. package/build/comments-title/edit.js.map +1 -1
  22. package/build/cover/edit/inspector-controls.js +2 -0
  23. package/build/cover/edit/inspector-controls.js.map +1 -1
  24. package/build/embed/embed-controls.js +1 -0
  25. package/build/embed/embed-controls.js.map +1 -1
  26. package/build/file/inspector.js +3 -0
  27. package/build/file/inspector.js.map +1 -1
  28. package/build/freeform/modal.js +1 -1
  29. package/build/freeform/modal.js.map +1 -1
  30. package/build/gallery/edit.js +2 -0
  31. package/build/gallery/edit.js.map +1 -1
  32. package/build/gallery/shared.js +4 -8
  33. package/build/gallery/shared.js.map +1 -1
  34. package/build/gallery/use-image-sizes.js +4 -8
  35. package/build/gallery/use-image-sizes.js.map +1 -1
  36. package/build/gallery/v1/edit.js +8 -3
  37. package/build/gallery/v1/edit.js.map +1 -1
  38. package/build/gallery/v1/gallery-image.js +1 -3
  39. package/build/gallery/v1/gallery-image.js.map +1 -1
  40. package/build/gallery/v1/shared.js +4 -7
  41. package/build/gallery/v1/shared.js.map +1 -1
  42. package/build/image/edit.js +6 -4
  43. package/build/image/edit.js.map +1 -1
  44. package/build/image/image.js +6 -2
  45. package/build/image/image.js.map +1 -1
  46. package/build/image/utils.js +3 -1
  47. package/build/image/utils.js.map +1 -1
  48. package/build/index.js +3 -1
  49. package/build/index.js.map +1 -1
  50. package/build/latest-comments/edit.js +3 -0
  51. package/build/latest-comments/edit.js.map +1 -1
  52. package/build/latest-posts/edit.js +4 -0
  53. package/build/latest-posts/edit.js.map +1 -1
  54. package/build/list/ordered-list-settings.js +1 -0
  55. package/build/list/ordered-list-settings.js.map +1 -1
  56. package/build/list-item/edit.js +2 -2
  57. package/build/list-item/edit.js.map +1 -1
  58. package/build/list-item/hooks/use-outdent-list-item.js +2 -1
  59. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  60. package/build/loginout/edit.js +2 -0
  61. package/build/loginout/edit.js.map +1 -1
  62. package/build/media-text/edit.js +2 -0
  63. package/build/media-text/edit.js.map +1 -1
  64. package/build/more/edit.js +1 -0
  65. package/build/more/edit.js.map +1 -1
  66. package/build/navigation/edit/index.js +80 -54
  67. package/build/navigation/edit/index.js.map +1 -1
  68. package/build/navigation/edit/navigation-menu-selector.js +1 -1
  69. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build/navigation/edit/overlay-menu-preview.js +1 -0
  71. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  72. package/build/navigation/edit/placeholder/index.js +1 -1
  73. package/build/navigation/edit/placeholder/index.js.map +1 -1
  74. package/build/navigation/edit/unsaved-inner-blocks.js +1 -1
  75. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  76. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  77. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  78. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  79. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  80. package/build/navigation/edit/use-generate-default-navigation-title.js +1 -1
  81. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  82. package/build/navigation/edit/use-navigation-notice.js +4 -7
  83. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  84. package/build/navigation-link/link-ui.js +1 -0
  85. package/build/navigation-link/link-ui.js.map +1 -1
  86. package/build/page-list/convert-to-links-modal.js +47 -0
  87. package/build/page-list/convert-to-links-modal.js.map +1 -0
  88. package/build/page-list/edit.js +10 -24
  89. package/build/page-list/edit.js.map +1 -1
  90. package/build/paragraph/edit.js +1 -0
  91. package/build/paragraph/edit.js.map +1 -1
  92. package/build/post-author/edit.js +4 -0
  93. package/build/post-author/edit.js.map +1 -1
  94. package/build/post-author-name/edit.js +2 -0
  95. package/build/post-author-name/edit.js.map +1 -1
  96. package/build/post-date/edit.js +2 -0
  97. package/build/post-date/edit.js.map +1 -1
  98. package/build/post-excerpt/edit.js +1 -0
  99. package/build/post-excerpt/edit.js.map +1 -1
  100. package/build/post-featured-image/edit.js +2 -0
  101. package/build/post-featured-image/edit.js.map +1 -1
  102. package/build/post-navigation-link/edit.js +2 -0
  103. package/build/post-navigation-link/edit.js.map +1 -1
  104. package/build/post-terms/use-post-terms.js +1 -1
  105. package/build/post-terms/use-post-terms.js.map +1 -1
  106. package/build/post-time-to-read/edit.js +104 -0
  107. package/build/post-time-to-read/edit.js.map +1 -0
  108. package/build/post-time-to-read/icon.js +25 -0
  109. package/build/post-time-to-read/icon.js.map +1 -0
  110. package/build/post-time-to-read/index.js +57 -0
  111. package/build/post-time-to-read/index.js.map +1 -0
  112. package/build/post-title/edit.js +2 -0
  113. package/build/post-title/edit.js.map +1 -1
  114. package/build/query/edit/inspector-controls/index.js +1 -0
  115. package/build/query/edit/inspector-controls/index.js.map +1 -1
  116. package/build/query-title/edit.js +2 -0
  117. package/build/query-title/edit.js.map +1 -1
  118. package/build/read-more/edit.js +1 -0
  119. package/build/read-more/edit.js.map +1 -1
  120. package/build/rss/edit.js +3 -0
  121. package/build/rss/edit.js.map +1 -1
  122. package/build/site-logo/edit.js +3 -0
  123. package/build/site-logo/edit.js.map +1 -1
  124. package/build/site-tagline/index.js +1 -0
  125. package/build/site-tagline/index.js.map +1 -1
  126. package/build/site-title/edit/index.js +2 -0
  127. package/build/site-title/edit/index.js.map +1 -1
  128. package/build/social-links/edit.js +4 -1
  129. package/build/social-links/edit.js.map +1 -1
  130. package/build/spacer/controls.native.js +10 -8
  131. package/build/spacer/controls.native.js.map +1 -1
  132. package/build/spacer/edit.native.js +43 -5
  133. package/build/spacer/edit.native.js.map +1 -1
  134. package/build/spacer/save.native.js +30 -0
  135. package/build/spacer/save.native.js.map +1 -0
  136. package/build/table/edit.js +3 -0
  137. package/build/table/edit.js.map +1 -1
  138. package/build/table-of-contents/edit.js +1 -0
  139. package/build/table-of-contents/edit.js.map +1 -1
  140. package/build/tag-cloud/edit.js +1 -0
  141. package/build/tag-cloud/edit.js.map +1 -1
  142. package/build/template-part/edit/import-controls.js +29 -6
  143. package/build/template-part/edit/import-controls.js.map +1 -1
  144. package/build/video/edit-common-settings.js +5 -0
  145. package/build/video/edit-common-settings.js.map +1 -1
  146. package/build-module/archives/edit.js +3 -0
  147. package/build-module/archives/edit.js.map +1 -1
  148. package/build-module/audio/edit.js +2 -0
  149. package/build-module/audio/edit.js.map +1 -1
  150. package/build-module/avatar/edit.js +5 -8
  151. package/build-module/avatar/edit.js.map +1 -1
  152. package/build-module/categories/edit.js +5 -0
  153. package/build-module/categories/edit.js.map +1 -1
  154. package/build-module/columns/edit.js +1 -0
  155. package/build-module/columns/edit.js.map +1 -1
  156. package/build-module/columns/utils.js +3 -3
  157. package/build-module/columns/utils.js.map +1 -1
  158. package/build-module/comment-author-name/edit.js +2 -0
  159. package/build-module/comment-author-name/edit.js.map +1 -1
  160. package/build-module/comment-date/edit.js +1 -0
  161. package/build-module/comment-date/edit.js.map +1 -1
  162. package/build-module/comment-edit-link/edit.js +1 -0
  163. package/build-module/comment-edit-link/edit.js.map +1 -1
  164. package/build-module/comments-title/edit.js +2 -0
  165. package/build-module/comments-title/edit.js.map +1 -1
  166. package/build-module/cover/edit/inspector-controls.js +2 -0
  167. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  168. package/build-module/embed/embed-controls.js +1 -0
  169. package/build-module/embed/embed-controls.js.map +1 -1
  170. package/build-module/file/inspector.js +3 -0
  171. package/build-module/file/inspector.js.map +1 -1
  172. package/build-module/freeform/modal.js +1 -1
  173. package/build-module/freeform/modal.js.map +1 -1
  174. package/build-module/gallery/edit.js +2 -0
  175. package/build-module/gallery/edit.js.map +1 -1
  176. package/build-module/gallery/shared.js +4 -7
  177. package/build-module/gallery/shared.js.map +1 -1
  178. package/build-module/gallery/use-image-sizes.js +4 -7
  179. package/build-module/gallery/use-image-sizes.js.map +1 -1
  180. package/build-module/gallery/v1/edit.js +9 -4
  181. package/build-module/gallery/v1/edit.js.map +1 -1
  182. package/build-module/gallery/v1/gallery-image.js +1 -2
  183. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  184. package/build-module/gallery/v1/shared.js +4 -6
  185. package/build-module/gallery/v1/shared.js.map +1 -1
  186. package/build-module/image/edit.js +7 -5
  187. package/build-module/image/edit.js.map +1 -1
  188. package/build-module/image/image.js +7 -3
  189. package/build-module/image/image.js.map +1 -1
  190. package/build-module/image/utils.js +4 -2
  191. package/build-module/image/utils.js.map +1 -1
  192. package/build-module/index.js +2 -1
  193. package/build-module/index.js.map +1 -1
  194. package/build-module/latest-comments/edit.js +3 -0
  195. package/build-module/latest-comments/edit.js.map +1 -1
  196. package/build-module/latest-posts/edit.js +4 -0
  197. package/build-module/latest-posts/edit.js.map +1 -1
  198. package/build-module/list/ordered-list-settings.js +1 -0
  199. package/build-module/list/ordered-list-settings.js.map +1 -1
  200. package/build-module/list-item/edit.js +2 -2
  201. package/build-module/list-item/edit.js.map +1 -1
  202. package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
  203. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  204. package/build-module/loginout/edit.js +2 -0
  205. package/build-module/loginout/edit.js.map +1 -1
  206. package/build-module/media-text/edit.js +2 -0
  207. package/build-module/media-text/edit.js.map +1 -1
  208. package/build-module/more/edit.js +1 -0
  209. package/build-module/more/edit.js.map +1 -1
  210. package/build-module/navigation/edit/index.js +82 -56
  211. package/build-module/navigation/edit/index.js.map +1 -1
  212. package/build-module/navigation/edit/navigation-menu-selector.js +1 -1
  213. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  214. package/build-module/navigation/edit/overlay-menu-preview.js +1 -0
  215. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  216. package/build-module/navigation/edit/placeholder/index.js +1 -1
  217. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  218. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -1
  219. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  220. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  221. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  222. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  223. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  224. package/build-module/navigation/edit/use-generate-default-navigation-title.js +1 -1
  225. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  226. package/build-module/navigation/edit/use-navigation-notice.js +5 -8
  227. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  228. package/build-module/navigation-link/link-ui.js +1 -0
  229. package/build-module/navigation-link/link-ui.js.map +1 -1
  230. package/build-module/page-list/convert-to-links-modal.js +35 -0
  231. package/build-module/page-list/convert-to-links-modal.js.map +1 -0
  232. package/build-module/page-list/edit.js +10 -25
  233. package/build-module/page-list/edit.js.map +1 -1
  234. package/build-module/paragraph/edit.js +1 -0
  235. package/build-module/paragraph/edit.js.map +1 -1
  236. package/build-module/post-author/edit.js +4 -0
  237. package/build-module/post-author/edit.js.map +1 -1
  238. package/build-module/post-author-name/edit.js +2 -0
  239. package/build-module/post-author-name/edit.js.map +1 -1
  240. package/build-module/post-date/edit.js +2 -0
  241. package/build-module/post-date/edit.js.map +1 -1
  242. package/build-module/post-excerpt/edit.js +1 -0
  243. package/build-module/post-excerpt/edit.js.map +1 -1
  244. package/build-module/post-featured-image/edit.js +2 -0
  245. package/build-module/post-featured-image/edit.js.map +1 -1
  246. package/build-module/post-navigation-link/edit.js +2 -0
  247. package/build-module/post-navigation-link/edit.js.map +1 -1
  248. package/build-module/post-terms/use-post-terms.js +1 -1
  249. package/build-module/post-terms/use-post-terms.js.map +1 -1
  250. package/build-module/post-time-to-read/edit.js +90 -0
  251. package/build-module/post-time-to-read/edit.js.map +1 -0
  252. package/build-module/post-time-to-read/icon.js +15 -0
  253. package/build-module/post-time-to-read/icon.js.map +1 -0
  254. package/build-module/post-time-to-read/index.js +40 -0
  255. package/build-module/post-time-to-read/index.js.map +1 -0
  256. package/build-module/post-title/edit.js +2 -0
  257. package/build-module/post-title/edit.js.map +1 -1
  258. package/build-module/query/edit/inspector-controls/index.js +1 -0
  259. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  260. package/build-module/query-title/edit.js +2 -0
  261. package/build-module/query-title/edit.js.map +1 -1
  262. package/build-module/read-more/edit.js +1 -0
  263. package/build-module/read-more/edit.js.map +1 -1
  264. package/build-module/rss/edit.js +3 -0
  265. package/build-module/rss/edit.js.map +1 -1
  266. package/build-module/site-logo/edit.js +3 -0
  267. package/build-module/site-logo/edit.js.map +1 -1
  268. package/build-module/site-tagline/index.js +1 -0
  269. package/build-module/site-tagline/index.js.map +1 -1
  270. package/build-module/site-title/edit/index.js +2 -0
  271. package/build-module/site-title/edit/index.js.map +1 -1
  272. package/build-module/social-links/edit.js +4 -1
  273. package/build-module/social-links/edit.js.map +1 -1
  274. package/build-module/spacer/controls.native.js +9 -8
  275. package/build-module/spacer/controls.native.js.map +1 -1
  276. package/build-module/spacer/edit.native.js +39 -7
  277. package/build-module/spacer/edit.native.js.map +1 -1
  278. package/build-module/spacer/save.native.js +22 -0
  279. package/build-module/spacer/save.native.js.map +1 -0
  280. package/build-module/table/edit.js +3 -0
  281. package/build-module/table/edit.js.map +1 -1
  282. package/build-module/table-of-contents/edit.js +1 -0
  283. package/build-module/table-of-contents/edit.js.map +1 -1
  284. package/build-module/tag-cloud/edit.js +1 -0
  285. package/build-module/tag-cloud/edit.js.map +1 -1
  286. package/build-module/template-part/edit/import-controls.js +28 -6
  287. package/build-module/template-part/edit/import-controls.js.map +1 -1
  288. package/build-module/video/edit-common-settings.js +5 -0
  289. package/build-module/video/edit-common-settings.js.map +1 -1
  290. package/build-style/editor-rtl.css +4 -3
  291. package/build-style/editor.css +4 -3
  292. package/build-style/post-excerpt/editor-rtl.css +1 -1
  293. package/build-style/post-excerpt/editor.css +1 -1
  294. package/build-style/query/editor-rtl.css +1 -0
  295. package/build-style/query/editor.css +1 -0
  296. package/build-style/site-logo/editor-rtl.css +2 -2
  297. package/build-style/site-logo/editor.css +2 -2
  298. package/package.json +31 -30
  299. package/src/archives/edit.js +3 -0
  300. package/src/audio/edit.js +2 -0
  301. package/src/audio/test/__snapshots__/edit.native.js.snap +38 -38
  302. package/src/avatar/edit.js +2 -4
  303. package/src/buttons/test/__snapshots__/edit.native.js.snap +11 -11
  304. package/src/categories/edit.js +5 -0
  305. package/src/code/test/__snapshots__/edit.native.js.snap +2 -2
  306. package/src/columns/edit.js +1 -0
  307. package/src/columns/test/__snapshots__/edit.native.js.snap +66 -66
  308. package/src/columns/test/utils.js +54 -0
  309. package/src/columns/utils.js +8 -8
  310. package/src/comment-author-name/edit.js +2 -0
  311. package/src/comment-date/edit.js +1 -0
  312. package/src/comment-edit-link/edit.js +1 -0
  313. package/src/comments-title/edit.js +2 -0
  314. package/src/cover/edit/inspector-controls.js +2 -0
  315. package/src/cover/index.php +4 -6
  316. package/src/cover/test/__snapshots__/edit.native.js.snap +36 -36
  317. package/src/embed/embed-controls.js +1 -0
  318. package/src/embed/test/__snapshots__/index.native.js.snap +52 -52
  319. package/src/file/inspector.js +3 -0
  320. package/src/file/test/__snapshots__/edit.native.js.snap +49 -49
  321. package/src/freeform/modal.js +1 -1
  322. package/src/gallery/edit.js +2 -0
  323. package/src/gallery/shared.js +6 -11
  324. package/src/gallery/test/__snapshots__/index.native.js.snap +71 -71
  325. package/src/gallery/use-image-sizes.js +3 -16
  326. package/src/gallery/v1/edit.js +8 -16
  327. package/src/gallery/v1/gallery-image.js +1 -2
  328. package/src/gallery/v1/shared.js +5 -10
  329. package/src/group/test/__snapshots__/edit.native.js.snap +5 -5
  330. package/src/heading/test/__snapshots__/index.native.js.snap +1 -1
  331. package/src/image/edit.js +4 -4
  332. package/src/image/image.js +4 -9
  333. package/src/image/index.php +4 -4
  334. package/src/image/utils.js +2 -2
  335. package/src/index.js +2 -0
  336. package/src/latest-comments/edit.js +3 -0
  337. package/src/latest-posts/edit.js +4 -0
  338. package/src/list/ordered-list-settings.js +1 -0
  339. package/src/list/test/__snapshots__/edit.native.js.snap +4 -4
  340. package/src/list-item/edit.js +10 -3
  341. package/src/list-item/hooks/use-outdent-list-item.js +2 -1
  342. package/src/loginout/edit.js +2 -0
  343. package/src/media-text/edit.js +2 -0
  344. package/src/missing/test/__snapshots__/edit.native.js.snap +1 -1
  345. package/src/more/edit.js +1 -0
  346. package/src/navigation/edit/index.js +130 -82
  347. package/src/navigation/edit/navigation-menu-selector.js +1 -1
  348. package/src/navigation/edit/overlay-menu-preview.js +1 -0
  349. package/src/navigation/edit/placeholder/index.js +1 -1
  350. package/src/navigation/edit/unsaved-inner-blocks.js +1 -0
  351. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +51 -48
  352. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  353. package/src/navigation/edit/use-generate-default-navigation-title.js +1 -1
  354. package/src/navigation/edit/use-navigation-notice.js +16 -13
  355. package/src/navigation/index.php +42 -19
  356. package/src/navigation-link/link-ui.js +1 -0
  357. package/src/navigation-link/test/__snapshots__/hooks.js.snap +12 -12
  358. package/src/page-list/convert-to-links-modal.js +38 -0
  359. package/src/page-list/edit.js +11 -32
  360. package/src/paragraph/edit.js +1 -0
  361. package/src/post-author/edit.js +4 -0
  362. package/src/post-author-name/edit.js +2 -0
  363. package/src/post-date/edit.js +2 -0
  364. package/src/post-excerpt/edit.js +1 -0
  365. package/src/post-excerpt/editor.scss +1 -1
  366. package/src/post-featured-image/edit.js +2 -0
  367. package/src/post-navigation-link/edit.js +2 -0
  368. package/src/post-terms/index.php +1 -0
  369. package/src/post-terms/use-post-terms.js +1 -1
  370. package/src/post-time-to-read/block.json +20 -0
  371. package/src/post-time-to-read/edit.js +101 -0
  372. package/src/post-time-to-read/icon.js +15 -0
  373. package/src/post-time-to-read/index.js +17 -0
  374. package/src/post-time-to-read/index.php +62 -0
  375. package/src/post-title/edit.js +2 -0
  376. package/src/preformatted/test/__snapshots__/edit.native.js.snap +10 -10
  377. package/src/query/edit/inspector-controls/index.js +1 -0
  378. package/src/query/editor.scss +1 -0
  379. package/src/query-title/edit.js +2 -0
  380. package/src/read-more/edit.js +1 -0
  381. package/src/rss/edit.js +3 -0
  382. package/src/search/test/__snapshots__/edit.native.js.snap +60 -60
  383. package/src/separator/test/__snapshots__/edit.native.js.snap +1 -1
  384. package/src/site-logo/edit.js +3 -0
  385. package/src/site-logo/editor.scss +3 -3
  386. package/src/site-logo/index.php +7 -2
  387. package/src/site-tagline/block.json +1 -0
  388. package/src/site-title/edit/index.js +2 -0
  389. package/src/social-link/index.php +6 -6
  390. package/src/social-links/edit.js +3 -0
  391. package/src/social-links/test/__snapshots__/edit.native.js.snap +16 -16
  392. package/src/spacer/controls.native.js +13 -5
  393. package/src/spacer/edit.native.js +45 -6
  394. package/src/spacer/save.native.js +18 -0
  395. package/src/spacer/test/__snapshots__/index.native.js.snap +21 -9
  396. package/src/spacer/test/index.native.js +81 -0
  397. package/src/table/edit.js +3 -0
  398. package/src/table-of-contents/edit.js +1 -0
  399. package/src/tag-cloud/edit.js +1 -0
  400. package/src/template-part/edit/import-controls.js +24 -5
  401. package/src/template-part/index.php +7 -6
  402. package/src/verse/test/__snapshots__/edit.native.js.snap +2 -2
  403. package/src/video/edit-common-settings.js +5 -0
  404. package/tsconfig.json +2 -1
  405. package/tsconfig.tsbuildinfo +1 -1
@@ -1,15 +1,13 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { get } from 'lodash';
5
1
  export const pickRelevantMediaFiles = function (image) {
2
+ var _image$sizes, _image$sizes$sizeSlug, _image$media_details, _image$media_details$, _image$media_details$2, _image$sizes2, _image$sizes2$full, _image$media_details2, _image$media_details3, _image$media_details4;
3
+
6
4
  let sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large';
7
5
  const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(_ref => {
8
6
  let [key] = _ref;
9
7
  return ['alt', 'id', 'link', 'caption'].includes(key);
10
8
  }));
11
- imageProps.url = get(image, ['sizes', sizeSlug, 'url']) || get(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url;
12
- const fullUrl = get(image, ['sizes', 'full', 'url']) || get(image, ['media_details', 'sizes', 'full', 'source_url']);
9
+ imageProps.url = (image === null || image === void 0 ? void 0 : (_image$sizes = image.sizes) === null || _image$sizes === void 0 ? void 0 : (_image$sizes$sizeSlug = _image$sizes[sizeSlug]) === null || _image$sizes$sizeSlug === void 0 ? void 0 : _image$sizes$sizeSlug.url) || (image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$ = _image$media_details.sizes) === null || _image$media_details$ === void 0 ? void 0 : (_image$media_details$2 = _image$media_details$[sizeSlug]) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2.source_url) || (image === null || image === void 0 ? void 0 : image.url);
10
+ const fullUrl = (image === null || image === void 0 ? void 0 : (_image$sizes2 = image.sizes) === null || _image$sizes2 === void 0 ? void 0 : (_image$sizes2$full = _image$sizes2.full) === null || _image$sizes2$full === void 0 ? void 0 : _image$sizes2$full.url) || (image === null || image === void 0 ? void 0 : (_image$media_details2 = image.media_details) === null || _image$media_details2 === void 0 ? void 0 : (_image$media_details3 = _image$media_details2.sizes) === null || _image$media_details3 === void 0 ? void 0 : (_image$media_details4 = _image$media_details3.full) === null || _image$media_details4 === void 0 ? void 0 : _image$media_details4.source_url);
13
11
 
14
12
  if (fullUrl) {
15
13
  imageProps.fullUrl = fullUrl;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/shared.js"],"names":["get","pickRelevantMediaFiles","image","sizeSlug","imageProps","Object","fromEntries","entries","filter","key","includes","url","fullUrl"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAT,QAAoB,QAApB;AAEA,OAAO,MAAMC,sBAAsB,GAAG,UAAEC,KAAF,EAAiC;AAAA,MAAxBC,QAAwB,uEAAb,OAAa;AACtE,QAAMC,UAAU,GAAGC,MAAM,CAACC,WAAP,CAClBD,MAAM,CAACE,OAAP,CAAgBL,KAAhB,aAAgBA,KAAhB,cAAgBA,KAAhB,GAAyB,EAAzB,EAA8BM,MAA9B,CAAsC;AAAA,QAAE,CAAEC,GAAF,CAAF;AAAA,WACrC,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,EAAuB,SAAvB,EAAmCC,QAAnC,CAA6CD,GAA7C,CADqC;AAAA,GAAtC,CADkB,CAAnB;AAMAL,EAAAA,UAAU,CAACO,GAAX,GACCX,GAAG,CAAEE,KAAF,EAAS,CAAE,OAAF,EAAWC,QAAX,EAAqB,KAArB,CAAT,CAAH,IACAH,GAAG,CAAEE,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4BC,QAA5B,EAAsC,YAAtC,CAAT,CADH,IAEAD,KAAK,CAACS,GAHP;AAIA,QAAMC,OAAO,GACZZ,GAAG,CAAEE,KAAF,EAAS,CAAE,OAAF,EAAW,MAAX,EAAmB,KAAnB,CAAT,CAAH,IACAF,GAAG,CAAEE,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4B,MAA5B,EAAoC,YAApC,CAAT,CAFJ;;AAGA,MAAKU,OAAL,EAAe;AACdR,IAAAA,UAAU,CAACQ,OAAX,GAAqBA,OAArB;AACA;;AACD,SAAOR,UAAP;AACA,CAlBM","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\tget( image, [ 'sizes', sizeSlug, 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', sizeSlug, 'source_url' ] ) ||\n\t\timage.url;\n\tconst fullUrl =\n\t\tget( image, [ 'sizes', 'full', 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', 'full', 'source_url' ] );\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/v1/shared.js"],"names":["pickRelevantMediaFiles","image","sizeSlug","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","fullUrl","full"],"mappings":"AAAA,OAAO,MAAMA,sBAAsB,GAAG,UAAEC,KAAF,EAAiC;AAAA;;AAAA,MAAxBC,QAAwB,uEAAb,OAAa;AACtE,QAAMC,UAAU,GAAGC,MAAM,CAACC,WAAP,CAClBD,MAAM,CAACE,OAAP,CAAgBL,KAAhB,aAAgBA,KAAhB,cAAgBA,KAAhB,GAAyB,EAAzB,EAA8BM,MAA9B,CAAsC;AAAA,QAAE,CAAEC,GAAF,CAAF;AAAA,WACrC,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,EAAuB,SAAvB,EAAmCC,QAAnC,CAA6CD,GAA7C,CADqC;AAAA,GAAtC,CADkB,CAAnB;AAMAL,EAAAA,UAAU,CAACO,GAAX,GACC,CAAAT,KAAK,SAAL,IAAAA,KAAK,WAAL,4BAAAA,KAAK,CAAEU,KAAP,uFAAgBT,QAAhB,iFAA4BQ,GAA5B,MACAT,KADA,aACAA,KADA,+CACAA,KAAK,CAAEW,aADP,kFACA,qBAAsBD,KADtB,oFACA,sBAA+BT,QAA/B,CADA,2DACA,uBAA2CW,UAD3C,MAEAZ,KAFA,aAEAA,KAFA,uBAEAA,KAAK,CAAES,GAFP,CADD;AAIA,QAAMI,OAAO,GACZ,CAAAb,KAAK,SAAL,IAAAA,KAAK,WAAL,6BAAAA,KAAK,CAAEU,KAAP,sFAAcI,IAAd,0EAAoBL,GAApB,MACAT,KADA,aACAA,KADA,gDACAA,KAAK,CAAEW,aADP,mFACA,sBAAsBD,KADtB,mFACA,sBAA6BI,IAD7B,0DACA,sBAAmCF,UADnC,CADD;;AAGA,MAAKC,OAAL,EAAe;AACdX,IAAAA,UAAU,CAACW,OAAX,GAAqBA,OAArB;AACA;;AACD,SAAOX,UAAP;AACA,CAlBM","sourcesContent":["export const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ sizeSlug ]?.url ||\n\t\timage?.media_details?.sizes?.[ sizeSlug ]?.source_url ||\n\t\timage?.url;\n\tconst fullUrl =\n\t\timage?.sizes?.full?.url ||\n\t\timage?.media_details?.sizes?.full?.source_url;\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n"]}
@@ -4,7 +4,7 @@ import { createElement } from "@wordpress/element";
4
4
  * External dependencies
5
5
  */
6
6
  import classnames from 'classnames';
7
- import { get, isEmpty } from 'lodash';
7
+ import { isEmpty } from 'lodash';
8
8
  /**
9
9
  * WordPress dependencies
10
10
  */
@@ -39,11 +39,13 @@ const placeholder = content => {
39
39
 
40
40
  import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_CUSTOM, LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE, ALLOWED_MEDIA_TYPES } from './constants';
41
41
  export const pickRelevantMediaFiles = (image, size) => {
42
+ var _image$sizes, _image$sizes$size, _image$media_details, _image$media_details$, _image$media_details$2;
43
+
42
44
  const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(_ref => {
43
45
  let [key] = _ref;
44
46
  return ['alt', 'id', 'link', 'caption'].includes(key);
45
47
  }));
46
- imageProps.url = get(image, ['sizes', size, 'url']) || get(image, ['media_details', 'sizes', size, 'source_url']) || image.url;
48
+ imageProps.url = (image === null || image === void 0 ? void 0 : (_image$sizes = image.sizes) === null || _image$sizes === void 0 ? void 0 : (_image$sizes$size = _image$sizes[size]) === null || _image$sizes$size === void 0 ? void 0 : _image$sizes$size.url) || (image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$ = _image$media_details.sizes) === null || _image$media_details$ === void 0 ? void 0 : (_image$media_details$2 = _image$media_details$[size]) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2.source_url) || image.url;
47
49
  return imageProps;
48
50
  };
49
51
  /**
@@ -80,9 +82,9 @@ export const isExternalImage = (id, url) => url && !id && !isBlobURL(url);
80
82
  */
81
83
 
82
84
  function hasDefaultSize(image, defaultSize) {
83
- var _image$sizes$defaultS, _image$sizes, _image$media_details$, _image$media_details, _image$media_details$2;
85
+ var _image$sizes$defaultS, _image$sizes2, _image$media_details$3, _image$media_details2, _image$media_details3;
84
86
 
85
- return 'url' in ((_image$sizes$defaultS = image === null || image === void 0 ? void 0 : (_image$sizes = image.sizes) === null || _image$sizes === void 0 ? void 0 : _image$sizes[defaultSize]) !== null && _image$sizes$defaultS !== void 0 ? _image$sizes$defaultS : {}) || 'source_url' in ((_image$media_details$ = image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$2 = _image$media_details.sizes) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2[defaultSize]) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : {});
87
+ return 'url' in ((_image$sizes$defaultS = image === null || image === void 0 ? void 0 : (_image$sizes2 = image.sizes) === null || _image$sizes2 === void 0 ? void 0 : _image$sizes2[defaultSize]) !== null && _image$sizes$defaultS !== void 0 ? _image$sizes$defaultS : {}) || 'source_url' in ((_image$media_details$3 = image === null || image === void 0 ? void 0 : (_image$media_details2 = image.media_details) === null || _image$media_details2 === void 0 ? void 0 : (_image$media_details3 = _image$media_details2.sizes) === null || _image$media_details3 === void 0 ? void 0 : _image$media_details3[defaultSize]) !== null && _image$media_details$3 !== void 0 ? _image$media_details$3 : {});
86
88
  }
87
89
 
88
90
  export function ImageEdit(_ref2) {
@@ -171,7 +173,7 @@ export function ImageEdit(_ref2) {
171
173
  let mediaAttributes = pickRelevantMediaFiles(media, imageDefaultSize); // If a caption text was meanwhile written by the user,
172
174
  // make sure the text is not overwritten by empty captions.
173
175
 
174
- if (captionRef.current && !get(mediaAttributes, ['caption'])) {
176
+ if (captionRef.current && !mediaAttributes.caption) {
175
177
  const {
176
178
  caption: omittedCaption,
177
179
  ...restMediaAttributes
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/image/edit.js"],"names":["classnames","get","isEmpty","getBlobByURL","isBlobURL","revokeBlobURL","Placeholder","useDispatch","useSelect","BlockAlignmentControl","BlockControls","BlockIcon","MediaPlaceholder","useBlockProps","store","blockEditorStore","__experimentalUseBorderProps","useBorderProps","useEffect","useRef","useState","__","image","icon","noticesStore","Image","placeholder","content","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","isTemporaryImage","id","isExternalImage","hasDefaultSize","defaultSize","sizes","media_details","ImageEdit","attributes","setAttributes","isSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","align","width","height","sizeSlug","temporaryURL","setTemporaryURL","altRef","current","captionRef","ref","imageDefaultSize","mediaUpload","isContentLocked","select","getSettings","__unstableGetContentLockingParent","settings","createErrorNotice","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","onError","isExternal","mediaPreview","borderProps","classes","style","blockProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { get, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockAlignmentControl,\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Image from './image';\n\n// Much of this description is duplicated from MediaPlaceholder.\nconst placeholder = ( content ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\twithIllustration={ true }\n\t\t\ticon={ icon }\n\t\t\tlabel={ __( 'Image' ) }\n\t\t\tinstructions={ __(\n\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t) }\n\t\t>\n\t\t\t{ content }\n\t\t</Placeholder>\n\t);\n};\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\tget( image, [ 'sizes', size, 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', size, 'source_url' ] ) ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated default image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} defaultSize\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasDefaultSize( image, defaultSize ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ defaultSize ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ defaultSize ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst ref = useRef();\n\tconst { imageDefaultSize, mediaUpload, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetContentLockingParent } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\treturn {\n\t\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tisContentLocked:\n\t\t\t\t\t!! __unstableGetContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, imageDefaultSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! get( mediaAttributes, [ 'caption' ] ) ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\t// Fallback to size \"full\" if there's no default image size.\n\t\t\t\t// It means the image is smaller, and the block will use a full-size URL.\n\t\t\t\tsizeSlug: hasDefaultSize( media, imageDefaultSize )\n\t\t\t\t\t? imageDefaultSize\n\t\t\t\t\t: 'full',\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Image Size\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tlet isTemp = isTemporaryImage( id, url );\n\n\t// Upload a temporary image on mount.\n\tuseEffect( () => {\n\t\tif ( ! isTemp ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( url );\n\n\t\tif ( file ) {\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ img ] ) => {\n\t\t\t\t\tonSelectImage( img );\n\t\t\t\t},\n\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tisTemp = false;\n\t\t\t\t\tonUploadError( message );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\t// If an image is temporary, revoke the Blob url when it is uploaded (and is\n\t// no longer temporary).\n\tuseEffect( () => {\n\t\tif ( isTemp ) {\n\t\t\tsetTemporaryURL( url );\n\t\t\treturn;\n\t\t}\n\t\trevokeBlobURL( temporaryURL );\n\t}, [ isTemp, url ] );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName={ 'edit-image-preview' }\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className || ! isEmpty( borderProps.style ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t{ ( temporaryURL || url ) && (\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontainerRef={ ref }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && ! isContentLocked && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/image/edit.js"],"names":["classnames","isEmpty","getBlobByURL","isBlobURL","revokeBlobURL","Placeholder","useDispatch","useSelect","BlockAlignmentControl","BlockControls","BlockIcon","MediaPlaceholder","useBlockProps","store","blockEditorStore","__experimentalUseBorderProps","useBorderProps","useEffect","useRef","useState","__","image","icon","noticesStore","Image","placeholder","content","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isTemporaryImage","id","isExternalImage","hasDefaultSize","defaultSize","ImageEdit","attributes","setAttributes","isSelected","className","insertBlocksAfter","onReplace","context","clientId","alt","caption","align","width","height","sizeSlug","temporaryURL","setTemporaryURL","altRef","current","captionRef","ref","imageDefaultSize","mediaUpload","isContentLocked","select","getSettings","__unstableGetContentLockingParent","settings","createErrorNotice","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","onError","isExternal","mediaPreview","borderProps","classes","style","blockProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockAlignmentControl,\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Image from './image';\n\n// Much of this description is duplicated from MediaPlaceholder.\nconst placeholder = ( content ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\twithIllustration={ true }\n\t\t\ticon={ icon }\n\t\t\tlabel={ __( 'Image' ) }\n\t\t\tinstructions={ __(\n\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t) }\n\t\t>\n\t\t\t{ content }\n\t\t</Placeholder>\n\t);\n};\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated default image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} defaultSize\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasDefaultSize( image, defaultSize ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ defaultSize ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ defaultSize ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst ref = useRef();\n\tconst { imageDefaultSize, mediaUpload, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetContentLockingParent } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\treturn {\n\t\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tisContentLocked:\n\t\t\t\t\t!! __unstableGetContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, imageDefaultSize );\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\t// Fallback to size \"full\" if there's no default image size.\n\t\t\t\t// It means the image is smaller, and the block will use a full-size URL.\n\t\t\t\tsizeSlug: hasDefaultSize( media, imageDefaultSize )\n\t\t\t\t\t? imageDefaultSize\n\t\t\t\t\t: 'full',\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Image Size\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tlet isTemp = isTemporaryImage( id, url );\n\n\t// Upload a temporary image on mount.\n\tuseEffect( () => {\n\t\tif ( ! isTemp ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( url );\n\n\t\tif ( file ) {\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ img ] ) => {\n\t\t\t\t\tonSelectImage( img );\n\t\t\t\t},\n\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tisTemp = false;\n\t\t\t\t\tonUploadError( message );\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\t// If an image is temporary, revoke the Blob url when it is uploaded (and is\n\t// no longer temporary).\n\tuseEffect( () => {\n\t\tif ( isTemp ) {\n\t\t\tsetTemporaryURL( url );\n\t\t\treturn;\n\t\t}\n\t\trevokeBlobURL( temporaryURL );\n\t}, [ isTemp, url ] );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName={ 'edit-image-preview' }\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className || ! isEmpty( borderProps.style ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t{ ( temporaryURL || url ) && (\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontainerRef={ ref }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && ! isContentLocked && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n"]}
@@ -3,7 +3,7 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { get, isEmpty } from 'lodash';
6
+ import { isEmpty } from 'lodash';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
@@ -135,10 +135,12 @@ export default function Image(_ref) {
135
135
  const clientWidth = useClientWidth(containerRef, [align]);
136
136
  const isResizable = allowResize && !isContentLocked && !(isWideAligned && isLargeViewport);
137
137
  const imageSizeOptions = imageSizes.filter(_ref2 => {
138
+ var _image$media_details, _image$media_details$, _image$media_details$2;
139
+
138
140
  let {
139
141
  slug
140
142
  } = _ref2;
141
- return get(image, ['media_details', 'sizes', slug, 'source_url']);
143
+ return image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$ = _image$media_details.sizes) === null || _image$media_details$ === void 0 ? void 0 : (_image$media_details$2 = _image$media_details$[slug]) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2.source_url;
142
144
  }).map(_ref3 => {
143
145
  let {
144
146
  name,
@@ -230,7 +232,9 @@ export default function Image(_ref) {
230
232
  }
231
233
 
232
234
  function updateImage(newSizeSlug) {
233
- const newUrl = get(image, ['media_details', 'sizes', newSizeSlug, 'source_url']);
235
+ var _image$media_details2, _image$media_details3, _image$media_details4;
236
+
237
+ const newUrl = image === null || image === void 0 ? void 0 : (_image$media_details2 = image.media_details) === null || _image$media_details2 === void 0 ? void 0 : (_image$media_details3 = _image$media_details2.sizes) === null || _image$media_details3 === void 0 ? void 0 : (_image$media_details4 = _image$media_details3[newSizeSlug]) === null || _image$media_details4 === void 0 ? void 0 : _image$media_details4.source_url;
234
238
 
235
239
  if (!newUrl) {
236
240
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/image/image.js"],"names":["get","isEmpty","isBlobURL","ExternalLink","PanelBody","ResizableBox","Spinner","TextareaControl","TextControl","ToolbarButton","useViewportMatch","usePrevious","useSelect","useDispatch","BlockControls","InspectorControls","RichText","__experimentalImageSizeControl","ImageSizeControl","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","BlockAlignmentControl","__experimentalImageEditor","ImageEditor","__experimentalGetElementClassName","__experimentalUseBorderProps","useBorderProps","useEffect","useMemo","useState","useRef","useCallback","__","sprintf","isRTL","getFilename","createBlock","getDefaultBlockName","switchToBlockType","crop","overlayText","upload","caption","captionIcon","noticesStore","coreStore","createUpgradedEmbedBlock","useClientWidth","isExternalImage","MIN_SIZE","ALLOWED_MEDIA_TYPES","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","isContentLocked","url","alt","align","id","href","rel","linkClass","linkDestination","title","width","height","linkTarget","sizeSlug","imageRef","prevCaption","showCaption","setShowCaption","allowResize","getBlock","image","multiImageSelection","select","getMedia","getMultiSelectedBlockClientIds","getBlockName","multiSelectedClientIds","length","every","_clientId","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","getBlockRootClientId","getSettings","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","isResizable","imageSizeOptions","filter","slug","map","name","value","label","window","fetch","then","response","blob","catch","captionRef","node","focus","naturalWidth","naturalHeight","current","undefined","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","updateAlignment","nextAlign","extraUpdatedAttributes","canEditImage","allowCrop","switchToCover","controls","source_url","link","filename","defaultedAlt","borderProps","isRounded","className","hasCustomBorder","style","event","target","imageWidthWithinContainer","imageHeightWithinContainer","exceedMaxWidth","ratio","imageAttributes","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","top","right","bottom","left","direction","elt","delta","parseInt"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tPanelBody,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useViewportMatch, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tBlockAlignmentControl,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalGetElementClassName,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tcrop,\n\toverlayText,\n\tupload,\n\tcaption as captionIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tisContentLocked,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst imageRef = useRef();\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image, multiImageSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\tconst { getMultiSelectedBlockClientIds, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t\tmultiImageSelection:\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/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected, clientId ]\n\t);\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetSettings,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\tconst settings = getSettings();\n\n\t\t\t\treturn {\n\t\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isResizable =\n\t\tallowResize &&\n\t\t! isContentLocked &&\n\t\t! ( isWideAligned && isLargeViewport );\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) =>\n\t\t\tget( image, [ 'media_details', 'sizes', slug, 'source_url' ] )\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif ( ! isExternalImage( id, url ) || ! isSelected || externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t.fetch( url )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob ] );\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\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\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = get( image, [\n\t\t\t'media_details',\n\t\t\t'sizes',\n\t\t\tnewSizeSlug,\n\t\t\t'source_url',\n\t\t] );\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t\tif ( ! caption ) {\n\t\t\t\tsetShowCaption( false );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ externalBlob && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\tlabel={ __( 'Upload external image' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Alt text (alternative text)' ) }\n\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\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) }\n\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\t\tonChange={ ( value ) => setAttributes( value ) }\n\t\t\t\t\t\tslug={ sizeSlug }\n\t\t\t\t\t\twidth={ width }\n\t\t\t\t\t\theight={ height }\n\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\tisResizable={ isResizable }\n\t\t\t\t\t\timageWidth={ naturalWidth }\n\t\t\t\t\t\timageHeight={ naturalHeight }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\tconst hasCustomBorder =\n\t\t!! borderProps.className || ! isEmpty( borderProps.style );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ borderProps.style }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\tlet imageWidthWithinContainer;\n\tlet imageHeightWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\tconst ratio = naturalHeight / naturalWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t\timageHeightWithinContainer = exceedMaxWidth\n\t\t\t? clientWidth * ratio\n\t\t\t: naturalHeight;\n\t}\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ id }\n\t\t\t\turl={ url }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t}\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t/>\n\t\t);\n\t} else if ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\timg = <div style={ { width, height } }>{ img }</div>;\n\t} else {\n\t\tconst currentWidth = width || imageWidthWithinContainer;\n\t\tconst currentHeight = height || imageHeightWithinContainer;\n\n\t\tconst ratio = naturalWidth / naturalHeight;\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: width ?? 'auto',\n\t\t\t\t\theight: height && ! hasCustomBorder ? height : 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/image/image.js"],"names":["isEmpty","isBlobURL","ExternalLink","PanelBody","ResizableBox","Spinner","TextareaControl","TextControl","ToolbarButton","useViewportMatch","usePrevious","useSelect","useDispatch","BlockControls","InspectorControls","RichText","__experimentalImageSizeControl","ImageSizeControl","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","BlockAlignmentControl","__experimentalImageEditor","ImageEditor","__experimentalGetElementClassName","__experimentalUseBorderProps","useBorderProps","useEffect","useMemo","useState","useRef","useCallback","__","sprintf","isRTL","getFilename","createBlock","getDefaultBlockName","switchToBlockType","crop","overlayText","upload","caption","captionIcon","noticesStore","coreStore","createUpgradedEmbedBlock","useClientWidth","isExternalImage","MIN_SIZE","ALLOWED_MEDIA_TYPES","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","isContentLocked","url","alt","align","id","href","rel","linkClass","linkDestination","title","width","height","linkTarget","sizeSlug","imageRef","prevCaption","showCaption","setShowCaption","allowResize","getBlock","image","multiImageSelection","select","getMedia","getMultiSelectedBlockClientIds","getBlockName","multiSelectedClientIds","length","every","_clientId","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","getBlockRootClientId","getSettings","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","value","label","window","fetch","then","response","blob","catch","captionRef","node","focus","naturalWidth","naturalHeight","current","undefined","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","updateAlignment","nextAlign","extraUpdatedAttributes","canEditImage","allowCrop","switchToCover","controls","link","filename","defaultedAlt","borderProps","isRounded","className","hasCustomBorder","style","event","target","imageWidthWithinContainer","imageHeightWithinContainer","exceedMaxWidth","ratio","imageAttributes","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","top","right","bottom","left","direction","elt","delta","parseInt"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tPanelBody,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useViewportMatch, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tBlockAlignmentControl,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalGetElementClassName,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tcrop,\n\toverlayText,\n\tupload,\n\tcaption as captionIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tisContentLocked,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst imageRef = useRef();\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image, multiImageSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\tconst { getMultiSelectedBlockClientIds, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t\tmultiImageSelection:\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/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected, clientId ]\n\t);\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetSettings,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\tconst settings = getSettings();\n\n\t\t\t\treturn {\n\t\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isResizable =\n\t\tallowResize &&\n\t\t! isContentLocked &&\n\t\t! ( isWideAligned && isLargeViewport );\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif ( ! isExternalImage( id, url ) || ! isSelected || externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t.fetch( url )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob ] );\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\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\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t\tif ( ! caption ) {\n\t\t\t\tsetShowCaption( false );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ externalBlob && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\tlabel={ __( 'Upload external image' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Alt text (alternative text)' ) }\n\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\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) }\n\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\t\tonChange={ ( value ) => setAttributes( value ) }\n\t\t\t\t\t\tslug={ sizeSlug }\n\t\t\t\t\t\twidth={ width }\n\t\t\t\t\t\theight={ height }\n\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\tisResizable={ isResizable }\n\t\t\t\t\t\timageWidth={ naturalWidth }\n\t\t\t\t\t\timageHeight={ naturalHeight }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\tconst hasCustomBorder =\n\t\t!! borderProps.className || ! isEmpty( borderProps.style );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ borderProps.style }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\tlet imageWidthWithinContainer;\n\tlet imageHeightWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\tconst ratio = naturalHeight / naturalWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t\timageHeightWithinContainer = exceedMaxWidth\n\t\t\t? clientWidth * ratio\n\t\t\t: naturalHeight;\n\t}\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ id }\n\t\t\t\turl={ url }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t}\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t/>\n\t\t);\n\t} else if ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\timg = <div style={ { width, height } }>{ img }</div>;\n\t} else {\n\t\tconst currentWidth = width || imageWidthWithinContainer;\n\t\tconst currentHeight = height || imageHeightWithinContainer;\n\n\t\tconst ratio = naturalWidth / naturalHeight;\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: width ?? 'auto',\n\t\t\t\t\theight: height && ! hasCustomBorder ? height : 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { isEmpty, get } from 'lodash';
4
+ import { isEmpty } from 'lodash';
5
5
  /**
6
6
  * Internal dependencies
7
7
  */
@@ -65,7 +65,9 @@ export function getUpdatedLinkTargetSettings(value, _ref) {
65
65
  */
66
66
 
67
67
  export function getImageSizeAttributes(image, size) {
68
- const url = get(image, ['media_details', 'sizes', size, 'source_url']);
68
+ var _image$media_details, _image$media_details$, _image$media_details$2;
69
+
70
+ const url = image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$ = _image$media_details.sizes) === null || _image$media_details$ === void 0 ? void 0 : (_image$media_details$2 = _image$media_details$[size]) === null || _image$media_details$2 === void 0 ? void 0 : _image$media_details$2.source_url;
69
71
 
70
72
  if (url) {
71
73
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/image/utils.js"],"names":["isEmpty","get","NEW_TAB_REL","removeNewTabRel","currentRel","newRel","undefined","forEach","relVal","regExp","RegExp","replace","trim","getUpdatedLinkTargetSettings","value","rel","linkTarget","updatedRel","getImageSizeAttributes","image","size","url","width","height","sizeSlug"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,EAAkBC,GAAlB,QAA6B,QAA7B;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,aAA5B;AAEA,OAAO,SAASC,eAAT,CAA0BC,UAA1B,EAAuC;AAC7C,MAAIC,MAAM,GAAGD,UAAb;;AAEA,MAAKA,UAAU,KAAKE,SAAf,IAA4B,CAAEN,OAAO,CAAEK,MAAF,CAA1C,EAAuD;AACtD,QAAK,CAAEL,OAAO,CAAEK,MAAF,CAAd,EAA2B;AAC1BH,MAAAA,WAAW,CAACK,OAAZ,CAAuBC,MAAF,IAAc;AAClC,cAAMC,MAAM,GAAG,IAAIC,MAAJ,CAAY,QAAQF,MAAR,GAAiB,KAA7B,EAAoC,IAApC,CAAf;AACAH,QAAAA,MAAM,GAAGA,MAAM,CAACM,OAAP,CAAgBF,MAAhB,EAAwB,EAAxB,CAAT;AACA,OAHD,EAD0B,CAM1B;;AACA,UAAKJ,MAAM,KAAKD,UAAhB,EAA6B;AAC5BC,QAAAA,MAAM,GAAGA,MAAM,CAACO,IAAP,EAAT;AACA;;AAED,UAAKZ,OAAO,CAAEK,MAAF,CAAZ,EAAyB;AACxBA,QAAAA,MAAM,GAAGC,SAAT;AACA;AACD;AACD;;AAED,SAAOD,MAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASQ,4BAAT,CAAuCC,KAAvC,QAAwD;AAAA,MAAV;AAAEC,IAAAA;AAAF,GAAU;AAC9D,QAAMC,UAAU,GAAGF,KAAK,GAAG,QAAH,GAAcR,SAAtC;AAEA,MAAIW,UAAJ;;AACA,MAAK,CAAED,UAAF,IAAgB,CAAED,GAAvB,EAA6B;AAC5BE,IAAAA,UAAU,GAAGX,SAAb;AACA,GAFD,MAEO;AACNW,IAAAA,UAAU,GAAGd,eAAe,CAAEY,GAAF,CAA5B;AACA;;AAED,SAAO;AACNC,IAAAA,UADM;AAEND,IAAAA,GAAG,EAAEE;AAFC,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,sBAAT,CAAiCC,KAAjC,EAAwCC,IAAxC,EAA+C;AACrD,QAAMC,GAAG,GAAGpB,GAAG,CAAEkB,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4BC,IAA5B,EAAkC,YAAlC,CAAT,CAAf;;AAEA,MAAKC,GAAL,EAAW;AACV,WAAO;AAAEA,MAAAA,GAAF;AAAOC,MAAAA,KAAK,EAAEhB,SAAd;AAAyBiB,MAAAA,MAAM,EAAEjB,SAAjC;AAA4CkB,MAAAA,QAAQ,EAAEJ;AAAtD,KAAP;AACA;;AAED,SAAO,EAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty, get } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { NEW_TAB_REL } from './constants';\n\nexport function removeNewTabRel( currentRel ) {\n\tlet newRel = currentRel;\n\n\tif ( currentRel !== undefined && ! isEmpty( newRel ) ) {\n\t\tif ( ! isEmpty( newRel ) ) {\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tconst regExp = new RegExp( '\\\\b' + relVal + '\\\\b', 'gi' );\n\t\t\t\tnewRel = newRel.replace( regExp, '' );\n\t\t\t} );\n\n\t\t\t// Only trim if NEW_TAB_REL values was replaced.\n\t\t\tif ( newRel !== currentRel ) {\n\t\t\t\tnewRel = newRel.trim();\n\t\t\t}\n\n\t\t\tif ( isEmpty( newRel ) ) {\n\t\t\t\tnewRel = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newRel;\n}\n\n/**\n * Helper to get the link target settings to be stored.\n *\n * @param {boolean} value The new link target value.\n * @param {Object} attributes Block attributes.\n * @param {Object} attributes.rel Image block's rel attribute.\n *\n * @return {Object} Updated link target settings.\n */\nexport function getUpdatedLinkTargetSettings( value, { rel } ) {\n\tconst linkTarget = value ? '_blank' : undefined;\n\n\tlet updatedRel;\n\tif ( ! linkTarget && ! rel ) {\n\t\tupdatedRel = undefined;\n\t} else {\n\t\tupdatedRel = removeNewTabRel( rel );\n\t}\n\n\treturn {\n\t\tlinkTarget,\n\t\trel: updatedRel,\n\t};\n}\n\n/**\n * Determines new Image block attributes size selection.\n *\n * @param {Object} image Media file object for gallery image.\n * @param {string} size Selected size slug to apply.\n */\nexport function getImageSizeAttributes( image, size ) {\n\tconst url = get( image, [ 'media_details', 'sizes', size, 'source_url' ] );\n\n\tif ( url ) {\n\t\treturn { url, width: undefined, height: undefined, sizeSlug: size };\n\t}\n\n\treturn {};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/image/utils.js"],"names":["isEmpty","NEW_TAB_REL","removeNewTabRel","currentRel","newRel","undefined","forEach","relVal","regExp","RegExp","replace","trim","getUpdatedLinkTargetSettings","value","rel","linkTarget","updatedRel","getImageSizeAttributes","image","size","url","media_details","sizes","source_url","width","height","sizeSlug"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,QAAxB;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,aAA5B;AAEA,OAAO,SAASC,eAAT,CAA0BC,UAA1B,EAAuC;AAC7C,MAAIC,MAAM,GAAGD,UAAb;;AAEA,MAAKA,UAAU,KAAKE,SAAf,IAA4B,CAAEL,OAAO,CAAEI,MAAF,CAA1C,EAAuD;AACtD,QAAK,CAAEJ,OAAO,CAAEI,MAAF,CAAd,EAA2B;AAC1BH,MAAAA,WAAW,CAACK,OAAZ,CAAuBC,MAAF,IAAc;AAClC,cAAMC,MAAM,GAAG,IAAIC,MAAJ,CAAY,QAAQF,MAAR,GAAiB,KAA7B,EAAoC,IAApC,CAAf;AACAH,QAAAA,MAAM,GAAGA,MAAM,CAACM,OAAP,CAAgBF,MAAhB,EAAwB,EAAxB,CAAT;AACA,OAHD,EAD0B,CAM1B;;AACA,UAAKJ,MAAM,KAAKD,UAAhB,EAA6B;AAC5BC,QAAAA,MAAM,GAAGA,MAAM,CAACO,IAAP,EAAT;AACA;;AAED,UAAKX,OAAO,CAAEI,MAAF,CAAZ,EAAyB;AACxBA,QAAAA,MAAM,GAAGC,SAAT;AACA;AACD;AACD;;AAED,SAAOD,MAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASQ,4BAAT,CAAuCC,KAAvC,QAAwD;AAAA,MAAV;AAAEC,IAAAA;AAAF,GAAU;AAC9D,QAAMC,UAAU,GAAGF,KAAK,GAAG,QAAH,GAAcR,SAAtC;AAEA,MAAIW,UAAJ;;AACA,MAAK,CAAED,UAAF,IAAgB,CAAED,GAAvB,EAA6B;AAC5BE,IAAAA,UAAU,GAAGX,SAAb;AACA,GAFD,MAEO;AACNW,IAAAA,UAAU,GAAGd,eAAe,CAAEY,GAAF,CAA5B;AACA;;AAED,SAAO;AACNC,IAAAA,UADM;AAEND,IAAAA,GAAG,EAAEE;AAFC,GAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,sBAAT,CAAiCC,KAAjC,EAAwCC,IAAxC,EAA+C;AAAA;;AACrD,QAAMC,GAAG,GAAGF,KAAH,aAAGA,KAAH,+CAAGA,KAAK,CAAEG,aAAV,kFAAG,qBAAsBC,KAAzB,oFAAG,sBAA+BH,IAA/B,CAAH,2DAAG,uBAAuCI,UAAnD;;AAEA,MAAKH,GAAL,EAAW;AACV,WAAO;AAAEA,MAAAA,GAAF;AAAOI,MAAAA,KAAK,EAAEnB,SAAd;AAAyBoB,MAAAA,MAAM,EAAEpB,SAAjC;AAA4CqB,MAAAA,QAAQ,EAAEP;AAAtD,KAAP;AACA;;AAED,SAAO,EAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport { NEW_TAB_REL } from './constants';\n\nexport function removeNewTabRel( currentRel ) {\n\tlet newRel = currentRel;\n\n\tif ( currentRel !== undefined && ! isEmpty( newRel ) ) {\n\t\tif ( ! isEmpty( newRel ) ) {\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tconst regExp = new RegExp( '\\\\b' + relVal + '\\\\b', 'gi' );\n\t\t\t\tnewRel = newRel.replace( regExp, '' );\n\t\t\t} );\n\n\t\t\t// Only trim if NEW_TAB_REL values was replaced.\n\t\t\tif ( newRel !== currentRel ) {\n\t\t\t\tnewRel = newRel.trim();\n\t\t\t}\n\n\t\t\tif ( isEmpty( newRel ) ) {\n\t\t\t\tnewRel = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newRel;\n}\n\n/**\n * Helper to get the link target settings to be stored.\n *\n * @param {boolean} value The new link target value.\n * @param {Object} attributes Block attributes.\n * @param {Object} attributes.rel Image block's rel attribute.\n *\n * @return {Object} Updated link target settings.\n */\nexport function getUpdatedLinkTargetSettings( value, { rel } ) {\n\tconst linkTarget = value ? '_blank' : undefined;\n\n\tlet updatedRel;\n\tif ( ! linkTarget && ! rel ) {\n\t\tupdatedRel = undefined;\n\t} else {\n\t\tupdatedRel = removeNewTabRel( rel );\n\t}\n\n\treturn {\n\t\tlinkTarget,\n\t\trel: updatedRel,\n\t};\n}\n\n/**\n * Determines new Image block attributes size selection.\n *\n * @param {Object} image Media file object for gallery image.\n * @param {string} size Selected size slug to apply.\n */\nexport function getImageSizeAttributes( image, size ) {\n\tconst url = image?.media_details?.sizes?.[ size ]?.source_url;\n\n\tif ( url ) {\n\t\treturn { url, width: undefined, height: undefined, sizeSlug: size };\n\t}\n\n\treturn {};\n}\n"]}
@@ -78,6 +78,7 @@ import * as postFeaturedImage from './post-featured-image';
78
78
  import * as postNavigationLink from './post-navigation-link';
79
79
  import * as postTemplate from './post-template';
80
80
  import * as postTerms from './post-terms';
81
+ import * as postTimeToRead from './post-time-to-read';
81
82
  import * as postTitle from './post-title';
82
83
  import * as preformatted from './preformatted';
83
84
  import * as pullquote from './pullquote';
@@ -119,7 +120,7 @@ const getAllBlocks = () => [// Common blocks are grouped at the top to prioritiz
119
120
  paragraph, image, heading, gallery, list, listItem, quote, // Register all remaining core blocks.
120
121
  archives, audio, button, buttons, calendar, categories, ...(window.wp && window.wp.oldEditor ? [classic] : []), // Only add the classic block in WP Context.
121
122
  code, column, columns, commentAuthorAvatar, cover, embed, file, group, html, latestComments, latestPosts, mediaText, missing, more, nextpage, pageList, pageListItem, pattern, preformatted, pullquote, reusableBlock, rss, search, separator, shortcode, socialLink, socialLinks, spacer, table, tagCloud, textColumns, verse, video, // theme blocks
122
- navigation, navigationLink, navigationSubmenu, siteLogo, siteTitle, siteTagline, query, templatePart, avatar, postTitle, postExcerpt, postFeaturedImage, postContent, postAuthor, postAuthorName, postComment, postCommentsCount, postCommentsLink, postDate, postTerms, postNavigationLink, postTemplate, queryPagination, queryPaginationNext, queryPaginationNumbers, queryPaginationPrevious, queryNoResults, readMore, comments, commentAuthorName, commentContent, commentDate, commentEditLink, commentReplyLink, commentTemplate, commentsTitle, commentsPagination, commentsPaginationNext, commentsPaginationNumbers, commentsPaginationPrevious, postCommentsForm, tableOfContents, homeLink, logInOut, termDescription, queryTitle, postAuthorBiography].filter(Boolean);
123
+ navigation, navigationLink, navigationSubmenu, siteLogo, siteTitle, siteTagline, query, templatePart, avatar, postTitle, postExcerpt, postFeaturedImage, postContent, postAuthor, postAuthorName, postComment, postCommentsCount, postCommentsLink, postDate, postTerms, postNavigationLink, postTemplate, postTimeToRead, queryPagination, queryPaginationNext, queryPaginationNumbers, queryPaginationPrevious, queryNoResults, readMore, comments, commentAuthorName, commentContent, commentDate, commentEditLink, commentReplyLink, commentTemplate, commentsTitle, commentsPagination, commentsPaginationNext, commentsPaginationNumbers, commentsPaginationPrevious, postCommentsForm, tableOfContents, homeLink, logInOut, termDescription, queryTitle, postAuthorBiography].filter(Boolean);
123
124
  /**
124
125
  * Function to get all the core blocks in an array.
125
126
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/index.js"],"names":["setDefaultBlockName","setFreeformContentHandlerName","setUnregisteredTypeHandlerName","setGroupingBlockName","archives","avatar","audio","button","buttons","calendar","categories","classic","code","column","columns","comments","commentAuthorAvatar","commentAuthorName","commentContent","commentDate","commentEditLink","commentReplyLink","commentTemplate","commentsPaginationPrevious","commentsPagination","commentsPaginationNext","commentsPaginationNumbers","commentsTitle","cover","embed","file","gallery","group","heading","homeLink","html","image","latestComments","latestPosts","list","listItem","logInOut","mediaText","missing","more","navigation","navigationLink","navigationSubmenu","nextpage","pattern","pageList","pageListItem","paragraph","postAuthor","postAuthorName","postAuthorBiography","postComment","postCommentsCount","postCommentsForm","postCommentsLink","postContent","postDate","postExcerpt","postFeaturedImage","postNavigationLink","postTemplate","postTerms","postTitle","preformatted","pullquote","query","queryNoResults","queryPagination","queryPaginationNext","queryPaginationNumbers","queryPaginationPrevious","queryTitle","quote","reusableBlock","readMore","rss","search","separator","shortcode","siteLogo","siteTagline","siteTitle","socialLink","socialLinks","spacer","table","tableOfContents","tagCloud","templatePart","termDescription","textColumns","verse","video","isBlockMetadataExperimental","getAllBlocks","window","wp","oldEditor","filter","Boolean","__experimentalGetCoreBlocks","metadata","registerCoreBlocks","blocks","forEach","init","name","__experimentalRegisterExperimentalCoreBlocks","process","env","IS_GUTENBERG_PLUGIN","enableFSEBlocks","enabledExperiments","__experimental","includes","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\n// When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks\n// are transformed by packages/block-library/src/index.js as follows:\n// import * as experimentalBlock from './experimental-block'\n// becomes\n// const experimentalBlock = null;\n// This enables webpack to eliminate the experimental blocks code from the\n// production build to make the final bundle smaller.\n//\n// See https://github.com/WordPress/gutenberg/pull/40655 for more context.\nimport * as archives from './archives';\nimport * as avatar from './avatar';\nimport * as audio from './audio';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as comments from './comments';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsPaginationPrevious from './comments-pagination-previous';\nimport * as commentsPagination from './comments-pagination';\nimport * as commentsPaginationNext from './comments-pagination-next';\nimport * as commentsPaginationNumbers from './comments-pagination-numbers';\nimport * as commentsTitle from './comments-title';\nimport * as cover from './cover';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as listItem from './list-item';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as pageListItem from './page-list-item';\nimport * as paragraph from './paragraph';\nimport * as postAuthor from './post-author';\nimport * as postAuthorName from './post-author-name';\nimport * as postAuthorBiography from './post-author-biography';\nimport * as postComment from './post-comment';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryNoResults from './query-no-results';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as readMore from './read-more';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as table from './table';\nimport * as tableOfContents from './table-of-contents';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termDescription from './term-description';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\n\nimport isBlockMetadataExperimental from './utils/is-block-metadata-experimental';\n\n/**\n * Function to get all the block-library blocks in an array\n */\nconst getAllBlocks = () =>\n\t[\n\t\t// Common blocks are grouped at the top to prioritize their display\n\t\t// in various contexts — like the inserter and auto-complete components.\n\t\tparagraph,\n\t\timage,\n\t\theading,\n\t\tgallery,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\n\t\t// Register all remaining core blocks.\n\t\tarchives,\n\t\taudio,\n\t\tbutton,\n\t\tbuttons,\n\t\tcalendar,\n\t\tcategories,\n\t\t...( window.wp && window.wp.oldEditor ? [ classic ] : [] ), // Only add the classic block in WP Context.\n\t\tcode,\n\t\tcolumn,\n\t\tcolumns,\n\t\tcommentAuthorAvatar,\n\t\tcover,\n\t\tembed,\n\t\tfile,\n\t\tgroup,\n\t\thtml,\n\t\tlatestComments,\n\t\tlatestPosts,\n\t\tmediaText,\n\t\tmissing,\n\t\tmore,\n\t\tnextpage,\n\t\tpageList,\n\t\tpageListItem,\n\t\tpattern,\n\t\tpreformatted,\n\t\tpullquote,\n\t\treusableBlock,\n\t\trss,\n\t\tsearch,\n\t\tseparator,\n\t\tshortcode,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tspacer,\n\t\ttable,\n\t\ttagCloud,\n\t\ttextColumns,\n\t\tverse,\n\t\tvideo,\n\n\t\t// theme blocks\n\t\tnavigation,\n\t\tnavigationLink,\n\t\tnavigationSubmenu,\n\t\tsiteLogo,\n\t\tsiteTitle,\n\t\tsiteTagline,\n\t\tquery,\n\t\ttemplatePart,\n\t\tavatar,\n\t\tpostTitle,\n\t\tpostExcerpt,\n\t\tpostFeaturedImage,\n\t\tpostContent,\n\t\tpostAuthor,\n\t\tpostAuthorName,\n\t\tpostComment,\n\t\tpostCommentsCount,\n\t\tpostCommentsLink,\n\t\tpostDate,\n\t\tpostTerms,\n\t\tpostNavigationLink,\n\t\tpostTemplate,\n\t\tqueryPagination,\n\t\tqueryPaginationNext,\n\t\tqueryPaginationNumbers,\n\t\tqueryPaginationPrevious,\n\t\tqueryNoResults,\n\t\treadMore,\n\t\tcomments,\n\t\tcommentAuthorName,\n\t\tcommentContent,\n\t\tcommentDate,\n\t\tcommentEditLink,\n\t\tcommentReplyLink,\n\t\tcommentTemplate,\n\t\tcommentsTitle,\n\t\tcommentsPagination,\n\t\tcommentsPaginationNext,\n\t\tcommentsPaginationNumbers,\n\t\tcommentsPaginationPrevious,\n\t\tpostCommentsForm,\n\t\ttableOfContents,\n\t\thomeLink,\n\t\tlogInOut,\n\t\ttermDescription,\n\t\tqueryTitle,\n\t\tpostAuthorBiography,\n\t].filter( Boolean );\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () =>\n\tgetAllBlocks().filter(\n\t\t( { metadata } ) => ! isBlockMetadataExperimental( metadata )\n\t);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( ( { init } ) => init() );\n\n\tsetDefaultBlockName( paragraph.name );\n\tif ( window.wp && window.wp.oldEditor ) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks = process.env\n\t.IS_GUTENBERG_PLUGIN\n\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\tconst enabledExperiments = [ enableFSEBlocks ? 'fse' : null ];\n\t\t\tgetAllBlocks()\n\t\t\t\t.filter( ( { metadata } ) =>\n\t\t\t\t\tisBlockMetadataExperimental( metadata )\n\t\t\t\t)\n\t\t\t\t.filter(\n\t\t\t\t\t( { metadata: { __experimental } } ) =>\n\t\t\t\t\t\t__experimental === true ||\n\t\t\t\t\t\tenabledExperiments.includes( __experimental )\n\t\t\t\t)\n\t\t\t\t.forEach( ( { init } ) => init() );\n\t }\n\t: undefined;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/index.js"],"names":["setDefaultBlockName","setFreeformContentHandlerName","setUnregisteredTypeHandlerName","setGroupingBlockName","archives","avatar","audio","button","buttons","calendar","categories","classic","code","column","columns","comments","commentAuthorAvatar","commentAuthorName","commentContent","commentDate","commentEditLink","commentReplyLink","commentTemplate","commentsPaginationPrevious","commentsPagination","commentsPaginationNext","commentsPaginationNumbers","commentsTitle","cover","embed","file","gallery","group","heading","homeLink","html","image","latestComments","latestPosts","list","listItem","logInOut","mediaText","missing","more","navigation","navigationLink","navigationSubmenu","nextpage","pattern","pageList","pageListItem","paragraph","postAuthor","postAuthorName","postAuthorBiography","postComment","postCommentsCount","postCommentsForm","postCommentsLink","postContent","postDate","postExcerpt","postFeaturedImage","postNavigationLink","postTemplate","postTerms","postTimeToRead","postTitle","preformatted","pullquote","query","queryNoResults","queryPagination","queryPaginationNext","queryPaginationNumbers","queryPaginationPrevious","queryTitle","quote","reusableBlock","readMore","rss","search","separator","shortcode","siteLogo","siteTagline","siteTitle","socialLink","socialLinks","spacer","table","tableOfContents","tagCloud","templatePart","termDescription","textColumns","verse","video","isBlockMetadataExperimental","getAllBlocks","window","wp","oldEditor","filter","Boolean","__experimentalGetCoreBlocks","metadata","registerCoreBlocks","blocks","forEach","init","name","__experimentalRegisterExperimentalCoreBlocks","process","env","IS_GUTENBERG_PLUGIN","enableFSEBlocks","enabledExperiments","__experimental","includes","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\n// When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks\n// are transformed by packages/block-library/src/index.js as follows:\n// import * as experimentalBlock from './experimental-block'\n// becomes\n// const experimentalBlock = null;\n// This enables webpack to eliminate the experimental blocks code from the\n// production build to make the final bundle smaller.\n//\n// See https://github.com/WordPress/gutenberg/pull/40655 for more context.\nimport * as archives from './archives';\nimport * as avatar from './avatar';\nimport * as audio from './audio';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as comments from './comments';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsPaginationPrevious from './comments-pagination-previous';\nimport * as commentsPagination from './comments-pagination';\nimport * as commentsPaginationNext from './comments-pagination-next';\nimport * as commentsPaginationNumbers from './comments-pagination-numbers';\nimport * as commentsTitle from './comments-title';\nimport * as cover from './cover';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as listItem from './list-item';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as pageListItem from './page-list-item';\nimport * as paragraph from './paragraph';\nimport * as postAuthor from './post-author';\nimport * as postAuthorName from './post-author-name';\nimport * as postAuthorBiography from './post-author-biography';\nimport * as postComment from './post-comment';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTimeToRead from './post-time-to-read';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryNoResults from './query-no-results';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as readMore from './read-more';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as table from './table';\nimport * as tableOfContents from './table-of-contents';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termDescription from './term-description';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\n\nimport isBlockMetadataExperimental from './utils/is-block-metadata-experimental';\n\n/**\n * Function to get all the block-library blocks in an array\n */\nconst getAllBlocks = () =>\n\t[\n\t\t// Common blocks are grouped at the top to prioritize their display\n\t\t// in various contexts — like the inserter and auto-complete components.\n\t\tparagraph,\n\t\timage,\n\t\theading,\n\t\tgallery,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\n\t\t// Register all remaining core blocks.\n\t\tarchives,\n\t\taudio,\n\t\tbutton,\n\t\tbuttons,\n\t\tcalendar,\n\t\tcategories,\n\t\t...( window.wp && window.wp.oldEditor ? [ classic ] : [] ), // Only add the classic block in WP Context.\n\t\tcode,\n\t\tcolumn,\n\t\tcolumns,\n\t\tcommentAuthorAvatar,\n\t\tcover,\n\t\tembed,\n\t\tfile,\n\t\tgroup,\n\t\thtml,\n\t\tlatestComments,\n\t\tlatestPosts,\n\t\tmediaText,\n\t\tmissing,\n\t\tmore,\n\t\tnextpage,\n\t\tpageList,\n\t\tpageListItem,\n\t\tpattern,\n\t\tpreformatted,\n\t\tpullquote,\n\t\treusableBlock,\n\t\trss,\n\t\tsearch,\n\t\tseparator,\n\t\tshortcode,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tspacer,\n\t\ttable,\n\t\ttagCloud,\n\t\ttextColumns,\n\t\tverse,\n\t\tvideo,\n\n\t\t// theme blocks\n\t\tnavigation,\n\t\tnavigationLink,\n\t\tnavigationSubmenu,\n\t\tsiteLogo,\n\t\tsiteTitle,\n\t\tsiteTagline,\n\t\tquery,\n\t\ttemplatePart,\n\t\tavatar,\n\t\tpostTitle,\n\t\tpostExcerpt,\n\t\tpostFeaturedImage,\n\t\tpostContent,\n\t\tpostAuthor,\n\t\tpostAuthorName,\n\t\tpostComment,\n\t\tpostCommentsCount,\n\t\tpostCommentsLink,\n\t\tpostDate,\n\t\tpostTerms,\n\t\tpostNavigationLink,\n\t\tpostTemplate,\n\t\tpostTimeToRead,\n\t\tqueryPagination,\n\t\tqueryPaginationNext,\n\t\tqueryPaginationNumbers,\n\t\tqueryPaginationPrevious,\n\t\tqueryNoResults,\n\t\treadMore,\n\t\tcomments,\n\t\tcommentAuthorName,\n\t\tcommentContent,\n\t\tcommentDate,\n\t\tcommentEditLink,\n\t\tcommentReplyLink,\n\t\tcommentTemplate,\n\t\tcommentsTitle,\n\t\tcommentsPagination,\n\t\tcommentsPaginationNext,\n\t\tcommentsPaginationNumbers,\n\t\tcommentsPaginationPrevious,\n\t\tpostCommentsForm,\n\t\ttableOfContents,\n\t\thomeLink,\n\t\tlogInOut,\n\t\ttermDescription,\n\t\tqueryTitle,\n\t\tpostAuthorBiography,\n\t].filter( Boolean );\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () =>\n\tgetAllBlocks().filter(\n\t\t( { metadata } ) => ! isBlockMetadataExperimental( metadata )\n\t);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( ( { init } ) => init() );\n\n\tsetDefaultBlockName( paragraph.name );\n\tif ( window.wp && window.wp.oldEditor ) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks = process.env\n\t.IS_GUTENBERG_PLUGIN\n\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\tconst enabledExperiments = [ enableFSEBlocks ? 'fse' : null ];\n\t\t\tgetAllBlocks()\n\t\t\t\t.filter( ( { metadata } ) =>\n\t\t\t\t\tisBlockMetadataExperimental( metadata )\n\t\t\t\t)\n\t\t\t\t.filter(\n\t\t\t\t\t( { metadata: { __experimental } } ) =>\n\t\t\t\t\t\t__experimental === true ||\n\t\t\t\t\t\tenabledExperiments.includes( __experimental )\n\t\t\t\t)\n\t\t\t\t.forEach( ( { init } ) => init() );\n\t }\n\t: undefined;\n"]}