@wordpress/editor 13.25.0 → 13.26.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 (223) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/document-bar/index.js +19 -7
  4. package/build/components/document-bar/index.js.map +1 -1
  5. package/build/components/document-outline/index.js +82 -1
  6. package/build/components/document-outline/index.js.map +1 -1
  7. package/build/components/document-tools/index.js +160 -0
  8. package/build/components/document-tools/index.js.map +1 -0
  9. package/build/components/editor-canvas/index.js +10 -4
  10. package/build/components/editor-canvas/index.js.map +1 -1
  11. package/build/components/entities-saved-states/index.js +3 -1
  12. package/build/components/entities-saved-states/index.js.map +1 -1
  13. package/build/components/global-keyboard-shortcuts/index.js +12 -2
  14. package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
  15. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
  16. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  17. package/build/components/index.js +56 -8
  18. package/build/components/index.js.map +1 -1
  19. package/build/components/index.native.js +9 -1
  20. package/build/components/index.native.js.map +1 -1
  21. package/build/components/inserter-sidebar/index.js +77 -0
  22. package/build/components/inserter-sidebar/index.js.map +1 -0
  23. package/build/components/list-view-sidebar/index.js +150 -0
  24. package/build/components/list-view-sidebar/index.js.map +1 -0
  25. package/build/components/list-view-sidebar/list-view-outline.js +28 -0
  26. package/build/components/list-view-sidebar/list-view-outline.js.map +1 -0
  27. package/build/components/offline-status/index.native.js +85 -0
  28. package/build/components/offline-status/index.native.js.map +1 -0
  29. package/build/components/page-attributes/panel.js +63 -0
  30. package/build/components/page-attributes/panel.js.map +1 -0
  31. package/build/components/post-discussion/panel.js +59 -0
  32. package/build/components/post-discussion/panel.js.map +1 -0
  33. package/build/components/post-excerpt/check.js +19 -0
  34. package/build/components/post-excerpt/check.js.map +1 -1
  35. package/build/components/post-excerpt/panel.js +55 -0
  36. package/build/components/post-excerpt/panel.js.map +1 -0
  37. package/build/components/post-excerpt/plugin.js +72 -0
  38. package/build/components/post-excerpt/plugin.js.map +1 -0
  39. package/build/components/post-featured-image/index.js +5 -8
  40. package/build/components/post-featured-image/index.js.map +1 -1
  41. package/build/components/post-featured-image/panel.js +60 -0
  42. package/build/components/post-featured-image/panel.js.map +1 -0
  43. package/build/components/post-last-revision/panel.js +27 -0
  44. package/build/components/post-last-revision/panel.js.map +1 -0
  45. package/build/components/post-saved-state/index.js +12 -8
  46. package/build/components/post-saved-state/index.js.map +1 -1
  47. package/build/components/post-taxonomies/panel.js +68 -0
  48. package/build/components/post-taxonomies/panel.js.map +1 -0
  49. package/build/components/post-template/block-theme.js +2 -1
  50. package/build/components/post-template/block-theme.js.map +1 -1
  51. package/build/components/post-template/hooks.js +6 -6
  52. package/build/components/post-template/hooks.js.map +1 -1
  53. package/build/components/post-template/panel.js +1 -2
  54. package/build/components/post-template/panel.js.map +1 -1
  55. package/build/components/post-template/swap-template-button.js +4 -2
  56. package/build/components/post-template/swap-template-button.js.map +1 -1
  57. package/build/components/post-title/index.native.js +25 -14
  58. package/build/components/post-title/index.native.js.map +1 -1
  59. package/build/components/post-view-link/index.js +58 -0
  60. package/build/components/post-view-link/index.js.map +1 -0
  61. package/build/components/post-visibility/check.js +5 -17
  62. package/build/components/post-visibility/check.js.map +1 -1
  63. package/build/components/preview-dropdown/index.js +8 -3
  64. package/build/components/preview-dropdown/index.js.map +1 -1
  65. package/build/components/provider/index.native.js +19 -0
  66. package/build/components/provider/index.native.js.map +1 -1
  67. package/build/components/provider/use-block-editor-settings.js +29 -5
  68. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  69. package/build/private-apis.js +10 -0
  70. package/build/private-apis.js.map +1 -1
  71. package/build/store/actions.js +102 -2
  72. package/build/store/actions.js.map +1 -1
  73. package/build/store/index.js +2 -0
  74. package/build/store/index.js.map +1 -1
  75. package/build/store/private-selectors.js +52 -0
  76. package/build/store/private-selectors.js.map +1 -0
  77. package/build/store/reducer.js +78 -1
  78. package/build/store/reducer.js.map +1 -1
  79. package/build/store/selectors.js +76 -2
  80. package/build/store/selectors.js.map +1 -1
  81. package/build/utils/media-upload/index.js +8 -2
  82. package/build/utils/media-upload/index.js.map +1 -1
  83. package/build-module/components/document-bar/index.js +19 -7
  84. package/build-module/components/document-bar/index.js.map +1 -1
  85. package/build-module/components/document-outline/index.js +82 -1
  86. package/build-module/components/document-outline/index.js.map +1 -1
  87. package/build-module/components/document-tools/index.js +151 -0
  88. package/build-module/components/document-tools/index.js.map +1 -0
  89. package/build-module/components/editor-canvas/index.js +10 -4
  90. package/build-module/components/editor-canvas/index.js.map +1 -1
  91. package/build-module/components/entities-saved-states/index.js +3 -1
  92. package/build-module/components/entities-saved-states/index.js.map +1 -1
  93. package/build-module/components/global-keyboard-shortcuts/index.js +12 -2
  94. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
  95. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
  96. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  97. package/build-module/components/index.js +6 -0
  98. package/build-module/components/index.js.map +1 -1
  99. package/build-module/components/index.native.js +1 -0
  100. package/build-module/components/index.native.js.map +1 -1
  101. package/build-module/components/inserter-sidebar/index.js +70 -0
  102. package/build-module/components/inserter-sidebar/index.js.map +1 -0
  103. package/build-module/components/list-view-sidebar/index.js +142 -0
  104. package/build-module/components/list-view-sidebar/index.js.map +1 -0
  105. package/build-module/components/list-view-sidebar/list-view-outline.js +20 -0
  106. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -0
  107. package/build-module/components/offline-status/index.native.js +77 -0
  108. package/build-module/components/offline-status/index.native.js.map +1 -0
  109. package/build-module/components/page-attributes/panel.js +53 -0
  110. package/build-module/components/page-attributes/panel.js.map +1 -0
  111. package/build-module/components/post-discussion/panel.js +50 -0
  112. package/build-module/components/post-discussion/panel.js.map +1 -0
  113. package/build-module/components/post-excerpt/check.js +19 -0
  114. package/build-module/components/post-excerpt/check.js.map +1 -1
  115. package/build-module/components/post-excerpt/panel.js +48 -0
  116. package/build-module/components/post-excerpt/panel.js.map +1 -0
  117. package/build-module/components/post-excerpt/plugin.js +64 -0
  118. package/build-module/components/post-excerpt/plugin.js.map +1 -0
  119. package/build-module/components/post-featured-image/index.js +5 -8
  120. package/build-module/components/post-featured-image/index.js.map +1 -1
  121. package/build-module/components/post-featured-image/panel.js +51 -0
  122. package/build-module/components/post-featured-image/panel.js.map +1 -0
  123. package/build-module/components/post-last-revision/panel.js +18 -0
  124. package/build-module/components/post-last-revision/panel.js.map +1 -0
  125. package/build-module/components/post-saved-state/index.js +12 -8
  126. package/build-module/components/post-saved-state/index.js.map +1 -1
  127. package/build-module/components/post-taxonomies/panel.js +59 -0
  128. package/build-module/components/post-taxonomies/panel.js.map +1 -0
  129. package/build-module/components/post-template/block-theme.js +2 -1
  130. package/build-module/components/post-template/block-theme.js.map +1 -1
  131. package/build-module/components/post-template/hooks.js +6 -6
  132. package/build-module/components/post-template/hooks.js.map +1 -1
  133. package/build-module/components/post-template/panel.js +1 -2
  134. package/build-module/components/post-template/panel.js.map +1 -1
  135. package/build-module/components/post-template/swap-template-button.js +4 -2
  136. package/build-module/components/post-template/swap-template-button.js.map +1 -1
  137. package/build-module/components/post-title/index.native.js +26 -15
  138. package/build-module/components/post-title/index.native.js.map +1 -1
  139. package/build-module/components/post-view-link/index.js +51 -0
  140. package/build-module/components/post-view-link/index.js.map +1 -0
  141. package/build-module/components/post-visibility/check.js +6 -16
  142. package/build-module/components/post-visibility/check.js.map +1 -1
  143. package/build-module/components/preview-dropdown/index.js +8 -3
  144. package/build-module/components/preview-dropdown/index.js.map +1 -1
  145. package/build-module/components/provider/index.native.js +19 -0
  146. package/build-module/components/provider/index.native.js.map +1 -1
  147. package/build-module/components/provider/use-block-editor-settings.js +29 -5
  148. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  149. package/build-module/private-apis.js +10 -0
  150. package/build-module/private-apis.js.map +1 -1
  151. package/build-module/store/actions.js +94 -0
  152. package/build-module/store/actions.js.map +1 -1
  153. package/build-module/store/index.js +2 -0
  154. package/build-module/store/index.js.map +1 -1
  155. package/build-module/store/private-selectors.js +43 -0
  156. package/build-module/store/private-selectors.js.map +1 -0
  157. package/build-module/store/reducer.js +74 -1
  158. package/build-module/store/reducer.js.map +1 -1
  159. package/build-module/store/selectors.js +67 -0
  160. package/build-module/store/selectors.js.map +1 -1
  161. package/build-module/utils/media-upload/index.js +8 -2
  162. package/build-module/utils/media-upload/index.js.map +1 -1
  163. package/build-style/style-rtl.css +251 -0
  164. package/build-style/style.css +251 -0
  165. package/package.json +32 -32
  166. package/src/components/document-bar/index.js +39 -28
  167. package/src/components/document-outline/index.js +48 -1
  168. package/src/components/document-outline/style.scss +12 -0
  169. package/src/components/document-tools/index.js +177 -0
  170. package/src/components/document-tools/style.scss +98 -0
  171. package/src/components/editor-canvas/index.js +12 -7
  172. package/src/components/editor-canvas/style.scss +5 -0
  173. package/src/components/entities-saved-states/index.js +3 -1
  174. package/src/components/entities-saved-states/style.scss +4 -0
  175. package/src/components/global-keyboard-shortcuts/index.js +12 -2
  176. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +10 -0
  177. package/src/components/index.js +6 -0
  178. package/src/components/index.native.js +1 -0
  179. package/src/components/inserter-sidebar/index.js +73 -0
  180. package/src/components/inserter-sidebar/style.scss +22 -0
  181. package/src/components/list-view-sidebar/index.js +169 -0
  182. package/src/components/list-view-sidebar/list-view-outline.js +37 -0
  183. package/src/components/list-view-sidebar/style.scss +84 -0
  184. package/src/components/offline-status/index.native.js +101 -0
  185. package/src/components/offline-status/style.native.scss +28 -0
  186. package/src/components/offline-status/test/index.native.js +108 -0
  187. package/src/components/page-attributes/panel.js +62 -0
  188. package/src/components/post-discussion/panel.js +57 -0
  189. package/src/components/post-excerpt/check.js +18 -0
  190. package/src/components/post-excerpt/panel.js +57 -0
  191. package/src/components/post-excerpt/plugin.js +61 -0
  192. package/src/components/post-excerpt/test/plugin.js +36 -0
  193. package/src/components/post-featured-image/index.js +3 -7
  194. package/src/components/post-featured-image/panel.js +55 -0
  195. package/src/components/post-last-revision/panel.js +22 -0
  196. package/src/components/post-last-revision/style.scss +10 -0
  197. package/src/components/post-saved-state/index.js +8 -8
  198. package/src/components/post-taxonomies/panel.js +66 -0
  199. package/src/components/post-template/block-theme.js +2 -1
  200. package/src/components/post-template/hooks.js +6 -6
  201. package/src/components/post-template/panel.js +1 -2
  202. package/src/components/post-template/swap-template-button.js +7 -4
  203. package/src/components/post-title/index.native.js +32 -17
  204. package/src/components/post-title/style.scss +1 -0
  205. package/src/components/post-title/test/__snapshots__/index.native.js.snap +25 -0
  206. package/src/components/post-title/test/index.native.js +78 -0
  207. package/src/components/post-view-link/index.js +47 -0
  208. package/src/components/post-visibility/check.js +10 -15
  209. package/src/components/post-visibility/test/check.js +24 -13
  210. package/src/components/preview-dropdown/index.js +7 -10
  211. package/src/components/provider/index.native.js +29 -2
  212. package/src/components/provider/use-block-editor-settings.js +36 -8
  213. package/src/private-apis.js +10 -0
  214. package/src/store/actions.js +109 -0
  215. package/src/store/index.js +2 -0
  216. package/src/store/private-selectors.js +51 -0
  217. package/src/store/reducer.js +72 -0
  218. package/src/store/selectors.js +80 -0
  219. package/src/store/test/actions.js +56 -0
  220. package/src/store/test/reducer.js +98 -0
  221. package/src/store/test/selectors.js +49 -0
  222. package/src/style.scss +4 -0
  223. package/src/utils/media-upload/index.js +9 -2
