@wordpress/block-library 9.26.1-next.719a03cbe.0 → 9.27.1-next.46f643fa0.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 (170) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/categories/edit.js +15 -3
  3. package/build/categories/edit.js.map +1 -1
  4. package/build/cover/edit/block-controls.js +4 -2
  5. package/build/cover/edit/block-controls.js.map +1 -1
  6. package/build/cover/edit/index.js +6 -3
  7. package/build/cover/edit/index.js.map +1 -1
  8. package/build/cover/edit/inspector-controls.js +13 -4
  9. package/build/cover/edit/inspector-controls.js.map +1 -1
  10. package/build/cover/index.js +6 -0
  11. package/build/cover/index.js.map +1 -1
  12. package/build/cover/save.js +3 -1
  13. package/build/cover/save.js.map +1 -1
  14. package/build/file/edit.js +2 -1
  15. package/build/file/edit.js.map +1 -1
  16. package/build/latest-posts/edit.js +0 -2
  17. package/build/latest-posts/edit.js.map +1 -1
  18. package/build/media-text/edit.js +2 -2
  19. package/build/media-text/edit.js.map +1 -1
  20. package/build/navigation-link/edit.js +32 -15
  21. package/build/navigation-link/edit.js.map +1 -1
  22. package/build/navigation-link/update-attributes.js +112 -14
  23. package/build/navigation-link/update-attributes.js.map +1 -1
  24. package/build/navigation-submenu/edit.js +19 -2
  25. package/build/navigation-submenu/edit.js.map +1 -1
  26. package/build/paragraph/edit.js +2 -2
  27. package/build/paragraph/edit.js.map +1 -1
  28. package/build/post-content/edit.js +78 -16
  29. package/build/post-content/edit.js.map +1 -1
  30. package/build/post-content/index.js +6 -0
  31. package/build/post-content/index.js.map +1 -1
  32. package/build/post-date/deprecated.js +104 -1
  33. package/build/post-date/deprecated.js.map +1 -1
  34. package/build/post-date/edit.js +32 -32
  35. package/build/post-date/edit.js.map +1 -1
  36. package/build/post-date/index.js +4 -4
  37. package/build/post-date/index.js.map +1 -1
  38. package/build/post-date/variations.js +32 -3
  39. package/build/post-date/variations.js.map +1 -1
  40. package/build/separator/edit.js +5 -30
  41. package/build/separator/edit.js.map +1 -1
  42. package/build/site-tagline/index.js +1 -1
  43. package/build/social-link/variations.js +51 -49
  44. package/build/social-link/variations.js.map +1 -1
  45. package/build/utils/poster-image.js +93 -0
  46. package/build/utils/poster-image.js.map +1 -0
  47. package/build/video/edit.js +7 -6
  48. package/build/video/edit.js.map +1 -1
  49. package/build/video/tracks-editor.js +95 -104
  50. package/build/video/tracks-editor.js.map +1 -1
  51. package/build/video/tracks.js +6 -2
  52. package/build/video/tracks.js.map +1 -1
  53. package/build-module/categories/edit.js +15 -3
  54. package/build-module/categories/edit.js.map +1 -1
  55. package/build-module/cover/edit/block-controls.js +4 -2
  56. package/build-module/cover/edit/block-controls.js.map +1 -1
  57. package/build-module/cover/edit/index.js +6 -3
  58. package/build-module/cover/edit/index.js.map +1 -1
  59. package/build-module/cover/edit/inspector-controls.js +12 -4
  60. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  61. package/build-module/cover/index.js +6 -0
  62. package/build-module/cover/index.js.map +1 -1
  63. package/build-module/cover/save.js +3 -1
  64. package/build-module/cover/save.js.map +1 -1
  65. package/build-module/file/edit.js +2 -1
  66. package/build-module/file/edit.js.map +1 -1
  67. package/build-module/latest-posts/edit.js +0 -2
  68. package/build-module/latest-posts/edit.js.map +1 -1
  69. package/build-module/media-text/edit.js +2 -2
  70. package/build-module/media-text/edit.js.map +1 -1
  71. package/build-module/navigation-link/edit.js +32 -15
  72. package/build-module/navigation-link/edit.js.map +1 -1
  73. package/build-module/navigation-link/update-attributes.js +113 -15
  74. package/build-module/navigation-link/update-attributes.js.map +1 -1
  75. package/build-module/navigation-submenu/edit.js +20 -3
  76. package/build-module/navigation-submenu/edit.js.map +1 -1
  77. package/build-module/paragraph/edit.js +2 -2
  78. package/build-module/paragraph/edit.js.map +1 -1
  79. package/build-module/post-content/edit.js +80 -18
  80. package/build-module/post-content/edit.js.map +1 -1
  81. package/build-module/post-content/index.js +6 -0
  82. package/build-module/post-content/index.js.map +1 -1
  83. package/build-module/post-date/deprecated.js +104 -1
  84. package/build-module/post-date/deprecated.js.map +1 -1
  85. package/build-module/post-date/edit.js +35 -35
  86. package/build-module/post-date/edit.js.map +1 -1
  87. package/build-module/post-date/index.js +4 -4
  88. package/build-module/post-date/index.js.map +1 -1
  89. package/build-module/post-date/variations.js +32 -3
  90. package/build-module/post-date/variations.js.map +1 -1
  91. package/build-module/separator/edit.js +6 -31
  92. package/build-module/separator/edit.js.map +1 -1
  93. package/build-module/site-tagline/index.js +1 -1
  94. package/build-module/social-link/variations.js +52 -50
  95. package/build-module/social-link/variations.js.map +1 -1
  96. package/build-module/utils/poster-image.js +85 -0
  97. package/build-module/utils/poster-image.js.map +1 -0
  98. package/build-module/video/edit.js +7 -6
  99. package/build-module/video/edit.js.map +1 -1
  100. package/build-module/video/tracks-editor.js +96 -105
  101. package/build-module/video/tracks-editor.js.map +1 -1
  102. package/build-module/video/tracks.js +6 -2
  103. package/build-module/video/tracks.js.map +1 -1
  104. package/build-style/archives/editor-rtl.css +0 -4
  105. package/build-style/archives/editor.css +0 -4
  106. package/build-style/editor-rtl.css +67 -18
  107. package/build-style/editor.css +67 -18
  108. package/build-style/file/style-rtl.css +1 -1
  109. package/build-style/file/style.css +1 -1
  110. package/build-style/navigation/editor-rtl.css +6 -6
  111. package/build-style/navigation/editor.css +6 -6
  112. package/build-style/navigation/style-rtl.css +1 -0
  113. package/build-style/navigation/style.css +1 -0
  114. package/build-style/page-list/editor-rtl.css +0 -4
  115. package/build-style/page-list/editor.css +0 -4
  116. package/build-style/style-rtl.css +3 -1
  117. package/build-style/style.css +3 -1
  118. package/build-style/video/editor-rtl.css +0 -4
  119. package/build-style/video/editor.css +0 -4
  120. package/build-style/video/style-rtl.css +1 -0
  121. package/build-style/video/style.css +1 -0
  122. package/package.json +35 -35
  123. package/src/archives/editor.scss +0 -4
  124. package/src/categories/edit.js +13 -1
  125. package/src/comments-pagination/index.php +7 -2
  126. package/src/cover/block.json +6 -0
  127. package/src/cover/edit/block-controls.js +22 -17
  128. package/src/cover/edit/index.js +4 -1
  129. package/src/cover/edit/inspector-controls.js +15 -2
  130. package/src/cover/save.js +2 -0
  131. package/src/editor.scss +1 -0
  132. package/src/file/edit.js +4 -1
  133. package/src/file/style.scss +1 -1
  134. package/src/latest-posts/edit.js +0 -2
  135. package/src/media-text/edit.js +1 -1
  136. package/src/navigation/style.scss +1 -0
  137. package/src/navigation-link/edit.js +28 -16
  138. package/src/navigation-link/test/edit.js +738 -6
  139. package/src/navigation-link/update-attributes.js +125 -12
  140. package/src/navigation-submenu/edit.js +21 -1
  141. package/src/page-list/editor.scss +0 -6
  142. package/src/paragraph/edit.js +2 -2
  143. package/src/post-content/block.json +6 -0
  144. package/src/post-content/edit.js +71 -19
  145. package/src/post-content/index.php +11 -4
  146. package/src/post-date/block.json +4 -4
  147. package/src/post-date/deprecated.js +104 -1
  148. package/src/post-date/edit.js +74 -86
  149. package/src/post-date/index.php +55 -28
  150. package/src/post-date/variations.js +37 -3
  151. package/src/post-featured-image/index.php +3 -2
  152. package/src/separator/edit.js +8 -43
  153. package/src/site-tagline/block.json +1 -1
  154. package/src/social-link/README.md +21 -0
  155. package/src/social-link/index.php +49 -49
  156. package/src/social-link/variations.js +51 -49
  157. package/src/utils/poster-image.js +131 -0
  158. package/src/utils/poster-image.scss +75 -0
  159. package/src/video/edit.js +8 -6
  160. package/src/video/editor.scss +0 -6
  161. package/src/video/index.php +91 -0
  162. package/src/video/style.native.scss +1 -0
  163. package/src/video/style.scss +1 -0
  164. package/src/video/tracks-editor.js +93 -103
  165. package/src/video/tracks.js +2 -1
  166. package/build/video/poster-image.js +0 -81
  167. package/build/video/poster-image.js.map +0 -1
  168. package/build-module/video/poster-image.js +0 -74
  169. package/build-module/video/poster-image.js.map +0 -1
  170. package/src/video/poster-image.js +0 -86
