@wordpress/editor 13.24.1 → 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 (307) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/document-bar/index.js +164 -0
  4. package/build/components/document-bar/index.js.map +1 -0
  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/edit-template-blocks-notification.js +106 -0
  10. package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
  11. package/build/components/editor-canvas/index.js +298 -0
  12. package/build/components/editor-canvas/index.js.map +1 -0
  13. package/build/components/entities-saved-states/index.js +3 -1
  14. package/build/components/entities-saved-states/index.js.map +1 -1
  15. package/build/components/global-keyboard-shortcuts/index.js +12 -2
  16. package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
  17. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
  18. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  19. package/build/components/index.js +72 -8
  20. package/build/components/index.js.map +1 -1
  21. package/build/components/index.native.js +9 -1
  22. package/build/components/index.native.js.map +1 -1
  23. package/build/components/inserter-sidebar/index.js +77 -0
  24. package/build/components/inserter-sidebar/index.js.map +1 -0
  25. package/build/components/list-view-sidebar/index.js +150 -0
  26. package/build/components/list-view-sidebar/index.js.map +1 -0
  27. package/build/components/list-view-sidebar/list-view-outline.js +28 -0
  28. package/build/components/list-view-sidebar/list-view-outline.js.map +1 -0
  29. package/build/components/offline-status/index.native.js +85 -0
  30. package/build/components/offline-status/index.native.js.map +1 -0
  31. package/build/components/page-attributes/panel.js +63 -0
  32. package/build/components/page-attributes/panel.js.map +1 -0
  33. package/build/components/post-discussion/panel.js +59 -0
  34. package/build/components/post-discussion/panel.js.map +1 -0
  35. package/build/components/post-excerpt/check.js +19 -0
  36. package/build/components/post-excerpt/check.js.map +1 -1
  37. package/build/components/post-excerpt/panel.js +55 -0
  38. package/build/components/post-excerpt/panel.js.map +1 -0
  39. package/build/components/post-excerpt/plugin.js +72 -0
  40. package/build/components/post-excerpt/plugin.js.map +1 -0
  41. package/build/components/post-featured-image/index.js +5 -8
  42. package/build/components/post-featured-image/index.js.map +1 -1
  43. package/build/components/post-featured-image/panel.js +60 -0
  44. package/build/components/post-featured-image/panel.js.map +1 -0
  45. package/build/components/post-last-revision/panel.js +27 -0
  46. package/build/components/post-last-revision/panel.js.map +1 -0
  47. package/build/components/post-publish-button/index.js +1 -0
  48. package/build/components/post-publish-button/index.js.map +1 -1
  49. package/build/components/post-publish-panel/maybe-upload-media.js +2 -4
  50. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  51. package/build/components/post-saved-state/index.js +13 -8
  52. package/build/components/post-saved-state/index.js.map +1 -1
  53. package/build/components/post-schedule/panel.js +1 -1
  54. package/build/components/post-schedule/panel.js.map +1 -1
  55. package/build/components/post-taxonomies/panel.js +68 -0
  56. package/build/components/post-taxonomies/panel.js.map +1 -0
  57. package/build/components/post-template/block-theme.js +100 -0
  58. package/build/components/post-template/block-theme.js.map +1 -0
  59. package/build/components/post-template/classic-theme.js +171 -0
  60. package/build/components/post-template/classic-theme.js.map +1 -0
  61. package/build/components/post-template/create-new-template-modal.js +98 -0
  62. package/build/components/post-template/create-new-template-modal.js.map +1 -0
  63. package/build/components/post-template/create-new-template.js +55 -0
  64. package/build/components/post-template/create-new-template.js.map +1 -0
  65. package/build/components/post-template/hooks.js +88 -0
  66. package/build/components/post-template/hooks.js.map +1 -0
  67. package/build/components/post-template/panel.js +70 -0
  68. package/build/components/post-template/panel.js.map +1 -0
  69. package/build/components/post-template/reset-default-template.js +48 -0
  70. package/build/components/post-template/reset-default-template.js.map +1 -0
  71. package/build/components/post-template/swap-template-button.js +86 -0
  72. package/build/components/post-template/swap-template-button.js.map +1 -0
  73. package/build/components/post-title/index.native.js +25 -15
  74. package/build/components/post-title/index.native.js.map +1 -1
  75. package/build/components/post-view-link/index.js +58 -0
  76. package/build/components/post-view-link/index.js.map +1 -0
  77. package/build/components/post-visibility/check.js +5 -17
  78. package/build/components/post-visibility/check.js.map +1 -1
  79. package/build/components/preview-dropdown/index.js +118 -0
  80. package/build/components/preview-dropdown/index.js.map +1 -0
  81. package/build/components/provider/index.js +24 -82
  82. package/build/components/provider/index.js.map +1 -1
  83. package/build/components/provider/index.native.js +36 -8
  84. package/build/components/provider/index.native.js.map +1 -1
  85. package/build/components/provider/navigation-block-editing-mode.js +40 -0
  86. package/build/components/provider/navigation-block-editing-mode.js.map +1 -0
  87. package/build/components/provider/use-block-editor-settings.js +38 -15
  88. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  89. package/build/hooks/index.js +1 -0
  90. package/build/hooks/index.js.map +1 -1
  91. package/build/hooks/pattern-partial-syncing.js +49 -0
  92. package/build/hooks/pattern-partial-syncing.js.map +1 -0
  93. package/build/private-apis.js +14 -0
  94. package/build/private-apis.js.map +1 -1
  95. package/build/store/actions.js +161 -13
  96. package/build/store/actions.js.map +1 -1
  97. package/build/store/defaults.js +2 -1
  98. package/build/store/defaults.js.map +1 -1
  99. package/build/store/index.js +5 -0
  100. package/build/store/index.js.map +1 -1
  101. package/build/store/private-actions.js +52 -0
  102. package/build/store/private-actions.js.map +1 -0
  103. package/build/store/private-selectors.js +52 -0
  104. package/build/store/private-selectors.js.map +1 -0
  105. package/build/store/reducer.js +109 -27
  106. package/build/store/reducer.js.map +1 -1
  107. package/build/store/reducer.native.js +0 -1
  108. package/build/store/reducer.native.js.map +1 -1
  109. package/build/store/selectors.js +104 -9
  110. package/build/store/selectors.js.map +1 -1
  111. package/build/utils/media-upload/index.js +8 -2
  112. package/build/utils/media-upload/index.js.map +1 -1
  113. package/build-module/components/document-bar/index.js +156 -0
  114. package/build-module/components/document-bar/index.js.map +1 -0
  115. package/build-module/components/document-outline/index.js +82 -1
  116. package/build-module/components/document-outline/index.js.map +1 -1
  117. package/build-module/components/document-tools/index.js +151 -0
  118. package/build-module/components/document-tools/index.js.map +1 -0
  119. package/build-module/components/editor-canvas/edit-template-blocks-notification.js +100 -0
  120. package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
  121. package/build-module/components/editor-canvas/index.js +289 -0
  122. package/build-module/components/editor-canvas/index.js.map +1 -0
  123. package/build-module/components/entities-saved-states/index.js +3 -1
  124. package/build-module/components/entities-saved-states/index.js.map +1 -1
  125. package/build-module/components/global-keyboard-shortcuts/index.js +12 -2
  126. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
  127. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
  128. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  129. package/build-module/components/index.js +9 -1
  130. package/build-module/components/index.js.map +1 -1
  131. package/build-module/components/index.native.js +1 -0
  132. package/build-module/components/index.native.js.map +1 -1
  133. package/build-module/components/inserter-sidebar/index.js +70 -0
  134. package/build-module/components/inserter-sidebar/index.js.map +1 -0
  135. package/build-module/components/list-view-sidebar/index.js +142 -0
  136. package/build-module/components/list-view-sidebar/index.js.map +1 -0
  137. package/build-module/components/list-view-sidebar/list-view-outline.js +20 -0
  138. package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -0
  139. package/build-module/components/offline-status/index.native.js +77 -0
  140. package/build-module/components/offline-status/index.native.js.map +1 -0
  141. package/build-module/components/page-attributes/panel.js +53 -0
  142. package/build-module/components/page-attributes/panel.js.map +1 -0
  143. package/build-module/components/post-discussion/panel.js +50 -0
  144. package/build-module/components/post-discussion/panel.js.map +1 -0
  145. package/build-module/components/post-excerpt/check.js +19 -0
  146. package/build-module/components/post-excerpt/check.js.map +1 -1
  147. package/build-module/components/post-excerpt/panel.js +48 -0
  148. package/build-module/components/post-excerpt/panel.js.map +1 -0
  149. package/build-module/components/post-excerpt/plugin.js +64 -0
  150. package/build-module/components/post-excerpt/plugin.js.map +1 -0
  151. package/build-module/components/post-featured-image/index.js +5 -8
  152. package/build-module/components/post-featured-image/index.js.map +1 -1
  153. package/build-module/components/post-featured-image/panel.js +51 -0
  154. package/build-module/components/post-featured-image/panel.js.map +1 -0
  155. package/build-module/components/post-last-revision/panel.js +18 -0
  156. package/build-module/components/post-last-revision/panel.js.map +1 -0
  157. package/build-module/components/post-publish-button/index.js +1 -0
  158. package/build-module/components/post-publish-button/index.js.map +1 -1
  159. package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -4
  160. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  161. package/build-module/components/post-saved-state/index.js +13 -8
  162. package/build-module/components/post-saved-state/index.js.map +1 -1
  163. package/build-module/components/post-schedule/panel.js +1 -1
  164. package/build-module/components/post-schedule/panel.js.map +1 -1
  165. package/build-module/components/post-taxonomies/panel.js +59 -0
  166. package/build-module/components/post-taxonomies/panel.js.map +1 -0
  167. package/build-module/components/post-template/block-theme.js +92 -0
  168. package/build-module/components/post-template/block-theme.js.map +1 -0
  169. package/build-module/components/post-template/classic-theme.js +162 -0
  170. package/build-module/components/post-template/classic-theme.js.map +1 -0
  171. package/build-module/components/post-template/create-new-template-modal.js +91 -0
  172. package/build-module/components/post-template/create-new-template-modal.js.map +1 -0
  173. package/build-module/components/post-template/create-new-template.js +47 -0
  174. package/build-module/components/post-template/create-new-template.js.map +1 -0
  175. package/build-module/components/post-template/hooks.js +78 -0
  176. package/build-module/components/post-template/hooks.js.map +1 -0
  177. package/build-module/components/post-template/panel.js +62 -0
  178. package/build-module/components/post-template/panel.js.map +1 -0
  179. package/build-module/components/post-template/reset-default-template.js +41 -0
  180. package/build-module/components/post-template/reset-default-template.js.map +1 -0
  181. package/build-module/components/post-template/swap-template-button.js +79 -0
  182. package/build-module/components/post-template/swap-template-button.js.map +1 -0
  183. package/build-module/components/post-title/index.native.js +26 -16
  184. package/build-module/components/post-title/index.native.js.map +1 -1
  185. package/build-module/components/post-view-link/index.js +51 -0
  186. package/build-module/components/post-view-link/index.js.map +1 -0
  187. package/build-module/components/post-visibility/check.js +6 -16
  188. package/build-module/components/post-visibility/check.js.map +1 -1
  189. package/build-module/components/preview-dropdown/index.js +110 -0
  190. package/build-module/components/preview-dropdown/index.js.map +1 -0
  191. package/build-module/components/provider/index.js +25 -83
  192. package/build-module/components/provider/index.js.map +1 -1
  193. package/build-module/components/provider/index.native.js +37 -9
  194. package/build-module/components/provider/index.native.js.map +1 -1
  195. package/build-module/components/provider/navigation-block-editing-mode.js +34 -0
  196. package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -0
  197. package/build-module/components/provider/use-block-editor-settings.js +38 -15
  198. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  199. package/build-module/hooks/index.js +1 -0
  200. package/build-module/hooks/index.js.map +1 -1
  201. package/build-module/hooks/pattern-partial-syncing.js +46 -0
  202. package/build-module/hooks/pattern-partial-syncing.js.map +1 -0
  203. package/build-module/private-apis.js +14 -0
  204. package/build-module/private-apis.js.map +1 -1
  205. package/build-module/store/actions.js +147 -9
  206. package/build-module/store/actions.js.map +1 -1
  207. package/build-module/store/defaults.js +2 -1
  208. package/build-module/store/defaults.js.map +1 -1
  209. package/build-module/store/index.js +5 -0
  210. package/build-module/store/index.js.map +1 -1
  211. package/build-module/store/private-actions.js +44 -0
  212. package/build-module/store/private-actions.js.map +1 -0
  213. package/build-module/store/private-selectors.js +43 -0
  214. package/build-module/store/private-selectors.js.map +1 -0
  215. package/build-module/store/reducer.js +103 -26
  216. package/build-module/store/reducer.js.map +1 -1
  217. package/build-module/store/reducer.native.js +1 -2
  218. package/build-module/store/reducer.native.js.map +1 -1
  219. package/build-module/store/selectors.js +93 -6
  220. package/build-module/store/selectors.js.map +1 -1
  221. package/build-module/utils/media-upload/index.js +8 -2
  222. package/build-module/utils/media-upload/index.js.map +1 -1
  223. package/build-style/style-rtl.css +433 -0
  224. package/build-style/style.css +433 -0
  225. package/package.json +32 -31
  226. package/src/components/document-bar/index.js +193 -0
  227. package/src/components/document-bar/style.scss +130 -0
  228. package/src/components/document-outline/index.js +48 -1
  229. package/src/components/document-outline/style.scss +12 -0
  230. package/src/components/document-tools/index.js +177 -0
  231. package/src/components/document-tools/style.scss +98 -0
  232. package/src/components/editor-canvas/edit-template-blocks-notification.js +108 -0
  233. package/src/components/editor-canvas/index.js +386 -0
  234. package/src/components/editor-canvas/style.scss +5 -0
  235. package/src/components/entities-saved-states/index.js +3 -1
  236. package/src/components/entities-saved-states/style.scss +4 -0
  237. package/src/components/global-keyboard-shortcuts/index.js +12 -2
  238. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +10 -0
  239. package/src/components/index.js +9 -1
  240. package/src/components/index.native.js +1 -0
  241. package/src/components/inserter-sidebar/index.js +73 -0
  242. package/src/components/inserter-sidebar/style.scss +22 -0
  243. package/src/components/list-view-sidebar/index.js +169 -0
  244. package/src/components/list-view-sidebar/list-view-outline.js +37 -0
  245. package/src/components/list-view-sidebar/style.scss +84 -0
  246. package/src/components/offline-status/index.native.js +101 -0
  247. package/src/components/offline-status/style.native.scss +28 -0
  248. package/src/components/offline-status/test/index.native.js +108 -0
  249. package/src/components/page-attributes/panel.js +62 -0
  250. package/src/components/post-discussion/panel.js +57 -0
  251. package/src/components/post-excerpt/check.js +18 -0
  252. package/src/components/post-excerpt/panel.js +57 -0
  253. package/src/components/post-excerpt/plugin.js +61 -0
  254. package/src/components/post-excerpt/test/plugin.js +36 -0
  255. package/src/components/post-featured-image/index.js +3 -7
  256. package/src/components/post-featured-image/panel.js +55 -0
  257. package/src/components/post-last-revision/panel.js +22 -0
  258. package/src/components/post-last-revision/style.scss +10 -0
  259. package/src/components/post-publish-button/index.js +1 -0
  260. package/src/components/post-publish-panel/maybe-upload-media.js +3 -8
  261. package/src/components/post-saved-state/index.js +9 -8
  262. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +2 -2
  263. package/src/components/post-schedule/panel.js +1 -1
  264. package/src/components/post-taxonomies/panel.js +66 -0
  265. package/src/components/post-template/block-theme.js +110 -0
  266. package/src/components/post-template/classic-theme.js +213 -0
  267. package/src/components/post-template/create-new-template-modal.js +139 -0
  268. package/src/components/post-template/create-new-template.js +50 -0
  269. package/src/components/post-template/hooks.js +95 -0
  270. package/src/components/post-template/panel.js +66 -0
  271. package/src/components/post-template/reset-default-template.js +43 -0
  272. package/src/components/post-template/style.scss +52 -0
  273. package/src/components/post-template/swap-template-button.js +86 -0
  274. package/src/components/post-title/index.native.js +32 -18
  275. package/src/components/post-title/style.scss +1 -0
  276. package/src/components/post-title/test/__snapshots__/index.native.js.snap +25 -0
  277. package/src/components/post-title/test/index.native.js +78 -0
  278. package/src/components/post-view-link/index.js +47 -0
  279. package/src/components/post-visibility/check.js +10 -15
  280. package/src/components/post-visibility/test/check.js +24 -13
  281. package/src/components/preview-dropdown/index.js +133 -0
  282. package/src/components/preview-dropdown/style.scss +5 -0
  283. package/src/components/provider/index.js +28 -118
  284. package/src/components/provider/index.native.js +55 -14
  285. package/src/components/provider/navigation-block-editing-mode.js +37 -0
  286. package/src/components/provider/use-block-editor-settings.js +42 -17
  287. package/src/hooks/index.js +1 -0
  288. package/src/hooks/pattern-partial-syncing.js +73 -0
  289. package/src/private-apis.js +14 -0
  290. package/src/store/actions.js +160 -9
  291. package/src/store/defaults.js +1 -0
  292. package/src/store/index.js +5 -0
  293. package/src/store/private-actions.js +61 -0
  294. package/src/store/private-selectors.js +51 -0
  295. package/src/store/reducer.js +103 -26
  296. package/src/store/reducer.native.js +0 -2
  297. package/src/store/selectors.js +144 -42
  298. package/src/store/test/actions.js +56 -0
  299. package/src/store/test/reducer.js +98 -0
  300. package/src/store/test/selectors.js +137 -147
  301. package/src/style.scss +7 -0
  302. package/src/utils/media-upload/index.js +9 -2
  303. package/build/components/post-template/index.js +0 -66
  304. package/build/components/post-template/index.js.map +0 -1
  305. package/build-module/components/post-template/index.js +0 -57
  306. package/build-module/components/post-template/index.js.map +0 -1
  307. package/src/components/post-template/index.js +0 -64
