@wordpress/block-library 9.11.0 → 9.12.1-next.082ed6819.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 (272) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/block-keyboard-shortcuts/index.js +7 -7
  3. package/build/block-keyboard-shortcuts/index.js.map +1 -1
  4. package/build/button/index.js +1 -1
  5. package/build/button/index.js.map +1 -1
  6. package/build/cover/deprecated.js +140 -4
  7. package/build/cover/deprecated.js.map +1 -1
  8. package/build/cover/edit/block-controls.js +1 -1
  9. package/build/cover/edit/block-controls.js.map +1 -1
  10. package/build/cover/edit/cover-placeholder.js +1 -2
  11. package/build/cover/edit/cover-placeholder.js.map +1 -1
  12. package/build/cover/edit/index.js +23 -23
  13. package/build/cover/edit/index.js.map +1 -1
  14. package/build/cover/index.js +10 -10
  15. package/build/cover/index.js.map +1 -1
  16. package/build/cover/save.js +13 -13
  17. package/build/cover/save.js.map +1 -1
  18. package/build/cover/shared.js +6 -7
  19. package/build/cover/shared.js.map +1 -1
  20. package/build/details/index.js +20 -0
  21. package/build/details/index.js.map +1 -1
  22. package/build/file/edit.js +8 -4
  23. package/build/file/edit.js.map +1 -1
  24. package/build/freeform/modal.js +1 -1
  25. package/build/freeform/modal.js.map +1 -1
  26. package/build/gallery/edit.js +1 -1
  27. package/build/gallery/edit.js.map +1 -1
  28. package/build/heading/index.js +1 -7
  29. package/build/heading/index.js.map +1 -1
  30. package/build/home-link/edit.js +20 -36
  31. package/build/home-link/edit.js.map +1 -1
  32. package/build/image/edit.js +1 -1
  33. package/build/image/edit.js.map +1 -1
  34. package/build/image/image.js +144 -78
  35. package/build/image/image.js.map +1 -1
  36. package/build/image/index.js +1 -1
  37. package/build/latest-posts/edit.js +0 -1
  38. package/build/latest-posts/edit.js.map +1 -1
  39. package/build/lock-unlock.js.map +1 -1
  40. package/build/navigation/edit/index.js +2 -23
  41. package/build/navigation/edit/index.js.map +1 -1
  42. package/build/navigation/use-template-part-area-label.js +6 -8
  43. package/build/navigation/use-template-part-area-label.js.map +1 -1
  44. package/build/page-list/index.js +14 -0
  45. package/build/page-list/index.js.map +1 -1
  46. package/build/paragraph/edit.js +26 -25
  47. package/build/paragraph/edit.js.map +1 -1
  48. package/build/post-content/index.js +13 -0
  49. package/build/post-content/index.js.map +1 -1
  50. package/build/post-template/edit.js +11 -0
  51. package/build/post-template/edit.js.map +1 -1
  52. package/build/post-template/index.js +1 -1
  53. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +1 -3
  54. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  55. package/build/query/edit/inspector-controls/index.js +3 -13
  56. package/build/query/edit/inspector-controls/index.js.map +1 -1
  57. package/build/query/edit/pattern-selection-modal.js +0 -3
  58. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  59. package/build/query/edit/query-content.js +10 -12
  60. package/build/query/edit/query-content.js.map +1 -1
  61. package/build/query/index.js +1 -1
  62. package/build/query/utils.js +38 -9
  63. package/build/query/utils.js.map +1 -1
  64. package/build/social-link/edit.js +22 -9
  65. package/build/social-link/edit.js.map +1 -1
  66. package/build/template-part/edit/advanced-controls.js +2 -7
  67. package/build/template-part/edit/advanced-controls.js.map +1 -1
  68. package/build/template-part/edit/index.js +1 -4
  69. package/build/template-part/edit/index.js.map +1 -1
  70. package/build/template-part/edit/selection-modal.js +0 -3
  71. package/build/template-part/edit/selection-modal.js.map +1 -1
  72. package/build/template-part/edit/utils/get-template-part-icon.js +23 -0
  73. package/build/template-part/edit/utils/get-template-part-icon.js.map +1 -0
  74. package/build/template-part/edit/utils/hooks.js +1 -6
  75. package/build/template-part/edit/utils/hooks.js.map +1 -1
  76. package/build/template-part/variations.js +6 -12
  77. package/build/template-part/variations.js.map +1 -1
  78. package/build/video/edit.js +1 -1
  79. package/build/video/edit.js.map +1 -1
  80. package/build/video/tracks-editor.js +135 -123
  81. package/build/video/tracks-editor.js.map +1 -1
  82. package/build-module/block-keyboard-shortcuts/index.js +7 -7
  83. package/build-module/block-keyboard-shortcuts/index.js.map +1 -1
  84. package/build-module/button/index.js +1 -1
  85. package/build-module/button/index.js.map +1 -1
  86. package/build-module/cover/deprecated.js +140 -4
  87. package/build-module/cover/deprecated.js.map +1 -1
  88. package/build-module/cover/edit/block-controls.js +1 -1
  89. package/build-module/cover/edit/block-controls.js.map +1 -1
  90. package/build-module/cover/edit/cover-placeholder.js +1 -2
  91. package/build-module/cover/edit/cover-placeholder.js.map +1 -1
  92. package/build-module/cover/edit/index.js +23 -23
  93. package/build-module/cover/edit/index.js.map +1 -1
  94. package/build-module/cover/index.js +10 -10
  95. package/build-module/cover/index.js.map +1 -1
  96. package/build-module/cover/save.js +13 -13
  97. package/build-module/cover/save.js.map +1 -1
  98. package/build-module/cover/shared.js +6 -7
  99. package/build-module/cover/shared.js.map +1 -1
  100. package/build-module/details/index.js +21 -1
  101. package/build-module/details/index.js.map +1 -1
  102. package/build-module/file/edit.js +8 -4
  103. package/build-module/file/edit.js.map +1 -1
  104. package/build-module/freeform/modal.js +1 -1
  105. package/build-module/freeform/modal.js.map +1 -1
  106. package/build-module/gallery/edit.js +1 -1
  107. package/build-module/gallery/edit.js.map +1 -1
  108. package/build-module/heading/index.js +1 -7
  109. package/build-module/heading/index.js.map +1 -1
  110. package/build-module/home-link/edit.js +23 -39
  111. package/build-module/home-link/edit.js.map +1 -1
  112. package/build-module/image/edit.js +1 -1
  113. package/build-module/image/edit.js.map +1 -1
  114. package/build-module/image/image.js +149 -83
  115. package/build-module/image/image.js.map +1 -1
  116. package/build-module/image/index.js +1 -1
  117. package/build-module/latest-posts/edit.js +0 -1
  118. package/build-module/latest-posts/edit.js.map +1 -1
  119. package/build-module/lock-unlock.js.map +1 -1
  120. package/build-module/navigation/edit/index.js +2 -23
  121. package/build-module/navigation/edit/index.js.map +1 -1
  122. package/build-module/navigation/use-template-part-area-label.js +6 -8
  123. package/build-module/navigation/use-template-part-area-label.js.map +1 -1
  124. package/build-module/page-list/index.js +14 -0
  125. package/build-module/page-list/index.js.map +1 -1
  126. package/build-module/paragraph/edit.js +26 -25
  127. package/build-module/paragraph/edit.js.map +1 -1
  128. package/build-module/post-content/index.js +13 -0
  129. package/build-module/post-content/index.js.map +1 -1
  130. package/build-module/post-template/edit.js +11 -0
  131. package/build-module/post-template/edit.js.map +1 -1
  132. package/build-module/post-template/index.js +1 -1
  133. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +1 -3
  134. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  135. package/build-module/query/edit/inspector-controls/index.js +3 -13
  136. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  137. package/build-module/query/edit/pattern-selection-modal.js +0 -3
  138. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  139. package/build-module/query/edit/query-content.js +10 -12
  140. package/build-module/query/edit/query-content.js.map +1 -1
  141. package/build-module/query/index.js +1 -1
  142. package/build-module/query/utils.js +35 -8
  143. package/build-module/query/utils.js.map +1 -1
  144. package/build-module/social-link/edit.js +24 -11
  145. package/build-module/social-link/edit.js.map +1 -1
  146. package/build-module/template-part/edit/advanced-controls.js +3 -8
  147. package/build-module/template-part/edit/advanced-controls.js.map +1 -1
  148. package/build-module/template-part/edit/index.js +1 -4
  149. package/build-module/template-part/edit/index.js.map +1 -1
  150. package/build-module/template-part/edit/selection-modal.js +0 -3
  151. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  152. package/build-module/template-part/edit/utils/get-template-part-icon.js +15 -0
  153. package/build-module/template-part/edit/utils/get-template-part-icon.js.map +1 -0
  154. package/build-module/template-part/edit/utils/hooks.js +1 -6
  155. package/build-module/template-part/edit/utils/hooks.js.map +1 -1
  156. package/build-module/template-part/variations.js +5 -11
  157. package/build-module/template-part/variations.js.map +1 -1
  158. package/build-module/video/edit.js +1 -1
  159. package/build-module/video/edit.js.map +1 -1
  160. package/build-module/video/tracks-editor.js +136 -124
  161. package/build-module/video/tracks-editor.js.map +1 -1
  162. package/build-style/cover/editor-rtl.css +3 -5
  163. package/build-style/cover/editor.css +3 -5
  164. package/build-style/cover/style-rtl.css +19 -15
  165. package/build-style/cover/style.css +19 -15
  166. package/build-style/editor-rtl.css +19 -30
  167. package/build-style/editor.css +19 -30
  168. package/build-style/group/editor-rtl.css +0 -10
  169. package/build-style/group/editor.css +0 -10
  170. package/build-style/image/editor-rtl.css +4 -0
  171. package/build-style/image/editor.css +4 -0
  172. package/build-style/image/style-rtl.css +0 -2
  173. package/build-style/image/style.css +0 -2
  174. package/build-style/latest-posts/editor-rtl.css +0 -7
  175. package/build-style/latest-posts/editor.css +0 -7
  176. package/build-style/media-text/style-rtl.css +1 -1
  177. package/build-style/media-text/style.css +1 -1
  178. package/build-style/navigation/style-rtl.css +1 -1
  179. package/build-style/navigation/style.css +1 -1
  180. package/build-style/page-list/style-rtl.css +4 -0
  181. package/build-style/page-list/style.css +4 -0
  182. package/build-style/query/editor-rtl.css +0 -4
  183. package/build-style/query/editor.css +0 -4
  184. package/build-style/search/style-rtl.css +3 -3
  185. package/build-style/search/style.css +3 -3
  186. package/build-style/social-link/editor-rtl.css +4 -4
  187. package/build-style/social-link/editor.css +4 -4
  188. package/build-style/style-rtl.css +28 -22
  189. package/build-style/style.css +28 -22
  190. package/build-style/video/editor-rtl.css +8 -0
  191. package/build-style/video/editor.css +8 -0
  192. package/build-types/lock-unlock.d.ts +2 -0
  193. package/build-types/lock-unlock.d.ts.map +1 -0
  194. package/package.json +39 -39
  195. package/src/block-keyboard-shortcuts/index.js +25 -11
  196. package/src/button/index.js +1 -1
  197. package/src/comments/block.json +3 -9
  198. package/src/cover/deprecated.js +182 -4
  199. package/src/cover/edit/block-controls.js +1 -1
  200. package/src/cover/edit/cover-placeholder.js +0 -3
  201. package/src/cover/edit/index.js +42 -27
  202. package/src/cover/editor.scss +4 -5
  203. package/src/cover/index.js +8 -8
  204. package/src/cover/save.js +27 -20
  205. package/src/cover/shared.js +10 -10
  206. package/src/cover/style.scss +40 -16
  207. package/src/cover/test/__snapshots__/edit.native.js.snap +9 -9
  208. package/src/cover/test/__snapshots__/transforms.native.js.snap +4 -4
  209. package/src/cover/test/edit.js +2 -2
  210. package/src/cover/test/edit.native.js +4 -4
  211. package/src/cover/test/transforms.native.js +4 -4
  212. package/src/details/block.json +1 -0
  213. package/src/details/index.js +23 -1
  214. package/src/file/edit.js +9 -3
  215. package/src/freeform/modal.js +1 -1
  216. package/src/gallery/edit.js +1 -1
  217. package/src/group/editor.scss +0 -12
  218. package/src/heading/block.json +1 -7
  219. package/src/home-link/edit.js +27 -45
  220. package/src/home-link/index.php +0 -3
  221. package/src/image/block.json +1 -1
  222. package/src/image/edit.js +1 -1
  223. package/src/image/editor.scss +4 -0
  224. package/src/image/image.js +200 -109
  225. package/src/image/style.scss +0 -1
  226. package/src/image/test/__snapshots__/transforms.native.js.snap +1 -1
  227. package/src/latest-posts/edit.js +0 -1
  228. package/src/latest-posts/editor.scss +0 -11
  229. package/src/media-text/style.scss +1 -1
  230. package/src/media-text/test/__snapshots__/transforms.native.js.snap +2 -2
  231. package/src/navigation/edit/index.js +3 -30
  232. package/src/navigation/index.php +5 -151
  233. package/src/navigation/style.scss +1 -1
  234. package/src/navigation/use-template-part-area-label.js +10 -10
  235. package/src/page-list/block.json +14 -0
  236. package/src/page-list/style.scss +4 -0
  237. package/src/paragraph/edit.js +20 -17
  238. package/src/pattern/index.php +0 -7
  239. package/src/post-content/block.json +14 -1
  240. package/src/post-template/block.json +2 -1
  241. package/src/post-template/edit.js +19 -0
  242. package/src/query/block.json +1 -1
  243. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -5
  244. package/src/query/edit/inspector-controls/index.js +2 -12
  245. package/src/query/edit/pattern-selection-modal.js +0 -3
  246. package/src/query/edit/query-content.js +9 -17
  247. package/src/query/editor.scss +0 -4
  248. package/src/query/index.php +1 -1
  249. package/src/query/test/utils.js +59 -1
  250. package/src/query/utils.js +43 -15
  251. package/src/rss/index.php +11 -8
  252. package/src/search/index.php +2 -2
  253. package/src/search/style.scss +3 -5
  254. package/src/social-link/edit.js +47 -19
  255. package/src/social-link/editor.scss +6 -7
  256. package/src/template-part/edit/advanced-controls.js +13 -13
  257. package/src/template-part/edit/index.js +1 -4
  258. package/src/template-part/edit/selection-modal.js +0 -3
  259. package/src/template-part/edit/utils/get-template-part-icon.js +20 -0
  260. package/src/template-part/edit/utils/hooks.js +2 -7
  261. package/src/template-part/variations.js +4 -16
  262. package/src/video/edit.js +1 -1
  263. package/src/video/editor.scss +9 -0
  264. package/src/video/test/__snapshots__/transforms.native.js.snap +1 -1
  265. package/src/video/tracks-editor.js +157 -141
  266. package/tsconfig.tsbuildinfo +1 -1
  267. package/build/query/edit/inspector-controls/create-new-post-link.js +0 -40
  268. package/build/query/edit/inspector-controls/create-new-post-link.js.map +0 -1
  269. package/build-module/query/edit/inspector-controls/create-new-post-link.js +0 -33
  270. package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +0 -1
  271. package/src/query/edit/inspector-controls/create-new-post-link.js +0 -32
  272. /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_blob","require","_components","_compose","_data","_blockEditor","_element","_i18n","_keycodes","_url","_blocks","_icons","_notices","_coreData","_lockUnlock","_util","_edit","_caption","_hooks","_constants","_utils","_jsxRuntime","DimensionsTool","ResolutionTool","unlock","blockEditorPrivateApis","scaleOptions","value","label","_x","help","__","ImageWrapper","href","children","jsx","onClick","event","preventDefault","style","pointerEvents","cursor","display","Image","temporaryURL","attributes","setAttributes","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","context","clientId","blockEditingMode","parentLayoutType","maxContentWidth","url","alt","align","id","rel","linkClass","linkDestination","title","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","useRef","allowResize","getBlock","getSettings","useSelect","blockEditorStore","image","select","coreStore","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","isLargeViewport","useViewportMatch","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","useState","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasImageErrored","setHasImageErrored","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","useEffect","isExternalImage","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","useMemo","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","createUpgradedEmbedBlock","onImageLoad","target","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","isBlobURL","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","canEditImage","allowCrop","switchToCover","switchToBlockType","dimensionsUnitsOptions","useCustomUnits","availableUnits","useSettings","showLightboxSetting","lightboxChecked","dropdownMenuProps","useToolsPanelDropdownMenuProps","dimensionsControl","onChange","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","aspectRatioControl","tools","resetAll","sizeControls","InspectorControls","__experimentalToolsPanel","arePatternOverridesEnabled","bindings","__default","source","lockUrlControls","lockHrefControls","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","lockCaption","urlBinding","altBinding","titleBinding","hasParentPattern","urlBindingSource","getBlockBindingsSource","altBindingSource","titleBindingSource","canUserEditValue","args","sprintf","showUrlInput","showCoverControls","showBlockControls","mediaReplaceFlow","BlockControls","group","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","onReset","controls","jsxs","Fragment","__experimentalImageURLInputUI","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","ToolbarButton","icon","crop","overlayText","ToolbarGroup","upload","Dropdown","popoverProps","position","renderToggle","isOpen","onToggle","onKeyDown","keyCode","DOWN","renderContent","TextareaControl","className","disabled","ExternalLink","__nextHasNoMarginBottom","TextControl","__next40pxDefaultSize","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","readOnly","length","options","filename","getFilename","defaultedAlt","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","isRounded","Placeholder","withIllustration","Spinner","src","onLoad","ref","objectFit","__experimentalImageEditor","onSaveImage","imageAttributes","onFinishEditing","numericRatio","evalAspectRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","maxResizeWidth","showRightHandle","showLeftHandle","isRTL","ResizableBox","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","Math","abs","offsetWidth","String","resizeRatio","Caption","isSelected","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\tDropdown,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPlaceholder,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { getFilename } from '@wordpress/url';\nimport { getBlockBindingsSource, switchToBlockType } from '@wordpress/blocks';\nimport { crop, overlayText, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n\tparentLayoutType,\n\tmaxContentWidth,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst [ hasImageErrored, setHasImageErrored ] = useState( false );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSingleSelected, externalBlob ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\tsetHasImageErrored( true );\n\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onImageLoad( event ) {\n\t\tsetHasImageErrored( false );\n\t\tsetLoadedNaturalSize( {\n\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t} );\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction resetLightbox() {\n\t\t// When deleting a link from an image while lightbox settings\n\t\t// are enabled by default, we should disable the lightbox,\n\t\t// otherwise the resulting UX looks like a mistake.\n\t\t// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.\n\t\tif ( lightboxSetting?.enabled && lightboxSetting?.allowEditing ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop =\n\t\tisSingleSelected &&\n\t\tcanEditImage &&\n\t\t! isEditingImage &&\n\t\t! isContentOnlyMode;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t// If a block-level override is set, we should give users the option to\n\t\t// remove that override, even if the lightbox UI is disabled in the settings.\n\t\t( !! lightbox && lightbox?.enabled !== lightboxSetting?.enabled ) ||\n\t\tlightboxSetting?.allowEditing;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst aspectRatioControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { aspectRatio } }\n\t\t\tonChange={ ( { aspectRatio: newAspectRatio } ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\tscale: 'cover',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\ttools={ [ 'aspectRatio' ] }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ isResizable &&\n\t\t\t\t\t( parentLayoutType === 'grid'\n\t\t\t\t\t\t? aspectRatioControl\n\t\t\t\t\t\t: dimensionsControl ) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst arePatternOverridesEnabled =\n\t\tmetadata?.bindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\tlockCaption = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern = !! context[ 'pattern/overrides' ];\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t! urlBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: urlBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern || arePatternOverridesEnabled,\n\t\t\t\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t! altBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: altBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.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\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t! titleBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: titleBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.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\ttitleBindingSource.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[\n\t\t\tarePatternOverridesEnabled,\n\t\t\tcontext,\n\t\t\tisSingleSelected,\n\t\t\tmetadata?.bindings,\n\t\t]\n\t);\n\n\tconst showUrlInput =\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockHrefControls &&\n\t\t! lockUrlControls;\n\n\tconst showCoverControls = isSingleSelected && canInsertCover;\n\n\tconst showBlockControls = showUrlInput || allowCrop || showCoverControls;\n\n\tconst mediaReplaceFlow = isSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockUrlControls && (\n\t\t\t// For contentOnly mode, put this button in its own area so it has borders around it.\n\t\t\t<BlockControls group={ isContentOnlyMode ? 'inline' : 'other' }>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\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\tname={ ! url ? __( 'Add image' ) : __( 'Replace' ) }\n\t\t\t\t\tonReset={ () => onSelectImage( undefined ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ showBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ showUrlInput && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t\tresetLightbox={ resetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ allowCrop && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showCoverControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload to Media Library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\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\t\t{ _x(\n\t\t\t\t\t\t\t\t\t'Alternative text',\n\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\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}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ title && (\n\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tonToggle();\n\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>\n\t\t\t\t\t\t\t\t\t{ __( 'Title' ) }\n\t\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t</>\n\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/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\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}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable &&\n\t\t\t\t\t\t( parentLayoutType === 'grid'\n\t\t\t\t\t\t\t? aspectRatioControl\n\t\t\t\t\t\t\t: dimensionsControl ) }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tlet img =\n\t\ttemporaryURL && hasImageErrored ? (\n\t\t\t// Show a placeholder during upload when the blob URL can't be loaded. This can\n\t\t\t// happen when the user uploads a HEIC image in a browser that doesn't support them.\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"wp-block-image__placeholder\"\n\t\t\t\twithIllustration\n\t\t\t>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t) : (\n\t\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t\t// should direct focus to block.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\t\talt={ defaultedAlt }\n\t\t\t\t\tonError={ onImageError }\n\t\t\t\t\tonLoad={ onImageLoad }\n\t\t\t\t\tref={ imageRef }\n\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t( width && height ) || aspectRatio\n\t\t\t\t\t\t\t\t? '100%'\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t( width && height ) || aspectRatio\n\t\t\t\t\t\t\t\t? '100%'\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ temporaryURL && <Spinner /> }\n\t\t\t</>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else if ( ! isResizable || parentLayoutType === 'grid' ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\t\tconst maxResizeWidth = maxContentWidth || maxWidthBuffer;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSingleSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxResizeWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxResizeWidth / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\n\n\t\t\t\t\t// Clear hardcoded width if the resized width is close to the max-content width.\n\t\t\t\t\tif (\n\t\t\t\t\t\tmaxContentWidth &&\n\t\t\t\t\t\t// Only do this if the image is bigger than the container to prevent it from being squished.\n\t\t\t\t\t\t// TODO: Remove this check if the image support setting 100% width.\n\t\t\t\t\t\tnaturalWidth >= maxContentWidth &&\n\t\t\t\t\t\tMath.abs( elt.offsetWidth - maxContentWidth ) < 10\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ mediaReplaceFlow }\n\t\t\t\t{ /* Add all controls if the image attributes are connected. */ }\n\t\t\t\t{ metadata?.bindings ? controls : sizeControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ mediaReplaceFlow }\n\t\t\t{ controls }\n\t\t\t{ img }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={\n\t\t\t\t\tisSingleSelected &&\n\t\t\t\t\thasNonContentControls &&\n\t\t\t\t\t! arePatternOverridesEnabled\n\t\t\t\t}\n\t\t\t\treadOnly={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blob","require","_components","_compose","_data","_blockEditor","_element","_i18n","_url","_blocks","_icons","_notices","_coreData","_lockUnlock","_util","_edit","_caption","_hooks","_constants","_utils","_jsxRuntime","DimensionsTool","ResolutionTool","unlock","blockEditorPrivateApis","scaleOptions","value","label","_x","help","__","WRITEMODE_POPOVER_PROPS","placement","ImageWrapper","href","children","jsx","onClick","event","preventDefault","style","pointerEvents","cursor","display","ContentOnlyControls","attributes","setAttributes","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","popoverAnchor","setPopoverAnchor","useState","isAltDialogOpen","setIsAltDialogOpen","isTitleDialogOpen","setIsTitleDialogOpen","jsxs","Fragment","ToolbarItem","ref","toggleProps","DropdownMenu","icon","chevronDown","description","popoverProps","onClose","MenuItem","Popover","anchor","offset","variant","className","TextareaControl","alt","onChange","disabled","ExternalLink","__nextHasNoMarginBottom","TextControl","__next40pxDefaultSize","title","Image","temporaryURL","isSingleSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","context","clientId","blockEditingMode","parentLayoutType","maxContentWidth","url","align","id","rel","linkClass","linkDestination","width","height","aspectRatio","scale","linkTarget","sizeSlug","lightbox","metadata","numericWidth","parseInt","undefined","numericHeight","imageRef","useRef","allowResize","getBlock","getSettings","useSelect","blockEditorStore","image","select","coreStore","getMedia","canInsertCover","imageEditing","imageSizes","maxWidth","getBlockRootClientId","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","useDispatch","createErrorNotice","createSuccessNotice","noticesStore","isLargeViewport","useViewportMatch","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasImageErrored","setHasImageErrored","hasNonContentControls","isContentOnlyMode","isResizable","imageSizeOptions","filter","slug","media_details","sizes","source_url","map","name","useEffect","isExternalImage","mediaUpload","window","fetch","then","response","blob","catch","naturalWidth","naturalHeight","useMemo","current","complete","onResizeStart","onResizeStop","onImageError","embedBlock","createUpgradedEmbedBlock","onImageLoad","target","onSetHref","props","onSetLightbox","enable","lightboxSetting","enabled","resetLightbox","allowEditing","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","isBlobURL","type","allowedTypes","ALLOWED_MEDIA_TYPES","onError","message","canEditImage","allowCrop","switchToCover","switchToBlockType","dimensionsUnitsOptions","useCustomUnits","availableUnits","useSettings","showLightboxSetting","lightboxChecked","dropdownMenuProps","useToolsPanelDropdownMenuProps","dimensionsControl","newWidth","newHeight","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","aspectRatioControl","tools","resetAll","sizeControls","InspectorControls","__experimentalToolsPanel","arePatternOverridesEnabled","bindings","__default","source","lockUrlControls","lockHrefControls","lockCaption","urlBinding","altBinding","titleBinding","hasParentPattern","urlBindingSource","getBlockBindingsSource","altBindingSource","titleBindingSource","canUserEditValue","args","sprintf","showUrlInput","showCoverControls","showBlockControls","mediaReplaceFlow","BlockControls","group","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","onReset","controls","__experimentalImageURLInputUI","onChangeUrl","mediaUrl","mediaLink","link","lightboxEnabled","ToolbarButton","crop","overlayText","ToolbarGroup","upload","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","readOnly","length","options","filename","getFilename","defaultedAlt","borderProps","useBorderProps","shadowProps","getShadowClassesAndStyles","isRounded","postType","postId","queryId","isDescendentOfQueryLoop","Number","isFinite","setFeaturedImage","useEntityProp","Placeholder","withIllustration","Spinner","src","onLoad","objectFit","__experimentalImageEditor","onSaveImage","imageAttributes","onFinishEditing","numericRatio","evalAspectRatio","customRatio","naturalRatio","ratio","currentWidth","currentHeight","minWidth","MIN_SIZE","minHeight","maxWidthBuffer","maxResizeWidth","showRightHandle","showLeftHandle","isRTL","ResizableBox","size","showHandle","maxHeight","lockAspectRatio","top","right","bottom","left","direction","elt","Math","abs","offsetWidth","String","resizeRatio","setPostFeatureImage","featuredImageControl","BlockSettingsMenuControls","selectedClientIds","Caption","isSelected","showToolbarButton"],"sources":["@wordpress/block-library/src/image/image.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPlaceholder,\n\tMenuItem,\n\tToolbarItem,\n\tDropdownMenu,\n\tPopover,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockSettingsMenuControls,\n} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport { getBlockBindingsSource, switchToBlockType } from '@wordpress/blocks';\nimport { crop, overlayText, upload, chevronDown } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore, useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\n\n/**\n * Module constants\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\nconst WRITEMODE_POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nfunction ContentOnlyControls( {\n\tattributes,\n\tsetAttributes,\n\tlockAltControls,\n\tlockAltControlsMessage,\n\tlockTitleControls,\n\tlockTitleControlsMessage,\n} ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst [ isAltDialogOpen, setIsAltDialogOpen ] = useState( false );\n\tconst [ isTitleDialogOpen, setIsTitleDialogOpen ] = useState( false );\n\treturn (\n\t\t<>\n\t\t\t<ToolbarItem ref={ setPopoverAnchor }>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\tlabel={ __( 'More' ) }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t\tdescription: __( 'Displays more controls.' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tpopoverProps={ WRITEMODE_POPOVER_PROPS }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsAltDialogOpen( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t\t'Alternative text',\n\t\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsTitleDialogOpen( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Title text' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t\t{ isAltDialogOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonClose={ () => setIsAltDialogOpen( false ) }\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-image__toolbar_content_textarea__container\">\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tvalue={ attributes.alt || '' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\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\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t\t{ isTitleDialogOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonClose={ () => setIsTitleDialogOpen( false ) }\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-image__toolbar_content_textarea__container\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\tvalue={ attributes.title || '' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\ttitle: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\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\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n\tparentLayoutType,\n\tmaxContentWidth,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst [ hasImageErrored, setHasImageErrored ] = useState( false );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSingleSelected, externalBlob ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\tsetHasImageErrored( true );\n\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onImageLoad( event ) {\n\t\tsetHasImageErrored( false );\n\t\tsetLoadedNaturalSize( {\n\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t} );\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction resetLightbox() {\n\t\t// When deleting a link from an image while lightbox settings\n\t\t// are enabled by default, we should disable the lightbox,\n\t\t// otherwise the resulting UX looks like a mistake.\n\t\t// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.\n\t\tif ( lightboxSetting?.enabled && lightboxSetting?.allowEditing ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop =\n\t\tisSingleSelected &&\n\t\tcanEditImage &&\n\t\t! isEditingImage &&\n\t\t! isContentOnlyMode;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t// If a block-level override is set, we should give users the option to\n\t\t// remove that override, even if the lightbox UI is disabled in the settings.\n\t\t( !! lightbox && lightbox?.enabled !== lightboxSetting?.enabled ) ||\n\t\tlightboxSetting?.allowEditing;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst dimensionsControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst aspectRatioControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { aspectRatio } }\n\t\t\tonChange={ ( { aspectRatio: newAspectRatio } ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\tscale: 'cover',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\ttools={ [ 'aspectRatio' ] }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ isResizable &&\n\t\t\t\t\t( parentLayoutType === 'grid'\n\t\t\t\t\t\t? aspectRatioControl\n\t\t\t\t\t\t: dimensionsControl ) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst arePatternOverridesEnabled =\n\t\tmetadata?.bindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\tlockCaption = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern = !! context[ 'pattern/overrides' ];\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t! urlBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: urlBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern || arePatternOverridesEnabled,\n\t\t\t\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t! altBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: altBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.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\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t! titleBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: titleBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.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\ttitleBindingSource.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[\n\t\t\tarePatternOverridesEnabled,\n\t\t\tcontext,\n\t\t\tisSingleSelected,\n\t\t\tmetadata?.bindings,\n\t\t]\n\t);\n\n\tconst showUrlInput =\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockHrefControls &&\n\t\t! lockUrlControls;\n\n\tconst showCoverControls = isSingleSelected && canInsertCover;\n\n\tconst showBlockControls = showUrlInput || allowCrop || showCoverControls;\n\n\tconst mediaReplaceFlow = isSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockUrlControls && (\n\t\t\t// For contentOnly mode, put this button in its own area so it has borders around it.\n\t\t\t<BlockControls group={ isContentOnlyMode ? 'inline' : 'other' }>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\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\tname={ ! url ? __( 'Add image' ) : __( 'Replace' ) }\n\t\t\t\t\tonReset={ () => onSelectImage( undefined ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t);\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ showBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ showUrlInput && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t\tresetLightbox={ resetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ allowCrop && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showCoverControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload to Media Library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ContentOnlyControls\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tlockAltControls={ lockAltControls }\n\t\t\t\t\t\tlockAltControlsMessage={ lockAltControlsMessage }\n\t\t\t\t\t\tlockTitleControls={ lockTitleControls }\n\t\t\t\t\t\tlockTitleControlsMessage={ lockTitleControlsMessage }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\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}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable &&\n\t\t\t\t\t\t( parentLayoutType === 'grid'\n\t\t\t\t\t\t\t? aspectRatioControl\n\t\t\t\t\t\t\t: dimensionsControl ) }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tconst { postType, postId, queryId } = context;\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\n\tconst [ , setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tlet img =\n\t\ttemporaryURL && hasImageErrored ? (\n\t\t\t// Show a placeholder during upload when the blob URL can't be loaded. This can\n\t\t\t// happen when the user uploads a HEIC image in a browser that doesn't support them.\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"wp-block-image__placeholder\"\n\t\t\t\twithIllustration\n\t\t\t>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t) : (\n\t\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t\t// should direct focus to block.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\t\talt={ defaultedAlt }\n\t\t\t\t\tonError={ onImageError }\n\t\t\t\t\tonLoad={ onImageLoad }\n\t\t\t\t\tref={ imageRef }\n\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t( width && height ) || aspectRatio\n\t\t\t\t\t\t\t\t? '100%'\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t( width && height ) || aspectRatio\n\t\t\t\t\t\t\t\t? '100%'\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ temporaryURL && <Spinner /> }\n\t\t\t</>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else if ( ! isResizable || parentLayoutType === 'grid' ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\t\tconst maxResizeWidth = maxContentWidth || maxWidthBuffer;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSingleSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxResizeWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxResizeWidth / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\n\n\t\t\t\t\t// Clear hardcoded width if the resized width is close to the max-content width.\n\t\t\t\t\tif (\n\t\t\t\t\t\tmaxContentWidth &&\n\t\t\t\t\t\t// Only do this if the image is bigger than the container to prevent it from being squished.\n\t\t\t\t\t\t// TODO: Remove this check if the image support setting 100% width.\n\t\t\t\t\t\tnaturalWidth >= maxContentWidth &&\n\t\t\t\t\t\tMath.abs( elt.offsetWidth - maxContentWidth ) < 10\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ mediaReplaceFlow }\n\t\t\t\t{ /* Add all controls if the image attributes are connected. */ }\n\t\t\t\t{ metadata?.bindings ? controls : sizeControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Set the post's featured image with the current image.\n\t */\n\tconst setPostFeatureImage = () => {\n\t\tsetFeaturedImage( id );\n\t\tcreateSuccessNotice( __( 'Post featured image updated.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst featuredImageControl = (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds } ) =>\n\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t! isDescendentOfQueryLoop &&\n\t\t\t\tpostId &&\n\t\t\t\tid &&\n\t\t\t\tclientId === selectedClientIds[ 0 ] && (\n\t\t\t\t\t<MenuItem onClick={ setPostFeatureImage }>\n\t\t\t\t\t\t{ __( 'Set featured image' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ mediaReplaceFlow }\n\t\t\t{ controls }\n\t\t\t{ featuredImageControl }\n\t\t\t{ img }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={\n\t\t\t\t\tisSingleSelected &&\n\t\t\t\t\thasNonContentControls &&\n\t\t\t\t\t! arePatternOverridesEnabled\n\t\t\t\t}\n\t\t\t\treadOnly={ lockCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ const metadata = exports.metadata = {
24
24
  name: "core/image",
25
25
  title: "Image",
26
26
  category: "media",
27
- usesContext: ["allowResize", "imageCrop", "fixedHeight"],
27
+ usesContext: ["allowResize", "imageCrop", "fixedHeight", "postId", "postType", "queryId"],
28
28
  description: "Insert an image to make a visual statement.",
29
29
  keywords: ["img", "photo", "picture"],
30
30
  textdomain: "default",
@@ -180,7 +180,6 @@ function LatestPostsEdit({
180
180
  displayPostContent: value
181
181
  })
182
182
  }), displayPostContent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RadioControl, {
183
- className: "wp-block-latest-posts__post-content-radio",
184
183
  label: (0, _i18n.__)('Show'),
185
184
  selected: displayPostContentRadio,
186
185
  options: [{
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_date","_blockEditor","_data","_icons","_coreData","_notices","_compose","_element","_constants","_jsxRuntime","CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","_image$media_details$","image","_embedded","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","_categoriesList$reduc","instanceId","useInstanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","useSelect","select","_settings$imageDimens","_settings$imageDimens2","getEntityRecords","getUsers","coreStore","settings","blockEditorStore","getSettings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","width","height","createWarningNotice","useDispatch","noticeStore","showRedirectionPreventedNotice","event","preventDefault","__","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","imageAlignmentOptions","icon","alignNone","positionLeft","positionCenter","positionRight","hasPosts","inspectorControls","jsxs","InspectorControls","children","PanelBody","title","jsx","ToggleControl","__nextHasNoMarginBottom","checked","onChange","RadioControl","className","selected","options","RangeControl","__next40pxDefaultSize","min","MIN_EXCERPT_LENGTH","max","MAX_EXCERPT_LENGTH","Fragment","__experimentalImageSizeControl","newAttrs","hasOwnProperty","imageWidth","imageHeight","imageSizeHelp","onChangeImage","undefined","__experimentalToggleGroupControl","__experimentalToggleGroupControlOptionIcon","QueryControls","numberOfItems","onOrderChange","onOrderByChange","onNumberOfItemsChange","onCategoryChange","selectedCategories","onAuthorChange","Number","selectedAuthorId","MAX_POSTS_COLUMNS","Math","required","blockProps","useBlockProps","clsx","Placeholder","pin","Array","isArray","Spinner","displayPosts","slice","layoutControls","list","_x","onClick","isActive","grid","dateFormat","formats","date","BlockControls","ToolbarGroup","controls","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","createElement","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","src","style","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","createInterpolateElement","sprintf","a","href","link","rel","span","dangerouslySetInnerHTML","__html","date_gmt","dateTime","format","dateI18n","content"],"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tpin,\n\tlist,\n\tgrid,\n\talignNone,\n\tpositionLeft,\n\tpositionCenter,\n\tpositionRight,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tlatestPosts,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'wp:featuredmedia',\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/latest-posts/redirection-prevented/${ instanceId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\tconst imageAlignmentOptions = [\n\t\t{\n\t\t\tvalue: 'none',\n\t\t\ticon: alignNone,\n\t\t\tlabel: __( 'None' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'left',\n\t\t\ticon: positionLeft,\n\t\t\tlabel: __( 'Left' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'center',\n\t\t\ticon: positionCenter,\n\t\t\tlabel: __( 'Center' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'right',\n\t\t\ticon: positionRight,\n\t\t\tlabel: __( 'Right' ),\n\t\t},\n\t];\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-content-radio\"\n\t\t\t\t\t\tlabel={ __( 'Show' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tclassName=\"editor-latest-posts-image-alignment-control\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Image alignment' ) }\n\t\t\t\t\t\t\tvalue={ featuredImageAlign || 'none' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageAlign:\n\t\t\t\t\t\t\t\t\t\tvalue !== 'none' ? value : undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ imageAlignmentOptions.map(\n\t\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\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}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\taddLinkToFeaturedImage: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: _x( 'List view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: _x( 'Grid view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = clsx( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Hidden accessibility text: Post title */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'… <a>Read more<span>: %1$s</span></a>'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\ttitleTrimmed || __( '(no title)' )\n\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\t\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__read-more\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\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\tspan: (\n\t\t\t\t\t\t\t\t\t\t<span className=\"screen-reader-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</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\n\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) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_date","_blockEditor","_data","_icons","_coreData","_notices","_compose","_element","_constants","_jsxRuntime","CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","_image$media_details$","image","_embedded","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","_categoriesList$reduc","instanceId","useInstanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","useSelect","select","_settings$imageDimens","_settings$imageDimens2","getEntityRecords","getUsers","coreStore","settings","blockEditorStore","getSettings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","width","height","createWarningNotice","useDispatch","noticeStore","showRedirectionPreventedNotice","event","preventDefault","__","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","imageAlignmentOptions","icon","alignNone","positionLeft","positionCenter","positionRight","hasPosts","inspectorControls","jsxs","InspectorControls","children","PanelBody","title","jsx","ToggleControl","__nextHasNoMarginBottom","checked","onChange","RadioControl","selected","options","RangeControl","__next40pxDefaultSize","min","MIN_EXCERPT_LENGTH","max","MAX_EXCERPT_LENGTH","Fragment","__experimentalImageSizeControl","newAttrs","hasOwnProperty","imageWidth","imageHeight","imageSizeHelp","onChangeImage","undefined","__experimentalToggleGroupControl","className","__experimentalToggleGroupControlOptionIcon","QueryControls","numberOfItems","onOrderChange","onOrderByChange","onNumberOfItemsChange","onCategoryChange","selectedCategories","onAuthorChange","Number","selectedAuthorId","MAX_POSTS_COLUMNS","Math","required","blockProps","useBlockProps","clsx","Placeholder","pin","Array","isArray","Spinner","displayPosts","slice","layoutControls","list","_x","onClick","isActive","grid","dateFormat","formats","date","BlockControls","ToolbarGroup","controls","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","createElement","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","src","style","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","createInterpolateElement","sprintf","a","href","link","rel","span","dangerouslySetInnerHTML","__html","date_gmt","dateTime","format","dateI18n","content"],"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tpin,\n\tlist,\n\tgrid,\n\talignNone,\n\tpositionLeft,\n\tpositionCenter,\n\tpositionRight,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tlatestPosts,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'wp:featuredmedia',\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/latest-posts/redirection-prevented/${ instanceId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\tconst imageAlignmentOptions = [\n\t\t{\n\t\t\tvalue: 'none',\n\t\t\ticon: alignNone,\n\t\t\tlabel: __( 'None' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'left',\n\t\t\ticon: positionLeft,\n\t\t\tlabel: __( 'Left' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'center',\n\t\t\ticon: positionCenter,\n\t\t\tlabel: __( 'Center' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'right',\n\t\t\ticon: positionRight,\n\t\t\tlabel: __( 'Right' ),\n\t\t},\n\t];\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tlabel={ __( 'Show' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tclassName=\"editor-latest-posts-image-alignment-control\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Image alignment' ) }\n\t\t\t\t\t\t\tvalue={ featuredImageAlign || 'none' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageAlign:\n\t\t\t\t\t\t\t\t\t\tvalue !== 'none' ? value : undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ imageAlignmentOptions.map(\n\t\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\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}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\taddLinkToFeaturedImage: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: _x( 'List view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: _x( 'Grid view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = clsx( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Hidden accessibility text: Post title */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'… <a>Read more<span>: %1$s</span></a>'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\ttitleTrimmed || __( '(no title)' )\n\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\t\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__read-more\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\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\tspan: (\n\t\t\t\t\t\t\t\t\t\t<span className=\"screen-reader-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</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\n\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) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_privateApis","require","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","exports"],"sources":["@wordpress/block-library/src/lock-unlock.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/block-library'\n\t);\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5B,IAAAC,6DAAgD,EAC/C,+HAA+H,EAC/H,0BACD,CAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAAAE,OAAA,CAAAH,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["_privateApis","require","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","exports"],"sources":["@wordpress/block-library/src/lock-unlock.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/block-library'\n\t);\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5B,IAAAC,6DAAgD,EAC/C,+HAA+H,EAC/H,0BACD,CAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAAAE,OAAA,CAAAH,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -51,27 +51,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
51
51
  * Internal dependencies
52
52
  */
53
53
 
54
- function useResponsiveMenu(navRef) {
55
- const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0, _element.useState)(false);
56
- (0, _element.useEffect)(() => {
57
- if (!navRef.current) {
58
- return;
59
- }
60
- const htmlElement = navRef.current.ownerDocument.documentElement;
61
-
62
- // Add a `has-modal-open` class to the <html> when the responsive
63
- // menu is open. This reproduces the same behavior of the frontend.
64
- if (isResponsiveMenuOpen) {
65
- htmlElement.classList.add('has-modal-open');
66
- } else {
67
- htmlElement.classList.remove('has-modal-open');
68
- }
69
- return () => {
70
- htmlElement?.classList.remove('has-modal-open');
71
- };
72
- }, [navRef, isResponsiveMenuOpen]);
73
- return [isResponsiveMenuOpen, setResponsiveMenuVisibility];
74
- }
75
54
  function ColorTools({
76
55
  textColor,
77
56
  setTextColor,
@@ -231,8 +210,7 @@ function Navigation({
231
210
  selectBlock,
232
211
  __unstableMarkNextChangeAsNotPersistent
233
212
  } = (0, _data.useDispatch)(_blockEditor.store);
234
- const navRef = (0, _element.useRef)();
235
- const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = useResponsiveMenu(navRef);
213
+ const [isResponsiveMenuOpen, setResponsiveMenuVisibility] = (0, _element.useState)(false);
236
214
  const [overlayMenuPreview, setOverlayMenuPreview] = (0, _element.useState)(false);
237
215
  const {
238
216
  hasResolvedNavigationMenus,
@@ -295,6 +273,7 @@ function Navigation({
295
273
  __unstableMarkNextChangeAsNotPersistent();
296
274
  setRef(navigationFallbackId);
297
275
  }, [ref, setRef, hasUnsavedBlocks, navigationFallbackId, __unstableMarkNextChangeAsNotPersistent]);
276
+ const navRef = (0, _element.useRef)();
298
277
 
299
278
  // The standard HTML5 tag for the block wrapper.
300
279
  const TagName = 'nav';