@wordpress/block-library 8.29.0 → 8.30.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 (347) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/audio/edit.js +7 -17
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/audio/edit.native.js.map +1 -1
  5. package/build/avatar/edit.js.map +1 -1
  6. package/build/block/deprecated.js +71 -11
  7. package/build/block/deprecated.js.map +1 -1
  8. package/build/block/edit.js +49 -24
  9. package/build/block/edit.js.map +1 -1
  10. package/build/button/edit.js +2 -2
  11. package/build/button/edit.js.map +1 -1
  12. package/build/buttons/edit.native.js.map +1 -1
  13. package/build/buttons/transforms.js +16 -2
  14. package/build/buttons/transforms.js.map +1 -1
  15. package/build/code/transforms.js +17 -6
  16. package/build/code/transforms.js.map +1 -1
  17. package/build/columns/edit.js +3 -2
  18. package/build/columns/edit.js.map +1 -1
  19. package/build/comment-author-avatar/edit.js +1 -1
  20. package/build/comment-author-avatar/edit.js.map +1 -1
  21. package/build/cover/edit/block-controls.js +14 -3
  22. package/build/cover/edit/block-controls.js.map +1 -1
  23. package/build/cover/edit/index.js.map +1 -1
  24. package/build/cover/edit/inspector-controls.js.map +1 -1
  25. package/build/cover/edit/resizable-cover-popover.js +0 -6
  26. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  27. package/build/cover/edit.native.js.map +1 -1
  28. package/build/file/deprecated.js.map +1 -1
  29. package/build/file/edit.js +6 -13
  30. package/build/file/edit.js.map +1 -1
  31. package/build/file/edit.native.js.map +1 -1
  32. package/build/file/save.js.map +1 -1
  33. package/build/form-input/edit.js +1 -1
  34. package/build/form-input/edit.js.map +1 -1
  35. package/build/gallery/edit.js.map +1 -1
  36. package/build/gallery/gallery.native.js.map +1 -1
  37. package/build/gallery/v1/edit.js.map +1 -1
  38. package/build/gallery/v1/gallery.native.js.map +1 -1
  39. package/build/heading/transforms.js +17 -4
  40. package/build/heading/transforms.js.map +1 -1
  41. package/build/image/edit.js +8 -4
  42. package/build/image/edit.js.map +1 -1
  43. package/build/image/edit.native.js.map +1 -1
  44. package/build/image/image.js +22 -8
  45. package/build/image/image.js.map +1 -1
  46. package/build/latest-posts/edit.native.js.map +1 -1
  47. package/build/list/ordered-list-settings.js +1 -1
  48. package/build/list/ordered-list-settings.js.map +1 -1
  49. package/build/list-item/edit.js +1 -3
  50. package/build/list-item/edit.js.map +1 -1
  51. package/build/list-item/edit.native.js.map +1 -1
  52. package/build/list-item/hooks/index.js +0 -7
  53. package/build/list-item/hooks/index.js.map +1 -1
  54. package/build/list-item/hooks/use-indent-list-item.js +1 -0
  55. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  56. package/build/list-item/hooks/use-outdent-list-item.js +1 -0
  57. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  58. package/build/list-item/hooks/use-space.js +16 -7
  59. package/build/list-item/hooks/use-space.js.map +1 -1
  60. package/build/list-item/index.js +4 -1
  61. package/build/list-item/index.js.map +1 -1
  62. package/build/media-text/media-container.native.js +1 -1
  63. package/build/media-text/media-container.native.js.map +1 -1
  64. package/build/navigation/edit/index.js.map +1 -1
  65. package/build/navigation-link/link-ui.js.map +1 -1
  66. package/build/paragraph/edit.native.js.map +1 -1
  67. package/build/pattern/edit.js +11 -0
  68. package/build/pattern/edit.js.map +1 -1
  69. package/build/post-excerpt/edit.js.map +1 -1
  70. package/build/post-featured-image/dimension-controls.js.map +1 -1
  71. package/build/post-featured-image/edit.js +8 -11
  72. package/build/post-featured-image/edit.js.map +1 -1
  73. package/build/post-navigation-link/edit.js.map +1 -1
  74. package/build/post-title/edit.js +2 -2
  75. package/build/post-title/edit.js.map +1 -1
  76. package/build/query/edit/pattern-selection-modal.js.map +1 -1
  77. package/build/query/utils.js +7 -5
  78. package/build/query/utils.js.map +1 -1
  79. package/build/query-pagination-next/edit.js.map +1 -1
  80. package/build/query-pagination-previous/edit.js.map +1 -1
  81. package/build/quote/deprecated.js +111 -12
  82. package/build/quote/deprecated.js.map +1 -1
  83. package/build/quote/edit.js +5 -5
  84. package/build/quote/edit.js.map +1 -1
  85. package/build/quote/index.js +1 -1
  86. package/build/quote/index.js.map +1 -1
  87. package/build/quote/save.js +2 -2
  88. package/build/quote/save.js.map +1 -1
  89. package/build/read-more/edit.js.map +1 -1
  90. package/build/search/edit.js +1 -1
  91. package/build/search/edit.js.map +1 -1
  92. package/build/search/edit.native.js.map +1 -1
  93. package/build/site-logo/edit.js +7 -2
  94. package/build/site-logo/edit.js.map +1 -1
  95. package/build/site-title/{edit/index.js → edit.js} +1 -1
  96. package/build/site-title/edit.js.map +1 -0
  97. package/build/social-link/edit.js.map +1 -1
  98. package/build/social-links/edit.native.js.map +1 -1
  99. package/build/spacer/edit.js.map +1 -1
  100. package/build/table-of-contents/edit.js.map +1 -1
  101. package/build/template-part/edit/index.js +53 -1
  102. package/build/template-part/edit/index.js.map +1 -1
  103. package/build/template-part/edit/selection-modal.js +2 -8
  104. package/build/template-part/edit/selection-modal.js.map +1 -1
  105. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
  106. package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  107. package/build/utils/caption.js +15 -5
  108. package/build/utils/caption.js.map +1 -1
  109. package/build/utils/get-transformed-metadata.js +57 -0
  110. package/build/utils/get-transformed-metadata.js.map +1 -0
  111. package/build/utils/hooks.js +55 -4
  112. package/build/utils/hooks.js.map +1 -1
  113. package/build/video/edit-common-settings.js.map +1 -1
  114. package/build/video/edit.js +7 -16
  115. package/build/video/edit.js.map +1 -1
  116. package/build/video/edit.native.js +2 -7
  117. package/build/video/edit.native.js.map +1 -1
  118. package/build-module/audio/edit.js +10 -20
  119. package/build-module/audio/edit.js.map +1 -1
  120. package/build-module/audio/edit.native.js.map +1 -1
  121. package/build-module/avatar/edit.js.map +1 -1
  122. package/build-module/block/deprecated.js +71 -11
  123. package/build-module/block/deprecated.js.map +1 -1
  124. package/build-module/block/edit.js +49 -24
  125. package/build-module/block/edit.js.map +1 -1
  126. package/build-module/button/edit.js +3 -3
  127. package/build-module/button/edit.js.map +1 -1
  128. package/build-module/buttons/edit.native.js.map +1 -1
  129. package/build-module/buttons/transforms.js +16 -2
  130. package/build-module/buttons/transforms.js.map +1 -1
  131. package/build-module/code/transforms.js +17 -6
  132. package/build-module/code/transforms.js.map +1 -1
  133. package/build-module/columns/edit.js +3 -2
  134. package/build-module/columns/edit.js.map +1 -1
  135. package/build-module/comment-author-avatar/edit.js +1 -1
  136. package/build-module/comment-author-avatar/edit.js.map +1 -1
  137. package/build-module/cover/edit/block-controls.js +15 -4
  138. package/build-module/cover/edit/block-controls.js.map +1 -1
  139. package/build-module/cover/edit/index.js.map +1 -1
  140. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  141. package/build-module/cover/edit/resizable-cover-popover.js +1 -7
  142. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  143. package/build-module/cover/edit.native.js.map +1 -1
  144. package/build-module/file/deprecated.js.map +1 -1
  145. package/build-module/file/edit.js +7 -14
  146. package/build-module/file/edit.js.map +1 -1
  147. package/build-module/file/edit.native.js.map +1 -1
  148. package/build-module/file/save.js.map +1 -1
  149. package/build-module/form-input/edit.js +1 -1
  150. package/build-module/form-input/edit.js.map +1 -1
  151. package/build-module/gallery/edit.js.map +1 -1
  152. package/build-module/gallery/gallery.native.js.map +1 -1
  153. package/build-module/gallery/v1/edit.js.map +1 -1
  154. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  155. package/build-module/heading/transforms.js +17 -4
  156. package/build-module/heading/transforms.js.map +1 -1
  157. package/build-module/image/edit.js +9 -5
  158. package/build-module/image/edit.js.map +1 -1
  159. package/build-module/image/edit.native.js.map +1 -1
  160. package/build-module/image/image.js +23 -9
  161. package/build-module/image/image.js.map +1 -1
  162. package/build-module/latest-posts/edit.native.js.map +1 -1
  163. package/build-module/list/ordered-list-settings.js +1 -1
  164. package/build-module/list/ordered-list-settings.js.map +1 -1
  165. package/build-module/list-item/edit.js +2 -4
  166. package/build-module/list-item/edit.js.map +1 -1
  167. package/build-module/list-item/edit.native.js.map +1 -1
  168. package/build-module/list-item/hooks/index.js +0 -1
  169. package/build-module/list-item/hooks/index.js.map +1 -1
  170. package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
  171. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  172. package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
  173. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  174. package/build-module/list-item/hooks/use-space.js +17 -8
  175. package/build-module/list-item/hooks/use-space.js.map +1 -1
  176. package/build-module/list-item/index.js +4 -1
  177. package/build-module/list-item/index.js.map +1 -1
  178. package/build-module/media-text/media-container.native.js +1 -1
  179. package/build-module/media-text/media-container.native.js.map +1 -1
  180. package/build-module/navigation/edit/index.js.map +1 -1
  181. package/build-module/navigation-link/link-ui.js.map +1 -1
  182. package/build-module/paragraph/edit.native.js.map +1 -1
  183. package/build-module/pattern/edit.js +11 -0
  184. package/build-module/pattern/edit.js.map +1 -1
  185. package/build-module/post-excerpt/edit.js.map +1 -1
  186. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  187. package/build-module/post-featured-image/edit.js +9 -12
  188. package/build-module/post-featured-image/edit.js.map +1 -1
  189. package/build-module/post-navigation-link/edit.js.map +1 -1
  190. package/build-module/post-title/edit.js +2 -2
  191. package/build-module/post-title/edit.js.map +1 -1
  192. package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
  193. package/build-module/query/utils.js +7 -5
  194. package/build-module/query/utils.js.map +1 -1
  195. package/build-module/query-pagination-next/edit.js.map +1 -1
  196. package/build-module/query-pagination-previous/edit.js.map +1 -1
  197. package/build-module/quote/deprecated.js +112 -13
  198. package/build-module/quote/deprecated.js.map +1 -1
  199. package/build-module/quote/edit.js +5 -5
  200. package/build-module/quote/edit.js.map +1 -1
  201. package/build-module/quote/index.js +1 -1
  202. package/build-module/quote/index.js.map +1 -1
  203. package/build-module/quote/save.js +2 -2
  204. package/build-module/quote/save.js.map +1 -1
  205. package/build-module/read-more/edit.js.map +1 -1
  206. package/build-module/search/edit.js +1 -1
  207. package/build-module/search/edit.js.map +1 -1
  208. package/build-module/search/edit.native.js.map +1 -1
  209. package/build-module/site-logo/edit.js +7 -2
  210. package/build-module/site-logo/edit.js.map +1 -1
  211. package/build-module/site-title/{edit/index.js → edit.js} +1 -1
  212. package/build-module/site-title/edit.js.map +1 -0
  213. package/build-module/social-link/edit.js.map +1 -1
  214. package/build-module/social-links/edit.native.js.map +1 -1
  215. package/build-module/spacer/edit.js.map +1 -1
  216. package/build-module/table-of-contents/edit.js.map +1 -1
  217. package/build-module/template-part/edit/index.js +57 -5
  218. package/build-module/template-part/edit/index.js.map +1 -1
  219. package/build-module/template-part/edit/selection-modal.js +2 -8
  220. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  221. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
  222. package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
  223. package/build-module/utils/caption.js +13 -3
  224. package/build-module/utils/caption.js.map +1 -1
  225. package/build-module/utils/get-transformed-metadata.js +51 -0
  226. package/build-module/utils/get-transformed-metadata.js.map +1 -0
  227. package/build-module/utils/hooks.js +54 -3
  228. package/build-module/utils/hooks.js.map +1 -1
  229. package/build-module/video/edit-common-settings.js.map +1 -1
  230. package/build-module/video/edit.js +10 -19
  231. package/build-module/video/edit.js.map +1 -1
  232. package/build-module/video/edit.native.js +2 -7
  233. package/build-module/video/edit.native.js.map +1 -1
  234. package/build-style/common-rtl.css +1 -0
  235. package/build-style/common.css +1 -0
  236. package/build-style/cover/style-rtl.css +2 -1
  237. package/build-style/cover/style.css +2 -1
  238. package/build-style/editor-rtl.css +4 -1
  239. package/build-style/editor.css +4 -1
  240. package/build-style/group/editor-rtl.css +1 -1
  241. package/build-style/group/editor.css +1 -1
  242. package/build-style/image/editor-rtl.css +3 -0
  243. package/build-style/image/editor.css +3 -0
  244. package/build-style/search/style-rtl.css +2 -0
  245. package/build-style/search/style.css +2 -0
  246. package/build-style/style-rtl.css +4 -1
  247. package/build-style/style.css +4 -1
  248. package/package.json +34 -34
  249. package/src/audio/edit.js +9 -19
  250. package/src/audio/edit.native.js +3 -3
  251. package/src/avatar/edit.js +1 -1
  252. package/src/block/deprecated.js +76 -11
  253. package/src/block/edit.js +64 -19
  254. package/src/block/index.php +23 -12
  255. package/src/button/edit.js +4 -3
  256. package/src/buttons/edit.native.js +1 -1
  257. package/src/buttons/transforms.js +14 -4
  258. package/src/calendar/index.php +5 -0
  259. package/src/code/transforms.js +20 -5
  260. package/src/columns/edit.js +3 -2
  261. package/src/comment-author-avatar/edit.js +1 -1
  262. package/src/comments/index.php +2 -0
  263. package/src/cover/edit/block-controls.js +16 -2
  264. package/src/cover/edit/index.js +2 -2
  265. package/src/cover/edit/inspector-controls.js +1 -1
  266. package/src/cover/edit/resizable-cover-popover.js +1 -6
  267. package/src/cover/edit.native.js +1 -1
  268. package/src/cover/style.scss +3 -2
  269. package/src/file/deprecated.js +3 -3
  270. package/src/file/edit.js +8 -15
  271. package/src/file/edit.native.js +4 -4
  272. package/src/file/save.js +1 -1
  273. package/src/footnotes/index.php +1 -1
  274. package/src/form-input/edit.js +1 -1
  275. package/src/gallery/edit.js +3 -3
  276. package/src/gallery/gallery.native.js +1 -1
  277. package/src/gallery/test/index.native.js +1 -1
  278. package/src/gallery/v1/edit.js +2 -2
  279. package/src/gallery/v1/gallery.native.js +1 -1
  280. package/src/group/editor.scss +1 -1
  281. package/src/heading/transforms.js +27 -8
  282. package/src/image/edit.js +13 -5
  283. package/src/image/edit.native.js +1 -1
  284. package/src/image/editor.scss +6 -0
  285. package/src/image/image.js +34 -22
  286. package/src/latest-posts/edit.native.js +1 -1
  287. package/src/list/ordered-list-settings.js +1 -1
  288. package/src/list-item/edit.js +1 -2
  289. package/src/list-item/edit.native.js +1 -1
  290. package/src/list-item/hooks/index.js +0 -1
  291. package/src/list-item/hooks/use-indent-list-item.js +2 -0
  292. package/src/list-item/hooks/use-outdent-list-item.js +2 -0
  293. package/src/list-item/hooks/use-space.js +16 -9
  294. package/src/list-item/index.js +3 -0
  295. package/src/media-text/media-container.native.js +5 -3
  296. package/src/media-text/test/edit.native.js +58 -0
  297. package/src/missing/test/edit-integration.native.js +2 -1
  298. package/src/navigation/edit/index.js +1 -1
  299. package/src/navigation/edit/test/navigation-menu-selector.js +3 -3
  300. package/src/navigation/index.php +26 -17
  301. package/src/navigation-link/link-ui.js +2 -2
  302. package/src/paragraph/edit.native.js +1 -1
  303. package/src/paragraph/test/edit.native.js +36 -0
  304. package/src/pattern/edit.js +14 -0
  305. package/src/post-excerpt/edit.js +1 -1
  306. package/src/post-featured-image/dimension-controls.js +4 -4
  307. package/src/post-featured-image/edit.js +10 -12
  308. package/src/post-navigation-link/edit.js +1 -1
  309. package/src/post-template/index.php +2 -0
  310. package/src/post-title/edit.js +49 -43
  311. package/src/query/edit/pattern-selection-modal.js +1 -1
  312. package/src/query/utils.js +6 -4
  313. package/src/query-pagination-next/edit.js +1 -1
  314. package/src/query-pagination-previous/edit.js +1 -1
  315. package/src/quote/block.json +1 -1
  316. package/src/quote/deprecated.js +110 -15
  317. package/src/quote/edit.js +5 -5
  318. package/src/quote/save.js +2 -2
  319. package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
  320. package/src/read-more/edit.js +1 -1
  321. package/src/search/edit.js +1 -1
  322. package/src/search/edit.native.js +4 -4
  323. package/src/search/index.php +1 -1
  324. package/src/search/style.scss +2 -0
  325. package/src/site-logo/edit.js +11 -6
  326. package/src/social-link/edit.js +1 -1
  327. package/src/social-links/edit.native.js +1 -1
  328. package/src/spacer/edit.js +1 -1
  329. package/src/table-of-contents/edit.js +1 -1
  330. package/src/template-part/edit/index.js +91 -4
  331. package/src/template-part/edit/selection-modal.js +4 -8
  332. package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
  333. package/src/utils/caption.js +10 -1
  334. package/src/utils/get-transformed-metadata.js +65 -0
  335. package/src/utils/hooks.js +53 -3
  336. package/src/video/edit-common-settings.js +1 -1
  337. package/src/video/edit.js +10 -18
  338. package/src/video/edit.native.js +5 -8
  339. package/src/video/test/edit.native.js +0 -14
  340. package/build/list-item/hooks/use-copy.js +0 -39
  341. package/build/list-item/hooks/use-copy.js.map +0 -1
  342. package/build/site-title/edit/index.js.map +0 -1
  343. package/build-module/list-item/hooks/use-copy.js +0 -32
  344. package/build-module/list-item/hooks/use-copy.js.map +0 -1
  345. package/build-module/site-title/edit/index.js.map +0 -1
  346. package/src/list-item/hooks/use-copy.js +0 -38
  347. /package/src/site-title/{edit/index.js → edit.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["__unstableStripHTML","stripHTML","Popover","Button","VisuallyHidden","__experimentalVStack","VStack","__","sprintf","__experimentalLinkControl","LinkControl","store","blockEditorStore","privateApis","blockEditorPrivateApis","createInterpolateElement","useMemo","useState","useRef","useEffect","coreStore","useResourcePermissions","decodeEntities","useSelect","useDispatch","chevronLeftSmall","plus","useInstanceId","useFocusOnMount","unlock","PrivateQuickInserter","QuickInserter","getSuggestionsQuery","type","kind","subtype","initialSuggestionsSearchOptions","perPage","LinkUIBlockInserter","clientId","onBack","onSelectBlock","rootBlockClientId","select","getBlockRootClientId","focusOnMountRef","dialogTitleId","dialogDescritionId","createElement","className","role","ref","id","icon","onClick","e","preventDefault","size","rootClientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","onSelect","LinkUI","props","addingBlock","setAddingBlock","focusAddBlockButton","setFocusAddBlockButton","showBackdrop","setShowBackdrop","saveEntityRecord","pagesPermissions","postsPermissions","handleCreate","pageTitle","postType","link","page","title","status","rendered","url","label","opensInNewTab","userCanCreate","canCreate","onClose","Fragment","placement","anchor","shift","hasTextControl","hasRichPreviews","value","showInitialSuggestions","withCreateSuggestion","createSuggestion","createSuggestionButtonText","searchTerm","format","mark","noDirectEntry","noURLSuggestion","suggestionsQuery","onChange","onRemove","onCancel","renderControlBottom","length","LinkUITools","blockInserterAriaRole","addBlockButtonRef","current","focus"],"sources":["@wordpress/block-library/src/navigation-link/link-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tPopover,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tcreateInterpolateElement,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { chevronLeftSmall, plus } from '@wordpress/icons';\nimport { useInstanceId, useFocusOnMount } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { PrivateQuickInserter: QuickInserter } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// for custom link which has no type\n\t\t\t\t// always show pages as initial suggestions\n\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\tperPage: 20,\n\t\t\t\t},\n\t\t\t};\n\t}\n}\n\nfunction LinkUIBlockInserter( { clientId, onBack, onSelectBlock } ) {\n\tconst { rootBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\trootBlockClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__description`\n\t);\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"link-ui-block-inserter\"\n\t\t\trole=\"dialog\"\n\t\t\taria-labelledby={ dialogTitleId }\n\t\t\taria-describedby={ dialogDescritionId }\n\t\t\tref={ focusOnMountRef }\n\t\t>\n\t\t\t<VisuallyHidden>\n\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add block' ) }</h2>\n\n\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t{ __( 'Choose a block to add to your Navigation.' ) }\n\t\t\t\t</p>\n\t\t\t</VisuallyHidden>\n\n\t\t\t<Button\n\t\t\t\tclassName=\"link-ui-block-inserter__back\"\n\t\t\t\ticon={ chevronLeftSmall }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tonBack();\n\t\t\t\t} }\n\t\t\t\tsize=\"small\"\n\t\t\t>\n\t\t\t\t{ __( 'Back' ) }\n\t\t\t</Button>\n\n\t\t\t<QuickInserter\n\t\t\t\trootClientId={ rootBlockClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ false }\n\t\t\t\tprioritizePatterns={ false }\n\t\t\t\tselectBlockOnInsert={ true }\n\t\t\t\thasSearch={ false }\n\t\t\t\tonSelect={ onSelectBlock }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function LinkUI( props ) {\n\tconst [ addingBlock, setAddingBlock ] = useState( false );\n\tconst [ focusAddBlockButton, setFocusAddBlockButton ] = useState( false );\n\tconst [ showBackdrop, setShowBackdrop ] = useState( true );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = props.link.type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\t// Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)\n\t\t\t// is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.\n\t\t\t// Ideally in the future we will update both APIs to utilise the \"raw\" form of the title which is better suited to edit contexts.\n\t\t\t// e.g.\n\t\t\t// - title.raw = \"Yes & No\"\n\t\t\t// - title.rendered = \"Yes &#038; No\"\n\t\t\t// - decodeEntities( title.rendered ) = \"Yes & No\"\n\t\t\t// See:\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t\t\t// - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218\n\t\t\ttitle: decodeEntities( page.title.rendered ),\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.\n\tconst link = useMemo(\n\t\t() => ( {\n\t\t\turl,\n\t\t\topensInNewTab,\n\t\t\ttitle: label && stripHTML( label ),\n\t\t} ),\n\t\t[ label, opensInNewTab, url ]\n\t);\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__description`\n\t);\n\n\t// Selecting a block should close the popover and also remove the (previously) automatically inserted\n\t// link block so that the newly selected block can be inserted in its place.\n\tconst { onClose: onSelectBlock } = props;\n\n\treturn (\n\t\t<>\n\t\t\t{ showBackdrop && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-popover-pointer-events-trap\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tonClick={ () => setShowBackdrop( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Popover\n\t\t\t\tplacement=\"bottom\"\n\t\t\t\tonClose={ props.onClose }\n\t\t\t\tanchor={ props.anchor }\n\t\t\t\tshift\n\t\t\t>\n\t\t\t\t{ ! addingBlock && (\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\taria-labelledby={ dialogTitleId }\n\t\t\t\t\t\taria-describedby={ dialogDescritionId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add link' ) }</h2>\n\n\t\t\t\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Search for and add a link to your Navigation.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\tlet format;\n\n\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmark: <mark />,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ props.onChange }\n\t\t\t\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\t\t\t\tonCancel={ props.onCancel }\n\t\t\t\t\t\t\trenderControlBottom={ () =>\n\t\t\t\t\t\t\t\t! link?.url?.length && (\n\t\t\t\t\t\t\t\t\t<LinkUITools\n\t\t\t\t\t\t\t\t\t\tfocusAddBlockButton={\n\t\t\t\t\t\t\t\t\t\t\tfocusAddBlockButton\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetAddingBlock={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t\t\t\t\t\t\tsetFocusAddBlockButton( false );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\n\t\t\t\t{ addingBlock && (\n\t\t\t\t\t<LinkUIBlockInserter\n\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\t\tsetAddingBlock( false );\n\t\t\t\t\t\t\tsetFocusAddBlockButton( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonSelectBlock={ onSelectBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t</>\n\t);\n}\n\nconst LinkUITools = ( { setAddingBlock, focusAddBlockButton } ) => {\n\tconst blockInserterAriaRole = 'listbox';\n\tconst addBlockButtonRef = useRef();\n\n\t// Focus the add block button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddBlockButton ) {\n\t\t\taddBlockButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddBlockButton ] );\n\n\treturn (\n\t\t<VStack className=\"link-ui-tools\">\n\t\t\t<Button\n\t\t\t\tref={ addBlockButtonRef }\n\t\t\t\ticon={ plus }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t>\n\t\t\t\t{ __( 'Add block' ) }\n\t\t\t</Button>\n\t\t</VStack>\n\t);\n};\n\nexport default LinkUITools;\n"],"mappings":"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"}