@@ -2,6 +2,7 @@ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
+ import { BackHandler } from 'react-native';
5
6
  import memize from 'memize';
6
7
  import { SafeAreaProvider } from 'react-native-safe-area-context';
7
8
 
@@ -61,6 +62,7 @@ class NativeEditorProvider extends Component {
61
62
  this.post = this.props.post;
62
63
  this.props.addEntities(postTypeEntities);
63
64
  this.props.receiveEntityRecords('postType', this.post.type, this.post);
65
+ this.onHardwareBackPress = this.onHardwareBackPress.bind(this);
64
66
  this.getEditorSettings = memize((settings, capabilities) => ({
65
67
  ...settings,
66
68
  capabilities
@@ -136,6 +138,7 @@ class NativeEditorProvider extends Component {
136
138
  isHelpVisible: true
137
139
  });
138
140
  });
141
+ this.hardwareBackPressListener = BackHandler.addEventListener('hardwareBackPress', this.onHardwareBackPress);
139
142
 
140
143
  // Request current block impressions from native app.
141
144
  requestBlockTypeImpressions(storedImpressions => {
@@ -189,6 +192,9 @@ class NativeEditorProvider extends Component {
189
192
  if (this.subscriptionParentShowEditorHelp) {
190
193
  this.subscriptionParentShowEditorHelp.remove();
191
194
  }
195
+ if (this.hardwareBackPressListener) {
196
+ this.hardwareBackPressListener.remove();
197
+ }
192
198
  }
193
199
  getThemeColors({
194
200
  rawStyles,
@@ -213,6 +219,17 @@ class NativeEditorProvider extends Component {
213
219
  RNReactNativeGutenbergBridge.editorDidMount(unsupportedBlockNames);
214
220
  }
215
221
  }
222
+ onHardwareBackPress() {
223
+ const {
224
+ clearSelectedBlock,
225
+ selectedBlockIndex
226
+ } = this.props;
227
+ if (selectedBlockIndex !== -1) {
228
+ clearSelectedBlock();
229
+ return true;
230
+ }
231
+ return false;
232
+ }
216
233
  serializeToNativeAction() {
217
234
  const title = this.props.title;
218
235
  let html;
@@ -324,6 +341,7 @@ const ComposedNativeProvider = compose([withSelect(select => {
324
341
  updateEditorSettings
325
342
  } = dispatch(editorStore);
326
343
  const {
344
+ clearSelectedBlock,
327
345
  updateSettings,
328
346
  insertBlock,
329
347
  replaceBlock
@@ -346,6 +364,7 @@ const ComposedNativeProvider = compose([withSelect(select => {
346
364
  insertBlock,
347
365
  createSuccessNotice,
348
366
  createErrorNotice,
367
+ clearSelectedBlock,
349
368
  editTitle(title) {
350
369
  editPost({
351
370
  title
@@ -1 +1 @@
1
- {"version":3,"names":["memize","SafeAreaProvider","RNReactNativeGutenbergBridge","requestBlockTypeImpressions","setBlockTypeImpressions","subscribeParentGetHtml","subscribeParentToggleHTMLMode","subscribeUpdateHtml","subscribeSetTitle","subscribeMediaAppend","subscribeReplaceBlock","subscribeUpdateEditorSettings","subscribeUpdateCapabilities","subscribeShowNotice","subscribeShowEditorHelp","Component","count","wordCount","parse","serialize","getUnregisteredTypeHandlerName","getBlockType","createBlock","withDispatch","withSelect","compose","applyFilters","store","blockEditorStore","getGlobalStyles","getColorsAndGradients","NEW_BLOCK_TYPES","__","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","EditorHelpTopics","editorStore","noticesStore","coreStore","editPostStore","EditorProvider","NativeEditorProvider","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","getEditorSettings","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","createErrorNotice","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","blockName","mediaType","blockType","newBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","setState","storedImpressions","impressions","storedImpressionKeys","Object","keys","storedImpressionsCurrent","every","newKey","includes","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","unsupportedBlockNames","filter","block","attributes","originalName","editorDidMount","mode","hasChanges","raw","content","contentInfo","characterCount","paragraphCount","provideToNative_Html","parsed","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","render","children","createElement","Fragment","isVisible","onClose","close","showSupport","supportSection","ComposedNativeProvider","select","_settings$colors","_settings$gradients","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","getEditorMode","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","colors","gradients","selectedBlockClientId","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","__unstableShouldCreateUndoLevel","ExperimentalEditorProvider"],"sources":["@wordpress/editor/src/components/provider/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport memize from 'memize';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport RNReactNativeGutenbergBridge, {\n\trequestBlockTypeImpressions,\n\tsetBlockTypeImpressions,\n\tsubscribeParentGetHtml,\n\tsubscribeParentToggleHTMLMode,\n\tsubscribeUpdateHtml,\n\tsubscribeSetTitle,\n\tsubscribeMediaAppend,\n\tsubscribeReplaceBlock,\n\tsubscribeUpdateEditorSettings,\n\tsubscribeUpdateCapabilities,\n\tsubscribeShowNotice,\n\tsubscribeShowEditorHelp,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport {\n\tparse,\n\tserialize,\n\tgetUnregisteredTypeHandlerName,\n\tgetBlockType,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';\nimport { NEW_BLOCK_TYPES } from '@wordpress/block-library';\nimport { __ } from '@wordpress/i18n';\n\nconst postTypeEntities = [\n\t{ name: 'post', baseURL: '/wp/v2/posts' },\n\t{ name: 'page', baseURL: '/wp/v2/pages' },\n\t{ name: 'attachment', baseURL: '/wp/v2/media' },\n\t{ name: 'wp_block', baseURL: '/wp/v2/blocks' },\n].map( ( postTypeEntity ) => ( {\n\tkind: 'postType',\n\t...postTypeEntity,\n\ttransientEdits: {\n\t\tblocks: true,\n\t\tselection: true,\n\t},\n\tmergedEdits: {\n\t\tmeta: true,\n\t},\n\trawAttributes: [ 'title', 'excerpt', 'content' ],\n} ) );\nimport { EditorHelpTopics, store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport EditorProvider from './index.js';\n\nclass NativeEditorProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\t// Keep a local reference to `post` to detect changes.\n\t\tthis.post = this.props.post;\n\t\tthis.props.addEntities( postTypeEntities );\n\t\tthis.props.receiveEntityRecords(\n\t\t\t'postType',\n\t\t\tthis.post.type,\n\t\t\tthis.post\n\t\t);\n\n\t\tthis.getEditorSettings = memize(\n\t\t\t( settings, capabilities ) => ( {\n\t\t\t\t...settings,\n\t\t\t\tcapabilities,\n\t\t\t} ),\n\t\t\t{\n\t\t\t\tmaxSize: 1,\n\t\t\t}\n\t\t);\n\t\tthis.state = {\n\t\t\tisHelpVisible: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst {\n\t\t\tcapabilities,\n\t\t\tcreateErrorNotice,\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t\tupdateEditorSettings,\n\t\t\tupdateBlockEditorSettings,\n\t\t} = this.props;\n\n\t\tupdateEditorSettings( {\n\t\t\tcapabilities,\n\t\t\t...this.getThemeColors( this.props ),\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t} );\n\n\t\tthis.subscriptionParentGetHtml = subscribeParentGetHtml( () => {\n\t\t\tthis.serializeToNativeAction();\n\t\t} );\n\n\t\tthis.subscriptionParentToggleHTMLMode = subscribeParentToggleHTMLMode(\n\t\t\t() => {\n\t\t\t\tthis.toggleMode();\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentSetTitle = subscribeSetTitle( ( payload ) => {\n\t\t\tthis.props.editTitle( payload.title );\n\t\t} );\n\n\t\tthis.subscriptionParentUpdateHtml = subscribeUpdateHtml(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateHtmlAction( payload.html );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentReplaceBlock = subscribeReplaceBlock(\n\t\t\t( payload ) => {\n\t\t\t\tthis.replaceBlockAction( payload.html, payload.clientId );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentMediaAppend = subscribeMediaAppend(\n\t\t\t( payload ) => {\n\t\t\t\tconst blockName = 'core/' + payload.mediaType;\n\t\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\t\tif ( blockType && blockType?.name ) {\n\t\t\t\t\tconst newBlock = createBlock( blockType.name, {\n\t\t\t\t\t\tid: payload.mediaId,\n\t\t\t\t\t\t[ payload.mediaType === 'image' ? 'url' : 'src' ]:\n\t\t\t\t\t\t\tpayload.mediaUrl,\n\t\t\t\t\t} );\n\n\t\t\t\t\tconst indexAfterSelected =\n\t\t\t\t\t\tthis.props.selectedBlockIndex + 1;\n\t\t\t\t\tconst insertionIndex =\n\t\t\t\t\t\tindexAfterSelected || this.props.blockCount;\n\n\t\t\t\t\tthis.props.insertBlock( newBlock, insertionIndex );\n\t\t\t\t} else {\n\t\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t\t__( 'File type not supported as a media file.' )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentUpdateEditorSettings =\n\t\t\tsubscribeUpdateEditorSettings(\n\t\t\t\t( { galleryWithImageBlocks, ...editorSettings } ) => {\n\t\t\t\t\tif ( typeof galleryWithImageBlocks === 'boolean' ) {\n\t\t\t\t\t\twindow.wp.galleryBlockV2Enabled =\n\t\t\t\t\t\t\tgalleryWithImageBlocks;\n\t\t\t\t\t}\n\t\t\t\t\tupdateEditorSettings(\n\t\t\t\t\t\tthis.getThemeColors( editorSettings )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.subscriptionParentUpdateCapabilities = subscribeUpdateCapabilities(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateCapabilitiesAction( payload );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowNotice = subscribeShowNotice(\n\t\t\t( payload ) => {\n\t\t\t\tthis.props.createSuccessNotice( payload.message );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowEditorHelp = subscribeShowEditorHelp( () => {\n\t\t\tthis.setState( { isHelpVisible: true } );\n\t\t} );\n\n\t\t// Request current block impressions from native app.\n\t\trequestBlockTypeImpressions( ( storedImpressions ) => {\n\t\t\tconst impressions = { ...NEW_BLOCK_TYPES, ...storedImpressions };\n\n\t\t\t// Persist impressions to JavaScript store.\n\t\t\tupdateBlockEditorSettings( { impressions } );\n\n\t\t\t// Persist impressions to native store if they do not include latest\n\t\t\t// `NEW_BLOCK_TYPES` configuration.\n\t\t\tconst storedImpressionKeys = Object.keys( storedImpressions );\n\t\t\tconst storedImpressionsCurrent = Object.keys(\n\t\t\t\tNEW_BLOCK_TYPES\n\t\t\t).every( ( newKey ) => storedImpressionKeys.includes( newKey ) );\n\t\t\tif ( ! storedImpressionsCurrent ) {\n\t\t\t\tsetBlockTypeImpressions( impressions );\n\t\t\t}\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.subscriptionParentGetHtml ) {\n\t\t\tthis.subscriptionParentGetHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentToggleHTMLMode ) {\n\t\t\tthis.subscriptionParentToggleHTMLMode.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentSetTitle ) {\n\t\t\tthis.subscriptionParentSetTitle.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateHtml ) {\n\t\t\tthis.subscriptionParentUpdateHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentReplaceBlock ) {\n\t\t\tthis.subscriptionParentReplaceBlock.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentMediaAppend ) {\n\t\t\tthis.subscriptionParentMediaAppend.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateEditorSettings ) {\n\t\t\tthis.subscriptionParentUpdateEditorSettings.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateCapabilities ) {\n\t\t\tthis.subscriptionParentUpdateCapabilities.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowNotice ) {\n\t\t\tthis.subscriptionParentShowNotice.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowEditorHelp ) {\n\t\t\tthis.subscriptionParentShowEditorHelp.remove();\n\t\t}\n\t}\n\n\tgetThemeColors( { rawStyles, rawFeatures } ) {\n\t\tconst { defaultEditorColors, defaultEditorGradients } = this.props;\n\n\t\tif ( rawStyles && rawFeatures ) {\n\t\t\treturn getGlobalStyles( rawStyles, rawFeatures );\n\t\t}\n\n\t\treturn getColorsAndGradients(\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\trawFeatures\n\t\t);\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! prevProps.isReady && this.props.isReady ) {\n\t\t\tconst blocks = this.props.blocks;\n\t\t\tconst isUnsupportedBlock = ( { name } ) =>\n\t\t\t\tname === getUnregisteredTypeHandlerName();\n\t\t\tconst unsupportedBlockNames = blocks\n\t\t\t\t.filter( isUnsupportedBlock )\n\t\t\t\t.map( ( block ) => block.attributes.originalName );\n\t\t\tRNReactNativeGutenbergBridge.editorDidMount(\n\t\t\t\tunsupportedBlockNames\n\t\t\t);\n\t\t}\n\t}\n\n\tserializeToNativeAction() {\n\t\tconst title = this.props.title;\n\t\tlet html;\n\n\t\tif ( this.props.mode === 'text' ) {\n\t\t\t// The HTMLTextInput component does not update the store when user is doing changes\n\t\t\t// Let's request the HTML from the component's state directly.\n\t\t\thtml = applyFilters( 'native.persist-html' );\n\t\t} else {\n\t\t\thtml = serialize( this.props.blocks );\n\t\t}\n\n\t\tconst hasChanges =\n\t\t\ttitle !== this.post.title.raw || html !== this.post.content.raw;\n\n\t\t// Variable to store the content structure metrics.\n\t\tconst contentInfo = {};\n\t\tcontentInfo.characterCount = wordCount(\n\t\t\thtml,\n\t\t\t'characters_including_spaces'\n\t\t);\n\t\tcontentInfo.wordCount = wordCount( html, 'words' );\n\t\tcontentInfo.paragraphCount = this.props.paragraphCount;\n\t\tcontentInfo.blockCount = this.props.blockCount;\n\t\tRNReactNativeGutenbergBridge.provideToNative_Html(\n\t\t\thtml,\n\t\t\ttitle,\n\t\t\thasChanges,\n\t\t\tcontentInfo\n\t\t);\n\n\t\tif ( hasChanges ) {\n\t\t\tthis.post.title.raw = title;\n\t\t\tthis.post.content.raw = html;\n\t\t}\n\t}\n\n\tupdateHtmlAction( html ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.resetEditorBlocksWithoutUndoLevel( parsed );\n\t}\n\n\treplaceBlockAction( html, blockClientId ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.replaceBlock( blockClientId, parsed );\n\t}\n\n\ttoggleMode() {\n\t\tconst { mode, switchMode } = this.props;\n\t\t// Refresh html content first.\n\t\tthis.serializeToNativeAction();\n\t\tswitchMode( mode === 'visual' ? 'text' : 'visual' );\n\t}\n\n\tupdateCapabilitiesAction( capabilities ) {\n\t\tthis.props.updateEditorSettings( { capabilities } );\n\t}\n\n\trender() {\n\t\tconst { children, post, capabilities, settings, ...props } = this.props;\n\t\tconst editorSettings = this.getEditorSettings( settings, capabilities );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ this.post }\n\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<SafeAreaProvider>{ children }</SafeAreaProvider>\n\t\t\t\t</EditorProvider>\n\t\t\t\t<EditorHelpTopics\n\t\t\t\t\tisVisible={ this.state.isHelpVisible }\n\t\t\t\t\tonClose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tclose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tshowSupport={ capabilities?.supportSection === true }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nconst ComposedNativeProvider = compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\t__unstableIsEditorReady: isEditorReady,\n\t\t\tgetEditorBlocks,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostContent,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getEditorMode } = select( editPostStore );\n\n\t\tconst { getBlockIndex, getSelectedBlockClientId, getGlobalBlockCount } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst settings = getEditorSettings();\n\t\tconst defaultEditorColors = settings?.colors ?? [];\n\t\tconst defaultEditorGradients = settings?.gradients ?? [];\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tmode: getEditorMode(),\n\t\t\tisReady: isEditorReady(),\n\t\t\tblocks: getEditorBlocks(),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tgetEditedPostContent,\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\tselectedBlockIndex: getBlockIndex( selectedBlockClientId ),\n\t\t\tblockCount: getGlobalBlockCount(),\n\t\t\tparagraphCount: getGlobalBlockCount( 'core/paragraph' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, resetEditorBlocks, updateEditorSettings } =\n\t\t\tdispatch( editorStore );\n\t\tconst { updateSettings, insertBlock, replaceBlock } =\n\t\t\tdispatch( blockEditorStore );\n\t\tconst { switchEditorMode } = dispatch( editPostStore );\n\t\tconst { addEntities, receiveEntityRecords } = dispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tdispatch( noticesStore );\n\n\t\treturn {\n\t\t\tupdateBlockEditorSettings: updateSettings,\n\t\t\tupdateEditorSettings,\n\t\t\taddEntities,\n\t\t\tinsertBlock,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditTitle( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\treceiveEntityRecords,\n\t\t\tresetEditorBlocksWithoutUndoLevel( blocks ) {\n\t\t\t\tresetEditorBlocks( blocks, {\n\t\t\t\t\t__unstableShouldCreateUndoLevel: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tswitchMode( mode ) {\n\t\t\t\tswitchEditorMode( mode );\n\t\t\t},\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n] )( NativeEditorProvider );\n\nexport default ComposedNativeProvider;\nexport { ComposedNativeProvider as ExperimentalEditorProvider };\n"],"mappings":"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"}
1
+ {"version":3,"names":["BackHandler","memize","SafeAreaProvider","RNReactNativeGutenbergBridge","requestBlockTypeImpressions","setBlockTypeImpressions","subscribeParentGetHtml","subscribeParentToggleHTMLMode","subscribeUpdateHtml","subscribeSetTitle","subscribeMediaAppend","subscribeReplaceBlock","subscribeUpdateEditorSettings","subscribeUpdateCapabilities","subscribeShowNotice","subscribeShowEditorHelp","Component","count","wordCount","parse","serialize","getUnregisteredTypeHandlerName","getBlockType","createBlock","withDispatch","withSelect","compose","applyFilters","store","blockEditorStore","getGlobalStyles","getColorsAndGradients","NEW_BLOCK_TYPES","__","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","EditorHelpTopics","editorStore","noticesStore","coreStore","editPostStore","EditorProvider","NativeEditorProvider","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","onHardwareBackPress","bind","getEditorSettings","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","createErrorNotice","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","blockName","mediaType","blockType","newBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","setState","hardwareBackPressListener","addEventListener","storedImpressions","impressions","storedImpressionKeys","Object","keys","storedImpressionsCurrent","every","newKey","includes","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","unsupportedBlockNames","filter","block","attributes","originalName","editorDidMount","clearSelectedBlock","mode","hasChanges","raw","content","contentInfo","characterCount","paragraphCount","provideToNative_Html","parsed","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","render","children","createElement","Fragment","isVisible","onClose","close","showSupport","supportSection","ComposedNativeProvider","select","_settings$colors","_settings$gradients","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","getEditorMode","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","colors","gradients","selectedBlockClientId","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","__unstableShouldCreateUndoLevel","ExperimentalEditorProvider"],"sources":["@wordpress/editor/src/components/provider/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { BackHandler } from 'react-native';\nimport memize from 'memize';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport RNReactNativeGutenbergBridge, {\n\trequestBlockTypeImpressions,\n\tsetBlockTypeImpressions,\n\tsubscribeParentGetHtml,\n\tsubscribeParentToggleHTMLMode,\n\tsubscribeUpdateHtml,\n\tsubscribeSetTitle,\n\tsubscribeMediaAppend,\n\tsubscribeReplaceBlock,\n\tsubscribeUpdateEditorSettings,\n\tsubscribeUpdateCapabilities,\n\tsubscribeShowNotice,\n\tsubscribeShowEditorHelp,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport {\n\tparse,\n\tserialize,\n\tgetUnregisteredTypeHandlerName,\n\tgetBlockType,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';\nimport { NEW_BLOCK_TYPES } from '@wordpress/block-library';\nimport { __ } from '@wordpress/i18n';\n\nconst postTypeEntities = [\n\t{ name: 'post', baseURL: '/wp/v2/posts' },\n\t{ name: 'page', baseURL: '/wp/v2/pages' },\n\t{ name: 'attachment', baseURL: '/wp/v2/media' },\n\t{ name: 'wp_block', baseURL: '/wp/v2/blocks' },\n].map( ( postTypeEntity ) => ( {\n\tkind: 'postType',\n\t...postTypeEntity,\n\ttransientEdits: {\n\t\tblocks: true,\n\t\tselection: true,\n\t},\n\tmergedEdits: {\n\t\tmeta: true,\n\t},\n\trawAttributes: [ 'title', 'excerpt', 'content' ],\n} ) );\nimport { EditorHelpTopics, store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport EditorProvider from './index.js';\n\nclass NativeEditorProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\t// Keep a local reference to `post` to detect changes.\n\t\tthis.post = this.props.post;\n\t\tthis.props.addEntities( postTypeEntities );\n\t\tthis.props.receiveEntityRecords(\n\t\t\t'postType',\n\t\t\tthis.post.type,\n\t\t\tthis.post\n\t\t);\n\n\t\tthis.onHardwareBackPress = this.onHardwareBackPress.bind( this );\n\n\t\tthis.getEditorSettings = memize(\n\t\t\t( settings, capabilities ) => ( {\n\t\t\t\t...settings,\n\t\t\t\tcapabilities,\n\t\t\t} ),\n\t\t\t{\n\t\t\t\tmaxSize: 1,\n\t\t\t}\n\t\t);\n\t\tthis.state = {\n\t\t\tisHelpVisible: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst {\n\t\t\tcapabilities,\n\t\t\tcreateErrorNotice,\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t\tupdateEditorSettings,\n\t\t\tupdateBlockEditorSettings,\n\t\t} = this.props;\n\n\t\tupdateEditorSettings( {\n\t\t\tcapabilities,\n\t\t\t...this.getThemeColors( this.props ),\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t} );\n\n\t\tthis.subscriptionParentGetHtml = subscribeParentGetHtml( () => {\n\t\t\tthis.serializeToNativeAction();\n\t\t} );\n\n\t\tthis.subscriptionParentToggleHTMLMode = subscribeParentToggleHTMLMode(\n\t\t\t() => {\n\t\t\t\tthis.toggleMode();\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentSetTitle = subscribeSetTitle( ( payload ) => {\n\t\t\tthis.props.editTitle( payload.title );\n\t\t} );\n\n\t\tthis.subscriptionParentUpdateHtml = subscribeUpdateHtml(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateHtmlAction( payload.html );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentReplaceBlock = subscribeReplaceBlock(\n\t\t\t( payload ) => {\n\t\t\t\tthis.replaceBlockAction( payload.html, payload.clientId );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentMediaAppend = subscribeMediaAppend(\n\t\t\t( payload ) => {\n\t\t\t\tconst blockName = 'core/' + payload.mediaType;\n\t\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\t\tif ( blockType && blockType?.name ) {\n\t\t\t\t\tconst newBlock = createBlock( blockType.name, {\n\t\t\t\t\t\tid: payload.mediaId,\n\t\t\t\t\t\t[ payload.mediaType === 'image' ? 'url' : 'src' ]:\n\t\t\t\t\t\t\tpayload.mediaUrl,\n\t\t\t\t\t} );\n\n\t\t\t\t\tconst indexAfterSelected =\n\t\t\t\t\t\tthis.props.selectedBlockIndex + 1;\n\t\t\t\t\tconst insertionIndex =\n\t\t\t\t\t\tindexAfterSelected || this.props.blockCount;\n\n\t\t\t\t\tthis.props.insertBlock( newBlock, insertionIndex );\n\t\t\t\t} else {\n\t\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t\t__( 'File type not supported as a media file.' )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentUpdateEditorSettings =\n\t\t\tsubscribeUpdateEditorSettings(\n\t\t\t\t( { galleryWithImageBlocks, ...editorSettings } ) => {\n\t\t\t\t\tif ( typeof galleryWithImageBlocks === 'boolean' ) {\n\t\t\t\t\t\twindow.wp.galleryBlockV2Enabled =\n\t\t\t\t\t\t\tgalleryWithImageBlocks;\n\t\t\t\t\t}\n\t\t\t\t\tupdateEditorSettings(\n\t\t\t\t\t\tthis.getThemeColors( editorSettings )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.subscriptionParentUpdateCapabilities = subscribeUpdateCapabilities(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateCapabilitiesAction( payload );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowNotice = subscribeShowNotice(\n\t\t\t( payload ) => {\n\t\t\t\tthis.props.createSuccessNotice( payload.message );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowEditorHelp = subscribeShowEditorHelp( () => {\n\t\t\tthis.setState( { isHelpVisible: true } );\n\t\t} );\n\n\t\tthis.hardwareBackPressListener = BackHandler.addEventListener(\n\t\t\t'hardwareBackPress',\n\t\t\tthis.onHardwareBackPress\n\t\t);\n\n\t\t// Request current block impressions from native app.\n\t\trequestBlockTypeImpressions( ( storedImpressions ) => {\n\t\t\tconst impressions = { ...NEW_BLOCK_TYPES, ...storedImpressions };\n\n\t\t\t// Persist impressions to JavaScript store.\n\t\t\tupdateBlockEditorSettings( { impressions } );\n\n\t\t\t// Persist impressions to native store if they do not include latest\n\t\t\t// `NEW_BLOCK_TYPES` configuration.\n\t\t\tconst storedImpressionKeys = Object.keys( storedImpressions );\n\t\t\tconst storedImpressionsCurrent = Object.keys(\n\t\t\t\tNEW_BLOCK_TYPES\n\t\t\t).every( ( newKey ) => storedImpressionKeys.includes( newKey ) );\n\t\t\tif ( ! storedImpressionsCurrent ) {\n\t\t\t\tsetBlockTypeImpressions( impressions );\n\t\t\t}\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.subscriptionParentGetHtml ) {\n\t\t\tthis.subscriptionParentGetHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentToggleHTMLMode ) {\n\t\t\tthis.subscriptionParentToggleHTMLMode.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentSetTitle ) {\n\t\t\tthis.subscriptionParentSetTitle.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateHtml ) {\n\t\t\tthis.subscriptionParentUpdateHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentReplaceBlock ) {\n\t\t\tthis.subscriptionParentReplaceBlock.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentMediaAppend ) {\n\t\t\tthis.subscriptionParentMediaAppend.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateEditorSettings ) {\n\t\t\tthis.subscriptionParentUpdateEditorSettings.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateCapabilities ) {\n\t\t\tthis.subscriptionParentUpdateCapabilities.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowNotice ) {\n\t\t\tthis.subscriptionParentShowNotice.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowEditorHelp ) {\n\t\t\tthis.subscriptionParentShowEditorHelp.remove();\n\t\t}\n\n\t\tif ( this.hardwareBackPressListener ) {\n\t\t\tthis.hardwareBackPressListener.remove();\n\t\t}\n\t}\n\n\tgetThemeColors( { rawStyles, rawFeatures } ) {\n\t\tconst { defaultEditorColors, defaultEditorGradients } = this.props;\n\n\t\tif ( rawStyles && rawFeatures ) {\n\t\t\treturn getGlobalStyles( rawStyles, rawFeatures );\n\t\t}\n\n\t\treturn getColorsAndGradients(\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\trawFeatures\n\t\t);\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! prevProps.isReady && this.props.isReady ) {\n\t\t\tconst blocks = this.props.blocks;\n\t\t\tconst isUnsupportedBlock = ( { name } ) =>\n\t\t\t\tname === getUnregisteredTypeHandlerName();\n\t\t\tconst unsupportedBlockNames = blocks\n\t\t\t\t.filter( isUnsupportedBlock )\n\t\t\t\t.map( ( block ) => block.attributes.originalName );\n\t\t\tRNReactNativeGutenbergBridge.editorDidMount(\n\t\t\t\tunsupportedBlockNames\n\t\t\t);\n\t\t}\n\t}\n\n\tonHardwareBackPress() {\n\t\tconst { clearSelectedBlock, selectedBlockIndex } = this.props;\n\n\t\tif ( selectedBlockIndex !== -1 ) {\n\t\t\tclearSelectedBlock();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tserializeToNativeAction() {\n\t\tconst title = this.props.title;\n\t\tlet html;\n\n\t\tif ( this.props.mode === 'text' ) {\n\t\t\t// The HTMLTextInput component does not update the store when user is doing changes\n\t\t\t// Let's request the HTML from the component's state directly.\n\t\t\thtml = applyFilters( 'native.persist-html' );\n\t\t} else {\n\t\t\thtml = serialize( this.props.blocks );\n\t\t}\n\n\t\tconst hasChanges =\n\t\t\ttitle !== this.post.title.raw || html !== this.post.content.raw;\n\n\t\t// Variable to store the content structure metrics.\n\t\tconst contentInfo = {};\n\t\tcontentInfo.characterCount = wordCount(\n\t\t\thtml,\n\t\t\t'characters_including_spaces'\n\t\t);\n\t\tcontentInfo.wordCount = wordCount( html, 'words' );\n\t\tcontentInfo.paragraphCount = this.props.paragraphCount;\n\t\tcontentInfo.blockCount = this.props.blockCount;\n\t\tRNReactNativeGutenbergBridge.provideToNative_Html(\n\t\t\thtml,\n\t\t\ttitle,\n\t\t\thasChanges,\n\t\t\tcontentInfo\n\t\t);\n\n\t\tif ( hasChanges ) {\n\t\t\tthis.post.title.raw = title;\n\t\t\tthis.post.content.raw = html;\n\t\t}\n\t}\n\n\tupdateHtmlAction( html ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.resetEditorBlocksWithoutUndoLevel( parsed );\n\t}\n\n\treplaceBlockAction( html, blockClientId ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.replaceBlock( blockClientId, parsed );\n\t}\n\n\ttoggleMode() {\n\t\tconst { mode, switchMode } = this.props;\n\t\t// Refresh html content first.\n\t\tthis.serializeToNativeAction();\n\t\tswitchMode( mode === 'visual' ? 'text' : 'visual' );\n\t}\n\n\tupdateCapabilitiesAction( capabilities ) {\n\t\tthis.props.updateEditorSettings( { capabilities } );\n\t}\n\n\trender() {\n\t\tconst { children, post, capabilities, settings, ...props } = this.props;\n\t\tconst editorSettings = this.getEditorSettings( settings, capabilities );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ this.post }\n\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<SafeAreaProvider>{ children }</SafeAreaProvider>\n\t\t\t\t</EditorProvider>\n\t\t\t\t<EditorHelpTopics\n\t\t\t\t\tisVisible={ this.state.isHelpVisible }\n\t\t\t\t\tonClose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tclose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tshowSupport={ capabilities?.supportSection === true }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nconst ComposedNativeProvider = compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\t__unstableIsEditorReady: isEditorReady,\n\t\t\tgetEditorBlocks,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostContent,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getEditorMode } = select( editPostStore );\n\n\t\tconst { getBlockIndex, getSelectedBlockClientId, getGlobalBlockCount } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst settings = getEditorSettings();\n\t\tconst defaultEditorColors = settings?.colors ?? [];\n\t\tconst defaultEditorGradients = settings?.gradients ?? [];\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tmode: getEditorMode(),\n\t\t\tisReady: isEditorReady(),\n\t\t\tblocks: getEditorBlocks(),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tgetEditedPostContent,\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\tselectedBlockIndex: getBlockIndex( selectedBlockClientId ),\n\t\t\tblockCount: getGlobalBlockCount(),\n\t\t\tparagraphCount: getGlobalBlockCount( 'core/paragraph' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, resetEditorBlocks, updateEditorSettings } =\n\t\t\tdispatch( editorStore );\n\t\tconst {\n\t\t\tclearSelectedBlock,\n\t\t\tupdateSettings,\n\t\t\tinsertBlock,\n\t\t\treplaceBlock,\n\t\t} = dispatch( blockEditorStore );\n\t\tconst { switchEditorMode } = dispatch( editPostStore );\n\t\tconst { addEntities, receiveEntityRecords } = dispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tdispatch( noticesStore );\n\n\t\treturn {\n\t\t\tupdateBlockEditorSettings: updateSettings,\n\t\t\tupdateEditorSettings,\n\t\t\taddEntities,\n\t\t\tinsertBlock,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\tclearSelectedBlock,\n\t\t\teditTitle( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\treceiveEntityRecords,\n\t\t\tresetEditorBlocksWithoutUndoLevel( blocks ) {\n\t\t\t\tresetEditorBlocks( blocks, {\n\t\t\t\t\t__unstableShouldCreateUndoLevel: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tswitchMode( mode ) {\n\t\t\t\tswitchEditorMode( mode );\n\t\t\t},\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n] )( NativeEditorProvider );\n\nexport default ComposedNativeProvider;\nexport { ComposedNativeProvider as ExperimentalEditorProvider };\n"],"mappings":"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"}
@@ -5,6 +5,8 @@ import { Platform, useMemo, useCallback } from '@wordpress/element';
5
5
  import { useDispatch, useSelect } from '@wordpress/data';
6
6
  import { store as coreStore, __experimentalFetchLinkSuggestions as fetchLinkSuggestions, __experimentalFetchUrlData as fetchUrlData } from '@wordpress/core-data';
7
7
  import { __ } from '@wordpress/i18n';
8
+ import { store as preferencesStore } from '@wordpress/preferences';
9
+ import { useViewportMatch } from '@wordpress/compose';
8
10
 
9
11
  /**
10
12
  * Internal dependencies
@@ -13,7 +15,7 @@ import inserterMediaCategories from '../media-categories';
13
15
  import { mediaUpload } from '../../utils';
14
16
  import { store as editorStore } from '../../store';
15
17
  const EMPTY_BLOCKS_LIST = [];
16
- const BLOCK_EDITOR_SETTINGS = ['__experimentalBlockDirectory', '__experimentalDiscussionSettings', '__experimentalFeatures', '__experimentalGlobalStylesBaseStyles', '__experimentalPreferredStyleVariations', '__experimentalSetIsInserterOpened', '__unstableGalleryWithImageBlocks', 'alignWide', 'allowedBlockTypes', 'blockInspectorTabs', 'allowedMimeTypes', 'bodyPlaceholder', 'canLockBlocks', 'capabilities', 'clearBlockSelection', 'codeEditingEnabled', 'colors', 'disableCustomColors', 'disableCustomFontSizes', 'disableCustomSpacingSizes', 'disableCustomGradients', 'disableLayoutStyles', 'enableCustomLineHeight', 'enableCustomSpacing', 'enableCustomUnits', 'enableOpenverseMediaCategory', 'focusMode', 'distractionFree', 'fontSizes', 'gradients', 'generateAnchors', 'hasFixedToolbar', 'hasInlineToolbar', 'isDistractionFree', 'imageDefaultSize', 'imageDimensions', 'imageEditing', 'imageSizes', 'isRTL', 'keepCaretInsideBlock', 'locale', 'maxWidth', 'onUpdateDefaultBlockStyles', 'postContentAttributes', 'postsPerPage', 'readOnly', 'styles', 'titlePlaceholder', 'supportsLayout', 'widgetTypesToHideFromLegacyWidgetBlock', '__unstableHasCustomAppender', '__unstableIsPreviewMode', '__unstableResolvedAssets', '__unstableIsBlockBasedTheme', '__experimentalArchiveTitleTypeLabel', '__experimentalArchiveTitleNameLabel'];
18
+ const BLOCK_EDITOR_SETTINGS = ['__experimentalBlockDirectory', '__experimentalDiscussionSettings', '__experimentalFeatures', '__experimentalGlobalStylesBaseStyles', '__experimentalPreferredStyleVariations', '__unstableGalleryWithImageBlocks', 'alignWide', 'allowedBlockTypes', 'blockInspectorTabs', 'allowedMimeTypes', 'bodyPlaceholder', 'canLockBlocks', 'capabilities', 'clearBlockSelection', 'codeEditingEnabled', 'colors', 'disableCustomColors', 'disableCustomFontSizes', 'disableCustomSpacingSizes', 'disableCustomGradients', 'disableLayoutStyles', 'enableCustomLineHeight', 'enableCustomSpacing', 'enableCustomUnits', 'enableOpenverseMediaCategory', 'fontSizes', 'gradients', 'generateAnchors', 'getPostLinkProps', 'hasInlineToolbar', 'imageDefaultSize', 'imageDimensions', 'imageEditing', 'imageSizes', 'isRTL', 'locale', 'maxWidth', 'onUpdateDefaultBlockStyles', 'postContentAttributes', 'postsPerPage', 'readOnly', 'styles', 'titlePlaceholder', 'supportsLayout', 'widgetTypesToHideFromLegacyWidgetBlock', '__unstableHasCustomAppender', '__unstableIsPreviewMode', '__unstableResolvedAssets', '__unstableIsBlockBasedTheme', '__experimentalArchiveTitleTypeLabel', '__experimentalArchiveTitleNameLabel'];
17
19
 
18
20
  /**
19
21
  * React hook used to compute the block editor settings to use for the post editor.
@@ -26,7 +28,13 @@ const BLOCK_EDITOR_SETTINGS = ['__experimentalBlockDirectory', '__experimentalDi
26
28
  */
27
29
  function useBlockEditorSettings(settings, postType, postId) {
28
30
  var _settings$__experimen, _settings$__experimen2;
31
+ const isLargeViewport = useViewportMatch('medium');
29
32
  const {
33
+ allowRightClickOverrides,
34
+ focusMode,
35
+ hasFixedToolbar,
36
+ isDistractionFree,
37
+ keepCaretInsideBlock,
30
38
  reusableBlocks,
31
39
  hasUploadPermissions,
32
40
  canUseUnfilteredHTML,
@@ -48,9 +56,17 @@ function useBlockEditorSettings(settings, postType, postId) {
48
56
  getBlockPatterns,
49
57
  getBlockPatternCategories
50
58
  } = select(coreStore);
59
+ const {
60
+ get
61
+ } = select(preferencesStore);
51
62
  const siteSettings = canUser('read', 'settings') ? getEntityRecord('root', 'site') : undefined;
52
63
  return {
64
+ allowRightClickOverrides: get('core', 'allowRightClickOverrides'),
53
65
  canUseUnfilteredHTML: getRawEntityRecord('postType', postType, postId)?._links?.hasOwnProperty('wp:action-unfiltered-html'),
66
+ focusMode: get('core', 'focusMode'),
67
+ hasFixedToolbar: get('core', 'fixedToolbar') || !isLargeViewport,
68
+ isDistractionFree: get('core', 'distractionFree'),
69
+ keepCaretInsideBlock: get('core', 'keepCaretInsideBlock'),
54
70
  reusableBlocks: isWeb ? getEntityRecords('postType', 'wp_block', {
55
71
  per_page: -1
56
72
  }) : EMPTY_BLOCKS_LIST,
@@ -63,7 +79,7 @@ function useBlockEditorSettings(settings, postType, postId) {
63
79
  restBlockPatterns: getBlockPatterns(),
64
80
  restBlockPatternCategories: getBlockPatternCategories()
65
81
  };
66
- }, [postType, postId]);
82
+ }, [postType, postId, isLargeViewport]);
67
83
  const settingsBlockPatterns = (_settings$__experimen = settings.__experimentalAdditionalBlockPatterns) !== null && _settings$__experimen !== void 0 ? _settings$__experimen :
68
84
  // WP 6.0
69
85
  settings.__experimentalBlockPatterns; // WP 5.9
@@ -78,7 +94,8 @@ function useBlockEditorSettings(settings, postType, postId) {
78
94
  }), [settingsBlockPatterns, restBlockPatterns, postType]);
79
95
  const blockPatternCategories = useMemo(() => [...(settingsBlockPatternCategories || []), ...(restBlockPatternCategories || [])].filter((x, index, arr) => index === arr.findIndex(y => x.name === y.name)), [settingsBlockPatternCategories, restBlockPatternCategories]);
80
96
  const {
81
- undo
97
+ undo,
98
+ setIsInserterOpened
82
99
  } = useDispatch(editorStore);
83
100
  const {
84
101
  saveEntityRecord
@@ -99,8 +116,14 @@ function useBlockEditorSettings(settings, postType, postId) {
99
116
  }
100
117
  return saveEntityRecord('postType', 'page', options);
101
118
  }, [saveEntityRecord, userCanCreatePages]);
119
+ const forceDisableFocusMode = settings.focusMode === false;
102
120
  return useMemo(() => ({
103
121
  ...Object.fromEntries(Object.entries(settings).filter(([key]) => BLOCK_EDITOR_SETTINGS.includes(key))),
122
+ allowRightClickOverrides,
123
+ focusMode: focusMode && !forceDisableFocusMode,
124
+ hasFixedToolbar,
125
+ isDistractionFree,
126
+ keepCaretInsideBlock,
104
127
  mediaUpload: hasUploadPermissions ? mediaUpload : undefined,
105
128
  __experimentalReusableBlocks: reusableBlocks,
106
129
  __experimentalBlockPatterns: blockPatterns,
@@ -124,8 +147,9 @@ function useBlockEditorSettings(settings, postType, postId) {
124
147
  pageForPosts,
125
148
  __experimentalPreferPatternsOnRoot: postType === 'wp_template',
126
149
  templateLock: postType === 'wp_navigation' ? 'insert' : settings.templateLock,
127
- template: postType === 'wp_navigation' ? [['core/navigation', {}, []]] : settings.template
128
- }), [settings, hasUploadPermissions, reusableBlocks, userPatternCategories, blockPatterns, blockPatternCategories, canUseUnfilteredHTML, undo, createPageEntity, userCanCreatePages, pageOnFront, pageForPosts, postType]);
150
+ template: postType === 'wp_navigation' ? [['core/navigation', {}, []]] : settings.template,
151
+ __experimentalSetIsInserterOpened: setIsInserterOpened
152
+ }), [allowRightClickOverrides, focusMode, forceDisableFocusMode, hasFixedToolbar, isDistractionFree, keepCaretInsideBlock, settings, hasUploadPermissions, reusableBlocks, userPatternCategories, blockPatterns, blockPatternCategories, canUseUnfilteredHTML, undo, createPageEntity, userCanCreatePages, pageOnFront, pageForPosts, postType, setIsInserterOpened]);
129
153
  }
130
154
  export default useBlockEditorSettings;
131
155
  //# sourceMappingURL=use-block-editor-settings.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","useMemo","useCallback","useDispatch","useSelect","store","coreStore","__experimentalFetchLinkSuggestions","fetchLinkSuggestions","__experimentalFetchUrlData","fetchUrlData","__","inserterMediaCategories","mediaUpload","editorStore","EMPTY_BLOCKS_LIST","BLOCK_EDITOR_SETTINGS","useBlockEditorSettings","settings","postType","postId","_settings$__experimen","_settings$__experimen2","reusableBlocks","hasUploadPermissions","canUseUnfilteredHTML","userCanCreatePages","pageOnFront","pageForPosts","userPatternCategories","restBlockPatterns","restBlockPatternCategories","select","_canUser","isWeb","OS","canUser","getRawEntityRecord","getEntityRecord","getUserPatternCategories","getEntityRecords","getBlockPatterns","getBlockPatternCategories","siteSettings","undefined","_links","hasOwnProperty","per_page","page_on_front","page_for_posts","settingsBlockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","settingsBlockPatternCategories","__experimentalAdditionalBlockPatternCategories","__experimentalBlockPatternCategories","blockPatterns","filter","x","index","arr","findIndex","y","name","postTypes","Array","isArray","includes","blockPatternCategories","undo","saveEntityRecord","createPageEntity","options","Promise","reject","message","Object","fromEntries","entries","key","__experimentalReusableBlocks","__experimentalUserPatternCategories","search","searchOptions","__experimentalFetchRichUrlData","__experimentalCanUserUseUnfilteredHTML","__experimentalUndo","outlineMode","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","__experimentalPreferPatternsOnRoot","templateLock","template"],"sources":["@wordpress/editor/src/components/provider/use-block-editor-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Platform, useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\t__experimentalFetchLinkSuggestions as fetchLinkSuggestions,\n\t__experimentalFetchUrlData as fetchUrlData,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport inserterMediaCategories from '../media-categories';\nimport { mediaUpload } from '../../utils';\nimport { store as editorStore } from '../../store';\n\nconst EMPTY_BLOCKS_LIST = [];\n\nconst BLOCK_EDITOR_SETTINGS = [\n\t'__experimentalBlockDirectory',\n\t'__experimentalDiscussionSettings',\n\t'__experimentalFeatures',\n\t'__experimentalGlobalStylesBaseStyles',\n\t'__experimentalPreferredStyleVariations',\n\t'__experimentalSetIsInserterOpened',\n\t'__unstableGalleryWithImageBlocks',\n\t'alignWide',\n\t'allowedBlockTypes',\n\t'blockInspectorTabs',\n\t'allowedMimeTypes',\n\t'bodyPlaceholder',\n\t'canLockBlocks',\n\t'capabilities',\n\t'clearBlockSelection',\n\t'codeEditingEnabled',\n\t'colors',\n\t'disableCustomColors',\n\t'disableCustomFontSizes',\n\t'disableCustomSpacingSizes',\n\t'disableCustomGradients',\n\t'disableLayoutStyles',\n\t'enableCustomLineHeight',\n\t'enableCustomSpacing',\n\t'enableCustomUnits',\n\t'enableOpenverseMediaCategory',\n\t'focusMode',\n\t'distractionFree',\n\t'fontSizes',\n\t'gradients',\n\t'generateAnchors',\n\t'hasFixedToolbar',\n\t'hasInlineToolbar',\n\t'isDistractionFree',\n\t'imageDefaultSize',\n\t'imageDimensions',\n\t'imageEditing',\n\t'imageSizes',\n\t'isRTL',\n\t'keepCaretInsideBlock',\n\t'locale',\n\t'maxWidth',\n\t'onUpdateDefaultBlockStyles',\n\t'postContentAttributes',\n\t'postsPerPage',\n\t'readOnly',\n\t'styles',\n\t'titlePlaceholder',\n\t'supportsLayout',\n\t'widgetTypesToHideFromLegacyWidgetBlock',\n\t'__unstableHasCustomAppender',\n\t'__unstableIsPreviewMode',\n\t'__unstableResolvedAssets',\n\t'__unstableIsBlockBasedTheme',\n\t'__experimentalArchiveTitleTypeLabel',\n\t'__experimentalArchiveTitleNameLabel',\n];\n\n/**\n * React hook used to compute the block editor settings to use for the post editor.\n *\n * @param {Object} settings EditorProvider settings prop.\n * @param {string} postType Editor root level post type.\n * @param {string} postId Editor root level post ID.\n *\n * @return {Object} Block Editor Settings.\n */\nfunction useBlockEditorSettings( settings, postType, postId ) {\n\tconst {\n\t\treusableBlocks,\n\t\thasUploadPermissions,\n\t\tcanUseUnfilteredHTML,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t\tuserPatternCategories,\n\t\trestBlockPatterns,\n\t\trestBlockPatternCategories,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst isWeb = Platform.OS === 'web';\n\t\t\tconst {\n\t\t\t\tcanUser,\n\t\t\t\tgetRawEntityRecord,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetUserPatternCategories,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetBlockPatterns,\n\t\t\t\tgetBlockPatternCategories,\n\t\t\t} = select( coreStore );\n\n\t\t\tconst siteSettings = canUser( 'read', 'settings' )\n\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t: undefined;\n\n\t\t\treturn {\n\t\t\t\tcanUseUnfilteredHTML: getRawEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId\n\t\t\t\t)?._links?.hasOwnProperty( 'wp:action-unfiltered-html' ),\n\t\t\t\treusableBlocks: isWeb\n\t\t\t\t\t? getEntityRecords( 'postType', 'wp_block', {\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_BLOCKS_LIST, // Reusable blocks are fetched in the native version of this hook.\n\t\t\t\thasUploadPermissions: canUser( 'create', 'media' ) ?? true,\n\t\t\t\tuserCanCreatePages: canUser( 'create', 'pages' ),\n\t\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t\trestBlockPatterns: getBlockPatterns(),\n\t\t\t\trestBlockPatternCategories: getBlockPatternCategories(),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst settingsBlockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tsettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatterns || [] ),\n\t\t\t\t...( restBlockPatterns || [] ),\n\t\t\t]\n\t\t\t\t.filter(\n\t\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t\t)\n\t\t\t\t.filter( ( { postTypes } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! postTypes ||\n\t\t\t\t\t\t( Array.isArray( postTypes ) &&\n\t\t\t\t\t\t\tpostTypes.includes( postType ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t[ settingsBlockPatterns, restBlockPatterns, postType ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatternCategories || [] ),\n\t\t\t\t...( restBlockPatternCategories || [] ),\n\t\t\t].filter(\n\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\n\tconst { undo } = useDispatch( editorStore );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t/**\n\t * Creates a Post entity.\n\t * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.\n\t *\n\t * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.\n\t * @return {Object} the post type object that was created.\n\t */\n\tconst createPageEntity = useCallback(\n\t\t( options ) => {\n\t\t\tif ( ! userCanCreatePages ) {\n\t\t\t\treturn Promise.reject( {\n\t\t\t\t\tmessage: __(\n\t\t\t\t\t\t'You do not have permission to create Pages.'\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn saveEntityRecord( 'postType', 'page', options );\n\t\t},\n\t\t[ saveEntityRecord, userCanCreatePages ]\n\t);\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...Object.fromEntries(\n\t\t\t\tObject.entries( settings ).filter( ( [ key ] ) =>\n\t\t\t\t\tBLOCK_EDITOR_SETTINGS.includes( key )\n\t\t\t\t)\n\t\t\t),\n\t\t\tmediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t\t__experimentalUserPatternCategories: userPatternCategories,\n\t\t\t__experimentalFetchLinkSuggestions: ( search, searchOptions ) =>\n\t\t\t\tfetchLinkSuggestions( search, searchOptions, settings ),\n\t\t\tinserterMediaCategories,\n\t\t\t__experimentalFetchRichUrlData: fetchUrlData,\n\t\t\t// Todo: This only checks the top level post, not the post within a template or any other entity that can be edited.\n\t\t\t// This might be better as a generic \"canUser\" selector.\n\t\t\t__experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,\n\t\t\t//Todo: this is only needed for native and should probably be removed.\n\t\t\t__experimentalUndo: undo,\n\t\t\t// Check whether we want all site editor frames to have outlines\n\t\t\t// including the navigation / pattern / parts editors.\n\t\t\toutlineMode: postType === 'wp_template',\n\t\t\t// Check these two properties: they were not present in the site editor.\n\t\t\t__experimentalCreatePageEntity: createPageEntity,\n\t\t\t__experimentalUserCanCreatePages: userCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\t__experimentalPreferPatternsOnRoot: postType === 'wp_template',\n\t\t\ttemplateLock:\n\t\t\t\tpostType === 'wp_navigation' ? 'insert' : settings.templateLock,\n\t\t\ttemplate:\n\t\t\t\tpostType === 'wp_navigation'\n\t\t\t\t\t? [ [ 'core/navigation', {}, [] ] ]\n\t\t\t\t\t: settings.template,\n\t\t} ),\n\t\t[\n\t\t\tsettings,\n\t\t\thasUploadPermissions,\n\t\t\treusableBlocks,\n\t\t\tuserPatternCategories,\n\t\t\tblockPatterns,\n\t\t\tblockPatternCategories,\n\t\t\tcanUseUnfilteredHTML,\n\t\t\tundo,\n\t\t\tcreatePageEntity,\n\t\t\tuserCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\tpostType,\n\t\t]\n\t);\n}\n\nexport default useBlockEditorSettings;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","useMemo","useCallback","useDispatch","useSelect","store","coreStore","__experimentalFetchLinkSuggestions","fetchLinkSuggestions","__experimentalFetchUrlData","fetchUrlData","__","preferencesStore","useViewportMatch","inserterMediaCategories","mediaUpload","editorStore","EMPTY_BLOCKS_LIST","BLOCK_EDITOR_SETTINGS","useBlockEditorSettings","settings","postType","postId","_settings$__experimen","_settings$__experimen2","isLargeViewport","allowRightClickOverrides","focusMode","hasFixedToolbar","isDistractionFree","keepCaretInsideBlock","reusableBlocks","hasUploadPermissions","canUseUnfilteredHTML","userCanCreatePages","pageOnFront","pageForPosts","userPatternCategories","restBlockPatterns","restBlockPatternCategories","select","_canUser","isWeb","OS","canUser","getRawEntityRecord","getEntityRecord","getUserPatternCategories","getEntityRecords","getBlockPatterns","getBlockPatternCategories","get","siteSettings","undefined","_links","hasOwnProperty","per_page","page_on_front","page_for_posts","settingsBlockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","settingsBlockPatternCategories","__experimentalAdditionalBlockPatternCategories","__experimentalBlockPatternCategories","blockPatterns","filter","x","index","arr","findIndex","y","name","postTypes","Array","isArray","includes","blockPatternCategories","undo","setIsInserterOpened","saveEntityRecord","createPageEntity","options","Promise","reject","message","forceDisableFocusMode","Object","fromEntries","entries","key","__experimentalReusableBlocks","__experimentalUserPatternCategories","search","searchOptions","__experimentalFetchRichUrlData","__experimentalCanUserUseUnfilteredHTML","__experimentalUndo","outlineMode","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","__experimentalPreferPatternsOnRoot","templateLock","template","__experimentalSetIsInserterOpened"],"sources":["@wordpress/editor/src/components/provider/use-block-editor-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Platform, useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\t__experimentalFetchLinkSuggestions as fetchLinkSuggestions,\n\t__experimentalFetchUrlData as fetchUrlData,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport inserterMediaCategories from '../media-categories';\nimport { mediaUpload } from '../../utils';\nimport { store as editorStore } from '../../store';\n\nconst EMPTY_BLOCKS_LIST = [];\n\nconst BLOCK_EDITOR_SETTINGS = [\n\t'__experimentalBlockDirectory',\n\t'__experimentalDiscussionSettings',\n\t'__experimentalFeatures',\n\t'__experimentalGlobalStylesBaseStyles',\n\t'__experimentalPreferredStyleVariations',\n\t'__unstableGalleryWithImageBlocks',\n\t'alignWide',\n\t'allowedBlockTypes',\n\t'blockInspectorTabs',\n\t'allowedMimeTypes',\n\t'bodyPlaceholder',\n\t'canLockBlocks',\n\t'capabilities',\n\t'clearBlockSelection',\n\t'codeEditingEnabled',\n\t'colors',\n\t'disableCustomColors',\n\t'disableCustomFontSizes',\n\t'disableCustomSpacingSizes',\n\t'disableCustomGradients',\n\t'disableLayoutStyles',\n\t'enableCustomLineHeight',\n\t'enableCustomSpacing',\n\t'enableCustomUnits',\n\t'enableOpenverseMediaCategory',\n\t'fontSizes',\n\t'gradients',\n\t'generateAnchors',\n\t'getPostLinkProps',\n\t'hasInlineToolbar',\n\t'imageDefaultSize',\n\t'imageDimensions',\n\t'imageEditing',\n\t'imageSizes',\n\t'isRTL',\n\t'locale',\n\t'maxWidth',\n\t'onUpdateDefaultBlockStyles',\n\t'postContentAttributes',\n\t'postsPerPage',\n\t'readOnly',\n\t'styles',\n\t'titlePlaceholder',\n\t'supportsLayout',\n\t'widgetTypesToHideFromLegacyWidgetBlock',\n\t'__unstableHasCustomAppender',\n\t'__unstableIsPreviewMode',\n\t'__unstableResolvedAssets',\n\t'__unstableIsBlockBasedTheme',\n\t'__experimentalArchiveTitleTypeLabel',\n\t'__experimentalArchiveTitleNameLabel',\n];\n\n/**\n * React hook used to compute the block editor settings to use for the post editor.\n *\n * @param {Object} settings EditorProvider settings prop.\n * @param {string} postType Editor root level post type.\n * @param {string} postId Editor root level post ID.\n *\n * @return {Object} Block Editor Settings.\n */\nfunction useBlockEditorSettings( settings, postType, postId ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tallowRightClickOverrides,\n\t\tfocusMode,\n\t\thasFixedToolbar,\n\t\tisDistractionFree,\n\t\tkeepCaretInsideBlock,\n\t\treusableBlocks,\n\t\thasUploadPermissions,\n\t\tcanUseUnfilteredHTML,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t\tuserPatternCategories,\n\t\trestBlockPatterns,\n\t\trestBlockPatternCategories,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst isWeb = Platform.OS === 'web';\n\t\t\tconst {\n\t\t\t\tcanUser,\n\t\t\t\tgetRawEntityRecord,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetUserPatternCategories,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetBlockPatterns,\n\t\t\t\tgetBlockPatternCategories,\n\t\t\t} = select( coreStore );\n\t\t\tconst { get } = select( preferencesStore );\n\n\t\t\tconst siteSettings = canUser( 'read', 'settings' )\n\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t: undefined;\n\n\t\t\treturn {\n\t\t\t\tallowRightClickOverrides: get(\n\t\t\t\t\t'core',\n\t\t\t\t\t'allowRightClickOverrides'\n\t\t\t\t),\n\t\t\t\tcanUseUnfilteredHTML: getRawEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId\n\t\t\t\t)?._links?.hasOwnProperty( 'wp:action-unfiltered-html' ),\n\t\t\t\tfocusMode: get( 'core', 'focusMode' ),\n\t\t\t\thasFixedToolbar:\n\t\t\t\t\tget( 'core', 'fixedToolbar' ) || ! isLargeViewport,\n\t\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\t\tkeepCaretInsideBlock: get( 'core', 'keepCaretInsideBlock' ),\n\t\t\t\treusableBlocks: isWeb\n\t\t\t\t\t? getEntityRecords( 'postType', 'wp_block', {\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_BLOCKS_LIST, // Reusable blocks are fetched in the native version of this hook.\n\t\t\t\thasUploadPermissions: canUser( 'create', 'media' ) ?? true,\n\t\t\t\tuserCanCreatePages: canUser( 'create', 'pages' ),\n\t\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t\trestBlockPatterns: getBlockPatterns(),\n\t\t\t\trestBlockPatternCategories: getBlockPatternCategories(),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId, isLargeViewport ]\n\t);\n\n\tconst settingsBlockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tsettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatterns || [] ),\n\t\t\t\t...( restBlockPatterns || [] ),\n\t\t\t]\n\t\t\t\t.filter(\n\t\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t\t)\n\t\t\t\t.filter( ( { postTypes } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! postTypes ||\n\t\t\t\t\t\t( Array.isArray( postTypes ) &&\n\t\t\t\t\t\t\tpostTypes.includes( postType ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t[ settingsBlockPatterns, restBlockPatterns, postType ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatternCategories || [] ),\n\t\t\t\t...( restBlockPatternCategories || [] ),\n\t\t\t].filter(\n\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\n\tconst { undo, setIsInserterOpened } = useDispatch( editorStore );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t/**\n\t * Creates a Post entity.\n\t * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.\n\t *\n\t * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.\n\t * @return {Object} the post type object that was created.\n\t */\n\tconst createPageEntity = useCallback(\n\t\t( options ) => {\n\t\t\tif ( ! userCanCreatePages ) {\n\t\t\t\treturn Promise.reject( {\n\t\t\t\t\tmessage: __(\n\t\t\t\t\t\t'You do not have permission to create Pages.'\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn saveEntityRecord( 'postType', 'page', options );\n\t\t},\n\t\t[ saveEntityRecord, userCanCreatePages ]\n\t);\n\n\tconst forceDisableFocusMode = settings.focusMode === false;\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...Object.fromEntries(\n\t\t\t\tObject.entries( settings ).filter( ( [ key ] ) =>\n\t\t\t\t\tBLOCK_EDITOR_SETTINGS.includes( key )\n\t\t\t\t)\n\t\t\t),\n\t\t\tallowRightClickOverrides,\n\t\t\tfocusMode: focusMode && ! forceDisableFocusMode,\n\t\t\thasFixedToolbar,\n\t\t\tisDistractionFree,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t\t__experimentalUserPatternCategories: userPatternCategories,\n\t\t\t__experimentalFetchLinkSuggestions: ( search, searchOptions ) =>\n\t\t\t\tfetchLinkSuggestions( search, searchOptions, settings ),\n\t\t\tinserterMediaCategories,\n\t\t\t__experimentalFetchRichUrlData: fetchUrlData,\n\t\t\t// Todo: This only checks the top level post, not the post within a template or any other entity that can be edited.\n\t\t\t// This might be better as a generic \"canUser\" selector.\n\t\t\t__experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,\n\t\t\t//Todo: this is only needed for native and should probably be removed.\n\t\t\t__experimentalUndo: undo,\n\t\t\t// Check whether we want all site editor frames to have outlines\n\t\t\t// including the navigation / pattern / parts editors.\n\t\t\toutlineMode: postType === 'wp_template',\n\t\t\t// Check these two properties: they were not present in the site editor.\n\t\t\t__experimentalCreatePageEntity: createPageEntity,\n\t\t\t__experimentalUserCanCreatePages: userCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\t__experimentalPreferPatternsOnRoot: postType === 'wp_template',\n\t\t\ttemplateLock:\n\t\t\t\tpostType === 'wp_navigation' ? 'insert' : settings.templateLock,\n\t\t\ttemplate:\n\t\t\t\tpostType === 'wp_navigation'\n\t\t\t\t\t? [ [ 'core/navigation', {}, [] ] ]\n\t\t\t\t\t: settings.template,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t} ),\n\t\t[\n\t\t\tallowRightClickOverrides,\n\t\t\tfocusMode,\n\t\t\tforceDisableFocusMode,\n\t\t\thasFixedToolbar,\n\t\t\tisDistractionFree,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tsettings,\n\t\t\thasUploadPermissions,\n\t\t\treusableBlocks,\n\t\t\tuserPatternCategories,\n\t\t\tblockPatterns,\n\t\t\tblockPatternCategories,\n\t\t\tcanUseUnfilteredHTML,\n\t\t\tundo,\n\t\t\tcreatePageEntity,\n\t\t\tuserCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\tpostType,\n\t\t\tsetIsInserterOpened,\n\t\t]\n\t);\n}\n\nexport default useBlockEditorSettings;\n"],"mappings":"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"}
@@ -6,15 +6,25 @@ import { ExperimentalEditorProvider } from './components/provider';
6
6
  import { lock } from './lock-unlock';
7
7
  import { EntitiesSavedStatesExtensible } from './components/entities-saved-states';
8
8
  import useBlockEditorSettings from './components/provider/use-block-editor-settings';
9
+ import DocumentTools from './components/document-tools';
10
+ import InserterSidebar from './components/inserter-sidebar';
11
+ import ListViewSidebar from './components/list-view-sidebar';
9
12
  import PostPanelRow from './components/post-panel-row';
13
+ import PostViewLink from './components/post-view-link';
10
14
  import PreviewDropdown from './components/preview-dropdown';
15
+ import PluginPostExcerpt from './components/post-excerpt/plugin';
11
16
  export const privateApis = {};
12
17
  lock(privateApis, {
18
+ DocumentTools,
13
19
  EditorCanvas,
14
20
  ExperimentalEditorProvider,
15
21
  EntitiesSavedStatesExtensible,
22
+ InserterSidebar,
23
+ ListViewSidebar,
16
24
  PostPanelRow,
25
+ PostViewLink,
17
26
  PreviewDropdown,
27
+ PluginPostExcerpt,
18
28
  // This is a temporary private API while we're updating the site editor to use EditorProvider.
19
29
  useBlockEditorSettings
20
30
  });
@@ -1 +1 @@
1
- {"version":3,"names":["EditorCanvas","ExperimentalEditorProvider","lock","EntitiesSavedStatesExtensible","useBlockEditorSettings","PostPanelRow","PreviewDropdown","privateApis"],"sources":["@wordpress/editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport EditorCanvas from './components/editor-canvas';\nimport { ExperimentalEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport { EntitiesSavedStatesExtensible } from './components/entities-saved-states';\nimport useBlockEditorSettings from './components/provider/use-block-editor-settings';\nimport PostPanelRow from './components/post-panel-row';\nimport PreviewDropdown from './components/preview-dropdown';\n\nexport const privateApis = {};\nlock( privateApis, {\n\tEditorCanvas,\n\tExperimentalEditorProvider,\n\tEntitiesSavedStatesExtensible,\n\tPostPanelRow,\n\tPreviewDropdown,\n\n\t// This is a temporary private API while we're updating the site editor to use EditorProvider.\n\tuseBlockEditorSettings,\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,YAAY,MAAM,4BAA4B;AACrD,SAASC,0BAA0B,QAAQ,uBAAuB;AAClE,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,6BAA6B,QAAQ,oCAAoC;AAClF,OAAOC,sBAAsB,MAAM,iDAAiD;AACpF,OAAOC,YAAY,MAAM,6BAA6B;AACtD,OAAOC,eAAe,MAAM,+BAA+B;AAE3D,OAAO,MAAMC,WAAW,GAAG,CAAC,CAAC;AAC7BL,IAAI,CAAEK,WAAW,EAAE;EAClBP,YAAY;EACZC,0BAA0B;EAC1BE,6BAA6B;EAC7BE,YAAY;EACZC,eAAe;EAEf;EACAF;AACD,CAAE,CAAC"}
1
+ {"version":3,"names":["EditorCanvas","ExperimentalEditorProvider","lock","EntitiesSavedStatesExtensible","useBlockEditorSettings","DocumentTools","InserterSidebar","ListViewSidebar","PostPanelRow","PostViewLink","PreviewDropdown","PluginPostExcerpt","privateApis"],"sources":["@wordpress/editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport EditorCanvas from './components/editor-canvas';\nimport { ExperimentalEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport { EntitiesSavedStatesExtensible } from './components/entities-saved-states';\nimport useBlockEditorSettings from './components/provider/use-block-editor-settings';\nimport DocumentTools from './components/document-tools';\nimport InserterSidebar from './components/inserter-sidebar';\nimport ListViewSidebar from './components/list-view-sidebar';\nimport PostPanelRow from './components/post-panel-row';\nimport PostViewLink from './components/post-view-link';\nimport PreviewDropdown from './components/preview-dropdown';\nimport PluginPostExcerpt from './components/post-excerpt/plugin';\n\nexport const privateApis = {};\nlock( privateApis, {\n\tDocumentTools,\n\tEditorCanvas,\n\tExperimentalEditorProvider,\n\tEntitiesSavedStatesExtensible,\n\tInserterSidebar,\n\tListViewSidebar,\n\tPostPanelRow,\n\tPostViewLink,\n\tPreviewDropdown,\n\tPluginPostExcerpt,\n\n\t// This is a temporary private API while we're updating the site editor to use EditorProvider.\n\tuseBlockEditorSettings,\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,YAAY,MAAM,4BAA4B;AACrD,SAASC,0BAA0B,QAAQ,uBAAuB;AAClE,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,6BAA6B,QAAQ,oCAAoC;AAClF,OAAOC,sBAAsB,MAAM,iDAAiD;AACpF,OAAOC,aAAa,MAAM,6BAA6B;AACvD,OAAOC,eAAe,MAAM,+BAA+B;AAC3D,OAAOC,eAAe,MAAM,gCAAgC;AAC5D,OAAOC,YAAY,MAAM,6BAA6B;AACtD,OAAOC,YAAY,MAAM,6BAA6B;AACtD,OAAOC,eAAe,MAAM,+BAA+B;AAC3D,OAAOC,iBAAiB,MAAM,kCAAkC;AAEhE,OAAO,MAAMC,WAAW,GAAG,CAAC,CAAC;AAC7BV,IAAI,CAAEU,WAAW,EAAE;EAClBP,aAAa;EACbL,YAAY;EACZC,0BAA0B;EAC1BE,6BAA6B;EAC7BG,eAAe;EACfC,eAAe;EACfC,YAAY;EACZC,YAAY;EACZC,eAAe;EACfC,iBAAiB;EAEjB;EACAP;AACD,CAAE,CAAC"}
@@ -599,6 +599,100 @@ export function setDeviceType(deviceType) {
599
599
  };
600
600
  }
601
601
 
602
+ /**
603
+ * Returns an action object used to enable or disable a panel in the editor.
604
+ *
605
+ * @param {string} panelName A string that identifies the panel to enable or disable.
606
+ *
607
+ * @return {Object} Action object.
608
+ */
609
+ export const toggleEditorPanelEnabled = panelName => ({
610
+ registry
611
+ }) => {
612
+ var _registry$select$get;
613
+ const inactivePanels = (_registry$select$get = registry.select(preferencesStore).get('core', 'inactivePanels')) !== null && _registry$select$get !== void 0 ? _registry$select$get : [];
614
+ const isPanelInactive = !!inactivePanels?.includes(panelName);
615
+
616
+ // If the panel is inactive, remove it to enable it, else add it to
617
+ // make it inactive.
618
+ let updatedInactivePanels;
619
+ if (isPanelInactive) {
620
+ updatedInactivePanels = inactivePanels.filter(invactivePanelName => invactivePanelName !== panelName);
621
+ } else {
622
+ updatedInactivePanels = [...inactivePanels, panelName];
623
+ }
624
+ registry.dispatch(preferencesStore).set('core', 'inactivePanels', updatedInactivePanels);
625
+ };
626
+
627
+ /**
628
+ * Opens a closed panel and closes an open panel.
629
+ *
630
+ * @param {string} panelName A string that identifies the panel to open or close.
631
+ */
632
+ export const toggleEditorPanelOpened = panelName => ({
633
+ registry
634
+ }) => {
635
+ var _registry$select$get2;
636
+ const openPanels = (_registry$select$get2 = registry.select(preferencesStore).get('core', 'openPanels')) !== null && _registry$select$get2 !== void 0 ? _registry$select$get2 : [];
637
+ const isPanelOpen = !!openPanels?.includes(panelName);
638
+
639
+ // If the panel is open, remove it to close it, else add it to
640
+ // make it open.
641
+ let updatedOpenPanels;
642
+ if (isPanelOpen) {
643
+ updatedOpenPanels = openPanels.filter(openPanelName => openPanelName !== panelName);
644
+ } else {
645
+ updatedOpenPanels = [...openPanels, panelName];
646
+ }
647
+ registry.dispatch(preferencesStore).set('core', 'openPanels', updatedOpenPanels);
648
+ };
649
+
650
+ /**
651
+ * Returns an action object used to remove a panel from the editor.
652
+ *
653
+ * @param {string} panelName A string that identifies the panel to remove.
654
+ *
655
+ * @return {Object} Action object.
656
+ */
657
+ export function removeEditorPanel(panelName) {
658
+ return {
659
+ type: 'REMOVE_PANEL',
660
+ panelName
661
+ };
662
+ }
663
+
664
+ /**
665
+ * Returns an action object used to open/close the inserter.
666
+ *
667
+ * @param {boolean|Object} value Whether the inserter should be
668
+ * opened (true) or closed (false).
669
+ * To specify an insertion point,
670
+ * use an object.
671
+ * @param {string} value.rootClientId The root client ID to insert at.
672
+ * @param {number} value.insertionIndex The index to insert at.
673
+ *
674
+ * @return {Object} Action object.
675
+ */
676
+ export function setIsInserterOpened(value) {
677
+ return {
678
+ type: 'SET_IS_INSERTER_OPENED',
679
+ value
680
+ };
681
+ }
682
+
683
+ /**
684
+ * Returns an action object used to open/close the list view.
685
+ *
686
+ * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.
687
+ * @return {Object} Action object.
688
+ */
689
+ export function setIsListViewOpened(isOpen) {
690
+ return {
691
+ type: 'SET_IS_LIST_VIEW_OPENED',
692
+ isOpen
693
+ };
694
+ }
695
+
602
696
  /**
603
697
  * Backward compatibility
604
698
  */