@wordpress/block-library 9.6.0 → 9.7.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 (313) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/audio/edit.js +2 -1
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/block/edit.js +3 -5
  5. package/build/block/edit.js.map +1 -1
  6. package/build/button/edit.js +1 -1
  7. package/build/button/edit.js.map +1 -1
  8. package/build/categories/index.js +1 -0
  9. package/build/categories/index.js.map +1 -1
  10. package/build/comment-edit-link/index.js +13 -2
  11. package/build/comment-edit-link/index.js.map +1 -1
  12. package/build/comment-reply-link/index.js +13 -2
  13. package/build/comment-reply-link/index.js.map +1 -1
  14. package/build/comments/edit/comments-legacy.js +4 -1
  15. package/build/comments/edit/comments-legacy.js.map +1 -1
  16. package/build/cover/edit/block-controls.js +4 -2
  17. package/build/cover/edit/block-controls.js.map +1 -1
  18. package/build/cover/edit/index.js +2 -1
  19. package/build/cover/edit/index.js.map +1 -1
  20. package/build/cover/edit/inspector-controls.js +4 -12
  21. package/build/cover/edit/inspector-controls.js.map +1 -1
  22. package/build/details/index.js +3 -1
  23. package/build/details/index.js.map +1 -1
  24. package/build/details/transforms.js +24 -0
  25. package/build/details/transforms.js.map +1 -0
  26. package/build/embed/embed-placeholder.js +8 -2
  27. package/build/embed/embed-placeholder.js.map +1 -1
  28. package/build/file/edit.js +12 -1
  29. package/build/file/edit.js.map +1 -1
  30. package/build/freeform/edit.js +4 -4
  31. package/build/freeform/edit.js.map +1 -1
  32. package/build/freeform/modal.js +12 -3
  33. package/build/freeform/modal.js.map +1 -1
  34. package/build/home-link/edit.js +3 -9
  35. package/build/home-link/edit.js.map +1 -1
  36. package/build/image/edit.js +44 -34
  37. package/build/image/edit.js.map +1 -1
  38. package/build/image/image.js +22 -10
  39. package/build/image/image.js.map +1 -1
  40. package/build/media-text/deprecated.js +144 -3
  41. package/build/media-text/deprecated.js.map +1 -1
  42. package/build/media-text/edit.js +5 -5
  43. package/build/media-text/edit.js.map +1 -1
  44. package/build/media-text/image-fill.js +12 -0
  45. package/build/media-text/image-fill.js.map +1 -0
  46. package/build/media-text/media-container.js +21 -18
  47. package/build/media-text/media-container.js.map +1 -1
  48. package/build/media-text/media-container.native.js +0 -7
  49. package/build/media-text/media-container.native.js.map +1 -1
  50. package/build/media-text/save.js +5 -6
  51. package/build/media-text/save.js.map +1 -1
  52. package/build/missing/edit.js +6 -3
  53. package/build/missing/edit.js.map +1 -1
  54. package/build/navigation/edit/deleted-navigation-warning.js +4 -1
  55. package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
  56. package/build/navigation/edit/index.js +4 -1
  57. package/build/navigation/edit/index.js.map +1 -1
  58. package/build/navigation/edit/navigation-menu-delete-control.js +4 -1
  59. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  60. package/build/navigation/edit/placeholder/index.js +4 -1
  61. package/build/navigation/edit/placeholder/index.js.map +1 -1
  62. package/build/navigation/edit/responsive-wrapper.js +8 -2
  63. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  64. package/build/navigation/edit/unsaved-inner-blocks.js +4 -4
  65. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  66. package/build/navigation-link/link-ui.js +5 -2
  67. package/build/navigation-link/link-ui.js.map +1 -1
  68. package/build/page-list/convert-to-links-modal.js +8 -2
  69. package/build/page-list/convert-to-links-modal.js.map +1 -1
  70. package/build/page-list/edit.js +7 -2
  71. package/build/page-list/edit.js.map +1 -1
  72. package/build/post-comments-form/form.js +4 -1
  73. package/build/post-comments-form/form.js.map +1 -1
  74. package/build/post-featured-image/dimension-controls.js +6 -8
  75. package/build/post-featured-image/dimension-controls.js.map +1 -1
  76. package/build/post-featured-image/edit.js +5 -5
  77. package/build/post-featured-image/edit.js.map +1 -1
  78. package/build/query/edit/enhanced-pagination-modal.js +4 -1
  79. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  80. package/build/query/edit/query-placeholder.js +8 -2
  81. package/build/query/edit/query-placeholder.js.map +1 -1
  82. package/build/site-logo/edit.js +15 -15
  83. package/build/site-logo/edit.js.map +1 -1
  84. package/build/social-link/edit.js +4 -1
  85. package/build/social-link/edit.js.map +1 -1
  86. package/build/social-links/edit.js +10 -9
  87. package/build/social-links/edit.js.map +1 -1
  88. package/build/template-part/edit/advanced-controls.js.map +1 -1
  89. package/build/template-part/edit/index.js +1 -1
  90. package/build/template-part/edit/index.js.map +1 -1
  91. package/build/template-part/edit/placeholder.js +8 -2
  92. package/build/template-part/edit/placeholder.js.map +1 -1
  93. package/build/utils/hooks.js +10 -10
  94. package/build/utils/hooks.js.map +1 -1
  95. package/build/video/edit.js +22 -14
  96. package/build/video/edit.js.map +1 -1
  97. package/build/video/tracks-editor.js +12 -3
  98. package/build/video/tracks-editor.js.map +1 -1
  99. package/build-module/audio/edit.js +2 -1
  100. package/build-module/audio/edit.js.map +1 -1
  101. package/build-module/block/edit.js +4 -6
  102. package/build-module/block/edit.js.map +1 -1
  103. package/build-module/button/edit.js +1 -1
  104. package/build-module/button/edit.js.map +1 -1
  105. package/build-module/categories/index.js +1 -0
  106. package/build-module/categories/index.js.map +1 -1
  107. package/build-module/comment-edit-link/index.js +13 -2
  108. package/build-module/comment-edit-link/index.js.map +1 -1
  109. package/build-module/comment-reply-link/index.js +13 -2
  110. package/build-module/comment-reply-link/index.js.map +1 -1
  111. package/build-module/comments/edit/comments-legacy.js +4 -1
  112. package/build-module/comments/edit/comments-legacy.js.map +1 -1
  113. package/build-module/cover/edit/block-controls.js +4 -2
  114. package/build-module/cover/edit/block-controls.js.map +1 -1
  115. package/build-module/cover/edit/index.js +2 -1
  116. package/build-module/cover/edit/index.js.map +1 -1
  117. package/build-module/cover/edit/inspector-controls.js +5 -13
  118. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  119. package/build-module/details/index.js +3 -1
  120. package/build-module/details/index.js.map +1 -1
  121. package/build-module/details/transforms.js +18 -0
  122. package/build-module/details/transforms.js.map +1 -0
  123. package/build-module/embed/embed-placeholder.js +8 -2
  124. package/build-module/embed/embed-placeholder.js.map +1 -1
  125. package/build-module/file/edit.js +12 -1
  126. package/build-module/file/edit.js.map +1 -1
  127. package/build-module/freeform/edit.js +4 -4
  128. package/build-module/freeform/edit.js.map +1 -1
  129. package/build-module/freeform/modal.js +12 -3
  130. package/build-module/freeform/modal.js.map +1 -1
  131. package/build-module/home-link/edit.js +3 -9
  132. package/build-module/home-link/edit.js.map +1 -1
  133. package/build-module/image/edit.js +45 -34
  134. package/build-module/image/edit.js.map +1 -1
  135. package/build-module/image/image.js +23 -11
  136. package/build-module/image/image.js.map +1 -1
  137. package/build-module/media-text/deprecated.js +144 -3
  138. package/build-module/media-text/deprecated.js.map +1 -1
  139. package/build-module/media-text/edit.js +5 -5
  140. package/build-module/media-text/edit.js.map +1 -1
  141. package/build-module/media-text/image-fill.js +6 -0
  142. package/build-module/media-text/image-fill.js.map +1 -0
  143. package/build-module/media-text/media-container.js +21 -17
  144. package/build-module/media-text/media-container.js.map +1 -1
  145. package/build-module/media-text/media-container.native.js +0 -1
  146. package/build-module/media-text/media-container.native.js.map +1 -1
  147. package/build-module/media-text/save.js +5 -6
  148. package/build-module/media-text/save.js.map +1 -1
  149. package/build-module/missing/edit.js +6 -3
  150. package/build-module/missing/edit.js.map +1 -1
  151. package/build-module/navigation/edit/deleted-navigation-warning.js +4 -1
  152. package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
  153. package/build-module/navigation/edit/index.js +4 -1
  154. package/build-module/navigation/edit/index.js.map +1 -1
  155. package/build-module/navigation/edit/navigation-menu-delete-control.js +4 -1
  156. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  157. package/build-module/navigation/edit/placeholder/index.js +4 -1
  158. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  159. package/build-module/navigation/edit/responsive-wrapper.js +8 -2
  160. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  161. package/build-module/navigation/edit/unsaved-inner-blocks.js +4 -4
  162. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  163. package/build-module/navigation-link/link-ui.js +7 -4
  164. package/build-module/navigation-link/link-ui.js.map +1 -1
  165. package/build-module/page-list/convert-to-links-modal.js +8 -2
  166. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  167. package/build-module/page-list/edit.js +7 -2
  168. package/build-module/page-list/edit.js.map +1 -1
  169. package/build-module/post-comments-form/form.js +4 -1
  170. package/build-module/post-comments-form/form.js.map +1 -1
  171. package/build-module/post-featured-image/dimension-controls.js +6 -8
  172. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  173. package/build-module/post-featured-image/edit.js +6 -6
  174. package/build-module/post-featured-image/edit.js.map +1 -1
  175. package/build-module/query/edit/enhanced-pagination-modal.js +4 -1
  176. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  177. package/build-module/query/edit/query-placeholder.js +8 -2
  178. package/build-module/query/edit/query-placeholder.js.map +1 -1
  179. package/build-module/site-logo/edit.js +16 -16
  180. package/build-module/site-logo/edit.js.map +1 -1
  181. package/build-module/social-link/edit.js +4 -1
  182. package/build-module/social-link/edit.js.map +1 -1
  183. package/build-module/social-links/edit.js +11 -10
  184. package/build-module/social-links/edit.js.map +1 -1
  185. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  186. package/build-module/template-part/edit/index.js +1 -1
  187. package/build-module/template-part/edit/index.js.map +1 -1
  188. package/build-module/template-part/edit/placeholder.js +8 -2
  189. package/build-module/template-part/edit/placeholder.js.map +1 -1
  190. package/build-module/utils/hooks.js +10 -10
  191. package/build-module/utils/hooks.js.map +1 -1
  192. package/build-module/video/edit.js +22 -15
  193. package/build-module/video/edit.js.map +1 -1
  194. package/build-module/video/tracks-editor.js +12 -3
  195. package/build-module/video/tracks-editor.js.map +1 -1
  196. package/build-style/button/editor-rtl.css +0 -4
  197. package/build-style/button/editor.css +0 -4
  198. package/build-style/buttons/editor-rtl.css +0 -3
  199. package/build-style/buttons/editor.css +0 -3
  200. package/build-style/comment-edit-link/style-rtl.css +94 -0
  201. package/build-style/comment-edit-link/style.css +94 -0
  202. package/build-style/comment-reply-link/style-rtl.css +94 -0
  203. package/build-style/comment-reply-link/style.css +94 -0
  204. package/build-style/comments-pagination/editor-rtl.css +2 -2
  205. package/build-style/comments-pagination/editor.css +2 -2
  206. package/build-style/cover/editor-rtl.css +0 -6
  207. package/build-style/cover/editor.css +0 -6
  208. package/build-style/editor-rtl.css +24 -68
  209. package/build-style/editor.css +24 -70
  210. package/build-style/group/editor-rtl.css +0 -1
  211. package/build-style/group/editor.css +0 -1
  212. package/build-style/image/editor-rtl.css +0 -1
  213. package/build-style/image/editor.css +0 -1
  214. package/build-style/media-text/editor-rtl.css +3 -1
  215. package/build-style/media-text/editor.css +3 -1
  216. package/build-style/media-text/style-rtl.css +20 -0
  217. package/build-style/media-text/style.css +20 -0
  218. package/build-style/navigation/editor-rtl.css +0 -1
  219. package/build-style/navigation/editor.css +0 -1
  220. package/build-style/post-featured-image/style-rtl.css +1 -1
  221. package/build-style/post-featured-image/style.css +1 -1
  222. package/build-style/query-pagination/editor-rtl.css +2 -16
  223. package/build-style/query-pagination/editor.css +2 -18
  224. package/build-style/query-pagination/style-rtl.css +0 -11
  225. package/build-style/query-pagination/style.css +0 -13
  226. package/build-style/site-title/editor-rtl.css +0 -4
  227. package/build-style/site-title/editor.css +0 -4
  228. package/build-style/social-links/editor-rtl.css +17 -0
  229. package/build-style/social-links/editor.css +17 -0
  230. package/build-style/style-rtl.css +29 -12
  231. package/build-style/style.css +29 -14
  232. package/build-style/video/editor-rtl.css +0 -29
  233. package/build-style/video/editor.css +0 -29
  234. package/package.json +35 -35
  235. package/src/audio/edit.js +1 -0
  236. package/src/block/edit.js +6 -4
  237. package/src/button/edit.js +1 -1
  238. package/src/button/editor.scss +0 -5
  239. package/src/buttons/editor.scss +0 -6
  240. package/src/categories/block.json +1 -0
  241. package/src/categories/index.php +13 -2
  242. package/src/comment-date/index.php +1 -1
  243. package/src/comment-edit-link/block.json +13 -2
  244. package/src/comment-edit-link/style.scss +4 -0
  245. package/src/comment-reply-link/block.json +13 -2
  246. package/src/comment-reply-link/style.scss +4 -0
  247. package/src/comments/edit/comments-legacy.js +2 -0
  248. package/src/comments-pagination/editor.scss +1 -1
  249. package/src/cover/edit/block-controls.js +2 -0
  250. package/src/cover/edit/index.js +1 -0
  251. package/src/cover/edit/inspector-controls.js +3 -15
  252. package/src/cover/editor.scss +0 -5
  253. package/src/cover/test/edit.js +30 -26
  254. package/src/details/index.js +2 -0
  255. package/src/details/transforms.js +26 -0
  256. package/src/embed/embed-placeholder.js +12 -2
  257. package/src/file/edit.js +11 -0
  258. package/src/form/index.php +2 -2
  259. package/src/freeform/edit.js +4 -4
  260. package/src/freeform/editor.scss +1 -1
  261. package/src/freeform/modal.js +10 -1
  262. package/src/gallery/editor.scss +1 -1
  263. package/src/group/editor.scss +0 -1
  264. package/src/home-link/edit.js +4 -7
  265. package/src/image/edit.js +42 -30
  266. package/src/image/editor.scss +0 -3
  267. package/src/image/image.js +75 -53
  268. package/src/media-text/deprecated.js +159 -3
  269. package/src/media-text/edit.js +5 -5
  270. package/src/media-text/editor.scss +3 -1
  271. package/src/media-text/image-fill.js +11 -0
  272. package/src/media-text/index.php +53 -43
  273. package/src/media-text/media-container.js +25 -25
  274. package/src/media-text/media-container.native.js +0 -2
  275. package/src/media-text/save.js +9 -13
  276. package/src/media-text/style.scss +21 -0
  277. package/src/media-text/test/image-fill.js +19 -0
  278. package/src/missing/edit.js +9 -3
  279. package/src/navigation/edit/deleted-navigation-warning.js +8 -1
  280. package/src/navigation/edit/index.js +2 -0
  281. package/src/navigation/edit/navigation-menu-delete-control.js +2 -0
  282. package/src/navigation/edit/placeholder/index.js +2 -0
  283. package/src/navigation/edit/responsive-wrapper.js +4 -0
  284. package/src/navigation/edit/unsaved-inner-blocks.js +4 -4
  285. package/src/navigation/editor.scss +6 -3
  286. package/src/navigation-link/link-ui.js +5 -3
  287. package/src/page-list/convert-to-links-modal.js +8 -1
  288. package/src/page-list/edit.js +7 -1
  289. package/src/page-list/index.php +3 -1
  290. package/src/post-comments-form/form.js +2 -0
  291. package/src/post-date/index.php +3 -3
  292. package/src/post-featured-image/dimension-controls.js +4 -4
  293. package/src/post-featured-image/edit.js +4 -6
  294. package/src/post-featured-image/style.scss +1 -1
  295. package/src/query/edit/enhanced-pagination-modal.js +6 -1
  296. package/src/query/edit/query-placeholder.js +4 -0
  297. package/src/query-pagination/editor.scss +1 -21
  298. package/src/query-pagination/style.scss +0 -15
  299. package/src/site-logo/edit.js +13 -20
  300. package/src/site-title/editor.scss +0 -4
  301. package/src/social-link/edit.js +2 -0
  302. package/src/social-links/edit.js +17 -10
  303. package/src/social-links/editor.scss +24 -5
  304. package/src/style.scss +2 -0
  305. package/src/tag-cloud/index.php +7 -2
  306. package/src/template-part/edit/advanced-controls.js +0 -1
  307. package/src/template-part/edit/index.js +12 -10
  308. package/src/template-part/edit/placeholder.js +8 -1
  309. package/src/utils/hooks.js +11 -11
  310. package/src/video/edit.js +26 -21
  311. package/src/video/editor.scss +0 -45
  312. package/src/video/tracks-editor.js +6 -0
  313. package/src/media-text/test/media-container.js +0 -24
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","isBlobURL","__unstableGetAnimateClassName","getAnimateClassName","ResizableBox","ToolbarButton","useSelect","useDispatch","BlockControls","BlockIcon","MediaPlaceholder","MediaReplaceFlow","RichText","useBlockProps","store","blockEditorStore","__experimentalGetElementClassName","useEffect","useState","useCopyToClipboard","__","_x","file","icon","coreStore","noticesStore","FileBlockInspector","browserSupportsPdfs","removeAnchorTag","useUploadMediaFromBlobURL","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MIN_PREVIEW_HEIGHT","MAX_PREVIEW_HEIGHT","ClipboardToolbarButton","text","disabled","createNotice","ref","isDismissible","type","className","children","FileEdit","attributes","isSelected","setAttributes","clientId","id","fileName","href","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","temporaryURL","setTemporaryURL","blob","media","select","undefined","getMedia","createErrorNotice","toggleSelection","__unstableMarkNextChangeAsNotPersistent","url","onChange","onSelectFile","onError","onUploadError","isEmpty","newMedia","isPdf","endsWith","title","fileId","message","changeLinkDestinationOption","newHref","changeOpenInNewWindow","newValue","changeShowDownloadButton","changeDisplayPreview","handleOnResizeStop","event","direction","elt","delta","newHeight","parseInt","height","changePreviewHeight","Math","max","attachmentPage","link","blockProps","displayPreviewInEditor","labels","instructions","onSelect","accept","hrefs","openInNewWindow","group","mediaId","mediaURL","size","minHeight","maxHeight","minWidth","grid","enable","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","onResizeStart","onResizeStop","showHandle","data","identifier","tagName","value","placeholder","withoutInteractiveFormatting"],"sources":["@wordpress/block-library/src/file/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tResizableBox,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { useEffect, useState } from '@wordpress/element';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { __, _x } from '@wordpress/i18n';\nimport { file as icon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport FileBlockInspector from './inspector';\nimport { browserSupportsPdfs } from './utils';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\n\nexport const MIN_PREVIEW_HEIGHT = 200;\nexport const MAX_PREVIEW_HEIGHT = 2000;\n\nfunction ClipboardToolbarButton( { text, disabled } ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( text, () => {\n\t\tcreateNotice( 'info', __( 'Copied URL to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\tclassName=\"components-clipboard-toolbar-button\"\n\t\t\tref={ ref }\n\t\t\tdisabled={ disabled }\n\t\t>\n\t\t\t{ __( 'Copy URL' ) }\n\t\t</ToolbarButton>\n\t);\n}\n\nfunction FileEdit( { attributes, isSelected, setAttributes, clientId } ) {\n\tconst {\n\t\tid,\n\t\tfileName,\n\t\thref,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst { media } = useSelect(\n\t\t( select ) => ( {\n\t\t\tmedia:\n\t\t\t\tid === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: select( coreStore ).getMedia( id ),\n\t\t} ),\n\t\t[ id ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { toggleSelection, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tonChange: onSelectFile,\n\t\tonError: onUploadError,\n\t} );\n\n\t// Note: Handle setting a default value for `downloadButtonText` via HTML API\n\t// when it supports replacing text content for HTML tags.\n\tuseEffect( () => {\n\t\tif ( RichText.isEmpty( downloadButtonText ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\t\t// Reason: This effect should only run on mount.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tfunction onSelectFile( newMedia ) {\n\t\tif ( ! newMedia || ! newMedia.url ) {\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( newMedia.url ) ) {\n\t\t\tsetTemporaryURL( newMedia.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPdf = newMedia.url.endsWith( '.pdf' );\n\t\tsetAttributes( {\n\t\t\thref: newMedia.url,\n\t\t\tfileName: newMedia.title,\n\t\t\ttextLinkHref: newMedia.url,\n\t\t\tid: newMedia.id,\n\t\t\tdisplayPreview: isPdf ? true : undefined,\n\t\t\tpreviewHeight: isPdf ? 600 : undefined,\n\t\t\tfileId: `wp-block-file--media-${ clientId }`,\n\t\t\tblob: undefined,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tsetAttributes( { href: undefined } );\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction changeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library).\n\t\tsetAttributes( { textLinkHref: newHref } );\n\t}\n\n\tfunction changeOpenInNewWindow( newValue ) {\n\t\tsetAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tfunction changeShowDownloadButton( newValue ) {\n\t\tsetAttributes( { showDownloadButton: newValue } );\n\t}\n\n\tfunction changeDisplayPreview( newValue ) {\n\t\tsetAttributes( { displayPreview: newValue } );\n\t}\n\n\tfunction handleOnResizeStop( event, direction, elt, delta ) {\n\t\ttoggleSelection( true );\n\n\t\tconst newHeight = parseInt( previewHeight + delta.height, 10 );\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tfunction changePreviewHeight( newValue ) {\n\t\tconst newHeight = Math.max(\n\t\t\tparseInt( newValue, 10 ),\n\t\t\tMIN_PREVIEW_HEIGHT\n\t\t);\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tconst attachmentPage = media && media.link;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t!! temporaryURL && getAnimateClassName( { type: 'loading' } ),\n\t\t\t{\n\t\t\t\t'is-transient': !! temporaryURL,\n\t\t\t}\n\t\t),\n\t} );\n\n\tconst displayPreviewInEditor = browserSupportsPdfs() && displayPreview;\n\n\tif ( ! href && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Upload a file or pick one from your media library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FileBlockInspector\n\t\t\t\threfs={ {\n\t\t\t\t\thref: href || temporaryURL,\n\t\t\t\t\ttextLinkHref,\n\t\t\t\t\tattachmentPage,\n\t\t\t\t} }\n\t\t\t\t{ ...{\n\t\t\t\t\topenInNewWindow: !! textLinkTarget,\n\t\t\t\t\tshowDownloadButton,\n\t\t\t\t\tchangeLinkDestinationOption,\n\t\t\t\t\tchangeOpenInNewWindow,\n\t\t\t\t\tchangeShowDownloadButton,\n\t\t\t\t\tdisplayPreview,\n\t\t\t\t\tchangeDisplayPreview,\n\t\t\t\t\tpreviewHeight,\n\t\t\t\t\tchangePreviewHeight,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ href }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t\t<ClipboardToolbarButton\n\t\t\t\t\ttext={ href }\n\t\t\t\t\tdisabled={ isBlobURL( href ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ displayPreviewInEditor && (\n\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\tsize={ { height: previewHeight } }\n\t\t\t\t\t\tminHeight={ MIN_PREVIEW_HEIGHT }\n\t\t\t\t\t\tmaxHeight={ MAX_PREVIEW_HEIGHT }\n\t\t\t\t\t\tminWidth=\"100%\"\n\t\t\t\t\t\tgrid={ [ 10, 10 ] }\n\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\tright: false,\n\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStart={ () => toggleSelection( false ) }\n\t\t\t\t\t\tonResizeStop={ handleOnResizeStop }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__preview\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t'Embed of the selected PDF file.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isSelected && (\n\t\t\t\t\t\t\t<div className=\"wp-block-file__preview-overlay\" />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ResizableBox>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-file__content-wrapper\">\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"fileName\"\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\tplaceholder={ __( 'Write file name…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tfileName: removeAnchorTag( text ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t\t<div className=\"wp-block-file__button-richtext-wrapper\">\n\t\t\t\t\t\t\t{ /* Using RichText here instead of PlainText so that it can be styled like a button. */ }\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tidentifier=\"downloadButtonText\"\n\t\t\t\t\t\t\t\ttagName=\"div\" // Must be block-level or else cursor disappears.\n\t\t\t\t\t\t\t\taria-label={ __( 'Download button text' ) }\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t\t\t__experimentalGetElementClassName(\n\t\t\t\t\t\t\t\t\t\t'button'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Add text…' ) }\n\t\t\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdownloadButtonText:\n\t\t\t\t\t\t\t\t\t\t\tremoveAnchorTag( text ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default FileEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","isBlobURL","__unstableGetAnimateClassName","getAnimateClassName","ResizableBox","ToolbarButton","useSelect","useDispatch","BlockControls","BlockIcon","MediaPlaceholder","MediaReplaceFlow","RichText","useBlockProps","store","blockEditorStore","__experimentalGetElementClassName","useEffect","useState","useCopyToClipboard","__","_x","file","icon","coreStore","noticesStore","FileBlockInspector","browserSupportsPdfs","removeAnchorTag","useUploadMediaFromBlobURL","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MIN_PREVIEW_HEIGHT","MAX_PREVIEW_HEIGHT","ClipboardToolbarButton","text","disabled","createNotice","ref","isDismissible","type","className","children","FileEdit","attributes","isSelected","setAttributes","clientId","id","fileName","href","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","temporaryURL","setTemporaryURL","blob","media","select","undefined","getMedia","createErrorNotice","toggleSelection","__unstableMarkNextChangeAsNotPersistent","url","onChange","onSelectFile","onError","onUploadError","isEmpty","newMedia","fileId","isPdf","endsWith","title","message","changeLinkDestinationOption","newHref","changeOpenInNewWindow","newValue","changeShowDownloadButton","changeDisplayPreview","handleOnResizeStop","event","direction","elt","delta","newHeight","parseInt","height","changePreviewHeight","Math","max","attachmentPage","link","blockProps","displayPreviewInEditor","labels","instructions","onSelect","accept","hrefs","openInNewWindow","group","mediaId","mediaURL","onReset","size","minHeight","maxHeight","minWidth","grid","enable","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","onResizeStart","onResizeStop","showHandle","data","identifier","tagName","value","placeholder","withoutInteractiveFormatting"],"sources":["@wordpress/block-library/src/file/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tResizableBox,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { useEffect, useState } from '@wordpress/element';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { __, _x } from '@wordpress/i18n';\nimport { file as icon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport FileBlockInspector from './inspector';\nimport { browserSupportsPdfs } from './utils';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\n\nexport const MIN_PREVIEW_HEIGHT = 200;\nexport const MAX_PREVIEW_HEIGHT = 2000;\n\nfunction ClipboardToolbarButton( { text, disabled } ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( text, () => {\n\t\tcreateNotice( 'info', __( 'Copied URL to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\tclassName=\"components-clipboard-toolbar-button\"\n\t\t\tref={ ref }\n\t\t\tdisabled={ disabled }\n\t\t>\n\t\t\t{ __( 'Copy URL' ) }\n\t\t</ToolbarButton>\n\t);\n}\n\nfunction FileEdit( { attributes, isSelected, setAttributes, clientId } ) {\n\tconst {\n\t\tid,\n\t\tfileName,\n\t\thref,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst { media } = useSelect(\n\t\t( select ) => ( {\n\t\t\tmedia:\n\t\t\t\tid === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: select( coreStore ).getMedia( id ),\n\t\t} ),\n\t\t[ id ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { toggleSelection, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tonChange: onSelectFile,\n\t\tonError: onUploadError,\n\t} );\n\n\t// Note: Handle setting a default value for `downloadButtonText` via HTML API\n\t// when it supports replacing text content for HTML tags.\n\tuseEffect( () => {\n\t\tif ( RichText.isEmpty( downloadButtonText ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\t\t// Reason: This effect should only run on mount.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tfunction onSelectFile( newMedia ) {\n\t\tif ( ! newMedia || ! newMedia.url ) {\n\t\t\t// Reset attributes.\n\t\t\tsetAttributes( {\n\t\t\t\thref: undefined,\n\t\t\t\tfileName: undefined,\n\t\t\t\ttextLinkHref: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tfileId: undefined,\n\t\t\t\tdisplayPreview: undefined,\n\t\t\t\tpreviewHeight: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( newMedia.url ) ) {\n\t\t\tsetTemporaryURL( newMedia.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPdf = newMedia.url.endsWith( '.pdf' );\n\t\tsetAttributes( {\n\t\t\thref: newMedia.url,\n\t\t\tfileName: newMedia.title,\n\t\t\ttextLinkHref: newMedia.url,\n\t\t\tid: newMedia.id,\n\t\t\tdisplayPreview: isPdf ? true : undefined,\n\t\t\tpreviewHeight: isPdf ? 600 : undefined,\n\t\t\tfileId: `wp-block-file--media-${ clientId }`,\n\t\t\tblob: undefined,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tsetAttributes( { href: undefined } );\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction changeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library).\n\t\tsetAttributes( { textLinkHref: newHref } );\n\t}\n\n\tfunction changeOpenInNewWindow( newValue ) {\n\t\tsetAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tfunction changeShowDownloadButton( newValue ) {\n\t\tsetAttributes( { showDownloadButton: newValue } );\n\t}\n\n\tfunction changeDisplayPreview( newValue ) {\n\t\tsetAttributes( { displayPreview: newValue } );\n\t}\n\n\tfunction handleOnResizeStop( event, direction, elt, delta ) {\n\t\ttoggleSelection( true );\n\n\t\tconst newHeight = parseInt( previewHeight + delta.height, 10 );\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tfunction changePreviewHeight( newValue ) {\n\t\tconst newHeight = Math.max(\n\t\t\tparseInt( newValue, 10 ),\n\t\t\tMIN_PREVIEW_HEIGHT\n\t\t);\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tconst attachmentPage = media && media.link;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t!! temporaryURL && getAnimateClassName( { type: 'loading' } ),\n\t\t\t{\n\t\t\t\t'is-transient': !! temporaryURL,\n\t\t\t}\n\t\t),\n\t} );\n\n\tconst displayPreviewInEditor = browserSupportsPdfs() && displayPreview;\n\n\tif ( ! href && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Upload a file or pick one from your media library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FileBlockInspector\n\t\t\t\threfs={ {\n\t\t\t\t\thref: href || temporaryURL,\n\t\t\t\t\ttextLinkHref,\n\t\t\t\t\tattachmentPage,\n\t\t\t\t} }\n\t\t\t\t{ ...{\n\t\t\t\t\topenInNewWindow: !! textLinkTarget,\n\t\t\t\t\tshowDownloadButton,\n\t\t\t\t\tchangeLinkDestinationOption,\n\t\t\t\t\tchangeOpenInNewWindow,\n\t\t\t\t\tchangeShowDownloadButton,\n\t\t\t\t\tdisplayPreview,\n\t\t\t\t\tchangeDisplayPreview,\n\t\t\t\t\tpreviewHeight,\n\t\t\t\t\tchangePreviewHeight,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ href }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tonReset={ () => onSelectFile( undefined ) }\n\t\t\t\t/>\n\t\t\t\t<ClipboardToolbarButton\n\t\t\t\t\ttext={ href }\n\t\t\t\t\tdisabled={ isBlobURL( href ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ displayPreviewInEditor && (\n\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\tsize={ { height: previewHeight } }\n\t\t\t\t\t\tminHeight={ MIN_PREVIEW_HEIGHT }\n\t\t\t\t\t\tmaxHeight={ MAX_PREVIEW_HEIGHT }\n\t\t\t\t\t\tminWidth=\"100%\"\n\t\t\t\t\t\tgrid={ [ 10, 10 ] }\n\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\tright: false,\n\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStart={ () => toggleSelection( false ) }\n\t\t\t\t\t\tonResizeStop={ handleOnResizeStop }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__preview\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t'Embed of the selected PDF file.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isSelected && (\n\t\t\t\t\t\t\t<div className=\"wp-block-file__preview-overlay\" />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ResizableBox>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-file__content-wrapper\">\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"fileName\"\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\tplaceholder={ __( 'Write file name…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tfileName: removeAnchorTag( text ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t\t<div className=\"wp-block-file__button-richtext-wrapper\">\n\t\t\t\t\t\t\t{ /* Using RichText here instead of PlainText so that it can be styled like a button. */ }\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tidentifier=\"downloadButtonText\"\n\t\t\t\t\t\t\t\ttagName=\"div\" // Must be block-level or else cursor disappears.\n\t\t\t\t\t\t\t\taria-label={ __( 'Download button text' ) }\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t\t\t__experimentalGetElementClassName(\n\t\t\t\t\t\t\t\t\t\t'button'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Add text…' ) }\n\t\t\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdownloadButtonText:\n\t\t\t\t\t\t\t\t\t\t\tremoveAnchorTag( text ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default FileEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -74,9 +74,9 @@ function ClassicEdit({
74
74
  const {
75
75
  getMultiSelectedBlockClientIds
76
76
  } = useSelect(blockEditorStore);
77
- const didMount = useRef(false);
77
+ const didMountRef = useRef(false);
78
78
  useEffect(() => {
79
- if (!didMount.current) {
79
+ if (!didMountRef.current) {
80
80
  return;
81
81
  }
82
82
  const editor = window.tinymce.get(`editor-${clientId}`);
@@ -93,7 +93,7 @@ function ClassicEdit({
93
93
  baseURL,
94
94
  suffix
95
95
  } = window.wpEditorL10n.tinymce;
96
- didMount.current = true;
96
+ didMountRef.current = true;
97
97
  window.tinymce.EditorManager.overrideDefaults({
98
98
  base_url: baseURL,
99
99
  suffix
@@ -205,7 +205,7 @@ function ClassicEdit({
205
205
  return () => {
206
206
  document.removeEventListener('readystatechange', onReadyStateChange);
207
207
  wp.oldEditor.remove(`editor-${clientId}`);
208
- didMount.current = false;
208
+ didMountRef.current = false;
209
209
  };
210
210
  }, []);
211
211
  function focus() {
@@ -1 +1 @@
1
- {"version":3,"names":["BlockControls","useBlockProps","store","blockEditorStore","debounce","useRefEffect","useSelect","ToolbarGroup","useEffect","useRef","useState","__","BACKSPACE","DELETE","F10","isKeyboardEvent","ConvertToBlocksButton","ModalEdit","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","wp","window","isTmceEmpty","editor","body","getBody","childNodes","length","test","innerText","textContent","FreeformEdit","props","clientId","canRemove","select","canRemoveBlock","isIframed","setIsIframed","ref","element","ownerDocument","document","children","ClassicEdit","attributes","content","setAttributes","onReplace","getMultiSelectedBlockClientIds","didMount","current","tinymce","get","currentContent","getContent","setContent","baseURL","suffix","wpEditorL10n","EditorManager","overrideDefaults","base_url","onSetup","bookmark","on","selection","getBookmark","scrollContainer","querySelector","scrollPosition","scrollTop","once","moveToBookmark","debouncedOnChange","value","_lastChange","cancel","event","primary","stopPropagation","keyCode","preventDefault","stopImmediatePropagation","altKey","rootNode","activeElement","blur","focus","initialize","settings","oldEditor","inline","content_css","fixed_toolbar_container","setup","onReadyStateChange","readyState","addEventListener","removeEventListener","remove","onToolbarKeyDown","nativeEvent","id","className","onClick","onKeyDown"],"sources":["@wordpress/block-library/src/freeform/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { debounce, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { ToolbarGroup } from '@wordpress/components';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ConvertToBlocksButton from './convert-to-blocks-button';\nimport ModalEdit from './modal';\n\nconst { wp } = window;\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default function FreeformEdit( props ) {\n\tconst { clientId } = props;\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst [ isIframed, setIsIframed ] = useState( false );\n\tconst ref = useRefEffect( ( element ) => {\n\t\tsetIsIframed( element.ownerDocument !== document );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ConvertToBlocksButton clientId={ clientId } />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<div { ...useBlockProps( { ref } ) }>\n\t\t\t\t{ isIframed ? (\n\t\t\t\t\t<ModalEdit { ...props } />\n\t\t\t\t) : (\n\t\t\t\t\t<ClassicEdit { ...props } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nfunction ClassicEdit( {\n\tclientId,\n\tattributes: { content },\n\tsetAttributes,\n\tonReplace,\n} ) {\n\tconst { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );\n\tconst didMount = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( ! didMount.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( ! editor ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentContent = editor.getContent();\n\t\tif ( currentContent !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}, [ clientId, content ] );\n\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\tdidMount.current = true;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tfunction onSetup( editor ) {\n\t\t\tlet bookmark;\n\n\t\t\tif ( content ) {\n\t\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t\t}\n\n\t\t\teditor.on( 'blur', () => {\n\t\t\t\tbookmark = editor.selection.getBookmark( 2, true );\n\t\t\t\t// There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.\n\t\t\t\t// This causes a scroll to the top of editor content on return from some content updating dialogs so tracking\n\t\t\t\t// scroll position until this is fixed in core.\n\t\t\t\tconst scrollContainer = document.querySelector(\n\t\t\t\t\t'.interface-interface-skeleton__content'\n\t\t\t\t);\n\t\t\t\tconst scrollPosition = scrollContainer.scrollTop;\n\n\t\t\t\t// Only update attributes if we aren't multi-selecting blocks.\n\t\t\t\t// Updating during multi-selection can overwrite attributes of other blocks.\n\t\t\t\tif ( ! getMultiSelectedBlockClientIds()?.length ) {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: editor.getContent(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\teditor.once( 'focus', () => {\n\t\t\t\t\tif ( bookmark ) {\n\t\t\t\t\t\teditor.selection.moveToBookmark( bookmark );\n\t\t\t\t\t\tif ( scrollContainer.scrollTop !== scrollPosition ) {\n\t\t\t\t\t\t\tscrollContainer.scrollTop = scrollPosition;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\teditor.on( 'mousedown touchstart', () => {\n\t\t\t\tbookmark = null;\n\t\t\t} );\n\n\t\t\tconst debouncedOnChange = debounce( () => {\n\t\t\t\tconst value = editor.getContent();\n\n\t\t\t\tif ( value !== editor._lastChange ) {\n\t\t\t\t\teditor._lastChange = value;\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}, 250 );\n\t\t\teditor.on( 'Paste Change input Undo Redo', debouncedOnChange );\n\n\t\t\t// We need to cancel the debounce call because when we remove\n\t\t\t// the editor (onUnmount) this callback is executed in\n\t\t\t// another tick. This results in setting the content to empty.\n\t\t\teditor.on( 'remove', debouncedOnChange.cancel );\n\n\t\t\teditor.on( 'keydown', ( event ) => {\n\t\t\t\tif ( isKeyboardEvent.primary( event, 'z' ) ) {\n\t\t\t\t\t// Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t( event.keyCode === BACKSPACE ||\n\t\t\t\t\t\tevent.keyCode === DELETE ) &&\n\t\t\t\t\tisTmceEmpty( editor )\n\t\t\t\t) {\n\t\t\t\t\t// Delete the block.\n\t\t\t\t\tonReplace( [] );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t}\n\n\t\t\t\tconst { altKey } = event;\n\t\t\t\t/*\n\t\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t\t */\n\t\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.on( 'init', () => {\n\t\t\t\tconst rootNode = editor.getBody();\n\n\t\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\t\tif ( rootNode.ownerDocument.activeElement === rootNode ) {\n\t\t\t\t\trootNode.blur();\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tfunction initialize() {\n\t\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\t\ttinymce: {\n\t\t\t\t\t...settings,\n\t\t\t\t\tinline: true,\n\t\t\t\t\tcontent_css: false,\n\t\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\t\tsetup: onSetup,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tfunction onReadyStateChange() {\n\t\t\tif ( document.readyState === 'complete' ) {\n\t\t\t\tinitialize();\n\t\t\t}\n\t\t}\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tinitialize();\n\t\t} else {\n\t\t\tdocument.addEventListener( 'readystatechange', onReadyStateChange );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\n\t\t\t\t'readystatechange',\n\t\t\t\tonReadyStateChange\n\t\t\t);\n\t\t\twp.oldEditor.remove( `editor-${ clientId }` );\n\t\t\tdidMount.current = false;\n\t\t};\n\t}, [] );\n\n\tfunction focus() {\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( editor ) {\n\t\t\teditor.focus();\n\t\t}\n\t}\n\n\tfunction onToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\t// Disable reasons:\n\t//\n\t// jsx-a11y/no-static-element-interactions\n\t// - the toolbar itself is non-interactive, but must capture events\n\t// from the KeyboardShortcuts component to stop their propagation.\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tkey=\"toolbar\"\n\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\tonClick={ focus }\n\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\tonKeyDown={ onToolbarKeyDown }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tkey=\"editor\"\n\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t/>\n\t\t</>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BlockControls","useBlockProps","store","blockEditorStore","debounce","useRefEffect","useSelect","ToolbarGroup","useEffect","useRef","useState","__","BACKSPACE","DELETE","F10","isKeyboardEvent","ConvertToBlocksButton","ModalEdit","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","wp","window","isTmceEmpty","editor","body","getBody","childNodes","length","test","innerText","textContent","FreeformEdit","props","clientId","canRemove","select","canRemoveBlock","isIframed","setIsIframed","ref","element","ownerDocument","document","children","ClassicEdit","attributes","content","setAttributes","onReplace","getMultiSelectedBlockClientIds","didMountRef","current","tinymce","get","currentContent","getContent","setContent","baseURL","suffix","wpEditorL10n","EditorManager","overrideDefaults","base_url","onSetup","bookmark","on","selection","getBookmark","scrollContainer","querySelector","scrollPosition","scrollTop","once","moveToBookmark","debouncedOnChange","value","_lastChange","cancel","event","primary","stopPropagation","keyCode","preventDefault","stopImmediatePropagation","altKey","rootNode","activeElement","blur","focus","initialize","settings","oldEditor","inline","content_css","fixed_toolbar_container","setup","onReadyStateChange","readyState","addEventListener","removeEventListener","remove","onToolbarKeyDown","nativeEvent","id","className","onClick","onKeyDown"],"sources":["@wordpress/block-library/src/freeform/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { debounce, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { ToolbarGroup } from '@wordpress/components';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ConvertToBlocksButton from './convert-to-blocks-button';\nimport ModalEdit from './modal';\n\nconst { wp } = window;\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default function FreeformEdit( props ) {\n\tconst { clientId } = props;\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst [ isIframed, setIsIframed ] = useState( false );\n\tconst ref = useRefEffect( ( element ) => {\n\t\tsetIsIframed( element.ownerDocument !== document );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ConvertToBlocksButton clientId={ clientId } />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<div { ...useBlockProps( { ref } ) }>\n\t\t\t\t{ isIframed ? (\n\t\t\t\t\t<ModalEdit { ...props } />\n\t\t\t\t) : (\n\t\t\t\t\t<ClassicEdit { ...props } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nfunction ClassicEdit( {\n\tclientId,\n\tattributes: { content },\n\tsetAttributes,\n\tonReplace,\n} ) {\n\tconst { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );\n\tconst didMountRef = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( ! didMountRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( ! editor ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentContent = editor.getContent();\n\t\tif ( currentContent !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}, [ clientId, content ] );\n\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\tdidMountRef.current = true;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tfunction onSetup( editor ) {\n\t\t\tlet bookmark;\n\n\t\t\tif ( content ) {\n\t\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t\t}\n\n\t\t\teditor.on( 'blur', () => {\n\t\t\t\tbookmark = editor.selection.getBookmark( 2, true );\n\t\t\t\t// There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.\n\t\t\t\t// This causes a scroll to the top of editor content on return from some content updating dialogs so tracking\n\t\t\t\t// scroll position until this is fixed in core.\n\t\t\t\tconst scrollContainer = document.querySelector(\n\t\t\t\t\t'.interface-interface-skeleton__content'\n\t\t\t\t);\n\t\t\t\tconst scrollPosition = scrollContainer.scrollTop;\n\n\t\t\t\t// Only update attributes if we aren't multi-selecting blocks.\n\t\t\t\t// Updating during multi-selection can overwrite attributes of other blocks.\n\t\t\t\tif ( ! getMultiSelectedBlockClientIds()?.length ) {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: editor.getContent(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\teditor.once( 'focus', () => {\n\t\t\t\t\tif ( bookmark ) {\n\t\t\t\t\t\teditor.selection.moveToBookmark( bookmark );\n\t\t\t\t\t\tif ( scrollContainer.scrollTop !== scrollPosition ) {\n\t\t\t\t\t\t\tscrollContainer.scrollTop = scrollPosition;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\teditor.on( 'mousedown touchstart', () => {\n\t\t\t\tbookmark = null;\n\t\t\t} );\n\n\t\t\tconst debouncedOnChange = debounce( () => {\n\t\t\t\tconst value = editor.getContent();\n\n\t\t\t\tif ( value !== editor._lastChange ) {\n\t\t\t\t\teditor._lastChange = value;\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}, 250 );\n\t\t\teditor.on( 'Paste Change input Undo Redo', debouncedOnChange );\n\n\t\t\t// We need to cancel the debounce call because when we remove\n\t\t\t// the editor (onUnmount) this callback is executed in\n\t\t\t// another tick. This results in setting the content to empty.\n\t\t\teditor.on( 'remove', debouncedOnChange.cancel );\n\n\t\t\teditor.on( 'keydown', ( event ) => {\n\t\t\t\tif ( isKeyboardEvent.primary( event, 'z' ) ) {\n\t\t\t\t\t// Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t( event.keyCode === BACKSPACE ||\n\t\t\t\t\t\tevent.keyCode === DELETE ) &&\n\t\t\t\t\tisTmceEmpty( editor )\n\t\t\t\t) {\n\t\t\t\t\t// Delete the block.\n\t\t\t\t\tonReplace( [] );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t}\n\n\t\t\t\tconst { altKey } = event;\n\t\t\t\t/*\n\t\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t\t */\n\t\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.on( 'init', () => {\n\t\t\t\tconst rootNode = editor.getBody();\n\n\t\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\t\tif ( rootNode.ownerDocument.activeElement === rootNode ) {\n\t\t\t\t\trootNode.blur();\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tfunction initialize() {\n\t\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\t\ttinymce: {\n\t\t\t\t\t...settings,\n\t\t\t\t\tinline: true,\n\t\t\t\t\tcontent_css: false,\n\t\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\t\tsetup: onSetup,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tfunction onReadyStateChange() {\n\t\t\tif ( document.readyState === 'complete' ) {\n\t\t\t\tinitialize();\n\t\t\t}\n\t\t}\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tinitialize();\n\t\t} else {\n\t\t\tdocument.addEventListener( 'readystatechange', onReadyStateChange );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\n\t\t\t\t'readystatechange',\n\t\t\t\tonReadyStateChange\n\t\t\t);\n\t\t\twp.oldEditor.remove( `editor-${ clientId }` );\n\t\t\tdidMountRef.current = false;\n\t\t};\n\t}, [] );\n\n\tfunction focus() {\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( editor ) {\n\t\t\teditor.focus();\n\t\t}\n\t}\n\n\tfunction onToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\t// Disable reasons:\n\t//\n\t// jsx-a11y/no-static-element-interactions\n\t// - the toolbar itself is non-interactive, but must capture events\n\t// from the KeyboardShortcuts component to stop their propagation.\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tkey=\"toolbar\"\n\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\tonClick={ focus }\n\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\tonKeyDown={ onToolbarKeyDown }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tkey=\"editor\"\n\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t/>\n\t\t</>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n"],"mappings":"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","ignoreList":[]}
@@ -20,7 +20,10 @@ function ModalAuxiliaryActions({
20
20
  if (isMobileViewport) {
21
21
  return null;
22
22
  }
23
- return /*#__PURE__*/_jsx(Button, {
23
+ return /*#__PURE__*/_jsx(Button
24
+ // TODO: Switch to `true` (40px size) if possible
25
+ , {
26
+ __next40pxDefaultSize: false,
24
27
  onClick: onClick,
25
28
  icon: fullscreen,
26
29
  isPressed: isModalFullScreen,
@@ -106,13 +109,19 @@ export default function ModalEdit(props) {
106
109
  justify: "flex-end",
107
110
  expanded: false,
108
111
  children: [/*#__PURE__*/_jsx(FlexItem, {
109
- children: /*#__PURE__*/_jsx(Button, {
112
+ children: /*#__PURE__*/_jsx(Button
113
+ // TODO: Switch to `true` (40px size) if possible
114
+ , {
115
+ __next40pxDefaultSize: false,
110
116
  variant: "tertiary",
111
117
  onClick: onClose,
112
118
  children: __('Cancel')
113
119
  })
114
120
  }), /*#__PURE__*/_jsx(FlexItem, {
115
- children: /*#__PURE__*/_jsx(Button, {
121
+ children: /*#__PURE__*/_jsx(Button
122
+ // TODO: Switch to `true` (40px size) if possible
123
+ , {
124
+ __next40pxDefaultSize: false,
116
125
  variant: "primary",
117
126
  onClick: () => {
118
127
  setAttributes({
@@ -1 +1 @@
1
- {"version":3,"names":["BlockControls","store","ToolbarGroup","ToolbarButton","Modal","Button","Flex","FlexItem","useEffect","useState","RawHTML","__","useSelect","fullscreen","useViewportMatch","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ModalAuxiliaryActions","onClick","isModalFullScreen","isMobileViewport","icon","isPressed","label","ClassicEdit","props","styles","select","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","setIsModalFullScreen","onClose","children","title","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","className","headerActions","defaultValue","justify","expanded","variant","getContent"],"sources":["@wordpress/block-library/src/freeform/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\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\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tsetOpen( false );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BlockControls","store","ToolbarGroup","ToolbarButton","Modal","Button","Flex","FlexItem","useEffect","useState","RawHTML","__","useSelect","fullscreen","useViewportMatch","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ModalAuxiliaryActions","onClick","isModalFullScreen","isMobileViewport","__next40pxDefaultSize","icon","isPressed","label","ClassicEdit","props","styles","select","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","setIsModalFullScreen","onClose","children","title","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","className","headerActions","defaultValue","justify","expanded","variant","getContent"],"sources":["@wordpress/block-library/src/freeform/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t__next40pxDefaultSize={ false }\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\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\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tsetOpen( false );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,15 +19,9 @@ export default function HomeEdit({
19
19
  setAttributes,
20
20
  context
21
21
  }) {
22
- const {
23
- homeUrl
24
- } = useSelect(select => {
25
- const {
26
- getUnstableBase // Site index.
27
- } = select(coreStore);
28
- return {
29
- homeUrl: getUnstableBase()?.home
30
- };
22
+ const homeUrl = useSelect(select => {
23
+ // Site index.
24
+ return select(coreStore).getEntityRecord('root', '__unstableBase')?.home;
31
25
  }, []);
32
26
  const {
33
27
  __unstableMarkNextChangeAsNotPersistent
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","RichText","useBlockProps","store","blockEditorStore","__","useSelect","useDispatch","coreStore","useEffect","jsx","_jsx","Fragment","_Fragment","preventDefault","event","HomeEdit","attributes","setAttributes","context","homeUrl","select","getUnstableBase","home","__unstableMarkNextChangeAsNotPersistent","textColor","backgroundColor","style","blockProps","className","color","text","background","label","undefined","children","href","onClick","identifier","value","onChange","labelValue","placeholder","withoutInteractiveFormatting","allowedFormats"],"sources":["@wordpress/block-library/src/home-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\nconst preventDefault = ( event ) => event.preventDefault();\n\nexport default function HomeEdit( { attributes, setAttributes, context } ) {\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { textColor, backgroundColor, style } = context;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'has-text-color': !! textColor || !! style?.color?.text,\n\t\t\t[ `has-${ textColor }-color` ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || !! style?.color?.background,\n\t\t\t[ `has-${ backgroundColor }-background-color` ]: !! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: style?.color?.text,\n\t\t\tbackgroundColor: style?.color?.background,\n\t\t},\n\t} );\n\n\tconst { label } = attributes;\n\n\tuseEffect( () => {\n\t\tif ( label === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { label: __( 'Home' ) } );\n\t\t}\n\t}, [ label ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<a\n\t\t\t\t\tclassName=\"wp-block-home-link__content wp-block-navigation-item__content\"\n\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\tonClick={ preventDefault }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-home-link__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-label={ __( 'Home link text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add home link' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASJ,KAAK,IAAIK,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAE/C,MAAMC,cAAc,GAAKC,KAAK,IAAMA,KAAK,CAACD,cAAc,CAAC,CAAC;AAE1D,eAAe,SAASE,QAAQA,CAAE;EAAEC,UAAU;EAAEC,aAAa;EAAEC;AAAQ,CAAC,EAAG;EAC1E,MAAM;IAAEC;EAAQ,CAAC,GAAGd,SAAS,CAAIe,MAAM,IAAM;IAC5C,MAAM;MACLC,eAAe,CAAE;IAClB,CAAC,GAAGD,MAAM,CAAEb,SAAU,CAAC;IACvB,OAAO;MACNY,OAAO,EAAEE,eAAe,CAAC,CAAC,EAAEC;IAC7B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEC;EAAwC,CAAC,GAChDjB,WAAW,CAAEH,gBAAiB,CAAC;EAEhC,MAAM;IAAEqB,SAAS;IAAEC,eAAe;IAAEC;EAAM,CAAC,GAAGR,OAAO;EACrD,MAAMS,UAAU,GAAG1B,aAAa,CAAE;IACjC2B,SAAS,EAAE7B,IAAI,CAAE,0BAA0B,EAAE;MAC5C,gBAAgB,EAAE,CAAC,CAAEyB,SAAS,IAAI,CAAC,CAAEE,KAAK,EAAEG,KAAK,EAAEC,IAAI;MACvD,CAAG,OAAON,SAAW,QAAO,GAAI,CAAC,CAAEA,SAAS;MAC5C,gBAAgB,EAAE,CAAC,CAAEC,eAAe,IAAI,CAAC,CAAEC,KAAK,EAAEG,KAAK,EAAEE,UAAU;MACnE,CAAG,OAAON,eAAiB,mBAAkB,GAAI,CAAC,CAAEA;IACrD,CAAE,CAAC;IACHC,KAAK,EAAE;MACNG,KAAK,EAAEH,KAAK,EAAEG,KAAK,EAAEC,IAAI;MACzBL,eAAe,EAAEC,KAAK,EAAEG,KAAK,EAAEE;IAChC;EACD,CAAE,CAAC;EAEH,MAAM;IAAEC;EAAM,CAAC,GAAGhB,UAAU;EAE5BR,SAAS,CAAE,MAAM;IAChB,IAAKwB,KAAK,KAAKC,SAAS,EAAG;MAC1BV,uCAAuC,CAAC,CAAC;MACzCN,aAAa,CAAE;QAAEe,KAAK,EAAE5B,EAAE,CAAE,MAAO;MAAE,CAAE,CAAC;IACzC;EACD,CAAC,EAAE,CAAE4B,KAAK,CAAG,CAAC;EAEd,oBACCtB,IAAA,CAAAE,SAAA;IAAAsB,QAAA,eACCxB,IAAA;MAAA,GAAUiB,UAAU;MAAAO,QAAA,eACnBxB,IAAA;QACCkB,SAAS,EAAC,+DAA+D;QACzEO,IAAI,EAAGhB,OAAS;QAChBiB,OAAO,EAAGvB,cAAgB;QAAAqB,QAAA,eAE1BxB,IAAA,CAACV,QAAQ;UACRqC,UAAU,EAAC,OAAO;UAClBT,SAAS,EAAC,2BAA2B;UACrCU,KAAK,EAAGN,KAAO;UACfO,QAAQ,EAAKC,UAAU,IAAM;YAC5BvB,aAAa,CAAE;cAAEe,KAAK,EAAEQ;YAAW,CAAE,CAAC;UACvC,CAAG;UACH,cAAapC,EAAE,CAAE,gBAAiB,CAAG;UACrCqC,WAAW,EAAGrC,EAAE,CAAE,eAAgB,CAAG;UACrCsC,4BAA4B;UAC5BC,cAAc,EAAG,CAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,oBAAoB;QAClB,CACH;MAAC,CACA;IAAC,CACA;EAAC,CACL,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["clsx","RichText","useBlockProps","store","blockEditorStore","__","useSelect","useDispatch","coreStore","useEffect","jsx","_jsx","Fragment","_Fragment","preventDefault","event","HomeEdit","attributes","setAttributes","context","homeUrl","select","getEntityRecord","home","__unstableMarkNextChangeAsNotPersistent","textColor","backgroundColor","style","blockProps","className","color","text","background","label","undefined","children","href","onClick","identifier","value","onChange","labelValue","placeholder","withoutInteractiveFormatting","allowedFormats"],"sources":["@wordpress/block-library/src/home-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\nconst preventDefault = ( event ) => event.preventDefault();\n\nexport default function HomeEdit( { attributes, setAttributes, context } ) {\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { textColor, backgroundColor, style } = context;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'has-text-color': !! textColor || !! style?.color?.text,\n\t\t\t[ `has-${ textColor }-color` ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || !! style?.color?.background,\n\t\t\t[ `has-${ backgroundColor }-background-color` ]: !! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: style?.color?.text,\n\t\t\tbackgroundColor: style?.color?.background,\n\t\t},\n\t} );\n\n\tconst { label } = attributes;\n\n\tuseEffect( () => {\n\t\tif ( label === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { label: __( 'Home' ) } );\n\t\t}\n\t}, [ label ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<a\n\t\t\t\t\tclassName=\"wp-block-home-link__content wp-block-navigation-item__content\"\n\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\tonClick={ preventDefault }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-home-link__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-label={ __( 'Home link text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add home link' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASJ,KAAK,IAAIK,SAAS,QAAQ,sBAAsB;AACzD,SAASC,SAAS,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAE/C,MAAMC,cAAc,GAAKC,KAAK,IAAMA,KAAK,CAACD,cAAc,CAAC,CAAC;AAE1D,eAAe,SAASE,QAAQA,CAAE;EAAEC,UAAU;EAAEC,aAAa;EAAEC;AAAQ,CAAC,EAAG;EAC1E,MAAMC,OAAO,GAAGd,SAAS,CAAIe,MAAM,IAAM;IACxC;IACA,OAAOA,MAAM,CAAEb,SAAU,CAAC,CAACc,eAAe,CAAE,MAAM,EAAE,gBAAiB,CAAC,EACnEC,IAAI;EACR,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEC;EAAwC,CAAC,GAChDjB,WAAW,CAAEH,gBAAiB,CAAC;EAEhC,MAAM;IAAEqB,SAAS;IAAEC,eAAe;IAAEC;EAAM,CAAC,GAAGR,OAAO;EACrD,MAAMS,UAAU,GAAG1B,aAAa,CAAE;IACjC2B,SAAS,EAAE7B,IAAI,CAAE,0BAA0B,EAAE;MAC5C,gBAAgB,EAAE,CAAC,CAAEyB,SAAS,IAAI,CAAC,CAAEE,KAAK,EAAEG,KAAK,EAAEC,IAAI;MACvD,CAAG,OAAON,SAAW,QAAO,GAAI,CAAC,CAAEA,SAAS;MAC5C,gBAAgB,EAAE,CAAC,CAAEC,eAAe,IAAI,CAAC,CAAEC,KAAK,EAAEG,KAAK,EAAEE,UAAU;MACnE,CAAG,OAAON,eAAiB,mBAAkB,GAAI,CAAC,CAAEA;IACrD,CAAE,CAAC;IACHC,KAAK,EAAE;MACNG,KAAK,EAAEH,KAAK,EAAEG,KAAK,EAAEC,IAAI;MACzBL,eAAe,EAAEC,KAAK,EAAEG,KAAK,EAAEE;IAChC;EACD,CAAE,CAAC;EAEH,MAAM;IAAEC;EAAM,CAAC,GAAGhB,UAAU;EAE5BR,SAAS,CAAE,MAAM;IAChB,IAAKwB,KAAK,KAAKC,SAAS,EAAG;MAC1BV,uCAAuC,CAAC,CAAC;MACzCN,aAAa,CAAE;QAAEe,KAAK,EAAE5B,EAAE,CAAE,MAAO;MAAE,CAAE,CAAC;IACzC;EACD,CAAC,EAAE,CAAE4B,KAAK,CAAG,CAAC;EAEd,oBACCtB,IAAA,CAAAE,SAAA;IAAAsB,QAAA,eACCxB,IAAA;MAAA,GAAUiB,UAAU;MAAAO,QAAA,eACnBxB,IAAA;QACCkB,SAAS,EAAC,+DAA+D;QACzEO,IAAI,EAAGhB,OAAS;QAChBiB,OAAO,EAAGvB,cAAgB;QAAAqB,QAAA,eAE1BxB,IAAA,CAACV,QAAQ;UACRqC,UAAU,EAAC,OAAO;UAClBT,SAAS,EAAC,2BAA2B;UACrCU,KAAK,EAAGN,KAAO;UACfO,QAAQ,EAAKC,UAAU,IAAM;YAC5BvB,aAAa,CAAE;cAAEe,KAAK,EAAEQ;YAAW,CAAE,CAAC;UACvC,CAAG;UACH,cAAapC,EAAE,CAAE,gBAAiB,CAAG;UACrCqC,WAAW,EAAGrC,EAAE,CAAE,eAAgB,CAAG;UACrCsC,4BAA4B;UAC5BC,cAAc,EAAG,CAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,oBAAoB;QAClB,CACH;MAAC,CACA;IAAC,CACA;EAAC,CACL,CAAC;AAEL","ignoreList":[]}
@@ -15,6 +15,7 @@ import { useEffect, useRef, useState } from '@wordpress/element';
15
15
  import { __, sprintf } from '@wordpress/i18n';
16
16
  import { image as icon, plugins as pluginsIcon } from '@wordpress/icons';
17
17
  import { store as noticesStore } from '@wordpress/notices';
18
+ import { useResizeObserver } from '@wordpress/compose';
18
19
 
19
20
  /**
20
21
  * Internal dependencies
@@ -29,6 +30,7 @@ import Image from './image';
29
30
  import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_CUSTOM, LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE, ALLOWED_MEDIA_TYPES } from './constants';
30
31
  import { jsx as _jsx } from "react/jsx-runtime";
31
32
  import { jsxs as _jsxs } from "react/jsx-runtime";
33
+ import { Fragment as _Fragment } from "react/jsx-runtime";
32
34
  export const pickRelevantMediaFiles = (image, size) => {
33
35
  const imageProps = Object.fromEntries(Object.entries(image !== null && image !== void 0 ? image : {}).filter(([key]) => ['alt', 'id', 'link', 'caption'].includes(key)));
34
36
  imageProps.url = image?.sizes?.[size]?.url || image?.media_details?.sizes?.[size]?.source_url || image.url;
@@ -84,6 +86,9 @@ export function ImageEdit({
84
86
  metadata
85
87
  } = attributes;
86
88
  const [temporaryURL, setTemporaryURL] = useState(attributes.blob);
89
+ const [contentResizeListener, {
90
+ width: containerWidth
91
+ }] = useResizeObserver();
87
92
  const altRef = useRef();
88
93
  useEffect(() => {
89
94
  altRef.current = alt;
@@ -276,7 +281,7 @@ export function ImageEdit({
276
281
  lockUrlControlsMessage: blockBindingsSource?.label ? sprintf( /* translators: %s: Label of the bindings source. */
277
282
  __('Connected to %s'), blockBindingsSource.label) : __('Connected to dynamic data')
278
283
  };
279
- }, [isSingleSelected, metadata?.bindings?.url]);
284
+ }, [context, isSingleSelected, metadata?.bindings?.url]);
280
285
  const placeholder = content => {
281
286
  return /*#__PURE__*/_jsx(Placeholder, {
282
287
  className: clsx('block-editor-media-placeholder', {
@@ -300,39 +305,45 @@ export function ImageEdit({
300
305
  }) : content
301
306
  });
302
307
  };
303
- return /*#__PURE__*/_jsxs("figure", {
304
- ...blockProps,
305
- children: [/*#__PURE__*/_jsx(Image, {
306
- temporaryURL: temporaryURL,
307
- attributes: attributes,
308
- setAttributes: setAttributes,
309
- isSingleSelected: isSingleSelected,
310
- insertBlocksAfter: insertBlocksAfter,
311
- onReplace: onReplace,
312
- onSelectImage: onSelectImage,
313
- onSelectURL: onSelectURL,
314
- onUploadError: onUploadError,
315
- context: context,
316
- clientId: clientId,
317
- blockEditingMode: blockEditingMode,
318
- parentLayoutType: parentLayout?.type
319
- }), /*#__PURE__*/_jsx(MediaPlaceholder, {
320
- icon: /*#__PURE__*/_jsx(BlockIcon, {
321
- icon: icon
322
- }),
323
- onSelect: onSelectImage,
324
- onSelectURL: onSelectURL,
325
- onError: onUploadError,
326
- placeholder: placeholder,
327
- accept: "image/*",
328
- allowedTypes: ALLOWED_MEDIA_TYPES,
329
- value: {
330
- id,
331
- src
332
- },
333
- mediaPreview: mediaPreview,
334
- disableMediaButtons: temporaryURL || url
335
- })]
308
+ return /*#__PURE__*/_jsxs(_Fragment, {
309
+ children: [/*#__PURE__*/_jsxs("figure", {
310
+ ...blockProps,
311
+ children: [/*#__PURE__*/_jsx(Image, {
312
+ temporaryURL: temporaryURL,
313
+ attributes: attributes,
314
+ setAttributes: setAttributes,
315
+ isSingleSelected: isSingleSelected,
316
+ insertBlocksAfter: insertBlocksAfter,
317
+ onReplace: onReplace,
318
+ onSelectImage: onSelectImage,
319
+ onSelectURL: onSelectURL,
320
+ onUploadError: onUploadError,
321
+ context: context,
322
+ clientId: clientId,
323
+ blockEditingMode: blockEditingMode,
324
+ parentLayoutType: parentLayout?.type,
325
+ containerWidth: containerWidth
326
+ }), /*#__PURE__*/_jsx(MediaPlaceholder, {
327
+ icon: /*#__PURE__*/_jsx(BlockIcon, {
328
+ icon: icon
329
+ }),
330
+ onSelect: onSelectImage,
331
+ onSelectURL: onSelectURL,
332
+ onError: onUploadError,
333
+ placeholder: placeholder,
334
+ accept: "image/*",
335
+ allowedTypes: ALLOWED_MEDIA_TYPES,
336
+ value: {
337
+ id,
338
+ src
339
+ },
340
+ mediaPreview: mediaPreview,
341
+ disableMediaButtons: temporaryURL || url
342
+ })]
343
+ }),
344
+ // The listener cannot be placed as the first element as it will break the in-between inserter.
345
+ // See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
346
+ contentResizeListener]
336
347
  });
337
348
  }
338
349
  export default ImageEdit;
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","isBlobURL","store","blocksStore","Placeholder","useDispatch","useSelect","BlockIcon","MediaPlaceholder","useBlockProps","blockEditorStore","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","useBlockEditingMode","useEffect","useRef","useState","__","sprintf","image","icon","plugins","pluginsIcon","noticesStore","unlock","useUploadMediaFromBlobURL","Image","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","jsx","_jsx","jsxs","_jsxs","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isExternalImage","id","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","blob","altRef","current","captionRef","__unstableMarkNextChangeAsNotPersistent","undefined","getSettings","blockEditingMode","createErrorNotice","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","href","onSelectURL","newURL","allowedTypes","onChange","onError","isExternal","mediaPreview","borderProps","shadowProps","classes","style","keys","length","blockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","placeholder","content","withIllustration","instructions","objectFit","children","parentLayoutType","onSelect","accept","value","disableMediaButtons"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the url 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 the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\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 { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst { getSettings } = useSelect( blockEditorStore );\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\tblob: undefined,\n\t\t} );\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\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\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\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\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\tsizeSlug: newSize,\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\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\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\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( 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( { className: classes } );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration\n\t\t\t\ticon={ lockUrlControls ? pluginsIcon : icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t__(\n\t\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\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls ? (\n\t\t\t\t\t<span className=\"block-bindings-media-placeholder-message\">\n\t\t\t\t\t\t{ lockUrlControlsMessage }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t<Image\n\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tparentLayoutType={ parentLayout?.type }\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","isBlobURL","store","blocksStore","Placeholder","useDispatch","useSelect","BlockIcon","MediaPlaceholder","useBlockProps","blockEditorStore","__experimentalUseBorderProps","useBorderProps","__experimentalGetShadowClassesAndStyles","getShadowClassesAndStyles","useBlockEditingMode","useEffect","useRef","useState","__","sprintf","image","icon","plugins","pluginsIcon","noticesStore","useResizeObserver","unlock","useUploadMediaFromBlobURL","Image","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","pickRelevantMediaFiles","size","imageProps","Object","fromEntries","entries","filter","key","includes","url","sizes","media_details","source_url","isExternalImage","id","hasSize","_image$sizes$size","_image$media_details$","ImageEdit","attributes","setAttributes","isSelected","isSingleSelected","className","insertBlocksAfter","onReplace","context","clientId","__unstableParentLayout","parentLayout","alt","caption","width","height","sizeSlug","aspectRatio","scale","align","metadata","temporaryURL","setTemporaryURL","blob","contentResizeListener","containerWidth","altRef","current","captionRef","__unstableMarkNextChangeAsNotPersistent","undefined","getSettings","blockEditingMode","createErrorNotice","onUploadError","message","type","src","onSelectImage","media","title","imageDefaultSize","newSize","mediaAttributes","omittedCaption","restMediaAttributes","additionalAttributes","linkDestination","window","wp","view","settings","defaultProps","link","href","onSelectURL","newURL","allowedTypes","onChange","onError","isExternal","mediaPreview","borderProps","shadowProps","classes","style","keys","length","blockProps","lockUrlControls","lockUrlControlsMessage","select","blockBindingsSource","getBlockBindingsSource","bindings","source","canUserEditValue","args","label","placeholder","content","withIllustration","instructions","objectFit","children","parentLayoutType","onSelect","accept","value","disableMediaButtons"],"sources":["@wordpress/block-library/src/image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the url 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 the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst [ contentResizeListener, { width: containerWidth } ] =\n\t\tuseResizeObserver();\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 { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst { getSettings } = useSelect( blockEditorStore );\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\tblob: undefined,\n\t\t} );\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\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\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\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = 'full';\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\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\tsizeSlug: newSize,\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\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\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\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( 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( { className: classes } );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\twithIllustration\n\t\t\t\ticon={ lockUrlControls ? pluginsIcon : icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t__(\n\t\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\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls ? (\n\t\t\t\t\t<span className=\"block-bindings-media-placeholder-message\">\n\t\t\t\t\t\t{ lockUrlControlsMessage }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<figure { ...blockProps }>\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\tisSingleSelected={ isSingleSelected }\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\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\tparentLayoutType={ parentLayout?.type }\n\t\t\t\t\tcontainerWidth={ containerWidth }\n\t\t\t\t/>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t\t{\n\t\t\t\t// The listener cannot be placed as the first element as it will break the in-between inserter.\n\t\t\t\t// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120\n\t\t\t\tcontentResizeListener\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ImageEdit;\n"],"mappings":"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","ignoreList":[]}