@wordpress/editor 12.19.0 → 12.21.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 (140) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/entities-saved-states/entity-record-item.js +1 -0
  3. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  4. package/build/components/entities-saved-states/entity-type-list.js +1 -7
  5. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  6. package/build/components/entities-saved-states/index.js +1 -1
  7. package/build/components/entities-saved-states/index.js.map +1 -1
  8. package/build/components/index.js +18 -0
  9. package/build/components/index.js.map +1 -1
  10. package/build/components/post-comments/index.js +1 -0
  11. package/build/components/post-comments/index.js.map +1 -1
  12. package/build/components/post-format/index.js +1 -1
  13. package/build/components/post-format/index.js.map +1 -1
  14. package/build/components/post-pending-status/index.js +1 -0
  15. package/build/components/post-pending-status/index.js.map +1 -1
  16. package/build/components/post-pingbacks/index.js +1 -0
  17. package/build/components/post-pingbacks/index.js.map +1 -1
  18. package/build/components/post-publish-button/index.js +11 -2
  19. package/build/components/post-publish-button/index.js.map +1 -1
  20. package/build/components/post-publish-panel/index.js +1 -0
  21. package/build/components/post-publish-panel/index.js.map +1 -1
  22. package/build/components/post-publish-panel/maybe-category-panel.js +1 -7
  23. package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  24. package/build/components/post-publish-panel/maybe-post-format-panel.js +1 -1
  25. package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  26. package/build/components/post-publish-panel/maybe-tags-panel.js +1 -7
  27. package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  28. package/build/components/post-saved-state/index.js +19 -5
  29. package/build/components/post-saved-state/index.js.map +1 -1
  30. package/build/components/post-schedule/index.js +13 -16
  31. package/build/components/post-schedule/index.js.map +1 -1
  32. package/build/components/post-sticky/index.js +1 -0
  33. package/build/components/post-sticky/index.js.map +1 -1
  34. package/build/components/post-taxonomies/check.js +1 -7
  35. package/build/components/post-taxonomies/check.js.map +1 -1
  36. package/build/components/post-taxonomies/flat-term-selector.js +3 -1
  37. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  38. package/build/components/post-taxonomies/hierarchical-term-selector.js +3 -2
  39. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  40. package/build/components/post-taxonomies/index.js +1 -1
  41. package/build/components/post-taxonomies/index.js.map +1 -1
  42. package/build/components/post-title/index.js +4 -2
  43. package/build/components/post-title/index.js.map +1 -1
  44. package/build/components/post-type-support-check/index.js +1 -7
  45. package/build/components/post-type-support-check/index.js.map +1 -1
  46. package/build/components/theme-support-check/index.js +2 -2
  47. package/build/components/theme-support-check/index.js.map +1 -1
  48. package/build/components/time-to-read/index.js +2 -6
  49. package/build/components/time-to-read/index.js.map +1 -1
  50. package/build/store/selectors.js +1 -6
  51. package/build/store/selectors.js.map +1 -1
  52. package/build/store/utils/notice-builder.js +2 -2
  53. package/build/store/utils/notice-builder.js.map +1 -1
  54. package/build-module/components/entities-saved-states/entity-record-item.js +1 -0
  55. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  56. package/build-module/components/entities-saved-states/entity-type-list.js +1 -6
  57. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  58. package/build-module/components/entities-saved-states/index.js +2 -2
  59. package/build-module/components/entities-saved-states/index.js.map +1 -1
  60. package/build-module/components/index.js +3 -1
  61. package/build-module/components/index.js.map +1 -1
  62. package/build-module/components/post-comments/index.js +1 -0
  63. package/build-module/components/post-comments/index.js.map +1 -1
  64. package/build-module/components/post-format/index.js +2 -2
  65. package/build-module/components/post-format/index.js.map +1 -1
  66. package/build-module/components/post-pending-status/index.js +1 -0
  67. package/build-module/components/post-pending-status/index.js.map +1 -1
  68. package/build-module/components/post-pingbacks/index.js +1 -0
  69. package/build-module/components/post-pingbacks/index.js.map +1 -1
  70. package/build-module/components/post-publish-button/index.js +12 -3
  71. package/build-module/components/post-publish-button/index.js.map +1 -1
  72. package/build-module/components/post-publish-panel/index.js +1 -0
  73. package/build-module/components/post-publish-panel/index.js.map +1 -1
  74. package/build-module/components/post-publish-panel/maybe-category-panel.js +1 -6
  75. package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
  76. package/build-module/components/post-publish-panel/maybe-post-format-panel.js +2 -2
  77. package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
  78. package/build-module/components/post-publish-panel/maybe-tags-panel.js +1 -6
  79. package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
  80. package/build-module/components/post-saved-state/index.js +19 -5
  81. package/build-module/components/post-saved-state/index.js.map +1 -1
  82. package/build-module/components/post-schedule/index.js +12 -17
  83. package/build-module/components/post-schedule/index.js.map +1 -1
  84. package/build-module/components/post-sticky/index.js +1 -0
  85. package/build-module/components/post-sticky/index.js.map +1 -1
  86. package/build-module/components/post-taxonomies/check.js +1 -6
  87. package/build-module/components/post-taxonomies/check.js.map +1 -1
  88. package/build-module/components/post-taxonomies/flat-term-selector.js +3 -2
  89. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  90. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +4 -3
  91. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  92. package/build-module/components/post-taxonomies/index.js +2 -2
  93. package/build-module/components/post-taxonomies/index.js.map +1 -1
  94. package/build-module/components/post-title/index.js +3 -2
  95. package/build-module/components/post-title/index.js.map +1 -1
  96. package/build-module/components/post-type-support-check/index.js +1 -6
  97. package/build-module/components/post-type-support-check/index.js.map +1 -1
  98. package/build-module/components/theme-support-check/index.js +3 -3
  99. package/build-module/components/theme-support-check/index.js.map +1 -1
  100. package/build-module/components/time-to-read/index.js +2 -6
  101. package/build-module/components/time-to-read/index.js.map +1 -1
  102. package/build-module/store/selectors.js +1 -6
  103. package/build-module/store/selectors.js.map +1 -1
  104. package/build-module/store/utils/notice-builder.js +3 -3
  105. package/build-module/store/utils/notice-builder.js.map +1 -1
  106. package/build-style/style-rtl.css +0 -4
  107. package/build-style/style.css +0 -4
  108. package/package.json +31 -28
  109. package/src/components/editor-help/test/index.native.js +2 -2
  110. package/src/components/entities-saved-states/entity-record-item.js +1 -0
  111. package/src/components/entities-saved-states/entity-type-list.js +1 -7
  112. package/src/components/entities-saved-states/index.js +2 -3
  113. package/src/components/index.js +2 -0
  114. package/src/components/post-comments/index.js +1 -0
  115. package/src/components/post-format/index.js +2 -2
  116. package/src/components/post-pending-status/index.js +1 -0
  117. package/src/components/post-pingbacks/index.js +1 -0
  118. package/src/components/post-publish-button/index.js +13 -4
  119. package/src/components/post-publish-panel/index.js +1 -0
  120. package/src/components/post-publish-panel/maybe-category-panel.js +1 -6
  121. package/src/components/post-publish-panel/maybe-post-format-panel.js +2 -2
  122. package/src/components/post-publish-panel/maybe-tags-panel.js +1 -6
  123. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +11 -15
  124. package/src/components/post-saved-state/index.js +15 -3
  125. package/src/components/post-saved-state/style.scss +0 -4
  126. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +1 -1
  127. package/src/components/post-schedule/index.js +16 -20
  128. package/src/components/post-sticky/index.js +1 -0
  129. package/src/components/post-taxonomies/check.js +2 -7
  130. package/src/components/post-taxonomies/flat-term-selector.js +3 -2
  131. package/src/components/post-taxonomies/hierarchical-term-selector.js +4 -3
  132. package/src/components/post-taxonomies/index.js +2 -2
  133. package/src/components/post-text-editor/test/index.js +7 -3
  134. package/src/components/post-title/index.js +6 -2
  135. package/src/components/post-type-support-check/index.js +3 -9
  136. package/src/components/theme-support-check/index.js +5 -3
  137. package/src/components/time-to-read/index.js +2 -2
  138. package/src/store/selectors.js +1 -10
  139. package/src/store/test/selectors.js +2 -56
  140. package/src/store/utils/notice-builder.js +3 -3