@@ -2,7 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
- import { useBlockProps, useInnerBlocksProps, RecursionProvider, useHasRecursion, Warning, __experimentalUseBlockPreview as useBlockPreview } from '@wordpress/block-editor';
5
+ import { InspectorControls, useBlockProps, useInnerBlocksProps, RecursionProvider, useHasRecursion, Warning, privateApis as blockEditorPrivateApis, __experimentalUseBlockPreview as useBlockPreview } from '@wordpress/block-editor';
6
6
  import { parse } from '@wordpress/blocks';
7
7
  import { useEntityProp, useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
8
8
  import { useSelect } from '@wordpress/data';
@@ -12,13 +12,18 @@ import { useMemo } from '@wordpress/element';
12
12
  * Internal dependencies
13
13
  */
14
14
  import { useCanEditEntity } from '../utils/hooks';
15
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ import { unlock } from '../lock-unlock';
16
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
+ const {
18
+ HTMLElementControl
19
+ } = unlock(blockEditorPrivateApis);
16
20
  function ReadOnlyContent({
17
21
  parentLayout,
18
22
  layoutClassNames,
19
23
  userCanEdit,
20
24
  postType,
21
- postId
25
+ postId,
26
+ tagName: TagName = 'div'
22
27
  }) {
23
28
  const [,, content] = useEntityProp('postType', postType, 'content', postId);
24
29
  const blockProps = useBlockProps({
@@ -45,12 +50,12 @@ function ReadOnlyContent({
45
50
  ...blockPreviewProps
46
51
  });
47
52
  }
48
- return content?.protected ? /*#__PURE__*/_jsx("div", {
53
+ return content?.protected ? /*#__PURE__*/_jsx(TagName, {
49
54
  ...blockProps,
50
55
  children: /*#__PURE__*/_jsx(Warning, {
51
56
  children: __('This content is password protected.')
52
57
  })
53
- }) : /*#__PURE__*/_jsx("div", {
58
+ }) : /*#__PURE__*/_jsx(TagName, {
54
59
  ...blockProps,
55
60
  dangerouslySetInnerHTML: {
56
61
  __html: content?.rendered
@@ -58,7 +63,8 @@ function ReadOnlyContent({
58
63
  });
59
64
  }
60
65
  function EditableContent({
61
- context = {}
66
+ context = {},
67
+ tagName: TagName = 'div'
62
68
  }) {
63
69
  const {
64
70
  postType,
@@ -80,7 +86,7 @@ function EditableContent({
80
86
  onChange,
81
87
  template: !hasInnerBlocks ? initialInnerBlocks : undefined
82
88
  });
83
- return /*#__PURE__*/_jsx("div", {
89
+ return /*#__PURE__*/_jsx(TagName, {
84
90
  ...props
85
91
  });
86
92
  }
@@ -91,7 +97,8 @@ function Content(props) {
91
97
  postType,
92
98
  postId
93
99
  } = {},
94
- layoutClassNames
100
+ layoutClassNames,
101
+ tagName
95
102
  } = props;
96
103
  const userCanEdit = useCanEditEntity('postType', postType, postId);
97
104
  if (userCanEdit === undefined) {
@@ -106,7 +113,8 @@ function Content(props) {
106
113
  layoutClassNames: layoutClassNames,
107
114
  userCanEdit: userCanEdit,
108
115
  postType: postType,
109
- postId: postId
116
+ postId: postId,
117
+ tagName: tagName
110
118
  });
111
119
  }
112
120
  function Placeholder({
@@ -135,8 +143,51 @@ function RecursionError() {
135
143
  })
136
144
  });
137
145
  }
146
+
147
+ /**
148
+ * Render inspector controls for the PostContent block.
149
+ *
150
+ * @param {Object} props Component props.
151
+ * @param {string} props.tagName The HTML tag name.
152
+ * @param {Function} props.onSelectTagName onChange function for the SelectControl.
153
+ * @param {string} props.clientId The client ID of the current block.
154
+ *
155
+ * @return {JSX.Element} The control group.
156
+ */
157
+ function PostContentEditControls({
158
+ tagName,
159
+ onSelectTagName,
160
+ clientId
161
+ }) {
162
+ return /*#__PURE__*/_jsx(InspectorControls, {
163
+ group: "advanced",
164
+ children: /*#__PURE__*/_jsx(HTMLElementControl, {
165
+ tagName: tagName,
166
+ onChange: onSelectTagName,
167
+ clientId: clientId,
168
+ options: [{
169
+ label: __('Default (<div>)'),
170
+ value: 'div'
171
+ }, {
172
+ label: '<main>',
173
+ value: 'main'
174
+ }, {
175
+ label: '<section>',
176
+ value: 'section'
177
+ }, {
178
+ label: '<article>',
179
+ value: 'article'
180
+ }]
181
+ })
182
+ });
183
+ }
138
184
  export default function PostContentEdit({
139
185
  context,
186
+ attributes: {
187
+ tagName = 'div'
188
+ },
189
+ setAttributes,
190
+ clientId,
140
191
  __unstableLayoutClassNames: layoutClassNames,
141
192
  __unstableParentLayout: parentLayout
142
193
  }) {
@@ -148,15 +199,26 @@ export default function PostContentEdit({
148
199
  if (contextPostId && contextPostType && hasAlreadyRendered) {
149
200
  return /*#__PURE__*/_jsx(RecursionError, {});
150
201
  }
151
- return /*#__PURE__*/_jsx(RecursionProvider, {
152
- uniqueId: contextPostId,
153
- children: contextPostId && contextPostType ? /*#__PURE__*/_jsx(Content, {
154
- context: context,
155
- parentLayout: parentLayout,
156
- layoutClassNames: layoutClassNames
157
- }) : /*#__PURE__*/_jsx(Placeholder, {
158
- layoutClassNames: layoutClassNames
159
- })
202
+ const handleSelectTagName = value => {
203
+ setAttributes({
204
+ tagName: value
205
+ });
206
+ };
207
+ return /*#__PURE__*/_jsxs(_Fragment, {
208
+ children: [/*#__PURE__*/_jsx(PostContentEditControls, {
209
+ tagName: tagName,
210
+ onSelectTagName: handleSelectTagName,
211
+ clientId: clientId
212
+ }), /*#__PURE__*/_jsx(RecursionProvider, {
213
+ uniqueId: contextPostId,
214
+ children: contextPostId && contextPostType ? /*#__PURE__*/_jsx(Content, {
215
+ context: context,
216
+ parentLayout: parentLayout,
217
+ layoutClassNames: layoutClassNames
218
+ }) : /*#__PURE__*/_jsx(Placeholder, {
219
+ layoutClassNames: layoutClassNames
220
+ })
221
+ })]
160
222
  });
161
223
  }
162
224
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","useBlockProps","useInnerBlocksProps","RecursionProvider","useHasRecursion","Warning","__experimentalUseBlockPreview","useBlockPreview","parse","useEntityProp","useEntityBlockEditor","store","coreStore","useSelect","useMemo","useCanEditEntity","jsx","_jsx","jsxs","_jsxs","ReadOnlyContent","parentLayout","layoutClassNames","userCanEdit","postType","postId","content","blockProps","className","blocks","raw","blockPreviewProps","props","layout","protected","children","dangerouslySetInnerHTML","__html","rendered","EditableContent","context","onInput","onChange","id","entityRecord","select","getEntityRecord","hasInnerBlocks","length","initialInnerBlocks","value","template","undefined","Content","queryId","isDescendentOfQueryLoop","Number","isFinite","isEditable","Placeholder","RecursionError","PostContentEdit","__unstableLayoutClassNames","__unstableParentLayout","contextPostId","contextPostType","hasAlreadyRendered","uniqueId"],"sources":["@wordpress/block-library/src/post-content/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tWarning,\n\t__experimentalUseBlockPreview as useBlockPreview,\n} from '@wordpress/block-editor';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tuseEntityProp,\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nfunction ReadOnlyContent( {\n\tparentLayout,\n\tlayoutClassNames,\n\tuserCanEdit,\n\tpostType,\n\tpostId,\n} ) {\n\tconst [ , , content ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\tconst blockProps = useBlockProps( { className: layoutClassNames } );\n\tconst blocks = useMemo( () => {\n\t\treturn content?.raw ? parse( content.raw ) : [];\n\t}, [ content?.raw ] );\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: blockProps,\n\t\tlayout: parentLayout,\n\t} );\n\n\tif ( userCanEdit ) {\n\t\t/*\n\t\t * Rendering the block preview using the raw content blocks allows for\n\t\t * block support styles to be generated and applied by the editor.\n\t\t *\n\t\t * The preview using the raw blocks can only be presented to users with\n\t\t * edit permissions for the post to prevent potential exposure of private\n\t\t * block content.\n\t\t */\n\t\treturn <div { ...blockPreviewProps }></div>;\n\t}\n\n\treturn content?.protected ? (\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( { context = {} } ) {\n\tconst { postType, postId } = context;\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpostType,\n\t\t{ id: postId }\n\t);\n\n\tconst entityRecord = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst hasInnerBlocks = !! entityRecord?.content?.raw || blocks?.length;\n\n\tconst initialInnerBlocks = [ [ 'core/paragraph' ] ];\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\ttemplate: ! hasInnerBlocks ? initialInnerBlocks : undefined,\n\t\t}\n\t);\n\treturn <div { ...props } />;\n}\n\nfunction Content( props ) {\n\tconst { context: { queryId, postType, postId } = {}, layoutClassNames } =\n\t\tprops;\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tif ( userCanEdit === undefined ) {\n\t\treturn null;\n\t}\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\n\treturn isEditable ? (\n\t\t<EditableContent { ...props } />\n\t) : (\n\t\t<ReadOnlyContent\n\t\t\tparentLayout={ props.parentLayout }\n\t\t\tlayoutClassNames={ layoutClassNames }\n\t\t\tuserCanEdit={ userCanEdit }\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\n\t\t/>\n\t);\n}\n\nfunction Placeholder( { layoutClassNames } ) {\n\tconst blockProps = useBlockProps( { className: layoutClassNames } );\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 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 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( {\n\tcontext,\n\t__unstableLayoutClassNames: layoutClassNames,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst { postId: contextPostId, postType: contextPostType } = context;\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\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\tlayoutClassNames={ layoutClassNames }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Placeholder layoutClassNames={ layoutClassNames } />\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","InspectorControls","useBlockProps","useInnerBlocksProps","RecursionProvider","useHasRecursion","Warning","privateApis","blockEditorPrivateApis","__experimentalUseBlockPreview","useBlockPreview","parse","useEntityProp","useEntityBlockEditor","store","coreStore","useSelect","useMemo","useCanEditEntity","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","HTMLElementControl","ReadOnlyContent","parentLayout","layoutClassNames","userCanEdit","postType","postId","tagName","TagName","content","blockProps","className","blocks","raw","blockPreviewProps","props","layout","protected","children","dangerouslySetInnerHTML","__html","rendered","EditableContent","context","onInput","onChange","id","entityRecord","select","getEntityRecord","hasInnerBlocks","length","initialInnerBlocks","value","template","undefined","Content","queryId","isDescendentOfQueryLoop","Number","isFinite","isEditable","Placeholder","RecursionError","PostContentEditControls","onSelectTagName","clientId","group","options","label","PostContentEdit","attributes","setAttributes","__unstableLayoutClassNames","__unstableParentLayout","contextPostId","contextPostType","hasAlreadyRendered","handleSelectTagName","uniqueId"],"sources":["@wordpress/block-library/src/post-content/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\t__experimentalUseBlockPreview as useBlockPreview,\n} from '@wordpress/block-editor';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tuseEntityProp,\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nfunction ReadOnlyContent( {\n\tparentLayout,\n\tlayoutClassNames,\n\tuserCanEdit,\n\tpostType,\n\tpostId,\n\ttagName: TagName = 'div',\n} ) {\n\tconst [ , , content ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\tconst blockProps = useBlockProps( { className: layoutClassNames } );\n\tconst blocks = useMemo( () => {\n\t\treturn content?.raw ? parse( content.raw ) : [];\n\t}, [ content?.raw ] );\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: blockProps,\n\t\tlayout: parentLayout,\n\t} );\n\n\tif ( userCanEdit ) {\n\t\t/*\n\t\t * Rendering the block preview using the raw content blocks allows for\n\t\t * block support styles to be generated and applied by the editor.\n\t\t *\n\t\t * The preview using the raw blocks can only be presented to users with\n\t\t * edit permissions for the post to prevent potential exposure of private\n\t\t * block content.\n\t\t */\n\t\treturn <div { ...blockPreviewProps }></div>;\n\t}\n\n\treturn content?.protected ? (\n\t\t<TagName { ...blockProps }>\n\t\t\t<Warning>{ __( 'This content is password protected.' ) }</Warning>\n\t\t</TagName>\n\t) : (\n\t\t<TagName\n\t\t\t{ ...blockProps }\n\t\t\tdangerouslySetInnerHTML={ { __html: content?.rendered } }\n\t\t></TagName>\n\t);\n}\n\nfunction EditableContent( { context = {}, tagName: TagName = 'div' } ) {\n\tconst { postType, postId } = context;\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpostType,\n\t\t{ id: postId }\n\t);\n\n\tconst entityRecord = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst hasInnerBlocks = !! entityRecord?.content?.raw || blocks?.length;\n\n\tconst initialInnerBlocks = [ [ 'core/paragraph' ] ];\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\ttemplate: ! hasInnerBlocks ? initialInnerBlocks : undefined,\n\t\t}\n\t);\n\treturn <TagName { ...props } />;\n}\n\nfunction Content( props ) {\n\tconst {\n\t\tcontext: { queryId, postType, postId } = {},\n\t\tlayoutClassNames,\n\t\ttagName,\n\t} = props;\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tif ( userCanEdit === undefined ) {\n\t\treturn null;\n\t}\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\n\treturn isEditable ? (\n\t\t<EditableContent { ...props } />\n\t) : (\n\t\t<ReadOnlyContent\n\t\t\tparentLayout={ props.parentLayout }\n\t\t\tlayoutClassNames={ layoutClassNames }\n\t\t\tuserCanEdit={ userCanEdit }\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\n\t\t\ttagName={ tagName }\n\t\t/>\n\t);\n}\n\nfunction Placeholder( { layoutClassNames } ) {\n\tconst blockProps = useBlockProps( { className: layoutClassNames } );\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 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 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\n/**\n * Render inspector controls for the PostContent block.\n *\n * @param {Object} props Component props.\n * @param {string} props.tagName The HTML tag name.\n * @param {Function} props.onSelectTagName onChange function for the SelectControl.\n * @param {string} props.clientId The client ID of the current block.\n *\n * @return {JSX.Element} The control group.\n */\nfunction PostContentEditControls( { tagName, onSelectTagName, clientId } ) {\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<HTMLElementControl\n\t\t\t\ttagName={ tagName }\n\t\t\t\tonChange={ onSelectTagName }\n\t\t\t\tclientId={ clientId }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default function PostContentEdit( {\n\tcontext,\n\tattributes: { tagName = 'div' },\n\tsetAttributes,\n\tclientId,\n\t__unstableLayoutClassNames: layoutClassNames,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst { postId: contextPostId, postType: contextPostType } = context;\n\tconst hasAlreadyRendered = useHasRecursion( contextPostId );\n\n\tif ( contextPostId && contextPostType && hasAlreadyRendered ) {\n\t\treturn <RecursionError />;\n\t}\n\n\tconst handleSelectTagName = ( value ) => {\n\t\tsetAttributes( { tagName: value } );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<PostContentEditControls\n\t\t\t\ttagName={ tagName }\n\t\t\t\tonSelectTagName={ handleSelectTagName }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t<RecursionProvider uniqueId={ contextPostId }>\n\t\t\t\t{ contextPostId && contextPostType ? (\n\t\t\t\t\t<Content\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\t\tlayoutClassNames={ layoutClassNames }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<Placeholder layoutClassNames={ layoutClassNames } />\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,12 @@ const metadata = {
16
16
  description: "Displays the contents of a post or page.",
17
17
  textdomain: "default",
18
18
  usesContext: ["postId", "postType", "queryId"],
19
+ attributes: {
20
+ tagName: {
21
+ type: "string",
22
+ "default": "div"
23
+ }
24
+ },
19
25
  example: {
20
26
  viewportWidth: 350
21
27
  },
@@ -1 +1 @@
1
- {"version":3,"names":["postContent","icon","initBlock","metadata","$schema","apiVersion","name","title","category","description","textdomain","usesContext","example","viewportWidth","supports","align","html","layout","background","backgroundImage","backgroundSize","__experimentalDefaultControls","dimensions","minHeight","spacing","blockGap","padding","margin","color","gradients","heading","link","text","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","__experimentalBorder","radius","width","style","editorStyle","edit","settings","init"],"sources":["@wordpress/block-library/src/post-content/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postContent as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,IAAI,QAAQ,kBAAkB;;AAEtD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,OAAA;IAAAC,aAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,UAAA;MAAAC,eAAA;MAAAC,cAAA;MAAAC,6BAAA;QAAAF,eAAA;MAAA;IAAA;IAAAG,UAAA;MAAAC,SAAA;IAAA;IAAAC,OAAA;MAAAC,QAAA;MAAAC,OAAA;MAAAC,MAAA;MAAAN,6BAAA;QAAAM,MAAA;QAAAD,OAAA;MAAA;IAAA;IAAAE,KAAA;MAAAC,SAAA;MAAAC,OAAA;MAAAC,IAAA;MAAAV,6BAAA;QAAAH,UAAA;QAAAc,IAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAApB,6BAAA;QAAAa,QAAA;MAAA;IAAA;IAAAQ,oBAAA;MAAAC,MAAA;MAAAf,KAAA;MAAAgB,KAAA;MAAAC,KAAA;MAAAxB,6BAAA;QAAAsB,MAAA;QAAAf,KAAA;QAAAgB,KAAA;QAAAC,KAAA;MAAA;IAAA;EAAA;EAAAA,KAAA;EAAAC,WAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAEzC;AAAK,CAAC,GAAGH,QAAQ;AACzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAM0C,QAAQ,GAAG;EACvB/C,IAAI;EACJ8C;AACD,CAAC;AAED,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAM/C,SAAS,CAAE;EAAEI,IAAI;EAAEH,QAAQ;EAAE6C;AAAS,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["postContent","icon","initBlock","metadata","$schema","apiVersion","name","title","category","description","textdomain","usesContext","attributes","tagName","type","example","viewportWidth","supports","align","html","layout","background","backgroundImage","backgroundSize","__experimentalDefaultControls","dimensions","minHeight","spacing","blockGap","padding","margin","color","gradients","heading","link","text","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","__experimentalBorder","radius","width","style","editorStyle","edit","settings","init"],"sources":["@wordpress/block-library/src/post-content/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postContent as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,IAAI,QAAQ,kBAAkB;;AAEtD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,UAAA;IAAAC,OAAA;MAAAC,IAAA;MAAA;IAAA;EAAA;EAAAC,OAAA;IAAAC,aAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,UAAA;MAAAC,eAAA;MAAAC,cAAA;MAAAC,6BAAA;QAAAF,eAAA;MAAA;IAAA;IAAAG,UAAA;MAAAC,SAAA;IAAA;IAAAC,OAAA;MAAAC,QAAA;MAAAC,OAAA;MAAAC,MAAA;MAAAN,6BAAA;QAAAM,MAAA;QAAAD,OAAA;MAAA;IAAA;IAAAE,KAAA;MAAAC,SAAA;MAAAC,OAAA;MAAAC,IAAA;MAAAV,6BAAA;QAAAH,UAAA;QAAAc,IAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAApB,6BAAA;QAAAa,QAAA;MAAA;IAAA;IAAAQ,oBAAA;MAAAC,MAAA;MAAAf,KAAA;MAAAgB,KAAA;MAAAC,KAAA;MAAAxB,6BAAA;QAAAsB,MAAA;QAAAf,KAAA;QAAAgB,KAAA;QAAAC,KAAA;MAAA;IAAA;EAAA;EAAAA,KAAA;EAAAC,WAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE5C;AAAK,CAAC,GAAGH,QAAQ;AACzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAM6C,QAAQ,GAAG;EACvBlD,IAAI;EACJiD;AACD,CAAC;AAED,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAMlD,SAAS,CAAE;EAAEI,IAAI;EAAEH,QAAQ;EAAEgD;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -1,7 +1,110 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
1
6
  /**
2
7
  * Internal dependencies
3
8
  */
4
9
  import migrateFontFamily from '../utils/migrate-font-family';
10
+ const v2 = {
11
+ attributes: {
12
+ textAlign: {
13
+ type: 'string'
14
+ },
15
+ format: {
16
+ type: 'string'
17
+ },
18
+ isLink: {
19
+ type: 'boolean',
20
+ default: false,
21
+ role: 'content'
22
+ },
23
+ displayType: {
24
+ type: 'string',
25
+ default: 'date'
26
+ }
27
+ },
28
+ supports: {
29
+ html: false,
30
+ color: {
31
+ gradients: true,
32
+ link: true,
33
+ __experimentalDefaultControls: {
34
+ background: true,
35
+ text: true,
36
+ link: true
37
+ }
38
+ },
39
+ spacing: {
40
+ margin: true,
41
+ padding: true
42
+ },
43
+ typography: {
44
+ fontSize: true,
45
+ lineHeight: true,
46
+ __experimentalFontFamily: true,
47
+ __experimentalFontWeight: true,
48
+ __experimentalFontStyle: true,
49
+ __experimentalTextTransform: true,
50
+ __experimentalTextDecoration: true,
51
+ __experimentalLetterSpacing: true,
52
+ __experimentalDefaultControls: {
53
+ fontSize: true
54
+ }
55
+ },
56
+ interactivity: {
57
+ clientNavigation: true
58
+ },
59
+ __experimentalBorder: {
60
+ radius: true,
61
+ color: true,
62
+ width: true,
63
+ style: true,
64
+ __experimentalDefaultControls: {
65
+ radius: true,
66
+ color: true,
67
+ width: true,
68
+ style: true
69
+ }
70
+ }
71
+ },
72
+ save() {
73
+ return null;
74
+ },
75
+ migrate({
76
+ className,
77
+ displayType,
78
+ metadata,
79
+ ...otherAttributes
80
+ }) {
81
+ if (displayType === 'date' || displayType === 'modified') {
82
+ if (displayType === 'modified') {
83
+ className = clsx(className, 'wp-block-post-date__modified-date');
84
+ }
85
+ return {
86
+ ...otherAttributes,
87
+ className,
88
+ metadata: {
89
+ ...metadata,
90
+ bindings: {
91
+ datetime: {
92
+ source: 'core/post-data',
93
+ args: {
94
+ key: displayType
95
+ }
96
+ }
97
+ }
98
+ }
99
+ };
100
+ }
101
+ },
102
+ isEligible(attributes) {
103
+ // If there's neither an explicit `datetime` attribute nor a block binding for that attribute,
104
+ // then we're dealing with an old version of the block.
105
+ return !attributes.datetime && !attributes?.metadata?.bindings?.datetime;
106
+ }
107
+ };
5
108
  const v1 = {
6
109
  attributes: {
7
110
  textAlign: {
@@ -50,5 +153,5 @@ const v1 = {
50
153
  *
51
154
  * See block-deprecation.md
52
155
  */
53
- export default [v1];
156
+ export default [v2, v1];
54
157
  //# sourceMappingURL=deprecated.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["migrateFontFamily","v1","attributes","textAlign","type","format","isLink","default","supports","html","color","gradients","link","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalLetterSpacing","save","migrate","isEligible","style","fontFamily"],"sources":["@wordpress/block-library/src/post-date/deprecated.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v1 = {\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tformat: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v1 ];\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,iBAAiB,MAAM,8BAA8B;AAE5D,MAAMC,EAAE,GAAG;EACVC,UAAU,EAAE;IACXC,SAAS,EAAE;MACVC,IAAI,EAAE;IACP,CAAC;IACDC,MAAM,EAAE;MACPD,IAAI,EAAE;IACP,CAAC;IACDE,MAAM,EAAE;MACPF,IAAI,EAAE,SAAS;MACfG,OAAO,EAAE;IACV;EACD,CAAC;EACDC,QAAQ,EAAE;IACTC,IAAI,EAAE,KAAK;IACXC,KAAK,EAAE;MACNC,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE;IACP,CAAC;IACDC,UAAU,EAAE;MACXC,QAAQ,EAAE,IAAI;MACdC,UAAU,EAAE,IAAI;MAChBC,wBAAwB,EAAE,IAAI;MAC9BC,wBAAwB,EAAE,IAAI;MAC9BC,uBAAuB,EAAE,IAAI;MAC7BC,2BAA2B,EAAE,IAAI;MACjCC,2BAA2B,EAAE;IAC9B;EACD,CAAC;EACDC,IAAIA,CAAA,EAAG;IACN,OAAO,IAAI;EACZ,CAAC;EACDC,OAAO,EAAEtB,iBAAiB;EAC1BuB,UAAUA,CAAE;IAAEC;EAAM,CAAC,EAAG;IACvB,OAAOA,KAAK,EAAEX,UAAU,EAAEY,UAAU;EACrC;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,CAAExB,EAAE,CAAE","ignoreList":[]}
1
+ {"version":3,"names":["clsx","migrateFontFamily","v2","attributes","textAlign","type","format","isLink","default","role","displayType","supports","html","color","gradients","link","__experimentalDefaultControls","background","text","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","__experimentalBorder","radius","width","style","save","migrate","className","metadata","otherAttributes","bindings","datetime","source","args","key","isEligible","v1","fontFamily"],"sources":["@wordpress/block-library/src/post-date/deprecated.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v2 = {\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tformat: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\trole: 'content',\n\t\t},\n\t\tdisplayType: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'date',\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t\tlink: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tinteractivity: {\n\t\t\tclientNavigation: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\tcolor: true,\n\t\t\twidth: true,\n\t\t\tstyle: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t\tcolor: true,\n\t\t\t\twidth: true,\n\t\t\t\tstyle: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate( { className, displayType, metadata, ...otherAttributes } ) {\n\t\tif ( displayType === 'date' || displayType === 'modified' ) {\n\t\t\tif ( displayType === 'modified' ) {\n\t\t\t\tclassName = clsx(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'wp-block-post-date__modified-date'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...otherAttributes,\n\t\t\t\tclassName,\n\t\t\t\tmetadata: {\n\t\t\t\t\t...metadata,\n\t\t\t\t\tbindings: {\n\t\t\t\t\t\tdatetime: {\n\t\t\t\t\t\t\tsource: 'core/post-data',\n\t\t\t\t\t\t\targs: { key: displayType },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t},\n\tisEligible( attributes ) {\n\t\t// If there's neither an explicit `datetime` attribute nor a block binding for that attribute,\n\t\t// then we're dealing with an old version of the block.\n\t\treturn (\n\t\t\t! attributes.datetime && ! attributes?.metadata?.bindings?.datetime\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tformat: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v2, v1 ];\n"],"mappings":"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","ignoreList":[]}
@@ -7,14 +7,14 @@ import clsx from 'clsx';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { useEntityProp, store as coreStore } from '@wordpress/core-data';
10
- import { useMemo, useState } from '@wordpress/element';
10
+ import { useEffect, useMemo, useState } from '@wordpress/element';
11
11
  import { dateI18n, humanTimeDiff, getSettings as getDateSettings } from '@wordpress/date';
12
- import { AlignmentControl, BlockControls, InspectorControls, useBlockProps, __experimentalDateFormatPicker as DateFormatPicker, __experimentalPublishDateTimePicker as PublishDateTimePicker } from '@wordpress/block-editor';
12
+ import { AlignmentControl, BlockControls, InspectorControls, store as blockEditorStore, useBlockProps, __experimentalDateFormatPicker as DateFormatPicker, __experimentalPublishDateTimePicker as PublishDateTimePicker } from '@wordpress/block-editor';
13
13
  import { Dropdown, ToolbarGroup, ToolbarButton, ToggleControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
14
14
  import { __, _x, sprintf } from '@wordpress/i18n';
15
15
  import { edit } from '@wordpress/icons';
16
16
  import { DOWN } from '@wordpress/keycodes';
17
- import { useSelect } from '@wordpress/data';
17
+ import { useSelect, useDispatch } from '@wordpress/data';
18
18
 
19
19
  /**
20
20
  * Internal dependencies
@@ -23,22 +23,22 @@ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
23
23
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
24
24
  export default function PostDateEdit({
25
25
  attributes: {
26
+ datetime,
26
27
  textAlign,
27
28
  format,
28
29
  isLink,
29
- displayType
30
+ metadata
30
31
  },
31
32
  context: {
32
- postId,
33
33
  postType: postTypeSlug,
34
34
  queryId
35
35
  },
36
36
  setAttributes
37
37
  }) {
38
+ const displayType = metadata?.bindings?.datetime?.source === 'core/post-data' && metadata?.bindings?.datetime?.args?.key;
38
39
  const blockProps = useBlockProps({
39
40
  className: clsx({
40
- [`has-text-align-${textAlign}`]: textAlign,
41
- [`wp-block-post-date__modified-date`]: displayType === 'modified'
41
+ [`has-text-align-${textAlign}`]: textAlign
42
42
  })
43
43
  });
44
44
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
@@ -50,19 +50,32 @@ export default function PostDateEdit({
50
50
  const popoverProps = useMemo(() => ({
51
51
  anchor: popoverAnchor
52
52
  }), [popoverAnchor]);
53
+ const {
54
+ __unstableMarkNextChangeAsNotPersistent
55
+ } = useDispatch(blockEditorStore);
56
+
57
+ // We need to set the datetime to a default value upon first loading
58
+ // to discern the block from its legacy version (which would default
59
+ // to the containing post's publish date).
60
+ useEffect(() => {
61
+ if (datetime === undefined) {
62
+ __unstableMarkNextChangeAsNotPersistent();
63
+ setAttributes({
64
+ datetime: new Date()
65
+ });
66
+ }
67
+ }, [datetime]);
53
68
  const isDescendentOfQueryLoop = Number.isFinite(queryId);
54
69
  const dateSettings = getDateSettings();
55
70
  const [siteFormat = dateSettings.formats.date] = useEntityProp('root', 'site', 'date_format');
56
71
  const [siteTimeFormat = dateSettings.formats.time] = useEntityProp('root', 'site', 'time_format');
57
- const [date, setDate] = useEntityProp('postType', postTypeSlug, displayType, postId);
58
72
  const postType = useSelect(select => postTypeSlug ? select(coreStore).getPostType(postTypeSlug) : null, [postTypeSlug]);
59
- const dateLabel = displayType === 'date' ? __('Post Date') : __('Post Modified Date');
60
- let postDate = date ? /*#__PURE__*/_jsx("time", {
61
- dateTime: dateI18n('c', date),
73
+ let postDate = /*#__PURE__*/_jsx("time", {
74
+ dateTime: dateI18n('c', datetime),
62
75
  ref: setPopoverAnchor,
63
- children: format === 'human-diff' ? humanTimeDiff(date) : dateI18n(format || siteFormat, date)
64
- }) : dateLabel;
65
- if (isLink && date) {
76
+ children: format === 'human-diff' ? humanTimeDiff(datetime) : dateI18n(format || siteFormat, datetime)
77
+ });
78
+ if (isLink && datetime) {
66
79
  postDate = /*#__PURE__*/_jsx("a", {
67
80
  href: "#post-date-pseudo-link",
68
81
  onClick: event => event.preventDefault(),
@@ -79,14 +92,17 @@ export default function PostDateEdit({
79
92
  textAlign: nextAlign
80
93
  });
81
94
  }
82
- }), date && displayType === 'date' && !isDescendentOfQueryLoop && /*#__PURE__*/_jsx(ToolbarGroup, {
95
+ }), displayType !== 'modified' && !isDescendentOfQueryLoop && /*#__PURE__*/_jsx(ToolbarGroup, {
83
96
  children: /*#__PURE__*/_jsx(Dropdown, {
84
97
  popoverProps: popoverProps,
85
98
  renderContent: ({
86
99
  onClose
87
100
  }) => /*#__PURE__*/_jsx(PublishDateTimePicker, {
88
- currentDate: date,
89
- onChange: setDate,
101
+ title: displayType === 'date' ? __('Publish Date') : __('Date'),
102
+ currentDate: datetime,
103
+ onChange: newDatetime => setAttributes({
104
+ datetime: newDatetime
105
+ }),
90
106
  is12Hour: is12HourFormat(siteTimeFormat),
91
107
  onClose: onClose,
92
108
  dateOrder: /* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */
@@ -117,9 +133,9 @@ export default function PostDateEdit({
117
133
  label: __('Settings'),
118
134
  resetAll: () => {
119
135
  setAttributes({
136
+ datetime: undefined,
120
137
  format: undefined,
121
- isLink: false,
122
- displayType: 'date'
138
+ isLink: false
123
139
  });
124
140
  },
125
141
  dropdownMenuProps: dropdownMenuProps,
@@ -156,22 +172,6 @@ export default function PostDateEdit({
156
172
  }),
157
173
  checked: isLink
158
174
  })
159
- }), /*#__PURE__*/_jsx(ToolsPanelItem, {
160
- hasValue: () => displayType !== 'date',
161
- label: __('Display last modified date'),
162
- onDeselect: () => setAttributes({
163
- displayType: 'date'
164
- }),
165
- isShownByDefault: true,
166
- children: /*#__PURE__*/_jsx(ToggleControl, {
167
- __nextHasNoMarginBottom: true,
168
- label: __('Display last modified date'),
169
- onChange: value => setAttributes({
170
- displayType: value ? 'modified' : 'date'
171
- }),
172
- checked: displayType === 'modified',
173
- help: __('Only shows if the post has been modified')
174
- })
175
175
  })]
176
176
  })
177
177
  }), /*#__PURE__*/_jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useEntityProp","store","coreStore","useMemo","useState","dateI18n","humanTimeDiff","getSettings","getDateSettings","AlignmentControl","BlockControls","InspectorControls","useBlockProps","__experimentalDateFormatPicker","DateFormatPicker","__experimentalPublishDateTimePicker","PublishDateTimePicker","Dropdown","ToolbarGroup","ToolbarButton","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","_x","sprintf","edit","DOWN","useSelect","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PostDateEdit","attributes","textAlign","format","isLink","displayType","context","postId","postType","postTypeSlug","queryId","setAttributes","blockProps","className","dropdownMenuProps","popoverAnchor","setPopoverAnchor","popoverProps","anchor","isDescendentOfQueryLoop","Number","isFinite","dateSettings","siteFormat","formats","date","siteTimeFormat","time","setDate","select","getPostType","dateLabel","postDate","dateTime","ref","children","href","onClick","event","preventDefault","group","value","onChange","nextAlign","renderContent","onClose","currentDate","is12Hour","is12HourFormat","dateOrder","renderToggle","isOpen","onToggle","openOnArrowDown","keyCode","icon","title","onKeyDown","label","resetAll","undefined","hasValue","onDeselect","isShownByDefault","defaultFormat","nextFormat","labels","singular_name","toLowerCase","__nextHasNoMarginBottom","checked","help","test"],"sources":["@wordpress/block-library/src/post-date/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostDateEdit( {\n\tattributes: { textAlign, format, isLink, displayType },\n\tcontext: { postId, postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t[ `wp-block-post-date__modified-date` ]: displayType === 'modified',\n\t\t} ),\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\tconst [ siteFormat = dateSettings.formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\tconst [ siteTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\tconst [ date, setDate ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\tdisplayType,\n\t\tpostId\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) =>\n\t\t\tpostTypeSlug\n\t\t\t\t? select( coreStore ).getPostType( postTypeSlug )\n\t\t\t\t: null,\n\t\t[ postTypeSlug ]\n\t);\n\n\tconst dateLabel =\n\t\tdisplayType === 'date' ? __( 'Post Date' ) : __( 'Post Modified Date' );\n\n\tlet postDate = date ? (\n\t\t<time dateTime={ dateI18n( 'c', date ) } ref={ setPopoverAnchor }>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( date )\n\t\t\t\t: dateI18n( format || siteFormat, date ) }\n\t\t</time>\n\t) : (\n\t\tdateLabel\n\t);\n\n\tif ( isLink && date ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\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={ 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\t{ date &&\n\t\t\t\t\tdisplayType === 'date' &&\n\t\t\t\t\t! isDescendentOfQueryLoop && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\t\tcurrentDate={ date }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDate }\n\t\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tdisplayType: 'date',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\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\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => displayType !== 'date' }\n\t\t\t\t\t\tlabel={ __( 'Display last modified date' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayType: 'date' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Display last modified date' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayType: value ? 'modified' : 'date',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ displayType === 'modified' }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Only shows if the post has been modified'\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</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useEntityProp","store","coreStore","useEffect","useMemo","useState","dateI18n","humanTimeDiff","getSettings","getDateSettings","AlignmentControl","BlockControls","InspectorControls","blockEditorStore","useBlockProps","__experimentalDateFormatPicker","DateFormatPicker","__experimentalPublishDateTimePicker","PublishDateTimePicker","Dropdown","ToolbarGroup","ToolbarButton","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","_x","sprintf","edit","DOWN","useSelect","useDispatch","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PostDateEdit","attributes","datetime","textAlign","format","isLink","metadata","context","postType","postTypeSlug","queryId","setAttributes","displayType","bindings","source","args","key","blockProps","className","dropdownMenuProps","popoverAnchor","setPopoverAnchor","popoverProps","anchor","__unstableMarkNextChangeAsNotPersistent","undefined","Date","isDescendentOfQueryLoop","Number","isFinite","dateSettings","siteFormat","formats","date","siteTimeFormat","time","select","getPostType","postDate","dateTime","ref","children","href","onClick","event","preventDefault","group","value","onChange","nextAlign","renderContent","onClose","title","currentDate","newDatetime","is12Hour","is12HourFormat","dateOrder","renderToggle","isOpen","onToggle","openOnArrowDown","keyCode","icon","onKeyDown","label","resetAll","hasValue","onDeselect","isShownByDefault","defaultFormat","nextFormat","labels","singular_name","toLowerCase","__nextHasNoMarginBottom","checked","test"],"sources":["@wordpress/block-library/src/post-date/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostDateEdit( {\n\tattributes: { datetime, textAlign, format, isLink, metadata },\n\tcontext: { postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst displayType =\n\t\tmetadata?.bindings?.datetime?.source === 'core/post-data' &&\n\t\tmetadata?.bindings?.datetime?.args?.key;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// We need to set the datetime to a default value upon first loading\n\t// to discern the block from its legacy version (which would default\n\t// to the containing post's publish date).\n\tuseEffect( () => {\n\t\tif ( datetime === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { datetime: new Date() } );\n\t\t}\n\t}, [ datetime ] );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\tconst [ siteFormat = dateSettings.formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\tconst [ siteTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) =>\n\t\t\tpostTypeSlug\n\t\t\t\t? select( coreStore ).getPostType( postTypeSlug )\n\t\t\t\t: null,\n\t\t[ postTypeSlug ]\n\t);\n\n\tlet postDate = (\n\t\t<time dateTime={ dateI18n( 'c', datetime ) } ref={ setPopoverAnchor }>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( datetime )\n\t\t\t\t: dateI18n( format || siteFormat, datetime ) }\n\t\t</time>\n\t);\n\n\tif ( isLink && datetime ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\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={ 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\t{ displayType !== 'modified' && ! isDescendentOfQueryLoop && (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\tdisplayType === 'date'\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Publish Date' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Date' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcurrentDate={ datetime }\n\t\t\t\t\t\t\t\t\tonChange={ ( newDatetime ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tdatetime: newDatetime,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdatetime: undefined,\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\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\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,10 @@ const metadata = {
16
16
  description: "Display the publish date for an entry such as a post or page.",
17
17
  textdomain: "default",
18
18
  attributes: {
19
+ datetime: {
20
+ type: "string",
21
+ role: "content"
22
+ },
19
23
  textAlign: {
20
24
  type: "string"
21
25
  },
@@ -26,10 +30,6 @@ const metadata = {
26
30
  type: "boolean",
27
31
  "default": false,
28
32
  role: "content"
29
- },
30
- displayType: {
31
- type: "string",
32
- "default": "date"
33
33
  }
34
34
  },
35
35
  usesContext: ["postId", "postType", "queryId"],