@wordpress/block-library 8.13.0 → 8.15.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 (549) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/archives/index.js +5 -1
  3. package/build/archives/index.js.map +1 -1
  4. package/build/audio/index.js +5 -1
  5. package/build/audio/index.js.map +1 -1
  6. package/build/avatar/edit.js +1 -0
  7. package/build/avatar/edit.js.map +1 -1
  8. package/build/avatar/index.js +1 -1
  9. package/build/block/edit.js +1 -1
  10. package/build/block/edit.js.map +1 -1
  11. package/build/block/edit.native.js +6 -9
  12. package/build/block/edit.native.js.map +1 -1
  13. package/build/block/index.js +2 -1
  14. package/build/block/index.js.map +1 -1
  15. package/build/buttons/edit.js +7 -3
  16. package/build/buttons/edit.js.map +1 -1
  17. package/build/categories/index.js +5 -1
  18. package/build/categories/index.js.map +1 -1
  19. package/build/code/index.js +5 -1
  20. package/build/code/index.js.map +1 -1
  21. package/build/column/edit.native.js +1 -4
  22. package/build/column/edit.native.js.map +1 -1
  23. package/build/column/index.js +1 -0
  24. package/build/column/index.js.map +1 -1
  25. package/build/columns/edit.js +1 -0
  26. package/build/columns/edit.js.map +1 -1
  27. package/build/comment-author-avatar/edit.js +1 -0
  28. package/build/comment-author-avatar/edit.js.map +1 -1
  29. package/build/comments/index.js +1 -0
  30. package/build/comments/index.js.map +1 -1
  31. package/build/cover/deprecated.js +4 -2
  32. package/build/cover/deprecated.js.map +1 -1
  33. package/build/cover/edit/inspector-controls.js +2 -1
  34. package/build/cover/edit/inspector-controls.js.map +1 -1
  35. package/build/cover/index.js +1 -0
  36. package/build/cover/index.js.map +1 -1
  37. package/build/details/index.js +5 -1
  38. package/build/details/index.js.map +1 -1
  39. package/build/embed/embed-placeholder.native.js +37 -13
  40. package/build/embed/embed-placeholder.native.js.map +1 -1
  41. package/build/embed/util.js +9 -8
  42. package/build/embed/util.js.map +1 -1
  43. package/build/file/inspector.js +1 -0
  44. package/build/file/inspector.js.map +1 -1
  45. package/build/file/{interactivity.js → view-interactivity.js} +6 -2
  46. package/build/file/view-interactivity.js.map +1 -0
  47. package/build/footnotes/edit.js +20 -1
  48. package/build/footnotes/edit.js.map +1 -1
  49. package/build/footnotes/format.js +19 -16
  50. package/build/footnotes/format.js.map +1 -1
  51. package/build/footnotes/index.js +0 -1
  52. package/build/footnotes/index.js.map +1 -1
  53. package/build/gallery/edit.js +1 -1
  54. package/build/gallery/edit.js.map +1 -1
  55. package/build/gallery/index.js +3 -1
  56. package/build/gallery/index.js.map +1 -1
  57. package/build/group/index.js +1 -0
  58. package/build/group/index.js.map +1 -1
  59. package/build/heading/index.js +5 -1
  60. package/build/heading/index.js.map +1 -1
  61. package/build/heading/transforms.js +5 -1
  62. package/build/heading/transforms.js.map +1 -1
  63. package/build/image/deprecated.js +453 -175
  64. package/build/image/deprecated.js.map +1 -1
  65. package/build/image/edit.js +0 -4
  66. package/build/image/edit.js.map +1 -1
  67. package/build/image/image.js +96 -43
  68. package/build/image/image.js.map +1 -1
  69. package/build/image/index.js +6 -0
  70. package/build/image/index.js.map +1 -1
  71. package/build/image/save.js +8 -1
  72. package/build/image/save.js.map +1 -1
  73. package/build/image/utils.js +18 -0
  74. package/build/image/utils.js.map +1 -1
  75. package/build/image/{interactivity.js → view-interactivity.js} +86 -44
  76. package/build/image/view-interactivity.js.map +1 -0
  77. package/build/index.js +12 -3
  78. package/build/index.js.map +1 -1
  79. package/build/latest-comments/edit.js +1 -0
  80. package/build/latest-comments/edit.js.map +1 -1
  81. package/build/latest-posts/edit.js +2 -0
  82. package/build/latest-posts/edit.js.map +1 -1
  83. package/build/list/edit.js +4 -4
  84. package/build/list/edit.js.map +1 -1
  85. package/build/list/index.js +5 -1
  86. package/build/list/index.js.map +1 -1
  87. package/build/list-item/utils.js +6 -1
  88. package/build/list-item/utils.js.map +1 -1
  89. package/build/media-text/index.js +1 -0
  90. package/build/media-text/index.js.map +1 -1
  91. package/build/media-text/media-container.native.js +2 -1
  92. package/build/media-text/media-container.native.js.map +1 -1
  93. package/build/missing/edit.js +22 -8
  94. package/build/missing/edit.js.map +1 -1
  95. package/build/missing/edit.native.js +7 -5
  96. package/build/missing/edit.native.js.map +1 -1
  97. package/build/navigation/constants.js +10 -4
  98. package/build/navigation/constants.js.map +1 -1
  99. package/build/navigation/edit/index.js +17 -3
  100. package/build/navigation/edit/index.js.map +1 -1
  101. package/build/navigation/edit/inner-blocks.js +2 -2
  102. package/build/navigation/edit/inner-blocks.js.map +1 -1
  103. package/build/navigation/edit/menu-inspector-controls.js +0 -1
  104. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  105. package/build/navigation/edit/unsaved-inner-blocks.js +2 -2
  106. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  107. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -15
  108. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  109. package/build/navigation/use-navigation-menu.js +33 -45
  110. package/build/navigation/use-navigation-menu.js.map +1 -1
  111. package/build/navigation/view-interactivity.js +185 -0
  112. package/build/navigation/view-interactivity.js.map +1 -0
  113. package/build/navigation-link/edit.js +12 -18
  114. package/build/navigation-link/edit.js.map +1 -1
  115. package/build/navigation-link/link-ui.js +12 -2
  116. package/build/navigation-link/link-ui.js.map +1 -1
  117. package/build/navigation-submenu/edit.js +2 -2
  118. package/build/navigation-submenu/edit.js.map +1 -1
  119. package/build/page-list/convert-to-links-modal.js +3 -3
  120. package/build/page-list/convert-to-links-modal.js.map +1 -1
  121. package/build/page-list/edit.js +34 -39
  122. package/build/page-list/edit.js.map +1 -1
  123. package/build/page-list/use-convert-to-navigation-links.js +2 -15
  124. package/build/page-list/use-convert-to-navigation-links.js.map +1 -1
  125. package/build/paragraph/index.js +1 -0
  126. package/build/paragraph/index.js.map +1 -1
  127. package/build/paragraph/transforms.js +1 -0
  128. package/build/paragraph/transforms.js.map +1 -1
  129. package/build/post-comments-form/index.js +1 -0
  130. package/build/post-comments-form/index.js.map +1 -1
  131. package/build/post-navigation-link/index.js +1 -0
  132. package/build/post-navigation-link/index.js.map +1 -1
  133. package/build/post-time-to-read/index.js +5 -1
  134. package/build/post-time-to-read/index.js.map +1 -1
  135. package/build/query-pagination/edit.js +1 -1
  136. package/build/query-pagination/edit.js.map +1 -1
  137. package/build/query-pagination-numbers/index.js +1 -1
  138. package/build/query-title/edit.js +43 -1
  139. package/build/query-title/edit.js.map +1 -1
  140. package/build/quote/index.js +1 -0
  141. package/build/quote/index.js.map +1 -1
  142. package/build/quote/transforms.js +8 -0
  143. package/build/quote/transforms.js.map +1 -1
  144. package/build/rss/edit.js +3 -0
  145. package/build/rss/edit.js.map +1 -1
  146. package/build/search/edit.js +4 -3
  147. package/build/search/edit.js.map +1 -1
  148. package/build/search/index.js +1 -0
  149. package/build/search/index.js.map +1 -1
  150. package/build/site-logo/edit.js +1 -0
  151. package/build/site-logo/edit.js.map +1 -1
  152. package/build/site-logo/index.js +5 -1
  153. package/build/site-logo/index.js.map +1 -1
  154. package/build/site-tagline/icon.js +1 -1
  155. package/build/site-tagline/icon.js.map +1 -1
  156. package/build/site-tagline/index.js +5 -1
  157. package/build/site-tagline/index.js.map +1 -1
  158. package/build/site-title/index.js +5 -1
  159. package/build/site-title/index.js.map +1 -1
  160. package/build/social-links/index.js +3 -1
  161. package/build/social-links/index.js.map +1 -1
  162. package/build/table/index.js +5 -1
  163. package/build/table/index.js.map +1 -1
  164. package/build/tag-cloud/edit.js +1 -0
  165. package/build/tag-cloud/edit.js.map +1 -1
  166. package/build/template-part/edit/index.js +1 -1
  167. package/build/template-part/edit/index.js.map +1 -1
  168. package/build/term-description/index.js +1 -0
  169. package/build/term-description/index.js.map +1 -1
  170. package/build/text-columns/edit.js +1 -0
  171. package/build/text-columns/edit.js.map +1 -1
  172. package/build/verse/index.js +5 -1
  173. package/build/verse/index.js.map +1 -1
  174. package/build/video/deprecated.js +5 -1
  175. package/build/video/deprecated.js.map +1 -1
  176. package/build/video/index.js +5 -1
  177. package/build/video/index.js.map +1 -1
  178. package/build-module/archives/index.js +5 -1
  179. package/build-module/archives/index.js.map +1 -1
  180. package/build-module/audio/index.js +5 -1
  181. package/build-module/audio/index.js.map +1 -1
  182. package/build-module/avatar/edit.js +1 -0
  183. package/build-module/avatar/edit.js.map +1 -1
  184. package/build-module/avatar/index.js +1 -1
  185. package/build-module/block/edit.js +1 -1
  186. package/build-module/block/edit.js.map +1 -1
  187. package/build-module/block/edit.native.js +7 -9
  188. package/build-module/block/edit.native.js.map +1 -1
  189. package/build-module/block/index.js +2 -1
  190. package/build-module/block/index.js.map +1 -1
  191. package/build-module/buttons/edit.js +7 -3
  192. package/build-module/buttons/edit.js.map +1 -1
  193. package/build-module/categories/index.js +5 -1
  194. package/build-module/categories/index.js.map +1 -1
  195. package/build-module/code/index.js +5 -1
  196. package/build-module/code/index.js.map +1 -1
  197. package/build-module/column/edit.native.js +1 -4
  198. package/build-module/column/edit.native.js.map +1 -1
  199. package/build-module/column/index.js +1 -0
  200. package/build-module/column/index.js.map +1 -1
  201. package/build-module/columns/edit.js +1 -0
  202. package/build-module/columns/edit.js.map +1 -1
  203. package/build-module/comment-author-avatar/edit.js +1 -0
  204. package/build-module/comment-author-avatar/edit.js.map +1 -1
  205. package/build-module/comments/index.js +1 -0
  206. package/build-module/comments/index.js.map +1 -1
  207. package/build-module/cover/deprecated.js +4 -2
  208. package/build-module/cover/deprecated.js.map +1 -1
  209. package/build-module/cover/edit/inspector-controls.js +2 -1
  210. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  211. package/build-module/cover/index.js +1 -0
  212. package/build-module/cover/index.js.map +1 -1
  213. package/build-module/details/index.js +5 -1
  214. package/build-module/details/index.js.map +1 -1
  215. package/build-module/embed/embed-placeholder.native.js +37 -14
  216. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  217. package/build-module/embed/util.js +6 -6
  218. package/build-module/embed/util.js.map +1 -1
  219. package/build-module/file/inspector.js +1 -0
  220. package/build-module/file/inspector.js.map +1 -1
  221. package/build-module/file/{interactivity.js → view-interactivity.js} +6 -2
  222. package/build-module/file/view-interactivity.js.map +1 -0
  223. package/build-module/footnotes/edit.js +18 -2
  224. package/build-module/footnotes/edit.js.map +1 -1
  225. package/build-module/footnotes/format.js +19 -16
  226. package/build-module/footnotes/format.js.map +1 -1
  227. package/build-module/footnotes/index.js +0 -1
  228. package/build-module/footnotes/index.js.map +1 -1
  229. package/build-module/gallery/edit.js +1 -1
  230. package/build-module/gallery/edit.js.map +1 -1
  231. package/build-module/gallery/index.js +3 -1
  232. package/build-module/gallery/index.js.map +1 -1
  233. package/build-module/group/index.js +1 -0
  234. package/build-module/group/index.js.map +1 -1
  235. package/build-module/heading/index.js +5 -1
  236. package/build-module/heading/index.js.map +1 -1
  237. package/build-module/heading/transforms.js +5 -1
  238. package/build-module/heading/transforms.js.map +1 -1
  239. package/build-module/image/deprecated.js +454 -176
  240. package/build-module/image/deprecated.js.map +1 -1
  241. package/build-module/image/edit.js +0 -4
  242. package/build-module/image/edit.js.map +1 -1
  243. package/build-module/image/image.js +96 -46
  244. package/build-module/image/image.js.map +1 -1
  245. package/build-module/image/index.js +6 -0
  246. package/build-module/image/index.js.map +1 -1
  247. package/build-module/image/save.js +8 -1
  248. package/build-module/image/save.js.map +1 -1
  249. package/build-module/image/utils.js +16 -0
  250. package/build-module/image/utils.js.map +1 -1
  251. package/build-module/image/{interactivity.js → view-interactivity.js} +86 -44
  252. package/build-module/image/view-interactivity.js.map +1 -0
  253. package/build-module/index.js +12 -3
  254. package/build-module/index.js.map +1 -1
  255. package/build-module/latest-comments/edit.js +1 -0
  256. package/build-module/latest-comments/edit.js.map +1 -1
  257. package/build-module/latest-posts/edit.js +2 -0
  258. package/build-module/latest-posts/edit.js.map +1 -1
  259. package/build-module/list/edit.js +4 -4
  260. package/build-module/list/edit.js.map +1 -1
  261. package/build-module/list/index.js +5 -1
  262. package/build-module/list/index.js.map +1 -1
  263. package/build-module/list-item/utils.js +6 -1
  264. package/build-module/list-item/utils.js.map +1 -1
  265. package/build-module/media-text/index.js +1 -0
  266. package/build-module/media-text/index.js.map +1 -1
  267. package/build-module/media-text/media-container.native.js +2 -1
  268. package/build-module/media-text/media-container.native.js.map +1 -1
  269. package/build-module/missing/edit.js +22 -8
  270. package/build-module/missing/edit.js.map +1 -1
  271. package/build-module/missing/edit.native.js +8 -6
  272. package/build-module/missing/edit.native.js.map +1 -1
  273. package/build-module/navigation/constants.js +8 -3
  274. package/build-module/navigation/constants.js.map +1 -1
  275. package/build-module/navigation/edit/index.js +18 -4
  276. package/build-module/navigation/edit/index.js.map +1 -1
  277. package/build-module/navigation/edit/inner-blocks.js +2 -2
  278. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  279. package/build-module/navigation/edit/menu-inspector-controls.js +0 -1
  280. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  281. package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -2
  282. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  283. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -14
  284. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  285. package/build-module/navigation/use-navigation-menu.js +35 -47
  286. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  287. package/build-module/navigation/view-interactivity.js +182 -0
  288. package/build-module/navigation/view-interactivity.js.map +1 -0
  289. package/build-module/navigation-link/edit.js +13 -19
  290. package/build-module/navigation-link/edit.js.map +1 -1
  291. package/build-module/navigation-link/link-ui.js +13 -3
  292. package/build-module/navigation-link/link-ui.js.map +1 -1
  293. package/build-module/navigation-submenu/edit.js +2 -2
  294. package/build-module/navigation-submenu/edit.js.map +1 -1
  295. package/build-module/page-list/convert-to-links-modal.js +3 -3
  296. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  297. package/build-module/page-list/edit.js +34 -39
  298. package/build-module/page-list/edit.js.map +1 -1
  299. package/build-module/page-list/use-convert-to-navigation-links.js +3 -16
  300. package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -1
  301. package/build-module/paragraph/index.js +1 -0
  302. package/build-module/paragraph/index.js.map +1 -1
  303. package/build-module/paragraph/transforms.js +1 -0
  304. package/build-module/paragraph/transforms.js.map +1 -1
  305. package/build-module/post-comments-form/index.js +1 -0
  306. package/build-module/post-comments-form/index.js.map +1 -1
  307. package/build-module/post-navigation-link/index.js +1 -0
  308. package/build-module/post-navigation-link/index.js.map +1 -1
  309. package/build-module/post-time-to-read/index.js +5 -1
  310. package/build-module/post-time-to-read/index.js.map +1 -1
  311. package/build-module/query-pagination/edit.js +1 -1
  312. package/build-module/query-pagination/edit.js.map +1 -1
  313. package/build-module/query-pagination-numbers/index.js +1 -1
  314. package/build-module/query-title/edit.js +44 -3
  315. package/build-module/query-title/edit.js.map +1 -1
  316. package/build-module/quote/index.js +1 -0
  317. package/build-module/quote/index.js.map +1 -1
  318. package/build-module/quote/transforms.js +8 -0
  319. package/build-module/quote/transforms.js.map +1 -1
  320. package/build-module/rss/edit.js +3 -0
  321. package/build-module/rss/edit.js.map +1 -1
  322. package/build-module/search/edit.js +4 -3
  323. package/build-module/search/edit.js.map +1 -1
  324. package/build-module/search/index.js +1 -0
  325. package/build-module/search/index.js.map +1 -1
  326. package/build-module/site-logo/edit.js +1 -0
  327. package/build-module/site-logo/edit.js.map +1 -1
  328. package/build-module/site-logo/index.js +5 -1
  329. package/build-module/site-logo/index.js.map +1 -1
  330. package/build-module/site-tagline/icon.js +1 -1
  331. package/build-module/site-tagline/icon.js.map +1 -1
  332. package/build-module/site-tagline/index.js +5 -1
  333. package/build-module/site-tagline/index.js.map +1 -1
  334. package/build-module/site-title/index.js +5 -1
  335. package/build-module/site-title/index.js.map +1 -1
  336. package/build-module/social-links/index.js +3 -1
  337. package/build-module/social-links/index.js.map +1 -1
  338. package/build-module/table/index.js +5 -1
  339. package/build-module/table/index.js.map +1 -1
  340. package/build-module/tag-cloud/edit.js +1 -0
  341. package/build-module/tag-cloud/edit.js.map +1 -1
  342. package/build-module/template-part/edit/index.js +1 -1
  343. package/build-module/template-part/edit/index.js.map +1 -1
  344. package/build-module/term-description/index.js +1 -0
  345. package/build-module/term-description/index.js.map +1 -1
  346. package/build-module/text-columns/edit.js +1 -0
  347. package/build-module/text-columns/edit.js.map +1 -1
  348. package/build-module/verse/index.js +5 -1
  349. package/build-module/verse/index.js.map +1 -1
  350. package/build-module/video/deprecated.js +5 -1
  351. package/build-module/video/deprecated.js.map +1 -1
  352. package/build-module/video/index.js +5 -1
  353. package/build-module/video/index.js.map +1 -1
  354. package/build-style/details/style-rtl.css +4 -2
  355. package/build-style/details/style.css +4 -2
  356. package/build-style/footnotes/style-rtl.css +4 -3
  357. package/build-style/footnotes/style.css +4 -3
  358. package/build-style/image/style-rtl.css +16 -2
  359. package/build-style/image/style.css +16 -2
  360. package/build-style/navigation/style-rtl.css +14 -2
  361. package/build-style/navigation/style.css +14 -2
  362. package/build-style/query-pagination/style-rtl.css +4 -2
  363. package/build-style/query-pagination/style.css +4 -2
  364. package/build-style/style-rtl.css +42 -11
  365. package/build-style/style.css +42 -11
  366. package/package.json +33 -37
  367. package/src/archives/block.json +5 -1
  368. package/src/audio/block.json +5 -1
  369. package/src/audio/test/__snapshots__/edit.native.js.snap +58 -33
  370. package/src/avatar/block.json +1 -1
  371. package/src/avatar/edit.js +1 -0
  372. package/src/block/block.json +2 -1
  373. package/src/block/edit.js +2 -2
  374. package/src/block/edit.native.js +8 -12
  375. package/src/block/editor.native.scss +2 -2
  376. package/src/block/test/edit.native.js +4 -4
  377. package/src/buttons/edit.js +4 -4
  378. package/src/categories/block.json +5 -1
  379. package/src/code/block.json +5 -1
  380. package/src/column/block.json +1 -0
  381. package/src/column/edit.native.js +4 -10
  382. package/src/column/editor.native.scss +0 -4
  383. package/src/columns/edit.js +1 -0
  384. package/src/comment-author-avatar/edit.js +1 -0
  385. package/src/comment-template/index.php +5 -2
  386. package/src/comments/block.json +1 -0
  387. package/src/cover/block.json +1 -0
  388. package/src/cover/deprecated.js +2 -0
  389. package/src/cover/edit/inspector-controls.js +1 -0
  390. package/src/details/block.json +5 -1
  391. package/src/embed/embed-placeholder.native.js +80 -47
  392. package/src/embed/styles.native.scss +54 -18
  393. package/src/embed/test/index.native.js +5 -5
  394. package/src/embed/util.js +4 -6
  395. package/src/file/index.php +4 -3
  396. package/src/file/inspector.js +1 -0
  397. package/src/file/test/__snapshots__/edit.native.js.snap +58 -33
  398. package/src/file/{interactivity.js → view-interactivity.js} +4 -1
  399. package/src/footnotes/block.json +0 -1
  400. package/src/footnotes/edit.js +21 -2
  401. package/src/footnotes/format.js +22 -20
  402. package/src/footnotes/index.php +11 -9
  403. package/src/footnotes/style.scss +6 -3
  404. package/src/gallery/block.json +3 -1
  405. package/src/gallery/edit.js +1 -1
  406. package/src/gallery/test/index.native.js +17 -16
  407. package/src/group/block.json +1 -0
  408. package/src/heading/block.json +5 -1
  409. package/src/heading/test/index.native.js +18 -0
  410. package/src/home-link/index.php +15 -2
  411. package/src/image/block.json +6 -0
  412. package/src/image/deprecated.js +597 -320
  413. package/src/image/edit.js +0 -4
  414. package/src/image/image.js +131 -62
  415. package/src/image/index.php +47 -8
  416. package/src/image/save.js +9 -1
  417. package/src/image/style.scss +15 -2
  418. package/src/image/test/edit.native.js +1 -1
  419. package/src/image/utils.js +16 -0
  420. package/src/image/{interactivity.js → view-interactivity.js} +99 -50
  421. package/src/index.js +18 -1
  422. package/src/latest-comments/edit.js +1 -0
  423. package/src/latest-posts/edit.js +2 -0
  424. package/src/latest-posts/index.php +1 -1
  425. package/src/list/block.json +5 -1
  426. package/src/list/edit.js +6 -4
  427. package/src/list/test/edit.native.js +129 -33
  428. package/src/media-text/block.json +1 -0
  429. package/src/media-text/media-container.native.js +1 -0
  430. package/src/missing/edit.js +31 -11
  431. package/src/missing/edit.native.js +12 -10
  432. package/src/missing/style.native.scss +19 -12
  433. package/src/missing/test/__snapshots__/edit.native.js.snap +21 -13
  434. package/src/navigation/constants.js +12 -6
  435. package/src/navigation/edit/index.js +30 -3
  436. package/src/navigation/edit/inner-blocks.js +2 -2
  437. package/src/navigation/edit/menu-inspector-controls.js +0 -1
  438. package/src/navigation/edit/unsaved-inner-blocks.js +2 -2
  439. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +17 -21
  440. package/src/navigation/index.php +43 -16
  441. package/src/navigation/style.scss +27 -8
  442. package/src/navigation/use-navigation-menu.js +39 -63
  443. package/src/navigation/view-interactivity.js +196 -0
  444. package/src/navigation-link/edit.js +61 -61
  445. package/src/navigation-link/link-ui.js +14 -2
  446. package/src/navigation-submenu/edit.js +2 -2
  447. package/src/navigation-submenu/index.php +2 -12
  448. package/src/page-list/convert-to-links-modal.js +3 -3
  449. package/src/page-list/edit.js +65 -62
  450. package/src/page-list/use-convert-to-navigation-links.js +3 -20
  451. package/src/paragraph/block.json +1 -0
  452. package/src/paragraph/test/__snapshots__/edit.native.js.snap +1 -0
  453. package/src/paragraph/test/edit.native.js +26 -0
  454. package/src/post-comments-form/block.json +1 -0
  455. package/src/post-navigation-link/block.json +1 -0
  456. package/src/post-template/index.php +4 -2
  457. package/src/post-time-to-read/block.json +5 -1
  458. package/src/post-title/index.php +6 -3
  459. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -0
  460. package/src/query-pagination/edit.js +17 -14
  461. package/src/query-pagination-numbers/block.json +1 -1
  462. package/src/query-title/edit.js +48 -6
  463. package/src/quote/block.json +1 -0
  464. package/src/quote/test/__snapshots__/transforms.native.js.snap +10 -0
  465. package/src/quote/test/transforms.native.js +5 -1
  466. package/src/quote/transforms.js +13 -0
  467. package/src/rss/edit.js +3 -0
  468. package/src/search/block.json +1 -0
  469. package/src/search/edit.js +4 -3
  470. package/src/search/index.php +22 -4
  471. package/src/search/test/__snapshots__/edit.native.js.snap +7 -0
  472. package/src/site-logo/block.json +5 -1
  473. package/src/site-logo/edit.js +1 -0
  474. package/src/site-tagline/block.json +5 -1
  475. package/src/site-tagline/icon.js +1 -1
  476. package/src/site-title/block.json +5 -1
  477. package/src/social-links/block.json +3 -1
  478. package/src/table/block.json +5 -1
  479. package/src/tag-cloud/edit.js +1 -0
  480. package/src/template-part/edit/index.js +1 -1
  481. package/src/template-part/index.php +9 -15
  482. package/src/term-description/block.json +1 -0
  483. package/src/text-columns/edit.js +1 -0
  484. package/src/verse/block.json +5 -1
  485. package/src/video/block.json +5 -1
  486. package/build/file/interactivity.js.map +0 -1
  487. package/build/gallery/shared-icon.native.js +0 -38
  488. package/build/gallery/shared-icon.native.js.map +0 -1
  489. package/build/heading/heading-level-icon.js +0 -61
  490. package/build/heading/heading-level-icon.js.map +0 -1
  491. package/build/image/interactivity.js.map +0 -1
  492. package/build/navigation/interactivity.js +0 -167
  493. package/build/navigation/interactivity.js.map +0 -1
  494. package/build/utils/interactivity/constants.js +0 -9
  495. package/build/utils/interactivity/constants.js.map +0 -1
  496. package/build/utils/interactivity/directives.js +0 -222
  497. package/build/utils/interactivity/directives.js.map +0 -1
  498. package/build/utils/interactivity/hooks.js +0 -159
  499. package/build/utils/interactivity/hooks.js.map +0 -1
  500. package/build/utils/interactivity/hydration.js +0 -34
  501. package/build/utils/interactivity/hydration.js.map +0 -1
  502. package/build/utils/interactivity/index.js +0 -32
  503. package/build/utils/interactivity/index.js.map +0 -1
  504. package/build/utils/interactivity/portals.js +0 -108
  505. package/build/utils/interactivity/portals.js.map +0 -1
  506. package/build/utils/interactivity/store.js +0 -66
  507. package/build/utils/interactivity/store.js.map +0 -1
  508. package/build/utils/interactivity/utils.js +0 -87
  509. package/build/utils/interactivity/utils.js.map +0 -1
  510. package/build/utils/interactivity/vdom.js +0 -119
  511. package/build/utils/interactivity/vdom.js.map +0 -1
  512. package/build-module/file/interactivity.js.map +0 -1
  513. package/build-module/gallery/shared-icon.native.js +0 -24
  514. package/build-module/gallery/shared-icon.native.js.map +0 -1
  515. package/build-module/heading/heading-level-icon.js +0 -53
  516. package/build-module/heading/heading-level-icon.js.map +0 -1
  517. package/build-module/image/interactivity.js.map +0 -1
  518. package/build-module/navigation/interactivity.js +0 -164
  519. package/build-module/navigation/interactivity.js.map +0 -1
  520. package/build-module/utils/interactivity/constants.js +0 -2
  521. package/build-module/utils/interactivity/constants.js.map +0 -1
  522. package/build-module/utils/interactivity/directives.js +0 -209
  523. package/build-module/utils/interactivity/directives.js.map +0 -1
  524. package/build-module/utils/interactivity/hooks.js +0 -145
  525. package/build-module/utils/interactivity/hooks.js.map +0 -1
  526. package/build-module/utils/interactivity/hydration.js +0 -21
  527. package/build-module/utils/interactivity/hydration.js.map +0 -1
  528. package/build-module/utils/interactivity/index.js +0 -15
  529. package/build-module/utils/interactivity/index.js.map +0 -1
  530. package/build-module/utils/interactivity/portals.js +0 -100
  531. package/build-module/utils/interactivity/portals.js.map +0 -1
  532. package/build-module/utils/interactivity/store.js +0 -55
  533. package/build-module/utils/interactivity/store.js.map +0 -1
  534. package/build-module/utils/interactivity/utils.js +0 -75
  535. package/build-module/utils/interactivity/utils.js.map +0 -1
  536. package/build-module/utils/interactivity/vdom.js +0 -107
  537. package/build-module/utils/interactivity/vdom.js.map +0 -1
  538. package/src/gallery/shared-icon.native.js +0 -23
  539. package/src/heading/heading-level-icon.js +0 -48
  540. package/src/navigation/interactivity.js +0 -169
  541. package/src/utils/interactivity/constants.js +0 -1
  542. package/src/utils/interactivity/directives.js +0 -200
  543. package/src/utils/interactivity/hooks.js +0 -145
  544. package/src/utils/interactivity/hydration.js +0 -22
  545. package/src/utils/interactivity/index.js +0 -15
  546. package/src/utils/interactivity/portals.js +0 -98
  547. package/src/utils/interactivity/store.js +0 -45
  548. package/src/utils/interactivity/utils.js +0 -66
  549. package/src/utils/interactivity/vdom.js +0 -111
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/image/deprecated.js"],"names":["blockAttributes","align","type","url","source","selector","attribute","alt","default","caption","title","href","rel","linkClass","id","width","height","sizeSlug","linkDestination","linkTarget","blockSupports","anchor","color","__experimentalDuotone","text","background","__experimentalBorder","radius","__experimentalDefaultControls","deprecated","attributes","supports","save","newRel","undefined","classes","image","figure","RichText","isEmpty","useBlockProps","className","extraImageProps","figureStyle","maxWidth"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nconst blockAttributes = {\n\talign: {\n\t\ttype: 'string',\n\t},\n\turl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'src',\n\t},\n\talt: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'alt',\n\t\tdefault: '',\n\t},\n\tcaption: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'figcaption',\n\t},\n\ttitle: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'title',\n\t},\n\thref: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'href',\n\t},\n\trel: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'rel',\n\t},\n\tlinkClass: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'class',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\twidth: {\n\t\ttype: 'number',\n\t},\n\theight: {\n\t\ttype: 'number',\n\t},\n\tsizeSlug: {\n\t\ttype: 'string',\n\t},\n\tlinkDestination: {\n\t\ttype: 'string',\n\t},\n\tlinkTarget: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'target',\n\t},\n};\n\nconst blockSupports = {\n\tanchor: true,\n\tcolor: {\n\t\t__experimentalDuotone: 'img',\n\t\ttext: false,\n\t\tbackground: false,\n\t},\n\t__experimentalBorder: {\n\t\tradius: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tradius: true,\n\t\t},\n\t},\n};\n\nconst deprecated = [\n\t// The following deprecation moves existing border radius styles onto the\n\t// inner img element where new border block support styles must be applied.\n\t// It will also add a new `.has-custom-border` class for existing blocks\n\t// with border radii set. This class is required to improve caption position\n\t// and styling when an image within a gallery has a custom border or\n\t// rounded corners.\n\t//\n\t// See: https://github.com/WordPress/gutenberg/pull/31366/\n\t{\n\t\tattributes: blockAttributes,\n\t\tsupports: blockSupports,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\turl,\n\t\t\t\talt,\n\t\t\t\tcaption,\n\t\t\t\talign,\n\t\t\t\thref,\n\t\t\t\trel,\n\t\t\t\tlinkClass,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tid,\n\t\t\t\tlinkTarget,\n\t\t\t\tsizeSlug,\n\t\t\t\ttitle,\n\t\t\t} = attributes;\n\n\t\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\tconst figure = (\n\t\t\t\t<>\n\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ image }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\timage\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t\t{ figure }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\ttitle: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'title',\n\t\t\t},\n\t\t\tsizeSlug: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tsupports: blockSupports,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\turl,\n\t\t\t\talt,\n\t\t\t\tcaption,\n\t\t\t\talign,\n\t\t\t\thref,\n\t\t\t\trel,\n\t\t\t\tlinkClass,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tid,\n\t\t\t\tlinkTarget,\n\t\t\t\tsizeSlug,\n\t\t\t\ttitle,\n\t\t\t} = attributes;\n\n\t\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\tconst figure = (\n\t\t\t\t<>\n\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ image }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\timage\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\t\treturn (\n\t\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t\t<figure className={ classes }>{ figure }</figure>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t\t{ figure }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\t\tattributes;\n\n\t\t\tconst classes = classnames( {\n\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t'is-resized': width || height,\n\t\t\t} );\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\t\tattributes;\n\n\t\t\tconst image = (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\twidth={ width }\n\t\t\t\t\theight={ height }\n\t\t\t\t/>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure className={ align ? `align${ align }` : null }>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: blockAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, alt, caption, align, href, width, height } =\n\t\t\t\tattributes;\n\t\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\t\tconst image = (\n\t\t\t\t<img src={ url } alt={ alt } { ...extraImageProps } />\n\t\t\t);\n\n\t\t\tlet figureStyle = {};\n\n\t\t\tif ( width ) {\n\t\t\t\tfigureStyle = { width };\n\t\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<figure\n\t\t\t\t\tclassName={ align ? `align${ align }` : null }\n\t\t\t\t\tstyle={ figureStyle }\n\t\t\t\t>\n\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/image/deprecated.js"],"names":["v1","attributes","url","type","source","selector","attribute","alt","default","caption","href","id","align","width","height","save","extraImageProps","image","figureStyle","maxWidth","RichText","isEmpty","v2","v3","linkDestination","classes","v4","title","rel","linkClass","sizeSlug","linkTarget","supports","anchor","newRel","undefined","figure","useBlockProps","className","v5","color","__experimentalDuotone","text","background","__experimentalBorder","radius","__experimentalDefaultControls","__experimentalStyle","spacing","margin","v6","aspectRatio","scale","borderProps","style","Object","keys","length","imageClasses","objectFit"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,EAAE,GAAG;AACVC,EAAAA,UAAU,EAAE;AACXC,IAAAA,GAAG,EAAE;AACJC,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE;AAJP,KADM;AAOXC,IAAAA,GAAG,EAAE;AACJJ,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE,KAJP;AAKJE,MAAAA,OAAO,EAAE;AALL,KAPM;AAcXC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,OADE;AAERC,MAAAA,MAAM,EAAE,UAFA;AAGRC,MAAAA,QAAQ,EAAE;AAHF,KAdE;AAmBXK,IAAAA,IAAI,EAAE;AACLP,MAAAA,IAAI,EAAE,QADD;AAELC,MAAAA,MAAM,EAAE,WAFH;AAGLC,MAAAA,QAAQ,EAAE,GAHL;AAILC,MAAAA,SAAS,EAAE;AAJN,KAnBK;AAyBXK,IAAAA,EAAE,EAAE;AACHR,MAAAA,IAAI,EAAE;AADH,KAzBO;AA4BXS,IAAAA,KAAK,EAAE;AACNT,MAAAA,IAAI,EAAE;AADA,KA5BI;AA+BXU,IAAAA,KAAK,EAAE;AACNV,MAAAA,IAAI,EAAE;AADA,KA/BI;AAkCXW,IAAAA,MAAM,EAAE;AACPX,MAAAA,IAAI,EAAE;AADC;AAlCG,GADF;;AAuCVY,EAAAA,IAAI,CAAE;AAAEd,IAAAA;AAAF,GAAF,EAAmB;AACtB,UAAM;AAAEC,MAAAA,GAAF;AAAOK,MAAAA,GAAP;AAAYE,MAAAA,OAAZ;AAAqBG,MAAAA,KAArB;AAA4BF,MAAAA,IAA5B;AAAkCG,MAAAA,KAAlC;AAAyCC,MAAAA;AAAzC,QAAoDb,UAA1D;AACA,UAAMe,eAAe,GAAGH,KAAK,IAAIC,MAAT,GAAkB;AAAED,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAlB,GAAsC,EAA9D;AACA,UAAMG,KAAK,GAAG;AAAK,MAAA,GAAG,EAAGf,GAAX;AAAiB,MAAA,GAAG,EAAGK,GAAvB;AAAA,SAAkCS;AAAlC,MAAd;AAEA,QAAIE,WAAW,GAAG,EAAlB;;AAEA,QAAKL,KAAL,EAAa;AACZK,MAAAA,WAAW,GAAG;AAAEL,QAAAA;AAAF,OAAd;AACA,KAFD,MAEO,IAAKD,KAAK,KAAK,MAAV,IAAoBA,KAAK,KAAK,OAAnC,EAA6C;AACnDM,MAAAA,WAAW,GAAG;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OAAd;AACA;;AAED,WACC;AACC,MAAA,SAAS,EAAGP,KAAK,GAAI,QAAQA,KAAO,EAAnB,GAAuB,IADzC;AAEC,MAAA,KAAK,EAAGM;AAFT,OAIGR,IAAI,GAAG;AAAG,MAAA,IAAI,EAAGA;AAAV,OAAmBO,KAAnB,CAAH,GAAoCA,KAJ3C,EAKG,CAAEG,sBAASC,OAAT,CAAkBZ,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MANF,CADD;AAWA;;AA/DS,CAAX;AAkEA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMa,EAAE,GAAG;AACVrB,EAAAA,UAAU,EAAE;AACXC,IAAAA,GAAG,EAAE;AACJC,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE;AAJP,KADM;AAOXC,IAAAA,GAAG,EAAE;AACJJ,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE,KAJP;AAKJE,MAAAA,OAAO,EAAE;AALL,KAPM;AAcXC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,OADE;AAERC,MAAAA,MAAM,EAAE,UAFA;AAGRC,MAAAA,QAAQ,EAAE;AAHF,KAdE;AAmBXK,IAAAA,IAAI,EAAE;AACLP,MAAAA,IAAI,EAAE,QADD;AAELC,MAAAA,MAAM,EAAE,WAFH;AAGLC,MAAAA,QAAQ,EAAE,GAHL;AAILC,MAAAA,SAAS,EAAE;AAJN,KAnBK;AAyBXK,IAAAA,EAAE,EAAE;AACHR,MAAAA,IAAI,EAAE;AADH,KAzBO;AA4BXS,IAAAA,KAAK,EAAE;AACNT,MAAAA,IAAI,EAAE;AADA,KA5BI;AA+BXU,IAAAA,KAAK,EAAE;AACNV,MAAAA,IAAI,EAAE;AADA,KA/BI;AAkCXW,IAAAA,MAAM,EAAE;AACPX,MAAAA,IAAI,EAAE;AADC;AAlCG,GADF;;AAuCVY,EAAAA,IAAI,CAAE;AAAEd,IAAAA;AAAF,GAAF,EAAmB;AACtB,UAAM;AAAEC,MAAAA,GAAF;AAAOK,MAAAA,GAAP;AAAYE,MAAAA,OAAZ;AAAqBG,MAAAA,KAArB;AAA4BF,MAAAA,IAA5B;AAAkCG,MAAAA,KAAlC;AAAyCC,MAAAA,MAAzC;AAAiDH,MAAAA;AAAjD,QACLV,UADD;AAGA,UAAMgB,KAAK,GACV;AACC,MAAA,GAAG,EAAGf,GADP;AAEC,MAAA,GAAG,EAAGK,GAFP;AAGC,MAAA,SAAS,EAAGI,EAAE,GAAI,YAAYA,EAAI,EAApB,GAAwB,IAHvC;AAIC,MAAA,KAAK,EAAGE,KAJT;AAKC,MAAA,MAAM,EAAGC;AALV,MADD;AAUA,WACC;AAAQ,MAAA,SAAS,EAAGF,KAAK,GAAI,QAAQA,KAAO,EAAnB,GAAuB;AAAhD,OACGF,IAAI,GAAG;AAAG,MAAA,IAAI,EAAGA;AAAV,OAAmBO,KAAnB,CAAH,GAAoCA,KAD3C,EAEG,CAAEG,sBAASC,OAAT,CAAkBZ,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MAHF,CADD;AAQA;;AA7DS,CAAX;AAgEA;AACA;AACA;AACA;AACA;;AACA,MAAMc,EAAE,GAAG;AACVtB,EAAAA,UAAU,EAAE;AACXC,IAAAA,GAAG,EAAE;AACJC,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE;AAJP,KADM;AAOXC,IAAAA,GAAG,EAAE;AACJJ,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE,KAJP;AAKJE,MAAAA,OAAO,EAAE;AALL,KAPM;AAcXC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,OADE;AAERC,MAAAA,MAAM,EAAE,UAFA;AAGRC,MAAAA,QAAQ,EAAE;AAHF,KAdE;AAmBXK,IAAAA,IAAI,EAAE;AACLP,MAAAA,IAAI,EAAE,QADD;AAELC,MAAAA,MAAM,EAAE,WAFH;AAGLC,MAAAA,QAAQ,EAAE,YAHL;AAILC,MAAAA,SAAS,EAAE;AAJN,KAnBK;AAyBXK,IAAAA,EAAE,EAAE;AACHR,MAAAA,IAAI,EAAE;AADH,KAzBO;AA4BXS,IAAAA,KAAK,EAAE;AACNT,MAAAA,IAAI,EAAE;AADA,KA5BI;AA+BXU,IAAAA,KAAK,EAAE;AACNV,MAAAA,IAAI,EAAE;AADA,KA/BI;AAkCXW,IAAAA,MAAM,EAAE;AACPX,MAAAA,IAAI,EAAE;AADC,KAlCG;AAqCXqB,IAAAA,eAAe,EAAE;AAChBrB,MAAAA,IAAI,EAAE,QADU;AAEhBK,MAAAA,OAAO,EAAE;AAFO;AArCN,GADF;;AA2CVO,EAAAA,IAAI,CAAE;AAAEd,IAAAA;AAAF,GAAF,EAAmB;AACtB,UAAM;AAAEC,MAAAA,GAAF;AAAOK,MAAAA,GAAP;AAAYE,MAAAA,OAAZ;AAAqBG,MAAAA,KAArB;AAA4BF,MAAAA,IAA5B;AAAkCG,MAAAA,KAAlC;AAAyCC,MAAAA,MAAzC;AAAiDH,MAAAA;AAAjD,QACLV,UADD;AAGA,UAAMwB,OAAO,GAAG,yBAAY;AAC3B,OAAG,QAAQb,KAAO,EAAlB,GAAuBA,KADI;AAE3B,oBAAcC,KAAK,IAAIC;AAFI,KAAZ,CAAhB;AAKA,UAAMG,KAAK,GACV;AACC,MAAA,GAAG,EAAGf,GADP;AAEC,MAAA,GAAG,EAAGK,GAFP;AAGC,MAAA,SAAS,EAAGI,EAAE,GAAI,YAAYA,EAAI,EAApB,GAAwB,IAHvC;AAIC,MAAA,KAAK,EAAGE,KAJT;AAKC,MAAA,MAAM,EAAGC;AALV,MADD;AAUA,WACC;AAAQ,MAAA,SAAS,EAAGW;AAApB,OACGf,IAAI,GAAG;AAAG,MAAA,IAAI,EAAGA;AAAV,OAAmBO,KAAnB,CAAH,GAAoCA,KAD3C,EAEG,CAAEG,sBAASC,OAAT,CAAkBZ,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MAHF,CADD;AAQA;;AAtES,CAAX;AAyEA;AACA;AACA;AACA;AACA;;AACA,MAAMiB,EAAE,GAAG;AACVzB,EAAAA,UAAU,EAAE;AACXW,IAAAA,KAAK,EAAE;AACNT,MAAAA,IAAI,EAAE;AADA,KADI;AAIXD,IAAAA,GAAG,EAAE;AACJC,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE;AAJP,KAJM;AAUXC,IAAAA,GAAG,EAAE;AACJJ,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE,KAJP;AAKJE,MAAAA,OAAO,EAAE;AALL,KAVM;AAiBXC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,QADE;AAERC,MAAAA,MAAM,EAAE,MAFA;AAGRC,MAAAA,QAAQ,EAAE;AAHF,KAjBE;AAsBXsB,IAAAA,KAAK,EAAE;AACNxB,MAAAA,IAAI,EAAE,QADA;AAENC,MAAAA,MAAM,EAAE,WAFF;AAGNC,MAAAA,QAAQ,EAAE,KAHJ;AAINC,MAAAA,SAAS,EAAE;AAJL,KAtBI;AA4BXI,IAAAA,IAAI,EAAE;AACLP,MAAAA,IAAI,EAAE,QADD;AAELC,MAAAA,MAAM,EAAE,WAFH;AAGLC,MAAAA,QAAQ,EAAE,YAHL;AAILC,MAAAA,SAAS,EAAE;AAJN,KA5BK;AAkCXsB,IAAAA,GAAG,EAAE;AACJzB,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,YAHN;AAIJC,MAAAA,SAAS,EAAE;AAJP,KAlCM;AAwCXuB,IAAAA,SAAS,EAAE;AACV1B,MAAAA,IAAI,EAAE,QADI;AAEVC,MAAAA,MAAM,EAAE,WAFE;AAGVC,MAAAA,QAAQ,EAAE,YAHA;AAIVC,MAAAA,SAAS,EAAE;AAJD,KAxCA;AA8CXK,IAAAA,EAAE,EAAE;AACHR,MAAAA,IAAI,EAAE;AADH,KA9CO;AAiDXU,IAAAA,KAAK,EAAE;AACNV,MAAAA,IAAI,EAAE;AADA,KAjDI;AAoDXW,IAAAA,MAAM,EAAE;AACPX,MAAAA,IAAI,EAAE;AADC,KApDG;AAuDX2B,IAAAA,QAAQ,EAAE;AACT3B,MAAAA,IAAI,EAAE;AADG,KAvDC;AA0DXqB,IAAAA,eAAe,EAAE;AAChBrB,MAAAA,IAAI,EAAE;AADU,KA1DN;AA6DX4B,IAAAA,UAAU,EAAE;AACX5B,MAAAA,IAAI,EAAE,QADK;AAEXC,MAAAA,MAAM,EAAE,WAFG;AAGXC,MAAAA,QAAQ,EAAE,YAHC;AAIXC,MAAAA,SAAS,EAAE;AAJA;AA7DD,GADF;AAqEV0B,EAAAA,QAAQ,EAAE;AACTC,IAAAA,MAAM,EAAE;AADC,GArEA;;AAwEVlB,EAAAA,IAAI,CAAE;AAAEd,IAAAA;AAAF,GAAF,EAAmB;AACtB,UAAM;AACLC,MAAAA,GADK;AAELK,MAAAA,GAFK;AAGLE,MAAAA,OAHK;AAILG,MAAAA,KAJK;AAKLF,MAAAA,IALK;AAMLkB,MAAAA,GANK;AAOLC,MAAAA,SAPK;AAQLhB,MAAAA,KARK;AASLC,MAAAA,MATK;AAULH,MAAAA,EAVK;AAWLoB,MAAAA,UAXK;AAYLD,MAAAA,QAZK;AAaLH,MAAAA;AAbK,QAcF1B,UAdJ;AAgBA,UAAMiC,MAAM,GAAG,CAAEN,GAAF,GAAQO,SAAR,GAAoBP,GAAnC;AAEA,UAAMH,OAAO,GAAG,yBAAY;AAC3B,OAAG,QAAQb,KAAO,EAAlB,GAAuBA,KADI;AAE3B,OAAG,QAAQkB,QAAU,EAArB,GAA0BA,QAFC;AAG3B,oBAAcjB,KAAK,IAAIC;AAHI,KAAZ,CAAhB;AAMA,UAAMG,KAAK,GACV;AACC,MAAA,GAAG,EAAGf,GADP;AAEC,MAAA,GAAG,EAAGK,GAFP;AAGC,MAAA,SAAS,EAAGI,EAAE,GAAI,YAAYA,EAAI,EAApB,GAAwB,IAHvC;AAIC,MAAA,KAAK,EAAGE,KAJT;AAKC,MAAA,MAAM,EAAGC,MALV;AAMC,MAAA,KAAK,EAAGa;AANT,MADD;AAWA,UAAMS,MAAM,GACX,qDACG1B,IAAI,GACL;AACC,MAAA,SAAS,EAAGmB,SADb;AAEC,MAAA,IAAI,EAAGnB,IAFR;AAGC,MAAA,MAAM,EAAGqB,UAHV;AAIC,MAAA,GAAG,EAAGG;AAJP,OAMGjB,KANH,CADK,GAULA,KAXF,EAaG,CAAEG,sBAASC,OAAT,CAAkBZ,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MAdF,CADD;;AAoBA,QAAK,WAAWG,KAAX,IAAoB,YAAYA,KAAhC,IAAyC,aAAaA,KAA3D,EAAmE;AAClE,aACC,wCAAUyB,2BAActB,IAAd;AAAV,SACC;AAAQ,QAAA,SAAS,EAAGU;AAApB,SAAgCW,MAAhC,CADD,CADD;AAKA;;AAED,WACC,2CAAaC,2BAActB,IAAd,CAAoB;AAAEuB,QAAAA,SAAS,EAAEb;AAAb,OAApB;AAAb,OACGW,MADH,CADD;AAKA;;AA7IS,CAAX;AAgJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMG,EAAE,GAAG;AACVtC,EAAAA,UAAU,EAAE;AACXW,IAAAA,KAAK,EAAE;AACNT,MAAAA,IAAI,EAAE;AADA,KADI;AAIXD,IAAAA,GAAG,EAAE;AACJC,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE;AAJP,KAJM;AAUXC,IAAAA,GAAG,EAAE;AACJJ,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,KAHN;AAIJC,MAAAA,SAAS,EAAE,KAJP;AAKJE,MAAAA,OAAO,EAAE;AALL,KAVM;AAiBXC,IAAAA,OAAO,EAAE;AACRN,MAAAA,IAAI,EAAE,QADE;AAERC,MAAAA,MAAM,EAAE,MAFA;AAGRC,MAAAA,QAAQ,EAAE;AAHF,KAjBE;AAsBXsB,IAAAA,KAAK,EAAE;AACNxB,MAAAA,IAAI,EAAE,QADA;AAENC,MAAAA,MAAM,EAAE,WAFF;AAGNC,MAAAA,QAAQ,EAAE,KAHJ;AAINC,MAAAA,SAAS,EAAE;AAJL,KAtBI;AA4BXI,IAAAA,IAAI,EAAE;AACLP,MAAAA,IAAI,EAAE,QADD;AAELC,MAAAA,MAAM,EAAE,WAFH;AAGLC,MAAAA,QAAQ,EAAE,YAHL;AAILC,MAAAA,SAAS,EAAE;AAJN,KA5BK;AAkCXsB,IAAAA,GAAG,EAAE;AACJzB,MAAAA,IAAI,EAAE,QADF;AAEJC,MAAAA,MAAM,EAAE,WAFJ;AAGJC,MAAAA,QAAQ,EAAE,YAHN;AAIJC,MAAAA,SAAS,EAAE;AAJP,KAlCM;AAwCXuB,IAAAA,SAAS,EAAE;AACV1B,MAAAA,IAAI,EAAE,QADI;AAEVC,MAAAA,MAAM,EAAE,WAFE;AAGVC,MAAAA,QAAQ,EAAE,YAHA;AAIVC,MAAAA,SAAS,EAAE;AAJD,KAxCA;AA8CXK,IAAAA,EAAE,EAAE;AACHR,MAAAA,IAAI,EAAE;AADH,KA9CO;AAiDXU,IAAAA,KAAK,EAAE;AACNV,MAAAA,IAAI,EAAE;AADA,KAjDI;AAoDXW,IAAAA,MAAM,EAAE;AACPX,MAAAA,IAAI,EAAE;AADC,KApDG;AAuDX2B,IAAAA,QAAQ,EAAE;AACT3B,MAAAA,IAAI,EAAE;AADG,KAvDC;AA0DXqB,IAAAA,eAAe,EAAE;AAChBrB,MAAAA,IAAI,EAAE;AADU,KA1DN;AA6DX4B,IAAAA,UAAU,EAAE;AACX5B,MAAAA,IAAI,EAAE,QADK;AAEXC,MAAAA,MAAM,EAAE,WAFG;AAGXC,MAAAA,QAAQ,EAAE,YAHC;AAIXC,MAAAA,SAAS,EAAE;AAJA;AA7DD,GADF;AAqEV0B,EAAAA,QAAQ,EAAE;AACTC,IAAAA,MAAM,EAAE,IADC;AAETO,IAAAA,KAAK,EAAE;AACNC,MAAAA,qBAAqB,EAAE,KADjB;AAENC,MAAAA,IAAI,EAAE,KAFA;AAGNC,MAAAA,UAAU,EAAE;AAHN,KAFE;AAOTC,IAAAA,oBAAoB,EAAE;AACrBC,MAAAA,MAAM,EAAE,IADa;AAErBC,MAAAA,6BAA6B,EAAE;AAC9BD,QAAAA,MAAM,EAAE;AADsB;AAFV,KAPb;AAaTE,IAAAA,mBAAmB,EAAE;AACpBC,MAAAA,OAAO,EAAE;AACRC,QAAAA,MAAM,EAAE;AADA;AADW;AAbZ,GArEA;;AAwFVlC,EAAAA,IAAI,CAAE;AAAEd,IAAAA;AAAF,GAAF,EAAmB;AACtB,UAAM;AACLC,MAAAA,GADK;AAELK,MAAAA,GAFK;AAGLE,MAAAA,OAHK;AAILG,MAAAA,KAJK;AAKLF,MAAAA,IALK;AAMLkB,MAAAA,GANK;AAOLC,MAAAA,SAPK;AAQLhB,MAAAA,KARK;AASLC,MAAAA,MATK;AAULH,MAAAA,EAVK;AAWLoB,MAAAA,UAXK;AAYLD,MAAAA,QAZK;AAaLH,MAAAA;AAbK,QAcF1B,UAdJ;AAgBA,UAAMiC,MAAM,GAAG,CAAEN,GAAF,GAAQO,SAAR,GAAoBP,GAAnC;AAEA,UAAMH,OAAO,GAAG,yBAAY;AAC3B,OAAG,QAAQb,KAAO,EAAlB,GAAuBA,KADI;AAE3B,OAAG,QAAQkB,QAAU,EAArB,GAA0BA,QAFC;AAG3B,oBAAcjB,KAAK,IAAIC;AAHI,KAAZ,CAAhB;AAMA,UAAMG,KAAK,GACV;AACC,MAAA,GAAG,EAAGf,GADP;AAEC,MAAA,GAAG,EAAGK,GAFP;AAGC,MAAA,SAAS,EAAGI,EAAE,GAAI,YAAYA,EAAI,EAApB,GAAwB,IAHvC;AAIC,MAAA,KAAK,EAAGE,KAJT;AAKC,MAAA,MAAM,EAAGC,MALV;AAMC,MAAA,KAAK,EAAGa;AANT,MADD;AAWA,UAAMS,MAAM,GACX,qDACG1B,IAAI,GACL;AACC,MAAA,SAAS,EAAGmB,SADb;AAEC,MAAA,IAAI,EAAGnB,IAFR;AAGC,MAAA,MAAM,EAAGqB,UAHV;AAIC,MAAA,GAAG,EAAGG;AAJP,OAMGjB,KANH,CADK,GAULA,KAXF,EAaG,CAAEG,sBAASC,OAAT,CAAkBZ,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AAAkB,MAAA,OAAO,EAAC,YAA1B;AAAuC,MAAA,KAAK,EAAGA;AAA/C,MAdF,CADD;AAoBA,WACC,2CAAa4B,2BAActB,IAAd,CAAoB;AAAEuB,QAAAA,SAAS,EAAEb;AAAb,OAApB;AAAb,OACGW,MADH,CADD;AAKA;;AArJS,CAAX;AAwJA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMc,EAAE,GAAG;AACVnC,EAAAA,IAAI,CAAE;AAAEd,IAAAA;AAAF,GAAF,EAAmB;AACtB,UAAM;AACLC,MAAAA,GADK;AAELK,MAAAA,GAFK;AAGLE,MAAAA,OAHK;AAILG,MAAAA,KAJK;AAKLF,MAAAA,IALK;AAMLkB,MAAAA,GANK;AAOLC,MAAAA,SAPK;AAQLhB,MAAAA,KARK;AASLC,MAAAA,MATK;AAULqC,MAAAA,WAVK;AAWLC,MAAAA,KAXK;AAYLzC,MAAAA,EAZK;AAaLoB,MAAAA,UAbK;AAcLD,MAAAA,QAdK;AAeLH,MAAAA;AAfK,QAgBF1B,UAhBJ;AAkBA,UAAMiC,MAAM,GAAG,CAAEN,GAAF,GAAQO,SAAR,GAAoBP,GAAnC;AACA,UAAMyB,WAAW,GAAG,oDAA2BpD,UAA3B,CAApB;AAEA,UAAMwB,OAAO,GAAG,yBAAY;AAC3B,OAAG,QAAQb,KAAO,EAAlB,GAAuBA,KADI;AAE3B,OAAG,QAAQkB,QAAU,EAArB,GAA0BA,QAFC;AAG3B,oBAAcjB,KAAK,IAAIC,MAHI;AAI3B,2BACC,CAAC,CAAEuC,WAAW,CAACf,SAAf,IACEe,WAAW,CAACC,KAAZ,IACDC,MAAM,CAACC,IAAP,CAAaH,WAAW,CAACC,KAAzB,EAAiCG,MAAjC,GAA0C;AAPjB,KAAZ,CAAhB;AAUA,UAAMC,YAAY,GAAG,yBAAYL,WAAW,CAACf,SAAxB,EAAmC;AACvD,OAAG,YAAY3B,EAAI,EAAnB,GAAwB,CAAC,CAAEA;AAD4B,KAAnC,CAArB;AAIA,UAAMM,KAAK,GACV;AACC,MAAA,GAAG,EAAGf,GADP;AAEC,MAAA,GAAG,EAAGK,GAFP;AAGC,MAAA,SAAS,EAAGmD,YAAY,IAAIvB,SAH7B;AAIC,MAAA,KAAK,EAAG,EACP,GAAGkB,WAAW,CAACC,KADR;AAEPH,QAAAA,WAFO;AAGPQ,QAAAA,SAAS,EAAEP;AAHJ,OAJT;AASC,MAAA,KAAK,EAAGvC,KATT;AAUC,MAAA,MAAM,EAAGC,MAVV;AAWC,MAAA,KAAK,EAAGa;AAXT,MADD;AAgBA,UAAMS,MAAM,GACX,qDACG1B,IAAI,GACL;AACC,MAAA,SAAS,EAAGmB,SADb;AAEC,MAAA,IAAI,EAAGnB,IAFR;AAGC,MAAA,MAAM,EAAGqB,UAHV;AAIC,MAAA,GAAG,EAAGG;AAJP,OAMGjB,KANH,CADK,GAULA,KAXF,EAaG,CAAEG,sBAASC,OAAT,CAAkBZ,OAAlB,CAAF,IACD,4BAAC,qBAAD,CAAU,OAAV;AACC,MAAA,SAAS,EAAG,oDAA2B,SAA3B,CADb;AAEC,MAAA,OAAO,EAAC,YAFT;AAGC,MAAA,KAAK,EAAGA;AAHT,MAdF,CADD;AAwBA,WACC,2CAAa4B,2BAActB,IAAd,CAAoB;AAAEuB,QAAAA,SAAS,EAAEb;AAAb,OAApB;AAAb,OACGW,MADH,CADD;AAKA;;AAlFS,CAAX;eAqFe,CAAEc,EAAF,EAAMX,EAAN,EAAUb,EAAV,EAAcH,EAAd,EAAkBD,EAAlB,EAAsBtB,EAAtB,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName as getBorderClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Deprecation for adding the `wp-image-${id}` class to the image block for\n * responsive images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/4898\n */\nconst v1 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height } = attributes;\n\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\tconst image = <img src={ url } alt={ alt } { ...extraImageProps } />;\n\n\t\tlet figureStyle = {};\n\n\t\tif ( width ) {\n\t\t\tfigureStyle = { width };\n\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t}\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ align ? `align${ align }` : null }\n\t\t\t\tstyle={ figureStyle }\n\t\t\t>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for adding the `is-resized` class to the image block to fix\n * captions on resized images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/6496\n */\nconst v2 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\tattributes;\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure className={ align ? `align${ align }` : null }>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for image floats including a wrapping div.\n *\n * @see https://github.com/WordPress/gutenberg/pull/7721\n */\nconst v3 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\tattributes;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure className={ classes }>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for removing the outer div wrapper around aligned images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/38657\n */\nconst v4 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t<figure className={ classes }>{ figure }</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for moving existing border radius styles onto the inner img\n * element where new border block support styles must be applied.\n * It will also add a new `.has-custom-border` class for existing blocks\n * with border radii set. This class is required to improve caption position\n * and styling when an image within a gallery has a custom border or\n * rounded corners.\n *\n * @see https://github.com/WordPress/gutenberg/pull/31366\n */\nconst v5 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\t__experimentalDuotone: 'img',\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalStyle: {\n\t\t\tspacing: {\n\t\t\t\tmargin: '0 0 1em 0',\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for adding width and height as style rules on the inner img.\n * It also updates the widht and height attributes to be strings instead of numbers.\n *\n * @see https://github.com/WordPress/gutenberg/pull/31366\n */\nconst v6 = {\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = classnames( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t} }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ getBorderClassesAndStyles( 'caption' ) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nexport default [ v6, v5, v4, v3, v2, v1 ];\n"]}
@@ -194,8 +194,6 @@ function ImageEdit({
194
194
 
195
195
  if (!media.id || media.id !== id) {
196
196
  additionalAttributes = {
197
- width: undefined,
198
- height: undefined,
199
197
  // Fallback to size "full" if there's no default image size.
200
198
  // It means the image is smaller, and the block will use a full-size URL.
201
199
  sizeSlug: hasDefaultSize(media, imageDefaultSize) ? imageDefaultSize : 'full'
@@ -261,8 +259,6 @@ function ImageEdit({
261
259
  setAttributes({
262
260
  url: newURL,
263
261
  id: undefined,
264
- width: undefined,
265
- height: undefined,
266
262
  sizeSlug: imageDefaultSize
267
263
  });
268
264
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/image/edit.js"],"names":["useBlockEditingMode","blockEditorPrivateApis","pickRelevantMediaFiles","image","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","select","getSettings","blockEditorStore","settings","blockEditingMode","createErrorNotice","noticesStore","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","ALLOWED_MEDIA_TYPES","onError","isExternal","mediaPreview","borderProps","classes","style","keys","length","blockProps","placeholder","content","icon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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\tprivateApis as blockEditorPrivateApis,\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';\nimport { unlock } from '../lock-unlock';\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\nconst { useBlockEditingMode } = unlock( blockEditorPrivateApis );\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 } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t};\n\t}, [] );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\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 \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\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 ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t) }\n\t\t\t\tstyle={ isSelected ? undefined : borderProps.style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\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\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && blockEditingMode === 'default' && (\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":["useBlockEditingMode","blockEditorPrivateApis","pickRelevantMediaFiles","image","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","select","getSettings","blockEditorStore","settings","blockEditingMode","createErrorNotice","noticesStore","onUploadError","message","type","src","undefined","onSelectImage","media","title","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","defaultProps","link","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","href","onSelectURL","newURL","updateAlignment","nextAlign","extraUpdatedAttributes","isTemp","file","filesList","onFileChange","img","allowedTypes","ALLOWED_MEDIA_TYPES","onError","isExternal","mediaPreview","borderProps","classes","style","keys","length","blockProps","placeholder","content","icon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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\tprivateApis as blockEditorPrivateApis,\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';\nimport { unlock } from '../lock-unlock';\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\nconst { useBlockEditingMode } = unlock( blockEditorPrivateApis );\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 } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\timageDefaultSize: settings.imageDefaultSize,\n\t\t\tmediaUpload: settings.mediaUpload,\n\t\t};\n\t}, [] );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t} );\n\t\tsetTemporaryURL( undefined );\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetTemporaryURL();\n\n\t\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\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 \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: 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 ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t) }\n\t\t\t\tstyle={ isSelected ? undefined : borderProps.style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\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\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! url && blockEditingMode === 'default' && (\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"]}
@@ -31,6 +31,8 @@ var _notices = require("@wordpress/notices");
31
31
 
32
32
  var _coreData = require("@wordpress/core-data");
33
33
 
34
+ var _lockUnlock = require("../lock-unlock");
35
+
34
36
  var _util = require("../embed/util");
35
37
 
36
38
  var _useClientWidth = _interopRequireDefault(require("./use-client-width"));
@@ -39,6 +41,8 @@ var _edit = require("./edit");
39
41
 
40
42
  var _constants = require("./constants");
41
43
 
44
+ var _utils = require("./utils");
45
+
42
46
  /**
43
47
  * WordPress dependencies
44
48
  */
@@ -50,6 +54,20 @@ var _constants = require("./constants");
50
54
  /**
51
55
  * Module constants
52
56
  */
57
+ const {
58
+ DimensionsTool,
59
+ ResolutionTool
60
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
61
+ const scaleOptions = [{
62
+ value: 'cover',
63
+ label: (0, _i18n._x)('Cover', 'Scale option for dimensions control'),
64
+ help: (0, _i18n.__)('Image covers the space evenly.')
65
+ }, {
66
+ value: 'contain',
67
+ label: (0, _i18n._x)('Contain', 'Scale option for dimensions control'),
68
+ help: (0, _i18n.__)('Image is contained without distortion.')
69
+ }];
70
+
53
71
  function Image({
54
72
  temporaryURL,
55
73
  attributes,
@@ -78,6 +96,8 @@ function Image({
78
96
  title,
79
97
  width,
80
98
  height,
99
+ aspectRatio,
100
+ scale,
81
101
  linkTarget,
82
102
  sizeSlug
83
103
  } = attributes;
@@ -250,8 +270,6 @@ function Image({
250
270
 
251
271
  setAttributes({
252
272
  url: newUrl,
253
- width: undefined,
254
- height: undefined,
255
273
  sizeSlug: newSizeSlug
256
274
  });
257
275
  }
@@ -308,8 +326,14 @@ function Image({
308
326
 
309
327
  function switchToCover() {
310
328
  replaceBlocks(clientId, (0, _blocks.switchToBlockType)(getBlock(clientId), 'core/cover'));
311
- }
329
+ } // TODO: Can allow more units after figuring out how they should interact
330
+ // with the ResizableBox and ImageEditor components. Calculations later on
331
+ // for those components are currently assuming px units.
332
+
312
333
 
334
+ const dimensionsUnitsOptions = (0, _components.__experimentalUseCustomUnits)({
335
+ availableUnits: ['px']
336
+ });
313
337
  const controls = (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.BlockControls, {
314
338
  group: "block"
315
339
  }, hasNonContentControls && (0, _element.createElement)(_blockEditor.BlockAlignmentControl, {
@@ -359,27 +383,55 @@ function Image({
359
383
  onClick: uploadExternal,
360
384
  icon: _icons.upload,
361
385
  label: (0, _i18n.__)('Upload external image')
362
- }))), (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
363
- title: (0, _i18n.__)('Settings')
364
- }, !multiImageSelection && (0, _element.createElement)(_components.TextareaControl, {
365
- __nextHasNoMarginBottom: true,
386
+ }))), (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.__experimentalToolsPanel, {
387
+ label: (0, _i18n.__)('Settings'),
388
+ resetAll: () => setAttributes({
389
+ width: undefined,
390
+ height: undefined,
391
+ scale: undefined,
392
+ aspectRatio: undefined
393
+ })
394
+ }, !multiImageSelection && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
395
+ label: (0, _i18n.__)('Alternative text'),
396
+ isShownByDefault: true,
397
+ hasValue: () => alt !== '',
398
+ onDeselect: () => setAttributes({
399
+ alt: undefined
400
+ })
401
+ }, (0, _element.createElement)(_components.TextareaControl, {
366
402
  label: (0, _i18n.__)('Alternative text'),
367
403
  value: alt,
368
404
  onChange: updateAlt,
369
405
  help: (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.ExternalLink, {
370
406
  href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
371
- }, (0, _i18n.__)('Describe the purpose of the image.')), (0, _element.createElement)("br", null), (0, _i18n.__)('Leave empty if decorative.'))
372
- }), (0, _element.createElement)(_blockEditor.__experimentalImageSizeControl, {
373
- onChangeImage: updateImage,
374
- onChange: value => setAttributes(value),
375
- slug: sizeSlug,
376
- width: width,
377
- height: height,
378
- imageSizeOptions: imageSizeOptions,
379
- isResizable: isResizable,
380
- imageWidth: naturalWidth,
381
- imageHeight: naturalHeight,
382
- imageSizeHelp: (0, _i18n.__)('Select the size of the source image.')
407
+ }, (0, _i18n.__)('Describe the purpose of the image.')), (0, _element.createElement)("br", null), (0, _i18n.__)('Leave empty if decorative.')),
408
+ __nextHasNoMarginBottom: true
409
+ })), (0, _element.createElement)(DimensionsTool, {
410
+ value: {
411
+ width: width && `${width}px`,
412
+ height: height && `${height}px`,
413
+ scale,
414
+ aspectRatio
415
+ },
416
+ onChange: newValue => {
417
+ // Rebuilding the object forces setting `undefined`
418
+ // for values that are removed since setAttributes
419
+ // doesn't do anything with keys that aren't set.
420
+ setAttributes({
421
+ width: newValue.width && parseInt(newValue.width, 10),
422
+ height: newValue.height && parseInt(newValue.height, 10),
423
+ scale: newValue.scale,
424
+ aspectRatio: newValue.aspectRatio
425
+ });
426
+ },
427
+ defaultScale: "cover",
428
+ defaultAspectRatio: "auto",
429
+ scaleOptions: scaleOptions,
430
+ unitsOptions: dimensionsUnitsOptions
431
+ }), (0, _element.createElement)(ResolutionTool, {
432
+ value: sizeSlug,
433
+ onChange: updateImage,
434
+ options: imageSizeOptions
383
435
  }))), (0, _element.createElement)(_blockEditor.InspectorControls, {
384
436
  group: "advanced"
385
437
  }, (0, _element.createElement)(_components.TextControl, {
@@ -406,7 +458,6 @@ function Image({
406
458
 
407
459
  const borderProps = (0, _blockEditor.__experimentalUseBorderProps)(attributes);
408
460
  const isRounded = attributes.className?.includes('is-style-rounded');
409
- const hasCustomBorder = !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0;
410
461
  let img = // Disable reason: Image itself is not meant to be interactive, but
411
462
  // should direct focus to block.
412
463
 
@@ -423,22 +474,17 @@ function Image({
423
474
  },
424
475
  ref: imageRef,
425
476
  className: borderProps.className,
426
- style: borderProps.style
477
+ style: {
478
+ width: width && height || aspectRatio ? '100%' : 'inherit',
479
+ height: width && height || aspectRatio ? '100%' : 'inherit',
480
+ objectFit: scale,
481
+ ...borderProps.style
482
+ }
427
483
  }), temporaryURL && (0, _element.createElement)(_components.Spinner, null))
428
484
  /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
429
- ;
430
- let imageWidthWithinContainer;
431
- let imageHeightWithinContainer;
432
-
433
- if (clientWidth && naturalWidth && naturalHeight) {
434
- const exceedMaxWidth = naturalWidth > clientWidth;
435
- const ratio = naturalHeight / naturalWidth;
436
- imageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;
437
- imageHeightWithinContainer = exceedMaxWidth ? clientWidth * ratio : naturalHeight;
438
- } // clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0
485
+ ; // clientWidth needs to be a number for the image Cropper to work, but sometimes it's 0
439
486
  // So we try using the imageRef width first and fallback to clientWidth.
440
487
 
441
-
442
488
  const fallbackClientWidth = imageRef.current?.width || clientWidth;
443
489
 
444
490
  if (canEditImage && isEditingImage) {
@@ -456,17 +502,18 @@ function Image({
456
502
  },
457
503
  borderProps: isRounded ? undefined : borderProps
458
504
  });
459
- } else if (!isResizable || !imageWidthWithinContainer) {
505
+ } else if (!isResizable) {
460
506
  img = (0, _element.createElement)("div", {
461
507
  style: {
462
508
  width,
463
- height
509
+ height,
510
+ aspectRatio
464
511
  }
465
512
  }, img);
466
513
  } else {
467
- const currentWidth = width || imageWidthWithinContainer;
468
- const currentHeight = height || imageHeightWithinContainer;
469
- const ratio = naturalWidth / naturalHeight;
514
+ const ratio = aspectRatio && (0, _utils.evalAspectRatio)(aspectRatio) || width && height && width / height || naturalWidth / naturalHeight || 1;
515
+ const currentWidth = !width && height ? height * ratio : width;
516
+ const currentHeight = !height && width ? width / ratio : height;
470
517
  const minWidth = naturalWidth < naturalHeight ? _constants.MIN_SIZE : _constants.MIN_SIZE * ratio;
471
518
  const minHeight = naturalHeight < naturalWidth ? _constants.MIN_SIZE : _constants.MIN_SIZE / ratio; // With the current implementation of ResizableBox, an image needs an
472
519
  // explicit pixel value for the max-width. In absence of being able to
@@ -510,16 +557,21 @@ function Image({
510
557
 
511
558
 
512
559
  img = (0, _element.createElement)(_components.ResizableBox, {
560
+ style: {
561
+ display: 'block',
562
+ objectFit: scale,
563
+ aspectRatio: !width && !height && aspectRatio ? aspectRatio : undefined
564
+ },
513
565
  size: {
514
- width: width !== null && width !== void 0 ? width : 'auto',
515
- height: height && !hasCustomBorder ? height : 'auto'
566
+ width: currentWidth !== null && currentWidth !== void 0 ? currentWidth : 'auto',
567
+ height: currentHeight !== null && currentHeight !== void 0 ? currentHeight : 'auto'
516
568
  },
517
569
  showHandle: isSelected,
518
570
  minWidth: minWidth,
519
571
  maxWidth: maxWidthBuffer,
520
572
  minHeight: minHeight,
521
573
  maxHeight: maxWidthBuffer / ratio,
522
- lockAspectRatio: true,
574
+ lockAspectRatio: ratio,
523
575
  enable: {
524
576
  top: false,
525
577
  right: showRightHandle,
@@ -527,11 +579,12 @@ function Image({
527
579
  left: showLeftHandle
528
580
  },
529
581
  onResizeStart: onResizeStart,
530
- onResizeStop: (event, direction, elt, delta) => {
582
+ onResizeStop: (event, direction, elt) => {
531
583
  onResizeStop();
532
584
  setAttributes({
533
- width: parseInt(currentWidth + delta.width, 10),
534
- height: parseInt(currentHeight + delta.height, 10)
585
+ width: elt.offsetWidth,
586
+ height: elt.offsetHeight,
587
+ aspectRatio: undefined
535
588
  });
536
589
  },
537
590
  resizeRatio: align === 'center' ? 2 : 1