@wordpress/block-library 7.14.2 → 7.15.1-next.4d3b314fd5.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 (235) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/build/avatar/index.js +1 -1
  3. package/build/block/edit.native.js +1 -1
  4. package/build/block/edit.native.js.map +1 -1
  5. package/build/buttons/edit.native.js +1 -3
  6. package/build/buttons/edit.native.js.map +1 -1
  7. package/build/calendar/index.js +9 -0
  8. package/build/calendar/index.js.map +1 -1
  9. package/build/code/index.js +1 -1
  10. package/build/code/index.js.map +1 -1
  11. package/build/comments/edit/comments-legacy.js +1 -1
  12. package/build/comments/edit/comments-legacy.js.map +1 -1
  13. package/build/comments-pagination-next/index.js +1 -1
  14. package/build/comments-pagination-numbers/index.js +8 -1
  15. package/build/comments-pagination-numbers/index.js.map +1 -1
  16. package/build/comments-pagination-previous/index.js +1 -1
  17. package/build/comments-title/edit.js +1 -1
  18. package/build/comments-title/edit.js.map +1 -1
  19. package/build/cover/edit/use-cover-is-dark.js +10 -7
  20. package/build/cover/edit/use-cover-is-dark.js.map +1 -1
  21. package/build/cover/index.js +9 -2
  22. package/build/cover/index.js.map +1 -1
  23. package/build/embed/deprecated.js +12 -6
  24. package/build/embed/deprecated.js.map +1 -1
  25. package/build/embed/index.js +12 -6
  26. package/build/embed/index.js.map +1 -1
  27. package/build/embed/transforms.js +12 -6
  28. package/build/embed/transforms.js.map +1 -1
  29. package/build/embed/util.js +12 -6
  30. package/build/embed/util.js.map +1 -1
  31. package/build/embed/variations.js +1 -1
  32. package/build/embed/variations.js.map +1 -1
  33. package/build/freeform/edit.js +5 -8
  34. package/build/freeform/edit.js.map +1 -1
  35. package/build/gallery/deprecated.js +4 -4
  36. package/build/gallery/deprecated.js.map +1 -1
  37. package/build/gallery/gallery.js +2 -28
  38. package/build/gallery/gallery.js.map +1 -1
  39. package/build/list-item/edit.js +2 -1
  40. package/build/list-item/edit.js.map +1 -1
  41. package/build/missing/edit.js +9 -2
  42. package/build/missing/edit.js.map +1 -1
  43. package/build/more/edit.js +1 -1
  44. package/build/more/edit.js.map +1 -1
  45. package/build/navigation/menu-items-to-blocks.js +16 -6
  46. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  47. package/build/paragraph/drop-zone.js +99 -0
  48. package/build/paragraph/drop-zone.js.map +1 -0
  49. package/build/paragraph/edit.js +11 -3
  50. package/build/paragraph/edit.js.map +1 -1
  51. package/build/post-content/edit.js +6 -1
  52. package/build/post-content/edit.js.map +1 -1
  53. package/build/post-excerpt/edit.js +1 -1
  54. package/build/post-excerpt/edit.js.map +1 -1
  55. package/build/post-navigation-link/edit.js +35 -4
  56. package/build/post-navigation-link/edit.js.map +1 -1
  57. package/build/post-navigation-link/index.js +6 -1
  58. package/build/post-navigation-link/index.js.map +1 -1
  59. package/build/post-template/edit.js +13 -28
  60. package/build/post-template/edit.js.map +1 -1
  61. package/build/query/edit/inspector-controls/index.js +4 -8
  62. package/build/query/edit/inspector-controls/index.js.map +1 -1
  63. package/build/query/edit/inspector-controls/sticky-control.js +1 -1
  64. package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
  65. package/build/query/edit/query-placeholder.js +2 -2
  66. package/build/query/edit/query-placeholder.js.map +1 -1
  67. package/build/query-title/edit.js +1 -1
  68. package/build/query-title/edit.js.map +1 -1
  69. package/build/quote/transforms.js +2 -2
  70. package/build/quote/transforms.js.map +1 -1
  71. package/build/read-more/edit.js +1 -1
  72. package/build/read-more/edit.js.map +1 -1
  73. package/build/site-tagline/index.js +1 -1
  74. package/build/social-links/edit.native.js +1 -0
  75. package/build/social-links/edit.native.js.map +1 -1
  76. package/build/template-part/edit/index.js +2 -2
  77. package/build/template-part/edit/index.js.map +1 -1
  78. package/build-module/avatar/index.js +1 -1
  79. package/build-module/block/edit.native.js +1 -1
  80. package/build-module/block/edit.native.js.map +1 -1
  81. package/build-module/buttons/edit.native.js +1 -2
  82. package/build-module/buttons/edit.native.js.map +1 -1
  83. package/build-module/calendar/index.js +9 -0
  84. package/build-module/calendar/index.js.map +1 -1
  85. package/build-module/code/index.js +1 -1
  86. package/build-module/code/index.js.map +1 -1
  87. package/build-module/comments/edit/comments-legacy.js +1 -1
  88. package/build-module/comments/edit/comments-legacy.js.map +1 -1
  89. package/build-module/comments-pagination-next/index.js +1 -1
  90. package/build-module/comments-pagination-numbers/index.js +8 -1
  91. package/build-module/comments-pagination-numbers/index.js.map +1 -1
  92. package/build-module/comments-pagination-previous/index.js +1 -1
  93. package/build-module/comments-title/edit.js +1 -1
  94. package/build-module/comments-title/edit.js.map +1 -1
  95. package/build-module/cover/edit/use-cover-is-dark.js +9 -4
  96. package/build-module/cover/edit/use-cover-is-dark.js.map +1 -1
  97. package/build-module/cover/index.js +9 -2
  98. package/build-module/cover/index.js.map +1 -1
  99. package/build-module/embed/deprecated.js +12 -6
  100. package/build-module/embed/deprecated.js.map +1 -1
  101. package/build-module/embed/index.js +12 -6
  102. package/build-module/embed/index.js.map +1 -1
  103. package/build-module/embed/transforms.js +12 -6
  104. package/build-module/embed/transforms.js.map +1 -1
  105. package/build-module/embed/util.js +12 -6
  106. package/build-module/embed/util.js.map +1 -1
  107. package/build-module/embed/variations.js +1 -1
  108. package/build-module/embed/variations.js.map +1 -1
  109. package/build-module/freeform/edit.js +3 -6
  110. package/build-module/freeform/edit.js.map +1 -1
  111. package/build-module/gallery/deprecated.js +4 -4
  112. package/build-module/gallery/deprecated.js.map +1 -1
  113. package/build-module/gallery/gallery.js +2 -29
  114. package/build-module/gallery/gallery.js.map +1 -1
  115. package/build-module/list-item/edit.js +2 -1
  116. package/build-module/list-item/edit.js.map +1 -1
  117. package/build-module/missing/edit.js +11 -4
  118. package/build-module/missing/edit.js.map +1 -1
  119. package/build-module/more/edit.js +1 -1
  120. package/build-module/more/edit.js.map +1 -1
  121. package/build-module/navigation/menu-items-to-blocks.js +16 -6
  122. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  123. package/build-module/paragraph/drop-zone.js +88 -0
  124. package/build-module/paragraph/drop-zone.js.map +1 -0
  125. package/build-module/paragraph/edit.js +10 -3
  126. package/build-module/paragraph/edit.js.map +1 -1
  127. package/build-module/post-content/edit.js +6 -1
  128. package/build-module/post-content/edit.js.map +1 -1
  129. package/build-module/post-excerpt/edit.js +1 -1
  130. package/build-module/post-excerpt/edit.js.map +1 -1
  131. package/build-module/post-navigation-link/edit.js +37 -6
  132. package/build-module/post-navigation-link/edit.js.map +1 -1
  133. package/build-module/post-navigation-link/index.js +6 -1
  134. package/build-module/post-navigation-link/index.js.map +1 -1
  135. package/build-module/post-template/edit.js +14 -29
  136. package/build-module/post-template/edit.js.map +1 -1
  137. package/build-module/query/edit/inspector-controls/index.js +2 -6
  138. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  139. package/build-module/query/edit/inspector-controls/sticky-control.js +1 -1
  140. package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
  141. package/build-module/query/edit/query-placeholder.js +2 -2
  142. package/build-module/query/edit/query-placeholder.js.map +1 -1
  143. package/build-module/query-title/edit.js +1 -1
  144. package/build-module/query-title/edit.js.map +1 -1
  145. package/build-module/quote/transforms.js +2 -2
  146. package/build-module/quote/transforms.js.map +1 -1
  147. package/build-module/read-more/edit.js +1 -1
  148. package/build-module/read-more/edit.js.map +1 -1
  149. package/build-module/site-tagline/index.js +1 -1
  150. package/build-module/social-links/edit.native.js +1 -0
  151. package/build-module/social-links/edit.native.js.map +1 -1
  152. package/build-module/template-part/edit/index.js +3 -3
  153. package/build-module/template-part/edit/index.js.map +1 -1
  154. package/build-style/calendar/style-rtl.css +21 -12
  155. package/build-style/calendar/style.css +21 -12
  156. package/build-style/classic-rtl.css +85 -0
  157. package/build-style/classic.css +85 -0
  158. package/build-style/editor-rtl.css +41 -2
  159. package/build-style/editor.css +41 -2
  160. package/build-style/group/editor-rtl.css +11 -1
  161. package/build-style/group/editor.css +11 -1
  162. package/build-style/image/editor-rtl.css +3 -0
  163. package/build-style/image/editor.css +3 -0
  164. package/build-style/navigation/editor-rtl.css +11 -1
  165. package/build-style/navigation/editor.css +11 -1
  166. package/build-style/paragraph/editor-rtl.css +16 -0
  167. package/build-style/paragraph/editor.css +16 -0
  168. package/build-style/post-navigation-link/style-rtl.css +90 -0
  169. package/build-style/post-navigation-link/style.css +90 -0
  170. package/build-style/style-rtl.css +36 -12
  171. package/build-style/style.css +36 -12
  172. package/package.json +29 -29
  173. package/src/archives/index.php +4 -7
  174. package/src/avatar/block.json +1 -1
  175. package/src/block/edit.native.js +1 -1
  176. package/src/buttons/edit.native.js +1 -2
  177. package/src/buttons/test/__snapshots__/edit.native.js.snap +28 -0
  178. package/src/buttons/test/edit.native.js +170 -0
  179. package/src/calendar/block.json +9 -0
  180. package/src/calendar/index.php +22 -1
  181. package/src/calendar/style.scss +28 -15
  182. package/src/classic.scss +15 -0
  183. package/src/code/index.js +1 -1
  184. package/src/columns/test/__snapshots__/edit.native.js.snap +219 -0
  185. package/src/columns/test/edit.native.js +432 -0
  186. package/src/comment-template/index.php +18 -8
  187. package/src/comments/edit/comments-legacy.js +1 -1
  188. package/src/comments-pagination-next/block.json +1 -1
  189. package/src/comments-pagination-numbers/block.json +8 -1
  190. package/src/comments-pagination-previous/block.json +1 -1
  191. package/src/comments-title/edit.js +1 -1
  192. package/src/cover/edit/use-cover-is-dark.js +11 -7
  193. package/src/cover/index.js +8 -1
  194. package/src/cover/test/__snapshots__/edit.native.js.snap +64 -0
  195. package/src/cover/test/edit.native.js +136 -4
  196. package/src/embed/block.json +12 -6
  197. package/src/embed/test/index.native.js +1 -2
  198. package/src/embed/variations.js +1 -1
  199. package/src/freeform/edit.js +12 -10
  200. package/src/gallery/deprecated.js +4 -4
  201. package/src/gallery/gallery.js +1 -31
  202. package/src/group/test/__snapshots__/edit.native.js.snap +19 -0
  203. package/src/group/test/edit.native.js +102 -0
  204. package/src/image/editor.scss +4 -0
  205. package/src/list-item/edit.js +1 -0
  206. package/src/missing/edit.js +15 -4
  207. package/src/more/edit.js +1 -1
  208. package/src/navigation/menu-items-to-blocks.js +39 -22
  209. package/src/navigation/test/menu-items-to-blocks.js +6 -0
  210. package/src/navigation-submenu/index.php +11 -2
  211. package/src/page-list/index.php +1 -1
  212. package/src/paragraph/drop-zone.js +105 -0
  213. package/src/paragraph/edit.js +14 -1
  214. package/src/paragraph/editor.scss +20 -0
  215. package/src/post-content/edit.js +3 -1
  216. package/src/post-excerpt/edit.js +1 -1
  217. package/src/post-featured-image/index.php +11 -18
  218. package/src/post-navigation-link/block.json +6 -1
  219. package/src/post-navigation-link/edit.js +64 -3
  220. package/src/post-navigation-link/index.php +23 -0
  221. package/src/post-navigation-link/style.scss +23 -0
  222. package/src/post-template/edit.js +14 -23
  223. package/src/query/edit/inspector-controls/index.js +2 -6
  224. package/src/query/edit/inspector-controls/sticky-control.js +1 -1
  225. package/src/query/edit/query-placeholder.js +4 -1
  226. package/src/query-title/edit.js +1 -1
  227. package/src/quote/transforms.js +1 -1
  228. package/src/read-more/edit.js +1 -1
  229. package/src/site-tagline/block.json +1 -1
  230. package/src/social-links/edit.native.js +7 -1
  231. package/src/social-links/test/__snapshots__/edit.native.js.snap +57 -0
  232. package/src/social-links/test/edit.native.js +199 -0
  233. package/src/style.scss +1 -0
  234. package/src/tag-cloud/index.php +1 -8
  235. package/src/template-part/edit/index.js +60 -58
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = DropZone;
7
+
8
+ var _element = require("@wordpress/element");
9
+
10
+ var _data = require("@wordpress/data");
11
+
12
+ var _blockEditor = require("@wordpress/block-editor");
13
+
14
+ var _compose = require("@wordpress/compose");
15
+
16
+ var _components = require("@wordpress/components");
17
+
18
+ /**
19
+ * WordPress dependencies
20
+ */
21
+ const animateVariants = {
22
+ hide: {
23
+ opacity: 0,
24
+ scaleY: 0.75
25
+ },
26
+ show: {
27
+ opacity: 1,
28
+ scaleY: 1
29
+ },
30
+ exit: {
31
+ opacity: 0,
32
+ scaleY: 0.9
33
+ }
34
+ };
35
+
36
+ function DropZone(_ref) {
37
+ let {
38
+ paragraphElement,
39
+ clientId
40
+ } = _ref;
41
+ const {
42
+ rootClientId,
43
+ blockIndex
44
+ } = (0, _data.useSelect)(select => {
45
+ const selectors = select(_blockEditor.store);
46
+ return {
47
+ rootClientId: selectors.getBlockRootClientId(clientId),
48
+ blockIndex: selectors.getBlockIndex(clientId)
49
+ };
50
+ }, [clientId]);
51
+ const onBlockDrop = (0, _blockEditor.__experimentalUseOnBlockDrop)(rootClientId, blockIndex, {
52
+ action: 'replace'
53
+ });
54
+ const [isDragging, setIsDragging] = (0, _element.useState)(false);
55
+ const [isVisible, setIsVisible] = (0, _element.useState)(false);
56
+ const popoverRef = (0, _compose.__experimentalUseDropZone)({
57
+ onDragStart: () => {
58
+ setIsDragging(true);
59
+ },
60
+ onDragEnd: () => {
61
+ setIsDragging(false);
62
+ }
63
+ });
64
+ const dropZoneRef = (0, _compose.__experimentalUseDropZone)({
65
+ onDrop: onBlockDrop,
66
+ onDragEnter: () => {
67
+ setIsVisible(true);
68
+ },
69
+ onDragLeave: () => {
70
+ setIsVisible(false);
71
+ }
72
+ });
73
+ const reducedMotion = (0, _compose.useReducedMotion)();
74
+ return (0, _element.createElement)(_components.Popover, {
75
+ anchor: paragraphElement,
76
+ animate: false,
77
+ placement: "top-start",
78
+ focusOnMount: false,
79
+ flip: false,
80
+ resize: false,
81
+ className: "wp-block-paragraph__drop-zone",
82
+ ref: popoverRef
83
+ }, isDragging ? (0, _element.createElement)("div", {
84
+ className: "wp-block-paragraph__drop-zone-backdrop",
85
+ ref: dropZoneRef,
86
+ style: {
87
+ width: paragraphElement === null || paragraphElement === void 0 ? void 0 : paragraphElement.offsetWidth,
88
+ height: paragraphElement === null || paragraphElement === void 0 ? void 0 : paragraphElement.offsetHeight
89
+ }
90
+ }, (0, _element.createElement)(_components.__unstableAnimatePresence, null, isVisible ? (0, _element.createElement)(_components.__unstableMotion.div, {
91
+ key: "drop-zone-foreground",
92
+ "data-testid": "empty-paragraph-drop-zone",
93
+ initial: reducedMotion ? animateVariants.show : animateVariants.hide,
94
+ animate: animateVariants.show,
95
+ exit: reducedMotion ? animateVariants.show : animateVariants.exit,
96
+ className: "wp-block-paragraph__drop-zone-foreground"
97
+ }) : null)) : null);
98
+ }
99
+ //# sourceMappingURL=drop-zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/paragraph/drop-zone.js"],"names":["animateVariants","hide","opacity","scaleY","show","exit","DropZone","paragraphElement","clientId","rootClientId","blockIndex","select","selectors","blockEditorStore","getBlockRootClientId","getBlockIndex","onBlockDrop","action","isDragging","setIsDragging","isVisible","setIsVisible","popoverRef","onDragStart","onDragEnd","dropZoneRef","onDrop","onDragEnter","onDragLeave","reducedMotion","width","offsetWidth","height","offsetHeight"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\t__experimentalUseOnBlockDrop as useOnBlockDrop,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseDropZone as useDropZone,\n\tuseReducedMotion,\n} from '@wordpress/compose';\nimport {\n\tPopover,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\n\nconst animateVariants = {\n\thide: { opacity: 0, scaleY: 0.75 },\n\tshow: { opacity: 1, scaleY: 1 },\n\texit: { opacity: 0, scaleY: 0.9 },\n};\n\nexport default function DropZone( { paragraphElement, clientId } ) {\n\tconst { rootClientId, blockIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst selectors = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\trootClientId: selectors.getBlockRootClientId( clientId ),\n\t\t\t\tblockIndex: selectors.getBlockIndex( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst onBlockDrop = useOnBlockDrop( rootClientId, blockIndex, {\n\t\taction: 'replace',\n\t} );\n\tconst [ isDragging, setIsDragging ] = useState( false );\n\tconst [ isVisible, setIsVisible ] = useState( false );\n\tconst popoverRef = useDropZone( {\n\t\tonDragStart: () => {\n\t\t\tsetIsDragging( true );\n\t\t},\n\t\tonDragEnd: () => {\n\t\t\tsetIsDragging( false );\n\t\t},\n\t} );\n\tconst dropZoneRef = useDropZone( {\n\t\tonDrop: onBlockDrop,\n\t\tonDragEnter: () => {\n\t\t\tsetIsVisible( true );\n\t\t},\n\t\tonDragLeave: () => {\n\t\t\tsetIsVisible( false );\n\t\t},\n\t} );\n\tconst reducedMotion = useReducedMotion();\n\n\treturn (\n\t\t<Popover\n\t\t\tanchor={ paragraphElement }\n\t\t\tanimate={ false }\n\t\t\tplacement=\"top-start\"\n\t\t\tfocusOnMount={ false }\n\t\t\tflip={ false }\n\t\t\tresize={ false }\n\t\t\tclassName=\"wp-block-paragraph__drop-zone\"\n\t\t\tref={ popoverRef }\n\t\t>\n\t\t\t{ isDragging ? (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-paragraph__drop-zone-backdrop\"\n\t\t\t\t\tref={ dropZoneRef }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: paragraphElement?.offsetWidth,\n\t\t\t\t\t\theight: paragraphElement?.offsetHeight,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t{ isVisible ? (\n\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\tkey=\"drop-zone-foreground\"\n\t\t\t\t\t\t\t\tdata-testid=\"empty-paragraph-drop-zone\"\n\t\t\t\t\t\t\t\tinitial={\n\t\t\t\t\t\t\t\t\treducedMotion\n\t\t\t\t\t\t\t\t\t\t? animateVariants.show\n\t\t\t\t\t\t\t\t\t\t: animateVariants.hide\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tanimate={ animateVariants.show }\n\t\t\t\t\t\t\t\texit={\n\t\t\t\t\t\t\t\t\treducedMotion\n\t\t\t\t\t\t\t\t\t\t? animateVariants.show\n\t\t\t\t\t\t\t\t\t\t: animateVariants.exit\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"wp-block-paragraph__drop-zone-foreground\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t</div>\n\t\t\t) : null }\n\t\t</Popover>\n\t);\n}\n"]}
@@ -19,12 +19,16 @@ var _components = require("@wordpress/components");
19
19
 
