@wordpress/block-library 8.5.0 → 8.6.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 (287) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/buttons/edit.native.js +1 -1
  3. package/build/buttons/edit.native.js.map +1 -1
  4. package/build/columns/edit.js +10 -8
  5. package/build/columns/edit.js.map +1 -1
  6. package/build/columns/edit.native.js +1 -1
  7. package/build/columns/edit.native.js.map +1 -1
  8. package/build/comments/edit/placeholder.js +8 -5
  9. package/build/comments/edit/placeholder.js.map +1 -1
  10. package/build/cover/index.js +13 -4
  11. package/build/cover/index.js.map +1 -1
  12. package/build/cover/variations.js +29 -0
  13. package/build/cover/variations.js.map +1 -0
  14. package/build/embed/edit.js +13 -14
  15. package/build/embed/edit.js.map +1 -1
  16. package/build/embed/edit.native.js +18 -14
  17. package/build/embed/edit.native.js.map +1 -1
  18. package/build/embed/util.js +39 -12
  19. package/build/embed/util.js.map +1 -1
  20. package/build/gallery/edit.js +1 -0
  21. package/build/gallery/edit.js.map +1 -1
  22. package/build/latest-posts/edit.js +10 -10
  23. package/build/latest-posts/edit.js.map +1 -1
  24. package/build/latest-posts/edit.native.js +3 -3
  25. package/build/latest-posts/edit.native.js.map +1 -1
  26. package/build/media-text/constants.js +17 -1
  27. package/build/media-text/constants.js.map +1 -1
  28. package/build/media-text/edit.js +7 -19
  29. package/build/media-text/edit.js.map +1 -1
  30. package/build/media-text/edit.native.js +6 -5
  31. package/build/media-text/edit.native.js.map +1 -1
  32. package/build/media-text/transforms.js +32 -44
  33. package/build/media-text/transforms.js.map +1 -1
  34. package/build/navigation/edit/index.js +56 -86
  35. package/build/navigation/edit/index.js.map +1 -1
  36. package/build/navigation/edit/inner-blocks.js +4 -1
  37. package/build/navigation/edit/inner-blocks.js.map +1 -1
  38. package/build/navigation/edit/menu-inspector-controls.js +2 -5
  39. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  40. package/build/navigation/edit/navigation-menu-selector.js +26 -22
  41. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  42. package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
  43. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  44. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
  45. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  46. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  47. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  48. package/build/navigation/edit/use-navigation-notice.js +1 -1
  49. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  50. package/build/navigation-link/edit.js +0 -11
  51. package/build/navigation-link/edit.js.map +1 -1
  52. package/build/navigation-link/link-ui.js +0 -1
  53. package/build/navigation-link/link-ui.js.map +1 -1
  54. package/build/navigation-submenu/edit.js +1 -13
  55. package/build/navigation-submenu/edit.js.map +1 -1
  56. package/build/page-list/edit.js +59 -45
  57. package/build/page-list/edit.js.map +1 -1
  58. package/build/page-list-item/edit.js +3 -2
  59. package/build/page-list-item/edit.js.map +1 -1
  60. package/build/post-content/edit.js +6 -1
  61. package/build/post-content/edit.js.map +1 -1
  62. package/build/post-featured-image/dimension-controls.js +0 -6
  63. package/build/post-featured-image/dimension-controls.js.map +1 -1
  64. package/build/post-featured-image/edit.js +1 -1
  65. package/build/post-featured-image/edit.js.map +1 -1
  66. package/build/pullquote/deprecated.js +3 -3
  67. package/build/pullquote/deprecated.js.map +1 -1
  68. package/build/query/edit/query-placeholder.js +3 -2
  69. package/build/query/edit/query-placeholder.js.map +1 -1
  70. package/build/query/utils.js +26 -9
  71. package/build/query/utils.js.map +1 -1
  72. package/build/table/state.js +12 -4
  73. package/build/table/state.js.map +1 -1
  74. package/build/template-part/edit/import-controls.js +4 -24
  75. package/build/template-part/edit/import-controls.js.map +1 -1
  76. package/build/template-part/edit/utils/transformers.js +69 -19
  77. package/build/template-part/edit/utils/transformers.js.map +1 -1
  78. package/build/text-columns/edit.js +3 -7
  79. package/build/text-columns/edit.js.map +1 -1
  80. package/build/text-columns/save.js +11 -13
  81. package/build/text-columns/save.js.map +1 -1
  82. package/build-module/buttons/edit.native.js +1 -1
  83. package/build-module/buttons/edit.native.js.map +1 -1
  84. package/build-module/columns/edit.js +10 -7
  85. package/build-module/columns/edit.js.map +1 -1
  86. package/build-module/columns/edit.native.js +1 -1
  87. package/build-module/columns/edit.native.js.map +1 -1
  88. package/build-module/comments/edit/placeholder.js +9 -5
  89. package/build-module/comments/edit/placeholder.js.map +1 -1
  90. package/build-module/cover/index.js +12 -4
  91. package/build-module/cover/index.js.map +1 -1
  92. package/build-module/cover/variations.js +19 -0
  93. package/build-module/cover/variations.js.map +1 -0
  94. package/build-module/embed/edit.js +14 -15
  95. package/build-module/embed/edit.js.map +1 -1
  96. package/build-module/embed/edit.native.js +19 -15
  97. package/build-module/embed/edit.native.js.map +1 -1
  98. package/build-module/embed/util.js +34 -10
  99. package/build-module/embed/util.js.map +1 -1
  100. package/build-module/gallery/edit.js +1 -0
  101. package/build-module/gallery/edit.js.map +1 -1
  102. package/build-module/latest-posts/edit.js +10 -9
  103. package/build-module/latest-posts/edit.js.map +1 -1
  104. package/build-module/latest-posts/edit.native.js +3 -3
  105. package/build-module/latest-posts/edit.native.js.map +1 -1
  106. package/build-module/media-text/constants.js +10 -0
  107. package/build-module/media-text/constants.js.map +1 -1
  108. package/build-module/media-text/edit.js +2 -14
  109. package/build-module/media-text/edit.js.map +1 -1
  110. package/build-module/media-text/edit.native.js +4 -3
  111. package/build-module/media-text/edit.native.js.map +1 -1
  112. package/build-module/media-text/transforms.js +32 -44
  113. package/build-module/media-text/transforms.js.map +1 -1
  114. package/build-module/navigation/edit/index.js +58 -88
  115. package/build-module/navigation/edit/index.js.map +1 -1
  116. package/build-module/navigation/edit/inner-blocks.js +4 -1
  117. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  118. package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
  119. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  120. package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
  121. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  122. package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
  123. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  124. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
  125. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  126. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  127. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  128. package/build-module/navigation/edit/use-navigation-notice.js +1 -1
  129. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  130. package/build-module/navigation-link/edit.js +0 -11
  131. package/build-module/navigation-link/edit.js.map +1 -1
  132. package/build-module/navigation-link/link-ui.js +0 -1
  133. package/build-module/navigation-link/link-ui.js.map +1 -1
  134. package/build-module/navigation-submenu/edit.js +1 -13
  135. package/build-module/navigation-submenu/edit.js.map +1 -1
  136. package/build-module/page-list/edit.js +61 -47
  137. package/build-module/page-list/edit.js.map +1 -1
  138. package/build-module/page-list-item/edit.js +3 -2
  139. package/build-module/page-list-item/edit.js.map +1 -1
  140. package/build-module/post-content/edit.js +6 -1
  141. package/build-module/post-content/edit.js.map +1 -1
  142. package/build-module/post-featured-image/dimension-controls.js +0 -6
  143. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  144. package/build-module/post-featured-image/edit.js +1 -1
  145. package/build-module/post-featured-image/edit.js.map +1 -1
  146. package/build-module/pullquote/deprecated.js +3 -2
  147. package/build-module/pullquote/deprecated.js.map +1 -1
  148. package/build-module/query/edit/query-placeholder.js +4 -3
  149. package/build-module/query/edit/query-placeholder.js.map +1 -1
  150. package/build-module/query/utils.js +21 -6
  151. package/build-module/query/utils.js.map +1 -1
  152. package/build-module/table/state.js +13 -5
  153. package/build-module/table/state.js.map +1 -1
  154. package/build-module/template-part/edit/import-controls.js +4 -23
  155. package/build-module/template-part/edit/import-controls.js.map +1 -1
  156. package/build-module/template-part/edit/utils/transformers.js +69 -20
  157. package/build-module/template-part/edit/utils/transformers.js.map +1 -1
  158. package/build-module/text-columns/edit.js +3 -6
  159. package/build-module/text-columns/edit.js.map +1 -1
  160. package/build-module/text-columns/save.js +11 -12
  161. package/build-module/text-columns/save.js.map +1 -1
  162. package/build-style/cover/style-rtl.css +11 -5
  163. package/build-style/cover/style.css +11 -5
  164. package/build-style/editor-rtl.css +5 -1
  165. package/build-style/editor.css +5 -1
  166. package/build-style/navigation/editor-rtl.css +1 -1
  167. package/build-style/navigation/editor.css +1 -1
  168. package/build-style/page-list/editor-rtl.css +4 -0
  169. package/build-style/page-list/editor.css +4 -0
  170. package/build-style/post-featured-image/style-rtl.css +1 -0
  171. package/build-style/post-featured-image/style.css +1 -0
  172. package/build-style/style-rtl.css +12 -5
  173. package/build-style/style.css +12 -5
  174. package/package.json +31 -31
  175. package/src/audio/test/__snapshots__/edit.native.js.snap +44 -4
  176. package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
  177. package/src/audio/test/transforms.native.js +42 -0
  178. package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
  179. package/src/block/test/transforms.native.js +40 -0
  180. package/src/buttons/edit.native.js +1 -1
  181. package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
  182. package/src/buttons/test/transforms.native.js +48 -0
  183. package/src/columns/edit.js +28 -17
  184. package/src/columns/edit.native.js +1 -1
  185. package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
  186. package/src/columns/test/transforms.native.js +91 -0
  187. package/src/comment-template/index.php +1 -2
  188. package/src/comments/edit/placeholder.js +16 -4
  189. package/src/cover/block.json +9 -3
  190. package/src/cover/index.js +2 -0
  191. package/src/cover/style.scss +16 -7
  192. package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
  193. package/src/cover/test/transforms.native.js +112 -0
  194. package/src/cover/variations.js +20 -0
  195. package/src/embed/edit.js +16 -12
  196. package/src/embed/edit.native.js +28 -18
  197. package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
  198. package/src/embed/test/index.js +12 -0
  199. package/src/embed/test/transforms.native.js +44 -0
  200. package/src/embed/util.js +29 -8
  201. package/src/file/test/__snapshots__/edit.native.js.snap +18 -2
  202. package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
  203. package/src/file/test/transforms.native.js +42 -0
  204. package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
  205. package/src/freeform/test/transforms.native.js +39 -0
  206. package/src/gallery/edit.js +3 -0
  207. package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
  208. package/src/gallery/test/transforms.native.js +52 -0
  209. package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
  210. package/src/group/test/transforms.native.js +75 -0
  211. package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
  212. package/src/heading/test/transforms.native.js +46 -0
  213. package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
  214. package/src/image/test/transforms.native.js +48 -0
  215. package/src/latest-posts/edit.js +11 -16
  216. package/src/latest-posts/edit.native.js +3 -3
  217. package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
  218. package/src/latest-posts/test/transforms.native.js +61 -0
  219. package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
  220. package/src/list/test/transforms.native.js +56 -0
  221. package/src/media-text/constants.js +16 -0
  222. package/src/media-text/edit.js +8 -18
  223. package/src/media-text/edit.native.js +3 -9
  224. package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
  225. package/src/media-text/test/transforms.native.js +112 -0
  226. package/src/media-text/transforms.js +24 -51
  227. package/src/missing/test/__snapshots__/edit.native.js.snap +20 -2
  228. package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
  229. package/src/more/test/transforms.native.js +42 -0
  230. package/src/navigation/edit/index.js +104 -107
  231. package/src/navigation/edit/inner-blocks.js +3 -0
  232. package/src/navigation/edit/menu-inspector-controls.js +2 -7
  233. package/src/navigation/edit/navigation-menu-selector.js +41 -25
  234. package/src/navigation/edit/unsaved-inner-blocks.js +46 -33
  235. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +82 -83
  236. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  237. package/src/navigation/edit/use-navigation-notice.js +1 -1
  238. package/src/navigation/editor.scss +23 -20
  239. package/src/navigation/index.php +18 -39
  240. package/src/navigation-link/edit.js +0 -9
  241. package/src/navigation-link/index.php +5 -8
  242. package/src/navigation-link/link-ui.js +0 -1
  243. package/src/navigation-submenu/edit.js +0 -10
  244. package/src/navigation-submenu/index.php +23 -6
  245. package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
  246. package/src/nextpage/test/transforms.native.js +42 -0
  247. package/src/page-list/edit.js +78 -44
  248. package/src/page-list/editor.scss +6 -0
  249. package/src/page-list-item/edit.js +2 -3
  250. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
  251. package/src/paragraph/test/transforms.native.js +50 -0
  252. package/src/post-content/edit.js +5 -1
  253. package/src/post-excerpt/index.php +1 -2
  254. package/src/post-featured-image/dimension-controls.js +0 -8
  255. package/src/post-featured-image/edit.js +1 -1
  256. package/src/post-featured-image/style.scss +1 -0
  257. package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
  258. package/src/preformatted/test/transforms.native.js +42 -0
  259. package/src/pullquote/deprecated.js +2 -6
  260. package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
  261. package/src/pullquote/test/transforms.native.js +46 -0
  262. package/src/query/edit/query-placeholder.js +10 -5
  263. package/src/query/test/utils.js +33 -1
  264. package/src/query/utils.js +19 -6
  265. package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
  266. package/src/quote/test/transforms.native.js +67 -0
  267. package/src/search/test/__snapshots__/edit.native.js.snap +11 -1
  268. package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
  269. package/src/search/test/transforms.native.js +40 -0
  270. package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
  271. package/src/separator/test/transforms.native.js +42 -0
  272. package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
  273. package/src/shortcode/test/transforms.native.js +42 -0
  274. package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
  275. package/src/social-links/test/transforms.native.js +53 -0
  276. package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
  277. package/src/spacer/test/transforms.native.js +42 -0
  278. package/src/table/state.js +8 -17
  279. package/src/template-part/edit/import-controls.js +2 -29
  280. package/src/template-part/edit/utils/transformers.js +96 -19
  281. package/src/text-columns/edit.js +1 -6
  282. package/src/text-columns/save.js +1 -6
  283. package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
  284. package/src/verse/test/transforms.native.js +42 -0
  285. package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
  286. package/src/video/test/transforms.native.js +48 -0
  287. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","columns","imageCrop","linkTarget","linkTo","sizeSlug","caption","showCaption","setShowCaption","prevCaption","captionRef","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","clearSelectedBlock","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","wasBlockJustInserted","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","length","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","sharedIcon","title","instructions","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Math","min","isWeb","captionIcon","style","spacing","blockGap","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose, usePrevious } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { caption as captionIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst allowedBlocks = [ 'core/image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t} = props;\n\n\tconst { columns, imageCrop, linkTarget, linkTo, sizeSlug, caption } =\n\t\tattributes;\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst prevCaption = usePrevious( caption );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! caption ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst wasBlockJustInserted = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t\tif ( newImages?.length > 0 ) {\n\t\t\tclearSelectedBlock();\n\t\t}\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\tmultiple={ true }\n\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tshowCaption={ showCaption }\n\t\t\t\tref={ Platform.isWeb ? captionRef : undefined }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","columns","imageCrop","linkTarget","linkTo","sizeSlug","caption","showCaption","setShowCaption","prevCaption","captionRef","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","clearSelectedBlock","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","wasBlockJustInserted","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","length","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","sharedIcon","title","instructions","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Math","min","isWeb","captionIcon","style","spacing","blockGap","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose, usePrevious } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { caption as captionIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst allowedBlocks = [ 'core/image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t} = props;\n\n\tconst { columns, imageCrop, linkTarget, linkTo, sizeSlug, caption } =\n\t\tattributes;\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst prevCaption = usePrevious( caption );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! caption ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst wasBlockJustInserted = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t\tif ( newImages?.length > 0 ) {\n\t\t\tclearSelectedBlock();\n\t\t}\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\tmultiple={ true }\n\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tshowCaption={ showCaption }\n\t\t\t\tref={ Platform.isWeb ? captionRef : undefined }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"]}
@@ -9,8 +9,6 @@ exports.default = LatestPostsEdit;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
- var _lodash = require("lodash");
13
-
14
12
  var _classnames = _interopRequireDefault(require("classnames"));
15
13
 
16
14
  var _components = require("@wordpress/components");
@@ -59,9 +57,9 @@ const USERS_LIST_QUERY = {
59
57
  };
60
58
 
61
59
  function getFeaturedImageDetails(post, size) {
62
- var _image$media_details$, _image$media_details, _image$media_details$2, _image$media_details$3;
60
+ var _post$_embedded, _post$_embedded$wpFe, _image$media_details$, _image$media_details, _image$media_details$2, _image$media_details$3;
63
61
 
64
- const image = (0, _lodash.get)(post, ['_embedded', 'wp:featuredmedia', '0']);
62
+ const image = (_post$_embedded = post._embedded) === null || _post$_embedded === void 0 ? void 0 : (_post$_embedded$wpFe = _post$_embedded['wp:featuredmedia']) === null || _post$_embedded$wpFe === void 0 ? void 0 : _post$_embedded$wpFe['0'];
65
63
  return {
66
64
  url: (_image$media_details$ = image === null || image === void 0 ? void 0 : (_image$media_details = image.media_details) === null || _image$media_details === void 0 ? void 0 : (_image$media_details$2 = _image$media_details.sizes) === null || _image$media_details$2 === void 0 ? void 0 : (_image$media_details$3 = _image$media_details$2[size]) === null || _image$media_details$3 === void 0 ? void 0 : _image$media_details$3.source_url) !== null && _image$media_details$ !== void 0 ? _image$media_details$ : image === null || image === void 0 ? void 0 : image.source_url,
67
65
  alt: image === null || image === void 0 ? void 0 : image.alt_text
@@ -104,6 +102,8 @@ function LatestPostsEdit(_ref) {
104
102
  categoriesList,
105
103
  authorList
106
104
  } = (0, _data.useSelect)(select => {
105
+ var _settings$imageDimens, _settings$imageDimens2, _settings$imageDimens3, _settings$imageDimens4, _settings$imageDimens5, _settings$imageDimens6;
106
+
107
107
  const {
108
108
  getEntityRecords,
109
109
  getUsers
@@ -122,8 +122,8 @@ function LatestPostsEdit(_ref) {
122
122
  return typeof value !== 'undefined';
123
123
  }));
124
124
  return {
125
- defaultImageWidth: (0, _lodash.get)(settings.imageDimensions, [featuredImageSizeSlug, 'width'], 0),
126
- defaultImageHeight: (0, _lodash.get)(settings.imageDimensions, [featuredImageSizeSlug, 'height'], 0),
125
+ defaultImageWidth: (_settings$imageDimens = (_settings$imageDimens2 = settings.imageDimensions) === null || _settings$imageDimens2 === void 0 ? void 0 : (_settings$imageDimens3 = _settings$imageDimens2[featuredImageSizeSlug]) === null || _settings$imageDimens3 === void 0 ? void 0 : _settings$imageDimens3.width) !== null && _settings$imageDimens !== void 0 ? _settings$imageDimens : 0,
126
+ defaultImageHeight: (_settings$imageDimens4 = (_settings$imageDimens5 = settings.imageDimensions) === null || _settings$imageDimens5 === void 0 ? void 0 : (_settings$imageDimens6 = _settings$imageDimens5[featuredImageSizeSlug]) === null || _settings$imageDimens6 === void 0 ? void 0 : _settings$imageDimens6.height) !== null && _settings$imageDimens4 !== void 0 ? _settings$imageDimens4 : 0,
127
127
  imageSizes: settings.imageSizes,
128
128
  latestPosts: getEntityRecords('postType', 'post', latestPostsQuery),
129
129
  categoriesList: getEntityRecords('taxonomy', 'category', CATEGORIES_LIST_QUERY),
@@ -192,7 +192,7 @@ function LatestPostsEdit(_ref) {
192
192
 
193
193
  const hasPosts = !!(latestPosts !== null && latestPosts !== void 0 && latestPosts.length);
194
194
  const inspectorControls = (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
195
- title: (0, _i18n.__)('Post content settings')
195
+ title: (0, _i18n.__)('Post content')
196
196
  }, (0, _element.createElement)(_components.ToggleControl, {
197
197
  label: (0, _i18n.__)('Post content'),
198
198
  checked: displayPostContent,
@@ -214,7 +214,7 @@ function LatestPostsEdit(_ref) {
214
214
  })
215
215
  }), displayPostContent && displayPostContentRadio === 'excerpt' && (0, _element.createElement)(_components.RangeControl, {
216
216
  __nextHasNoMarginBottom: true,
217
- label: (0, _i18n.__)('Max number of words in excerpt'),
217
+ label: (0, _i18n.__)('Max number of words'),
218
218
  value: excerptLength,
219
219
  onChange: value => setAttributes({
220
220
  excerptLength: value
@@ -222,7 +222,7 @@ function LatestPostsEdit(_ref) {
222
222
  min: _constants.MIN_EXCERPT_LENGTH,
223
223
  max: _constants.MAX_EXCERPT_LENGTH
224
224
  })), (0, _element.createElement)(_components.PanelBody, {
225
- title: (0, _i18n.__)('Post meta settings')
225
+ title: (0, _i18n.__)('Post meta')
226
226
  }, (0, _element.createElement)(_components.ToggleControl, {
227
227
  __nextHasNoMarginBottom: true,
228
228
  label: (0, _i18n.__)('Display author name'),
@@ -238,7 +238,7 @@ function LatestPostsEdit(_ref) {
238
238
  displayPostDate: value
239
239
  })
240
240
  })), (0, _element.createElement)(_components.PanelBody, {
241
- title: (0, _i18n.__)('Featured image settings')
241
+ title: (0, _i18n.__)('Featured image')
242
242
  }, (0, _element.createElement)(_components.ToggleControl, {
243
243
  __nextHasNoMarginBottom: true,
244
244
  label: (0, _i18n.__)('Display featured image'),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"names":["CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","image","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","instanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","select","getEntityRecords","getUsers","coreStore","settings","blockEditorStore","getSettings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","createWarningNotice","removeNotice","noticeStore","noticeId","showRedirectionPreventedNotice","event","preventDefault","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","hasPosts","inspectorControls","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","newAttrs","hasOwnProperty","width","height","undefined","Number","MAX_POSTS_COLUMNS","Math","min","blockProps","className","pin","Array","isArray","displayPosts","slice","layoutControls","icon","list","title","onClick","isActive","grid","dateFormat","formats","date","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","createElement","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","link","__html","date_gmt","content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\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 { pin, list, grid } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\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 = get( 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: get(\n\t\t\t\t\tsettings.imageDimensions,\n\t\t\t\t\t[ featuredImageSizeSlug, 'width' ],\n\t\t\t\t\t0\n\t\t\t\t),\n\t\t\t\tdefaultImageHeight: get(\n\t\t\t\t\tsettings.imageDimensions,\n\t\t\t\t\t[ featuredImageSizeSlug, 'height' ],\n\t\t\t\t\t0\n\t\t\t\t),\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, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\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 hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content settings' ) }>\n\t\t\t\t<ToggleControl\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\tlabel={ __( 'Max number of words in excerpt' ) }\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 settings' ) }>\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 settings' ) }>\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\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<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign: value,\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\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\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\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: classnames( {\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: __( 'List view' ),\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: __( 'Grid view' ),\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<div>\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 = classnames( {\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{ /* translators: excerpt truncation character, default … */ }\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\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\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{ __( 'Read more' ) }\n\t\t\t\t\t\t\t</a>\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\tclassName=\"wp-block-latest-posts__post-title\"\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\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: current 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</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"names":["CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","image","_embedded","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","instanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","select","getEntityRecords","getUsers","coreStore","settings","blockEditorStore","getSettings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","width","height","createWarningNotice","removeNotice","noticeStore","noticeId","showRedirectionPreventedNotice","event","preventDefault","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","hasPosts","inspectorControls","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","newAttrs","hasOwnProperty","undefined","Number","MAX_POSTS_COLUMNS","Math","min","blockProps","className","pin","Array","isArray","displayPosts","slice","layoutControls","icon","list","title","onClick","isActive","grid","dateFormat","formats","date","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","createElement","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","link","__html","date_gmt","content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\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 { pin, list, grid } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\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, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\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 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\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\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\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<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign: value,\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\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\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\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: classnames( {\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: __( 'List view' ),\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: __( 'Grid view' ),\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<div>\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 = classnames( {\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{ /* translators: excerpt truncation character, default … */ }\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\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\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{ __( 'Read more' ) }\n\t\t\t\t\t\t\t</a>\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\tclassName=\"wp-block-latest-posts__post-title\"\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\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: current 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</div>\n\t);\n}\n"]}
@@ -210,7 +210,7 @@ class LatestPostsEdit extends _element.Component {
210
210
  } = this.state;
211
211
  const displayExcerptPostContent = displayPostContentRadio === 'excerpt';
212
212
  return (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
213
- title: (0, _i18n.__)('Post content settings')
213
+ title: (0, _i18n.__)('Post content')
214
214
  }, (0, _element.createElement)(_components.ToggleControl, {
215
215
  label: (0, _i18n.__)('Show post content'),
216
216
  checked: displayPostContent,
@@ -226,13 +226,13 @@ class LatestPostsEdit extends _element.Component {
226
226
  min: _constants.MIN_EXCERPT_LENGTH,
227
227
  max: _constants.MAX_EXCERPT_LENGTH
228
228
  })), (0, _element.createElement)(_components.PanelBody, {
229
- title: (0, _i18n.__)('Post meta settings')
229
+ title: (0, _i18n.__)('Post meta')
230
230
  }, (0, _element.createElement)(_components.ToggleControl, {
231
231
  label: (0, _i18n.__)('Display post date'),
232
232
  checked: displayPostDate,
233
233
  onChange: this.onSetDisplayPostDate
234
234
  })), (0, _element.createElement)(_components.PanelBody, {
235
- title: (0, _i18n.__)('Featured image settings')
235
+ title: (0, _i18n.__)('Featured image')
236
236
  }, (0, _element.createElement)(_components.ToggleControl, {
237
237
  label: (0, _i18n.__)('Display featured image'),
238
238
  checked: displayFeaturedImage,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/latest-posts/edit.native.js"],"names":["LatestPostsEdit","Component","constructor","arguments","state","categoriesList","onSetDisplayPostContent","bind","onSetDisplayPostContentRadio","onSetExcerptLength","onSetDisplayPostDate","onSetDisplayFeaturedImage","onSetFeaturedImageAlign","onSetAddLinkToFeaturedImage","onSetOrder","onSetOrderBy","onSetPostsToShow","onSetCategories","getInspectorControls","componentDidMount","isStillMounted","fetchRequest","path","then","setState","catch","componentWillUnmount","value","setAttributes","props","displayPostContent","displayPostContentRadio","excerptLength","displayPostDate","displayFeaturedImage","addLinkToFeaturedImage","featuredImageAlign","order","orderBy","postsToShow","categories","toString","undefined","attributes","displayExcerptPostContent","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","Number","__DEV__","render","blockTitle","getStylesFromColorScheme","openGeneralSidebar","isSelected","blockStyle","styles","latestPostBlock","latestPostBlockDark","iconStyle","latestPostBlockIcon","latestPostBlockIconDark","titleStyle","latestPostBlockMessage","latestPostBlockMessageDark","icon","latestPostBlockSubtitle","select","name","blockType","blocksStore","getBlockType","title","dispatch","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback, View, Text } from 'react-native';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { postList as icon } from '@wordpress/icons';\nimport {\n\tInspectorControls,\n\tBlockAlignmentControl,\n} from '@wordpress/block-editor';\nimport apiFetch from '@wordpress/api-fetch';\nimport {\n\tIcon,\n\tPanelBody,\n\tToggleControl,\n\tRangeControl,\n\tQueryControls,\n} from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport { MIN_EXCERPT_LENGTH, MAX_EXCERPT_LENGTH } from './constants';\n\nclass LatestPostsEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tcategoriesList: [],\n\t\t};\n\t\tthis.onSetDisplayPostContent =\n\t\t\tthis.onSetDisplayPostContent.bind( this );\n\t\tthis.onSetDisplayPostContentRadio =\n\t\t\tthis.onSetDisplayPostContentRadio.bind( this );\n\t\tthis.onSetExcerptLength = this.onSetExcerptLength.bind( this );\n\t\tthis.onSetDisplayPostDate = this.onSetDisplayPostDate.bind( this );\n\t\tthis.onSetDisplayFeaturedImage =\n\t\t\tthis.onSetDisplayFeaturedImage.bind( this );\n\t\tthis.onSetFeaturedImageAlign =\n\t\t\tthis.onSetFeaturedImageAlign.bind( this );\n\t\tthis.onSetAddLinkToFeaturedImage =\n\t\t\tthis.onSetAddLinkToFeaturedImage.bind( this );\n\t\tthis.onSetOrder = this.onSetOrder.bind( this );\n\t\tthis.onSetOrderBy = this.onSetOrderBy.bind( this );\n\t\tthis.onSetPostsToShow = this.onSetPostsToShow.bind( this );\n\t\tthis.onSetCategories = this.onSetCategories.bind( this );\n\t\tthis.getInspectorControls = this.getInspectorControls.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isStillMounted = true;\n\t\tthis.fetchRequest = apiFetch( { path: '/wp/v2/categories' } )\n\t\t\t.then( ( categoriesList ) => {\n\t\t\t\tif ( this.isStillMounted ) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tcategoriesList: isEmpty( categoriesList )\n\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t: categoriesList,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tif ( this.isStillMounted ) {\n\t\t\t\t\tthis.setState( { categoriesList: [] } );\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isStillMounted = false;\n\t}\n\n\tonSetDisplayPostContent( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { displayPostContent: value } );\n\t}\n\n\tonSetDisplayPostContentRadio( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( {\n\t\t\tdisplayPostContentRadio: value ? 'excerpt' : 'full_post',\n\t\t} );\n\t}\n\n\tonSetExcerptLength( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { excerptLength: value } );\n\t}\n\n\tonSetDisplayPostDate( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { displayPostDate: value } );\n\t}\n\n\tonSetDisplayFeaturedImage( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { displayFeaturedImage: value } );\n\t}\n\n\tonSetAddLinkToFeaturedImage( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { addLinkToFeaturedImage: value } );\n\t}\n\n\tonSetFeaturedImageAlign( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { featuredImageAlign: value } );\n\t}\n\n\tonSetOrder( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { order: value } );\n\t}\n\n\tonSetOrderBy( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { orderBy: value } );\n\t}\n\n\tonSetPostsToShow( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { postsToShow: value } );\n\t}\n\n\tonSetCategories( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( {\n\t\t\tcategories: '' !== value ? value.toString() : undefined,\n\t\t} );\n\t}\n\n\tgetInspectorControls() {\n\t\tconst { attributes } = this.props;\n\t\tconst {\n\t\t\tdisplayPostContent,\n\t\t\tdisplayPostContentRadio,\n\t\t\texcerptLength,\n\t\t\tdisplayPostDate,\n\t\t\tdisplayFeaturedImage,\n\t\t\tfeaturedImageAlign,\n\t\t\taddLinkToFeaturedImage,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tpostsToShow,\n\t\t\tcategories,\n\t\t} = attributes;\n\n\t\tconst { categoriesList } = this.state;\n\t\tconst displayExcerptPostContent = displayPostContentRadio === 'excerpt';\n\n\t\treturn (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Post content settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show post content' ) }\n\t\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\t\tonChange={ this.onSetDisplayPostContent }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Only show excerpt' ) }\n\t\t\t\t\t\t\tchecked={ displayExcerptPostContent }\n\t\t\t\t\t\t\tonChange={ this.onSetDisplayPostContentRadio }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ displayPostContent && displayExcerptPostContent && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Excerpt length (words)' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ this.onSetExcerptLength }\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\t</PanelBody>\n\n\t\t\t\t<PanelBody title={ __( 'Post meta settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\t\tonChange={ this.onSetDisplayPostDate }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\n\t\t\t\t<PanelBody title={ __( 'Featured image settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\t\tonChange={ this.onSetDisplayFeaturedImage }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ this.onSetFeaturedImageAlign }\n\t\t\t\t\t\t\t\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisBottomSheetControl={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\t\tonChange={ this.onSetAddLinkToFeaturedImage }\n\t\t\t\t\t\t\t\tseparatorType={ 'topFullWidth' }\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</PanelBody>\n\n\t\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t\t<QueryControls\n\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\t\tcategoriesList={ categoriesList }\n\t\t\t\t\t\tselectedCategoryId={\n\t\t\t\t\t\t\tundefined !== categories ? Number( categories ) : ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonOrderChange={ this.onSetOrder }\n\t\t\t\t\t\tonOrderByChange={ this.onSetOrderBy }\n\t\t\t\t\t\tonCategoryChange={\n\t\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t\t__DEV__ ? this.onSetCategories : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonNumberOfItemsChange={ this.onSetPostsToShow }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tblockTitle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\topenGeneralSidebar,\n\t\t\tisSelected,\n\t\t} = this.props;\n\n\t\tconst blockStyle = getStylesFromColorScheme(\n\t\t\tstyles.latestPostBlock,\n\t\t\tstyles.latestPostBlockDark\n\t\t);\n\n\t\tconst iconStyle = getStylesFromColorScheme(\n\t\t\tstyles.latestPostBlockIcon,\n\t\t\tstyles.latestPostBlockIconDark\n\t\t);\n\n\t\tconst titleStyle = getStylesFromColorScheme(\n\t\t\tstyles.latestPostBlockMessage,\n\t\t\tstyles.latestPostBlockMessageDark\n\t\t);\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\taccessible={ ! isSelected }\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\tonPress={ openGeneralSidebar }\n\t\t\t>\n\t\t\t\t<View style={ blockStyle }>\n\t\t\t\t\t{ isSelected && this.getInspectorControls() }\n\t\t\t\t\t<Icon icon={ icon } { ...iconStyle } />\n\t\t\t\t\t<Text style={ titleStyle }>{ blockTitle }</Text>\n\t\t\t\t\t<Text style={ styles.latestPostBlockSubtitle }>\n\t\t\t\t\t\t{ __( 'CUSTOMIZE' ) }\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { name } ) => {\n\t\tconst blockType = select( blocksStore ).getBlockType( name );\n\t\treturn {\n\t\t\tblockTitle: blockType?.title || name,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\n\t\treturn {\n\t\t\topenGeneralSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( LatestPostsEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/latest-posts/edit.native.js"],"names":["LatestPostsEdit","Component","constructor","arguments","state","categoriesList","onSetDisplayPostContent","bind","onSetDisplayPostContentRadio","onSetExcerptLength","onSetDisplayPostDate","onSetDisplayFeaturedImage","onSetFeaturedImageAlign","onSetAddLinkToFeaturedImage","onSetOrder","onSetOrderBy","onSetPostsToShow","onSetCategories","getInspectorControls","componentDidMount","isStillMounted","fetchRequest","path","then","setState","catch","componentWillUnmount","value","setAttributes","props","displayPostContent","displayPostContentRadio","excerptLength","displayPostDate","displayFeaturedImage","addLinkToFeaturedImage","featuredImageAlign","order","orderBy","postsToShow","categories","toString","undefined","attributes","displayExcerptPostContent","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","Number","__DEV__","render","blockTitle","getStylesFromColorScheme","openGeneralSidebar","isSelected","blockStyle","styles","latestPostBlock","latestPostBlockDark","iconStyle","latestPostBlockIcon","latestPostBlockIconDark","titleStyle","latestPostBlockMessage","latestPostBlockMessageDark","icon","latestPostBlockSubtitle","select","name","blockType","blocksStore","getBlockType","title","dispatch","withPreferredColorScheme"],"mappings":";;;;;;;;;AASA;;;;AANA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AAOA;;AAKA;;AACA;;AAhCA;AACA;AACA;;AAIA;AACA;AACA;;AAoBA;AACA;AACA;AAIA,MAAMA,eAAN,SAA8BC,kBAA9B,CAAwC;AACvCC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AACA,SAAKC,KAAL,GAAa;AACZC,MAAAA,cAAc,EAAE;AADJ,KAAb;AAGA,SAAKC,uBAAL,GACC,KAAKA,uBAAL,CAA6BC,IAA7B,CAAmC,IAAnC,CADD;AAEA,SAAKC,4BAAL,GACC,KAAKA,4BAAL,CAAkCD,IAAlC,CAAwC,IAAxC,CADD;AAEA,SAAKE,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBF,IAAxB,CAA8B,IAA9B,CAA1B;AACA,SAAKG,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BH,IAA1B,CAAgC,IAAhC,CAA5B;AACA,SAAKI,yBAAL,GACC,KAAKA,yBAAL,CAA+BJ,IAA/B,CAAqC,IAArC,CADD;AAEA,SAAKK,uBAAL,GACC,KAAKA,uBAAL,CAA6BL,IAA7B,CAAmC,IAAnC,CADD;AAEA,SAAKM,2BAAL,GACC,KAAKA,2BAAL,CAAiCN,IAAjC,CAAuC,IAAvC,CADD;AAEA,SAAKO,UAAL,GAAkB,KAAKA,UAAL,CAAgBP,IAAhB,CAAsB,IAAtB,CAAlB;AACA,SAAKQ,YAAL,GAAoB,KAAKA,YAAL,CAAkBR,IAAlB,CAAwB,IAAxB,CAApB;AACA,SAAKS,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBT,IAAtB,CAA4B,IAA5B,CAAxB;AACA,SAAKU,eAAL,GAAuB,KAAKA,eAAL,CAAqBV,IAArB,CAA2B,IAA3B,CAAvB;AACA,SAAKW,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BX,IAA1B,CAAgC,IAAhC,CAA5B;AACA;;AAEDY,EAAAA,iBAAiB,GAAG;AACnB,SAAKC,cAAL,GAAsB,IAAtB;AACA,SAAKC,YAAL,GAAoB,uBAAU;AAAEC,MAAAA,IAAI,EAAE;AAAR,KAAV,EAClBC,IADkB,CACVlB,cAAF,IAAsB;AAC5B,UAAK,KAAKe,cAAV,EAA2B;AAC1B,aAAKI,QAAL,CAAe;AACdnB,UAAAA,cAAc,EAAE,qBAASA,cAAT,IACb,EADa,GAEbA;AAHW,SAAf;AAKA;AACD,KATkB,EAUlBoB,KAVkB,CAUX,MAAM;AACb,UAAK,KAAKL,cAAV,EAA2B;AAC1B,aAAKI,QAAL,CAAe;AAAEnB,UAAAA,cAAc,EAAE;AAAlB,SAAf;AACA;AACD,KAdkB,CAApB;AAeA;;AAEDqB,EAAAA,oBAAoB,GAAG;AACtB,SAAKN,cAAL,GAAsB,KAAtB;AACA;;AAEDd,EAAAA,uBAAuB,CAAEqB,KAAF,EAAU;AAChC,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAEE,MAAAA,kBAAkB,EAAEH;AAAtB,KAAF,CAAb;AACA;;AAEDnB,EAAAA,4BAA4B,CAAEmB,KAAF,EAAU;AACrC,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AACdG,MAAAA,uBAAuB,EAAEJ,KAAK,GAAG,SAAH,GAAe;AAD/B,KAAF,CAAb;AAGA;;AAEDlB,EAAAA,kBAAkB,CAAEkB,KAAF,EAAU;AAC3B,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAEI,MAAAA,aAAa,EAAEL;AAAjB,KAAF,CAAb;AACA;;AAEDjB,EAAAA,oBAAoB,CAAEiB,KAAF,EAAU;AAC7B,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAEK,MAAAA,eAAe,EAAEN;AAAnB,KAAF,CAAb;AACA;;AAEDhB,EAAAA,yBAAyB,CAAEgB,KAAF,EAAU;AAClC,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAEM,MAAAA,oBAAoB,EAAEP;AAAxB,KAAF,CAAb;AACA;;AAEDd,EAAAA,2BAA2B,CAAEc,KAAF,EAAU;AACpC,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAEO,MAAAA,sBAAsB,EAAER;AAA1B,KAAF,CAAb;AACA;;AAEDf,EAAAA,uBAAuB,CAAEe,KAAF,EAAU;AAChC,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAEQ,MAAAA,kBAAkB,EAAET;AAAtB,KAAF,CAAb;AACA;;AAEDb,EAAAA,UAAU,CAAEa,KAAF,EAAU;AACnB,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAES,MAAAA,KAAK,EAAEV;AAAT,KAAF,CAAb;AACA;;AAEDZ,EAAAA,YAAY,CAAEY,KAAF,EAAU;AACrB,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAEU,MAAAA,OAAO,EAAEX;AAAX,KAAF,CAAb;AACA;;AAEDX,EAAAA,gBAAgB,CAAEW,KAAF,EAAU;AACzB,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AAAEW,MAAAA,WAAW,EAAEZ;AAAf,KAAF,CAAb;AACA;;AAEDV,EAAAA,eAAe,CAAEU,KAAF,EAAU;AACxB,UAAM;AAAEC,MAAAA;AAAF,QAAoB,KAAKC,KAA/B;AACAD,IAAAA,aAAa,CAAE;AACdY,MAAAA,UAAU,EAAE,OAAOb,KAAP,GAAeA,KAAK,CAACc,QAAN,EAAf,GAAkCC;AADhC,KAAF,CAAb;AAGA;;AAEDxB,EAAAA,oBAAoB,GAAG;AACtB,UAAM;AAAEyB,MAAAA;AAAF,QAAiB,KAAKd,KAA5B;AACA,UAAM;AACLC,MAAAA,kBADK;AAELC,MAAAA,uBAFK;AAGLC,MAAAA,aAHK;AAILC,MAAAA,eAJK;AAKLC,MAAAA,oBALK;AAMLE,MAAAA,kBANK;AAOLD,MAAAA,sBAPK;AAQLE,MAAAA,KARK;AASLC,MAAAA,OATK;AAULC,MAAAA,WAVK;AAWLC,MAAAA;AAXK,QAYFG,UAZJ;AAcA,UAAM;AAAEtC,MAAAA;AAAF,QAAqB,KAAKD,KAAhC;AACA,UAAMwC,yBAAyB,GAAGb,uBAAuB,KAAK,SAA9D;AAEA,WACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,MAAA,KAAK,EAAG,cAAI,cAAJ;AAAnB,OACC,4BAAC,yBAAD;AACC,MAAA,KAAK,EAAG,cAAI,mBAAJ,CADT;AAEC,MAAA,OAAO,EAAGD,kBAFX;AAGC,MAAA,QAAQ,EAAG,KAAKxB;AAHjB,MADD,EAMGwB,kBAAkB,IACnB,4BAAC,yBAAD;AACC,MAAA,KAAK,EAAG,cAAI,mBAAJ,CADT;AAEC,MAAA,OAAO,EAAGc,yBAFX;AAGC,MAAA,QAAQ,EAAG,KAAKpC;AAHjB,MAPF,EAaGsB,kBAAkB,IAAIc,yBAAtB,IACD,4BAAC,wBAAD;AACC,MAAA,KAAK,EAAG,cAAI,wBAAJ,CADT;AAEC,MAAA,KAAK,EAAGZ,aAFT;AAGC,MAAA,QAAQ,EAAG,KAAKvB,kBAHjB;AAIC,MAAA,GAAG,EAAGoC,6BAJP;AAKC,MAAA,GAAG,EAAGC;AALP,MAdF,CADD,EAyBC,4BAAC,qBAAD;AAAW,MAAA,KAAK,EAAG,cAAI,WAAJ;AAAnB,OACC,4BAAC,yBAAD;AACC,MAAA,KAAK,EAAG,cAAI,mBAAJ,CADT;AAEC,MAAA,OAAO,EAAGb,eAFX;AAGC,MAAA,QAAQ,EAAG,KAAKvB;AAHjB,MADD,CAzBD,EAiCC,4BAAC,qBAAD;AAAW,MAAA,KAAK,EAAG,cAAI,gBAAJ;AAAnB,OACC,4BAAC,yBAAD;AACC,MAAA,KAAK,EAAG,cAAI,wBAAJ,CADT;AAEC,MAAA,OAAO,EAAGwB,oBAFX;AAGC,MAAA,QAAQ,EAAG,KAAKvB;AAHjB,MADD,EAMGuB,oBAAoB,IACrB,qDACC,4BAAC,kCAAD;AACC,MAAA,KAAK,EAAGE,kBADT;AAEC,MAAA,QAAQ,EAAG,KAAKxB,uBAFjB;AAGC,MAAA,QAAQ,EAAG,CAAE,MAAF,EAAU,QAAV,EAAoB,OAApB,CAHZ;AAIC,MAAA,oBAAoB,EAAG;AAJxB,MADD,EAOC,4BAAC,yBAAD;AACC,MAAA,KAAK,EAAG,cAAI,4BAAJ,CADT;AAEC,MAAA,OAAO,EAAGuB,sBAFX;AAGC,MAAA,QAAQ,EAAG,KAAKtB,2BAHjB;AAIC,MAAA,aAAa,EAAG;AAJjB,MAPD,CAPF,CAjCD,EAyDC,4BAAC,qBAAD;AAAW,MAAA,KAAK,EAAG,cAAI,uBAAJ;AAAnB,OACC,4BAAC,yBAAD;AACQwB,MAAAA,KADR;AACeC,MAAAA,OADf;AAEC,MAAA,aAAa,EAAGC,WAFjB;AAGC,MAAA,cAAc,EAAGlC,cAHlB;AAIC,MAAA,kBAAkB,EACjBqC,SAAS,KAAKF,UAAd,GAA2BO,MAAM,CAAEP,UAAF,CAAjC,GAAkD,EALpD;AAOC,MAAA,aAAa,EAAG,KAAK1B,UAPtB;AAQC,MAAA,eAAe,EAAG,KAAKC,YARxB;AASC,MAAA,gBAAgB,EACf;AACAiC,MAAAA,OAAO,GAAG,KAAK/B,eAAR,GAA0ByB,SAXnC;AAaC,MAAA,qBAAqB,EAAG,KAAK1B;AAb9B,MADD,CAzDD,CADD;AA6EA;;AAEDiC,EAAAA,MAAM,GAAG;AACR,UAAM;AACLC,MAAAA,UADK;AAELC,MAAAA,wBAFK;AAGLC,MAAAA,kBAHK;AAILC,MAAAA;AAJK,QAKF,KAAKxB,KALT;AAOA,UAAMyB,UAAU,GAAGH,wBAAwB,CAC1CI,eAAOC,eADmC,EAE1CD,eAAOE,mBAFmC,CAA3C;AAKA,UAAMC,SAAS,GAAGP,wBAAwB,CACzCI,eAAOI,mBADkC,EAEzCJ,eAAOK,uBAFkC,CAA1C;AAKA,UAAMC,UAAU,GAAGV,wBAAwB,CAC1CI,eAAOO,sBADmC,EAE1CP,eAAOQ,0BAFmC,CAA3C;AAKA,WACC,4BAAC,qCAAD;AACC,MAAA,UAAU,EAAG,CAAEV,UADhB;AAEC,MAAA,QAAQ,EAAG,CAAEA,UAFd;AAGC,MAAA,OAAO,EAAGD;AAHX,OAKC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAGE;AAAd,OACGD,UAAU,IAAI,KAAKnC,oBAAL,EADjB,EAEC,4BAAC,gBAAD;AAAM,MAAA,IAAI,EAAG8C;AAAb,OAAyBN,SAAzB,EAFD,EAGC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAGG;AAAd,OAA6BX,UAA7B,CAHD,EAIC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAGK,eAAOU;AAArB,OACG,cAAI,WAAJ,CADH,CAJD,CALD,CADD;AAgBA;;AApPsC;;eAuPzB,sBAAS,CACvB,sBAAY,CAAEC,MAAF,WAAwB;AAAA,MAAd;AAAEC,IAAAA;AAAF,GAAc;AACnC,QAAMC,SAAS,GAAGF,MAAM,CAAEG,aAAF,CAAN,CAAsBC,YAAtB,CAAoCH,IAApC,CAAlB;AACA,SAAO;AACNjB,IAAAA,UAAU,EAAE,CAAAkB,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEG,KAAX,KAAoBJ;AAD1B,GAAP;AAGA,CALD,CADuB,EAOvB,wBAAgBK,QAAF,IAAgB;AAC7B,QAAM;AAAEpB,IAAAA;AAAF,MAAyBoB,QAAQ,CAAE,gBAAF,CAAvC;AAEA,SAAO;AACNpB,IAAAA,kBAAkB,EAAE,MAAMA,kBAAkB,CAAE,iBAAF;AADtC,GAAP;AAGA,CAND,CAPuB,EAcvBqB,iCAduB,CAAT,EAeVzE,eAfU,C","sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback, View, Text } from 'react-native';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { postList as icon } from '@wordpress/icons';\nimport {\n\tInspectorControls,\n\tBlockAlignmentControl,\n} from '@wordpress/block-editor';\nimport apiFetch from '@wordpress/api-fetch';\nimport {\n\tIcon,\n\tPanelBody,\n\tToggleControl,\n\tRangeControl,\n\tQueryControls,\n} from '@wordpress/components';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport { MIN_EXCERPT_LENGTH, MAX_EXCERPT_LENGTH } from './constants';\n\nclass LatestPostsEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tcategoriesList: [],\n\t\t};\n\t\tthis.onSetDisplayPostContent =\n\t\t\tthis.onSetDisplayPostContent.bind( this );\n\t\tthis.onSetDisplayPostContentRadio =\n\t\t\tthis.onSetDisplayPostContentRadio.bind( this );\n\t\tthis.onSetExcerptLength = this.onSetExcerptLength.bind( this );\n\t\tthis.onSetDisplayPostDate = this.onSetDisplayPostDate.bind( this );\n\t\tthis.onSetDisplayFeaturedImage =\n\t\t\tthis.onSetDisplayFeaturedImage.bind( this );\n\t\tthis.onSetFeaturedImageAlign =\n\t\t\tthis.onSetFeaturedImageAlign.bind( this );\n\t\tthis.onSetAddLinkToFeaturedImage =\n\t\t\tthis.onSetAddLinkToFeaturedImage.bind( this );\n\t\tthis.onSetOrder = this.onSetOrder.bind( this );\n\t\tthis.onSetOrderBy = this.onSetOrderBy.bind( this );\n\t\tthis.onSetPostsToShow = this.onSetPostsToShow.bind( this );\n\t\tthis.onSetCategories = this.onSetCategories.bind( this );\n\t\tthis.getInspectorControls = this.getInspectorControls.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.isStillMounted = true;\n\t\tthis.fetchRequest = apiFetch( { path: '/wp/v2/categories' } )\n\t\t\t.then( ( categoriesList ) => {\n\t\t\t\tif ( this.isStillMounted ) {\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tcategoriesList: isEmpty( categoriesList )\n\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t: categoriesList,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tif ( this.isStillMounted ) {\n\t\t\t\t\tthis.setState( { categoriesList: [] } );\n\t\t\t\t}\n\t\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.isStillMounted = false;\n\t}\n\n\tonSetDisplayPostContent( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { displayPostContent: value } );\n\t}\n\n\tonSetDisplayPostContentRadio( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( {\n\t\t\tdisplayPostContentRadio: value ? 'excerpt' : 'full_post',\n\t\t} );\n\t}\n\n\tonSetExcerptLength( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { excerptLength: value } );\n\t}\n\n\tonSetDisplayPostDate( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { displayPostDate: value } );\n\t}\n\n\tonSetDisplayFeaturedImage( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { displayFeaturedImage: value } );\n\t}\n\n\tonSetAddLinkToFeaturedImage( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { addLinkToFeaturedImage: value } );\n\t}\n\n\tonSetFeaturedImageAlign( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { featuredImageAlign: value } );\n\t}\n\n\tonSetOrder( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { order: value } );\n\t}\n\n\tonSetOrderBy( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { orderBy: value } );\n\t}\n\n\tonSetPostsToShow( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { postsToShow: value } );\n\t}\n\n\tonSetCategories( value ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( {\n\t\t\tcategories: '' !== value ? value.toString() : undefined,\n\t\t} );\n\t}\n\n\tgetInspectorControls() {\n\t\tconst { attributes } = this.props;\n\t\tconst {\n\t\t\tdisplayPostContent,\n\t\t\tdisplayPostContentRadio,\n\t\t\texcerptLength,\n\t\t\tdisplayPostDate,\n\t\t\tdisplayFeaturedImage,\n\t\t\tfeaturedImageAlign,\n\t\t\taddLinkToFeaturedImage,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tpostsToShow,\n\t\t\tcategories,\n\t\t} = attributes;\n\n\t\tconst { categoriesList } = this.state;\n\t\tconst displayExcerptPostContent = displayPostContentRadio === 'excerpt';\n\n\t\treturn (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Post content' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show post content' ) }\n\t\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\t\tonChange={ this.onSetDisplayPostContent }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Only show excerpt' ) }\n\t\t\t\t\t\t\tchecked={ displayExcerptPostContent }\n\t\t\t\t\t\t\tonChange={ this.onSetDisplayPostContentRadio }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ displayPostContent && displayExcerptPostContent && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Excerpt length (words)' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ this.onSetExcerptLength }\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\t</PanelBody>\n\n\t\t\t\t<PanelBody title={ __( 'Post meta' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\t\tonChange={ this.onSetDisplayPostDate }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\n\t\t\t\t<PanelBody title={ __( 'Featured image' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\t\tonChange={ this.onSetDisplayFeaturedImage }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ this.onSetFeaturedImageAlign }\n\t\t\t\t\t\t\t\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisBottomSheetControl={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\t\tonChange={ this.onSetAddLinkToFeaturedImage }\n\t\t\t\t\t\t\t\tseparatorType={ 'topFullWidth' }\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</PanelBody>\n\n\t\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t\t<QueryControls\n\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\t\tcategoriesList={ categoriesList }\n\t\t\t\t\t\tselectedCategoryId={\n\t\t\t\t\t\t\tundefined !== categories ? Number( categories ) : ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonOrderChange={ this.onSetOrder }\n\t\t\t\t\t\tonOrderByChange={ this.onSetOrderBy }\n\t\t\t\t\t\tonCategoryChange={\n\t\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t\t__DEV__ ? this.onSetCategories : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonNumberOfItemsChange={ this.onSetPostsToShow }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tblockTitle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\topenGeneralSidebar,\n\t\t\tisSelected,\n\t\t} = this.props;\n\n\t\tconst blockStyle = getStylesFromColorScheme(\n\t\t\tstyles.latestPostBlock,\n\t\t\tstyles.latestPostBlockDark\n\t\t);\n\n\t\tconst iconStyle = getStylesFromColorScheme(\n\t\t\tstyles.latestPostBlockIcon,\n\t\t\tstyles.latestPostBlockIconDark\n\t\t);\n\n\t\tconst titleStyle = getStylesFromColorScheme(\n\t\t\tstyles.latestPostBlockMessage,\n\t\t\tstyles.latestPostBlockMessageDark\n\t\t);\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\taccessible={ ! isSelected }\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\tonPress={ openGeneralSidebar }\n\t\t\t>\n\t\t\t\t<View style={ blockStyle }>\n\t\t\t\t\t{ isSelected && this.getInspectorControls() }\n\t\t\t\t\t<Icon icon={ icon } { ...iconStyle } />\n\t\t\t\t\t<Text style={ titleStyle }>{ blockTitle }</Text>\n\t\t\t\t\t<Text style={ styles.latestPostBlockSubtitle }>\n\t\t\t\t\t\t{ __( 'CUSTOMIZE' ) }\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { name } ) => {\n\t\tconst blockType = select( blocksStore ).getBlockType( name );\n\t\treturn {\n\t\t\tblockTitle: blockType?.title || name,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\n\t\treturn {\n\t\t\topenGeneralSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( LatestPostsEdit );\n"]}
@@ -3,7 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.DEFAULT_MEDIA_SIZE_SLUG = void 0;
6
+ exports.WIDTH_CONSTRAINT_PERCENTAGE = exports.TEMPLATE = exports.LINK_DESTINATION_MEDIA = exports.LINK_DESTINATION_ATTACHMENT = exports.DEFAULT_MEDIA_SIZE_SLUG = void 0;
7
+
8
+ var _i18n = require("@wordpress/i18n");
9
+
10
+ /**
11
+ * WordPress dependencies
12
+ */
7
13
  const DEFAULT_MEDIA_SIZE_SLUG = 'full';
8
14
  exports.DEFAULT_MEDIA_SIZE_SLUG = DEFAULT_MEDIA_SIZE_SLUG;
15
+ const WIDTH_CONSTRAINT_PERCENTAGE = 15;
16
+ exports.WIDTH_CONSTRAINT_PERCENTAGE = WIDTH_CONSTRAINT_PERCENTAGE;
17
+ const LINK_DESTINATION_MEDIA = 'media';
18
+ exports.LINK_DESTINATION_MEDIA = LINK_DESTINATION_MEDIA;
19
+ const LINK_DESTINATION_ATTACHMENT = 'attachment';
20
+ exports.LINK_DESTINATION_ATTACHMENT = LINK_DESTINATION_ATTACHMENT;
21
+ const TEMPLATE = [['core/paragraph', {
22
+ placeholder: (0, _i18n._x)('Content…', 'content placeholder')
23
+ }]];
24
+ exports.TEMPLATE = TEMPLATE;
9
25
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/media-text/constants.js"],"names":["DEFAULT_MEDIA_SIZE_SLUG"],"mappings":";;;;;;AAAO,MAAMA,uBAAuB,GAAG,MAAhC","sourcesContent":["export const DEFAULT_MEDIA_SIZE_SLUG = 'full';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/media-text/constants.js"],"names":["DEFAULT_MEDIA_SIZE_SLUG","WIDTH_CONSTRAINT_PERCENTAGE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","TEMPLATE","placeholder"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,MAAMA,uBAAuB,GAAG,MAAhC;;AACA,MAAMC,2BAA2B,GAAG,EAApC;;AACA,MAAMC,sBAAsB,GAAG,OAA/B;;AACA,MAAMC,2BAA2B,GAAG,YAApC;;AACA,MAAMC,QAAQ,GAAG,CACvB,CACC,gBADD,EAEC;AACCC,EAAAA,WAAW,EAAE,cAAI,UAAJ,EAAgB,qBAAhB;AADd,CAFD,CADuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\n\nexport const DEFAULT_MEDIA_SIZE_SLUG = 'full';\nexport const WIDTH_CONSTRAINT_PERCENTAGE = 15;\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\nexport const TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: _x( 'Content…', 'content placeholder' ),\n\t\t},\n\t],\n];\n"]}