@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.
- package/CHANGELOG.md +8 -0
- package/LICENSE.md +1 -1
- package/build/components/document-bar/index.js +164 -0
- package/build/components/document-bar/index.js.map +1 -0
- package/build/components/document-outline/index.js +82 -1
- package/build/components/document-outline/index.js.map +1 -1
- package/build/components/document-tools/index.js +160 -0
- package/build/components/document-tools/index.js.map +1 -0
- package/build/components/editor-canvas/edit-template-blocks-notification.js +106 -0
- package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
- package/build/components/editor-canvas/index.js +298 -0
- package/build/components/editor-canvas/index.js.map +1 -0
- package/build/components/entities-saved-states/index.js +3 -1
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/index.js +12 -2
- package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build/components/index.js +72 -8
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +9 -1
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter-sidebar/index.js +77 -0
- package/build/components/inserter-sidebar/index.js.map +1 -0
- package/build/components/list-view-sidebar/index.js +150 -0
- package/build/components/list-view-sidebar/index.js.map +1 -0
- package/build/components/list-view-sidebar/list-view-outline.js +28 -0
- package/build/components/list-view-sidebar/list-view-outline.js.map +1 -0
- package/build/components/offline-status/index.native.js +85 -0
- package/build/components/offline-status/index.native.js.map +1 -0
- package/build/components/page-attributes/panel.js +63 -0
- package/build/components/page-attributes/panel.js.map +1 -0
- package/build/components/post-discussion/panel.js +59 -0
- package/build/components/post-discussion/panel.js.map +1 -0
- package/build/components/post-excerpt/check.js +19 -0
- package/build/components/post-excerpt/check.js.map +1 -1
- package/build/components/post-excerpt/panel.js +55 -0
- package/build/components/post-excerpt/panel.js.map +1 -0
- package/build/components/post-excerpt/plugin.js +72 -0
- package/build/components/post-excerpt/plugin.js.map +1 -0
- package/build/components/post-featured-image/index.js +5 -8
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-featured-image/panel.js +60 -0
- package/build/components/post-featured-image/panel.js.map +1 -0
- package/build/components/post-last-revision/panel.js +27 -0
- package/build/components/post-last-revision/panel.js.map +1 -0
- package/build/components/post-publish-button/index.js +1 -0
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-upload-media.js +2 -4
- package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build/components/post-saved-state/index.js +13 -8
- package/build/components/post-saved-state/index.js.map +1 -1
- package/build/components/post-schedule/panel.js +1 -1
- package/build/components/post-schedule/panel.js.map +1 -1
- package/build/components/post-taxonomies/panel.js +68 -0
- package/build/components/post-taxonomies/panel.js.map +1 -0
- package/build/components/post-template/block-theme.js +100 -0
- package/build/components/post-template/block-theme.js.map +1 -0
- package/build/components/post-template/classic-theme.js +171 -0
- package/build/components/post-template/classic-theme.js.map +1 -0
- package/build/components/post-template/create-new-template-modal.js +98 -0
- package/build/components/post-template/create-new-template-modal.js.map +1 -0
- package/build/components/post-template/create-new-template.js +55 -0
- package/build/components/post-template/create-new-template.js.map +1 -0
- package/build/components/post-template/hooks.js +88 -0
- package/build/components/post-template/hooks.js.map +1 -0
- package/build/components/post-template/panel.js +70 -0
- package/build/components/post-template/panel.js.map +1 -0
- package/build/components/post-template/reset-default-template.js +48 -0
- package/build/components/post-template/reset-default-template.js.map +1 -0
- package/build/components/post-template/swap-template-button.js +86 -0
- package/build/components/post-template/swap-template-button.js.map +1 -0
- package/build/components/post-title/index.native.js +25 -15
- package/build/components/post-title/index.native.js.map +1 -1
- package/build/components/post-view-link/index.js +58 -0
- package/build/components/post-view-link/index.js.map +1 -0
- package/build/components/post-visibility/check.js +5 -17
- package/build/components/post-visibility/check.js.map +1 -1
- package/build/components/preview-dropdown/index.js +118 -0
- package/build/components/preview-dropdown/index.js.map +1 -0
- package/build/components/provider/index.js +24 -82
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js +36 -8
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/navigation-block-editing-mode.js +40 -0
- package/build/components/provider/navigation-block-editing-mode.js.map +1 -0
- package/build/components/provider/use-block-editor-settings.js +38 -15
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/hooks/index.js +1 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/pattern-partial-syncing.js +49 -0
- package/build/hooks/pattern-partial-syncing.js.map +1 -0
- package/build/private-apis.js +14 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +161 -13
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +2 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/index.js +5 -0
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +52 -0
- package/build/store/private-actions.js.map +1 -0
- package/build/store/private-selectors.js +52 -0
- package/build/store/private-selectors.js.map +1 -0
- package/build/store/reducer.js +109 -27
- package/build/store/reducer.js.map +1 -1
- package/build/store/reducer.native.js +0 -1
- package/build/store/reducer.native.js.map +1 -1
- package/build/store/selectors.js +104 -9
- package/build/store/selectors.js.map +1 -1
- package/build/utils/media-upload/index.js +8 -2
- package/build/utils/media-upload/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +156 -0
- package/build-module/components/document-bar/index.js.map +1 -0
- package/build-module/components/document-outline/index.js +82 -1
- package/build-module/components/document-outline/index.js.map +1 -1
- package/build-module/components/document-tools/index.js +151 -0
- package/build-module/components/document-tools/index.js.map +1 -0
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js +100 -0
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
- package/build-module/components/editor-canvas/index.js +289 -0
- package/build-module/components/editor-canvas/index.js.map +1 -0
- package/build-module/components/entities-saved-states/index.js +3 -1
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/index.js +12 -2
- package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +9 -0
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build-module/components/index.js +9 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter-sidebar/index.js +70 -0
- package/build-module/components/inserter-sidebar/index.js.map +1 -0
- package/build-module/components/list-view-sidebar/index.js +142 -0
- package/build-module/components/list-view-sidebar/index.js.map +1 -0
- package/build-module/components/list-view-sidebar/list-view-outline.js +20 -0
- package/build-module/components/list-view-sidebar/list-view-outline.js.map +1 -0
- package/build-module/components/offline-status/index.native.js +77 -0
- package/build-module/components/offline-status/index.native.js.map +1 -0
- package/build-module/components/page-attributes/panel.js +53 -0
- package/build-module/components/page-attributes/panel.js.map +1 -0
- package/build-module/components/post-discussion/panel.js +50 -0
- package/build-module/components/post-discussion/panel.js.map +1 -0
- package/build-module/components/post-excerpt/check.js +19 -0
- package/build-module/components/post-excerpt/check.js.map +1 -1
- package/build-module/components/post-excerpt/panel.js +48 -0
- package/build-module/components/post-excerpt/panel.js.map +1 -0
- package/build-module/components/post-excerpt/plugin.js +64 -0
- package/build-module/components/post-excerpt/plugin.js.map +1 -0
- package/build-module/components/post-featured-image/index.js +5 -8
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-featured-image/panel.js +51 -0
- package/build-module/components/post-featured-image/panel.js.map +1 -0
- package/build-module/components/post-last-revision/panel.js +18 -0
- package/build-module/components/post-last-revision/panel.js.map +1 -0
- package/build-module/components/post-publish-button/index.js +1 -0
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -4
- package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build-module/components/post-saved-state/index.js +13 -8
- package/build-module/components/post-saved-state/index.js.map +1 -1
- package/build-module/components/post-schedule/panel.js +1 -1
- package/build-module/components/post-schedule/panel.js.map +1 -1
- package/build-module/components/post-taxonomies/panel.js +59 -0
- package/build-module/components/post-taxonomies/panel.js.map +1 -0
- package/build-module/components/post-template/block-theme.js +92 -0
- package/build-module/components/post-template/block-theme.js.map +1 -0
- package/build-module/components/post-template/classic-theme.js +162 -0
- package/build-module/components/post-template/classic-theme.js.map +1 -0
- package/build-module/components/post-template/create-new-template-modal.js +91 -0
- package/build-module/components/post-template/create-new-template-modal.js.map +1 -0
- package/build-module/components/post-template/create-new-template.js +47 -0
- package/build-module/components/post-template/create-new-template.js.map +1 -0
- package/build-module/components/post-template/hooks.js +78 -0
- package/build-module/components/post-template/hooks.js.map +1 -0
- package/build-module/components/post-template/panel.js +62 -0
- package/build-module/components/post-template/panel.js.map +1 -0
- package/build-module/components/post-template/reset-default-template.js +41 -0
- package/build-module/components/post-template/reset-default-template.js.map +1 -0
- package/build-module/components/post-template/swap-template-button.js +79 -0
- package/build-module/components/post-template/swap-template-button.js.map +1 -0
- package/build-module/components/post-title/index.native.js +26 -16
- package/build-module/components/post-title/index.native.js.map +1 -1
- package/build-module/components/post-view-link/index.js +51 -0
- package/build-module/components/post-view-link/index.js.map +1 -0
- package/build-module/components/post-visibility/check.js +6 -16
- package/build-module/components/post-visibility/check.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +110 -0
- package/build-module/components/preview-dropdown/index.js.map +1 -0
- package/build-module/components/provider/index.js +25 -83
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/index.native.js +37 -9
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/provider/navigation-block-editing-mode.js +34 -0
- package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -0
- package/build-module/components/provider/use-block-editor-settings.js +38 -15
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/pattern-partial-syncing.js +46 -0
- package/build-module/hooks/pattern-partial-syncing.js.map +1 -0
- package/build-module/private-apis.js +14 -0
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +147 -9
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +2 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/index.js +5 -0
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +44 -0
- package/build-module/store/private-actions.js.map +1 -0
- package/build-module/store/private-selectors.js +43 -0
- package/build-module/store/private-selectors.js.map +1 -0
- package/build-module/store/reducer.js +103 -26
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/reducer.native.js +1 -2
- package/build-module/store/reducer.native.js.map +1 -1
- package/build-module/store/selectors.js +93 -6
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/media-upload/index.js +8 -2
- package/build-module/utils/media-upload/index.js.map +1 -1
- package/build-style/style-rtl.css +433 -0
- package/build-style/style.css +433 -0
- package/package.json +32 -31
- package/src/components/document-bar/index.js +193 -0
- package/src/components/document-bar/style.scss +130 -0
- package/src/components/document-outline/index.js +48 -1
- package/src/components/document-outline/style.scss +12 -0
- package/src/components/document-tools/index.js +177 -0
- package/src/components/document-tools/style.scss +98 -0
- package/src/components/editor-canvas/edit-template-blocks-notification.js +108 -0
- package/src/components/editor-canvas/index.js +386 -0
- package/src/components/editor-canvas/style.scss +5 -0
- package/src/components/entities-saved-states/index.js +3 -1
- package/src/components/entities-saved-states/style.scss +4 -0
- package/src/components/global-keyboard-shortcuts/index.js +12 -2
- package/src/components/global-keyboard-shortcuts/register-shortcuts.js +10 -0
- package/src/components/index.js +9 -1
- package/src/components/index.native.js +1 -0
- package/src/components/inserter-sidebar/index.js +73 -0
- package/src/components/inserter-sidebar/style.scss +22 -0
- package/src/components/list-view-sidebar/index.js +169 -0
- package/src/components/list-view-sidebar/list-view-outline.js +37 -0
- package/src/components/list-view-sidebar/style.scss +84 -0
- package/src/components/offline-status/index.native.js +101 -0
- package/src/components/offline-status/style.native.scss +28 -0
- package/src/components/offline-status/test/index.native.js +108 -0
- package/src/components/page-attributes/panel.js +62 -0
- package/src/components/post-discussion/panel.js +57 -0
- package/src/components/post-excerpt/check.js +18 -0
- package/src/components/post-excerpt/panel.js +57 -0
- package/src/components/post-excerpt/plugin.js +61 -0
- package/src/components/post-excerpt/test/plugin.js +36 -0
- package/src/components/post-featured-image/index.js +3 -7
- package/src/components/post-featured-image/panel.js +55 -0
- package/src/components/post-last-revision/panel.js +22 -0
- package/src/components/post-last-revision/style.scss +10 -0
- package/src/components/post-publish-button/index.js +1 -0
- package/src/components/post-publish-panel/maybe-upload-media.js +3 -8
- package/src/components/post-saved-state/index.js +9 -8
- package/src/components/post-saved-state/test/__snapshots__/index.js.snap +2 -2
- package/src/components/post-schedule/panel.js +1 -1
- package/src/components/post-taxonomies/panel.js +66 -0
- package/src/components/post-template/block-theme.js +110 -0
- package/src/components/post-template/classic-theme.js +213 -0
- package/src/components/post-template/create-new-template-modal.js +139 -0
- package/src/components/post-template/create-new-template.js +50 -0
- package/src/components/post-template/hooks.js +95 -0
- package/src/components/post-template/panel.js +66 -0
- package/src/components/post-template/reset-default-template.js +43 -0
- package/src/components/post-template/style.scss +52 -0
- package/src/components/post-template/swap-template-button.js +86 -0
- package/src/components/post-title/index.native.js +32 -18
- package/src/components/post-title/style.scss +1 -0
- package/src/components/post-title/test/__snapshots__/index.native.js.snap +25 -0
- package/src/components/post-title/test/index.native.js +78 -0
- package/src/components/post-view-link/index.js +47 -0
- package/src/components/post-visibility/check.js +10 -15
- package/src/components/post-visibility/test/check.js +24 -13
- package/src/components/preview-dropdown/index.js +133 -0
- package/src/components/preview-dropdown/style.scss +5 -0
- package/src/components/provider/index.js +28 -118
- package/src/components/provider/index.native.js +55 -14
- package/src/components/provider/navigation-block-editing-mode.js +37 -0
- package/src/components/provider/use-block-editor-settings.js +42 -17
- package/src/hooks/index.js +1 -0
- package/src/hooks/pattern-partial-syncing.js +73 -0
- package/src/private-apis.js +14 -0
- package/src/store/actions.js +160 -9
- package/src/store/defaults.js +1 -0
- package/src/store/index.js +5 -0
- package/src/store/private-actions.js +61 -0
- package/src/store/private-selectors.js +51 -0
- package/src/store/reducer.js +103 -26
- package/src/store/reducer.native.js +0 -2
- package/src/store/selectors.js +144 -42
- package/src/store/test/actions.js +56 -0
- package/src/store/test/reducer.js +98 -0
- package/src/store/test/selectors.js +137 -147
- package/src/style.scss +7 -0
- package/src/utils/media-upload/index.js +9 -2
- package/build/components/post-template/index.js +0 -66
- package/build/components/post-template/index.js.map +0 -1
- package/build-module/components/post-template/index.js +0 -57
- package/build-module/components/post-template/index.js.map +0 -1
- package/src/components/post-template/index.js +0 -64
|
@@ -6,7 +6,7 @@ import { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';
|
|
|
6
6
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
8
|
import { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';
|
|
9
|
-
import { BlockEditorProvider, BlockContextProvider, privateApis as blockEditorPrivateApis
|
|
9
|
+
import { BlockEditorProvider, BlockContextProvider, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
10
10
|
import { store as noticesStore } from '@wordpress/notices';
|
|
11
11
|
import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
|
|
12
12
|
import { createBlock } from '@wordpress/blocks';
|
|
@@ -19,7 +19,7 @@ import { store as editorStore } from '../../store';
|
|
|
19
19
|
import useBlockEditorSettings from './use-block-editor-settings';
|
|
20
20
|
import { unlock } from '../../lock-unlock';
|
|
21
21
|
import DisableNonPageContentBlocks from './disable-non-page-content-blocks';
|
|
22
|
-
import
|
|
22
|
+
import NavigationBlockEditingMode from './navigation-block-editing-mode';
|
|
23
23
|
const {
|
|
24
24
|
ExperimentalBlockEditorProvider
|
|
25
25
|
} = unlock(blockEditorPrivateApis);
|
|
@@ -28,56 +28,6 @@ const {
|
|
|
28
28
|
} = unlock(editPatternsPrivateApis);
|
|
29
29
|
const noop = () => {};
|
|
30
30
|
|
|
31
|
-
/**
|
|
32
|
-
* For the Navigation block editor, we need to force the block editor to contentOnly for that block.
|
|
33
|
-
*
|
|
34
|
-
* Set block editing mode to contentOnly when entering Navigation focus mode.
|
|
35
|
-
* this ensures that non-content controls on the block will be hidden and thus
|
|
36
|
-
* the user can focus on editing the Navigation Menu content only.
|
|
37
|
-
*
|
|
38
|
-
* @param {string} navigationBlockClientId ClientId.
|
|
39
|
-
*/
|
|
40
|
-
function useForceFocusModeForNavigation(navigationBlockClientId) {
|
|
41
|
-
const {
|
|
42
|
-
setBlockEditingMode,
|
|
43
|
-
unsetBlockEditingMode
|
|
44
|
-
} = useDispatch(blockEditorStore);
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
if (!navigationBlockClientId) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
setBlockEditingMode(navigationBlockClientId, 'contentOnly');
|
|
50
|
-
return () => {
|
|
51
|
-
unsetBlockEditingMode(navigationBlockClientId);
|
|
52
|
-
};
|
|
53
|
-
}, [navigationBlockClientId, unsetBlockEditingMode, setBlockEditingMode]);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Helper method to extract the post content block types from a template.
|
|
58
|
-
*
|
|
59
|
-
* @param {Array} blocks Template blocks.
|
|
60
|
-
*
|
|
61
|
-
* @return {Array} Flattened object.
|
|
62
|
-
*/
|
|
63
|
-
function extractPageContentBlockTypesFromTemplateBlocks(blocks) {
|
|
64
|
-
const result = [];
|
|
65
|
-
for (let i = 0; i < blocks.length; i++) {
|
|
66
|
-
// Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,
|
|
67
|
-
// we skip it because we only want to render stand-alone page content blocks in the block list.
|
|
68
|
-
if (blocks[i].name === 'core/query') {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
if (PAGE_CONTENT_BLOCK_TYPES.includes(blocks[i].name)) {
|
|
72
|
-
result.push(createBlock(blocks[i].name));
|
|
73
|
-
}
|
|
74
|
-
if (blocks[i].innerBlocks.length) {
|
|
75
|
-
result.push(...extractPageContentBlockTypesFromTemplateBlocks(blocks[i].innerBlocks));
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
31
|
/**
|
|
82
32
|
* Depending on the post, template and template mode,
|
|
83
33
|
* returns the appropriate blocks and change handlers for the block editor provider.
|
|
@@ -106,23 +56,6 @@ function useBlockEditorProps(post, template, mode) {
|
|
|
106
56
|
})];
|
|
107
57
|
}
|
|
108
58
|
}, [post.type, post.id]);
|
|
109
|
-
const maybePostOnlyBlocks = useMemo(() => {
|
|
110
|
-
if (mode === 'post-only') {
|
|
111
|
-
const postContentBlocks = extractPageContentBlockTypesFromTemplateBlocks(templateBlocks);
|
|
112
|
-
return [createBlock('core/group', {
|
|
113
|
-
layout: {
|
|
114
|
-
type: 'constrained'
|
|
115
|
-
},
|
|
116
|
-
style: {
|
|
117
|
-
spacing: {
|
|
118
|
-
margin: {
|
|
119
|
-
top: '4em' // Mimics the post editor.
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}, postContentBlocks.length ? postContentBlocks : [createBlock('core/post-title'), createBlock('core/post-content')])];
|
|
124
|
-
}
|
|
125
|
-
}, [templateBlocks, mode]);
|
|
126
59
|
|
|
127
60
|
// It is important that we don't create a new instance of blocks on every change
|
|
128
61
|
// We should only create a new instance if the blocks them selves change, not a dependency of them.
|
|
@@ -130,21 +63,16 @@ function useBlockEditorProps(post, template, mode) {
|
|
|
130
63
|
if (maybeNavigationBlocks) {
|
|
131
64
|
return maybeNavigationBlocks;
|
|
132
65
|
}
|
|
133
|
-
if (maybePostOnlyBlocks) {
|
|
134
|
-
return maybePostOnlyBlocks;
|
|
135
|
-
}
|
|
136
66
|
if (rootLevelPost === 'template') {
|
|
137
67
|
return templateBlocks;
|
|
138
68
|
}
|
|
139
69
|
return postBlocks;
|
|
140
|
-
}, [maybeNavigationBlocks,
|
|
70
|
+
}, [maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks]);
|
|
141
71
|
|
|
142
72
|
// Handle fallback to postBlocks outside of the above useMemo, to ensure
|
|
143
73
|
// that constructed block templates that call `createBlock` are not generated
|
|
144
74
|
// too frequently. This ensures that clientIds are stable.
|
|
145
|
-
const disableRootLevelChanges = !!template && mode === 'template-locked' || post.type === 'wp_navigation'
|
|
146
|
-
const navigationBlockClientId = post.type === 'wp_navigation' && blocks && blocks[0]?.clientId;
|
|
147
|
-
useForceFocusModeForNavigation(navigationBlockClientId);
|
|
75
|
+
const disableRootLevelChanges = !!template && mode === 'template-locked' || post.type === 'wp_navigation';
|
|
148
76
|
if (disableRootLevelChanges) {
|
|
149
77
|
return [blocks, noop, noop];
|
|
150
78
|
}
|
|
@@ -198,13 +126,14 @@ export const ExperimentalEditorProvider = withRegistryProvider(({
|
|
|
198
126
|
updatePostLock,
|
|
199
127
|
setupEditor,
|
|
200
128
|
updateEditorSettings,
|
|
201
|
-
|
|
202
|
-
|
|
129
|
+
setCurrentTemplateId,
|
|
130
|
+
setEditedPost,
|
|
131
|
+
setRenderingMode
|
|
132
|
+
} = unlock(useDispatch(editorStore));
|
|
203
133
|
const {
|
|
204
134
|
createWarningNotice
|
|
205
135
|
} = useDispatch(noticesStore);
|
|
206
136
|
|
|
207
|
-
// Initialize and tear down the editor.
|
|
208
137
|
// Ideally this should be synced on each change and not just something you do once.
|
|
209
138
|
useLayoutEffect(() => {
|
|
210
139
|
// Assume that we don't need to initialize in the case of an error recovery.
|
|
@@ -222,15 +151,28 @@ export const ExperimentalEditorProvider = withRegistryProvider(({
|
|
|
222
151
|
}]
|
|
223
152
|
});
|
|
224
153
|
}
|
|
225
|
-
return () => {
|
|
226
|
-
__experimentalTearDownEditor();
|
|
227
|
-
};
|
|
228
154
|
}, []);
|
|
229
155
|
|
|
156
|
+
// Synchronizes the active post with the state
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
setEditedPost(post.type, post.id);
|
|
159
|
+
}, [post.type, post.id]);
|
|
160
|
+
|
|
230
161
|
// Synchronize the editor settings as they change.
|
|
231
162
|
useEffect(() => {
|
|
232
163
|
updateEditorSettings(settings);
|
|
233
164
|
}, [settings, updateEditorSettings]);
|
|
165
|
+
|
|
166
|
+
// Synchronizes the active template with the state.
|
|
167
|
+
useEffect(() => {
|
|
168
|
+
setCurrentTemplateId(template?.id);
|
|
169
|
+
}, [template?.id, setCurrentTemplateId]);
|
|
170
|
+
|
|
171
|
+
// Sets the right rendering mode when loading the editor.
|
|
172
|
+
useEffect(() => {
|
|
173
|
+
var _settings$defaultRend;
|
|
174
|
+
setRenderingMode((_settings$defaultRend = settings.defaultRenderingMode) !== null && _settings$defaultRend !== void 0 ? _settings$defaultRend : 'post-only');
|
|
175
|
+
}, [settings.defaultRenderingMode, setRenderingMode]);
|
|
234
176
|
if (!isReady) {
|
|
235
177
|
return null;
|
|
236
178
|
}
|
|
@@ -250,7 +192,7 @@ export const ExperimentalEditorProvider = withRegistryProvider(({
|
|
|
250
192
|
selection: selection,
|
|
251
193
|
settings: blockEditorSettings,
|
|
252
194
|
useSubRegistry: false
|
|
253
|
-
}, children, createElement(PatternsMenuItems, null),
|
|
195
|
+
}, children, createElement(PatternsMenuItems, null), mode === 'template-locked' && createElement(DisableNonPageContentBlocks, null), type === 'wp_navigation' && createElement(NavigationBlockEditingMode, null)))));
|
|
254
196
|
});
|
|
255
197
|
export function EditorProvider(props) {
|
|
256
198
|
return createElement(ExperimentalEditorProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useLayoutEffect","useMemo","useDispatch","useSelect","__","EntityProvider","useEntityBlockEditor","BlockEditorProvider","BlockContextProvider","privateApis","blockEditorPrivateApis","store","blockEditorStore","noticesStore","editPatternsPrivateApis","createBlock","withRegistryProvider","editorStore","useBlockEditorSettings","unlock","DisableNonPageContentBlocks","PAGE_CONTENT_BLOCK_TYPES","ExperimentalBlockEditorProvider","PatternsMenuItems","noop","useForceFocusModeForNavigation","navigationBlockClientId","setBlockEditingMode","unsetBlockEditingMode","extractPageContentBlockTypesFromTemplateBlocks","blocks","result","i","length","name","includes","push","innerBlocks","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","ref","templateLock","maybePostOnlyBlocks","postContentBlocks","layout","style","spacing","margin","top","disableRootLevelChanges","clientId","ExperimentalEditorProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","select","getRenderingMode","shouldRenderTemplate","defaultBlockContext","postContext","postId","postType","templateSlug","slug","undefined","editorSettings","selection","isReady","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","__experimentalTearDownEditor","createWarningNotice","postLock","autosave","actions","label","url","editLink","createElement","kind","value","useSubRegistry","EditorProvider","props"],"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":["useEffect","useLayoutEffect","useMemo","useDispatch","useSelect","__","EntityProvider","useEntityBlockEditor","BlockEditorProvider","BlockContextProvider","privateApis","blockEditorPrivateApis","store","noticesStore","editPatternsPrivateApis","createBlock","withRegistryProvider","editorStore","useBlockEditorSettings","unlock","DisableNonPageContentBlocks","NavigationBlockEditingMode","ExperimentalBlockEditorProvider","PatternsMenuItems","noop","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","ref","templateLock","blocks","disableRootLevelChanges","ExperimentalEditorProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","select","getRenderingMode","shouldRenderTemplate","defaultBlockContext","postContext","postId","postType","templateSlug","slug","undefined","editorSettings","selection","isReady","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","setCurrentTemplateId","setEditedPost","setRenderingMode","createWarningNotice","postLock","autosave","actions","label","url","editLink","_settings$defaultRend","defaultRenderingMode","createElement","kind","value","useSubRegistry","EditorProvider","props"],"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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"}
|
|
@@ -2,6 +2,7 @@ import { createElement, Fragment } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
|
+
import { BackHandler } from 'react-native';
|
|
5
6
|
import memize from 'memize';
|
|
6
7
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
7
8
|
|
|
@@ -11,13 +12,14 @@ import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
|
11
12
|
import RNReactNativeGutenbergBridge, { requestBlockTypeImpressions, setBlockTypeImpressions, subscribeParentGetHtml, subscribeParentToggleHTMLMode, subscribeUpdateHtml, subscribeSetTitle, subscribeMediaAppend, subscribeReplaceBlock, subscribeUpdateEditorSettings, subscribeUpdateCapabilities, subscribeShowNotice, subscribeShowEditorHelp } from '@wordpress/react-native-bridge';
|
|
12
13
|
import { Component } from '@wordpress/element';
|
|
13
14
|
import { count as wordCount } from '@wordpress/wordcount';
|
|
14
|
-
import { parse, serialize, getUnregisteredTypeHandlerName, createBlock } from '@wordpress/blocks';
|
|
15
|
+
import { parse, serialize, getUnregisteredTypeHandlerName, getBlockType, createBlock } from '@wordpress/blocks';
|
|
15
16
|
import { withDispatch, withSelect } from '@wordpress/data';
|
|
16
17
|
import { compose } from '@wordpress/compose';
|
|
17
18
|
import { applyFilters } from '@wordpress/hooks';
|
|
18
19
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
19
20
|
import { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';
|
|
20
21
|
import { NEW_BLOCK_TYPES } from '@wordpress/block-library';
|
|
22
|
+
import { __ } from '@wordpress/i18n';
|
|
21
23
|
const postTypeEntities = [{
|
|
22
24
|
name: 'post',
|
|
23
25
|
baseURL: '/wp/v2/posts'
|
|
@@ -60,6 +62,7 @@ class NativeEditorProvider extends Component {
|
|
|
60
62
|
this.post = this.props.post;
|
|
61
63
|
this.props.addEntities(postTypeEntities);
|
|
62
64
|
this.props.receiveEntityRecords('postType', this.post.type, this.post);
|
|
65
|
+
this.onHardwareBackPress = this.onHardwareBackPress.bind(this);
|
|
63
66
|
this.getEditorSettings = memize((settings, capabilities) => ({
|
|
64
67
|
...settings,
|
|
65
68
|
capabilities
|
|
@@ -73,6 +76,7 @@ class NativeEditorProvider extends Component {
|
|
|
73
76
|
componentDidMount() {
|
|
74
77
|
const {
|
|
75
78
|
capabilities,
|
|
79
|
+
createErrorNotice,
|
|
76
80
|
locale,
|
|
77
81
|
hostAppNamespace,
|
|
78
82
|
updateEditorSettings,
|
|
@@ -101,13 +105,18 @@ class NativeEditorProvider extends Component {
|
|
|
101
105
|
});
|
|
102
106
|
this.subscriptionParentMediaAppend = subscribeMediaAppend(payload => {
|
|
103
107
|
const blockName = 'core/' + payload.mediaType;
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
const blockType = getBlockType(blockName);
|
|
109
|
+
if (blockType && blockType?.name) {
|
|
110
|
+
const newBlock = createBlock(blockType.name, {
|
|
111
|
+
id: payload.mediaId,
|
|
112
|
+
[payload.mediaType === 'image' ? 'url' : 'src']: payload.mediaUrl
|
|
113
|
+
});
|
|
114
|
+
const indexAfterSelected = this.props.selectedBlockIndex + 1;
|
|
115
|
+
const insertionIndex = indexAfterSelected || this.props.blockCount;
|
|
116
|
+
this.props.insertBlock(newBlock, insertionIndex);
|
|
117
|
+
} else {
|
|
118
|
+
createErrorNotice(__('File type not supported as a media file.'));
|
|
119
|
+
}
|
|
111
120
|
});
|
|
112
121
|
this.subscriptionParentUpdateEditorSettings = subscribeUpdateEditorSettings(({
|
|
113
122
|
galleryWithImageBlocks,
|
|
@@ -129,6 +138,7 @@ class NativeEditorProvider extends Component {
|
|
|
129
138
|
isHelpVisible: true
|
|
130
139
|
});
|
|
131
140
|
});
|
|
141
|
+
this.hardwareBackPressListener = BackHandler.addEventListener('hardwareBackPress', this.onHardwareBackPress);
|
|
132
142
|
|
|
133
143
|
// Request current block impressions from native app.
|
|
134
144
|
requestBlockTypeImpressions(storedImpressions => {
|
|
@@ -182,6 +192,9 @@ class NativeEditorProvider extends Component {
|
|
|
182
192
|
if (this.subscriptionParentShowEditorHelp) {
|
|
183
193
|
this.subscriptionParentShowEditorHelp.remove();
|
|
184
194
|
}
|
|
195
|
+
if (this.hardwareBackPressListener) {
|
|
196
|
+
this.hardwareBackPressListener.remove();
|
|
197
|
+
}
|
|
185
198
|
}
|
|
186
199
|
getThemeColors({
|
|
187
200
|
rawStyles,
|
|
@@ -206,6 +219,17 @@ class NativeEditorProvider extends Component {
|
|
|
206
219
|
RNReactNativeGutenbergBridge.editorDidMount(unsupportedBlockNames);
|
|
207
220
|
}
|
|
208
221
|
}
|
|
222
|
+
onHardwareBackPress() {
|
|
223
|
+
const {
|
|
224
|
+
clearSelectedBlock,
|
|
225
|
+
selectedBlockIndex
|
|
226
|
+
} = this.props;
|
|
227
|
+
if (selectedBlockIndex !== -1) {
|
|
228
|
+
clearSelectedBlock();
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
209
233
|
serializeToNativeAction() {
|
|
210
234
|
const title = this.props.title;
|
|
211
235
|
let html;
|
|
@@ -317,6 +341,7 @@ const ComposedNativeProvider = compose([withSelect(select => {
|
|
|
317
341
|
updateEditorSettings
|
|
318
342
|
} = dispatch(editorStore);
|
|
319
343
|
const {
|
|
344
|
+
clearSelectedBlock,
|
|
320
345
|
updateSettings,
|
|
321
346
|
insertBlock,
|
|
322
347
|
replaceBlock
|
|
@@ -329,7 +354,8 @@ const ComposedNativeProvider = compose([withSelect(select => {
|
|
|
329
354
|
receiveEntityRecords
|
|
330
355
|
} = dispatch(coreStore);
|
|
331
356
|
const {
|
|
332
|
-
createSuccessNotice
|
|
357
|
+
createSuccessNotice,
|
|
358
|
+
createErrorNotice
|
|
333
359
|
} = dispatch(noticesStore);
|
|
334
360
|
return {
|
|
335
361
|
updateBlockEditorSettings: updateSettings,
|
|
@@ -337,6 +363,8 @@ const ComposedNativeProvider = compose([withSelect(select => {
|
|
|
337
363
|
addEntities,
|
|
338
364
|
insertBlock,
|
|
339
365
|
createSuccessNotice,
|
|
366
|
+
createErrorNotice,
|
|
367
|
+
clearSelectedBlock,
|
|
340
368
|
editTitle(title) {
|
|
341
369
|
editPost({
|
|
342
370
|
title
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memize","SafeAreaProvider","RNReactNativeGutenbergBridge","requestBlockTypeImpressions","setBlockTypeImpressions","subscribeParentGetHtml","subscribeParentToggleHTMLMode","subscribeUpdateHtml","subscribeSetTitle","subscribeMediaAppend","subscribeReplaceBlock","subscribeUpdateEditorSettings","subscribeUpdateCapabilities","subscribeShowNotice","subscribeShowEditorHelp","Component","count","wordCount","parse","serialize","getUnregisteredTypeHandlerName","createBlock","withDispatch","withSelect","compose","applyFilters","store","blockEditorStore","getGlobalStyles","getColorsAndGradients","NEW_BLOCK_TYPES","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","EditorHelpTopics","editorStore","noticesStore","coreStore","editPostStore","EditorProvider","NativeEditorProvider","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","getEditorSettings","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","blockName","mediaType","newBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","setState","storedImpressions","impressions","storedImpressionKeys","Object","keys","storedImpressionsCurrent","every","newKey","includes","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","unsupportedBlockNames","filter","block","attributes","originalName","editorDidMount","mode","hasChanges","raw","content","contentInfo","characterCount","paragraphCount","provideToNative_Html","parsed","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","render","children","createElement","Fragment","isVisible","onClose","close","showSupport","supportSection","ComposedNativeProvider","select","_settings$colors","_settings$gradients","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","getEditorMode","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","colors","gradients","selectedBlockClientId","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","__unstableShouldCreateUndoLevel","ExperimentalEditorProvider"],"sources":["@wordpress/editor/src/components/provider/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport memize from 'memize';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport RNReactNativeGutenbergBridge, {\n\trequestBlockTypeImpressions,\n\tsetBlockTypeImpressions,\n\tsubscribeParentGetHtml,\n\tsubscribeParentToggleHTMLMode,\n\tsubscribeUpdateHtml,\n\tsubscribeSetTitle,\n\tsubscribeMediaAppend,\n\tsubscribeReplaceBlock,\n\tsubscribeUpdateEditorSettings,\n\tsubscribeUpdateCapabilities,\n\tsubscribeShowNotice,\n\tsubscribeShowEditorHelp,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport {\n\tparse,\n\tserialize,\n\tgetUnregisteredTypeHandlerName,\n\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":";AAAA;AACA;AACA;AACA,OAAOA,MAAM,MAAM,QAAQ;AAC3B,SAASC,gBAAgB,QAAQ,gCAAgC;;AAEjE;AACA;AACA;AACA,OAAOC,4BAA4B,IAClCC,2BAA2B,EAC3BC,uBAAuB,EACvBC,sBAAsB,EACtBC,6BAA6B,EAC7BC,mBAAmB,EACnBC,iBAAiB,EACjBC,oBAAoB,EACpBC,qBAAqB,EACrBC,6BAA6B,EAC7BC,2BAA2B,EAC3BC,mBAAmB,EACnBC,uBAAuB,QACjB,gCAAgC;AACvC,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SACCC,KAAK,EACLC,SAAS,EACTC,8BAA8B,EAC9BC,WAAW,QACL,mBAAmB;AAC1B,SAASC,YAAY,EAAEC,UAAU,QAAQ,iBAAiB;AAC1D,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,uBAAuB;AAC9E,SAASC,eAAe,QAAQ,0BAA0B;AAE1D,MAAMC,gBAAgB,GAAG,CACxB;EAAEC,IAAI,EAAE,MAAM;EAAEC,OAAO,EAAE;AAAe,CAAC,EACzC;EAAED,IAAI,EAAE,MAAM;EAAEC,OAAO,EAAE;AAAe,CAAC,EACzC;EAAED,IAAI,EAAE,YAAY;EAAEC,OAAO,EAAE;AAAe,CAAC,EAC/C;EAAED,IAAI,EAAE,UAAU;EAAEC,OAAO,EAAE;AAAgB,CAAC,CAC9C,CAACC,GAAG,CAAIC,cAAc,KAAQ;EAC9BC,IAAI,EAAE,UAAU;EAChB,GAAGD,cAAc;EACjBE,cAAc,EAAE;IACfC,MAAM,EAAE,IAAI;IACZC,SAAS,EAAE;EACZ,CAAC;EACDC,WAAW,EAAE;IACZC,IAAI,EAAE;EACP,CAAC;EACDC,aAAa,EAAE,CAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAC/C,CAAC,CAAG,CAAC;AACL,SAASC,gBAAgB,EAAEjB,KAAK,IAAIkB,WAAW,QAAQ,mBAAmB;AAC1E,SAASlB,KAAK,IAAImB,YAAY,QAAQ,oBAAoB;AAC1D,SAASnB,KAAK,IAAIoB,SAAS,QAAQ,sBAAsB;AACzD;AACA,SAASpB,KAAK,IAAIqB,aAAa,QAAQ,sBAAsB;;AAE7D;AACA;AACA;AACA,OAAOC,cAAc,MAAM,YAAY;AAEvC,MAAMC,oBAAoB,SAASlC,SAAS,CAAC;EAC5CmC,WAAWA,CAAA,EAAG;IACb,KAAK,CAAE,GAAGC,SAAU,CAAC;;IAErB;IACA,IAAI,CAACC,IAAI,GAAG,IAAI,CAACC,KAAK,CAACD,IAAI;IAC3B,IAAI,CAACC,KAAK,CAACC,WAAW,CAAEvB,gBAAiB,CAAC;IAC1C,IAAI,CAACsB,KAAK,CAACE,oBAAoB,CAC9B,UAAU,EACV,IAAI,CAACH,IAAI,CAACI,IAAI,EACd,IAAI,CAACJ,IACN,CAAC;IAED,IAAI,CAACK,iBAAiB,GAAGzD,MAAM,CAC9B,CAAE0D,QAAQ,EAAEC,YAAY,MAAQ;MAC/B,GAAGD,QAAQ;MACXC;IACD,CAAC,CAAE,EACH;MACCC,OAAO,EAAE;IACV,CACD,CAAC;IACD,IAAI,CAACC,KAAK,GAAG;MACZC,aAAa,EAAE;IAChB,CAAC;EACF;EAEAC,iBAAiBA,CAAA,EAAG;IACnB,MAAM;MACLJ,YAAY;MACZK,MAAM;MACNC,gBAAgB;MAChBC,oBAAoB;MACpBC;IACD,CAAC,GAAG,IAAI,CAACd,KAAK;IAEda,oBAAoB,CAAE;MACrBP,YAAY;MACZ,GAAG,IAAI,CAACS,cAAc,CAAE,IAAI,CAACf,KAAM,CAAC;MACpCW,MAAM;MACNC;IACD,CAAE,CAAC;IAEH,IAAI,CAACI,yBAAyB,GAAGhE,sBAAsB,CAAE,MAAM;MAC9D,IAAI,CAACiE,uBAAuB,CAAC,CAAC;IAC/B,CAAE,CAAC;IAEH,IAAI,CAACC,gCAAgC,GAAGjE,6BAA6B,CACpE,MAAM;MACL,IAAI,CAACkE,UAAU,CAAC,CAAC;IAClB,CACD,CAAC;IAED,IAAI,CAACC,0BAA0B,GAAGjE,iBAAiB,CAAIkE,OAAO,IAAM;MACnE,IAAI,CAACrB,KAAK,CAACsB,SAAS,CAAED,OAAO,CAACE,KAAM,CAAC;IACtC,CAAE,CAAC;IAEH,IAAI,CAACC,4BAA4B,GAAGtE,mBAAmB,CACpDmE,OAAO,IAAM;MACd,IAAI,CAACI,gBAAgB,CAAEJ,OAAO,CAACK,IAAK,CAAC;IACtC,CACD,CAAC;IAED,IAAI,CAACC,8BAA8B,GAAGtE,qBAAqB,CACxDgE,OAAO,IAAM;MACd,IAAI,CAACO,kBAAkB,CAAEP,OAAO,CAACK,IAAI,EAAEL,OAAO,CAACQ,QAAS,CAAC;IAC1D,CACD,CAAC;IAED,IAAI,CAACC,6BAA6B,GAAG1E,oBAAoB,CACtDiE,OAAO,IAAM;MACd,MAAMU,SAAS,GAAG,OAAO,GAAGV,OAAO,CAACW,SAAS;MAC7C,MAAMC,QAAQ,GAAGjE,WAAW,CAAE+D,SAAS,EAAE;QACxCG,EAAE,EAAEb,OAAO,CAACc,OAAO;QACnB,CAAEd,OAAO,CAACW,SAAS,KAAK,OAAO,GAAG,KAAK,GAAG,KAAK,GAC9CX,OAAO,CAACe;MACV,CAAE,CAAC;MAEH,MAAMC,kBAAkB,GAAG,IAAI,CAACrC,KAAK,CAACsC,kBAAkB,GAAG,CAAC;MAC5D,MAAMC,cAAc,GACnBF,kBAAkB,IAAI,IAAI,CAACrC,KAAK,CAACwC,UAAU;MAE5C,IAAI,CAACxC,KAAK,CAACyC,WAAW,CAAER,QAAQ,EAAEM,cAAe,CAAC;IACnD,CACD,CAAC;IAED,IAAI,CAACG,sCAAsC,GAC1CpF,6BAA6B,CAC5B,CAAE;MAAEqF,sBAAsB;MAAE,GAAGC;IAAe,CAAC,KAAM;MACpD,IAAK,OAAOD,sBAAsB,KAAK,SAAS,EAAG;QAClDE,MAAM,CAACC,EAAE,CAACC,qBAAqB,GAC9BJ,sBAAsB;MACxB;MACA9B,oBAAoB,CACnB,IAAI,CAACE,cAAc,CAAE6B,cAAe,CACrC,CAAC;IACF,CACD,CAAC;IAEF,IAAI,CAACI,oCAAoC,GAAGzF,2BAA2B,CACpE8D,OAAO,IAAM;MACd,IAAI,CAAC4B,wBAAwB,CAAE5B,OAAQ,CAAC;IACzC,CACD,CAAC;IAED,IAAI,CAAC6B,4BAA4B,GAAG1F,mBAAmB,CACpD6D,OAAO,IAAM;MACd,IAAI,CAACrB,KAAK,CAACmD,mBAAmB,CAAE9B,OAAO,CAAC+B,OAAQ,CAAC;IAClD,CACD,CAAC;IAED,IAAI,CAACC,gCAAgC,GAAG5F,uBAAuB,CAAE,MAAM;MACtE,IAAI,CAAC6F,QAAQ,CAAE;QAAE7C,aAAa,EAAE;MAAK,CAAE,CAAC;IACzC,CAAE,CAAC;;IAEH;IACA3D,2BAA2B,CAAIyG,iBAAiB,IAAM;MACrD,MAAMC,WAAW,GAAG;QAAE,GAAG/E,eAAe;QAAE,GAAG8E;MAAkB,CAAC;;MAEhE;MACAzC,yBAAyB,CAAE;QAAE0C;MAAY,CAAE,CAAC;;MAE5C;MACA;MACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,IAAI,CAAEJ,iBAAkB,CAAC;MAC7D,MAAMK,wBAAwB,GAAGF,MAAM,CAACC,IAAI,CAC3ClF,eACD,CAAC,CAACoF,KAAK,CAAIC,MAAM,IAAML,oBAAoB,CAACM,QAAQ,CAAED,MAAO,CAAE,CAAC;MAChE,IAAK,CAAEF,wBAAwB,EAAG;QACjC7G,uBAAuB,CAAEyG,WAAY,CAAC;MACvC;IACD,CAAE,CAAC;EACJ;EAEAQ,oBAAoBA,CAAA,EAAG;IACtB,IAAK,IAAI,CAAChD,yBAAyB,EAAG;MACrC,IAAI,CAACA,yBAAyB,CAACiD,MAAM,CAAC,CAAC;IACxC;IAEA,IAAK,IAAI,CAAC/C,gCAAgC,EAAG;MAC5C,IAAI,CAACA,gCAAgC,CAAC+C,MAAM,CAAC,CAAC;IAC/C;IAEA,IAAK,IAAI,CAAC7C,0BAA0B,EAAG;MACtC,IAAI,CAACA,0BAA0B,CAAC6C,MAAM,CAAC,CAAC;IACzC;IAEA,IAAK,IAAI,CAACzC,4BAA4B,EAAG;MACxC,IAAI,CAACA,4BAA4B,CAACyC,MAAM,CAAC,CAAC;IAC3C;IAEA,IAAK,IAAI,CAACtC,8BAA8B,EAAG;MAC1C,IAAI,CAACA,8BAA8B,CAACsC,MAAM,CAAC,CAAC;IAC7C;IAEA,IAAK,IAAI,CAACnC,6BAA6B,EAAG;MACzC,IAAI,CAACA,6BAA6B,CAACmC,MAAM,CAAC,CAAC;IAC5C;IAEA,IAAK,IAAI,CAACvB,sCAAsC,EAAG;MAClD,IAAI,CAACA,sCAAsC,CAACuB,MAAM,CAAC,CAAC;IACrD;IAEA,IAAK,IAAI,CAACjB,oCAAoC,EAAG;MAChD,IAAI,CAACA,oCAAoC,CAACiB,MAAM,CAAC,CAAC;IACnD;IAEA,IAAK,IAAI,CAACf,4BAA4B,EAAG;MACxC,IAAI,CAACA,4BAA4B,CAACe,MAAM,CAAC,CAAC;IAC3C;IAEA,IAAK,IAAI,CAACZ,gCAAgC,EAAG;MAC5C,IAAI,CAACA,gCAAgC,CAACY,MAAM,CAAC,CAAC;IAC/C;EACD;EAEAlD,cAAcA,CAAE;IAAEmD,SAAS;IAAEC;EAAY,CAAC,EAAG;IAC5C,MAAM;MAAEC,mBAAmB;MAAEC;IAAuB,CAAC,GAAG,IAAI,CAACrE,KAAK;IAElE,IAAKkE,SAAS,IAAIC,WAAW,EAAG;MAC/B,OAAO5F,eAAe,CAAE2F,SAAS,EAAEC,WAAY,CAAC;IACjD;IAEA,OAAO3F,qBAAqB,CAC3B4F,mBAAmB,EACnBC,sBAAsB,EACtBF,WACD,CAAC;EACF;EAEAG,kBAAkBA,CAAEC,SAAS,EAAG;IAC/B,IAAK,CAAEA,SAAS,CAACC,OAAO,IAAI,IAAI,CAACxE,KAAK,CAACwE,OAAO,EAAG;MAChD,MAAMvF,MAAM,GAAG,IAAI,CAACe,KAAK,CAACf,MAAM;MAChC,MAAMwF,kBAAkB,GAAGA,CAAE;QAAE9F;MAAK,CAAC,KACpCA,IAAI,KAAKZ,8BAA8B,CAAC,CAAC;MAC1C,MAAM2G,qBAAqB,GAAGzF,MAAM,CAClC0F,MAAM,CAAEF,kBAAmB,CAAC,CAC5B5F,GAAG,CAAI+F,KAAK,IAAMA,KAAK,CAACC,UAAU,CAACC,YAAa,CAAC;MACnDjI,4BAA4B,CAACkI,cAAc,CAC1CL,qBACD,CAAC;IACF;EACD;EAEAzD,uBAAuBA,CAAA,EAAG;IACzB,MAAMM,KAAK,GAAG,IAAI,CAACvB,KAAK,CAACuB,KAAK;IAC9B,IAAIG,IAAI;IAER,IAAK,IAAI,CAAC1B,KAAK,CAACgF,IAAI,KAAK,MAAM,EAAG;MACjC;MACA;MACAtD,IAAI,GAAGtD,YAAY,CAAE,qBAAsB,CAAC;IAC7C,CAAC,MAAM;MACNsD,IAAI,GAAG5D,SAAS,CAAE,IAAI,CAACkC,KAAK,CAACf,MAAO,CAAC;IACtC;IAEA,MAAMgG,UAAU,GACf1D,KAAK,KAAK,IAAI,CAACxB,IAAI,CAACwB,KAAK,CAAC2D,GAAG,IAAIxD,IAAI,KAAK,IAAI,CAAC3B,IAAI,CAACoF,OAAO,CAACD,GAAG;;IAEhE;IACA,MAAME,WAAW,GAAG,CAAC,CAAC;IACtBA,WAAW,CAACC,cAAc,GAAGzH,SAAS,CACrC8D,IAAI,EACJ,6BACD,CAAC;IACD0D,WAAW,CAACxH,SAAS,GAAGA,SAAS,CAAE8D,IAAI,EAAE,OAAQ,CAAC;IAClD0D,WAAW,CAACE,cAAc,GAAG,IAAI,CAACtF,KAAK,CAACsF,cAAc;IACtDF,WAAW,CAAC5C,UAAU,GAAG,IAAI,CAACxC,KAAK,CAACwC,UAAU;IAC9C3F,4BAA4B,CAAC0I,oBAAoB,CAChD7D,IAAI,EACJH,KAAK,EACL0D,UAAU,EACVG,WACD,CAAC;IAED,IAAKH,UAAU,EAAG;MACjB,IAAI,CAAClF,IAAI,CAACwB,KAAK,CAAC2D,GAAG,GAAG3D,KAAK;MAC3B,IAAI,CAACxB,IAAI,CAACoF,OAAO,CAACD,GAAG,GAAGxD,IAAI;IAC7B;EACD;EAEAD,gBAAgBA,CAAEC,IAAI,EAAG;IACxB,MAAM8D,MAAM,GAAG3H,KAAK,CAAE6D,IAAK,CAAC;IAC5B,IAAI,CAAC1B,KAAK,CAACyF,iCAAiC,CAAED,MAAO,CAAC;EACvD;EAEA5D,kBAAkBA,CAAEF,IAAI,EAAEgE,aAAa,EAAG;IACzC,MAAMF,MAAM,GAAG3H,KAAK,CAAE6D,IAAK,CAAC;IAC5B,IAAI,CAAC1B,KAAK,CAAC2F,YAAY,CAAED,aAAa,EAAEF,MAAO,CAAC;EACjD;EAEArE,UAAUA,CAAA,EAAG;IACZ,MAAM;MAAE6D,IAAI;MAAEY;IAAW,CAAC,GAAG,IAAI,CAAC5F,KAAK;IACvC;IACA,IAAI,CAACiB,uBAAuB,CAAC,CAAC;IAC9B2E,UAAU,CAAEZ,IAAI,KAAK,QAAQ,GAAG,MAAM,GAAG,QAAS,CAAC;EACpD;EAEA/B,wBAAwBA,CAAE3C,YAAY,EAAG;IACxC,IAAI,CAACN,KAAK,CAACa,oBAAoB,CAAE;MAAEP;IAAa,CAAE,CAAC;EACpD;EAEAuF,MAAMA,CAAA,EAAG;IACR,MAAM;MAAEC,QAAQ;MAAE/F,IAAI;MAAEO,YAAY;MAAED,QAAQ;MAAE,GAAGL;IAAM,CAAC,GAAG,IAAI,CAACA,KAAK;IACvE,MAAM4C,cAAc,GAAG,IAAI,CAACxC,iBAAiB,CAAEC,QAAQ,EAAEC,YAAa,CAAC;IAEvE,OACCyF,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACpG,cAAc;MACdI,IAAI,EAAG,IAAI,CAACA,IAAM;MAClBM,QAAQ,EAAGuC,cAAgB;MAAA,GACtB5C;IAAK,GAEV+F,aAAA,CAACnJ,gBAAgB,QAAGkJ,QAA4B,CACjC,CAAC,EACjBC,aAAA,CAACzG,gBAAgB;MAChB2G,SAAS,EAAG,IAAI,CAACzF,KAAK,CAACC,aAAe;MACtCyF,OAAO,EAAGA,CAAA,KAAM,IAAI,CAAC5C,QAAQ,CAAE;QAAE7C,aAAa,EAAE;MAAM,CAAE,CAAG;MAC3D0F,KAAK,EAAGA,CAAA,KAAM,IAAI,CAAC7C,QAAQ,CAAE;QAAE7C,aAAa,EAAE;MAAM,CAAE,CAAG;MACzD2F,WAAW,EAAG9F,YAAY,EAAE+F,cAAc,KAAK;IAAM,CACrD,CACA,CAAC;EAEL;AACD;AAEA,MAAMC,sBAAsB,GAAGnI,OAAO,CAAE,CACvCD,UAAU,CAAIqI,MAAM,IAAM;EAAA,IAAAC,gBAAA,EAAAC,mBAAA;EACzB,MAAM;IACLC,uBAAuB,EAAEC,aAAa;IACtCC,eAAe;IACfC,sBAAsB;IACtBC,oBAAoB;IACpB1G;EACD,CAAC,GAAGmG,MAAM,CAAEhH,WAAY,CAAC;EACzB,MAAM;IAAEwH;EAAc,CAAC,GAAGR,MAAM,CAAE7G,aAAc,CAAC;EAEjD,MAAM;IAAEsH,aAAa;IAAEC,wBAAwB;IAAEC;EAAoB,CAAC,GACrEX,MAAM,CAAEjI,gBAAiB,CAAC;EAE3B,MAAM+B,QAAQ,GAAGD,iBAAiB,CAAC,CAAC;EACpC,MAAMgE,mBAAmB,IAAAoC,gBAAA,GAAGnG,QAAQ,EAAE8G,MAAM,cAAAX,gBAAA,cAAAA,gBAAA,GAAI,EAAE;EAClD,MAAMnC,sBAAsB,IAAAoC,mBAAA,GAAGpG,QAAQ,EAAE+G,SAAS,cAAAX,mBAAA,cAAAA,mBAAA,GAAI,EAAE;EAExD,MAAMY,qBAAqB,GAAGJ,wBAAwB,CAAC,CAAC;EACxD,OAAO;IACNjC,IAAI,EAAE+B,aAAa,CAAC,CAAC;IACrBvC,OAAO,EAAEmC,aAAa,CAAC,CAAC;IACxB1H,MAAM,EAAE2H,eAAe,CAAC,CAAC;IACzBrF,KAAK,EAAEsF,sBAAsB,CAAE,OAAQ,CAAC;IACxCC,oBAAoB;IACpB1C,mBAAmB;IACnBC,sBAAsB;IACtB/B,kBAAkB,EAAE0E,aAAa,CAAEK,qBAAsB,CAAC;IAC1D7E,UAAU,EAAE0E,mBAAmB,CAAC,CAAC;IACjC5B,cAAc,EAAE4B,mBAAmB,CAAE,gBAAiB;EACvD,CAAC;AACF,CAAE,CAAC,EACHjJ,YAAY,CAAIqJ,QAAQ,IAAM;EAC7B,MAAM;IAAEC,QAAQ;IAAEC,iBAAiB;IAAE3G;EAAqB,CAAC,GAC1DyG,QAAQ,CAAE/H,WAAY,CAAC;EACxB,MAAM;IAAEkI,cAAc;IAAEhF,WAAW;IAAEkD;EAAa,CAAC,GAClD2B,QAAQ,CAAEhJ,gBAAiB,CAAC;EAC7B,MAAM;IAAEoJ;EAAiB,CAAC,GAAGJ,QAAQ,CAAE5H,aAAc,CAAC;EACtD,MAAM;IAAEO,WAAW;IAAEC;EAAqB,CAAC,GAAGoH,QAAQ,CAAE7H,SAAU,CAAC;EACnE,MAAM;IAAE0D;EAAoB,CAAC,GAAGmE,QAAQ,CAAE9H,YAAa,CAAC;EAExD,OAAO;IACNsB,yBAAyB,EAAE2G,cAAc;IACzC5G,oBAAoB;IACpBZ,WAAW;IACXwC,WAAW;IACXU,mBAAmB;IACnB7B,SAASA,CAAEC,KAAK,EAAG;MAClBgG,QAAQ,CAAE;QAAEhG;MAAM,CAAE,CAAC;IACtB,CAAC;IACDrB,oBAAoB;IACpBuF,iCAAiCA,CAAExG,MAAM,EAAG;MAC3CuI,iBAAiB,CAAEvI,MAAM,EAAE;QAC1B0I,+BAA+B,EAAE;MAClC,CAAE,CAAC;IACJ,CAAC;IACD/B,UAAUA,CAAEZ,IAAI,EAAG;MAClB0C,gBAAgB,CAAE1C,IAAK,CAAC;IACzB,CAAC;IACDW;EACD,CAAC;AACF,CAAE,CAAC,CACF,CAAC,CAAE/F,oBAAqB,CAAC;AAE3B,eAAe0G,sBAAsB;AACrC,SAASA,sBAAsB,IAAIsB,0BAA0B"}
|
|
1
|
+
{"version":3,"names":["BackHandler","memize","SafeAreaProvider","RNReactNativeGutenbergBridge","requestBlockTypeImpressions","setBlockTypeImpressions","subscribeParentGetHtml","subscribeParentToggleHTMLMode","subscribeUpdateHtml","subscribeSetTitle","subscribeMediaAppend","subscribeReplaceBlock","subscribeUpdateEditorSettings","subscribeUpdateCapabilities","subscribeShowNotice","subscribeShowEditorHelp","Component","count","wordCount","parse","serialize","getUnregisteredTypeHandlerName","getBlockType","createBlock","withDispatch","withSelect","compose","applyFilters","store","blockEditorStore","getGlobalStyles","getColorsAndGradients","NEW_BLOCK_TYPES","__","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","EditorHelpTopics","editorStore","noticesStore","coreStore","editPostStore","EditorProvider","NativeEditorProvider","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","onHardwareBackPress","bind","getEditorSettings","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","createErrorNotice","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","blockName","mediaType","blockType","newBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","setState","hardwareBackPressListener","addEventListener","storedImpressions","impressions","storedImpressionKeys","Object","keys","storedImpressionsCurrent","every","newKey","includes","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","unsupportedBlockNames","filter","block","attributes","originalName","editorDidMount","clearSelectedBlock","mode","hasChanges","raw","content","contentInfo","characterCount","paragraphCount","provideToNative_Html","parsed","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","render","children","createElement","Fragment","isVisible","onClose","close","showSupport","supportSection","ComposedNativeProvider","select","_settings$colors","_settings$gradients","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","getEditorMode","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","colors","gradients","selectedBlockClientId","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","__unstableShouldCreateUndoLevel","ExperimentalEditorProvider"],"sources":["@wordpress/editor/src/components/provider/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { BackHandler } from 'react-native';\nimport memize from 'memize';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport RNReactNativeGutenbergBridge, {\n\trequestBlockTypeImpressions,\n\tsetBlockTypeImpressions,\n\tsubscribeParentGetHtml,\n\tsubscribeParentToggleHTMLMode,\n\tsubscribeUpdateHtml,\n\tsubscribeSetTitle,\n\tsubscribeMediaAppend,\n\tsubscribeReplaceBlock,\n\tsubscribeUpdateEditorSettings,\n\tsubscribeUpdateCapabilities,\n\tsubscribeShowNotice,\n\tsubscribeShowEditorHelp,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport {\n\tparse,\n\tserialize,\n\tgetUnregisteredTypeHandlerName,\n\tgetBlockType,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';\nimport { NEW_BLOCK_TYPES } from '@wordpress/block-library';\nimport { __ } from '@wordpress/i18n';\n\nconst postTypeEntities = [\n\t{ name: 'post', baseURL: '/wp/v2/posts' },\n\t{ name: 'page', baseURL: '/wp/v2/pages' },\n\t{ name: 'attachment', baseURL: '/wp/v2/media' },\n\t{ name: 'wp_block', baseURL: '/wp/v2/blocks' },\n].map( ( postTypeEntity ) => ( {\n\tkind: 'postType',\n\t...postTypeEntity,\n\ttransientEdits: {\n\t\tblocks: true,\n\t\tselection: true,\n\t},\n\tmergedEdits: {\n\t\tmeta: true,\n\t},\n\trawAttributes: [ 'title', 'excerpt', 'content' ],\n} ) );\nimport { EditorHelpTopics, store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport EditorProvider from './index.js';\n\nclass NativeEditorProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\t// Keep a local reference to `post` to detect changes.\n\t\tthis.post = this.props.post;\n\t\tthis.props.addEntities( postTypeEntities );\n\t\tthis.props.receiveEntityRecords(\n\t\t\t'postType',\n\t\t\tthis.post.type,\n\t\t\tthis.post\n\t\t);\n\n\t\tthis.onHardwareBackPress = this.onHardwareBackPress.bind( this );\n\n\t\tthis.getEditorSettings = memize(\n\t\t\t( settings, capabilities ) => ( {\n\t\t\t\t...settings,\n\t\t\t\tcapabilities,\n\t\t\t} ),\n\t\t\t{\n\t\t\t\tmaxSize: 1,\n\t\t\t}\n\t\t);\n\t\tthis.state = {\n\t\t\tisHelpVisible: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst {\n\t\t\tcapabilities,\n\t\t\tcreateErrorNotice,\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t\tupdateEditorSettings,\n\t\t\tupdateBlockEditorSettings,\n\t\t} = this.props;\n\n\t\tupdateEditorSettings( {\n\t\t\tcapabilities,\n\t\t\t...this.getThemeColors( this.props ),\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t} );\n\n\t\tthis.subscriptionParentGetHtml = subscribeParentGetHtml( () => {\n\t\t\tthis.serializeToNativeAction();\n\t\t} );\n\n\t\tthis.subscriptionParentToggleHTMLMode = subscribeParentToggleHTMLMode(\n\t\t\t() => {\n\t\t\t\tthis.toggleMode();\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentSetTitle = subscribeSetTitle( ( payload ) => {\n\t\t\tthis.props.editTitle( payload.title );\n\t\t} );\n\n\t\tthis.subscriptionParentUpdateHtml = subscribeUpdateHtml(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateHtmlAction( payload.html );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentReplaceBlock = subscribeReplaceBlock(\n\t\t\t( payload ) => {\n\t\t\t\tthis.replaceBlockAction( payload.html, payload.clientId );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentMediaAppend = subscribeMediaAppend(\n\t\t\t( payload ) => {\n\t\t\t\tconst blockName = 'core/' + payload.mediaType;\n\t\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\t\tif ( blockType && blockType?.name ) {\n\t\t\t\t\tconst newBlock = createBlock( blockType.name, {\n\t\t\t\t\t\tid: payload.mediaId,\n\t\t\t\t\t\t[ payload.mediaType === 'image' ? 'url' : 'src' ]:\n\t\t\t\t\t\t\tpayload.mediaUrl,\n\t\t\t\t\t} );\n\n\t\t\t\t\tconst indexAfterSelected =\n\t\t\t\t\t\tthis.props.selectedBlockIndex + 1;\n\t\t\t\t\tconst insertionIndex =\n\t\t\t\t\t\tindexAfterSelected || this.props.blockCount;\n\n\t\t\t\t\tthis.props.insertBlock( newBlock, insertionIndex );\n\t\t\t\t} else {\n\t\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t\t__( 'File type not supported as a media file.' )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentUpdateEditorSettings =\n\t\t\tsubscribeUpdateEditorSettings(\n\t\t\t\t( { galleryWithImageBlocks, ...editorSettings } ) => {\n\t\t\t\t\tif ( typeof galleryWithImageBlocks === 'boolean' ) {\n\t\t\t\t\t\twindow.wp.galleryBlockV2Enabled =\n\t\t\t\t\t\t\tgalleryWithImageBlocks;\n\t\t\t\t\t}\n\t\t\t\t\tupdateEditorSettings(\n\t\t\t\t\t\tthis.getThemeColors( editorSettings )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.subscriptionParentUpdateCapabilities = subscribeUpdateCapabilities(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateCapabilitiesAction( payload );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowNotice = subscribeShowNotice(\n\t\t\t( payload ) => {\n\t\t\t\tthis.props.createSuccessNotice( payload.message );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowEditorHelp = subscribeShowEditorHelp( () => {\n\t\t\tthis.setState( { isHelpVisible: true } );\n\t\t} );\n\n\t\tthis.hardwareBackPressListener = BackHandler.addEventListener(\n\t\t\t'hardwareBackPress',\n\t\t\tthis.onHardwareBackPress\n\t\t);\n\n\t\t// Request current block impressions from native app.\n\t\trequestBlockTypeImpressions( ( storedImpressions ) => {\n\t\t\tconst impressions = { ...NEW_BLOCK_TYPES, ...storedImpressions };\n\n\t\t\t// Persist impressions to JavaScript store.\n\t\t\tupdateBlockEditorSettings( { impressions } );\n\n\t\t\t// Persist impressions to native store if they do not include latest\n\t\t\t// `NEW_BLOCK_TYPES` configuration.\n\t\t\tconst storedImpressionKeys = Object.keys( storedImpressions );\n\t\t\tconst storedImpressionsCurrent = Object.keys(\n\t\t\t\tNEW_BLOCK_TYPES\n\t\t\t).every( ( newKey ) => storedImpressionKeys.includes( newKey ) );\n\t\t\tif ( ! storedImpressionsCurrent ) {\n\t\t\t\tsetBlockTypeImpressions( impressions );\n\t\t\t}\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.subscriptionParentGetHtml ) {\n\t\t\tthis.subscriptionParentGetHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentToggleHTMLMode ) {\n\t\t\tthis.subscriptionParentToggleHTMLMode.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentSetTitle ) {\n\t\t\tthis.subscriptionParentSetTitle.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateHtml ) {\n\t\t\tthis.subscriptionParentUpdateHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentReplaceBlock ) {\n\t\t\tthis.subscriptionParentReplaceBlock.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentMediaAppend ) {\n\t\t\tthis.subscriptionParentMediaAppend.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateEditorSettings ) {\n\t\t\tthis.subscriptionParentUpdateEditorSettings.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateCapabilities ) {\n\t\t\tthis.subscriptionParentUpdateCapabilities.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowNotice ) {\n\t\t\tthis.subscriptionParentShowNotice.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowEditorHelp ) {\n\t\t\tthis.subscriptionParentShowEditorHelp.remove();\n\t\t}\n\n\t\tif ( this.hardwareBackPressListener ) {\n\t\t\tthis.hardwareBackPressListener.remove();\n\t\t}\n\t}\n\n\tgetThemeColors( { rawStyles, rawFeatures } ) {\n\t\tconst { defaultEditorColors, defaultEditorGradients } = this.props;\n\n\t\tif ( rawStyles && rawFeatures ) {\n\t\t\treturn getGlobalStyles( rawStyles, rawFeatures );\n\t\t}\n\n\t\treturn getColorsAndGradients(\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\trawFeatures\n\t\t);\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! prevProps.isReady && this.props.isReady ) {\n\t\t\tconst blocks = this.props.blocks;\n\t\t\tconst isUnsupportedBlock = ( { name } ) =>\n\t\t\t\tname === getUnregisteredTypeHandlerName();\n\t\t\tconst unsupportedBlockNames = blocks\n\t\t\t\t.filter( isUnsupportedBlock )\n\t\t\t\t.map( ( block ) => block.attributes.originalName );\n\t\t\tRNReactNativeGutenbergBridge.editorDidMount(\n\t\t\t\tunsupportedBlockNames\n\t\t\t);\n\t\t}\n\t}\n\n\tonHardwareBackPress() {\n\t\tconst { clearSelectedBlock, selectedBlockIndex } = this.props;\n\n\t\tif ( selectedBlockIndex !== -1 ) {\n\t\t\tclearSelectedBlock();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tserializeToNativeAction() {\n\t\tconst title = this.props.title;\n\t\tlet html;\n\n\t\tif ( this.props.mode === 'text' ) {\n\t\t\t// The HTMLTextInput component does not update the store when user is doing changes\n\t\t\t// Let's request the HTML from the component's state directly.\n\t\t\thtml = applyFilters( 'native.persist-html' );\n\t\t} else {\n\t\t\thtml = serialize( this.props.blocks );\n\t\t}\n\n\t\tconst hasChanges =\n\t\t\ttitle !== this.post.title.raw || html !== this.post.content.raw;\n\n\t\t// Variable to store the content structure metrics.\n\t\tconst contentInfo = {};\n\t\tcontentInfo.characterCount = wordCount(\n\t\t\thtml,\n\t\t\t'characters_including_spaces'\n\t\t);\n\t\tcontentInfo.wordCount = wordCount( html, 'words' );\n\t\tcontentInfo.paragraphCount = this.props.paragraphCount;\n\t\tcontentInfo.blockCount = this.props.blockCount;\n\t\tRNReactNativeGutenbergBridge.provideToNative_Html(\n\t\t\thtml,\n\t\t\ttitle,\n\t\t\thasChanges,\n\t\t\tcontentInfo\n\t\t);\n\n\t\tif ( hasChanges ) {\n\t\t\tthis.post.title.raw = title;\n\t\t\tthis.post.content.raw = html;\n\t\t}\n\t}\n\n\tupdateHtmlAction( html ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.resetEditorBlocksWithoutUndoLevel( parsed );\n\t}\n\n\treplaceBlockAction( html, blockClientId ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.replaceBlock( blockClientId, parsed );\n\t}\n\n\ttoggleMode() {\n\t\tconst { mode, switchMode } = this.props;\n\t\t// Refresh html content first.\n\t\tthis.serializeToNativeAction();\n\t\tswitchMode( mode === 'visual' ? 'text' : 'visual' );\n\t}\n\n\tupdateCapabilitiesAction( capabilities ) {\n\t\tthis.props.updateEditorSettings( { capabilities } );\n\t}\n\n\trender() {\n\t\tconst { children, post, capabilities, settings, ...props } = this.props;\n\t\tconst editorSettings = this.getEditorSettings( settings, capabilities );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ this.post }\n\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<SafeAreaProvider>{ children }</SafeAreaProvider>\n\t\t\t\t</EditorProvider>\n\t\t\t\t<EditorHelpTopics\n\t\t\t\t\tisVisible={ this.state.isHelpVisible }\n\t\t\t\t\tonClose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tclose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tshowSupport={ capabilities?.supportSection === true }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nconst ComposedNativeProvider = compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\t__unstableIsEditorReady: isEditorReady,\n\t\t\tgetEditorBlocks,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostContent,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getEditorMode } = select( editPostStore );\n\n\t\tconst { getBlockIndex, getSelectedBlockClientId, getGlobalBlockCount } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst settings = getEditorSettings();\n\t\tconst defaultEditorColors = settings?.colors ?? [];\n\t\tconst defaultEditorGradients = settings?.gradients ?? [];\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tmode: getEditorMode(),\n\t\t\tisReady: isEditorReady(),\n\t\t\tblocks: getEditorBlocks(),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tgetEditedPostContent,\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\tselectedBlockIndex: getBlockIndex( selectedBlockClientId ),\n\t\t\tblockCount: getGlobalBlockCount(),\n\t\t\tparagraphCount: getGlobalBlockCount( 'core/paragraph' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, resetEditorBlocks, updateEditorSettings } =\n\t\t\tdispatch( editorStore );\n\t\tconst {\n\t\t\tclearSelectedBlock,\n\t\t\tupdateSettings,\n\t\t\tinsertBlock,\n\t\t\treplaceBlock,\n\t\t} = dispatch( blockEditorStore );\n\t\tconst { switchEditorMode } = dispatch( editPostStore );\n\t\tconst { addEntities, receiveEntityRecords } = dispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tdispatch( noticesStore );\n\n\t\treturn {\n\t\t\tupdateBlockEditorSettings: updateSettings,\n\t\t\tupdateEditorSettings,\n\t\t\taddEntities,\n\t\t\tinsertBlock,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\tclearSelectedBlock,\n\t\t\teditTitle( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\treceiveEntityRecords,\n\t\t\tresetEditorBlocksWithoutUndoLevel( blocks ) {\n\t\t\t\tresetEditorBlocks( blocks, {\n\t\t\t\t\t__unstableShouldCreateUndoLevel: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tswitchMode( mode ) {\n\t\t\t\tswitchEditorMode( mode );\n\t\t\t},\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n] )( NativeEditorProvider );\n\nexport default ComposedNativeProvider;\nexport { ComposedNativeProvider as ExperimentalEditorProvider };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useEffect } from '@wordpress/element';
|
|
5
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
6
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* For the Navigation block editor, we need to force the block editor to contentOnly for that block.
|
|
10
|
+
*
|
|
11
|
+
* Set block editing mode to contentOnly when entering Navigation focus mode.
|
|
12
|
+
* this ensures that non-content controls on the block will be hidden and thus
|
|
13
|
+
* the user can focus on editing the Navigation Menu content only.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export default function NavigationBlockEditingMode() {
|
|
17
|
+
// In the navigation block editor,
|
|
18
|
+
// the navigation block is the only root block.
|
|
19
|
+
const blockClientId = useSelect(select => select(blockEditorStore).getBlockOrder()?.[0], []);
|
|
20
|
+
const {
|
|
21
|
+
setBlockEditingMode,
|
|
22
|
+
unsetBlockEditingMode
|
|
23
|
+
} = useDispatch(blockEditorStore);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (!blockClientId) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
setBlockEditingMode(blockClientId, 'contentOnly');
|
|
29
|
+
return () => {
|
|
30
|
+
unsetBlockEditingMode(blockClientId);
|
|
31
|
+
};
|
|
32
|
+
}, [blockClientId, unsetBlockEditingMode, setBlockEditingMode]);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=navigation-block-editing-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useDispatch","useSelect","store","blockEditorStore","NavigationBlockEditingMode","blockClientId","select","getBlockOrder","setBlockEditingMode","unsetBlockEditingMode"],"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":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,SAASC,0BAA0BA,CAAA,EAAG;EACpD;EACA;EACA,MAAMC,aAAa,GAAGJ,SAAS,CAC5BK,MAAM,IAAMA,MAAM,CAAEH,gBAAiB,CAAC,CAACI,aAAa,CAAC,CAAC,GAAI,CAAC,CAAE,EAC/D,EACD,CAAC;EACD,MAAM;IAAEC,mBAAmB;IAAEC;EAAsB,CAAC,GACnDT,WAAW,CAAEG,gBAAiB,CAAC;EAEhCJ,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEM,aAAa,EAAG;MACtB;IACD;IAEAG,mBAAmB,CAAEH,aAAa,EAAE,aAAc,CAAC;IAEnD,OAAO,MAAM;MACZI,qBAAqB,CAAEJ,aAAc,CAAC;IACvC,CAAC;EACF,CAAC,EAAE,CAAEA,aAAa,EAAEI,qBAAqB,EAAED,mBAAmB,CAAG,CAAC;AACnE"}
|