20
20
  var _blockEditor = require("@wordpress/block-editor");
21
21
 
22
+ var _compose = require("@wordpress/compose");
23
+
22
24
  var _blocks = require("@wordpress/blocks");
23
25
 
24
26
  var _icons = require("@wordpress/icons");
25
27
 
26
28
  var _useEnter = require("./use-enter");
27
29
 
30
+ var _dropZone = _interopRequireDefault(require("./drop-zone"));
31
+
28
32
  /**
29
33
  * External dependencies
30
34
  */
@@ -70,11 +74,12 @@ function ParagraphBlock(_ref2) {
70
74
  placeholder
71
75
  } = attributes;
72
76
  const isDropCapFeatureEnabled = (0, _blockEditor.useSetting)('typography.dropCap');
77
+ const [paragraphElement, setParagraphElement] = (0, _element.useState)(null);
73
78
  const blockProps = (0, _blockEditor.useBlockProps)({
74
- ref: (0, _useEnter.useOnEnter)({
79
+ ref: (0, _compose.useMergeRefs)([(0, _useEnter.useOnEnter)({
75
80
  clientId,
76
81
  content
77
- }),
82
+ }), setParagraphElement]),
78
83
  className: (0, _classnames.default)({
79
84
  'has-drop-cap': dropCap,
80
85
  [`has-text-align-${align}`]: align
@@ -114,7 +119,10 @@ function ParagraphBlock(_ref2) {
114
119
  dropCap: !dropCap
115
120
  }),
116
121
  help: dropCap ? (0, _i18n.__)('Showing large initial letter.') : (0, _i18n.__)('Toggle to show a large initial letter.')
117
- }))), (0, _element.createElement)(_blockEditor.RichText, (0, _extends2.default)({
122
+ }))), !content && (0, _element.createElement)(_dropZone.default, {
123
+ clientId: clientId,
124
+ paragraphElement: paragraphElement
125
+ }), (0, _element.createElement)(_blockEditor.RichText, (0, _extends2.default)({
118
126
  identifier: "content",
119
127
  tagName: "p"
120
128
  }, blockProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/paragraph/edit.js"],"names":["name","ParagraphRTLControl","direction","setDirection","formatLtr","undefined","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","align","content","dropCap","placeholder","isDropCapFeatureEnabled","blockProps","ref","className","style","newAlign","newDirection","newContent","value","isOriginal","newAttributes","block"],"mappings":";;;;;;;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AAQA;;AACA;;AAKA;;AA5BA;AACA;AACA;;AAGA;AACA;AACA;;AAkBA;AACA;AACA;AAGA,MAAMA,IAAI,GAAG,gBAAb;;AAEA,SAASC,mBAAT,OAA4D;AAAA,MAA9B;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAA8B;AAC3D,SACC,sBACC,4BAAC,yBAAD;AACC,IAAA,IAAI,EAAGC,gBADR;AAEC,IAAA,KAAK,EAAG,cAAI,eAAJ,EAAqB,eAArB,CAFT;AAGC,IAAA,QAAQ,EAAGF,SAAS,KAAK,KAH1B;AAIC,IAAA,OAAO,EAAG,MAAM;AACfC,MAAAA,YAAY,CAAED,SAAS,KAAK,KAAd,GAAsBG,SAAtB,GAAkC,KAApC,CAAZ;AACA;AANF,IAFF;AAYA;;AAED,SAASC,cAAT,QAOI;AAAA,MAPqB;AACxBC,IAAAA,UADwB;AAExBC,IAAAA,WAFwB;AAGxBC,IAAAA,SAHwB;AAIxBC,IAAAA,QAJwB;AAKxBC,IAAAA,aALwB;AAMxBC,IAAAA;AANwB,GAOrB;AACH,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,OAAT;AAAkBZ,IAAAA,SAAlB;AAA6Ba,IAAAA,OAA7B;AAAsCC,IAAAA;AAAtC,MAAsDT,UAA5D;AACA,QAAMU,uBAAuB,GAAG,6BAAY,oBAAZ,CAAhC;AACA,QAAMC,UAAU,GAAG,gCAAe;AACjCC,IAAAA,GAAG,EAAE,0BAAY;AAAEP,MAAAA,QAAF;AAAYE,MAAAA;AAAZ,KAAZ,CAD4B;AAEjCM,IAAAA,SAAS,EAAE,yBAAY;AACtB,sBAAgBL,OADM;AAEtB,OAAG,kBAAkBF,KAAO,EAA5B,GAAiCA;AAFX,KAAZ,CAFsB;AAMjCQ,IAAAA,KAAK,EAAE;AAAEnB,MAAAA;AAAF;AAN0B,GAAf,CAAnB;AASA,SACC,qDACC,4BAAC,0BAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGW,KADT;AAEC,IAAA,QAAQ,EAAKS,QAAF,IACVX,aAAa,CAAE;AAAEE,MAAAA,KAAK,EAAES;AAAT,KAAF;AAHf,IADD,EAOC,4BAAC,mBAAD;AACC,IAAA,SAAS,EAAGpB,SADb;AAEC,IAAA,YAAY,EAAKqB,YAAF,IACdZ,aAAa,CAAE;AAAET,MAAAA,SAAS,EAAEqB;AAAb,KAAF;AAHf,IAPD,CADD,EAeGN,uBAAuB,IACxB,4BAAC,8BAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACC,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAG,MAAM,CAAC,CAAEF,OADrB;AAEC,IAAA,KAAK,EAAG,cAAI,UAAJ,CAFT;AAGC,IAAA,UAAU,EAAG,MACZJ,aAAa,CAAE;AAAEI,MAAAA,OAAO,EAAEV;AAAX,KAAF,CAJf;AAMC,IAAA,cAAc,EAAG,OAAQ;AAAEU,MAAAA,OAAO,EAAEV;AAAX,KAAR,CANlB;AAOC,IAAA,OAAO,EAAGO;AAPX,KASC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,UAAJ,CADT;AAEC,IAAA,OAAO,EAAG,CAAC,CAAEG,OAFd;AAGC,IAAA,QAAQ,EAAG,MACVJ,aAAa,CAAE;AAAEI,MAAAA,OAAO,EAAE,CAAEA;AAAb,KAAF,CAJf;AAMC,IAAA,IAAI,EACHA,OAAO,GACJ,cAAI,+BAAJ,CADI,GAEJ,cACA,wCADA;AATL,IATD,CADD,CAhBF,EA2CC,4BAAC,qBAAD;AACC,IAAA,UAAU,EAAC,SADZ;AAEC,IAAA,OAAO,EAAC;AAFT,KAGMG,UAHN;AAIC,IAAA,KAAK,EAAGJ,OAJT;AAKC,IAAA,QAAQ,EAAKU,UAAF,IACVb,aAAa,CAAE;AAAEG,MAAAA,OAAO,EAAEU;AAAX,KAAF,CANf;AAQC,IAAA,OAAO,EAAG,CAAEC,KAAF,EAASC,UAAT,KAAyB;AAClC,UAAIC,aAAJ;;AAEA,UAAKD,UAAU,IAAID,KAAnB,EAA2B;AAC1BE,QAAAA,aAAa,GAAG,EACf,GAAGpB,UADY;AAEfO,UAAAA,OAAO,EAAEW;AAFM,SAAhB;AAIA;;AAED,YAAMG,KAAK,GAAG,yBAAa5B,IAAb,EAAmB2B,aAAnB,CAAd;;AAEA,UAAKD,UAAL,EAAkB;AACjBE,QAAAA,KAAK,CAAChB,QAAN,GAAiBA,QAAjB;AACA;;AAED,aAAOgB,KAAP;AACA,KAzBF;AA0BC,IAAA,OAAO,EAAGpB,WA1BX;AA2BC,IAAA,SAAS,EAAGC,SA3Bb;AA4BC,IAAA,QAAQ,EAAGC,QA5BZ;AA6BC,kBACCI,OAAO,GACJ,cAAI,iBAAJ,CADI,GAEJ,cACA,oEADA,CAhCL;AAoCC,kBAAaA,OAAO,GAAG,KAAH,GAAW,IApChC;AAqCC,IAAA,WAAW,EAAGE,WAAW,IAAI,cAAI,0BAAJ,CArC9B;AAsCC,+BAA0BA,WAAW,GAAG,IAAH,GAAUX,SAtChD;AAuCC,IAAA,yBAAyB,MAvC1B;AAwCC,IAAA,oCAAoC;AAxCrC,KA3CD,CADD;AAwFA;;eAEcC,c","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst isDropCapFeatureEnabled = useSetting( 'typography.dropCap' );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\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\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { align: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\tdirection={ direction }\n\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ isDropCapFeatureEnabled && (\n\t\t\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { dropCap: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { dropCap: ! dropCap } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tdropCap\n\t\t\t\t\t\t\t\t\t? __( 'Showing large initial letter.' )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'Toggle to show a large initial letter.'\n\t\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</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\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={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tcontent\n\t\t\t\t\t\t? __( 'Paragraph block' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tdata-empty={ content ? false : true }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/paragraph/edit.js"],"names":["name","ParagraphRTLControl","direction","setDirection","formatLtr","undefined","ParagraphBlock","attributes","mergeBlocks","onReplace","onRemove","setAttributes","clientId","align","content","dropCap","placeholder","isDropCapFeatureEnabled","paragraphElement","setParagraphElement","blockProps","ref","className","style","newAlign","newDirection","newContent","value","isOriginal","newAttributes","block"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { createBlock } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\nimport DropZone from './drop-zone';\n\nconst name = 'core/paragraph';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst isDropCapFeatureEnabled = useSetting( 'typography.dropCap' );\n\tconst [ paragraphElement, setParagraphElement ] = useState( null );\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [\n\t\t\tuseOnEnter( { clientId, content } ),\n\t\t\tsetParagraphElement,\n\t\t] ),\n\t\tclassName: classnames( {\n\t\t\t'has-drop-cap': dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\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\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { align: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\tdirection={ direction }\n\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ isDropCapFeatureEnabled && (\n\t\t\t\t<InspectorControls __experimentalGroup=\"typography\">\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { dropCap: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { dropCap: ! dropCap } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tdropCap\n\t\t\t\t\t\t\t\t\t? __( 'Showing large initial letter.' )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'Toggle to show a large initial letter.'\n\t\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</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t{ ! content && (\n\t\t\t\t<DropZone\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tparagraphElement={ paragraphElement }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\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={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tcontent\n\t\t\t\t\t\t? __( 'Paragraph block' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tdata-empty={ content ? false : true }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n"]}
@@ -61,7 +61,12 @@ function EditableContent(_ref2) {
61
61
  return (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout;
62
62
  }, []);
63
63
  const defaultLayout = (0, _blockEditor.useSetting)('layout') || {};
64
- const usedLayout = !!layout && layout.inherit ? defaultLayout : layout;
64
+ const usedLayout = !(layout !== null && layout !== void 0 && layout.type) ? { ...defaultLayout,
65
+ ...layout,
66
+ type: 'default'
67
+ } : { ...defaultLayout,
68
+ ...layout
69
+ };
65
70
  const [blocks, onInput, onChange] = (0, _coreData.useEntityBlockEditor)('postType', postType, {
66
71
  id: postId
67
72
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-content/edit.js"],"names":["ReadOnlyContent","userCanEdit","postType","postId","content","blockProps","protected","__html","rendered","EditableContent","layout","context","themeSupportsLayout","select","getSettings","blockEditorStore","supportsLayout","defaultLayout","usedLayout","inherit","blocks","onInput","onChange","id","props","className","value","__experimentalLayout","undefined","Content","queryId","isDescendentOfQueryLoop","Number","isFinite","isEditable","Placeholder","RecursionError","PostContentEdit","attributes","contextPostId","contextPostType","hasAlreadyRendered"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tuseSetting,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nfunction ReadOnlyContent( { userCanEdit, postType, postId } ) {\n\tconst [ , , content ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\tconst blockProps = useBlockProps();\n\treturn content?.protected && ! userCanEdit ? (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>{ __( 'This content is password protected.' ) }</Warning>\n\t\t</div>\n\t) : (\n\t\t<div\n\t\t\t{ ...blockProps }\n\t\t\tdangerouslySetInnerHTML={ { __html: content?.rendered } }\n\t\t></div>\n\t);\n}\n\nfunction EditableContent( { layout, context = {} } ) {\n\tconst { postType, postId } = context;\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings()?.supportsLayout;\n\t}, [] );\n\tconst defaultLayout = useSetting( 'layout' ) || {};\n\tconst usedLayout = !! layout && layout.inherit ? defaultLayout : layout;\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpostType,\n\t\t{ id: postId }\n\t);\n\n\tconst props = useInnerBlocksProps(\n\t\tuseBlockProps( { className: 'entry-content' } ),\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\t__experimentalLayout: themeSupportsLayout ? usedLayout : undefined,\n\t\t}\n\t);\n\treturn <div { ...props } />;\n}\n\nfunction Content( props ) {\n\tconst { context: { queryId, postType, postId } = {} } = props;\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\n\treturn isEditable ? (\n\t\t<EditableContent { ...props } />\n\t) : (\n\t\t<ReadOnlyContent\n\t\t\tuserCanEdit={ userCanEdit }\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\n\t\t/>\n\t);\n}\n\nfunction Placeholder() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'This is the Post Content block, it will display all the blocks in any single post or page.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'That might be a simple arrangement like consecutive paragraphs in a blog post, or a more elaborate composition that includes image galleries, videos, tables, columns, and any other block types.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'If there are any Custom Post Types registered at your site, the Post Content block can display the contents of those entries as well.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n\nfunction RecursionError() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\nexport default function PostContentEdit( { context, attributes } ) {\n\tconst { postId: contextPostId, postType: contextPostType } = context;\n\tconst { layout = {} } = attributes;\n\tconst hasAlreadyRendered = useHasRecursion( contextPostId );\n\n\tif ( contextPostId && contextPostType && hasAlreadyRendered ) {\n\t\treturn <RecursionError />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ contextPostId }>\n\t\t\t{ contextPostId && contextPostType ? (\n\t\t\t\t<Content context={ context } layout={ layout } />\n\t\t\t) : (\n\t\t\t\t<Placeholder />\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-content/edit.js"],"names":["ReadOnlyContent","userCanEdit","postType","postId","content","blockProps","protected","__html","rendered","EditableContent","layout","context","themeSupportsLayout","select","getSettings","blockEditorStore","supportsLayout","defaultLayout","usedLayout","type","blocks","onInput","onChange","id","props","className","value","__experimentalLayout","undefined","Content","queryId","isDescendentOfQueryLoop","Number","isFinite","isEditable","Placeholder","RecursionError","PostContentEdit","attributes","contextPostId","contextPostType","hasAlreadyRendered"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tuseSetting,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tstore as blockEditorStore,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nfunction ReadOnlyContent( { userCanEdit, postType, postId } ) {\n\tconst [ , , content ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\tconst blockProps = useBlockProps();\n\treturn content?.protected && ! userCanEdit ? (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>{ __( 'This content is password protected.' ) }</Warning>\n\t\t</div>\n\t) : (\n\t\t<div\n\t\t\t{ ...blockProps }\n\t\t\tdangerouslySetInnerHTML={ { __html: content?.rendered } }\n\t\t></div>\n\t);\n}\n\nfunction EditableContent( { layout, context = {} } ) {\n\tconst { postType, postId } = context;\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings()?.supportsLayout;\n\t}, [] );\n\tconst defaultLayout = useSetting( 'layout' ) || {};\n\tconst usedLayout = ! layout?.type\n\t\t? { ...defaultLayout, ...layout, type: 'default' }\n\t\t: { ...defaultLayout, ...layout };\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpostType,\n\t\t{ id: postId }\n\t);\n\n\tconst props = useInnerBlocksProps(\n\t\tuseBlockProps( { className: 'entry-content' } ),\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\t__experimentalLayout: themeSupportsLayout ? usedLayout : undefined,\n\t\t}\n\t);\n\treturn <div { ...props } />;\n}\n\nfunction Content( props ) {\n\tconst { context: { queryId, postType, postId } = {} } = props;\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\n\treturn isEditable ? (\n\t\t<EditableContent { ...props } />\n\t) : (\n\t\t<ReadOnlyContent\n\t\t\tuserCanEdit={ userCanEdit }\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\n\t\t/>\n\t);\n}\n\nfunction Placeholder() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'This is the Post Content block, it will display all the blocks in any single post or page.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'That might be a simple arrangement like consecutive paragraphs in a blog post, or a more elaborate composition that includes image galleries, videos, tables, columns, and any other block types.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'If there are any Custom Post Types registered at your site, the Post Content block can display the contents of those entries as well.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n\nfunction RecursionError() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\nexport default function PostContentEdit( { context, attributes } ) {\n\tconst { postId: contextPostId, postType: contextPostType } = context;\n\tconst { layout = {} } = attributes;\n\tconst hasAlreadyRendered = useHasRecursion( contextPostId );\n\n\tif ( contextPostId && contextPostType && hasAlreadyRendered ) {\n\t\treturn <RecursionError />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ contextPostId }>\n\t\t\t{ contextPostId && contextPostType ? (\n\t\t\t\t<Content context={ context } layout={ layout } />\n\t\t\t) : (\n\t\t\t\t<Placeholder />\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"]}
@@ -82,7 +82,7 @@ function PostExcerptEditor(_ref) {
82
82
  const readMoreLink = (0, _element.createElement)(_blockEditor.RichText, {
83
83
  className: "wp-block-post-excerpt__more-link",
84
84
  tagName: "a",
85
- "aria-label": (0, _i18n.__)('"Read more" link text'),
85
+ "aria-label": (0, _i18n.__)('Read more link text'),
86
86
  placeholder: (0, _i18n.__)('Add "read more" link text'),
87
87
  value: moreText,
88
88
  onChange: newMoreText => setAttributes({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-excerpt/edit.js"],"names":["PostExcerptEditor","attributes","textAlign","moreText","showMoreOnNewLine","setAttributes","isSelected","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","userCanEdit","isEditable","rawExcerpt","setExcerpt","rendered","renderedExcerpt","protected","isProtected","blockProps","className","strippedRenderedExcerpt","document","window","DOMParser","parseFromString","body","textContent","innerText","readMoreLink","newMoreText","excerptClassName","excerptContent","newAlign","newShowMoreOnNewLine"],"mappings":";;;;;;;;;AASA;;AANA;;AAKA;;AAEA;;AAQA;;AACA;;AAKA;;AAxBA;AACA;AACA;;AAGA;AACA;AACA;;AAcA;AACA;AACA;AAGe,SAASA,iBAAT,OAKX;AAAA,MALuC;AAC1CC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,SAAF;AAAaC,MAAAA,QAAb;AAAuBC,MAAAA;AAAvB,KAD8B;AAE1CC,IAAAA,aAF0C;AAG1CC,IAAAA,UAH0C;AAI1CC,IAAAA,OAAO,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA,QAAV;AAAoBC,MAAAA;AAApB;AAJiC,GAKvC;AACH,QAAMC,uBAAuB,GAAGC,MAAM,CAACC,QAAP,CAAiBH,OAAjB,CAAhC;AACA,QAAMI,WAAW,GAAG,6BAAkB,UAAlB,EAA8BL,QAA9B,EAAwCD,MAAxC,CAApB;AACA,QAAMO,UAAU,GAAGD,WAAW,IAAI,CAAEH,uBAApC;AACA,QAAM,CACLK,UADK,EAELC,UAFK,EAGL;AAAEC,IAAAA,QAAQ,EAAEC,eAAZ;AAA6BC,IAAAA,SAAS,EAAEC;AAAxC,MAAwD,EAHnD,IAIF,6BAAe,UAAf,EAA2BZ,QAA3B,EAAqC,SAArC,EAAgDD,MAAhD,CAJJ;AAKA,QAAMc,UAAU,GAAG,gCAAe;AACjCC,IAAAA,SAAS,EAAE,yBAAY;AACtB,OAAG,kBAAkBrB,SAAW,EAAhC,GAAqCA;AADf,KAAZ;AADsB,GAAf,CAAnB;AAKA;AACD;AACA;AACA;AACA;;AACC,QAAMsB,uBAAuB,GAAG,sBAAS,MAAM;AAC9C,QAAK,CAAEL,eAAP,EAAyB,OAAO,EAAP;AACzB,UAAMM,QAAQ,GAAG,IAAIC,MAAM,CAACC,SAAX,GAAuBC,eAAvB,CAChBT,eADgB,EAEhB,WAFgB,CAAjB;AAIA,WAAOM,QAAQ,CAACI,IAAT,CAAcC,WAAd,IAA6BL,QAAQ,CAACI,IAAT,CAAcE,SAA3C,IAAwD,EAA/D;AACA,GAP+B,EAO7B,CAAEZ,eAAF,CAP6B,CAAhC;;AAQA,MAAK,CAAEV,QAAF,IAAc,CAAED,MAArB,EAA8B;AAC7B,WACC,mCAAUc,UAAV,EACC,uCACG,cACD,gFADC,CADH,CADD,EAMC,uCACG,cACD,yIADC,CADH,CAND,CADD;AAcA;;AACD,MAAKD,WAAW,IAAI,CAAEP,WAAtB,EAAoC;AACnC,WACC,mCAAUQ,UAAV,EACC,4BAAC,oBAAD,QACG,cACD,uDADC,CADH,CADD,CADD;AASA;;AACD,QAAMU,YAAY,GACjB,4BAAC,qBAAD;AACC,IAAA,SAAS,EAAC,kCADX;AAEC,IAAA,OAAO,EAAC,GAFT;AAGC,kBAAa,cAAI,uBAAJ,CAHd;AAIC,IAAA,WAAW,EAAG,cAAI,2BAAJ,CAJf;AAKC,IAAA,KAAK,EAAG7B,QALT;AAMC,IAAA,QAAQ,EAAK8B,WAAF,IACV5B,aAAa,CAAE;AAAEF,MAAAA,QAAQ,EAAE8B;AAAZ,KAAF,CAPf;AASC,IAAA,4BAA4B,EAAG;AAThC,IADD;AAaA,QAAMC,gBAAgB,GAAG,yBAAY,gCAAZ,EAA8C;AACtE,iBAAa,CAAE9B;AADuD,GAA9C,CAAzB;AAGA,QAAM+B,cAAc,GAAGpB,UAAU,GAChC,4BAAC,qBAAD;AACC,IAAA,SAAS,EAAGmB,gBADb;AAEC,kBAAa,cAAI,mBAAJ,CAFd;AAGC,IAAA,KAAK,EACJlB,UAAU,IACVQ,uBADA,KAEElB,UAAU,GAAG,EAAH,GAAQ,cAAI,uBAAJ,CAFpB,CAJF;AAQC,IAAA,QAAQ,EAAGW,UARZ;AASC,IAAA,OAAO,EAAC;AATT,IADgC,GAahC;AAAG,IAAA,SAAS,EAAGiB;AAAf,KACGV,uBAAuB,IAAI,cAAI,uBAAJ,CAD9B,CAbD;AAiBA,SACC,qDACC,4BAAC,0BAAD,QACC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGtB,SADT;AAEC,IAAA,QAAQ,EAAKkC,QAAF,IACV/B,aAAa,CAAE;AAAEH,MAAAA,SAAS,EAAEkC;AAAb,KAAF;AAHf,IADD,CADD,EASC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,KACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,uBAAJ,CADT;AAEC,IAAA,OAAO,EAAGhC,iBAFX;AAGC,IAAA,QAAQ,EAAKiC,oBAAF,IACVhC,aAAa,CAAE;AACdD,MAAAA,iBAAiB,EAAEiC;AADL,KAAF;AAJf,IADD,CADD,CATD,EAsBC,mCAAUf,UAAV,EACGa,cADH,EAEG,CAAE/B,iBAAF,IAAuB,GAF1B,EAGGA,iBAAiB,GAClB;AAAG,IAAA,SAAS,EAAC;AAAb,KACG4B,YADH,CADkB,GAKlBA,YARF,CAtBD,CADD;AAoCA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp } 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 } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine },\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 isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\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\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This is the Post Excerpt block, it will display the excerpt from single posts.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'If there are any Custom Post Types with support for excerpts, the Post Excerpt block can display the excerpts of those entries as well.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\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'There is no excerpt because this is a protected post.'\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\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Post excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\trawExcerpt ||\n\t\t\t\tstrippedRenderedExcerpt ||\n\t\t\t\t( isSelected ? '' : __( 'No post 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{ strippedRenderedExcerpt || __( 'No post excerpt found' ) }\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\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</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"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-excerpt/edit.js"],"names":["PostExcerptEditor","attributes","textAlign","moreText","showMoreOnNewLine","setAttributes","isSelected","context","postId","postType","queryId","isDescendentOfQueryLoop","Number","isFinite","userCanEdit","isEditable","rawExcerpt","setExcerpt","rendered","renderedExcerpt","protected","isProtected","blockProps","className","strippedRenderedExcerpt","document","window","DOMParser","parseFromString","body","textContent","innerText","readMoreLink","newMoreText","excerptClassName","excerptContent","newAlign","newShowMoreOnNewLine"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp } 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 } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine },\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 isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\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\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This is the Post Excerpt block, it will display the excerpt from single posts.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'If there are any Custom Post Types with support for excerpts, the Post Excerpt block can display the excerpts of those entries as well.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\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'There is no excerpt because this is a protected post.'\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\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Post excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\trawExcerpt ||\n\t\t\t\tstrippedRenderedExcerpt ||\n\t\t\t\t( isSelected ? '' : __( 'No post 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{ strippedRenderedExcerpt || __( 'No post excerpt found' ) }\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\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</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"]}
@@ -31,12 +31,19 @@ function PostNavigationLinkEdit(_ref) {
31
31
  label,
32
32
  showTitle,
33
33
  textAlign,
34
- linkLabel
34
+ linkLabel,
35
+ arrow
35
36
  },
36
37
  setAttributes
37
38
  } = _ref;
38
39
  const isNext = type === 'next';
39
40
  let placeholder = isNext ? (0, _i18n.__)('Next') : (0, _i18n.__)('Previous');
41
+ const arrowMap = {
42
+ none: '',
43
+ arrow: isNext ? '→' : '←',
44
+ chevron: isNext ? '»' : '«'
45
+ };
46
+ const displayArrow = arrowMap[arrow];
40
47
 
41
48
  if (showTitle) {
42
49
  /* translators: Label before for next and previous post. There is a space after the colon. */
@@ -62,14 +69,35 @@ function PostNavigationLinkEdit(_ref) {
62
69
  onChange: () => setAttributes({
63
70
  linkLabel: !linkLabel
64
71
  })
65
- }))), (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)(_blockEditor.AlignmentToolbar, {
72
+ }), (0, _element.createElement)(_components.__experimentalToggleGroupControl, {
73
+ label: (0, _i18n.__)('Arrow'),
74
+ value: arrow,
75
+ onChange: value => {
76
+ setAttributes({
77
+ arrow: value
78
+ });
79
+ },
80
+ help: (0, _i18n.__)('A decorative arrow for the next and previous link.'),
81
+ isBlock: true
82
+ }, (0, _element.createElement)(_components.__experimentalToggleGroupControlOption, {
83
+ value: "none",
84
+ label: (0, _i18n._x)('None', 'Arrow option for Next/Previous link')
85
+ }), (0, _element.createElement)(_components.__experimentalToggleGroupControlOption, {
86
+ value: "arrow",
87
+ label: (0, _i18n._x)('Arrow', 'Arrow option for Next/Previous link')
88
+ }), (0, _element.createElement)(_components.__experimentalToggleGroupControlOption, {
89
+ value: "chevron",
90
+ label: (0, _i18n._x)('Chevron', 'Arrow option for Next/Previous link')
91
+ })))), (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)(_blockEditor.AlignmentToolbar, {
66
92
  value: textAlign,
67
93
  onChange: nextAlign => {
68
94
  setAttributes({
69
95
  textAlign: nextAlign
70
96
  });
71
97
  }
72
- })), (0, _element.createElement)("div", blockProps, (0, _element.createElement)(_blockEditor.RichText, {
98
+ })), (0, _element.createElement)("div", blockProps, !isNext && displayArrow && (0, _element.createElement)("span", {
99
+ className: `wp-block-post-navigation-link__arrow-previous is-arrow-${arrow}`
100
+ }, displayArrow), (0, _element.createElement)(_blockEditor.RichText, {
73
101
  tagName: "a",
74
102
  "aria-label": ariaLabel,
75
103
  placeholder: placeholder,
@@ -81,6 +109,9 @@ function PostNavigationLinkEdit(_ref) {
81
109
  }), showTitle && (0, _element.createElement)("a", {
82
110
  href: "#post-navigation-pseudo-link",
83
111
  onClick: event => event.preventDefault()
84
- }, (0, _i18n.__)('An example title'))));
112
+ }, (0, _i18n.__)('An example title')), isNext && displayArrow && (0, _element.createElement)("span", {
113
+ className: `wp-block-post-navigation-link__arrow-next is-arrow-${arrow}`,
114
+ "aria-hidden": true
115
+ }, displayArrow)));
85
116
  }