@@ -17,6 +17,7 @@ import { pasteHandler } from '@wordpress/blocks';
17
17
  import { store as blockEditorStore } from '@wordpress/block-editor';
18
18
  import { __unstableUseRichText as useRichText, create, toHTMLString, insert } from '@wordpress/rich-text';
19
19
  import { useMergeRefs } from '@wordpress/compose';
20
+ import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
20
21
  /**
21
22
  * Internal dependencies
22
23
  */
@@ -167,7 +168,7 @@ function PostTitle(_, forwardedRef) {
167
168
  const [firstBlock] = content;
168
169
 
169
170
  if (!title && (firstBlock.name === 'core/heading' || firstBlock.name === 'core/paragraph')) {
170
- onUpdate(firstBlock.attributes.content);
171
+ onUpdate(stripHTML(firstBlock.attributes.content));
171
172
  onInsertBlockAfter(content.slice(1));
172
173
  } else {
173
174
  onInsertBlockAfter(content);
@@ -179,7 +180,7 @@ function PostTitle(_, forwardedRef) {
179
180
  ...selection
180
181
  };
181
182
  const newValue = insert(value, create({
182
- html: content
183
+ html: stripHTML(content)
183
184
  }));
184
185
  onUpdate(toHTMLString({
185
186
  value: newValue
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-title/index.js"],"names":["classnames","__","forwardRef","useEffect","useImperativeHandle","useRef","useState","decodeEntities","ENTER","useSelect","useDispatch","pasteHandler","store","blockEditorStore","__unstableUseRichText","useRichText","create","toHTMLString","insert","useMergeRefs","PostTypeSupportCheck","editorStore","REGEXP_NEWLINES","PostTitle","_","forwardedRef","ref","isSelected","setIsSelected","editPost","insertDefaultBlock","clearSelectedBlock","insertBlocks","isCleanNewPost","title","placeholder","hasFixedToolbar","select","getEditedPostAttribute","_isCleanNewPost","getSettings","titlePlaceholder","_hasFixedToolbar","focus","current","ownerDocument","activeElement","body","onEnterPress","undefined","onInsertBlockAfter","blocks","onUpdate","newTitle","selection","setSelection","onSelect","onUnselect","onChange","value","replace","onKeyDown","event","keyCode","preventDefault","onPaste","clipboardData","plainText","html","getData","error1","error2","window","console","log","content","HTML","length","firstBlock","name","attributes","slice","newValue","start","end","className","decodedPlaceholder","richTextRef","selectionStart","selectionEnd","onSelectionChange","newStart","newEnd","sel","__unstableDisableFormats","preserveWhiteSpace"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pasteHandler } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\t__unstableUseRichText as useRichText,\n\tcreate,\n\ttoHTMLString,\n\tinsert,\n} from '@wordpress/rich-text';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\n/**\n * Constants\n */\nconst REGEXP_NEWLINES = /[\\r\\n]+/g;\n\nfunction PostTitle( _, forwardedRef ) {\n\tconst ref = useRef();\n\tconst [ isSelected, setIsSelected ] = useState( false );\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { insertDefaultBlock, clearSelectedBlock, insertBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { isCleanNewPost, title, placeholder, hasFixedToolbar } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostAttribute, isCleanNewPost: _isCleanNewPost } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\tconst { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =\n\t\t\t\tgetSettings();\n\n\t\t\treturn {\n\t\t\t\tisCleanNewPost: _isCleanNewPost(),\n\t\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\t\tplaceholder: titlePlaceholder,\n\t\t\t\thasFixedToolbar: _hasFixedToolbar,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tuseImperativeHandle( forwardedRef, () => ( {\n\t\tfocus: () => {\n\t\t\tref?.current?.focus();\n\t\t},\n\t} ) );\n\n\tuseEffect( () => {\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { activeElement, body } = ownerDocument;\n\n\t\t// Only autofocus the title when the post is entirely empty. This should\n\t\t// only happen for a new post, which means we focus the title on new\n\t\t// post so the author can start typing right away, without needing to\n\t\t// click anything.\n\t\tif ( isCleanNewPost && ( ! activeElement || body === activeElement ) ) {\n\t\t\tref.current.focus();\n\t\t}\n\t}, [ isCleanNewPost ] );\n\n\tfunction onEnterPress() {\n\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t}\n\n\tfunction onInsertBlockAfter( blocks ) {\n\t\tinsertBlocks( blocks, 0 );\n\t}\n\n\tfunction onUpdate( newTitle ) {\n\t\teditPost( { title: newTitle } );\n\t}\n\n\tconst [ selection, setSelection ] = useState( {} );\n\n\tfunction onSelect() {\n\t\tsetIsSelected( true );\n\t\tclearSelectedBlock();\n\t}\n\n\tfunction onUnselect() {\n\t\tsetIsSelected( false );\n\t\tsetSelection( {} );\n\t}\n\n\tfunction onChange( value ) {\n\t\tonUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER ) {\n\t\t\tevent.preventDefault();\n\t\t\tonEnterPress();\n\t\t}\n\t}\n\n\tfunction onPaste( event ) {\n\t\tconst clipboardData = event.clipboardData;\n\n\t\tlet plainText = '';\n\t\tlet html = '';\n\n\t\t// IE11 only supports `Text` as an argument for `getData` and will\n\t\t// otherwise throw an invalid argument error, so we try the standard\n\t\t// arguments first, then fallback to `Text` if they fail.\n\t\ttry {\n\t\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\t\thtml = clipboardData.getData( 'text/html' );\n\t\t} catch ( error1 ) {\n\t\t\ttry {\n\t\t\t\thtml = clipboardData.getData( 'Text' );\n\t\t\t} catch ( error2 ) {\n\t\t\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t\t\t// don't support clipboardData at all, so allow default\n\t\t\t\t// behaviour.\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Received HTML:\\n\\n', html );\n\t\twindow.console.log( 'Received plain text:\\n\\n', plainText );\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tevent.preventDefault();\n\n\t\tif ( ! content.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof content !== 'string' ) {\n\t\t\tconst [ firstBlock ] = content;\n\n\t\t\tif (\n\t\t\t\t! title &&\n\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t) {\n\t\t\t\tonUpdate( firstBlock.attributes.content );\n\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t} else {\n\t\t\t\tonInsertBlockAfter( content );\n\t\t\t}\n\t\t} else {\n\t\t\tconst value = {\n\t\t\t\t...create( { html: title } ),\n\t\t\t\t...selection,\n\t\t\t};\n\t\t\tconst newValue = insert( value, create( { html: content } ) );\n\t\t\tonUpdate( toHTMLString( { value: newValue } ) );\n\t\t\tsetSelection( {\n\t\t\t\tstart: newValue.start,\n\t\t\t\tend: newValue.end,\n\t\t\t} );\n\t\t}\n\t}\n\n\t// The wp-block className is important for editor styles.\n\t// This same block is used in both the visual and the code editor.\n\tconst className = classnames(\n\t\t'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text',\n\t\t{\n\t\t\t'is-selected': isSelected,\n\t\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t}\n\t);\n\tconst decodedPlaceholder =\n\t\tdecodeEntities( placeholder ) || __( 'Add title' );\n\tconst { ref: richTextRef } = useRichText( {\n\t\tvalue: title,\n\t\tonChange,\n\t\tplaceholder: decodedPlaceholder,\n\t\tselectionStart: selection.start,\n\t\tselectionEnd: selection.end,\n\t\tonSelectionChange( newStart, newEnd ) {\n\t\t\tsetSelection( ( sel ) => {\n\t\t\t\tconst { start, end } = sel;\n\t\t\t\tif ( start === newStart && end === newEnd ) {\n\t\t\t\t\treturn sel;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstart: newStart,\n\t\t\t\t\tend: newEnd,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\t__unstableDisableFormats: true,\n\t\tpreserveWhiteSpace: true,\n\t} );\n\n\t/* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"title\">\n\t\t\t<h1\n\t\t\t\tref={ useMergeRefs( [ richTextRef, ref ] ) }\n\t\t\t\tcontentEditable\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ decodedPlaceholder }\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline=\"true\"\n\t\t\t\tonFocus={ onSelect }\n\t\t\t\tonBlur={ onUnselect }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\tonKeyPress={ onUnselect }\n\t\t\t\tonPaste={ onPaste }\n\t\t\t/>\n\t\t</PostTypeSupportCheck>\n\t);\n\t/* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n}\n\nexport default forwardRef( PostTitle );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-title/index.js"],"names":["classnames","__","forwardRef","useEffect","useImperativeHandle","useRef","useState","decodeEntities","ENTER","useSelect","useDispatch","pasteHandler","store","blockEditorStore","__unstableUseRichText","useRichText","create","toHTMLString","insert","useMergeRefs","__unstableStripHTML","stripHTML","PostTypeSupportCheck","editorStore","REGEXP_NEWLINES","PostTitle","_","forwardedRef","ref","isSelected","setIsSelected","editPost","insertDefaultBlock","clearSelectedBlock","insertBlocks","isCleanNewPost","title","placeholder","hasFixedToolbar","select","getEditedPostAttribute","_isCleanNewPost","getSettings","titlePlaceholder","_hasFixedToolbar","focus","current","ownerDocument","activeElement","body","onEnterPress","undefined","onInsertBlockAfter","blocks","onUpdate","newTitle","selection","setSelection","onSelect","onUnselect","onChange","value","replace","onKeyDown","event","keyCode","preventDefault","onPaste","clipboardData","plainText","html","getData","error1","error2","window","console","log","content","HTML","length","firstBlock","name","attributes","slice","newValue","start","end","className","decodedPlaceholder","richTextRef","selectionStart","selectionEnd","onSelectionChange","newStart","newEnd","sel","__unstableDisableFormats","preserveWhiteSpace"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pasteHandler } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\t__unstableUseRichText as useRichText,\n\tcreate,\n\ttoHTMLString,\n\tinsert,\n} from '@wordpress/rich-text';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\n/**\n * Constants\n */\nconst REGEXP_NEWLINES = /[\\r\\n]+/g;\n\nfunction PostTitle( _, forwardedRef ) {\n\tconst ref = useRef();\n\tconst [ isSelected, setIsSelected ] = useState( false );\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { insertDefaultBlock, clearSelectedBlock, insertBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { isCleanNewPost, title, placeholder, hasFixedToolbar } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostAttribute, isCleanNewPost: _isCleanNewPost } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\tconst { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =\n\t\t\t\tgetSettings();\n\n\t\t\treturn {\n\t\t\t\tisCleanNewPost: _isCleanNewPost(),\n\t\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\t\tplaceholder: titlePlaceholder,\n\t\t\t\thasFixedToolbar: _hasFixedToolbar,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tuseImperativeHandle( forwardedRef, () => ( {\n\t\tfocus: () => {\n\t\t\tref?.current?.focus();\n\t\t},\n\t} ) );\n\n\tuseEffect( () => {\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { activeElement, body } = ownerDocument;\n\n\t\t// Only autofocus the title when the post is entirely empty. This should\n\t\t// only happen for a new post, which means we focus the title on new\n\t\t// post so the author can start typing right away, without needing to\n\t\t// click anything.\n\t\tif ( isCleanNewPost && ( ! activeElement || body === activeElement ) ) {\n\t\t\tref.current.focus();\n\t\t}\n\t}, [ isCleanNewPost ] );\n\n\tfunction onEnterPress() {\n\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t}\n\n\tfunction onInsertBlockAfter( blocks ) {\n\t\tinsertBlocks( blocks, 0 );\n\t}\n\n\tfunction onUpdate( newTitle ) {\n\t\teditPost( { title: newTitle } );\n\t}\n\n\tconst [ selection, setSelection ] = useState( {} );\n\n\tfunction onSelect() {\n\t\tsetIsSelected( true );\n\t\tclearSelectedBlock();\n\t}\n\n\tfunction onUnselect() {\n\t\tsetIsSelected( false );\n\t\tsetSelection( {} );\n\t}\n\n\tfunction onChange( value ) {\n\t\tonUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER ) {\n\t\t\tevent.preventDefault();\n\t\t\tonEnterPress();\n\t\t}\n\t}\n\n\tfunction onPaste( event ) {\n\t\tconst clipboardData = event.clipboardData;\n\n\t\tlet plainText = '';\n\t\tlet html = '';\n\n\t\t// IE11 only supports `Text` as an argument for `getData` and will\n\t\t// otherwise throw an invalid argument error, so we try the standard\n\t\t// arguments first, then fallback to `Text` if they fail.\n\t\ttry {\n\t\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\t\thtml = clipboardData.getData( 'text/html' );\n\t\t} catch ( error1 ) {\n\t\t\ttry {\n\t\t\t\thtml = clipboardData.getData( 'Text' );\n\t\t\t} catch ( error2 ) {\n\t\t\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t\t\t// don't support clipboardData at all, so allow default\n\t\t\t\t// behaviour.\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Received HTML:\\n\\n', html );\n\t\twindow.console.log( 'Received plain text:\\n\\n', plainText );\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tevent.preventDefault();\n\n\t\tif ( ! content.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof content !== 'string' ) {\n\t\t\tconst [ firstBlock ] = content;\n\n\t\t\tif (\n\t\t\t\t! title &&\n\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t) {\n\t\t\t\tonUpdate( stripHTML( firstBlock.attributes.content ) );\n\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t} else {\n\t\t\t\tonInsertBlockAfter( content );\n\t\t\t}\n\t\t} else {\n\t\t\tconst value = {\n\t\t\t\t...create( { html: title } ),\n\t\t\t\t...selection,\n\t\t\t};\n\t\t\tconst newValue = insert(\n\t\t\t\tvalue,\n\t\t\t\tcreate( { html: stripHTML( content ) } )\n\t\t\t);\n\t\t\tonUpdate( toHTMLString( { value: newValue } ) );\n\t\t\tsetSelection( {\n\t\t\t\tstart: newValue.start,\n\t\t\t\tend: newValue.end,\n\t\t\t} );\n\t\t}\n\t}\n\n\t// The wp-block className is important for editor styles.\n\t// This same block is used in both the visual and the code editor.\n\tconst className = classnames(\n\t\t'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text',\n\t\t{\n\t\t\t'is-selected': isSelected,\n\t\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t}\n\t);\n\tconst decodedPlaceholder =\n\t\tdecodeEntities( placeholder ) || __( 'Add title' );\n\tconst { ref: richTextRef } = useRichText( {\n\t\tvalue: title,\n\t\tonChange,\n\t\tplaceholder: decodedPlaceholder,\n\t\tselectionStart: selection.start,\n\t\tselectionEnd: selection.end,\n\t\tonSelectionChange( newStart, newEnd ) {\n\t\t\tsetSelection( ( sel ) => {\n\t\t\t\tconst { start, end } = sel;\n\t\t\t\tif ( start === newStart && end === newEnd ) {\n\t\t\t\t\treturn sel;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstart: newStart,\n\t\t\t\t\tend: newEnd,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\t__unstableDisableFormats: true,\n\t\tpreserveWhiteSpace: true,\n\t} );\n\n\t/* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"title\">\n\t\t\t<h1\n\t\t\t\tref={ useMergeRefs( [ richTextRef, ref ] ) }\n\t\t\t\tcontentEditable\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ decodedPlaceholder }\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline=\"true\"\n\t\t\t\tonFocus={ onSelect }\n\t\t\t\tonBlur={ onUnselect }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\tonKeyPress={ onUnselect }\n\t\t\t\tonPaste={ onPaste }\n\t\t\t/>\n\t\t</PostTypeSupportCheck>\n\t);\n\t/* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n}\n\nexport default forwardRef( PostTitle );\n"]}
@@ -1,11 +1,6 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { some, castArray } from 'lodash';
5
1
  /**
6
2
  * WordPress dependencies
7
3
  */
8
-
9
4
  import { withSelect } from '@wordpress/data';
10
5
  import { store as coreStore } from '@wordpress/core-data';
11
6
  /**
@@ -36,7 +31,7 @@ export function PostTypeSupportCheck(_ref) {
36
31
  let isSupported = true;
37
32
 
38
33
  if (postType) {
39
- isSupported = some(castArray(supportKeys), key => !!postType.supports[key]);
34
+ isSupported = (Array.isArray(supportKeys) ? supportKeys : [supportKeys]).some(key => !!postType.supports[key]);
40
35
  }
41
36
 
42
37
  if (!isSupported) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-type-support-check/index.js"],"names":["some","castArray","withSelect","store","coreStore","editorStore","PostTypeSupportCheck","postType","children","supportKeys","isSupported","key","supports","select","getEditedPostAttribute","getPostType"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,SAAf,QAAgC,QAAhC;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,oBAAT,OAAqE;AAAA,MAAtC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA;AAAtB,GAAsC;AAC3E,MAAIC,WAAW,GAAG,IAAlB;;AACA,MAAKH,QAAL,EAAgB;AACfG,IAAAA,WAAW,GAAGV,IAAI,CACjBC,SAAS,CAAEQ,WAAF,CADQ,EAEfE,GAAF,IAAW,CAAC,CAAEJ,QAAQ,CAACK,QAAT,CAAmBD,GAAnB,CAFG,CAAlB;AAIA;;AAED,MAAK,CAAED,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SAAOF,QAAP;AACA;AAED,eAAeN,UAAU,CAAIW,MAAF,IAAc;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAA6BD,MAAM,CAAER,WAAF,CAAzC;AACA,QAAM;AAAEU,IAAAA;AAAF,MAAkBF,MAAM,CAAET,SAAF,CAA9B;AACA,SAAO;AACNG,IAAAA,QAAQ,EAAEQ,WAAW,CAAED,sBAAsB,CAAE,MAAF,CAAxB;AADf,GAAP;AAGA,CANwB,CAAV,CAMVR,oBANU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { some, castArray } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * A component which renders its own children only if the current editor post\n * type supports one of the given `supportKeys` prop.\n *\n * @param {Object} props Props.\n * @param {string} [props.postType] Current post type.\n * @param {WPElement} props.children Children to be rendered if post\n * type supports.\n * @param {(string|string[])} props.supportKeys String or string array of keys\n * to test.\n *\n * @return {WPComponent} The component to be rendered.\n */\nexport function PostTypeSupportCheck( { postType, children, supportKeys } ) {\n\tlet isSupported = true;\n\tif ( postType ) {\n\t\tisSupported = some(\n\t\t\tcastArray( supportKeys ),\n\t\t\t( key ) => !! postType.supports[ key ]\n\t\t);\n\t}\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getEditedPostAttribute } = select( editorStore );\n\tconst { getPostType } = select( coreStore );\n\treturn {\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t};\n} )( PostTypeSupportCheck );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-type-support-check/index.js"],"names":["withSelect","store","coreStore","editorStore","PostTypeSupportCheck","postType","children","supportKeys","isSupported","Array","isArray","some","key","supports","select","getEditedPostAttribute","getPostType"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,oBAAT,OAAqE;AAAA,MAAtC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA;AAAtB,GAAsC;AAC3E,MAAIC,WAAW,GAAG,IAAlB;;AACA,MAAKH,QAAL,EAAgB;AACfG,IAAAA,WAAW,GAAG,CACbC,KAAK,CAACC,OAAN,CAAeH,WAAf,IAA+BA,WAA/B,GAA6C,CAAEA,WAAF,CADhC,EAEXI,IAFW,CAEHC,GAAF,IAAW,CAAC,CAAEP,QAAQ,CAACQ,QAAT,CAAmBD,GAAnB,CAFT,CAAd;AAGA;;AAED,MAAK,CAAEJ,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SAAOF,QAAP;AACA;AAED,eAAeN,UAAU,CAAIc,MAAF,IAAc;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAA6BD,MAAM,CAAEX,WAAF,CAAzC;AACA,QAAM;AAAEa,IAAAA;AAAF,MAAkBF,MAAM,CAAEZ,SAAF,CAA9B;AACA,SAAO;AACNG,IAAAA,QAAQ,EAAEW,WAAW,CAAED,sBAAsB,CAAE,MAAF,CAAxB;AADf,GAAP;AAGA,CANwB,CAAV,CAMVX,oBANU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * A component which renders its own children only if the current editor post\n * type supports one of the given `supportKeys` prop.\n *\n * @param {Object} props Props.\n * @param {string} [props.postType] Current post type.\n * @param {WPElement} props.children Children to be rendered if post\n * type supports.\n * @param {(string|string[])} props.supportKeys String or string array of keys\n * to test.\n *\n * @return {WPComponent} The component to be rendered.\n */\nexport function PostTypeSupportCheck( { postType, children, supportKeys } ) {\n\tlet isSupported = true;\n\tif ( postType ) {\n\t\tisSupported = (\n\t\t\tArray.isArray( supportKeys ) ? supportKeys : [ supportKeys ]\n\t\t ).some( ( key ) => !! postType.supports[ key ] );\n\t}\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getEditedPostAttribute } = select( editorStore );\n\tconst { getPostType } = select( coreStore );\n\treturn {\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t};\n} )( PostTypeSupportCheck );\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { castArray, includes, get, some } from 'lodash';
4
+ import { get } from 'lodash';
5
5
  /**
6
6
  * WordPress dependencies
7
7
  */
@@ -20,14 +20,14 @@ export function ThemeSupportCheck(_ref) {
20
20
  postType,
21
21
  supportKeys
22
22
  } = _ref;
23
- const isSupported = some(castArray(supportKeys), key => {
23
+ const isSupported = (Array.isArray(supportKeys) ? supportKeys : [supportKeys]).some(key => {
24
24
  const supported = get(themeSupports, [key], false); // 'post-thumbnails' can be boolean or an array of post types.
25
25
  // In the latter case, we need to verify `postType` exists
26
26
  // within `supported`. If `postType` isn't passed, then the check
27
27
  // should fail.
28
28
 
29
29
  if ('post-thumbnails' === key && Array.isArray(supported)) {
30
- return includes(supported, postType);
30
+ return supported.includes(postType);
31
31
  }
32
32
 
33
33
  return supported;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/theme-support-check/index.js"],"names":["castArray","includes","get","some","withSelect","store","coreStore","editorStore","ThemeSupportCheck","themeSupports","children","postType","supportKeys","isSupported","key","supported","Array","isArray","select","getThemeSupports","getEditedPostAttribute"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,EAAoBC,QAApB,EAA8BC,GAA9B,EAAmCC,IAAnC,QAA+C,QAA/C;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,iBAAT,OAKH;AAAA,MAL+B;AAClCC,IAAAA,aADkC;AAElCC,IAAAA,QAFkC;AAGlCC,IAAAA,QAHkC;AAIlCC,IAAAA;AAJkC,GAK/B;AACH,QAAMC,WAAW,GAAGV,IAAI,CAAEH,SAAS,CAAEY,WAAF,CAAX,EAA8BE,GAAF,IAAW;AAC9D,UAAMC,SAAS,GAAGb,GAAG,CAAEO,aAAF,EAAiB,CAAEK,GAAF,CAAjB,EAA0B,KAA1B,CAArB,CAD8D,CAE9D;AACA;AACA;AACA;;AACA,QAAK,sBAAsBA,GAAtB,IAA6BE,KAAK,CAACC,OAAN,CAAeF,SAAf,CAAlC,EAA+D;AAC9D,aAAOd,QAAQ,CAAEc,SAAF,EAAaJ,QAAb,CAAf;AACA;;AACD,WAAOI,SAAP;AACA,GAVuB,CAAxB;;AAYA,MAAK,CAAEF,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SAAOH,QAAP;AACA;AAED,eAAeN,UAAU,CAAIc,MAAF,IAAc;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAAuBD,MAAM,CAAEZ,SAAF,CAAnC;AACA,QAAM;AAAEc,IAAAA;AAAF,MAA6BF,MAAM,CAAEX,WAAF,CAAzC;AACA,SAAO;AACNI,IAAAA,QAAQ,EAAES,sBAAsB,CAAE,MAAF,CAD1B;AAENX,IAAAA,aAAa,EAAEU,gBAAgB;AAFzB,GAAP;AAIA,CAPwB,CAAV,CAOVX,iBAPU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, includes, get, some } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function ThemeSupportCheck( {\n\tthemeSupports,\n\tchildren,\n\tpostType,\n\tsupportKeys,\n} ) {\n\tconst isSupported = some( castArray( supportKeys ), ( key ) => {\n\t\tconst supported = get( themeSupports, [ key ], false );\n\t\t// 'post-thumbnails' can be boolean or an array of post types.\n\t\t// In the latter case, we need to verify `postType` exists\n\t\t// within `supported`. If `postType` isn't passed, then the check\n\t\t// should fail.\n\t\tif ( 'post-thumbnails' === key && Array.isArray( supported ) ) {\n\t\t\treturn includes( supported, postType );\n\t\t}\n\t\treturn supported;\n\t} );\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getThemeSupports } = select( coreStore );\n\tconst { getEditedPostAttribute } = select( editorStore );\n\treturn {\n\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\tthemeSupports: getThemeSupports(),\n\t};\n} )( ThemeSupportCheck );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/theme-support-check/index.js"],"names":["get","withSelect","store","coreStore","editorStore","ThemeSupportCheck","themeSupports","children","postType","supportKeys","isSupported","Array","isArray","some","key","supported","includes","select","getThemeSupports","getEditedPostAttribute"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAT,QAAoB,QAApB;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASD,KAAK,IAAIE,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,iBAAT,OAKH;AAAA,MAL+B;AAClCC,IAAAA,aADkC;AAElCC,IAAAA,QAFkC;AAGlCC,IAAAA,QAHkC;AAIlCC,IAAAA;AAJkC,GAK/B;AACH,QAAMC,WAAW,GAAG,CACnBC,KAAK,CAACC,OAAN,CAAeH,WAAf,IAA+BA,WAA/B,GAA6C,CAAEA,WAAF,CAD1B,EAEjBI,IAFiB,CAETC,GAAF,IAAW;AACnB,UAAMC,SAAS,GAAGf,GAAG,CAAEM,aAAF,EAAiB,CAAEQ,GAAF,CAAjB,EAA0B,KAA1B,CAArB,CADmB,CAEnB;AACA;AACA;AACA;;AACA,QAAK,sBAAsBA,GAAtB,IAA6BH,KAAK,CAACC,OAAN,CAAeG,SAAf,CAAlC,EAA+D;AAC9D,aAAOA,SAAS,CAACC,QAAV,CAAoBR,QAApB,CAAP;AACA;;AACD,WAAOO,SAAP;AACA,GAZmB,CAApB;;AAcA,MAAK,CAAEL,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SAAOH,QAAP;AACA;AAED,eAAeN,UAAU,CAAIgB,MAAF,IAAc;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAAuBD,MAAM,CAAEd,SAAF,CAAnC;AACA,QAAM;AAAEgB,IAAAA;AAAF,MAA6BF,MAAM,CAAEb,WAAF,CAAzC;AACA,SAAO;AACNI,IAAAA,QAAQ,EAAEW,sBAAsB,CAAE,MAAF,CAD1B;AAENb,IAAAA,aAAa,EAAEY,gBAAgB;AAFzB,GAAP;AAIA,CAPwB,CAAV,CAOVb,iBAPU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function ThemeSupportCheck( {\n\tthemeSupports,\n\tchildren,\n\tpostType,\n\tsupportKeys,\n} ) {\n\tconst isSupported = (\n\t\tArray.isArray( supportKeys ) ? supportKeys : [ supportKeys ]\n\t ).some( ( key ) => {\n\t\tconst supported = get( themeSupports, [ key ], false );\n\t\t// 'post-thumbnails' can be boolean or an array of post types.\n\t\t// In the latter case, we need to verify `postType` exists\n\t\t// within `supported`. If `postType` isn't passed, then the check\n\t\t// should fail.\n\t\tif ( 'post-thumbnails' === key && Array.isArray( supported ) ) {\n\t\t\treturn supported.includes( postType );\n\t\t}\n\t\treturn supported;\n\t} );\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getThemeSupports } = select( coreStore );\n\tconst { getEditedPostAttribute } = select( editorStore );\n\treturn {\n\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\tthemeSupports: getThemeSupports(),\n\t};\n} )( ThemeSupportCheck );\n"]}
@@ -33,15 +33,11 @@ export default function TimeToRead() {
33
33
 
34
34
  const minutesToRead = Math.round(wordCount(content, wordCountType) / AVERAGE_READING_RATE);
35
35
  const minutesToReadString = minutesToRead === 0 ? createInterpolateElement(__('<span>< 1</span> minute'), {
36
- span: createElement("span", {
37
- className: "table-of-contents__number"
38
- })
36
+ span: createElement("span", null)
39
37
  }) : createInterpolateElement(sprintf(
40
38
  /* translators: %s is the number of minutes the post will take to read. */
41
39
  _n('<span>%d</span> minute', '<span>%d</span> minutes', minutesToRead), minutesToRead), {
42
- span: createElement("span", {
43
- className: "table-of-contents__number"
44
- })
40
+ span: createElement("span", null)
45
41
  });
46
42
  return createElement("span", {
47
43
  className: "time-to-read"
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/time-to-read/index.js"],"names":["useSelect","_x","_n","__","sprintf","count","wordCount","createInterpolateElement","store","editorStore","AVERAGE_READING_RATE","TimeToRead","content","select","getEditedPostAttribute","wordCountType","minutesToRead","Math","round","minutesToReadString","span"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,EAAT,EAAaC,EAAb,EAAiBC,EAAjB,EAAqBC,OAArB,QAAoC,iBAApC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AACA,SAASC,wBAAT,QAAyC,oBAAzC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,oBAAoB,GAAG,GAA7B;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,QAAMC,OAAO,GAAGZ,SAAS,CACtBa,MAAF,IAAcA,MAAM,CAAEJ,WAAF,CAAN,CAAsBK,sBAAtB,CAA8C,SAA9C,CADU,EAExB,EAFwB,CAAzB;AAKA;AACD;AACA;AACA;AACA;;AACC,QAAMC,aAAa,GAAGd,EAAE,CAAE,OAAF,EAAW,oCAAX,CAAxB;;AACA,QAAMe,aAAa,GAAGC,IAAI,CAACC,KAAL,CACrBZ,SAAS,CAAEM,OAAF,EAAWG,aAAX,CAAT,GAAsCL,oBADjB,CAAtB;AAGA,QAAMS,mBAAmB,GACxBH,aAAa,KAAK,CAAlB,GACGT,wBAAwB,CAAEJ,EAAE,CAAE,yBAAF,CAAJ,EAAmC;AAC3DiB,IAAAA,IAAI,EAAE;AAAM,MAAA,SAAS,EAAC;AAAhB;AADqD,GAAnC,CAD3B,GAIGb,wBAAwB,CACxBH,OAAO;AACN;AACAF,EAAAA,EAAE,CACD,wBADC,EAED,yBAFC,EAGDc,aAHC,CAFI,EAONA,aAPM,CADiB,EAUxB;AACCI,IAAAA,IAAI,EAAE;AAAM,MAAA,SAAS,EAAC;AAAhB;AADP,GAVwB,CAL5B;AAoBA,SAAO;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAiCD,mBAAjC,CAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { _x, _n, __, sprintf } from '@wordpress/i18n';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Average reading rate - based on average taken from\n * https://irisreading.com/average-reading-speed-in-various-languages/\n * (Characters/minute used for Chinese rather than words).\n *\n * @type {number} A rough estimate of the average reading rate across multiple languages.\n */\nconst AVERAGE_READING_RATE = 189;\n\nexport default function TimeToRead() {\n\tconst content = useSelect(\n\t\t( select ) => select( editorStore ).getEditedPostAttribute( 'content' ),\n\t\t[]\n\t);\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\tconst minutesToRead = Math.round(\n\t\twordCount( content, wordCountType ) / AVERAGE_READING_RATE\n\t);\n\tconst minutesToReadString =\n\t\tminutesToRead === 0\n\t\t\t? createInterpolateElement( __( '<span>< 1</span> minute' ), {\n\t\t\t\t\tspan: <span className=\"table-of-contents__number\" />,\n\t\t\t } )\n\t\t\t: createInterpolateElement(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s is the number of minutes the post will take to read. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'<span>%d</span> minute',\n\t\t\t\t\t\t\t'<span>%d</span> minutes',\n\t\t\t\t\t\t\tminutesToRead\n\t\t\t\t\t\t),\n\t\t\t\t\t\tminutesToRead\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tspan: <span className=\"table-of-contents__number\" />,\n\t\t\t\t\t}\n\t\t\t );\n\n\treturn <span className=\"time-to-read\">{ minutesToReadString }</span>;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/time-to-read/index.js"],"names":["useSelect","_x","_n","__","sprintf","count","wordCount","createInterpolateElement","store","editorStore","AVERAGE_READING_RATE","TimeToRead","content","select","getEditedPostAttribute","wordCountType","minutesToRead","Math","round","minutesToReadString","span"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,EAAT,EAAaC,EAAb,EAAiBC,EAAjB,EAAqBC,OAArB,QAAoC,iBAApC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AACA,SAASC,wBAAT,QAAyC,oBAAzC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,oBAAoB,GAAG,GAA7B;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,QAAMC,OAAO,GAAGZ,SAAS,CACtBa,MAAF,IAAcA,MAAM,CAAEJ,WAAF,CAAN,CAAsBK,sBAAtB,CAA8C,SAA9C,CADU,EAExB,EAFwB,CAAzB;AAKA;AACD;AACA;AACA;AACA;;AACC,QAAMC,aAAa,GAAGd,EAAE,CAAE,OAAF,EAAW,oCAAX,CAAxB;;AACA,QAAMe,aAAa,GAAGC,IAAI,CAACC,KAAL,CACrBZ,SAAS,CAAEM,OAAF,EAAWG,aAAX,CAAT,GAAsCL,oBADjB,CAAtB;AAGA,QAAMS,mBAAmB,GACxBH,aAAa,KAAK,CAAlB,GACGT,wBAAwB,CAAEJ,EAAE,CAAE,yBAAF,CAAJ,EAAmC;AAC3DiB,IAAAA,IAAI,EAAE;AADqD,GAAnC,CAD3B,GAIGb,wBAAwB,CACxBH,OAAO;AACN;AACAF,EAAAA,EAAE,CACD,wBADC,EAED,yBAFC,EAGDc,aAHC,CAFI,EAONA,aAPM,CADiB,EAUxB;AACCI,IAAAA,IAAI,EAAE;AADP,GAVwB,CAL5B;AAoBA,SAAO;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAiCD,mBAAjC,CAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { _x, _n, __, sprintf } from '@wordpress/i18n';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Average reading rate - based on average taken from\n * https://irisreading.com/average-reading-speed-in-various-languages/\n * (Characters/minute used for Chinese rather than words).\n *\n * @type {number} A rough estimate of the average reading rate across multiple languages.\n */\nconst AVERAGE_READING_RATE = 189;\n\nexport default function TimeToRead() {\n\tconst content = useSelect(\n\t\t( select ) => select( editorStore ).getEditedPostAttribute( 'content' ),\n\t\t[]\n\t);\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\tconst minutesToRead = Math.round(\n\t\twordCount( content, wordCountType ) / AVERAGE_READING_RATE\n\t);\n\tconst minutesToReadString =\n\t\tminutesToRead === 0\n\t\t\t? createInterpolateElement( __( '<span>< 1</span> minute' ), {\n\t\t\t\t\tspan: <span />,\n\t\t\t } )\n\t\t\t: createInterpolateElement(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s is the number of minutes the post will take to read. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'<span>%d</span> minute',\n\t\t\t\t\t\t\t'<span>%d</span> minutes',\n\t\t\t\t\t\t\tminutesToRead\n\t\t\t\t\t\t),\n\t\t\t\t\t\tminutesToRead\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tspan: <span />,\n\t\t\t\t\t}\n\t\t\t );\n\n\treturn <span className=\"time-to-read\">{ minutesToReadString }</span>;\n}\n"]}
@@ -86,12 +86,7 @@ export function isEditedPostNew(state) {
86
86
 
87
87
  export function hasChangedContent(state) {
88
88
  const edits = getPostEdits(state);
89
- return 'blocks' in edits || // `edits` is intended to contain only values which are different from
90
- // the saved post, so the mere presence of a property is an indicator
91
- // that the value is different than what is known to be saved. While
92
- // content in Visual mode is represented by the blocks state, in Text
93
- // mode it is tracked by `edits.content`.
94
- 'content' in edits;
89
+ return 'content' in edits;
95
90
  }
96
91
  /**
97
92
  * Returns true if there are unsaved values for the current edit session, or