1
+ {"version":3,"names":["__unstableStripHTML","stripHTML","Popover","Button","VisuallyHidden","__experimentalVStack","VStack","__","sprintf","__experimentalLinkControl","LinkControl","store","blockEditorStore","privateApis","blockEditorPrivateApis","createInterpolateElement","useMemo","useState","useRef","useEffect","coreStore","useResourcePermissions","decodeEntities","useSelect","useDispatch","chevronLeftSmall","plus","useInstanceId","useFocusOnMount","unlock","PrivateQuickInserter","QuickInserter","getSuggestionsQuery","type","kind","subtype","initialSuggestionsSearchOptions","perPage","LinkUIBlockInserter","clientId","onBack","onSelectBlock","rootBlockClientId","select","getBlockRootClientId","focusOnMountRef","dialogTitleId","dialogDescritionId","createElement","className","role","ref","id","icon","onClick","e","preventDefault","size","rootClientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","onSelect","LinkUI","props","addingBlock","setAddingBlock","focusAddBlockButton","setFocusAddBlockButton","showBackdrop","setShowBackdrop","saveEntityRecord","pagesPermissions","postsPermissions","handleCreate","pageTitle","postType","link","page","title","status","rendered","url","label","opensInNewTab","userCanCreate","canCreate","onClose","Fragment","placement","anchor","shift","hasTextControl","hasRichPreviews","value","showInitialSuggestions","withCreateSuggestion","createSuggestion","createSuggestionButtonText","searchTerm","format","mark","noDirectEntry","noURLSuggestion","suggestionsQuery","onChange","onRemove","onCancel","renderControlBottom","length","LinkUITools","blockInserterAriaRole","addBlockButtonRef","current","focus"],"sources":["@wordpress/block-library/src/navigation-link/link-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tPopover,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tcreateInterpolateElement,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { chevronLeftSmall, plus } from '@wordpress/icons';\nimport { useInstanceId, useFocusOnMount } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { PrivateQuickInserter: QuickInserter } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// for custom link which has no type\n\t\t\t\t// always show pages as initial suggestions\n\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\tperPage: 20,\n\t\t\t\t},\n\t\t\t};\n\t}\n}\n\nfunction LinkUIBlockInserter( { clientId, onBack, onSelectBlock } ) {\n\tconst { rootBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\trootBlockClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__description`\n\t);\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"link-ui-block-inserter\"\n\t\t\trole=\"dialog\"\n\t\t\taria-labelledby={ dialogTitleId }\n\t\t\taria-describedby={ dialogDescritionId }\n\t\t\tref={ focusOnMountRef }\n\t\t>\n\t\t\t<VisuallyHidden>\n\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add block' ) }</h2>\n\n\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t{ __( 'Choose a block to add to your Navigation.' ) }\n\t\t\t\t</p>\n\t\t\t</VisuallyHidden>\n\n\t\t\t<Button\n\t\t\t\tclassName=\"link-ui-block-inserter__back\"\n\t\t\t\ticon={ chevronLeftSmall }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tonBack();\n\t\t\t\t} }\n\t\t\t\tsize=\"small\"\n\t\t\t>\n\t\t\t\t{ __( 'Back' ) }\n\t\t\t</Button>\n\n\t\t\t<QuickInserter\n\t\t\t\trootClientId={ rootBlockClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ false }\n\t\t\t\tprioritizePatterns={ false }\n\t\t\t\tselectBlockOnInsert\n\t\t\t\thasSearch={ false }\n\t\t\t\tonSelect={ onSelectBlock }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport function LinkUI( props ) {\n\tconst [ addingBlock, setAddingBlock ] = useState( false );\n\tconst [ focusAddBlockButton, setFocusAddBlockButton ] = useState( false );\n\tconst [ showBackdrop, setShowBackdrop ] = useState( true );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst pagesPermissions = useResourcePermissions( 'pages' );\n\tconst postsPermissions = useResourcePermissions( 'posts' );\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = props.link.type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\t// Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)\n\t\t\t// is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.\n\t\t\t// Ideally in the future we will update both APIs to utilise the \"raw\" form of the title which is better suited to edit contexts.\n\t\t\t// e.g.\n\t\t\t// - title.raw = \"Yes & No\"\n\t\t\t// - title.rendered = \"Yes &#038; No\"\n\t\t\t// - decodeEntities( title.rendered ) = \"Yes & No\"\n\t\t\t// See:\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t\t\t// - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218\n\t\t\ttitle: decodeEntities( page.title.rendered ),\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = pagesPermissions.canCreate;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = postsPermissions.canCreate;\n\t}\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.\n\tconst link = useMemo(\n\t\t() => ( {\n\t\t\turl,\n\t\t\topensInNewTab,\n\t\t\ttitle: label && stripHTML( label ),\n\t\t} ),\n\t\t[ label, opensInNewTab, url ]\n\t);\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__description`\n\t);\n\n\t// Selecting a block should close the popover and also remove the (previously) automatically inserted\n\t// link block so that the newly selected block can be inserted in its place.\n\tconst { onClose: onSelectBlock } = props;\n\n\treturn (\n\t\t<>\n\t\t\t{ showBackdrop && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-popover-pointer-events-trap\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tonClick={ () => setShowBackdrop( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Popover\n\t\t\t\tplacement=\"bottom\"\n\t\t\t\tonClose={ props.onClose }\n\t\t\t\tanchor={ props.anchor }\n\t\t\t\tshift\n\t\t\t>\n\t\t\t\t{ ! addingBlock && (\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\taria-labelledby={ dialogTitleId }\n\t\t\t\t\t\taria-describedby={ dialogDescritionId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add link' ) }</h2>\n\n\t\t\t\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Search for and add a link to your Navigation.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\tlet format;\n\n\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmark: <mark />,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ props.onChange }\n\t\t\t\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\t\t\t\tonCancel={ props.onCancel }\n\t\t\t\t\t\t\trenderControlBottom={ () =>\n\t\t\t\t\t\t\t\t! link?.url?.length && (\n\t\t\t\t\t\t\t\t\t<LinkUITools\n\t\t\t\t\t\t\t\t\t\tfocusAddBlockButton={\n\t\t\t\t\t\t\t\t\t\t\tfocusAddBlockButton\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetAddingBlock={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t\t\t\t\t\t\tsetFocusAddBlockButton( false );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\n\t\t\t\t{ addingBlock && (\n\t\t\t\t\t<LinkUIBlockInserter\n\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\t\tsetAddingBlock( false );\n\t\t\t\t\t\t\tsetFocusAddBlockButton( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonSelectBlock={ onSelectBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t</>\n\t);\n}\n\nconst LinkUITools = ( { setAddingBlock, focusAddBlockButton } ) => {\n\tconst blockInserterAriaRole = 'listbox';\n\tconst addBlockButtonRef = useRef();\n\n\t// Focus the add block button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddBlockButton ) {\n\t\t\taddBlockButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddBlockButton ] );\n\n\treturn (\n\t\t<VStack className=\"link-ui-tools\">\n\t\t\t<Button\n\t\t\t\tref={ addBlockButtonRef }\n\t\t\t\ticon={ plus }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t>\n\t\t\t\t{ __( 'Add block' ) }\n\t\t\t</Button>\n\t\t</VStack>\n\t);\n};\n\nexport default LinkUITools;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["__","createBlock","AlignmentControl","BlockControls","RichText","store","blockEditorStore","useCallback","useSelect","name","allowedParentBlockAlignments","ParagraphBlock","attributes","mergeBlocks","onReplace","setAttributes","style","clientId","parentBlockAlignment","isRTL","select","getSettings","align","content","placeholder","styles","baseColors","color","text","placeholderColor","linkColor","elements","link","onAlignmentChange","nextAlign","parentTextAlignment","includes","undefined","textAlignment","createElement","Fragment","group","value","onChange","identifier","tagName","deleteEnter","nextContent","onSplit","isOriginal","newAttributes","block","onMerge","onRemove","textAlign","__unstableEmbedURLOnPaste"],"sources":["@wordpress/block-library/src/paragraph/edit.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\nconst name = 'core/paragraph';\n\nconst allowedParentBlockAlignments = [ 'left', 'center', 'right' ];\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tsetAttributes,\n\tstyle,\n\tclientId,\n\tparentBlockAlignment,\n} ) {\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst { align, content, placeholder } = attributes;\n\n\tconst styles = {\n\t\t...( style?.baseColors && {\n\t\t\tcolor: style.baseColors?.color?.text,\n\t\t\tplaceholderColor: style.color || style.baseColors?.color?.text,\n\t\t\tlinkColor: style.baseColors?.elements?.link?.color?.text,\n\t\t} ),\n\t\t...style,\n\t};\n\n\tconst onAlignmentChange = useCallback( ( nextAlign ) => {\n\t\tsetAttributes( { align: nextAlign } );\n\t}, [] );\n\n\tconst parentTextAlignment = allowedParentBlockAlignments.includes(\n\t\tparentBlockAlignment\n\t)\n\t\t? parentBlockAlignment\n\t\t: undefined;\n\n\tconst textAlignment = align || parentTextAlignment;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\tonChange={ onAlignmentChange }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\tvalue={ content }\n\t\t\t\tdeleteEnter={ true }\n\t\t\t\tstyle={ styles }\n\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onReplace ? () => onReplace( [] ) : undefined }\n\t\t\t\tplaceholder={ placeholder || __( 'Start writing…' ) }\n\t\t\t\ttextAlign={ textAlignment }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","createBlock","AlignmentControl","BlockControls","RichText","store","blockEditorStore","useCallback","useSelect","name","allowedParentBlockAlignments","ParagraphBlock","attributes","mergeBlocks","onReplace","setAttributes","style","clientId","parentBlockAlignment","isRTL","select","getSettings","align","content","placeholder","styles","baseColors","color","text","placeholderColor","linkColor","elements","link","onAlignmentChange","nextAlign","parentTextAlignment","includes","undefined","textAlignment","createElement","Fragment","group","value","onChange","identifier","tagName","deleteEnter","nextContent","onSplit","isOriginal","newAttributes","block","onMerge","onRemove","textAlign","__unstableEmbedURLOnPaste"],"sources":["@wordpress/block-library/src/paragraph/edit.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\nconst name = 'core/paragraph';\n\nconst allowedParentBlockAlignments = [ 'left', 'center', 'right' ];\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tsetAttributes,\n\tstyle,\n\tclientId,\n\tparentBlockAlignment,\n} ) {\n\tconst isRTL = useSelect( ( select ) => {\n\t\treturn !! select( blockEditorStore ).getSettings().isRTL;\n\t}, [] );\n\n\tconst { align, content, placeholder } = attributes;\n\n\tconst styles = {\n\t\t...( style?.baseColors && {\n\t\t\tcolor: style.baseColors?.color?.text,\n\t\t\tplaceholderColor: style.color || style.baseColors?.color?.text,\n\t\t\tlinkColor: style.baseColors?.elements?.link?.color?.text,\n\t\t} ),\n\t\t...style,\n\t};\n\n\tconst onAlignmentChange = useCallback( ( nextAlign ) => {\n\t\tsetAttributes( { align: nextAlign } );\n\t}, [] );\n\n\tconst parentTextAlignment = allowedParentBlockAlignments.includes(\n\t\tparentBlockAlignment\n\t)\n\t\t? parentBlockAlignment\n\t\t: undefined;\n\n\tconst textAlignment = align || parentTextAlignment;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tisRTL={ isRTL }\n\t\t\t\t\tonChange={ onAlignmentChange }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\tvalue={ content }\n\t\t\t\tdeleteEnter\n\t\t\t\tstyle={ styles }\n\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tonSplit={ ( value, isOriginal ) => {\n\t\t\t\t\tlet newAttributes;\n\n\t\t\t\t\tif ( isOriginal || value ) {\n\t\t\t\t\t\tnewAttributes = {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst block = createBlock( name, newAttributes );\n\n\t\t\t\t\tif ( isOriginal ) {\n\t\t\t\t\t\tblock.clientId = clientId;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn block;\n\t\t\t\t} }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onReplace ? () => onReplace( [] ) : undefined }\n\t\t\t\tplaceholder={ placeholder || __( 'Start writing…' ) }\n\t\t\t\ttextAlign={ textAlignment }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"],"mappings":"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"}
@@ -71,6 +71,17 @@ const PatternEdit = ({
71
71
  // Clone blocks from the pattern before insertion to ensure they receive
72
72
  // distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.
73
73
  const clonedBlocks = selectedPattern.blocks.map(block => cloneBlock(injectThemeAttributeInBlockTemplateContent(block)));
74
+ // If the pattern has a single block and categories, we should add the
75
+ // categories of the pattern to the block's metadata.
76
+ if (clonedBlocks.length === 1 && selectedPattern.categories?.length > 0) {
77
+ clonedBlocks[0].attributes = {
78
+ ...clonedBlocks[0].attributes,
79
+ metadata: {
80
+ ...clonedBlocks[0].attributes.metadata,
81
+ categories: selectedPattern.categories
82
+ }
83
+ };
84
+ }
74
85
  const rootEditingMode = getBlockEditingMode(rootClientId);
75
86
  registry.batch(() => {
76
87
  // Temporarily set the root block to default mode to allow replacing the pattern.
@@ -1 +1 @@
1
- {"version":3,"names":["cloneBlock","useSelect","useDispatch","useRegistry","useState","useEffect","Warning","store","blockEditorStore","useBlockProps","coreStore","__","sprintf","useParsePatternDependencies","PatternEdit","attributes","clientId","registry","selectedPattern","select","__experimentalGetParsedPattern","slug","currentThemeStylesheet","getCurrentTheme","stylesheet","replaceBlocks","setBlockEditingMode","__unstableMarkNextChangeAsNotPersistent","getBlockRootClientId","getBlockEditingMode","hasRecursionError","setHasRecursionError","parsePatternDependencies","injectThemeAttributeInBlockTemplateContent","block","innerBlocks","find","innerBlock","name","map","theme","undefined","blocks","error","window","queueMicrotask","rootClientId","clonedBlocks","rootEditingMode","batch","props","createElement"],"sources":["@wordpress/block-library/src/pattern/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\tWarning,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useParsePatternDependencies } from './recursion-detector';\n\nconst PatternEdit = ( { attributes, clientId } ) => {\n\tconst registry = useRegistry();\n\tconst selectedPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tattributes.slug\n\t\t\t),\n\t\t[ attributes.slug ]\n\t);\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tsetBlockEditingMode,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockEditingMode } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst [ hasRecursionError, setHasRecursionError ] = useState( false );\n\tconst parsePatternDependencies = useParsePatternDependencies();\n\n\t// Duplicated in packages/edit-site/src/components/start-template-options/index.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\t// Run this effect when the component loads.\n\t// This adds the Pattern's contents to the post.\n\t// This change won't be saved.\n\t// It will continue to pull from the pattern file unless changes are made to its respective template part.\n\tuseEffect( () => {\n\t\tif ( ! hasRecursionError && selectedPattern?.blocks ) {\n\t\t\ttry {\n\t\t\t\tparsePatternDependencies( selectedPattern );\n\t\t\t} catch ( error ) {\n\t\t\t\tsetHasRecursionError( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We batch updates to block list settings to avoid triggering cascading renders\n\t\t\t// for each container block included in a tree and optimize initial render.\n\t\t\t// Since the above uses microtasks, we need to use a microtask here as well,\n\t\t\t// because nested pattern blocks cannot be inserted if the parent block supports\n\t\t\t// inner blocks but doesn't have blockSettings in the state.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\t// Clone blocks from the pattern before insertion to ensure they receive\n\t\t\t\t// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.\n\t\t\t\tconst clonedBlocks = selectedPattern.blocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock(\n\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconst rootEditingMode = getBlockEditingMode( rootClientId );\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t// Temporarily set the root block to default mode to allow replacing the pattern.\n\t\t\t\t\t// This could happen when the page is disabling edits of non-content blocks.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, 'default' );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\treplaceBlocks( clientId, clonedBlocks );\n\t\t\t\t\t// Restore the root block's original mode.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, rootEditingMode );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\thasRecursionError,\n\t\tselectedPattern,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tgetBlockRootClientId,\n\t] );\n\n\tconst props = useBlockProps();\n\n\tif ( hasRecursionError ) {\n\t\treturn (\n\t\t\t<div { ...props }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: A warning in which %s is the name of a pattern.\n\t\t\t\t\t\t__( 'Pattern \"%s\" cannot be rendered inside itself.' ),\n\t\t\t\t\t\tselectedPattern?.name\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn <div { ...props } />;\n};\n\nexport default PatternEdit;\n"],"mappings":"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"}
1
+ {"version":3,"names":["cloneBlock","useSelect","useDispatch","useRegistry","useState","useEffect","Warning","store","blockEditorStore","useBlockProps","coreStore","__","sprintf","useParsePatternDependencies","PatternEdit","attributes","clientId","registry","selectedPattern","select","__experimentalGetParsedPattern","slug","currentThemeStylesheet","getCurrentTheme","stylesheet","replaceBlocks","setBlockEditingMode","__unstableMarkNextChangeAsNotPersistent","getBlockRootClientId","getBlockEditingMode","hasRecursionError","setHasRecursionError","parsePatternDependencies","injectThemeAttributeInBlockTemplateContent","block","innerBlocks","find","innerBlock","name","map","theme","undefined","blocks","error","window","queueMicrotask","rootClientId","clonedBlocks","length","categories","metadata","rootEditingMode","batch","props","createElement"],"sources":["@wordpress/block-library/src/pattern/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\tWarning,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useParsePatternDependencies } from './recursion-detector';\n\nconst PatternEdit = ( { attributes, clientId } ) => {\n\tconst registry = useRegistry();\n\tconst selectedPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tattributes.slug\n\t\t\t),\n\t\t[ attributes.slug ]\n\t);\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tsetBlockEditingMode,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockEditingMode } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst [ hasRecursionError, setHasRecursionError ] = useState( false );\n\tconst parsePatternDependencies = useParsePatternDependencies();\n\n\t// Duplicated in packages/edit-site/src/components/start-template-options/index.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\t// Run this effect when the component loads.\n\t// This adds the Pattern's contents to the post.\n\t// This change won't be saved.\n\t// It will continue to pull from the pattern file unless changes are made to its respective template part.\n\tuseEffect( () => {\n\t\tif ( ! hasRecursionError && selectedPattern?.blocks ) {\n\t\t\ttry {\n\t\t\t\tparsePatternDependencies( selectedPattern );\n\t\t\t} catch ( error ) {\n\t\t\t\tsetHasRecursionError( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We batch updates to block list settings to avoid triggering cascading renders\n\t\t\t// for each container block included in a tree and optimize initial render.\n\t\t\t// Since the above uses microtasks, we need to use a microtask here as well,\n\t\t\t// because nested pattern blocks cannot be inserted if the parent block supports\n\t\t\t// inner blocks but doesn't have blockSettings in the state.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\t// Clone blocks from the pattern before insertion to ensure they receive\n\t\t\t\t// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.\n\t\t\t\tconst clonedBlocks = selectedPattern.blocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock(\n\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t// If the pattern has a single block and categories, we should add the\n\t\t\t\t// categories of the pattern to the block's metadata.\n\t\t\t\tif (\n\t\t\t\t\tclonedBlocks.length === 1 &&\n\t\t\t\t\tselectedPattern.categories?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tclonedBlocks[ 0 ].attributes = {\n\t\t\t\t\t\t...clonedBlocks[ 0 ].attributes,\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t...clonedBlocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\t\tcategories: selectedPattern.categories,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst rootEditingMode = getBlockEditingMode( rootClientId );\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t// Temporarily set the root block to default mode to allow replacing the pattern.\n\t\t\t\t\t// This could happen when the page is disabling edits of non-content blocks.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, 'default' );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\treplaceBlocks( clientId, clonedBlocks );\n\t\t\t\t\t// Restore the root block's original mode.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, rootEditingMode );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\thasRecursionError,\n\t\tselectedPattern,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tgetBlockRootClientId,\n\t] );\n\n\tconst props = useBlockProps();\n\n\tif ( hasRecursionError ) {\n\t\treturn (\n\t\t\t<div { ...props }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: A warning in which %s is the name of a pattern.\n\t\t\t\t\t\t__( 'Pattern \"%s\" cannot be rendered inside itself.' ),\n\t\t\t\t\t\tselectedPattern?.name\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn <div { ...props } />;\n};\n\nexport default PatternEdit;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useEntityProp","store","coreStore","useMemo","AlignmentToolbar","BlockControls","InspectorControls","RichText","Warning","useBlockProps","PanelBody","ToggleControl","RangeControl","__","_x","useSelect","useCanEditEntity","ELLIPSIS","PostExcerptEditor","attributes","textAlign","moreText","showMoreOnNewLine","excerptLength","setAttributes","isSelected","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","userCanEdit","rawExcerpt","setExcerpt","rendered","renderedExcerpt","protected","isProtected","postTypeSupportsExcerpts","select","getPostType","supports","excerpt","isEditable","blockProps","className","wordCountType","strippedRenderedExcerpt","document","window","DOMParser","parseFromString","body","textContent","innerText","createElement","Fragment","value","onChange","newAlign","readMoreLink","tagName","placeholder","newMoreText","withoutInteractiveFormatting","excerptClassName","rawOrRenderedExcerpt","trim","trimmedExcerpt","split","join","excerptWithSpaces","numberOfSpaces","length","replaceAll","isTrimmed","excerptContent","title","__nextHasNoMarginBottom","label","checked","newShowMoreOnNewLine","min","max"],"sources":["@wordpress/block-library/src/post-excerpt/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentToolbar,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl, RangeControl } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nconst ELLIPSIS = '…';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine, excerptLength },\n\tsetAttributes,\n\tisSelected,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\n\t/**\n\t * Check if the post type supports excerpts.\n\t * Add an exception and return early for the \"page\" post type,\n\t * which is registered without support for the excerpt UI,\n\t * but supports saving the excerpt to the database.\n\t * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65\n\t * Without this exception, users that have excerpts saved to the database will\n\t * not be able to edit the excerpts.\n\t */\n\tconst postTypeSupportsExcerpts = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn !! select( coreStore ).getPostType( postType )?.supports\n\t\t\t\t?.excerpt;\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t/**\n\t * The excerpt is editable if:\n\t * - The user can edit the post\n\t * - It is not a descendent of a Query Loop block\n\t * - The post type supports excerpts\n\t */\n\tconst isEditable =\n\t\tuserCanEdit && ! isDescendentOfQueryLoop && postTypeSupportsExcerpts;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) return '';\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>{ __( 'This block will display the excerpt.' ) }</p>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The content is currently protected and does not have the available excerpt.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting={ true }\n\t\t/>\n\t);\n\tconst excerptClassName = classnames( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = (\n\t\trawExcerpt || strippedRenderedExcerpt\n\t).trim();\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( ' ', excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\t}\n\n\tconst isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( ! isTrimmed\n\t\t\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t\t\t: trimmedExcerpt + ELLIPSIS ) ||\n\t\t\t\t\t __( 'No excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ ! isTrimmed\n\t\t\t\t? rawOrRenderedExcerpt || __( 'No excerpt found' )\n\t\t\t\t: trimmedExcerpt + ELLIPSIS }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useEntityProp","store","coreStore","useMemo","AlignmentToolbar","BlockControls","InspectorControls","RichText","Warning","useBlockProps","PanelBody","ToggleControl","RangeControl","__","_x","useSelect","useCanEditEntity","ELLIPSIS","PostExcerptEditor","attributes","textAlign","moreText","showMoreOnNewLine","excerptLength","setAttributes","isSelected","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","userCanEdit","rawExcerpt","setExcerpt","rendered","renderedExcerpt","protected","isProtected","postTypeSupportsExcerpts","select","getPostType","supports","excerpt","isEditable","blockProps","className","wordCountType","strippedRenderedExcerpt","document","window","DOMParser","parseFromString","body","textContent","innerText","createElement","Fragment","value","onChange","newAlign","readMoreLink","tagName","placeholder","newMoreText","withoutInteractiveFormatting","excerptClassName","rawOrRenderedExcerpt","trim","trimmedExcerpt","split","join","excerptWithSpaces","numberOfSpaces","length","replaceAll","isTrimmed","excerptContent","title","__nextHasNoMarginBottom","label","checked","newShowMoreOnNewLine","min","max"],"sources":["@wordpress/block-library/src/post-excerpt/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentToolbar,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl, RangeControl } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nconst ELLIPSIS = '…';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine, excerptLength },\n\tsetAttributes,\n\tisSelected,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\n\t/**\n\t * Check if the post type supports excerpts.\n\t * Add an exception and return early for the \"page\" post type,\n\t * which is registered without support for the excerpt UI,\n\t * but supports saving the excerpt to the database.\n\t * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65\n\t * Without this exception, users that have excerpts saved to the database will\n\t * not be able to edit the excerpts.\n\t */\n\tconst postTypeSupportsExcerpts = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn !! select( coreStore ).getPostType( postType )?.supports\n\t\t\t\t?.excerpt;\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t/**\n\t * The excerpt is editable if:\n\t * - The user can edit the post\n\t * - It is not a descendent of a Query Loop block\n\t * - The post type supports excerpts\n\t */\n\tconst isEditable =\n\t\tuserCanEdit && ! isDescendentOfQueryLoop && postTypeSupportsExcerpts;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) return '';\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>{ __( 'This block will display the excerpt.' ) }</p>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The content is currently protected and does not have the available excerpt.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting\n\t\t/>\n\t);\n\tconst excerptClassName = classnames( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = (\n\t\trawExcerpt || strippedRenderedExcerpt\n\t).trim();\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( ' ', excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\t}\n\n\tconst isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( ! isTrimmed\n\t\t\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t\t\t: trimmedExcerpt + ELLIPSIS ) ||\n\t\t\t\t\t __( 'No excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ ! isTrimmed\n\t\t\t\t? rawOrRenderedExcerpt || __( 'No excerpt found' )\n\t\t\t\t: trimmedExcerpt + ELLIPSIS }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["__","_x","SelectControl","__experimentalUnitControl","UnitControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUseCustomUnits","useCustomUnits","__experimentalToolsPanelItem","ToolsPanelItem","InspectorControls","useSettings","SCALE_OPTIONS","createElement","Fragment","value","label","DEFAULT_SCALE","DEFAULT_SIZE","scaleHelp","cover","contain","fill","DimensionControls","clientId","attributes","aspectRatio","width","height","scale","sizeSlug","setAttributes","imageSizeOptions","availableUnits","units","onDimensionChange","dimension","nextValue","parsedValue","parseFloat","isNaN","scaleLabel","showScaleControl","group","hasValue","onDeselect","undefined","resetAllFilter","isShownByDefault","panelId","__nextHasNoMarginBottom","options","onChange","nextAspectRatio","className","labelPosition","min","nextHeight","nextWidth","help","isBlock","length","nextSizeSlug"],"sources":["@wordpress/block-library/src/post-featured-image/dimension-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls, useSettings } from '@wordpress/block-editor';\n\nconst SCALE_OPTIONS = (\n\t<>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"cover\"\n\t\t\tlabel={ _x( 'Cover', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"contain\"\n\t\t\tlabel={ _x(\n\t\t\t\t'Contain',\n\t\t\t\t'Scale option for Image dimension control'\n\t\t\t) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"fill\"\n\t\t\tlabel={ _x( 'Fill', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t</>\n);\n\nconst DEFAULT_SCALE = 'cover';\nconst DEFAULT_SIZE = 'full';\n\nconst scaleHelp = {\n\tcover: __(\n\t\t'Image is scaled and cropped to fill the entire space without being distorted.'\n\t),\n\tcontain: __(\n\t\t'Image is scaled to fill the space without clipping nor distorting.'\n\t),\n\tfill: __(\n\t\t'Image will be stretched and distorted to completely fill the space.'\n\t),\n};\n\nconst DimensionControls = ( {\n\tclientId,\n\tattributes: { aspectRatio, width, height, scale, sizeSlug },\n\tsetAttributes,\n\timageSizeOptions = [],\n} ) => {\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', '%', 'vw', 'em', 'rem' ],\n\t} );\n\tconst onDimensionChange = ( dimension, nextValue ) => {\n\t\tconst parsedValue = parseFloat( nextValue );\n\t\t/**\n\t\t * If we have no value set and we change the unit,\n\t\t * we don't want to set the attribute, as it would\n\t\t * end up having the unit as value without any number.\n\t\t */\n\t\tif ( isNaN( parsedValue ) && nextValue ) return;\n\t\tsetAttributes( {\n\t\t\t[ dimension ]: parsedValue < 0 ? '0' : nextValue,\n\t\t} );\n\t};\n\tconst scaleLabel = _x( 'Scale', 'Image scaling options' );\n\n\tconst showScaleControl =\n\t\theight || ( aspectRatio && aspectRatio !== 'auto' );\n\n\treturn (\n\t\t<InspectorControls group=\"dimensions\">\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! aspectRatio }\n\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { aspectRatio: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t// These should use the same values as AspectRatioDropdown in @wordpress/block-editor\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Original' ),\n\t\t\t\t\t\t\tvalue: 'auto',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Square' ),\n\t\t\t\t\t\t\tvalue: '1',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '16:9' ),\n\t\t\t\t\t\t\tvalue: '16/9',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '4:3' ),\n\t\t\t\t\t\t\tvalue: '4/3',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '3:2' ),\n\t\t\t\t\t\t\tvalue: '3/2',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '9:16' ),\n\t\t\t\t\t\t\tvalue: '9/16',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '3:4' ),\n\t\t\t\t\t\t\tvalue: '3/4',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '2:3' ),\n\t\t\t\t\t\t\tvalue: '2/3',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( nextAspectRatio ) =>\n\t\t\t\t\t\tsetAttributes( { aspectRatio: nextAspectRatio } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! height }\n\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { height: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\theight: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ height || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\tonDimensionChange( 'height', nextHeight )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! width }\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault={ true }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tonDimensionChange( 'width', nextWidth )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t{ showScaleControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! scale && scale !== DEFAULT_SCALE }\n\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\t\tvalue={ scale }\n\t\t\t\t\t\thelp={ scaleHelp[ scale ] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tscale: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t{ SCALE_OPTIONS }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! sizeSlug }\n\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { sizeSlug: undefined } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tsizeSlug: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ clientId }\n\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={ __( 'Resolution' ) }\n\t\t\t\t\t\tvalue={ sizeSlug || DEFAULT_SIZE }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\tonChange={ ( nextSizeSlug ) =>\n\t\t\t\t\t\t\tsetAttributes( { sizeSlug: nextSizeSlug } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Select the size of the source image.' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n};\n\nexport default DimensionControls;\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","_x","SelectControl","__experimentalUnitControl","UnitControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUseCustomUnits","useCustomUnits","__experimentalToolsPanelItem","ToolsPanelItem","InspectorControls","useSettings","SCALE_OPTIONS","createElement","Fragment","value","label","DEFAULT_SCALE","DEFAULT_SIZE","scaleHelp","cover","contain","fill","DimensionControls","clientId","attributes","aspectRatio","width","height","scale","sizeSlug","setAttributes","imageSizeOptions","availableUnits","units","onDimensionChange","dimension","nextValue","parsedValue","parseFloat","isNaN","scaleLabel","showScaleControl","group","hasValue","onDeselect","undefined","resetAllFilter","isShownByDefault","panelId","__nextHasNoMarginBottom","options","onChange","nextAspectRatio","className","labelPosition","min","nextHeight","nextWidth","help","isBlock","length","nextSizeSlug"],"sources":["@wordpress/block-library/src/post-featured-image/dimension-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls, useSettings } from '@wordpress/block-editor';\n\nconst SCALE_OPTIONS = (\n\t<>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"cover\"\n\t\t\tlabel={ _x( 'Cover', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"contain\"\n\t\t\tlabel={ _x(\n\t\t\t\t'Contain',\n\t\t\t\t'Scale option for Image dimension control'\n\t\t\t) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"fill\"\n\t\t\tlabel={ _x( 'Fill', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t</>\n);\n\nconst DEFAULT_SCALE = 'cover';\nconst DEFAULT_SIZE = 'full';\n\nconst scaleHelp = {\n\tcover: __(\n\t\t'Image is scaled and cropped to fill the entire space without being distorted.'\n\t),\n\tcontain: __(\n\t\t'Image is scaled to fill the space without clipping nor distorting.'\n\t),\n\tfill: __(\n\t\t'Image will be stretched and distorted to completely fill the space.'\n\t),\n};\n\nconst DimensionControls = ( {\n\tclientId,\n\tattributes: { aspectRatio, width, height, scale, sizeSlug },\n\tsetAttributes,\n\timageSizeOptions = [],\n} ) => {\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', '%', 'vw', 'em', 'rem' ],\n\t} );\n\tconst onDimensionChange = ( dimension, nextValue ) => {\n\t\tconst parsedValue = parseFloat( nextValue );\n\t\t/**\n\t\t * If we have no value set and we change the unit,\n\t\t * we don't want to set the attribute, as it would\n\t\t * end up having the unit as value without any number.\n\t\t */\n\t\tif ( isNaN( parsedValue ) && nextValue ) return;\n\t\tsetAttributes( {\n\t\t\t[ dimension ]: parsedValue < 0 ? '0' : nextValue,\n\t\t} );\n\t};\n\tconst scaleLabel = _x( 'Scale', 'Image scaling options' );\n\n\tconst showScaleControl =\n\t\theight || ( aspectRatio && aspectRatio !== 'auto' );\n\n\treturn (\n\t\t<InspectorControls group=\"dimensions\">\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! aspectRatio }\n\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { aspectRatio: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t// These should use the same values as AspectRatioDropdown in @wordpress/block-editor\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Original' ),\n\t\t\t\t\t\t\tvalue: 'auto',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Square' ),\n\t\t\t\t\t\t\tvalue: '1',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '16:9' ),\n\t\t\t\t\t\t\tvalue: '16/9',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '4:3' ),\n\t\t\t\t\t\t\tvalue: '4/3',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '3:2' ),\n\t\t\t\t\t\t\tvalue: '3/2',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '9:16' ),\n\t\t\t\t\t\t\tvalue: '9/16',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '3:4' ),\n\t\t\t\t\t\t\tvalue: '3/4',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( '2:3' ),\n\t\t\t\t\t\t\tvalue: '2/3',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ ( nextAspectRatio ) =>\n\t\t\t\t\t\tsetAttributes( { aspectRatio: nextAspectRatio } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! height }\n\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { height: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\theight: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ height || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\tonDimensionChange( 'height', nextHeight )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! width }\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tonDimensionChange( 'width', nextWidth )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t{ showScaleControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! scale && scale !== DEFAULT_SCALE }\n\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\t\tvalue={ scale }\n\t\t\t\t\t\thelp={ scaleHelp[ scale ] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tscale: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t{ SCALE_OPTIONS }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! sizeSlug }\n\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { sizeSlug: undefined } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tsizeSlug: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ clientId }\n\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={ __( 'Resolution' ) }\n\t\t\t\t\t\tvalue={ sizeSlug || DEFAULT_SIZE }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\tonChange={ ( nextSizeSlug ) =>\n\t\t\t\t\t\t\tsetAttributes( { sizeSlug: nextSizeSlug } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Select the size of the source image.' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n};\n\nexport default DimensionControls;\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ import classnames from 'classnames';
10
10
  import { useEntityProp, store as coreStore } from '@wordpress/core-data';
11
11
  import { useSelect, useDispatch } from '@wordpress/data';
12
12
  import { MenuItem, ToggleControl, PanelBody, Placeholder, Button, TextControl } from '@wordpress/components';
13
- import { InspectorControls, BlockControls, MediaPlaceholder, MediaReplaceFlow, useBlockProps, store as blockEditorStore, __experimentalUseBorderProps as useBorderProps } from '@wordpress/block-editor';
13
+ import { InspectorControls, BlockControls, MediaPlaceholder, MediaReplaceFlow, useBlockProps, store as blockEditorStore, __experimentalUseBorderProps as useBorderProps, useBlockEditingMode } from '@wordpress/block-editor';
14
14
  import { useMemo } from '@wordpress/element';
15
15
  import { __, sprintf } from '@wordpress/i18n';
16
16
  import { upload } from '@wordpress/icons';
@@ -106,6 +106,7 @@ export default function PostFeaturedImageEdit({
106
106
  }
107
107
  });
108
108
  const borderProps = useBorderProps(attributes);
109
+ const blockEditingMode = useBlockEditingMode();
109
110
  const placeholder = content => {
110
111
  return createElement(Placeholder, {
111
112
  className: classnames('block-editor-media-placeholder', borderProps.className),
@@ -130,7 +131,11 @@ export default function PostFeaturedImageEdit({
130
131
  type: 'snackbar'
131
132
  });
132
133
  };
133
- const controls = createElement(Fragment, null, createElement(DimensionControls, {
134
+ const controls = blockEditingMode === 'default' && createElement(Fragment, null, createElement(Overlay, {
135
+ attributes: attributes,
136
+ setAttributes: setAttributes,
137
+ clientId: clientId
138
+ }), createElement(DimensionControls, {
134
139
  clientId: clientId,
135
140
  attributes: attributes,
136
141
  setAttributes: setAttributes,
@@ -179,11 +184,7 @@ export default function PostFeaturedImageEdit({
179
184
  href: postPermalink,
180
185
  target: linkTarget,
181
186
  ...disabledClickProps
182
- }, placeholder()) : placeholder(), createElement(Overlay, {
183
- attributes: attributes,
184
- setAttributes: setAttributes,
185
- clientId: clientId
186
- })));
187
+ }, placeholder()) : placeholder()));
187
188
  }
188
189
  const label = __('Add a featured image');
189
190
  const imageStyles = {
@@ -257,10 +258,6 @@ export default function PostFeaturedImageEdit({
257
258
  href: postPermalink,
258
259
  target: linkTarget,
259
260
  ...disabledClickProps
260
- }, image) : image, createElement(Overlay, {
261
- attributes: attributes,
262
- setAttributes: setAttributes,
263
- clientId: clientId
264
- })));
261
+ }, image) : image));
265
262
  }
266
263
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useEntityProp","store","coreStore","useSelect","useDispatch","MenuItem","ToggleControl","PanelBody","Placeholder","Button","TextControl","InspectorControls","BlockControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","blockEditorStore","__experimentalUseBorderProps","useBorderProps","useMemo","__","sprintf","upload","noticesStore","DimensionControls","Overlay","ALLOWED_MEDIA_TYPES","getMediaSourceUrlBySizeSlug","media","slug","media_details","sizes","source_url","disabledClickProps","onClick","event","preventDefault","PostFeaturedImageEdit","clientId","attributes","setAttributes","context","postId","postType","postTypeSlug","queryId","isDescendentOfQueryLoop","Number","isFinite","isLink","aspectRatio","height","width","scale","sizeSlug","rel","linkTarget","useFirstImageFromPost","storedFeaturedImage","setFeaturedImage","postContent","featuredImage","imageOpener","exec","imageId","groups","attrs","JSON","parse","id","postPermalink","select","getMedia","getPostType","getEditedEntityRecord","link","mediaUrl","imageSizes","getSettings","imageSizeOptions","filter","map","name","value","label","blockProps","style","borderProps","placeholder","content","createElement","className","withIllustration","onSelectImage","createErrorNotice","onUploadError","message","type","controls","Fragment","title","__nextHasNoMarginBottom","labels","singular_name","onChange","checked","newRel","image","href","target","imageStyles","objectFit","onSelect","accept","allowedTypes","onError","mediaLibraryButton","open","icon","variant","showTooltip","tooltipPosition","src","alt","alt_text","group","mediaId","mediaURL"],"sources":["@wordpress/block-library/src/post-featured-image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tMenuItem,\n\tToggleControl,\n\tPanelBody,\n\tPlaceholder,\n\tButton,\n\tTextControl,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\nimport Overlay from './overlay';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction getMediaSourceUrlBySizeSlug( media, slug ) {\n\treturn (\n\t\tmedia?.media_details?.sizes?.[ slug ]?.source_url || media?.source_url\n\t);\n}\n\nconst disabledClickProps = {\n\tonClick: ( event ) => event.preventDefault(),\n\t'aria-disabled': true,\n};\n\nexport default function PostFeaturedImageEdit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType: postTypeSlug, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst {\n\t\tisLink,\n\t\taspectRatio,\n\t\theight,\n\t\twidth,\n\t\tscale,\n\t\tsizeSlug,\n\t\trel,\n\t\tlinkTarget,\n\t\tuseFirstImageFromPost,\n\t} = attributes;\n\n\tconst [ storedFeaturedImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\t// Fallback to post content if no featured image is set.\n\t// This is needed for the \"Use first image from post\" option.\n\tconst [ postContent ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst featuredImage = useMemo( () => {\n\t\tif ( storedFeaturedImage ) {\n\t\t\treturn storedFeaturedImage;\n\t\t}\n\n\t\tif ( ! useFirstImageFromPost ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageOpener =\n\t\t\t/<!--\\s+wp:(?:core\\/)?image\\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\\s+\\/?-->).)*)?}\\s+)?-->/.exec(\n\t\t\t\tpostContent\n\t\t\t);\n\t\tconst imageId =\n\t\t\timageOpener?.groups?.attrs &&\n\t\t\tJSON.parse( imageOpener.groups.attrs )?.id;\n\t\treturn imageId;\n\t}, [ storedFeaturedImage, useFirstImageFromPost, postContent ] );\n\n\tconst { media, postType, postPermalink } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia, getPostType, getEditedEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage &&\n\t\t\t\t\tgetMedia( featuredImage, {\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} ),\n\t\t\t\tpostType: postTypeSlug && getPostType( postTypeSlug ),\n\t\t\t\tpostPermalink: getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\tpostId\n\t\t\t\t)?.link,\n\t\t\t};\n\t\t},\n\t\t[ featuredImage, postTypeSlug, postId ]\n\t);\n\n\tconst mediaUrl = getMediaSourceUrlBySizeSlug( media, sizeSlug );\n\n\tconst imageSizes = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().imageSizes,\n\t\t[]\n\t);\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => {\n\t\t\treturn media?.media_details?.sizes?.[ slug ]?.source_url;\n\t\t} )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width, height, aspectRatio },\n\t} );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-media-placeholder',\n\t\t\t\t\tborderProps.className\n\t\t\t\t) }\n\t\t\t\twithIllustration={ true }\n\t\t\t\tstyle={ {\n\t\t\t\t\theight: !! aspectRatio && '100%',\n\t\t\t\t\twidth: !! aspectRatio && '100%',\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<DimensionControls\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Page\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\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\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\tlet image;\n\n\t/**\n\t * A Post Featured Image block should not have image replacement\n\t * or upload options in the following cases:\n\t * - Is placed in a Query Loop. This is a consious decision to\n\t * prevent content editing of different posts in Query Loop, and\n\t * this could change in the future.\n\t * - Is in a context where it does not have a postId (for example\n\t * in a template or template part).\n\t */\n\tif ( ! featuredImage && ( isDescendentOfQueryLoop || ! postId ) ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={ postPermalink }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\t{ ...disabledClickProps }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ placeholder() }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplaceholder()\n\t\t\t\t\t) }\n\t\t\t\t\t<Overlay\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\tconst imageStyles = {\n\t\t...borderProps.style,\n\t\theight: aspectRatio ? '100%' : height,\n\t\twidth: !! aspectRatio && '100%',\n\t\tobjectFit: !! ( height || aspectRatio ) && scale,\n\t};\n\n\t/**\n\t * When the post featured image block is placed in a context where:\n\t * - It has a postId (for example in a single post)\n\t * - It is not inside a query loop\n\t * - It has no image assigned yet\n\t * Then display the placeholder with the image upload option.\n\t */\n\tif ( ! featuredImage ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\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/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage = ! media ? (\n\t\t\tplaceholder()\n\t\t) : (\n\t\t\t<img\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={\n\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t}\n\t\t\t\tstyle={ imageStyles }\n\t\t\t/>\n\t\t);\n\t}\n\n\t/**\n\t * When the post featured image block:\n\t * - Has an image assigned\n\t * - Is not inside a query loop\n\t * Then display the image and the image replacement option.\n\t */\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MenuItem onClick={ () => setFeaturedImage( 0 ) }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /* If the featured image is linked, wrap in an <a /> tag to trigger any inherited link element styles */ }\n\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ postPermalink }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t{ ...disabledClickProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t<Overlay\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useEntityProp","store","coreStore","useSelect","useDispatch","MenuItem","ToggleControl","PanelBody","Placeholder","Button","TextControl","InspectorControls","BlockControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","blockEditorStore","__experimentalUseBorderProps","useBorderProps","useBlockEditingMode","useMemo","__","sprintf","upload","noticesStore","DimensionControls","Overlay","ALLOWED_MEDIA_TYPES","getMediaSourceUrlBySizeSlug","media","slug","media_details","sizes","source_url","disabledClickProps","onClick","event","preventDefault","PostFeaturedImageEdit","clientId","attributes","setAttributes","context","postId","postType","postTypeSlug","queryId","isDescendentOfQueryLoop","Number","isFinite","isLink","aspectRatio","height","width","scale","sizeSlug","rel","linkTarget","useFirstImageFromPost","storedFeaturedImage","setFeaturedImage","postContent","featuredImage","imageOpener","exec","imageId","groups","attrs","JSON","parse","id","postPermalink","select","getMedia","getPostType","getEditedEntityRecord","link","mediaUrl","imageSizes","getSettings","imageSizeOptions","filter","map","name","value","label","blockProps","style","borderProps","blockEditingMode","placeholder","content","createElement","className","withIllustration","onSelectImage","createErrorNotice","onUploadError","message","type","controls","Fragment","title","__nextHasNoMarginBottom","labels","singular_name","onChange","checked","newRel","image","href","target","imageStyles","objectFit","onSelect","accept","allowedTypes","onError","mediaLibraryButton","open","icon","variant","showTooltip","tooltipPosition","src","alt","alt_text","group","mediaId","mediaURL"],"sources":["@wordpress/block-library/src/post-featured-image/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tMenuItem,\n\tToggleControl,\n\tPanelBody,\n\tPlaceholder,\n\tButton,\n\tTextControl,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\nimport Overlay from './overlay';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction getMediaSourceUrlBySizeSlug( media, slug ) {\n\treturn (\n\t\tmedia?.media_details?.sizes?.[ slug ]?.source_url || media?.source_url\n\t);\n}\n\nconst disabledClickProps = {\n\tonClick: ( event ) => event.preventDefault(),\n\t'aria-disabled': true,\n};\n\nexport default function PostFeaturedImageEdit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType: postTypeSlug, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst {\n\t\tisLink,\n\t\taspectRatio,\n\t\theight,\n\t\twidth,\n\t\tscale,\n\t\tsizeSlug,\n\t\trel,\n\t\tlinkTarget,\n\t\tuseFirstImageFromPost,\n\t} = attributes;\n\n\tconst [ storedFeaturedImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\t// Fallback to post content if no featured image is set.\n\t// This is needed for the \"Use first image from post\" option.\n\tconst [ postContent ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst featuredImage = useMemo( () => {\n\t\tif ( storedFeaturedImage ) {\n\t\t\treturn storedFeaturedImage;\n\t\t}\n\n\t\tif ( ! useFirstImageFromPost ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageOpener =\n\t\t\t/<!--\\s+wp:(?:core\\/)?image\\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\\s+\\/?-->).)*)?}\\s+)?-->/.exec(\n\t\t\t\tpostContent\n\t\t\t);\n\t\tconst imageId =\n\t\t\timageOpener?.groups?.attrs &&\n\t\t\tJSON.parse( imageOpener.groups.attrs )?.id;\n\t\treturn imageId;\n\t}, [ storedFeaturedImage, useFirstImageFromPost, postContent ] );\n\n\tconst { media, postType, postPermalink } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia, getPostType, getEditedEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage &&\n\t\t\t\t\tgetMedia( featuredImage, {\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} ),\n\t\t\t\tpostType: postTypeSlug && getPostType( postTypeSlug ),\n\t\t\t\tpostPermalink: getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\tpostId\n\t\t\t\t)?.link,\n\t\t\t};\n\t\t},\n\t\t[ featuredImage, postTypeSlug, postId ]\n\t);\n\n\tconst mediaUrl = getMediaSourceUrlBySizeSlug( media, sizeSlug );\n\n\tconst imageSizes = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().imageSizes,\n\t\t[]\n\t);\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => {\n\t\t\treturn media?.media_details?.sizes?.[ slug ]?.source_url;\n\t\t} )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width, height, aspectRatio },\n\t} );\n\tconst borderProps = useBorderProps( attributes );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-media-placeholder',\n\t\t\t\t\tborderProps.className\n\t\t\t\t) }\n\t\t\t\twithIllustration\n\t\t\t\tstyle={ {\n\t\t\t\t\theight: !! aspectRatio && '100%',\n\t\t\t\t\twidth: !! aspectRatio && '100%',\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst controls = blockEditingMode === 'default' && (\n\t\t<>\n\t\t\t<Overlay\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t<DimensionControls\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Page\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\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\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tlet image;\n\n\t/**\n\t * A Post Featured Image block should not have image replacement\n\t * or upload options in the following cases:\n\t * - Is placed in a Query Loop. This is a consious decision to\n\t * prevent content editing of different posts in Query Loop, and\n\t * this could change in the future.\n\t * - Is in a context where it does not have a postId (for example\n\t * in a template or template part).\n\t */\n\tif ( ! featuredImage && ( isDescendentOfQueryLoop || ! postId ) ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={ postPermalink }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\t{ ...disabledClickProps }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ placeholder() }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplaceholder()\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\tconst imageStyles = {\n\t\t...borderProps.style,\n\t\theight: aspectRatio ? '100%' : height,\n\t\twidth: !! aspectRatio && '100%',\n\t\tobjectFit: !! ( height || aspectRatio ) && scale,\n\t};\n\n\t/**\n\t * When the post featured image block is placed in a context where:\n\t * - It has a postId (for example in a single post)\n\t * - It is not inside a query loop\n\t * - It has no image assigned yet\n\t * Then display the placeholder with the image upload option.\n\t */\n\tif ( ! featuredImage ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\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/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage = ! media ? (\n\t\t\tplaceholder()\n\t\t) : (\n\t\t\t<img\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={\n\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t}\n\t\t\t\tstyle={ imageStyles }\n\t\t\t/>\n\t\t);\n\t}\n\n\t/**\n\t * When the post featured image block:\n\t * - Has an image assigned\n\t * - Is not inside a query loop\n\t * Then display the image and the image replacement option.\n\t */\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MenuItem onClick={ () => setFeaturedImage( 0 ) }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /* If the featured image is linked, wrap in an <a /> tag to trigger any inherited link element styles */ }\n\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ postPermalink }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t{ ...disabledClickProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,aAAa,EAAEC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACxE,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SACCC,QAAQ,EACRC,aAAa,EACbC,SAAS,EACTC,WAAW,EACXC,MAAM,EACNC,WAAW,QACL,uBAAuB;AAC9B,SACCC,iBAAiB,EACjBC,aAAa,EACbC,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAa,EACbd,KAAK,IAAIe,gBAAgB,EACzBC,4BAA4B,IAAIC,cAAc,EAC9CC,mBAAmB,QACb,yBAAyB;AAChC,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAAStB,KAAK,IAAIuB,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,sBAAsB;AACpD,OAAOC,OAAO,MAAM,WAAW;AAE/B,MAAMC,mBAAmB,GAAG,CAAE,OAAO,CAAE;AAEvC,SAASC,2BAA2BA,CAAEC,KAAK,EAAEC,IAAI,EAAG;EACnD,OACCD,KAAK,EAAEE,aAAa,EAAEC,KAAK,GAAIF,IAAI,CAAE,EAAEG,UAAU,IAAIJ,KAAK,EAAEI,UAAU;AAExE;AAEA,MAAMC,kBAAkB,GAAG;EAC1BC,OAAO,EAAIC,KAAK,IAAMA,KAAK,CAACC,cAAc,CAAC,CAAC;EAC5C,eAAe,EAAE;AAClB,CAAC;AAED,eAAe,SAASC,qBAAqBA,CAAE;EAC9CC,QAAQ;EACRC,UAAU;EACVC,aAAa;EACbC,OAAO,EAAE;IAAEC,MAAM;IAAEC,QAAQ,EAAEC,YAAY;IAAEC;EAAQ;AACpD,CAAC,EAAG;EACH,MAAMC,uBAAuB,GAAGC,MAAM,CAACC,QAAQ,CAAEH,OAAQ,CAAC;EAC1D,MAAM;IACLI,MAAM;IACNC,WAAW;IACXC,MAAM;IACNC,KAAK;IACLC,KAAK;IACLC,QAAQ;IACRC,GAAG;IACHC,UAAU;IACVC;EACD,CAAC,GAAGlB,UAAU;EAEd,MAAM,CAAEmB,mBAAmB,EAAEC,gBAAgB,CAAE,GAAG5D,aAAa,CAC9D,UAAU,EACV6C,YAAY,EACZ,gBAAgB,EAChBF,MACD,CAAC;;EAED;EACA;EACA,MAAM,CAAEkB,WAAW,CAAE,GAAG7D,aAAa,CACpC,UAAU,EACV6C,YAAY,EACZ,SAAS,EACTF,MACD,CAAC;EAED,MAAMmB,aAAa,GAAG1C,OAAO,CAAE,MAAM;IACpC,IAAKuC,mBAAmB,EAAG;MAC1B,OAAOA,mBAAmB;IAC3B;IAEA,IAAK,CAAED,qBAAqB,EAAG;MAC9B;IACD;IAEA,MAAMK,WAAW,GAChB,yFAAyF,CAACC,IAAI,CAC7FH,WACD,CAAC;IACF,MAAMI,OAAO,GACZF,WAAW,EAAEG,MAAM,EAAEC,KAAK,IAC1BC,IAAI,CAACC,KAAK,CAAEN,WAAW,CAACG,MAAM,CAACC,KAAM,CAAC,EAAEG,EAAE;IAC3C,OAAOL,OAAO;EACf,CAAC,EAAE,CAAEN,mBAAmB,EAAED,qBAAqB,EAAEG,WAAW,CAAG,CAAC;EAEhE,MAAM;IAAEhC,KAAK;IAAEe,QAAQ;IAAE2B;EAAc,CAAC,GAAGpE,SAAS,CACjDqE,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,WAAW;MAAEC;IAAsB,CAAC,GACrDH,MAAM,CAAEtE,SAAU,CAAC;IACpB,OAAO;MACN2B,KAAK,EACJiC,aAAa,IACbW,QAAQ,CAAEX,aAAa,EAAE;QACxBpB,OAAO,EAAE;MACV,CAAE,CAAC;MACJE,QAAQ,EAAEC,YAAY,IAAI6B,WAAW,CAAE7B,YAAa,CAAC;MACrD0B,aAAa,EAAEI,qBAAqB,CACnC,UAAU,EACV9B,YAAY,EACZF,MACD,CAAC,EAAEiC;IACJ,CAAC;EACF,CAAC,EACD,CAAEd,aAAa,EAAEjB,YAAY,EAAEF,MAAM,CACtC,CAAC;EAED,MAAMkC,QAAQ,GAAGjD,2BAA2B,CAAEC,KAAK,EAAE0B,QAAS,CAAC;EAE/D,MAAMuB,UAAU,GAAG3E,SAAS,CACzBqE,MAAM,IAAMA,MAAM,CAAExD,gBAAiB,CAAC,CAAC+D,WAAW,CAAC,CAAC,CAACD,UAAU,EACjE,EACD,CAAC;EACD,MAAME,gBAAgB,GAAGF,UAAU,CACjCG,MAAM,CAAE,CAAE;IAAEnD;EAAK,CAAC,KAAM;IACxB,OAAOD,KAAK,EAAEE,aAAa,EAAEC,KAAK,GAAIF,IAAI,CAAE,EAAEG,UAAU;EACzD,CAAE,CAAC,CACFiD,GAAG,CAAE,CAAE;IAAEC,IAAI;IAAErD;EAAK,CAAC,MAAQ;IAC7BsD,KAAK,EAAEtD,IAAI;IACXuD,KAAK,EAAEF;EACR,CAAC,CAAG,CAAC;EAEN,MAAMG,UAAU,GAAGvE,aAAa,CAAE;IACjCwE,KAAK,EAAE;MAAElC,KAAK;MAAED,MAAM;MAAED;IAAY;EACrC,CAAE,CAAC;EACH,MAAMqC,WAAW,GAAGtE,cAAc,CAAEsB,UAAW,CAAC;EAChD,MAAMiD,gBAAgB,GAAGtE,mBAAmB,CAAC,CAAC;EAE9C,MAAMuE,WAAW,GAAKC,OAAO,IAAM;IAClC,OACCC,aAAA,CAACpF,WAAW;MACXqF,SAAS,EAAG9F,UAAU,CACrB,gCAAgC,EAChCyF,WAAW,CAACK,SACb,CAAG;MACHC,gBAAgB;MAChBP,KAAK,EAAG;QACPnC,MAAM,EAAE,CAAC,CAAED,WAAW,IAAI,MAAM;QAChCE,KAAK,EAAE,CAAC,CAAEF,WAAW,IAAI,MAAM;QAC/B,GAAGqC,WAAW,CAACD;MAChB;IAAG,GAEDI,OACU,CAAC;EAEhB,CAAC;EAED,MAAMI,aAAa,GAAKX,KAAK,IAAM;IAClC,IAAKA,KAAK,EAAEd,EAAE,EAAG;MAChBV,gBAAgB,CAAEwB,KAAK,CAACd,EAAG,CAAC;IAC7B;EACD,CAAC;EAED,MAAM;IAAE0B;EAAkB,CAAC,GAAG5F,WAAW,CAAEoB,YAAa,CAAC;EACzD,MAAMyE,aAAa,GAAKC,OAAO,IAAM;IACpCF,iBAAiB,CAAEE,OAAO,EAAE;MAAEC,IAAI,EAAE;IAAW,CAAE,CAAC;EACnD,CAAC;EAED,MAAMC,QAAQ,GAAGX,gBAAgB,KAAK,SAAS,IAC9CG,aAAA,CAAAS,QAAA,QACCT,aAAA,CAAClE,OAAO;IACPc,UAAU,EAAGA,UAAY;IACzBC,aAAa,EAAGA,aAAe;IAC/BF,QAAQ,EAAGA;EAAU,CACrB,CAAC,EACFqD,aAAA,CAACnE,iBAAiB;IACjBc,QAAQ,EAAGA,QAAU;IACrBC,UAAU,EAAGA,UAAY;IACzBC,aAAa,EAAGA,aAAe;IAC/BuC,gBAAgB,EAAGA;EAAkB,CACrC,CAAC,EACFY,aAAA,CAACjF,iBAAiB,QACjBiF,aAAA,CAACrF,SAAS;IAAC+F,KAAK,EAAGjF,EAAE,CAAE,UAAW;EAAG,GACpCuE,aAAA,CAACtF,aAAa;IACbiG,uBAAuB;IACvBlB,KAAK,EACJzC,QAAQ,EAAE4D,MAAM,CAACC,aAAa,GAC3BnF,OAAO;IACP;IACAD,EAAE,CAAE,YAAa,CAAC,EAClBuB,QAAQ,CAAC4D,MAAM,CAACC,aAChB,CAAC,GACDpF,EAAE,CAAE,cAAe,CACtB;IACDqF,QAAQ,EAAGA,CAAA,KAAMjE,aAAa,CAAE;MAAES,MAAM,EAAE,CAAEA;IAAO,CAAE,CAAG;IACxDyD,OAAO,EAAGzD;EAAQ,CAClB,CAAC,EACAA,MAAM,IACP0C,aAAA,CAAAS,QAAA,QACCT,aAAA,CAACtF,aAAa;IACbiG,uBAAuB;IACvBlB,KAAK,EAAGhE,EAAE,CAAE,iBAAkB,CAAG;IACjCqF,QAAQ,EAAKtB,KAAK,IACjB3C,aAAa,CAAE;MACdgB,UAAU,EAAE2B,KAAK,GAAG,QAAQ,GAAG;IAChC,CAAE,CACF;IACDuB,OAAO,EAAGlD,UAAU,KAAK;EAAU,CACnC,CAAC,EACFmC,aAAA,CAAClF,WAAW;IACX6F,uBAAuB;IACvBlB,KAAK,EAAGhE,EAAE,CAAE,UAAW,CAAG;IAC1B+D,KAAK,EAAG5B,GAAK;IACbkD,QAAQ,EAAKE,MAAM,IAClBnE,aAAa,CAAE;MAAEe,GAAG,EAAEoD;IAAO,CAAE;EAC/B,CACD,CACA,CAEO,CACO,CAClB,CACF;EAED,IAAIC,KAAK;;EAET;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,IAAK,CAAE/C,aAAa,KAAMf,uBAAuB,IAAI,CAAEJ,MAAM,CAAE,EAAG;IACjE,OACCiD,aAAA,CAAAS,QAAA,QACGD,QAAQ,EACVR,aAAA;MAAA,GAAUN;IAAU,GACjB,CAAC,CAAEpC,MAAM,GACV0C,aAAA;MACCkB,IAAI,EAAGvC,aAAe;MACtBwC,MAAM,EAAGtD,UAAY;MAAA,GAChBvB;IAAkB,GAErBwD,WAAW,CAAC,CACZ,CAAC,GAEJA,WAAW,CAAC,CAET,CACJ,CAAC;EAEL;EAEA,MAAML,KAAK,GAAGhE,EAAE,CAAE,sBAAuB,CAAC;EAC1C,MAAM2F,WAAW,GAAG;IACnB,GAAGxB,WAAW,CAACD,KAAK;IACpBnC,MAAM,EAAED,WAAW,GAAG,MAAM,GAAGC,MAAM;IACrCC,KAAK,EAAE,CAAC,CAAEF,WAAW,IAAI,MAAM;IAC/B8D,SAAS,EAAE,CAAC,EAAI7D,MAAM,IAAID,WAAW,CAAE,IAAIG;EAC5C,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;EACC,IAAK,CAAEQ,aAAa,EAAG;IACtB+C,KAAK,GACJjB,aAAA,CAAC/E,gBAAgB;MAChBqG,QAAQ,EAAGnB,aAAe;MAC1BoB,MAAM,EAAC,SAAS;MAChBC,YAAY,EAAGzF,mBAAqB;MACpC0F,OAAO,EAAGpB,aAAe;MACzBP,WAAW,EAAGA,WAAa;MAC3B4B,kBAAkB,EAAGA,CAAE;QAAEC;MAAK,CAAC,KAAM;QACpC,OACC3B,aAAA,CAACnF,MAAM;UACN+G,IAAI,EAAGjG,MAAQ;UACfkG,OAAO,EAAC,SAAS;UACjBpC,KAAK,EAAGA,KAAO;UACfqC,WAAW;UACXC,eAAe,EAAC,YAAY;UAC5BxF,OAAO,EAAGA,CAAA,KAAM;YACfoF,IAAI,CAAC,CAAC;UACP;QAAG,CACH,CAAC;MAEJ;IAAG,CACH,CACD;EACF,CAAC,MAAM;IACN;IACAV,KAAK,GAAG,CAAEhF,KAAK,GACd6D,WAAW,CAAC,CAAC,GAEbE,aAAA;MACCC,SAAS,EAAGL,WAAW,CAACK,SAAW;MACnC+B,GAAG,EAAG/C,QAAU;MAChBgD,GAAG,EACFhG,KAAK,CAACiG,QAAQ,GACXxG,OAAO;MACP;MACAD,EAAE,CAAE,oBAAqB,CAAC,EAC1BQ,KAAK,CAACiG,QACN,CAAC,GACDzG,EAAE,CAAE,gBAAiB,CACxB;MACDkE,KAAK,EAAGyB;IAAa,CACrB,CACD;EACF;;EAEA;AACD;AACA;AACA;AACA;AACA;EACC,OACCpB,aAAA,CAAAS,QAAA,QACGD,QAAQ,EACR,CAAC,CAAEvE,KAAK,IAAI,CAAEkB,uBAAuB,IACtC6C,aAAA,CAAChF,aAAa;IAACmH,KAAK,EAAC;EAAO,GAC3BnC,aAAA,CAAC9E,gBAAgB;IAChBkH,OAAO,EAAGlE,aAAe;IACzBmE,QAAQ,EAAGpD,QAAU;IACrBuC,YAAY,EAAGzF,mBAAqB;IACpCwF,MAAM,EAAC,SAAS;IAChBD,QAAQ,EAAGnB,aAAe;IAC1BsB,OAAO,EAAGpB;EAAe,GAEzBL,aAAA,CAACvF,QAAQ;IAAC8B,OAAO,EAAGA,CAAA,KAAMyB,gBAAgB,CAAE,CAAE;EAAG,GAC9CvC,EAAE,CAAE,OAAQ,CACL,CACO,CACJ,CACf,EACDuE,aAAA;IAAA,GAAaN;EAAU,GAEpB,CAAC,CAAEpC,MAAM,GACV0C,aAAA;IACCkB,IAAI,EAAGvC,aAAe;IACtBwC,MAAM,EAAGtD,UAAY;IAAA,GAChBvB;EAAkB,GAErB2E,KACA,CAAC,GAEJA,KAEM,CACP,CAAC;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","ToggleControl","SelectControl","PanelBody","InspectorControls","RichText","BlockControls","AlignmentToolbar","useBlockProps","__","_x","useSelect","store","coreStore","PostNavigationLinkEdit","context","postType","attributes","type","label","showTitle","textAlign","linkLabel","arrow","taxonomy","setAttributes","isNext","placeholder","arrowMap","none","chevron","displayArrow","ariaLabel","blockProps","className","taxonomies","select","getTaxonomies","filteredTaxonomies","per_page","getTaxonomyOptions","selectOption","value","taxonomyOptions","filter","visibility","publicly_queryable","map","item","slug","name","createElement","Fragment","__nextHasNoMarginBottom","help","checked","onChange","isBlock","group","options","nextAlign","tagName","allowedFormats","newLabel","href","onClick","event","preventDefault"],"sources":["@wordpress/block-library/src/post-navigation-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToggleControl,\n\tSelectControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function PostNavigationLinkEdit( {\n\tcontext: { postType },\n\tattributes: {\n\t\ttype,\n\t\tlabel,\n\t\tshowTitle,\n\t\ttextAlign,\n\t\tlinkLabel,\n\t\tarrow,\n\t\ttaxonomy,\n\t},\n\tsetAttributes,\n} ) {\n\tconst isNext = type === 'next';\n\tlet placeholder = isNext ? __( 'Next' ) : __( 'Previous' );\n\n\tconst arrowMap = {\n\t\tnone: '',\n\t\tarrow: isNext ? '→' : '←',\n\t\tchevron: isNext ? '»' : '«',\n\t};\n\n\tconst displayArrow = arrowMap[ arrow ];\n\n\tif ( showTitle ) {\n\t\t/* translators: Label before for next and previous post. There is a space after the colon. */\n\t\tplaceholder = isNext ? __( 'Next: ' ) : __( 'Previous: ' );\n\t}\n\n\tconst ariaLabel = isNext ? __( 'Next post' ) : __( 'Previous post' );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\tconst filteredTaxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t} );\n\t\t\treturn filteredTaxonomies;\n\t\t},\n\t\t[ postType ]\n\t);\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( 'Unfiltered' ),\n\t\t\tvalue: '',\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( { visibility } ) => !! visibility?.publicly_queryable )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display the title as a link' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'If you have entered a custom label, it will be prepended before the title.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ !! showTitle }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowTitle: ! showTitle,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t{ showTitle && (\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={ __(\n\t\t\t\t\t\t\t\t'Include the label as part of the link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ !! linkLabel }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlinkLabel: ! linkLabel,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Arrow' ) }\n\t\t\t\t\t\tvalue={ arrow }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { arrow: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'A decorative arrow for the next and previous link.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"none\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'None',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"arrow\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Arrow',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"chevron\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Chevron',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Filter by taxonomy' ) }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttaxonomy: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Only link to posts that have the same taxonomy terms as the current post. For example the same tags or categories.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ ! isNext && displayArrow && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ `wp-block-post-navigation-link__arrow-previous is-arrow-${ arrow }` }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ displayArrow }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic' ] }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ showTitle && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref=\"#post-navigation-pseudo-link\"\n\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'An example title' ) }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ isNext && displayArrow && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ `wp-block-post-navigation-link__arrow-next is-arrow-${ arrow }` }\n\t\t\t\t\t\taria-hidden={ true }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ displayArrow }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SACCC,gCAAgC,IAAIC,kBAAkB,EACtDC,sCAAsC,IAAIC,wBAAwB,EAClEC,aAAa,EACbC,aAAa,EACbC,SAAS,QACH,uBAAuB;AAC9B,SACCC,iBAAiB,EACjBC,QAAQ,EACRC,aAAa,EACbC,gBAAgB,EAChBC,aAAa,QACP,yBAAyB;AAChC,SAASC,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACxC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AAEzD,eAAe,SAASC,sBAAsBA,CAAE;EAC/CC,OAAO,EAAE;IAAEC;EAAS,CAAC;EACrBC,UAAU,EAAE;IACXC,IAAI;IACJC,KAAK;IACLC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,KAAK;IACLC;EACD,CAAC;EACDC;AACD,CAAC,EAAG;EACH,MAAMC,MAAM,GAAGR,IAAI,KAAK,MAAM;EAC9B,IAAIS,WAAW,GAAGD,MAAM,GAAGjB,EAAE,CAAE,MAAO,CAAC,GAAGA,EAAE,CAAE,UAAW,CAAC;EAE1D,MAAMmB,QAAQ,GAAG;IAChBC,IAAI,EAAE,EAAE;IACRN,KAAK,EAAEG,MAAM,GAAG,GAAG,GAAG,GAAG;IACzBI,OAAO,EAAEJ,MAAM,GAAG,GAAG,GAAG;EACzB,CAAC;EAED,MAAMK,YAAY,GAAGH,QAAQ,CAAEL,KAAK,CAAE;EAEtC,IAAKH,SAAS,EAAG;IAChB;IACAO,WAAW,GAAGD,MAAM,GAAGjB,EAAE,CAAE,QAAS,CAAC,GAAGA,EAAE,CAAE,YAAa,CAAC;EAC3D;EAEA,MAAMuB,SAAS,GAAGN,MAAM,GAAGjB,EAAE,CAAE,WAAY,CAAC,GAAGA,EAAE,CAAE,eAAgB,CAAC;EACpE,MAAMwB,UAAU,GAAGzB,aAAa,CAAE;IACjC0B,SAAS,EAAEtC,UAAU,CAAE;MACtB,CAAG,kBAAkByB,SAAW,EAAC,GAAIA;IACtC,CAAE;EACH,CAAE,CAAC;EAEH,MAAMc,UAAU,GAAGxB,SAAS,CACzByB,MAAM,IAAM;IACb,MAAM;MAAEC;IAAc,CAAC,GAAGD,MAAM,CAAEvB,SAAU,CAAC;IAC7C,MAAMyB,kBAAkB,GAAGD,aAAa,CAAE;MACzCnB,IAAI,EAAEF,QAAQ;MACduB,QAAQ,EAAE,CAAC;IACZ,CAAE,CAAC;IACH,OAAOD,kBAAkB;EAC1B,CAAC,EACD,CAAEtB,QAAQ,CACX,CAAC;EACD,MAAMwB,kBAAkB,GAAGA,CAAA,KAAM;IAChC,MAAMC,YAAY,GAAG;MACpBtB,KAAK,EAAEV,EAAE,CAAE,YAAa,CAAC;MACzBiC,KAAK,EAAE;IACR,CAAC;IACD,MAAMC,eAAe,GAAG,CAAER,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,EAAE,EACxCS,MAAM,CAAE,CAAE;MAAEC;IAAW,CAAC,KAAM,CAAC,CAAEA,UAAU,EAAEC,kBAAmB,CAAC,CACjEC,GAAG,CAAIC,IAAI,IAAM;MACjB,OAAO;QACNN,KAAK,EAAEM,IAAI,CAACC,IAAI;QAChB9B,KAAK,EAAE6B,IAAI,CAACE;MACb,CAAC;IACF,CAAE,CAAC;IAEJ,OAAO,CAAET,YAAY,EAAE,GAAGE,eAAe,CAAE;EAC5C,CAAC;EAED,OACCQ,aAAA,CAAAC,QAAA,QACCD,aAAA,CAAC/C,iBAAiB,QACjB+C,aAAA,CAAChD,SAAS,QACTgD,aAAA,CAAClD,aAAa;IACboD,uBAAuB;IACvBlC,KAAK,EAAGV,EAAE,CAAE,6BAA8B,CAAG;IAC7C6C,IAAI,EAAG7C,EAAE,CACR,4EACD,CAAG;IACH8C,OAAO,EAAG,CAAC,CAAEnC,SAAW;IACxBoC,QAAQ,EAAGA,CAAA,KACV/B,aAAa,CAAE;MACdL,SAAS,EAAE,CAAEA;IACd,CAAE;EACF,CACD,CAAC,EACAA,SAAS,IACV+B,aAAA,CAAClD,aAAa;IACboD,uBAAuB;IACvBlC,KAAK,EAAGV,EAAE,CACT,uCACD,CAAG;IACH8C,OAAO,EAAG,CAAC,CAAEjC,SAAW;IACxBkC,QAAQ,EAAGA,CAAA,KACV/B,aAAa,CAAE;MACdH,SAAS,EAAE,CAAEA;IACd,CAAE;EACF,CACD,CACD,EACD6B,aAAA,CAACrD,kBAAkB;IAClBuD,uBAAuB;IACvBlC,KAAK,EAAGV,EAAE,CAAE,OAAQ,CAAG;IACvBiC,KAAK,EAAGnB,KAAO;IACfiC,QAAQ,EAAKd,KAAK,IAAM;MACvBjB,aAAa,CAAE;QAAEF,KAAK,EAAEmB;MAAM,CAAE,CAAC;IAClC,CAAG;IACHY,IAAI,EAAG7C,EAAE,CACR,oDACD,CAAG;IACHgD,OAAO;EAAA,GAEPN,aAAA,CAACnD,wBAAwB;IACxB0C,KAAK,EAAC,MAAM;IACZvB,KAAK,EAAGT,EAAE,CACT,MAAM,EACN,qCACD;EAAG,CACH,CAAC,EACFyC,aAAA,CAACnD,wBAAwB;IACxB0C,KAAK,EAAC,OAAO;IACbvB,KAAK,EAAGT,EAAE,CACT,OAAO,EACP,qCACD;EAAG,CACH,CAAC,EACFyC,aAAA,CAACnD,wBAAwB;IACxB0C,KAAK,EAAC,SAAS;IACfvB,KAAK,EAAGT,EAAE,CACT,SAAS,EACT,qCACD;EAAG,CACH,CACkB,CACV,CACO,CAAC,EACpByC,aAAA,CAAC/C,iBAAiB;IAACsD,KAAK,EAAC;EAAU,GAClCP,aAAA,CAACjD,aAAa;IACbiB,KAAK,EAAGV,EAAE,CAAE,oBAAqB,CAAG;IACpCiC,KAAK,EAAGlB,QAAU;IAClBmC,OAAO,EAAGnB,kBAAkB,CAAC,CAAG;IAChCgB,QAAQ,EAAKd,KAAK,IACjBjB,aAAa,CAAE;MACdD,QAAQ,EAAEkB;IACX,CAAE,CACF;IACDY,IAAI,EAAG7C,EAAE,CACR,oHACD;EAAG,CACH,CACiB,CAAC,EACpB0C,aAAA,CAAC7C,aAAa,QACb6C,aAAA,CAAC5C,gBAAgB;IAChBmC,KAAK,EAAGrB,SAAW;IACnBmC,QAAQ,EAAKI,SAAS,IAAM;MAC3BnC,aAAa,CAAE;QAAEJ,SAAS,EAAEuC;MAAU,CAAE,CAAC;IAC1C;EAAG,CACH,CACa,CAAC,EAChBT,aAAA;IAAA,GAAUlB;EAAU,GACjB,CAAEP,MAAM,IAAIK,YAAY,IACzBoB,aAAA;IACCjB,SAAS,EAAI,0DAA0DX,KAAO;EAAG,GAE/EQ,YACG,CACN,EACDoB,aAAA,CAAC9C,QAAQ;IACRwD,OAAO,EAAC,GAAG;IACX,cAAa7B,SAAW;IACxBL,WAAW,EAAGA,WAAa;IAC3Be,KAAK,EAAGvB,KAAO;IACf2C,cAAc,EAAG,CAAE,WAAW,EAAE,aAAa,CAAI;IACjDN,QAAQ,EAAKO,QAAQ,IACpBtC,aAAa,CAAE;MAAEN,KAAK,EAAE4C;IAAS,CAAE;EACnC,CACD,CAAC,EACA3C,SAAS,IACV+B,aAAA;IACCa,IAAI,EAAC,8BAA8B;IACnCC,OAAO,EAAKC,KAAK,IAAMA,KAAK,CAACC,cAAc,CAAC;EAAG,GAE7C1D,EAAE,CAAE,kBAAmB,CACvB,CACH,EACCiB,MAAM,IAAIK,YAAY,IACvBoB,aAAA;IACCjB,SAAS,EAAI,sDAAsDX,KAAO,EAAG;IAC7E,eAAc;EAAM,GAElBQ,YACG,CAEH,CACJ,CAAC;AAEL"}
1
+ {"version":3,"names":["classnames","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","ToggleControl","SelectControl","PanelBody","InspectorControls","RichText","BlockControls","AlignmentToolbar","useBlockProps","__","_x","useSelect","store","coreStore","PostNavigationLinkEdit","context","postType","attributes","type","label","showTitle","textAlign","linkLabel","arrow","taxonomy","setAttributes","isNext","placeholder","arrowMap","none","chevron","displayArrow","ariaLabel","blockProps","className","taxonomies","select","getTaxonomies","filteredTaxonomies","per_page","getTaxonomyOptions","selectOption","value","taxonomyOptions","filter","visibility","publicly_queryable","map","item","slug","name","createElement","Fragment","__nextHasNoMarginBottom","help","checked","onChange","isBlock","group","options","nextAlign","tagName","allowedFormats","newLabel","href","onClick","event","preventDefault"],"sources":["@wordpress/block-library/src/post-navigation-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToggleControl,\n\tSelectControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function PostNavigationLinkEdit( {\n\tcontext: { postType },\n\tattributes: {\n\t\ttype,\n\t\tlabel,\n\t\tshowTitle,\n\t\ttextAlign,\n\t\tlinkLabel,\n\t\tarrow,\n\t\ttaxonomy,\n\t},\n\tsetAttributes,\n} ) {\n\tconst isNext = type === 'next';\n\tlet placeholder = isNext ? __( 'Next' ) : __( 'Previous' );\n\n\tconst arrowMap = {\n\t\tnone: '',\n\t\tarrow: isNext ? '→' : '←',\n\t\tchevron: isNext ? '»' : '«',\n\t};\n\n\tconst displayArrow = arrowMap[ arrow ];\n\n\tif ( showTitle ) {\n\t\t/* translators: Label before for next and previous post. There is a space after the colon. */\n\t\tplaceholder = isNext ? __( 'Next: ' ) : __( 'Previous: ' );\n\t}\n\n\tconst ariaLabel = isNext ? __( 'Next post' ) : __( 'Previous post' );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\tconst filteredTaxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t} );\n\t\t\treturn filteredTaxonomies;\n\t\t},\n\t\t[ postType ]\n\t);\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( 'Unfiltered' ),\n\t\t\tvalue: '',\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( { visibility } ) => !! visibility?.publicly_queryable )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display the title as a link' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'If you have entered a custom label, it will be prepended before the title.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ !! showTitle }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowTitle: ! showTitle,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t{ showTitle && (\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={ __(\n\t\t\t\t\t\t\t\t'Include the label as part of the link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ !! linkLabel }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlinkLabel: ! linkLabel,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Arrow' ) }\n\t\t\t\t\t\tvalue={ arrow }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { arrow: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'A decorative arrow for the next and previous link.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"none\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'None',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"arrow\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Arrow',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"chevron\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Chevron',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Filter by taxonomy' ) }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttaxonomy: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Only link to posts that have the same taxonomy terms as the current post. For example the same tags or categories.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ ! isNext && displayArrow && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ `wp-block-post-navigation-link__arrow-previous is-arrow-${ arrow }` }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ displayArrow }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic' ] }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ showTitle && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref=\"#post-navigation-pseudo-link\"\n\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'An example title' ) }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ isNext && displayArrow && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ `wp-block-post-navigation-link__arrow-next is-arrow-${ arrow }` }\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t{ displayArrow }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -97,7 +97,7 @@ export default function PostTitleEdit({
97
97
  }
98
98
  }));
99
99
  }
100
- return createElement(Fragment, null, blockEditingMode === 'default' && createElement(BlockControls, {
100
+ return createElement(Fragment, null, blockEditingMode === 'default' && createElement(Fragment, null, createElement(BlockControls, {
101
101
  group: "block"
102
102
  }, createElement(HeadingLevelDropdown, {
103
103
  value: level,
@@ -134,6 +134,6 @@ export default function PostTitleEdit({
134
134
  onChange: newRel => setAttributes({
135
135
  rel: newRel
136
136
  })
137
- })))), titleElement);
137
+ }))))), titleElement);
138
138
  }
139
139
  //# sourceMappingURL=edit.js.map