86
117
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-navigation-link/edit.js"],"names":["PostNavigationLinkEdit","attributes","type","label","showTitle","textAlign","linkLabel","setAttributes","isNext","placeholder","ariaLabel","blockProps","className","nextAlign","newLabel","event","preventDefault"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AAOA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;AAWe,SAASA,sBAAT,OAGX;AAAA,MAH4C;AAC/CC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,KAAR;AAAeC,MAAAA,SAAf;AAA0BC,MAAAA,SAA1B;AAAqCC,MAAAA;AAArC,KADmC;AAE/CC,IAAAA;AAF+C,GAG5C;AACH,QAAMC,MAAM,GAAGN,IAAI,KAAK,MAAxB;AACA,MAAIO,WAAW,GAAGD,MAAM,GAAG,cAAI,MAAJ,CAAH,GAAkB,cAAI,UAAJ,CAA1C;;AAEA,MAAKJ,SAAL,EAAiB;AAChB;AACAK,IAAAA,WAAW,GAAGD,MAAM,GAAG,cAAI,QAAJ,CAAH,GAAoB,cAAI,YAAJ,CAAxC;AACA;;AAED,QAAME,SAAS,GAAGF,MAAM,GAAG,cAAI,WAAJ,CAAH,GAAuB,cAAI,eAAJ,CAA/C;AACA,QAAMG,UAAU,GAAG,gCAAe;AACjCC,IAAAA,SAAS,EAAE,yBAAY;AACtB,OAAG,kBAAkBP,SAAW,EAAhC,GAAqCA;AADf,KAAZ;AADsB,GAAf,CAAnB;AAKA,SACC,qDACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD,QACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,6BAAJ,CADT;AAEC,IAAA,IAAI,EAAG,cACN,4EADM,CAFR;AAKC,IAAA,OAAO,EAAG,CAAC,CAAED,SALd;AAMC,IAAA,QAAQ,EAAG,MACVG,aAAa,CAAE;AACdH,MAAAA,SAAS,EAAE,CAAEA;AADC,KAAF;AAPf,IADD,EAaGA,SAAS,IACV,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cACP,uCADO,CADT;AAIC,IAAA,OAAO,EAAG,CAAC,CAAEE,SAJd;AAKC,IAAA,QAAQ,EAAG,MACVC,aAAa,CAAE;AACdD,MAAAA,SAAS,EAAE,CAAEA;AADC,KAAF;AANf,IAdF,CADD,CADD,EA8BC,4BAAC,0BAAD,QACC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGD,SADT;AAEC,IAAA,QAAQ,EAAKQ,SAAF,IAAiB;AAC3BN,MAAAA,aAAa,CAAE;AAAEF,QAAAA,SAAS,EAAEQ;AAAb,OAAF,CAAb;AACA;AAJF,IADD,CA9BD,EAsCC,mCAAUF,UAAV,EACC,4BAAC,qBAAD;AACC,IAAA,OAAO,EAAC,GADT;AAEC,kBAAaD,SAFd;AAGC,IAAA,WAAW,EAAGD,WAHf;AAIC,IAAA,KAAK,EAAGN,KAJT;AAKC,IAAA,cAAc,EAAG,CAAE,WAAF,EAAe,aAAf,CALlB;AAMC,IAAA,QAAQ,EAAKW,QAAF,IACVP,aAAa,CAAE;AAAEJ,MAAAA,KAAK,EAAEW;AAAT,KAAF;AAPf,IADD,EAWGV,SAAS,IACV;AACC,IAAA,IAAI,EAAC,8BADN;AAEC,IAAA,OAAO,EAAKW,KAAF,IAAaA,KAAK,CAACC,cAAN;AAFxB,KAIG,cAAI,kBAAJ,CAJH,CAZF,CAtCD,CADD;AA6DA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { ToggleControl, PanelBody } from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\nexport default function PostNavigationLinkEdit( {\n\tattributes: { type, label, showTitle, textAlign, linkLabel },\n\tsetAttributes,\n} ) {\n\tconst isNext = type === 'next';\n\tlet placeholder = isNext ? __( 'Next' ) : __( 'Previous' );\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\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\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\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</PanelBody>\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<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</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-navigation-link/edit.js"],"names":["PostNavigationLinkEdit","attributes","type","label","showTitle","textAlign","linkLabel","arrow","setAttributes","isNext","placeholder","arrowMap","none","chevron","displayArrow","ariaLabel","blockProps","className","value","nextAlign","newLabel","event","preventDefault"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AAMA;;AAOA;;AArBA;AACA;AACA;;AAGA;AACA;AACA;AAgBe,SAASA,sBAAT,OAGX;AAAA,MAH4C;AAC/CC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,KAAR;AAAeC,MAAAA,SAAf;AAA0BC,MAAAA,SAA1B;AAAqCC,MAAAA,SAArC;AAAgDC,MAAAA;AAAhD,KADmC;AAE/CC,IAAAA;AAF+C,GAG5C;AACH,QAAMC,MAAM,GAAGP,IAAI,KAAK,MAAxB;AACA,MAAIQ,WAAW,GAAGD,MAAM,GAAG,cAAI,MAAJ,CAAH,GAAkB,cAAI,UAAJ,CAA1C;AAEA,QAAME,QAAQ,GAAG;AAChBC,IAAAA,IAAI,EAAE,EADU;AAEhBL,IAAAA,KAAK,EAAEE,MAAM,GAAG,GAAH,GAAS,GAFN;AAGhBI,IAAAA,OAAO,EAAEJ,MAAM,GAAG,GAAH,GAAS;AAHR,GAAjB;AAMA,QAAMK,YAAY,GAAGH,QAAQ,CAAEJ,KAAF,CAA7B;;AAEA,MAAKH,SAAL,EAAiB;AAChB;AACAM,IAAAA,WAAW,GAAGD,MAAM,GAAG,cAAI,QAAJ,CAAH,GAAoB,cAAI,YAAJ,CAAxC;AACA;;AAED,QAAMM,SAAS,GAAGN,MAAM,GAAG,cAAI,WAAJ,CAAH,GAAuB,cAAI,eAAJ,CAA/C;AACA,QAAMO,UAAU,GAAG,gCAAe;AACjCC,IAAAA,SAAS,EAAE,yBAAY;AACtB,OAAG,kBAAkBZ,SAAW,EAAhC,GAAqCA;AADf,KAAZ;AADsB,GAAf,CAAnB;AAKA,SACC,qDACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD,QACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,6BAAJ,CADT;AAEC,IAAA,IAAI,EAAG,cACN,4EADM,CAFR;AAKC,IAAA,OAAO,EAAG,CAAC,CAAED,SALd;AAMC,IAAA,QAAQ,EAAG,MACVI,aAAa,CAAE;AACdJ,MAAAA,SAAS,EAAE,CAAEA;AADC,KAAF;AAPf,IADD,EAaGA,SAAS,IACV,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cACP,uCADO,CADT;AAIC,IAAA,OAAO,EAAG,CAAC,CAAEE,SAJd;AAKC,IAAA,QAAQ,EAAG,MACVE,aAAa,CAAE;AACdF,MAAAA,SAAS,EAAE,CAAEA;AADC,KAAF;AANf,IAdF,EA0BC,4BAAC,4CAAD;AACC,IAAA,KAAK,EAAG,cAAI,OAAJ,CADT;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,QAAQ,EAAKW,KAAF,IAAa;AACvBV,MAAAA,aAAa,CAAE;AAAED,QAAAA,KAAK,EAAEW;AAAT,OAAF,CAAb;AACA,KALF;AAMC,IAAA,IAAI,EAAG,cACN,oDADM,CANR;AASC,IAAA,OAAO;AATR,KAWC,4BAAC,kDAAD;AACC,IAAA,KAAK,EAAC,MADP;AAEC,IAAA,KAAK,EAAG,cACP,MADO,EAEP,qCAFO;AAFT,IAXD,EAkBC,4BAAC,kDAAD;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,KAAK,EAAG,cACP,OADO,EAEP,qCAFO;AAFT,IAlBD,EAyBC,4BAAC,kDAAD;AACC,IAAA,KAAK,EAAC,SADP;AAEC,IAAA,KAAK,EAAG,cACP,SADO,EAEP,qCAFO;AAFT,IAzBD,CA1BD,CADD,CADD,EA+DC,4BAAC,0BAAD,QACC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGb,SADT;AAEC,IAAA,QAAQ,EAAKc,SAAF,IAAiB;AAC3BX,MAAAA,aAAa,CAAE;AAAEH,QAAAA,SAAS,EAAEc;AAAb,OAAF,CAAb;AACA;AAJF,IADD,CA/DD,EAuEC,mCAAUH,UAAV,EACG,CAAEP,MAAF,IAAYK,YAAZ,IACD;AACC,IAAA,SAAS,EAAI,0DAA0DP,KAAO;AAD/E,KAGGO,YAHH,CAFF,EAQC,4BAAC,qBAAD;AACC,IAAA,OAAO,EAAC,GADT;AAEC,kBAAaC,SAFd;AAGC,IAAA,WAAW,EAAGL,WAHf;AAIC,IAAA,KAAK,EAAGP,KAJT;AAKC,IAAA,cAAc,EAAG,CAAE,WAAF,EAAe,aAAf,CALlB;AAMC,IAAA,QAAQ,EAAKiB,QAAF,IACVZ,aAAa,CAAE;AAAEL,MAAAA,KAAK,EAAEiB;AAAT,KAAF;AAPf,IARD,EAkBGhB,SAAS,IACV;AACC,IAAA,IAAI,EAAC,8BADN;AAEC,IAAA,OAAO,EAAKiB,KAAF,IAAaA,KAAK,CAACC,cAAN;AAFxB,KAIG,cAAI,kBAAJ,CAJH,CAnBF,EA0BGb,MAAM,IAAIK,YAAV,IACD;AACC,IAAA,SAAS,EAAI,sDAAsDP,KAAO,EAD3E;AAEC,mBAAc;AAFf,KAIGO,YAJH,CA3BF,CAvED,CADD;AA6GA","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\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';\n\nexport default function PostNavigationLinkEdit( {\n\tattributes: { type, label, showTitle, textAlign, linkLabel, arrow },\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\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\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\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\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<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"]}
@@ -42,6 +42,10 @@ const metadata = {
42
42
  linkLabel: {
43
43
  type: "boolean",
44
44
  "default": false
45
+ },
46
+ arrow: {
47
+ type: "string",
48
+ "default": "none"
45
49
  }
46
50
  },
47
51
  supports: {
@@ -63,7 +67,8 @@ const metadata = {
63
67
  fontSize: true
64
68
  }
65
69
  }
66
- }
70
+ },
71
+ style: "wp-block-post-navigation-link"
67
72
  };