@@ -20,7 +20,7 @@ var _store = require("../../store");
20
20
  var _useBlockEditorSettings = _interopRequireDefault(require("./use-block-editor-settings"));
21
21
  var _lockUnlock = require("../../lock-unlock");
22
22
  var _disableNonPageContentBlocks = _interopRequireDefault(require("./disable-non-page-content-blocks"));
23
- var _constants = require("./constants");
23
+ var _navigationBlockEditingMode = _interopRequireDefault(require("./navigation-block-editing-mode"));
24
24
  /**
25
25
  * WordPress dependencies
26
26
  */
@@ -37,56 +37,6 @@ const {
37
37
  } = (0, _lockUnlock.unlock)(_patterns.privateApis);
38
38
  const noop = () => {};
39
39
 
40
- /**
41
- * For the Navigation block editor, we need to force the block editor to contentOnly for that block.
42
- *
43
- * Set block editing mode to contentOnly when entering Navigation focus mode.
44
- * this ensures that non-content controls on the block will be hidden and thus
45
- * the user can focus on editing the Navigation Menu content only.
46
- *
47
- * @param {string} navigationBlockClientId ClientId.
48
- */
49
- function useForceFocusModeForNavigation(navigationBlockClientId) {
50
- const {
51
- setBlockEditingMode,
52
- unsetBlockEditingMode
53
- } = (0, _data.useDispatch)(_blockEditor.store);
54
- (0, _element.useEffect)(() => {
55
- if (!navigationBlockClientId) {
56
- return;
57
- }
58
- setBlockEditingMode(navigationBlockClientId, 'contentOnly');
59
- return () => {
60
- unsetBlockEditingMode(navigationBlockClientId);
61
- };
62
- }, [navigationBlockClientId, unsetBlockEditingMode, setBlockEditingMode]);
63
- }
64
-
65
- /**
66
- * Helper method to extract the post content block types from a template.
67
- *
68
- * @param {Array} blocks Template blocks.
69
- *
70
- * @return {Array} Flattened object.
71
- */
72
- function extractPageContentBlockTypesFromTemplateBlocks(blocks) {
73
- const result = [];
74
- for (let i = 0; i < blocks.length; i++) {
75
- // Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,
76
- // we skip it because we only want to render stand-alone page content blocks in the block list.
77
- if (blocks[i].name === 'core/query') {
78
- continue;
79
- }
80
- if (_constants.PAGE_CONTENT_BLOCK_TYPES.includes(blocks[i].name)) {
81
- result.push((0, _blocks.createBlock)(blocks[i].name));
82
- }
83
- if (blocks[i].innerBlocks.length) {
84
- result.push(...extractPageContentBlockTypesFromTemplateBlocks(blocks[i].innerBlocks));
85
- }
86
- }
87
- return result;
88
- }
89
-
90
40
  /**
91
41
  * Depending on the post, template and template mode,
92
42
  * returns the appropriate blocks and change handlers for the block editor provider.
@@ -115,23 +65,6 @@ function useBlockEditorProps(post, template, mode) {
115
65
  })];
116
66
  }
117
67
  }, [post.type, post.id]);
118
- const maybePostOnlyBlocks = (0, _element.useMemo)(() => {
119
- if (mode === 'post-only') {
120
- const postContentBlocks = extractPageContentBlockTypesFromTemplateBlocks(templateBlocks);
121
- return [(0, _blocks.createBlock)('core/group', {
122
- layout: {
123
- type: 'constrained'
124
- },
125
- style: {
126
- spacing: {
127
- margin: {
128
- top: '4em' // Mimics the post editor.
129
- }
130
- }
131
- }
132
- }, postContentBlocks.length ? postContentBlocks : [(0, _blocks.createBlock)('core/post-title'), (0, _blocks.createBlock)('core/post-content')])];
133
- }
134
- }, [templateBlocks, mode]);
135
68
 
136
69
  // It is important that we don't create a new instance of blocks on every change
137
70
  // We should only create a new instance if the blocks them selves change, not a dependency of them.
@@ -139,21 +72,16 @@ function useBlockEditorProps(post, template, mode) {
139
72
  if (maybeNavigationBlocks) {
140
73
  return maybeNavigationBlocks;
141
74
  }
142
- if (maybePostOnlyBlocks) {
143
- return maybePostOnlyBlocks;
144
- }
145
75
  if (rootLevelPost === 'template') {
146
76
  return templateBlocks;
147
77
  }
148
78
  return postBlocks;
149
- }, [maybeNavigationBlocks, maybePostOnlyBlocks, rootLevelPost, templateBlocks, postBlocks]);
79
+ }, [maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks]);
150
80
 
151
81
  // Handle fallback to postBlocks outside of the above useMemo, to ensure
152
82
  // that constructed block templates that call `createBlock` are not generated
153
83
  // too frequently. This ensures that clientIds are stable.
154
- const disableRootLevelChanges = !!template && mode === 'template-locked' || post.type === 'wp_navigation' || mode === 'post-only';
155
- const navigationBlockClientId = post.type === 'wp_navigation' && blocks && blocks[0]?.clientId;
156
- useForceFocusModeForNavigation(navigationBlockClientId);
84
+ const disableRootLevelChanges = !!template && mode === 'template-locked' || post.type === 'wp_navigation';
157
85
  if (disableRootLevelChanges) {
158
86
  return [blocks, noop, noop];
159
87
  }
@@ -207,13 +135,14 @@ const ExperimentalEditorProvider = (0, _withRegistryProvider.default)(({
207
135
  updatePostLock,
208
136
  setupEditor,
209
137
  updateEditorSettings,
210
- __experimentalTearDownEditor
211
- } = (0, _data.useDispatch)(_store.store);
138
+ setCurrentTemplateId,
139
+ setEditedPost,
140
+ setRenderingMode
141
+ } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
212
142
  const {
213
143
  createWarningNotice
214
144
  } = (0, _data.useDispatch)(_notices.store);
215
145
 
216
- // Initialize and tear down the editor.
217
146
  // Ideally this should be synced on each change and not just something you do once.
218
147
  (0, _element.useLayoutEffect)(() => {
219
148
  // Assume that we don't need to initialize in the case of an error recovery.
@@ -231,15 +160,28 @@ const ExperimentalEditorProvider = (0, _withRegistryProvider.default)(({
231
160
  }]
232
161
  });
233
162
  }
234
- return () => {
235
- __experimentalTearDownEditor();
236
- };
237
163
  }, []);
238
164
 
165
+ // Synchronizes the active post with the state
166
+ (0, _element.useEffect)(() => {
167
+ setEditedPost(post.type, post.id);
168
+ }, [post.type, post.id]);
169
+
239
170
  // Synchronize the editor settings as they change.
240
171
  (0, _element.useEffect)(() => {
241
172
  updateEditorSettings(settings);
242
173
  }, [settings, updateEditorSettings]);
174
+
175
+ // Synchronizes the active template with the state.
176
+ (0, _element.useEffect)(() => {
177
+ setCurrentTemplateId(template?.id);
178
+ }, [template?.id, setCurrentTemplateId]);
179
+
180
+ // Sets the right rendering mode when loading the editor.
181
+ (0, _element.useEffect)(() => {
182
+ var _settings$defaultRend;
183
+ setRenderingMode((_settings$defaultRend = settings.defaultRenderingMode) !== null && _settings$defaultRend !== void 0 ? _settings$defaultRend : 'post-only');
184
+ }, [settings.defaultRenderingMode, setRenderingMode]);
243
185
  if (!isReady) {
244
186
  return null;
245
187
  }
@@ -259,7 +201,7 @@ const ExperimentalEditorProvider = (0, _withRegistryProvider.default)(({
259
201
  selection: selection,
260
202
  settings: blockEditorSettings,
261
203
  useSubRegistry: false
262
- }, children, (0, _react.createElement)(PatternsMenuItems, null), ['post-only', 'template-locked'].includes(mode) && (0, _react.createElement)(_disableNonPageContentBlocks.default, null)))));
204
+ }, children, (0, _react.createElement)(PatternsMenuItems, null), mode === 'template-locked' && (0, _react.createElement)(_disableNonPageContentBlocks.default, null), type === 'wp_navigation' && (0, _react.createElement)(_navigationBlockEditingMode.default, null)))));
263
205
  });
264
206
  exports.ExperimentalEditorProvider = ExperimentalEditorProvider;
265
207
  function EditorProvider(props) {
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_data","_i18n","_coreData","_blockEditor","_notices","_patterns","_blocks","_withRegistryProvider","_interopRequireDefault","_store","_useBlockEditorSettings","_lockUnlock","_disableNonPageContentBlocks","_constants","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PatternsMenuItems","editPatternsPrivateApis","noop","useForceFocusModeForNavigation","navigationBlockClientId","setBlockEditingMode","unsetBlockEditingMode","useDispatch","blockEditorStore","useEffect","extractPageContentBlockTypesFromTemplateBlocks","blocks","result","i","length","name","PAGE_CONTENT_BLOCK_TYPES","includes","push","createBlock","innerBlocks","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","useEntityBlockEditor","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","useMemo","ref","templateLock","maybePostOnlyBlocks","postContentBlocks","layout","style","spacing","margin","top","disableRootLevelChanges","clientId","ExperimentalEditorProvider","withRegistryProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","useSelect","select","editorStore","getRenderingMode","shouldRenderTemplate","defaultBlockContext","postContext","postId","postType","templateSlug","slug","undefined","editorSettings","selection","isReady","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blockEditorSettings","useBlockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","__experimentalTearDownEditor","createWarningNotice","noticesStore","useLayoutEffect","postLock","autosave","__","actions","label","url","editLink","_react","createElement","EntityProvider","kind","BlockContextProvider","value","useSubRegistry","default","exports","EditorProvider","props","BlockEditorProvider","_default"],"sources":["@wordpress/editor/src/components/provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lock-unlock';\nimport DisableNonPageContentBlocks from './disable-non-page-content-blocks';\nimport { PAGE_CONTENT_BLOCK_TYPES } from './constants';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * For the Navigation block editor, we need to force the block editor to contentOnly for that block.\n *\n * Set block editing mode to contentOnly when entering Navigation focus mode.\n * this ensures that non-content controls on the block will be hidden and thus\n * the user can focus on editing the Navigation Menu content only.\n *\n * @param {string} navigationBlockClientId ClientId.\n */\nfunction useForceFocusModeForNavigation( navigationBlockClientId ) {\n\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( ! navigationBlockClientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockEditingMode( navigationBlockClientId, 'contentOnly' );\n\n\t\treturn () => {\n\t\t\tunsetBlockEditingMode( navigationBlockClientId );\n\t\t};\n\t}, [\n\t\tnavigationBlockClientId,\n\t\tunsetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t] );\n}\n\n/**\n * Helper method to extract the post content block types from a template.\n *\n * @param {Array} blocks Template blocks.\n *\n * @return {Array} Flattened object.\n */\nfunction extractPageContentBlockTypesFromTemplateBlocks( blocks ) {\n\tconst result = [];\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\t// Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,\n\t\t// we skip it because we only want to render stand-alone page content blocks in the block list.\n\t\tif ( blocks[ i ].name === 'core/query' ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( PAGE_CONTENT_BLOCK_TYPES.includes( blocks[ i ].name ) ) {\n\t\t\tresult.push( createBlock( blocks[ i ].name ) );\n\t\t}\n\t\tif ( blocks[ i ].innerBlocks.length ) {\n\t\t\tresult.push(\n\t\t\t\t...extractPageContentBlockTypesFromTemplateBlocks(\n\t\t\t\t\tblocks[ i ].innerBlocks\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Depending on the post, template and template mode,\n * returns the appropriate blocks and change handlers for the block editor provider.\n *\n * @param {Array} post Block list.\n * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.\n * @param {string} mode Rendering mode.\n * @return {Array} Block editor props.\n */\nfunction useBlockEditorProps( post, template, mode ) {\n\tconst rootLevelPost =\n\t\tmode === 'post-only' || ! template ? 'post' : 'template';\n\tconst [ postBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpost.type,\n\t\t{ id: post.id }\n\t);\n\tconst [ templateBlocks, onInputTemplate, onChangeTemplate ] =\n\t\tuseEntityBlockEditor( 'postType', template?.type, {\n\t\t\tid: template?.id,\n\t\t} );\n\tconst maybeNavigationBlocks = useMemo( () => {\n\t\tif ( post.type === 'wp_navigation' ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\t\tref: post.id,\n\t\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t\t// the block's content.\n\t\t\t\t\ttemplateLock: false,\n\t\t\t\t} ),\n\t\t\t];\n\t\t}\n\t}, [ post.type, post.id ] );\n\n\tconst maybePostOnlyBlocks = useMemo( () => {\n\t\tif ( mode === 'post-only' ) {\n\t\t\tconst postContentBlocks =\n\t\t\t\textractPageContentBlockTypesFromTemplateBlocks(\n\t\t\t\t\ttemplateBlocks\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\tlayout: { type: 'constrained' },\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\t\t\ttop: '4em', // Mimics the post editor.\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tpostContentBlocks.length\n\t\t\t\t\t\t? postContentBlocks\n\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\tcreateBlock( 'core/post-title' ),\n\t\t\t\t\t\t\t\tcreateBlock( 'core/post-content' ),\n\t\t\t\t\t\t ]\n\t\t\t\t),\n\t\t\t];\n\t\t}\n\t}, [ templateBlocks, mode ] );\n\n\t// It is important that we don't create a new instance of blocks on every change\n\t// We should only create a new instance if the blocks them selves change, not a dependency of them.\n\tconst blocks = useMemo( () => {\n\t\tif ( maybeNavigationBlocks ) {\n\t\t\treturn maybeNavigationBlocks;\n\t\t}\n\n\t\tif ( maybePostOnlyBlocks ) {\n\t\t\treturn maybePostOnlyBlocks;\n\t\t}\n\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [\n\t\tmaybeNavigationBlocks,\n\t\tmaybePostOnlyBlocks,\n\t\trootLevelPost,\n\t\ttemplateBlocks,\n\t\tpostBlocks,\n\t] );\n\n\t// Handle fallback to postBlocks outside of the above useMemo, to ensure\n\t// that constructed block templates that call `createBlock` are not generated\n\t// too frequently. This ensures that clientIds are stable.\n\tconst disableRootLevelChanges =\n\t\t( !! template && mode === 'template-locked' ) ||\n\t\tpost.type === 'wp_navigation' ||\n\t\tmode === 'post-only';\n\tconst navigationBlockClientId =\n\t\tpost.type === 'wp_navigation' && blocks && blocks[ 0 ]?.clientId;\n\tuseForceFocusModeForNavigation( navigationBlockClientId );\n\tif ( disableRootLevelChanges ) {\n\t\treturn [ blocks, noop, noop ];\n\t}\n\n\treturn [\n\t\tblocks,\n\t\trootLevelPost === 'post' ? onInput : onInputTemplate,\n\t\trootLevelPost === 'post' ? onChange : onChangeTemplate,\n\t];\n}\n\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t\t__unstableTemplate: template,\n\t} ) => {\n\t\tconst mode = useSelect(\n\t\t\t( select ) => select( editorStore ).getRenderingMode(),\n\t\t\t[]\n\t\t);\n\t\tconst shouldRenderTemplate = !! template && mode !== 'post-only';\n\t\tconst rootLevelPost = shouldRenderTemplate ? template : post;\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tconst postContext =\n\t\t\t\trootLevelPost.type !== 'wp_template' ||\n\t\t\t\t( shouldRenderTemplate && mode !== 'template-only' )\n\t\t\t\t\t? { postId: post.id, postType: post.type }\n\t\t\t\t\t: {};\n\n\t\t\treturn {\n\t\t\t\t...postContext,\n\t\t\t\ttemplateSlug:\n\t\t\t\t\trootLevelPost.type === 'wp_template'\n\t\t\t\t\t\t? rootLevelPost.slug\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t}, [\n\t\t\tmode,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost?.slug,\n\t\t\tshouldRenderTemplate,\n\t\t] );\n\t\tconst { editorSettings, selection, isReady } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetEditorSelection,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t} = select( editorStore );\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tselection: getEditorSelection(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[]\n\t\t);\n\t\tconst { id, type } = rootLevelPost;\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\ttype,\n\t\t\tid\n\t\t);\n\t\tconst [ blocks, onInput, onChange ] = useBlockEditorProps(\n\t\t\tpost,\n\t\t\ttemplate,\n\t\t\tmode\n\t\t);\n\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\t__experimentalTearDownEditor,\n\t\t} = useDispatch( editorStore );\n\t\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t\t// Initialize and tear down the editor.\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\t__experimentalTearDownEditor();\n\t\t\t};\n\t\t}, [] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings, updateEditorSettings ] );\n\n\t\tif ( ! isReady ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t<PatternsMenuItems />\n\t\t\t\t\t\t\t{ [ 'post-only', 'template-locked' ].includes(\n\t\t\t\t\t\t\t\tmode\n\t\t\t\t\t\t\t) && <DisableNonPageContentBlocks /> }\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_data","_i18n","_coreData","_blockEditor","_notices","_patterns","_blocks","_withRegistryProvider","_interopRequireDefault","_store","_useBlockEditorSettings","_lockUnlock","_disableNonPageContentBlocks","_navigationBlockEditingMode","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PatternsMenuItems","editPatternsPrivateApis","noop","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","useEntityBlockEditor","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","useMemo","createBlock","ref","templateLock","blocks","disableRootLevelChanges","ExperimentalEditorProvider","withRegistryProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","useSelect","select","editorStore","getRenderingMode","shouldRenderTemplate","defaultBlockContext","postContext","postId","postType","templateSlug","slug","undefined","editorSettings","selection","isReady","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blockEditorSettings","useBlockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","setCurrentTemplateId","setEditedPost","setRenderingMode","useDispatch","createWarningNotice","noticesStore","useLayoutEffect","postLock","autosave","__","actions","label","url","editLink","useEffect","_settings$defaultRend","defaultRenderingMode","_react","createElement","EntityProvider","kind","BlockContextProvider","value","useSubRegistry","default","exports","EditorProvider","props","BlockEditorProvider","_default"],"sources":["@wordpress/editor/src/components/provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lock-unlock';\nimport DisableNonPageContentBlocks from './disable-non-page-content-blocks';\nimport NavigationBlockEditingMode from './navigation-block-editing-mode';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * Depending on the post, template and template mode,\n * returns the appropriate blocks and change handlers for the block editor provider.\n *\n * @param {Array} post Block list.\n * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.\n * @param {string} mode Rendering mode.\n * @return {Array} Block editor props.\n */\nfunction useBlockEditorProps( post, template, mode ) {\n\tconst rootLevelPost =\n\t\tmode === 'post-only' || ! template ? 'post' : 'template';\n\tconst [ postBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpost.type,\n\t\t{ id: post.id }\n\t);\n\tconst [ templateBlocks, onInputTemplate, onChangeTemplate ] =\n\t\tuseEntityBlockEditor( 'postType', template?.type, {\n\t\t\tid: template?.id,\n\t\t} );\n\tconst maybeNavigationBlocks = useMemo( () => {\n\t\tif ( post.type === 'wp_navigation' ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\t\tref: post.id,\n\t\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t\t// the block's content.\n\t\t\t\t\ttemplateLock: false,\n\t\t\t\t} ),\n\t\t\t];\n\t\t}\n\t}, [ post.type, post.id ] );\n\n\t// It is important that we don't create a new instance of blocks on every change\n\t// We should only create a new instance if the blocks them selves change, not a dependency of them.\n\tconst blocks = useMemo( () => {\n\t\tif ( maybeNavigationBlocks ) {\n\t\t\treturn maybeNavigationBlocks;\n\t\t}\n\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [ maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks ] );\n\n\t// Handle fallback to postBlocks outside of the above useMemo, to ensure\n\t// that constructed block templates that call `createBlock` are not generated\n\t// too frequently. This ensures that clientIds are stable.\n\tconst disableRootLevelChanges =\n\t\t( !! template && mode === 'template-locked' ) ||\n\t\tpost.type === 'wp_navigation';\n\tif ( disableRootLevelChanges ) {\n\t\treturn [ blocks, noop, noop ];\n\t}\n\n\treturn [\n\t\tblocks,\n\t\trootLevelPost === 'post' ? onInput : onInputTemplate,\n\t\trootLevelPost === 'post' ? onChange : onChangeTemplate,\n\t];\n}\n\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t\t__unstableTemplate: template,\n\t} ) => {\n\t\tconst mode = useSelect(\n\t\t\t( select ) => select( editorStore ).getRenderingMode(),\n\t\t\t[]\n\t\t);\n\t\tconst shouldRenderTemplate = !! template && mode !== 'post-only';\n\t\tconst rootLevelPost = shouldRenderTemplate ? template : post;\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tconst postContext =\n\t\t\t\trootLevelPost.type !== 'wp_template' ||\n\t\t\t\t( shouldRenderTemplate && mode !== 'template-only' )\n\t\t\t\t\t? { postId: post.id, postType: post.type }\n\t\t\t\t\t: {};\n\n\t\t\treturn {\n\t\t\t\t...postContext,\n\t\t\t\ttemplateSlug:\n\t\t\t\t\trootLevelPost.type === 'wp_template'\n\t\t\t\t\t\t? rootLevelPost.slug\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t}, [\n\t\t\tmode,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost?.slug,\n\t\t\tshouldRenderTemplate,\n\t\t] );\n\t\tconst { editorSettings, selection, isReady } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetEditorSelection,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t} = select( editorStore );\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tselection: getEditorSelection(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[]\n\t\t);\n\t\tconst { id, type } = rootLevelPost;\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\ttype,\n\t\t\tid\n\t\t);\n\t\tconst [ blocks, onInput, onChange ] = useBlockEditorProps(\n\t\t\tpost,\n\t\t\ttemplate,\n\t\t\tmode\n\t\t);\n\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\tsetCurrentTemplateId,\n\t\t\tsetEditedPost,\n\t\t\tsetRenderingMode,\n\t\t} = unlock( useDispatch( editorStore ) );\n\t\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}, [] );\n\n\t\t// Synchronizes the active post with the state\n\t\tuseEffect( () => {\n\t\t\tsetEditedPost( post.type, post.id );\n\t\t}, [ post.type, post.id ] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings, updateEditorSettings ] );\n\n\t\t// Synchronizes the active template with the state.\n\t\tuseEffect( () => {\n\t\t\tsetCurrentTemplateId( template?.id );\n\t\t}, [ template?.id, setCurrentTemplateId ] );\n\n\t\t// Sets the right rendering mode when loading the editor.\n\t\tuseEffect( () => {\n\t\t\tsetRenderingMode( settings.defaultRenderingMode ?? 'post-only' );\n\t\t}, [ settings.defaultRenderingMode, setRenderingMode ] );\n\n\t\tif ( ! isReady ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t<PatternsMenuItems />\n\t\t\t\t\t\t\t{ mode === 'template-locked' && (\n\t\t\t\t\t\t\t\t<DisableNonPageContentBlocks />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ type === 'wp_navigation' && (\n\t\t\t\t\t\t\t\t<NavigationBlockEditingMode />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"],"mappings":"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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = exports.ExperimentalEditorProvider = void 0;
8
8
  var _react = require("react");
9
+ var _reactNative = require("react-native");
9
10
  var _memize = _interopRequireDefault(require("memize"));
10
11
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
11
12
  var _reactNativeBridge = _interopRequireWildcard(require("@wordpress/react-native-bridge"));
@@ -18,6 +19,7 @@ var _hooks = require("@wordpress/hooks");
18
19
  var _blockEditor = require("@wordpress/block-editor");
19
20
  var _components = require("@wordpress/components");
20
21
  var _blockLibrary = require("@wordpress/block-library");
22
+ var _i18n = require("@wordpress/i18n");
21
23
  var _editor = require("@wordpress/editor");
22
24
  var _notices = require("@wordpress/notices");
23
25
  var _coreData = require("@wordpress/core-data");
@@ -65,6 +67,7 @@ class NativeEditorProvider extends _element.Component {
65
67
  this.post = this.props.post;
66
68
  this.props.addEntities(postTypeEntities);
67
69
  this.props.receiveEntityRecords('postType', this.post.type, this.post);
70
+ this.onHardwareBackPress = this.onHardwareBackPress.bind(this);
68
71
  this.getEditorSettings = (0, _memize.default)((settings, capabilities) => ({
69
72
  ...settings,
70
73
  capabilities
@@ -78,6 +81,7 @@ class NativeEditorProvider extends _element.Component {
78
81
  componentDidMount() {
79
82
  const {
80
83
  capabilities,
84
+ createErrorNotice,
81
85
  locale,
82
86
  hostAppNamespace,
83
87
  updateEditorSettings,
@@ -106,13 +110,18 @@ class NativeEditorProvider extends _element.Component {
106
110
  });
107
111
  this.subscriptionParentMediaAppend = (0, _reactNativeBridge.subscribeMediaAppend)(payload => {
108
112
  const blockName = 'core/' + payload.mediaType;
109
- const newBlock = (0, _blocks.createBlock)(blockName, {
110
- id: payload.mediaId,
111
- [payload.mediaType === 'image' ? 'url' : 'src']: payload.mediaUrl
112
- });
113
- const indexAfterSelected = this.props.selectedBlockIndex + 1;
114
- const insertionIndex = indexAfterSelected || this.props.blockCount;
115
- this.props.insertBlock(newBlock, insertionIndex);
113
+ const blockType = (0, _blocks.getBlockType)(blockName);
114
+ if (blockType && blockType?.name) {
115
+ const newBlock = (0, _blocks.createBlock)(blockType.name, {
116
+ id: payload.mediaId,
117
+ [payload.mediaType === 'image' ? 'url' : 'src']: payload.mediaUrl
118
+ });
119
+ const indexAfterSelected = this.props.selectedBlockIndex + 1;
120
+ const insertionIndex = indexAfterSelected || this.props.blockCount;
121
+ this.props.insertBlock(newBlock, insertionIndex);
122
+ } else {
123
+ createErrorNotice((0, _i18n.__)('File type not supported as a media file.'));
124
+ }
116
125
  });
117
126
  this.subscriptionParentUpdateEditorSettings = (0, _reactNativeBridge.subscribeUpdateEditorSettings)(({
118
127
  galleryWithImageBlocks,
@@ -134,6 +143,7 @@ class NativeEditorProvider extends _element.Component {
134
143
  isHelpVisible: true
135
144
  });
136
145
  });
146
+ this.hardwareBackPressListener = _reactNative.BackHandler.addEventListener('hardwareBackPress', this.onHardwareBackPress);
137
147
 
138
148
  // Request current block impressions from native app.
139
149
  (0, _reactNativeBridge.requestBlockTypeImpressions)(storedImpressions => {
@@ -187,6 +197,9 @@ class NativeEditorProvider extends _element.Component {
187
197
  if (this.subscriptionParentShowEditorHelp) {
188
198
  this.subscriptionParentShowEditorHelp.remove();
189
199
  }
200
+ if (this.hardwareBackPressListener) {
201
+ this.hardwareBackPressListener.remove();
202
+ }
190
203
  }
191
204
  getThemeColors({
192
205
  rawStyles,
@@ -211,6 +224,17 @@ class NativeEditorProvider extends _element.Component {
211
224
  _reactNativeBridge.default.editorDidMount(unsupportedBlockNames);
212
225
  }
213
226
  }
227
+ onHardwareBackPress() {
228
+ const {
229
+ clearSelectedBlock,
230
+ selectedBlockIndex
231
+ } = this.props;
232
+ if (selectedBlockIndex !== -1) {
233
+ clearSelectedBlock();
234
+ return true;
235
+ }
236
+ return false;
237
+ }
214
238
  serializeToNativeAction() {
215
239
  const title = this.props.title;
216
240
  let html;
@@ -322,6 +346,7 @@ const ComposedNativeProvider = (0, _compose.compose)([(0, _data.withSelect)(sele
322
346
  updateEditorSettings
323
347
  } = dispatch(_editor.store);
324
348
  const {
349
+ clearSelectedBlock,
325
350
  updateSettings,
326
351
  insertBlock,
327
352
  replaceBlock
@@ -334,7 +359,8 @@ const ComposedNativeProvider = (0, _compose.compose)([(0, _data.withSelect)(sele
334
359
  receiveEntityRecords
335
360
  } = dispatch(_coreData.store);
336
361
  const {
337
- createSuccessNotice
362
+ createSuccessNotice,
363
+ createErrorNotice
338
364
  } = dispatch(_notices.store);
339
365
  return {
340
366
  updateBlockEditorSettings: updateSettings,
@@ -342,6 +368,8 @@ const ComposedNativeProvider = (0, _compose.compose)([(0, _data.withSelect)(sele
342
368
  addEntities,
343
369
  insertBlock,
344
370
  createSuccessNotice,
371
+ createErrorNotice,
372
+ clearSelectedBlock,
345
373
  editTitle(title) {
346
374
  editPost({
347
375
  title
@@ -1 +1 @@
1
- {"version":3,"names":["_memize","_interopRequireDefault","require","_reactNativeSafeAreaContext","_reactNativeBridge","_interopRequireWildcard","_element","_wordcount","_blocks","_data","_compose","_hooks","_blockEditor","_components","_blockLibrary","_editor","_notices","_coreData","_editPost","_index","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","NativeEditorProvider","Component","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","getEditorSettings","memize","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","subscribeParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","subscribeParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","subscribeSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","subscribeUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","subscribeReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","subscribeMediaAppend","blockName","mediaType","newBlock","createBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","subscribeUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","subscribeUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","subscribeShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","subscribeShowEditorHelp","setState","requestBlockTypeImpressions","storedImpressions","impressions","NEW_BLOCK_TYPES","storedImpressionKeys","keys","storedImpressionsCurrent","every","newKey","includes","setBlockTypeImpressions","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","getGlobalStyles","getColorsAndGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","getUnregisteredTypeHandlerName","unsupportedBlockNames","filter","block","attributes","originalName","RNReactNativeGutenbergBridge","editorDidMount","mode","applyFilters","serialize","hasChanges","raw","content","contentInfo","characterCount","wordCount","paragraphCount","provideToNative_Html","parsed","parse","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","render","children","_react","createElement","Fragment","SafeAreaProvider","EditorHelpTopics","isVisible","onClose","close","showSupport","supportSection","ComposedNativeProvider","compose","withSelect","select","_settings$colors","_settings$gradients","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","editorStore","getEditorMode","editPostStore","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","blockEditorStore","colors","gradients","selectedBlockClientId","withDispatch","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","coreStore","noticesStore","__unstableShouldCreateUndoLevel","exports","ExperimentalEditorProvider","_default"],"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\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';\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\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 newBlock = createBlock( blockName, {\n\t\t\t\t\tid: payload.mediaId,\n\t\t\t\t\t[ payload.mediaType === 'image' ? 'url' : 'src' ]:\n\t\t\t\t\t\tpayload.mediaUrl,\n\t\t\t\t} );\n\n\t\t\t\tconst indexAfterSelected = this.props.selectedBlockIndex + 1;\n\t\t\t\tconst insertionIndex =\n\t\t\t\t\tindexAfterSelected || this.props.blockCount;\n\n\t\t\t\tthis.props.insertBlock( newBlock, insertionIndex );\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 } = dispatch( 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\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":["_reactNative","require","_memize","_interopRequireDefault","_reactNativeSafeAreaContext","_reactNativeBridge","_interopRequireWildcard","_element","_wordcount","_blocks","_data","_compose","_hooks","_blockEditor","_components","_blockLibrary","_i18n","_editor","_notices","_coreData","_editPost","_index","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","NativeEditorProvider","Component","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","onHardwareBackPress","bind","getEditorSettings","memize","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","createErrorNotice","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","subscribeParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","subscribeParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","subscribeSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","subscribeUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","subscribeReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","subscribeMediaAppend","blockName","mediaType","blockType","getBlockType","newBlock","createBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","__","subscriptionParentUpdateEditorSettings","subscribeUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","subscribeUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","subscribeShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","subscribeShowEditorHelp","setState","hardwareBackPressListener","BackHandler","addEventListener","requestBlockTypeImpressions","storedImpressions","impressions","NEW_BLOCK_TYPES","storedImpressionKeys","keys","storedImpressionsCurrent","every","newKey","includes","setBlockTypeImpressions","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","getGlobalStyles","getColorsAndGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","getUnregisteredTypeHandlerName","unsupportedBlockNames","filter","block","attributes","originalName","RNReactNativeGutenbergBridge","editorDidMount","clearSelectedBlock","mode","applyFilters","serialize","hasChanges","raw","content","contentInfo","characterCount","wordCount","paragraphCount","provideToNative_Html","parsed","parse","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","render","children","_react","createElement","Fragment","SafeAreaProvider","EditorHelpTopics","isVisible","onClose","close","showSupport","supportSection","ComposedNativeProvider","compose","withSelect","select","_settings$colors","_settings$gradients","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","editorStore","getEditorMode","editPostStore","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","blockEditorStore","colors","gradients","selectedBlockClientId","withDispatch","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","coreStore","noticesStore","__unstableShouldCreateUndoLevel","exports","ExperimentalEditorProvider","_default"],"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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"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = NavigationBlockEditingMode;
7
+ var _element = require("@wordpress/element");
8
+ var _data = require("@wordpress/data");
9
+ var _blockEditor = require("@wordpress/block-editor");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ /**
15
+ * For the Navigation block editor, we need to force the block editor to contentOnly for that block.
16
+ *
17
+ * Set block editing mode to contentOnly when entering Navigation focus mode.
18
+ * this ensures that non-content controls on the block will be hidden and thus
19
+ * the user can focus on editing the Navigation Menu content only.
20
+ */
21
+
22
+ function NavigationBlockEditingMode() {
23
+ // In the navigation block editor,
24
+ // the navigation block is the only root block.
25
+ const blockClientId = (0, _data.useSelect)(select => select(_blockEditor.store).getBlockOrder()?.[0], []);
26
+ const {
27
+ setBlockEditingMode,
28
+ unsetBlockEditingMode
29
+ } = (0, _data.useDispatch)(_blockEditor.store);
30
+ (0, _element.useEffect)(() => {
31
+ if (!blockClientId) {
32
+ return;
33
+ }
34
+ setBlockEditingMode(blockClientId, 'contentOnly');
35
+ return () => {
36
+ unsetBlockEditingMode(blockClientId);
37
+ };
38
+ }, [blockClientId, unsetBlockEditingMode, setBlockEditingMode]);
39
+ }
40
+ //# sourceMappingURL=navigation-block-editing-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_data","_blockEditor","NavigationBlockEditingMode","blockClientId","useSelect","select","blockEditorStore","getBlockOrder","setBlockEditingMode","unsetBlockEditingMode","useDispatch","useEffect"],"sources":["@wordpress/editor/src/components/provider/navigation-block-editing-mode.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * For the Navigation block editor, we need to force the block editor to contentOnly for that block.\n *\n * Set block editing mode to contentOnly when entering Navigation focus mode.\n * this ensures that non-content controls on the block will be hidden and thus\n * the user can focus on editing the Navigation Menu content only.\n */\n\nexport default function NavigationBlockEditingMode() {\n\t// In the navigation block editor,\n\t// the navigation block is the only root block.\n\tconst blockClientId = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlockOrder()?.[ 0 ],\n\t\t[]\n\t);\n\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( ! blockClientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockEditingMode( blockClientId, 'contentOnly' );\n\n\t\treturn () => {\n\t\t\tunsetBlockEditingMode( blockClientId );\n\t\t};\n\t}, [ blockClientId, unsetBlockEditingMode, setBlockEditingMode ] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,SAASG,0BAA0BA,CAAA,EAAG;EACpD;EACA;EACA,MAAMC,aAAa,GAAG,IAAAC,eAAS,EAC5BC,MAAM,IAAMA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,aAAa,CAAC,CAAC,GAAI,CAAC,CAAE,EAC/D,EACD,CAAC;EACD,MAAM;IAAEC,mBAAmB;IAAEC;EAAsB,CAAC,GACnD,IAAAC,iBAAW,EAAEJ,kBAAiB,CAAC;EAEhC,IAAAK,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAER,aAAa,EAAG;MACtB;IACD;IAEAK,mBAAmB,CAAEL,aAAa,EAAE,aAAc,CAAC;IAEnD,OAAO,MAAM;MACZM,qBAAqB,CAAEN,aAAc,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CAAEA,aAAa,EAAEM,qBAAqB,EAAED,mBAAmB,CAAG,CAAC;AACnE"}