68
73
  exports.metadata = metadata;
69
74
  const {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-navigation-link/index.js"],"names":["name","metadata","settings","edit","variations","init"],"mappings":";;;;;;;;;AAGA;;AAEA;;AACA;;AANA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,UAAU,EAAVA;AAFuB,CAAjB;;;AAKA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEL,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-navigation-link/index.js"],"names":["name","metadata","settings","edit","variations","init"],"mappings":";;;;;;;;;AAGA;;AAEA;;AACA;;AANA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,UAAU,EAAVA;AAFuB,CAAjB;;;AAKA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEL,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -114,21 +114,6 @@ function PostTemplateEdit(_ref2) {
114
114
  page
115
115
  }] = queryContext;
116
116
  const [activeBlockContextId, setActiveBlockContextId] = (0, _element.useState)();
117
- let categorySlug = null;
118
-
119
- if (templateSlug !== null && templateSlug !== void 0 && templateSlug.startsWith('category-')) {
120
- categorySlug = templateSlug.replace('category-', '');
121
- }
122
-
123
- const {
124
- records: categories,
125
- hasResolved: hasResolvedCategories
126
- } = (0, _coreData.useEntityRecords)('taxonomy', 'category', {
127
- context: 'view',
128
- per_page: -1,
129
- _fields: ['id'],
130
- slug: categorySlug
131
- });
132
117
  const {
133
118
  posts,
134
119
  blocks
@@ -145,13 +130,19 @@ function PostTemplateEdit(_ref2) {
145
130
  per_page: -1,
146
131
  context: 'view'
147
132
  });
133
+ const templateCategory = inherit && (templateSlug === null || templateSlug === void 0 ? void 0 : templateSlug.startsWith('category-')) && getEntityRecords('taxonomy', 'category', {
134
+ context: 'view',
135
+ per_page: 1,
136
+ _fields: ['id'],
137
+ slug: templateSlug.replace('category-', '')
138
+ });
148
139
  const query = {
149
140
  offset: perPage ? perPage * (page - 1) + offset : 0,
150
141
  order,
151
142
  orderby: orderBy
152
- };
143
+ }; // There is no need to build the taxQuery if we inherit.
153
144
 
154
- if (taxQuery) {
145
+ if (taxQuery && !inherit) {
155
146
  // We have to build the tax query for the REST API and use as
156
147
  // keys the taxonomies `rest_base` with the `term ids` as values.
157
148
  const builtTaxQuery = Object.entries(taxQuery).reduce((accumulator, _ref3) => {
@@ -208,16 +199,10 @@ function PostTemplateEdit(_ref2) {
208
199
  if (templateSlug !== null && templateSlug !== void 0 && templateSlug.startsWith('archive-')) {
209
200
  query.postType = templateSlug.replace('archive-', '');
210
201
  postType = query.postType;
211
- } else if (!!categorySlug && hasResolvedCategories) {
212
- query.taxQuery = {
213
- category: categories.map(_ref5 => {
214
- let {
215
- id
216
- } = _ref5;
217
- return id;
218
- })
219
- };
220
- taxQuery = query.taxQuery;
202
+ } else if (templateCategory) {
203
+ var _templateCategory$;
204
+
205
+ query.categories = (_templateCategory$ = templateCategory[0]) === null || _templateCategory$ === void 0 ? void 0 : _templateCategory$.id;
221
206
  }
222
207
  } // When we preview Query Loop blocks we should prefer the current
223
208
  // block's postType, which is passed through block context.
@@ -230,7 +215,7 @@ function PostTemplateEdit(_ref2) {
230
215
  }),
231
216
  blocks: getBlocks(clientId)
232
217
  };
233
- }, [perPage, page, offset, order, orderBy, clientId, author, search, postType, exclude, sticky, inherit, templateSlug, taxQuery, parents, restQueryArgs, previewPostType, categories, categorySlug, hasResolvedCategories]);
218
+ }, [perPage, page, offset, order, orderBy, clientId, author, search, postType, exclude, sticky, inherit, templateSlug, taxQuery, parents, restQueryArgs, previewPostType]);
234
219
  const blockContexts = (0, _element.useMemo)(() => posts === null || posts === void 0 ? void 0 : posts.map(post => ({
235
220
  postType: post.type,
236
221
  postId: post.id
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-template/edit.js"],"names":["TEMPLATE","PostTemplateInnerBlocks","innerBlocksProps","className","template","PostTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","style","display","undefined","MemoizedPostTemplateBlockPreview","PostTemplateEdit","clientId","context","query","perPage","offset","postType","order","orderBy","author","search","exclude","sticky","inherit","taxQuery","parents","pages","restQueryArgs","queryContext","page","templateSlug","displayLayout","type","layoutType","columns","previewPostType","activeBlockContextId","categorySlug","startsWith","replace","records","categories","hasResolved","hasResolvedCategories","per_page","_fields","slug","posts","select","getEntityRecords","getTaxonomies","coreStore","getBlocks","blockEditorStore","taxonomies","orderby","builtTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","taxonomy","find","rest_base","keys","length","assign","parent","category","map","id","usedPostType","blockContexts","post","postId","hasLayoutFlex","blockProps","blockContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore, useEntityRecords } from '@wordpress/core-data';\n\nconst TEMPLATE = [\n\t[ 'core/post-title' ],\n\t[ 'core/post-date' ],\n\t[ 'core/post-excerpt' ],\n];\n\nfunction PostTemplateInnerBlocks() {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-post' },\n\t\t{ template: TEMPLATE }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction PostTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: 'wp-block-post',\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\nconst MemoizedPostTemplateBlockPreview = memo( PostTemplateBlockPreview );\n\nexport default function PostTemplateEdit( {\n\tclientId,\n\tcontext: {\n\t\tquery: {\n\t\t\tperPage,\n\t\t\toffset,\n\t\t\tpostType,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttaxQuery,\n\t\t\tparents,\n\t\t\tpages,\n\t\t\t// We gather extra query args to pass to the REST API call.\n\t\t\t// This way extenders of Query Loop can add their own query args,\n\t\t\t// and have accurate previews in the editor.\n\t\t\t// Noting though that these args should either be supported by the\n\t\t\t// REST API or be handled by custom REST filters like `rest_{$this->post_type}_query`.\n\t\t\t...restQueryArgs\n\t\t} = {},\n\t\tqueryContext = [ { page: 1 } ],\n\t\ttemplateSlug,\n\t\tdisplayLayout: { type: layoutType = 'flex', columns = 1 } = {},\n\t\tpreviewPostType,\n\t},\n} ) {\n\tconst [ { page } ] = queryContext;\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\n\tlet categorySlug = null;\n\tif ( templateSlug?.startsWith( 'category-' ) ) {\n\t\tcategorySlug = templateSlug.replace( 'category-', '' );\n\t}\n\tconst { records: categories, hasResolved: hasResolvedCategories } =\n\t\tuseEntityRecords( 'taxonomy', 'category', {\n\t\t\tcontext: 'view',\n\t\t\tper_page: -1,\n\t\t\t_fields: [ 'id' ],\n\t\t\tslug: categorySlug,\n\t\t} );\n\n\tconst { posts, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomies } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst taxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\tconst query = {\n\t\t\t\toffset: perPage ? perPage * ( page - 1 ) + offset : 0,\n\t\t\t\torder,\n\t\t\t\torderby: orderBy,\n\t\t\t};\n\t\t\tif ( taxQuery ) {\n\t\t\t\t// We have to build the tax query for the REST API and use as\n\t\t\t\t// keys the taxonomies `rest_base` with the `term ids` as values.\n\t\t\t\tconst builtTaxQuery = Object.entries( taxQuery ).reduce(\n\t\t\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\t\t\tconst taxonomy = taxonomies?.find(\n\t\t\t\t\t\t\t( { slug } ) => slug === taxonomySlug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( taxonomy?.rest_base ) {\n\t\t\t\t\t\t\taccumulator[ taxonomy?.rest_base ] = terms;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\t\t\t\tif ( !! Object.keys( builtTaxQuery ).length ) {\n\t\t\t\t\tObject.assign( query, builtTaxQuery );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( perPage ) {\n\t\t\t\tquery.per_page = perPage;\n\t\t\t}\n\t\t\tif ( author ) {\n\t\t\t\tquery.author = author;\n\t\t\t}\n\t\t\tif ( search ) {\n\t\t\t\tquery.search = search;\n\t\t\t}\n\t\t\tif ( exclude?.length ) {\n\t\t\t\tquery.exclude = exclude;\n\t\t\t}\n\t\t\tif ( parents?.length ) {\n\t\t\t\tquery.parent = parents;\n\t\t\t}\n\t\t\t// If sticky is not set, it will return all posts in the results.\n\t\t\t// If sticky is set to `only`, it will limit the results to sticky posts only.\n\t\t\t// If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.\n\t\t\tif ( sticky ) {\n\t\t\t\tquery.sticky = sticky === 'only';\n\t\t\t}\n\t\t\t// If `inherit` is truthy, adjust conditionally the query to create a better preview.\n\t\t\tif ( inherit ) {\n\t\t\t\t// Change the post-type if needed.\n\t\t\t\tif ( templateSlug?.startsWith( 'archive-' ) ) {\n\t\t\t\t\tquery.postType = templateSlug.replace( 'archive-', '' );\n\t\t\t\t\tpostType = query.postType;\n\t\t\t\t} else if ( !! categorySlug && hasResolvedCategories ) {\n\t\t\t\t\tquery.taxQuery = {\n\t\t\t\t\t\tcategory: categories.map( ( { id } ) => id ),\n\t\t\t\t\t};\n\t\t\t\t\ttaxQuery = query.taxQuery;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// When we preview Query Loop blocks we should prefer the current\n\t\t\t// block's postType, which is passed through block context.\n\t\t\tconst usedPostType = previewPostType || postType;\n\t\t\treturn {\n\t\t\t\tposts: getEntityRecords( 'postType', usedPostType, {\n\t\t\t\t\t...query,\n\t\t\t\t\t...restQueryArgs,\n\t\t\t\t} ),\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tperPage,\n\t\t\tpage,\n\t\t\toffset,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tclientId,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\tpostType,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttemplateSlug,\n\t\t\ttaxQuery,\n\t\t\tparents,\n\t\t\trestQueryArgs,\n\t\t\tpreviewPostType,\n\t\t\tcategories,\n\t\t\tcategorySlug,\n\t\t\thasResolvedCategories,\n\t\t]\n\t);\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tposts?.map( ( post ) => ( {\n\t\t\t\tpostType: post.type,\n\t\t\t\tpostId: post.id,\n\t\t\t} ) ),\n\t\t[ posts ]\n\t);\n\tconst hasLayoutFlex = layoutType === 'flex' && columns > 1;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'is-flex-container': hasLayoutFlex,\n\t\t\t[ `columns-${ columns }` ]: hasLayoutFlex,\n\t\t} ),\n\t} );\n\n\tif ( ! posts ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! posts.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\t// To avoid flicker when switching active block contexts, a preview is rendered\n\t// for each block context, but the preview for the active block context is hidden.\n\t// This ensures that when it is displayed again, the cached rendering of the\n\t// block preview is used, instead of having to re-render the preview from scratch.\n\treturn (\n\t\t<ul { ...blockProps }>\n\t\t\t{ blockContexts &&\n\t\t\t\tblockContexts.map( ( blockContext ) => (\n\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\tkey={ blockContext.postId }\n\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ blockContext.postId ===\n\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId ) ? (\n\t\t\t\t\t\t\t<PostTemplateInnerBlocks />\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t<MemoizedPostTemplateBlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tblockContextId={ blockContext.postId }\n\t\t\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\tblockContext.postId ===\n\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-template/edit.js"],"names":["TEMPLATE","PostTemplateInnerBlocks","innerBlocksProps","className","template","PostTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","style","display","undefined","MemoizedPostTemplateBlockPreview","PostTemplateEdit","clientId","context","query","perPage","offset","postType","order","orderBy","author","search","exclude","sticky","inherit","taxQuery","parents","pages","restQueryArgs","queryContext","page","templateSlug","displayLayout","type","layoutType","columns","previewPostType","activeBlockContextId","posts","select","getEntityRecords","getTaxonomies","coreStore","getBlocks","blockEditorStore","taxonomies","per_page","templateCategory","startsWith","_fields","slug","replace","orderby","builtTaxQuery","Object","entries","reduce","accumulator","taxonomySlug","terms","taxonomy","find","rest_base","keys","length","assign","parent","categories","id","usedPostType","blockContexts","map","post","postId","hasLayoutFlex","blockProps","blockContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst TEMPLATE = [\n\t[ 'core/post-title' ],\n\t[ 'core/post-date' ],\n\t[ 'core/post-excerpt' ],\n];\n\nfunction PostTemplateInnerBlocks() {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-post' },\n\t\t{ template: TEMPLATE }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction PostTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: 'wp-block-post',\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\nconst MemoizedPostTemplateBlockPreview = memo( PostTemplateBlockPreview );\n\nexport default function PostTemplateEdit( {\n\tclientId,\n\tcontext: {\n\t\tquery: {\n\t\t\tperPage,\n\t\t\toffset,\n\t\t\tpostType,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttaxQuery,\n\t\t\tparents,\n\t\t\tpages,\n\t\t\t// We gather extra query args to pass to the REST API call.\n\t\t\t// This way extenders of Query Loop can add their own query args,\n\t\t\t// and have accurate previews in the editor.\n\t\t\t// Noting though that these args should either be supported by the\n\t\t\t// REST API or be handled by custom REST filters like `rest_{$this->post_type}_query`.\n\t\t\t...restQueryArgs\n\t\t} = {},\n\t\tqueryContext = [ { page: 1 } ],\n\t\ttemplateSlug,\n\t\tdisplayLayout: { type: layoutType = 'flex', columns = 1 } = {},\n\t\tpreviewPostType,\n\t},\n} ) {\n\tconst [ { page } ] = queryContext;\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\tconst { posts, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomies } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst taxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\tconst templateCategory =\n\t\t\t\tinherit &&\n\t\t\t\ttemplateSlug?.startsWith( 'category-' ) &&\n\t\t\t\tgetEntityRecords( 'taxonomy', 'category', {\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t\tper_page: 1,\n\t\t\t\t\t_fields: [ 'id' ],\n\t\t\t\t\tslug: templateSlug.replace( 'category-', '' ),\n\t\t\t\t} );\n\t\t\tconst query = {\n\t\t\t\toffset: perPage ? perPage * ( page - 1 ) + offset : 0,\n\t\t\t\torder,\n\t\t\t\torderby: orderBy,\n\t\t\t};\n\t\t\t// There is no need to build the taxQuery if we inherit.\n\t\t\tif ( taxQuery && ! inherit ) {\n\t\t\t\t// We have to build the tax query for the REST API and use as\n\t\t\t\t// keys the taxonomies `rest_base` with the `term ids` as values.\n\t\t\t\tconst builtTaxQuery = Object.entries( taxQuery ).reduce(\n\t\t\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\t\t\tconst taxonomy = taxonomies?.find(\n\t\t\t\t\t\t\t( { slug } ) => slug === taxonomySlug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( taxonomy?.rest_base ) {\n\t\t\t\t\t\t\taccumulator[ taxonomy?.rest_base ] = terms;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\t\t\t\tif ( !! Object.keys( builtTaxQuery ).length ) {\n\t\t\t\t\tObject.assign( query, builtTaxQuery );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( perPage ) {\n\t\t\t\tquery.per_page = perPage;\n\t\t\t}\n\t\t\tif ( author ) {\n\t\t\t\tquery.author = author;\n\t\t\t}\n\t\t\tif ( search ) {\n\t\t\t\tquery.search = search;\n\t\t\t}\n\t\t\tif ( exclude?.length ) {\n\t\t\t\tquery.exclude = exclude;\n\t\t\t}\n\t\t\tif ( parents?.length ) {\n\t\t\t\tquery.parent = parents;\n\t\t\t}\n\t\t\t// If sticky is not set, it will return all posts in the results.\n\t\t\t// If sticky is set to `only`, it will limit the results to sticky posts only.\n\t\t\t// If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.\n\t\t\tif ( sticky ) {\n\t\t\t\tquery.sticky = sticky === 'only';\n\t\t\t}\n\t\t\t// If `inherit` is truthy, adjust conditionally the query to create a better preview.\n\t\t\tif ( inherit ) {\n\t\t\t\t// Change the post-type if needed.\n\t\t\t\tif ( templateSlug?.startsWith( 'archive-' ) ) {\n\t\t\t\t\tquery.postType = templateSlug.replace( 'archive-', '' );\n\t\t\t\t\tpostType = query.postType;\n\t\t\t\t} else if ( templateCategory ) {\n\t\t\t\t\tquery.categories = templateCategory[ 0 ]?.id;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// When we preview Query Loop blocks we should prefer the current\n\t\t\t// block's postType, which is passed through block context.\n\t\t\tconst usedPostType = previewPostType || postType;\n\t\t\treturn {\n\t\t\t\tposts: getEntityRecords( 'postType', usedPostType, {\n\t\t\t\t\t...query,\n\t\t\t\t\t...restQueryArgs,\n\t\t\t\t} ),\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tperPage,\n\t\t\tpage,\n\t\t\toffset,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tclientId,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\tpostType,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttemplateSlug,\n\t\t\ttaxQuery,\n\t\t\tparents,\n\t\t\trestQueryArgs,\n\t\t\tpreviewPostType,\n\t\t]\n\t);\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tposts?.map( ( post ) => ( {\n\t\t\t\tpostType: post.type,\n\t\t\t\tpostId: post.id,\n\t\t\t} ) ),\n\t\t[ posts ]\n\t);\n\tconst hasLayoutFlex = layoutType === 'flex' && columns > 1;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'is-flex-container': hasLayoutFlex,\n\t\t\t[ `columns-${ columns }` ]: hasLayoutFlex,\n\t\t} ),\n\t} );\n\n\tif ( ! posts ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! posts.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\t// To avoid flicker when switching active block contexts, a preview is rendered\n\t// for each block context, but the preview for the active block context is hidden.\n\t// This ensures that when it is displayed again, the cached rendering of the\n\t// block preview is used, instead of having to re-render the preview from scratch.\n\treturn (\n\t\t<ul { ...blockProps }>\n\t\t\t{ blockContexts &&\n\t\t\t\tblockContexts.map( ( blockContext ) => (\n\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\tkey={ blockContext.postId }\n\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ blockContext.postId ===\n\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId ) ? (\n\t\t\t\t\t\t\t<PostTemplateInnerBlocks />\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t<MemoizedPostTemplateBlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tblockContextId={ blockContext.postId }\n\t\t\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\tblockContext.postId ===\n\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"]}