@wordpress/editor 13.28.3 → 13.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/commands/index.js +201 -0
  3. package/build/components/commands/index.js.map +1 -0
  4. package/build/components/commands/index.native.js +9 -0
  5. package/build/components/commands/index.native.js.map +1 -0
  6. package/build/components/document-bar/index.js +78 -67
  7. package/build/components/document-bar/index.js.map +1 -1
  8. package/build/components/global-keyboard-shortcuts/index.js +20 -2
  9. package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
  10. package/build/components/global-keyboard-shortcuts/register-shortcuts.js +18 -0
  11. package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  12. package/build/components/mode-switcher/index.js +86 -0
  13. package/build/components/mode-switcher/index.js.map +1 -0
  14. package/build/components/post-title/index.js +0 -5
  15. package/build/components/post-title/index.js.map +1 -1
  16. package/build/components/provider/index.js +6 -0
  17. package/build/components/provider/index.js.map +1 -1
  18. package/build/components/provider/index.native.js +4 -9
  19. package/build/components/provider/index.native.js.map +1 -1
  20. package/build/components/provider/use-block-editor-settings.js +1 -1
  21. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  22. package/build/components/provider/use-hide-blocks-from-inserter.js +53 -0
  23. package/build/components/provider/use-hide-blocks-from-inserter.js.map +1 -0
  24. package/build/private-apis.js +2 -0
  25. package/build/private-apis.js.map +1 -1
  26. package/build/store/actions.js +69 -2
  27. package/build/store/actions.js.map +1 -1
  28. package/build/store/selectors.js +13 -1
  29. package/build/store/selectors.js.map +1 -1
  30. package/build-module/components/commands/index.js +194 -0
  31. package/build-module/components/commands/index.js.map +1 -0
  32. package/build-module/components/commands/index.native.js +3 -0
  33. package/build-module/components/commands/index.native.js.map +1 -0
  34. package/build-module/components/document-bar/index.js +81 -70
  35. package/build-module/components/document-bar/index.js.map +1 -1
  36. package/build-module/components/global-keyboard-shortcuts/index.js +20 -2
  37. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
  38. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +18 -0
  39. package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
  40. package/build-module/components/mode-switcher/index.js +80 -0
  41. package/build-module/components/mode-switcher/index.js.map +1 -0
  42. package/build-module/components/post-title/index.js +0 -5
  43. package/build-module/components/post-title/index.js.map +1 -1
  44. package/build-module/components/provider/index.js +6 -0
  45. package/build-module/components/provider/index.js.map +1 -1
  46. package/build-module/components/provider/index.native.js +4 -10
  47. package/build-module/components/provider/index.native.js.map +1 -1
  48. package/build-module/components/provider/use-block-editor-settings.js +1 -1
  49. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  50. package/build-module/components/provider/use-hide-blocks-from-inserter.js +47 -0
  51. package/build-module/components/provider/use-hide-blocks-from-inserter.js.map +1 -0
  52. package/build-module/private-apis.js +2 -0
  53. package/build-module/private-apis.js.map +1 -1
  54. package/build-module/store/actions.js +66 -0
  55. package/build-module/store/actions.js.map +1 -1
  56. package/build-module/store/selectors.js +12 -0
  57. package/build-module/store/selectors.js.map +1 -1
  58. package/build-style/style-rtl.css +4 -47
  59. package/build-style/style.css +4 -47
  60. package/package.json +32 -32
  61. package/src/components/commands/index.js +202 -0
  62. package/src/components/commands/index.native.js +2 -0
  63. package/src/components/document-bar/index.js +115 -94
  64. package/src/components/document-bar/style.scss +4 -37
  65. package/src/components/global-keyboard-shortcuts/index.js +35 -4
  66. package/src/components/global-keyboard-shortcuts/register-shortcuts.js +20 -0
  67. package/src/components/mode-switcher/index.js +90 -0
  68. package/src/components/post-title/index.js +0 -3
  69. package/src/components/provider/index.js +7 -0
  70. package/src/components/provider/index.native.js +7 -6
  71. package/src/components/provider/use-block-editor-settings.js +0 -3
  72. package/src/components/provider/use-hide-blocks-from-inserter.js +81 -0
  73. package/src/private-apis.js +2 -0
  74. package/src/store/actions.js +95 -0
  75. package/src/store/selectors.js +12 -0
  76. package/src/store/test/actions.js +82 -0
@@ -1 +1 @@
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","NON_CONTEXTUAL_POST_TYPES","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","includes","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 * These are global entities that are only there to split blocks into logical units\n * They don't provide a \"context\" for the current post/page being rendered.\n * So we should not use their ids as post context. This is important to allow post blocks\n * (post content, post title) to be used within them without issues.\n */\nconst NON_CONTEXTUAL_POST_TYPES = [\n\t'wp_block',\n\t'wp_template',\n\t'wp_navigation',\n\t'wp_template_part',\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\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\t! NON_CONTEXTUAL_POST_TYPES.includes( rootLevelPost.type ) ||\n\t\t\t\tshouldRenderTemplate\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\tshouldRenderTemplate,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost.slug,\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, setEditedPost ] );\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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"}
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","useHideBlocksFromInserter","useCommands","ExperimentalBlockEditorProvider","PatternsMenuItems","noop","NON_CONTEXTUAL_POST_TYPES","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","includes","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';\nimport { useHideBlocksFromInserter } from './use-hide-blocks-from-inserter';\nimport useCommands from '../commands';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * These are global entities that are only there to split blocks into logical units\n * They don't provide a \"context\" for the current post/page being rendered.\n * So we should not use their ids as post context. This is important to allow post blocks\n * (post content, post title) to be used within them without issues.\n */\nconst NON_CONTEXTUAL_POST_TYPES = [\n\t'wp_block',\n\t'wp_template',\n\t'wp_navigation',\n\t'wp_template_part',\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\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\t! NON_CONTEXTUAL_POST_TYPES.includes( rootLevelPost.type ) ||\n\t\t\t\tshouldRenderTemplate\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\tshouldRenderTemplate,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost.slug,\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, setEditedPost ] );\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\tuseHideBlocksFromInserter( post.type );\n\n\t\t// Register the editor commands.\n\t\tuseCommands();\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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"}
@@ -47,8 +47,6 @@ const postTypeEntities = [{
47
47
  import { EditorHelpTopics, store as editorStore } from '@wordpress/editor';
48
48
  import { store as noticesStore } from '@wordpress/notices';
49
49
  import { store as coreStore } from '@wordpress/core-data';
50
- // eslint-disable-next-line no-restricted-imports
51
- import { store as editPostStore } from '@wordpress/edit-post';
52
50
 
53
51
  /**
54
52
  * Internal dependencies
@@ -308,11 +306,9 @@ const ComposedNativeProvider = compose([withSelect(select => {
308
306
  getEditorBlocks,
309
307
  getEditedPostAttribute,
310
308
  getEditedPostContent,
311
- getEditorSettings
312
- } = select(editorStore);
313
- const {
309
+ getEditorSettings,
314
310
  getEditorMode
315
- } = select(editPostStore);
311
+ } = select(editorStore);
316
312
  const {
317
313
  getBlockIndex,
318
314
  getSelectedBlockClientId,
@@ -338,7 +334,8 @@ const ComposedNativeProvider = compose([withSelect(select => {
338
334
  const {
339
335
  editPost,
340
336
  resetEditorBlocks,
341
- updateEditorSettings
337
+ updateEditorSettings,
338
+ switchEditorMode
342
339
  } = dispatch(editorStore);
343
340
  const {
344
341
  clearSelectedBlock,
@@ -346,9 +343,6 @@ const ComposedNativeProvider = compose([withSelect(select => {
346
343
  insertBlock,
347
344
  replaceBlock
348
345
  } = dispatch(blockEditorStore);
349
- const {
350
- switchEditorMode
351
- } = dispatch(editPostStore);
352
346
  const {
353
347
  addEntities,
354
348
  receiveEntityRecords
@@ -1 +1 @@
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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"}
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","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","switchEditorMode","updateSettings","__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\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\tgetEditorMode,\n\t\t} = select( editorStore );\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 {\n\t\t\teditPost,\n\t\t\tresetEditorBlocks,\n\t\t\tupdateEditorSettings,\n\t\t\tswitchEditorMode,\n\t\t} = dispatch( 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 { 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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"}
@@ -18,7 +18,7 @@ import { mediaUpload } from '../../utils';
18
18
  import { store as editorStore } from '../../store';
19
19
  import { unlock } from '../../lock-unlock';
20
20
  const EMPTY_BLOCKS_LIST = [];
21
- const BLOCK_EDITOR_SETTINGS = ['__experimentalBlockDirectory', '__experimentalDiscussionSettings', '__experimentalFeatures', '__experimentalGlobalStylesBaseStyles', '__experimentalPreferredStyleVariations', '__unstableGalleryWithImageBlocks', 'alignWide', 'blockInspectorTabs', 'allowedMimeTypes', 'bodyPlaceholder', 'canLockBlocks', 'capabilities', 'clearBlockSelection', 'codeEditingEnabled', 'colors', 'disableCustomColors', 'disableCustomFontSizes', 'disableCustomSpacingSizes', 'disableCustomGradients', 'disableLayoutStyles', 'enableCustomLineHeight', 'enableCustomSpacing', 'enableCustomUnits', 'enableOpenverseMediaCategory', 'fontSizes', 'gradients', 'generateAnchors', 'onNavigateToEntityRecord', 'hasInlineToolbar', 'imageDefaultSize', 'imageDimensions', 'imageEditing', 'imageSizes', 'isRTL', 'locale', 'maxWidth', 'onUpdateDefaultBlockStyles', 'postContentAttributes', 'postsPerPage', 'readOnly', 'styles', 'titlePlaceholder', 'supportsLayout', 'widgetTypesToHideFromLegacyWidgetBlock', '__unstableHasCustomAppender', '__unstableIsPreviewMode', '__unstableResolvedAssets', '__unstableIsBlockBasedTheme', '__experimentalArchiveTitleTypeLabel', '__experimentalArchiveTitleNameLabel'];
21
+ const BLOCK_EDITOR_SETTINGS = ['__experimentalBlockDirectory', '__experimentalDiscussionSettings', '__experimentalFeatures', '__experimentalGlobalStylesBaseStyles', '__unstableGalleryWithImageBlocks', 'alignWide', 'blockInspectorTabs', 'allowedMimeTypes', 'bodyPlaceholder', 'canLockBlocks', 'capabilities', 'clearBlockSelection', 'codeEditingEnabled', 'colors', 'disableCustomColors', 'disableCustomFontSizes', 'disableCustomSpacingSizes', 'disableCustomGradients', 'disableLayoutStyles', 'enableCustomLineHeight', 'enableCustomSpacing', 'enableCustomUnits', 'enableOpenverseMediaCategory', 'fontSizes', 'gradients', 'generateAnchors', 'onNavigateToEntityRecord', 'imageDefaultSize', 'imageDimensions', 'imageEditing', 'imageSizes', 'isRTL', 'locale', 'maxWidth', 'postContentAttributes', 'postsPerPage', 'readOnly', 'styles', 'titlePlaceholder', 'supportsLayout', 'widgetTypesToHideFromLegacyWidgetBlock', '__unstableHasCustomAppender', '__unstableIsPreviewMode', '__unstableResolvedAssets', '__unstableIsBlockBasedTheme', '__experimentalArchiveTitleTypeLabel', '__experimentalArchiveTitleNameLabel'];
22
22
 
23
23
  /**
24
24
  * React hook used to compute the block editor settings to use for the post editor.
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","useMemo","useCallback","useDispatch","useSelect","store","coreStore","__experimentalFetchLinkSuggestions","fetchLinkSuggestions","__experimentalFetchUrlData","fetchUrlData","__","preferencesStore","useViewportMatch","blocksStore","privateApis","inserterMediaCategories","mediaUpload","editorStore","unlock","EMPTY_BLOCKS_LIST","BLOCK_EDITOR_SETTINGS","useBlockEditorSettings","settings","postType","postId","_settings$__experimen","_settings$__experimen2","isLargeViewport","allowRightClickOverrides","blockTypes","focusMode","hasFixedToolbar","isDistractionFree","keepCaretInsideBlock","reusableBlocks","hasUploadPermissions","hiddenBlockTypes","canUseUnfilteredHTML","userCanCreatePages","pageOnFront","pageForPosts","userPatternCategories","restBlockPatternCategories","select","_canUser","isWeb","OS","canUser","getRawEntityRecord","getEntityRecord","getUserPatternCategories","getEntityRecords","getBlockPatternCategories","get","getBlockTypes","siteSettings","undefined","_links","hasOwnProperty","per_page","page_on_front","page_for_posts","settingsBlockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","settingsBlockPatternCategories","__experimentalAdditionalBlockPatternCategories","__experimentalBlockPatternCategories","blockPatterns","filter","postTypes","Array","isArray","includes","blockPatternCategories","x","index","arr","findIndex","y","name","undo","setIsInserterOpened","saveEntityRecord","createPageEntity","options","Promise","reject","message","allowedBlockTypes","length","defaultAllowedBlockTypes","map","type","forceDisableFocusMode","Object","fromEntries","entries","key","selectBlockPatternsKey","getBlockPatternsForPostType","__experimentalReusableBlocks","__experimentalUserPatternCategories","search","searchOptions","__experimentalFetchRichUrlData","__experimentalCanUserUseUnfilteredHTML","__experimentalUndo","outlineMode","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","__experimentalPreferPatternsOnRoot","templateLock","template","__experimentalSetIsInserterOpened"],"sources":["@wordpress/editor/src/components/provider/use-block-editor-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Platform, useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\t__experimentalFetchLinkSuggestions as fetchLinkSuggestions,\n\t__experimentalFetchUrlData as fetchUrlData,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { privateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport inserterMediaCategories from '../media-categories';\nimport { mediaUpload } from '../../utils';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst EMPTY_BLOCKS_LIST = [];\n\nconst BLOCK_EDITOR_SETTINGS = [\n\t'__experimentalBlockDirectory',\n\t'__experimentalDiscussionSettings',\n\t'__experimentalFeatures',\n\t'__experimentalGlobalStylesBaseStyles',\n\t'__experimentalPreferredStyleVariations',\n\t'__unstableGalleryWithImageBlocks',\n\t'alignWide',\n\t'blockInspectorTabs',\n\t'allowedMimeTypes',\n\t'bodyPlaceholder',\n\t'canLockBlocks',\n\t'capabilities',\n\t'clearBlockSelection',\n\t'codeEditingEnabled',\n\t'colors',\n\t'disableCustomColors',\n\t'disableCustomFontSizes',\n\t'disableCustomSpacingSizes',\n\t'disableCustomGradients',\n\t'disableLayoutStyles',\n\t'enableCustomLineHeight',\n\t'enableCustomSpacing',\n\t'enableCustomUnits',\n\t'enableOpenverseMediaCategory',\n\t'fontSizes',\n\t'gradients',\n\t'generateAnchors',\n\t'onNavigateToEntityRecord',\n\t'hasInlineToolbar',\n\t'imageDefaultSize',\n\t'imageDimensions',\n\t'imageEditing',\n\t'imageSizes',\n\t'isRTL',\n\t'locale',\n\t'maxWidth',\n\t'onUpdateDefaultBlockStyles',\n\t'postContentAttributes',\n\t'postsPerPage',\n\t'readOnly',\n\t'styles',\n\t'titlePlaceholder',\n\t'supportsLayout',\n\t'widgetTypesToHideFromLegacyWidgetBlock',\n\t'__unstableHasCustomAppender',\n\t'__unstableIsPreviewMode',\n\t'__unstableResolvedAssets',\n\t'__unstableIsBlockBasedTheme',\n\t'__experimentalArchiveTitleTypeLabel',\n\t'__experimentalArchiveTitleNameLabel',\n];\n\n/**\n * React hook used to compute the block editor settings to use for the post editor.\n *\n * @param {Object} settings EditorProvider settings prop.\n * @param {string} postType Editor root level post type.\n * @param {string} postId Editor root level post ID.\n *\n * @return {Object} Block Editor Settings.\n */\nfunction useBlockEditorSettings( settings, postType, postId ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tallowRightClickOverrides,\n\t\tblockTypes,\n\t\tfocusMode,\n\t\thasFixedToolbar,\n\t\tisDistractionFree,\n\t\tkeepCaretInsideBlock,\n\t\treusableBlocks,\n\t\thasUploadPermissions,\n\t\thiddenBlockTypes,\n\t\tcanUseUnfilteredHTML,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t\tuserPatternCategories,\n\t\trestBlockPatternCategories,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst isWeb = Platform.OS === 'web';\n\t\t\tconst {\n\t\t\t\tcanUser,\n\t\t\t\tgetRawEntityRecord,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetUserPatternCategories,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetBlockPatternCategories,\n\t\t\t} = select( coreStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst { getBlockTypes } = select( blocksStore );\n\t\t\tconst siteSettings = canUser( 'read', 'settings' )\n\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t: undefined;\n\n\t\t\treturn {\n\t\t\t\tallowRightClickOverrides: get(\n\t\t\t\t\t'core',\n\t\t\t\t\t'allowRightClickOverrides'\n\t\t\t\t),\n\t\t\t\tblockTypes: getBlockTypes(),\n\t\t\t\tcanUseUnfilteredHTML: getRawEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId\n\t\t\t\t)?._links?.hasOwnProperty( 'wp:action-unfiltered-html' ),\n\t\t\t\tfocusMode: get( 'core', 'focusMode' ),\n\t\t\t\thasFixedToolbar:\n\t\t\t\t\tget( 'core', 'fixedToolbar' ) || ! isLargeViewport,\n\t\t\t\thiddenBlockTypes: get( 'core', 'hiddenBlockTypes' ),\n\t\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\t\tkeepCaretInsideBlock: get( 'core', 'keepCaretInsideBlock' ),\n\t\t\t\treusableBlocks: isWeb\n\t\t\t\t\t? getEntityRecords( 'postType', 'wp_block', {\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_BLOCKS_LIST, // Reusable blocks are fetched in the native version of this hook.\n\t\t\t\thasUploadPermissions: canUser( 'create', 'media' ) ?? true,\n\t\t\t\tuserCanCreatePages: canUser( 'create', 'pages' ),\n\t\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t\trestBlockPatternCategories: getBlockPatternCategories(),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId, isLargeViewport ]\n\t);\n\n\tconst settingsBlockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tsettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[ ...( settingsBlockPatterns || [] ) ].filter(\n\t\t\t\t( { postTypes } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! postTypes ||\n\t\t\t\t\t\t( Array.isArray( postTypes ) &&\n\t\t\t\t\t\t\tpostTypes.includes( postType ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t),\n\t\t[ settingsBlockPatterns, postType ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatternCategories || [] ),\n\t\t\t\t...( restBlockPatternCategories || [] ),\n\t\t\t].filter(\n\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\n\tconst { undo, setIsInserterOpened } = useDispatch( editorStore );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t/**\n\t * Creates a Post entity.\n\t * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.\n\t *\n\t * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.\n\t * @return {Object} the post type object that was created.\n\t */\n\tconst createPageEntity = useCallback(\n\t\t( options ) => {\n\t\t\tif ( ! userCanCreatePages ) {\n\t\t\t\treturn Promise.reject( {\n\t\t\t\t\tmessage: __(\n\t\t\t\t\t\t'You do not have permission to create Pages.'\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn saveEntityRecord( 'postType', 'page', options );\n\t\t},\n\t\t[ saveEntityRecord, userCanCreatePages ]\n\t);\n\n\tconst allowedBlockTypes = useMemo( () => {\n\t\t// Omit hidden block types if exists and non-empty.\n\t\tif ( hiddenBlockTypes && hiddenBlockTypes.length > 0 ) {\n\t\t\t// Defer to passed setting for `allowedBlockTypes` if provided as\n\t\t\t// anything other than `true` (where `true` is equivalent to allow\n\t\t\t// all block types).\n\t\t\tconst defaultAllowedBlockTypes =\n\t\t\t\ttrue === settings.allowedBlockTypes\n\t\t\t\t\t? blockTypes.map( ( { name } ) => name )\n\t\t\t\t\t: settings.allowedBlockTypes || [];\n\n\t\t\treturn defaultAllowedBlockTypes.filter(\n\t\t\t\t( type ) => ! hiddenBlockTypes.includes( type )\n\t\t\t);\n\t\t}\n\n\t\treturn settings.allowedBlockTypes;\n\t}, [ settings.allowedBlockTypes, hiddenBlockTypes, blockTypes ] );\n\n\tconst forceDisableFocusMode = settings.focusMode === false;\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...Object.fromEntries(\n\t\t\t\tObject.entries( settings ).filter( ( [ key ] ) =>\n\t\t\t\t\tBLOCK_EDITOR_SETTINGS.includes( key )\n\t\t\t\t)\n\t\t\t),\n\t\t\tallowedBlockTypes,\n\t\t\tallowRightClickOverrides,\n\t\t\tfocusMode: focusMode && ! forceDisableFocusMode,\n\t\t\thasFixedToolbar,\n\t\t\tisDistractionFree,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t[ unlock( privateApis ).selectBlockPatternsKey ]: ( select ) =>\n\t\t\t\tunlock( select( coreStore ) ).getBlockPatternsForPostType(\n\t\t\t\t\tpostType\n\t\t\t\t),\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t\t__experimentalUserPatternCategories: userPatternCategories,\n\t\t\t__experimentalFetchLinkSuggestions: ( search, searchOptions ) =>\n\t\t\t\tfetchLinkSuggestions( search, searchOptions, settings ),\n\t\t\tinserterMediaCategories,\n\t\t\t__experimentalFetchRichUrlData: fetchUrlData,\n\t\t\t// Todo: This only checks the top level post, not the post within a template or any other entity that can be edited.\n\t\t\t// This might be better as a generic \"canUser\" selector.\n\t\t\t__experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,\n\t\t\t//Todo: this is only needed for native and should probably be removed.\n\t\t\t__experimentalUndo: undo,\n\t\t\t// Check whether we want all site editor frames to have outlines\n\t\t\t// including the navigation / pattern / parts editors.\n\t\t\toutlineMode: postType === 'wp_template',\n\t\t\t// Check these two properties: they were not present in the site editor.\n\t\t\t__experimentalCreatePageEntity: createPageEntity,\n\t\t\t__experimentalUserCanCreatePages: userCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\t__experimentalPreferPatternsOnRoot: postType === 'wp_template',\n\t\t\ttemplateLock:\n\t\t\t\tpostType === 'wp_navigation' ? 'insert' : settings.templateLock,\n\t\t\ttemplate:\n\t\t\t\tpostType === 'wp_navigation'\n\t\t\t\t\t? [ [ 'core/navigation', {}, [] ] ]\n\t\t\t\t\t: settings.template,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t} ),\n\t\t[\n\t\t\tallowedBlockTypes,\n\t\t\tallowRightClickOverrides,\n\t\t\tfocusMode,\n\t\t\tforceDisableFocusMode,\n\t\t\thasFixedToolbar,\n\t\t\tisDistractionFree,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tsettings,\n\t\t\thasUploadPermissions,\n\t\t\treusableBlocks,\n\t\t\tuserPatternCategories,\n\t\t\tblockPatterns,\n\t\t\tblockPatternCategories,\n\t\t\tcanUseUnfilteredHTML,\n\t\t\tundo,\n\t\t\tcreatePageEntity,\n\t\t\tuserCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\tpostType,\n\t\t\tsetIsInserterOpened,\n\t\t]\n\t);\n}\n\nexport default useBlockEditorSettings;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,OAAO,EAAEC,WAAW,QAAQ,oBAAoB;AACnE,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SACCC,KAAK,IAAIC,SAAS,EAClBC,kCAAkC,IAAIC,oBAAoB,EAC1DC,0BAA0B,IAAIC,YAAY,QACpC,sBAAsB;AAC7B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASN,KAAK,IAAIO,gBAAgB,QAAQ,wBAAwB;AAClE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASR,KAAK,IAAIS,WAAW,QAAQ,mBAAmB;AACxD,SAASC,WAAW,QAAQ,yBAAyB;;AAErD;AACA;AACA;AACA,OAAOC,uBAAuB,MAAM,qBAAqB;AACzD,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASZ,KAAK,IAAIa,WAAW,QAAQ,aAAa;AAClD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAMC,iBAAiB,GAAG,EAAE;AAE5B,MAAMC,qBAAqB,GAAG,CAC7B,8BAA8B,EAC9B,kCAAkC,EAClC,wBAAwB,EACxB,sCAAsC,EACtC,wCAAwC,EACxC,kCAAkC,EAClC,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,8BAA8B,EAC9B,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,4BAA4B,EAC5B,uBAAuB,EACvB,cAAc,EACd,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,wCAAwC,EACxC,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,qCAAqC,EACrC,qCAAqC,CACrC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,sBAAsBA,CAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAG;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EAC7D,MAAMC,eAAe,GAAGf,gBAAgB,CAAE,QAAS,CAAC;EACpD,MAAM;IACLgB,wBAAwB;IACxBC,UAAU;IACVC,SAAS;IACTC,eAAe;IACfC,iBAAiB;IACjBC,oBAAoB;IACpBC,cAAc;IACdC,oBAAoB;IACpBC,gBAAgB;IAChBC,oBAAoB;IACpBC,kBAAkB;IAClBC,WAAW;IACXC,YAAY;IACZC,qBAAqB;IACrBC;EACD,CAAC,GAAGvC,SAAS,CACVwC,MAAM,IAAM;IAAA,IAAAC,QAAA;IACb,MAAMC,KAAK,GAAG9C,QAAQ,CAAC+C,EAAE,KAAK,KAAK;IACnC,MAAM;MACLC,OAAO;MACPC,kBAAkB;MAClBC,eAAe;MACfC,wBAAwB;MACxBC,gBAAgB;MAChBC;IACD,CAAC,GAAGT,MAAM,CAAEtC,SAAU,CAAC;IACvB,MAAM;MAAEgD;IAAI,CAAC,GAAGV,MAAM,CAAEhC,gBAAiB,CAAC;IAC1C,MAAM;MAAE2C;IAAc,CAAC,GAAGX,MAAM,CAAE9B,WAAY,CAAC;IAC/C,MAAM0C,YAAY,GAAGR,OAAO,CAAE,MAAM,EAAE,UAAW,CAAC,GAC/CE,eAAe,CAAE,MAAM,EAAE,MAAO,CAAC,GACjCO,SAAS;IAEZ,OAAO;MACN5B,wBAAwB,EAAEyB,GAAG,CAC5B,MAAM,EACN,0BACD,CAAC;MACDxB,UAAU,EAAEyB,aAAa,CAAC,CAAC;MAC3BjB,oBAAoB,EAAEW,kBAAkB,CACvC,UAAU,EACVzB,QAAQ,EACRC,MACD,CAAC,EAAEiC,MAAM,EAAEC,cAAc,CAAE,2BAA4B,CAAC;MACxD5B,SAAS,EAAEuB,GAAG,CAAE,MAAM,EAAE,WAAY,CAAC;MACrCtB,eAAe,EACdsB,GAAG,CAAE,MAAM,EAAE,cAAe,CAAC,IAAI,CAAE1B,eAAe;MACnDS,gBAAgB,EAAEiB,GAAG,CAAE,MAAM,EAAE,kBAAmB,CAAC;MACnDrB,iBAAiB,EAAEqB,GAAG,CAAE,MAAM,EAAE,iBAAkB,CAAC;MACnDpB,oBAAoB,EAAEoB,GAAG,CAAE,MAAM,EAAE,sBAAuB,CAAC;MAC3DnB,cAAc,EAAEW,KAAK,GAClBM,gBAAgB,CAAE,UAAU,EAAE,UAAU,EAAE;QAC1CQ,QAAQ,EAAE,CAAC;MACX,CAAE,CAAC,GACHxC,iBAAiB;MAAE;MACtBgB,oBAAoB,GAAAS,QAAA,GAAEG,OAAO,CAAE,QAAQ,EAAE,OAAQ,CAAC,cAAAH,QAAA,cAAAA,QAAA,GAAI,IAAI;MAC1DN,kBAAkB,EAAES,OAAO,CAAE,QAAQ,EAAE,OAAQ,CAAC;MAChDR,WAAW,EAAEgB,YAAY,EAAEK,aAAa;MACxCpB,YAAY,EAAEe,YAAY,EAAEM,cAAc;MAC1CpB,qBAAqB,EAAES,wBAAwB,CAAC,CAAC;MACjDR,0BAA0B,EAAEU,yBAAyB,CAAC;IACvD,CAAC;EACF,CAAC,EACD,CAAE7B,QAAQ,EAAEC,MAAM,EAAEG,eAAe,CACpC,CAAC;EAED,MAAMmC,qBAAqB,IAAArC,qBAAA,GAC1BH,QAAQ,CAACyC,qCAAqC,cAAAtC,qBAAA,cAAAA,qBAAA;EAAI;EAClDH,QAAQ,CAAC0C,2BAA2B,CAAC,CAAC;EACvC,MAAMC,8BAA8B,IAAAvC,sBAAA,GACnCJ,QAAQ,CAAC4C,8CAA8C,cAAAxC,sBAAA,cAAAA,sBAAA;EAAI;EAC3DJ,QAAQ,CAAC6C,oCAAoC,CAAC,CAAC;;EAEhD,MAAMC,aAAa,GAAGpE,OAAO,CAC5B,MACC,CAAE,IAAK8D,qBAAqB,IAAI,EAAE,CAAE,CAAE,CAACO,MAAM,CAC5C,CAAE;IAAEC;EAAU,CAAC,KAAM;IACpB,OACC,CAAEA,SAAS,IACTC,KAAK,CAACC,OAAO,CAAEF,SAAU,CAAC,IAC3BA,SAAS,CAACG,QAAQ,CAAElD,QAAS,CAAG;EAEnC,CACD,CAAC,EACF,CAAEuC,qBAAqB,EAAEvC,QAAQ,CAClC,CAAC;EAED,MAAMmD,sBAAsB,GAAG1E,OAAO,CACrC,MACC,CACC,IAAKiE,8BAA8B,IAAI,EAAE,CAAE,EAC3C,IAAKvB,0BAA0B,IAAI,EAAE,CAAE,CACvC,CAAC2B,MAAM,CACP,CAAEM,CAAC,EAAEC,KAAK,EAAEC,GAAG,KACdD,KAAK,KAAKC,GAAG,CAACC,SAAS,CAAIC,CAAC,IAAMJ,CAAC,CAACK,IAAI,KAAKD,CAAC,CAACC,IAAK,CACtD,CAAC,EACF,CAAEf,8BAA8B,EAAEvB,0BAA0B,CAC7D,CAAC;EAED,MAAM;IAAEuC,IAAI;IAAEC;EAAoB,CAAC,GAAGhF,WAAW,CAAEe,WAAY,CAAC;EAEhE,MAAM;IAAEkE;EAAiB,CAAC,GAAGjF,WAAW,CAAEG,SAAU,CAAC;;EAErD;AACD;AACA;AACA;AACA;AACA;AACA;EACC,MAAM+E,gBAAgB,GAAGnF,WAAW,CACjCoF,OAAO,IAAM;IACd,IAAK,CAAE/C,kBAAkB,EAAG;MAC3B,OAAOgD,OAAO,CAACC,MAAM,CAAE;QACtBC,OAAO,EAAE9E,EAAE,CACV,6CACD;MACD,CAAE,CAAC;IACJ;IACA,OAAOyE,gBAAgB,CAAE,UAAU,EAAE,MAAM,EAAEE,OAAQ,CAAC;EACvD,CAAC,EACD,CAAEF,gBAAgB,EAAE7C,kBAAkB,CACvC,CAAC;EAED,MAAMmD,iBAAiB,GAAGzF,OAAO,CAAE,MAAM;IACxC;IACA,IAAKoC,gBAAgB,IAAIA,gBAAgB,CAACsD,MAAM,GAAG,CAAC,EAAG;MACtD;MACA;MACA;MACA,MAAMC,wBAAwB,GAC7B,IAAI,KAAKrE,QAAQ,CAACmE,iBAAiB,GAChC5D,UAAU,CAAC+D,GAAG,CAAE,CAAE;QAAEZ;MAAK,CAAC,KAAMA,IAAK,CAAC,GACtC1D,QAAQ,CAACmE,iBAAiB,IAAI,EAAE;MAEpC,OAAOE,wBAAwB,CAACtB,MAAM,CACnCwB,IAAI,IAAM,CAAEzD,gBAAgB,CAACqC,QAAQ,CAAEoB,IAAK,CAC/C,CAAC;IACF;IAEA,OAAOvE,QAAQ,CAACmE,iBAAiB;EAClC,CAAC,EAAE,CAAEnE,QAAQ,CAACmE,iBAAiB,EAAErD,gBAAgB,EAAEP,UAAU,CAAG,CAAC;EAEjE,MAAMiE,qBAAqB,GAAGxE,QAAQ,CAACQ,SAAS,KAAK,KAAK;EAE1D,OAAO9B,OAAO,CACb,OAAQ;IACP,GAAG+F,MAAM,CAACC,WAAW,CACpBD,MAAM,CAACE,OAAO,CAAE3E,QAAS,CAAC,CAAC+C,MAAM,CAAE,CAAE,CAAE6B,GAAG,CAAE,KAC3C9E,qBAAqB,CAACqD,QAAQ,CAAEyB,GAAI,CACrC,CACD,CAAC;IACDT,iBAAiB;IACjB7D,wBAAwB;IACxBE,SAAS,EAAEA,SAAS,IAAI,CAAEgE,qBAAqB;IAC/C/D,eAAe;IACfC,iBAAiB;IACjBC,oBAAoB;IACpBjB,WAAW,EAAEmB,oBAAoB,GAAGnB,WAAW,GAAGwC,SAAS;IAC3DQ,2BAA2B,EAAEI,aAAa;IAC1C,CAAElD,MAAM,CAAEJ,WAAY,CAAC,CAACqF,sBAAsB,GAAMxD,MAAM,IACzDzB,MAAM,CAAEyB,MAAM,CAAEtC,SAAU,CAAE,CAAC,CAAC+F,2BAA2B,CACxD7E,QACD,CAAC;IACF8E,4BAA4B,EAAEnE,cAAc;IAC5CiC,oCAAoC,EAAEO,sBAAsB;IAC5D4B,mCAAmC,EAAE7D,qBAAqB;IAC1DnC,kCAAkC,EAAEA,CAAEiG,MAAM,EAAEC,aAAa,KAC1DjG,oBAAoB,CAAEgG,MAAM,EAAEC,aAAa,EAAElF,QAAS,CAAC;IACxDP,uBAAuB;IACvB0F,8BAA8B,EAAEhG,YAAY;IAC5C;IACA;IACAiG,sCAAsC,EAAErE,oBAAoB;IAC5D;IACAsE,kBAAkB,EAAE1B,IAAI;IACxB;IACA;IACA2B,WAAW,EAAErF,QAAQ,KAAK,aAAa;IACvC;IACAsF,8BAA8B,EAAEzB,gBAAgB;IAChD0B,gCAAgC,EAAExE,kBAAkB;IACpDC,WAAW;IACXC,YAAY;IACZuE,kCAAkC,EAAExF,QAAQ,KAAK,aAAa;IAC9DyF,YAAY,EACXzF,QAAQ,KAAK,eAAe,GAAG,QAAQ,GAAGD,QAAQ,CAAC0F,YAAY;IAChEC,QAAQ,EACP1F,QAAQ,KAAK,eAAe,GACzB,CAAE,CAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAE,CAAE,GACjCD,QAAQ,CAAC2F,QAAQ;IACrBC,iCAAiC,EAAEhC;EACpC,CAAC,CAAE,EACH,CACCO,iBAAiB,EACjB7D,wBAAwB,EACxBE,SAAS,EACTgE,qBAAqB,EACrB/D,eAAe,EACfC,iBAAiB,EACjBC,oBAAoB,EACpBX,QAAQ,EACRa,oBAAoB,EACpBD,cAAc,EACdO,qBAAqB,EACrB2B,aAAa,EACbM,sBAAsB,EACtBrC,oBAAoB,EACpB4C,IAAI,EACJG,gBAAgB,EAChB9C,kBAAkB,EAClBC,WAAW,EACXC,YAAY,EACZjB,QAAQ,EACR2D,mBAAmB,CAErB,CAAC;AACF;AAEA,eAAe7D,sBAAsB"}
1
+ {"version":3,"names":["Platform","useMemo","useCallback","useDispatch","useSelect","store","coreStore","__experimentalFetchLinkSuggestions","fetchLinkSuggestions","__experimentalFetchUrlData","fetchUrlData","__","preferencesStore","useViewportMatch","blocksStore","privateApis","inserterMediaCategories","mediaUpload","editorStore","unlock","EMPTY_BLOCKS_LIST","BLOCK_EDITOR_SETTINGS","useBlockEditorSettings","settings","postType","postId","_settings$__experimen","_settings$__experimen2","isLargeViewport","allowRightClickOverrides","blockTypes","focusMode","hasFixedToolbar","isDistractionFree","keepCaretInsideBlock","reusableBlocks","hasUploadPermissions","hiddenBlockTypes","canUseUnfilteredHTML","userCanCreatePages","pageOnFront","pageForPosts","userPatternCategories","restBlockPatternCategories","select","_canUser","isWeb","OS","canUser","getRawEntityRecord","getEntityRecord","getUserPatternCategories","getEntityRecords","getBlockPatternCategories","get","getBlockTypes","siteSettings","undefined","_links","hasOwnProperty","per_page","page_on_front","page_for_posts","settingsBlockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","settingsBlockPatternCategories","__experimentalAdditionalBlockPatternCategories","__experimentalBlockPatternCategories","blockPatterns","filter","postTypes","Array","isArray","includes","blockPatternCategories","x","index","arr","findIndex","y","name","undo","setIsInserterOpened","saveEntityRecord","createPageEntity","options","Promise","reject","message","allowedBlockTypes","length","defaultAllowedBlockTypes","map","type","forceDisableFocusMode","Object","fromEntries","entries","key","selectBlockPatternsKey","getBlockPatternsForPostType","__experimentalReusableBlocks","__experimentalUserPatternCategories","search","searchOptions","__experimentalFetchRichUrlData","__experimentalCanUserUseUnfilteredHTML","__experimentalUndo","outlineMode","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","__experimentalPreferPatternsOnRoot","templateLock","template","__experimentalSetIsInserterOpened"],"sources":["@wordpress/editor/src/components/provider/use-block-editor-settings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Platform, useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\t__experimentalFetchLinkSuggestions as fetchLinkSuggestions,\n\t__experimentalFetchUrlData as fetchUrlData,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { privateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport inserterMediaCategories from '../media-categories';\nimport { mediaUpload } from '../../utils';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst EMPTY_BLOCKS_LIST = [];\n\nconst BLOCK_EDITOR_SETTINGS = [\n\t'__experimentalBlockDirectory',\n\t'__experimentalDiscussionSettings',\n\t'__experimentalFeatures',\n\t'__experimentalGlobalStylesBaseStyles',\n\t'__unstableGalleryWithImageBlocks',\n\t'alignWide',\n\t'blockInspectorTabs',\n\t'allowedMimeTypes',\n\t'bodyPlaceholder',\n\t'canLockBlocks',\n\t'capabilities',\n\t'clearBlockSelection',\n\t'codeEditingEnabled',\n\t'colors',\n\t'disableCustomColors',\n\t'disableCustomFontSizes',\n\t'disableCustomSpacingSizes',\n\t'disableCustomGradients',\n\t'disableLayoutStyles',\n\t'enableCustomLineHeight',\n\t'enableCustomSpacing',\n\t'enableCustomUnits',\n\t'enableOpenverseMediaCategory',\n\t'fontSizes',\n\t'gradients',\n\t'generateAnchors',\n\t'onNavigateToEntityRecord',\n\t'imageDefaultSize',\n\t'imageDimensions',\n\t'imageEditing',\n\t'imageSizes',\n\t'isRTL',\n\t'locale',\n\t'maxWidth',\n\t'postContentAttributes',\n\t'postsPerPage',\n\t'readOnly',\n\t'styles',\n\t'titlePlaceholder',\n\t'supportsLayout',\n\t'widgetTypesToHideFromLegacyWidgetBlock',\n\t'__unstableHasCustomAppender',\n\t'__unstableIsPreviewMode',\n\t'__unstableResolvedAssets',\n\t'__unstableIsBlockBasedTheme',\n\t'__experimentalArchiveTitleTypeLabel',\n\t'__experimentalArchiveTitleNameLabel',\n];\n\n/**\n * React hook used to compute the block editor settings to use for the post editor.\n *\n * @param {Object} settings EditorProvider settings prop.\n * @param {string} postType Editor root level post type.\n * @param {string} postId Editor root level post ID.\n *\n * @return {Object} Block Editor Settings.\n */\nfunction useBlockEditorSettings( settings, postType, postId ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tallowRightClickOverrides,\n\t\tblockTypes,\n\t\tfocusMode,\n\t\thasFixedToolbar,\n\t\tisDistractionFree,\n\t\tkeepCaretInsideBlock,\n\t\treusableBlocks,\n\t\thasUploadPermissions,\n\t\thiddenBlockTypes,\n\t\tcanUseUnfilteredHTML,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t\tuserPatternCategories,\n\t\trestBlockPatternCategories,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst isWeb = Platform.OS === 'web';\n\t\t\tconst {\n\t\t\t\tcanUser,\n\t\t\t\tgetRawEntityRecord,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetUserPatternCategories,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetBlockPatternCategories,\n\t\t\t} = select( coreStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst { getBlockTypes } = select( blocksStore );\n\t\t\tconst siteSettings = canUser( 'read', 'settings' )\n\t\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t\t: undefined;\n\n\t\t\treturn {\n\t\t\t\tallowRightClickOverrides: get(\n\t\t\t\t\t'core',\n\t\t\t\t\t'allowRightClickOverrides'\n\t\t\t\t),\n\t\t\t\tblockTypes: getBlockTypes(),\n\t\t\t\tcanUseUnfilteredHTML: getRawEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId\n\t\t\t\t)?._links?.hasOwnProperty( 'wp:action-unfiltered-html' ),\n\t\t\t\tfocusMode: get( 'core', 'focusMode' ),\n\t\t\t\thasFixedToolbar:\n\t\t\t\t\tget( 'core', 'fixedToolbar' ) || ! isLargeViewport,\n\t\t\t\thiddenBlockTypes: get( 'core', 'hiddenBlockTypes' ),\n\t\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\t\tkeepCaretInsideBlock: get( 'core', 'keepCaretInsideBlock' ),\n\t\t\t\treusableBlocks: isWeb\n\t\t\t\t\t? getEntityRecords( 'postType', 'wp_block', {\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_BLOCKS_LIST, // Reusable blocks are fetched in the native version of this hook.\n\t\t\t\thasUploadPermissions: canUser( 'create', 'media' ) ?? true,\n\t\t\t\tuserCanCreatePages: canUser( 'create', 'pages' ),\n\t\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t\t\trestBlockPatternCategories: getBlockPatternCategories(),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId, isLargeViewport ]\n\t);\n\n\tconst settingsBlockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tsettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[ ...( settingsBlockPatterns || [] ) ].filter(\n\t\t\t\t( { postTypes } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! postTypes ||\n\t\t\t\t\t\t( Array.isArray( postTypes ) &&\n\t\t\t\t\t\t\tpostTypes.includes( postType ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t),\n\t\t[ settingsBlockPatterns, postType ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatternCategories || [] ),\n\t\t\t\t...( restBlockPatternCategories || [] ),\n\t\t\t].filter(\n\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\n\tconst { undo, setIsInserterOpened } = useDispatch( editorStore );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t/**\n\t * Creates a Post entity.\n\t * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.\n\t *\n\t * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.\n\t * @return {Object} the post type object that was created.\n\t */\n\tconst createPageEntity = useCallback(\n\t\t( options ) => {\n\t\t\tif ( ! userCanCreatePages ) {\n\t\t\t\treturn Promise.reject( {\n\t\t\t\t\tmessage: __(\n\t\t\t\t\t\t'You do not have permission to create Pages.'\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn saveEntityRecord( 'postType', 'page', options );\n\t\t},\n\t\t[ saveEntityRecord, userCanCreatePages ]\n\t);\n\n\tconst allowedBlockTypes = useMemo( () => {\n\t\t// Omit hidden block types if exists and non-empty.\n\t\tif ( hiddenBlockTypes && hiddenBlockTypes.length > 0 ) {\n\t\t\t// Defer to passed setting for `allowedBlockTypes` if provided as\n\t\t\t// anything other than `true` (where `true` is equivalent to allow\n\t\t\t// all block types).\n\t\t\tconst defaultAllowedBlockTypes =\n\t\t\t\ttrue === settings.allowedBlockTypes\n\t\t\t\t\t? blockTypes.map( ( { name } ) => name )\n\t\t\t\t\t: settings.allowedBlockTypes || [];\n\n\t\t\treturn defaultAllowedBlockTypes.filter(\n\t\t\t\t( type ) => ! hiddenBlockTypes.includes( type )\n\t\t\t);\n\t\t}\n\n\t\treturn settings.allowedBlockTypes;\n\t}, [ settings.allowedBlockTypes, hiddenBlockTypes, blockTypes ] );\n\n\tconst forceDisableFocusMode = settings.focusMode === false;\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...Object.fromEntries(\n\t\t\t\tObject.entries( settings ).filter( ( [ key ] ) =>\n\t\t\t\t\tBLOCK_EDITOR_SETTINGS.includes( key )\n\t\t\t\t)\n\t\t\t),\n\t\t\tallowedBlockTypes,\n\t\t\tallowRightClickOverrides,\n\t\t\tfocusMode: focusMode && ! forceDisableFocusMode,\n\t\t\thasFixedToolbar,\n\t\t\tisDistractionFree,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t[ unlock( privateApis ).selectBlockPatternsKey ]: ( select ) =>\n\t\t\t\tunlock( select( coreStore ) ).getBlockPatternsForPostType(\n\t\t\t\t\tpostType\n\t\t\t\t),\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t\t__experimentalUserPatternCategories: userPatternCategories,\n\t\t\t__experimentalFetchLinkSuggestions: ( search, searchOptions ) =>\n\t\t\t\tfetchLinkSuggestions( search, searchOptions, settings ),\n\t\t\tinserterMediaCategories,\n\t\t\t__experimentalFetchRichUrlData: fetchUrlData,\n\t\t\t// Todo: This only checks the top level post, not the post within a template or any other entity that can be edited.\n\t\t\t// This might be better as a generic \"canUser\" selector.\n\t\t\t__experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,\n\t\t\t//Todo: this is only needed for native and should probably be removed.\n\t\t\t__experimentalUndo: undo,\n\t\t\t// Check whether we want all site editor frames to have outlines\n\t\t\t// including the navigation / pattern / parts editors.\n\t\t\toutlineMode: postType === 'wp_template',\n\t\t\t// Check these two properties: they were not present in the site editor.\n\t\t\t__experimentalCreatePageEntity: createPageEntity,\n\t\t\t__experimentalUserCanCreatePages: userCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\t__experimentalPreferPatternsOnRoot: postType === 'wp_template',\n\t\t\ttemplateLock:\n\t\t\t\tpostType === 'wp_navigation' ? 'insert' : settings.templateLock,\n\t\t\ttemplate:\n\t\t\t\tpostType === 'wp_navigation'\n\t\t\t\t\t? [ [ 'core/navigation', {}, [] ] ]\n\t\t\t\t\t: settings.template,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t} ),\n\t\t[\n\t\t\tallowedBlockTypes,\n\t\t\tallowRightClickOverrides,\n\t\t\tfocusMode,\n\t\t\tforceDisableFocusMode,\n\t\t\thasFixedToolbar,\n\t\t\tisDistractionFree,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tsettings,\n\t\t\thasUploadPermissions,\n\t\t\treusableBlocks,\n\t\t\tuserPatternCategories,\n\t\t\tblockPatterns,\n\t\t\tblockPatternCategories,\n\t\t\tcanUseUnfilteredHTML,\n\t\t\tundo,\n\t\t\tcreatePageEntity,\n\t\t\tuserCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\tpostType,\n\t\t\tsetIsInserterOpened,\n\t\t]\n\t);\n}\n\nexport default useBlockEditorSettings;\n"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useEffect } from '@wordpress/element';
5
+ import { addFilter, removeFilter } from '@wordpress/hooks';
6
+
7
+ // These post types are "structural" block lists.
8
+ // We should be allowed to use
9
+ // the post content and template parts blocks within them.
10
+ const POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART = ['wp_block', 'wp_template', 'wp_template_part'];
11
+
12
+ /**
13
+ * In some specific contexts,
14
+ * the template part and post content blocks need to be hidden.
15
+ *
16
+ * @param {string} postType Post Type
17
+ */
18
+ export function useHideBlocksFromInserter(postType) {
19
+ useEffect(() => {
20
+ /*
21
+ * Prevent adding template part in the editor.
22
+ */
23
+ addFilter('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromInserter', (canInsert, blockType) => {
24
+ if (!POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART.includes(postType) && blockType.name === 'core/template-part') {
25
+ return false;
26
+ }
27
+ return canInsert;
28
+ });
29
+
30
+ /*
31
+ * Prevent adding post content block (except in query block) in the editor.
32
+ */
33
+ addFilter('blockEditor.__unstableCanInsertBlockType', 'removePostContentFromInserter', (canInsert, blockType, rootClientId, {
34
+ getBlockParentsByBlockName
35
+ }) => {
36
+ if (!POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART.includes(postType) && blockType.name === 'core/post-content') {
37
+ return getBlockParentsByBlockName(rootClientId, 'core/query').length > 0;
38
+ }
39
+ return canInsert;
40
+ });
41
+ return () => {
42
+ removeFilter('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromInserter');
43
+ removeFilter('blockEditor.__unstableCanInsertBlockType', 'removePostContentFromInserter');
44
+ };
45
+ }, [postType]);
46
+ }
47
+ //# sourceMappingURL=use-hide-blocks-from-inserter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","addFilter","removeFilter","POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART","useHideBlocksFromInserter","postType","canInsert","blockType","includes","name","rootClientId","getBlockParentsByBlockName","length"],"sources":["@wordpress/editor/src/components/provider/use-hide-blocks-from-inserter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { addFilter, removeFilter } from '@wordpress/hooks';\n\n// These post types are \"structural\" block lists.\n// We should be allowed to use\n// the post content and template parts blocks within them.\nconst POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART = [\n\t'wp_block',\n\t'wp_template',\n\t'wp_template_part',\n];\n\n/**\n * In some specific contexts,\n * the template part and post content blocks need to be hidden.\n *\n * @param {string} postType Post Type\n */\nexport function useHideBlocksFromInserter( postType ) {\n\tuseEffect( () => {\n\t\t/*\n\t\t * Prevent adding template part in the editor.\n\t\t */\n\t\taddFilter(\n\t\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t\t'removeTemplatePartsFromInserter',\n\t\t\t( canInsert, blockType ) => {\n\t\t\t\tif (\n\t\t\t\t\t! POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART.includes(\n\t\t\t\t\t\tpostType\n\t\t\t\t\t) &&\n\t\t\t\t\tblockType.name === 'core/template-part'\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn canInsert;\n\t\t\t}\n\t\t);\n\n\t\t/*\n\t\t * Prevent adding post content block (except in query block) in the editor.\n\t\t */\n\t\taddFilter(\n\t\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t\t'removePostContentFromInserter',\n\t\t\t(\n\t\t\t\tcanInsert,\n\t\t\t\tblockType,\n\t\t\t\trootClientId,\n\t\t\t\t{ getBlockParentsByBlockName }\n\t\t\t) => {\n\t\t\t\tif (\n\t\t\t\t\t! POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART.includes(\n\t\t\t\t\t\tpostType\n\t\t\t\t\t) &&\n\t\t\t\t\tblockType.name === 'core/post-content'\n\t\t\t\t) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tgetBlockParentsByBlockName( rootClientId, 'core/query' )\n\t\t\t\t\t\t\t.length > 0\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn canInsert;\n\t\t\t}\n\t\t);\n\n\t\treturn () => {\n\t\t\tremoveFilter(\n\t\t\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t\t\t'removeTemplatePartsFromInserter'\n\t\t\t);\n\t\t\tremoveFilter(\n\t\t\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t\t\t'removePostContentFromInserter'\n\t\t\t);\n\t\t};\n\t}, [ postType ] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,SAAS,EAAEC,YAAY,QAAQ,kBAAkB;;AAE1D;AACA;AACA;AACA,MAAMC,8CAA8C,GAAG,CACtD,UAAU,EACV,aAAa,EACb,kBAAkB,CAClB;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CAAEC,QAAQ,EAAG;EACrDL,SAAS,CAAE,MAAM;IAChB;AACF;AACA;IACEC,SAAS,CACR,0CAA0C,EAC1C,iCAAiC,EACjC,CAAEK,SAAS,EAAEC,SAAS,KAAM;MAC3B,IACC,CAAEJ,8CAA8C,CAACK,QAAQ,CACxDH,QACD,CAAC,IACDE,SAAS,CAACE,IAAI,KAAK,oBAAoB,EACtC;QACD,OAAO,KAAK;MACb;MACA,OAAOH,SAAS;IACjB,CACD,CAAC;;IAED;AACF;AACA;IACEL,SAAS,CACR,0CAA0C,EAC1C,+BAA+B,EAC/B,CACCK,SAAS,EACTC,SAAS,EACTG,YAAY,EACZ;MAAEC;IAA2B,CAAC,KAC1B;MACJ,IACC,CAAER,8CAA8C,CAACK,QAAQ,CACxDH,QACD,CAAC,IACDE,SAAS,CAACE,IAAI,KAAK,mBAAmB,EACrC;QACD,OACCE,0BAA0B,CAAED,YAAY,EAAE,YAAa,CAAC,CACtDE,MAAM,GAAG,CAAC;MAEd;MACA,OAAON,SAAS;IACjB,CACD,CAAC;IAED,OAAO,MAAM;MACZJ,YAAY,CACX,0CAA0C,EAC1C,iCACD,CAAC;MACDA,YAAY,CACX,0CAA0C,EAC1C,+BACD,CAAC;IACF,CAAC;EACF,CAAC,EAAE,CAAEG,QAAQ,CAAG,CAAC;AAClB"}
@@ -10,6 +10,7 @@ import useBlockEditorSettings from './components/provider/use-block-editor-setti
10
10
  import DocumentTools from './components/document-tools';
11
11
  import InserterSidebar from './components/inserter-sidebar';
12
12
  import ListViewSidebar from './components/list-view-sidebar';
13
+ import ModeSwitcher from './components/mode-switcher';
13
14
  import PluginPostExcerpt from './components/post-excerpt/plugin';
14
15
  import PostPanelRow from './components/post-panel-row';
15
16
  import PostViewLink from './components/post-view-link';
@@ -24,6 +25,7 @@ lock(privateApis, {
24
25
  EntitiesSavedStatesExtensible,
25
26
  InserterSidebar,
26
27
  ListViewSidebar,
28
+ ModeSwitcher,
27
29
  PluginPostExcerpt,
28
30
  PostPanelRow,
29
31
  PostViewLink,
@@ -1 +1 @@
1
- {"version":3,"names":["EditorCanvas","ExperimentalEditorProvider","lock","EnablePluginDocumentSettingPanelOption","EntitiesSavedStatesExtensible","useBlockEditorSettings","DocumentTools","InserterSidebar","ListViewSidebar","PluginPostExcerpt","PostPanelRow","PostViewLink","PreviewDropdown","PreferencesModal","privateApis"],"sources":["@wordpress/editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport EditorCanvas from './components/editor-canvas';\nimport { ExperimentalEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport EnablePluginDocumentSettingPanelOption from './components/preferences-modal/enable-plugin-document-setting-panel';\nimport { EntitiesSavedStatesExtensible } from './components/entities-saved-states';\nimport useBlockEditorSettings from './components/provider/use-block-editor-settings';\nimport DocumentTools from './components/document-tools';\nimport InserterSidebar from './components/inserter-sidebar';\nimport ListViewSidebar from './components/list-view-sidebar';\nimport PluginPostExcerpt from './components/post-excerpt/plugin';\nimport PostPanelRow from './components/post-panel-row';\nimport PostViewLink from './components/post-view-link';\nimport PreviewDropdown from './components/preview-dropdown';\nimport PreferencesModal from './components/preferences-modal';\n\nexport const privateApis = {};\nlock( privateApis, {\n\tDocumentTools,\n\tEditorCanvas,\n\tExperimentalEditorProvider,\n\tEnablePluginDocumentSettingPanelOption,\n\tEntitiesSavedStatesExtensible,\n\tInserterSidebar,\n\tListViewSidebar,\n\tPluginPostExcerpt,\n\tPostPanelRow,\n\tPostViewLink,\n\tPreviewDropdown,\n\tPreferencesModal,\n\n\t// This is a temporary private API while we're updating the site editor to use EditorProvider.\n\tuseBlockEditorSettings,\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,YAAY,MAAM,4BAA4B;AACrD,SAASC,0BAA0B,QAAQ,uBAAuB;AAClE,SAASC,IAAI,QAAQ,eAAe;AACpC,OAAOC,sCAAsC,MAAM,qEAAqE;AACxH,SAASC,6BAA6B,QAAQ,oCAAoC;AAClF,OAAOC,sBAAsB,MAAM,iDAAiD;AACpF,OAAOC,aAAa,MAAM,6BAA6B;AACvD,OAAOC,eAAe,MAAM,+BAA+B;AAC3D,OAAOC,eAAe,MAAM,gCAAgC;AAC5D,OAAOC,iBAAiB,MAAM,kCAAkC;AAChE,OAAOC,YAAY,MAAM,6BAA6B;AACtD,OAAOC,YAAY,MAAM,6BAA6B;AACtD,OAAOC,eAAe,MAAM,+BAA+B;AAC3D,OAAOC,gBAAgB,MAAM,gCAAgC;AAE7D,OAAO,MAAMC,WAAW,GAAG,CAAC,CAAC;AAC7BZ,IAAI,CAAEY,WAAW,EAAE;EAClBR,aAAa;EACbN,YAAY;EACZC,0BAA0B;EAC1BE,sCAAsC;EACtCC,6BAA6B;EAC7BG,eAAe;EACfC,eAAe;EACfC,iBAAiB;EACjBC,YAAY;EACZC,YAAY;EACZC,eAAe;EACfC,gBAAgB;EAEhB;EACAR;AACD,CAAE,CAAC"}
1
+ {"version":3,"names":["EditorCanvas","ExperimentalEditorProvider","lock","EnablePluginDocumentSettingPanelOption","EntitiesSavedStatesExtensible","useBlockEditorSettings","DocumentTools","InserterSidebar","ListViewSidebar","ModeSwitcher","PluginPostExcerpt","PostPanelRow","PostViewLink","PreviewDropdown","PreferencesModal","privateApis"],"sources":["@wordpress/editor/src/private-apis.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport EditorCanvas from './components/editor-canvas';\nimport { ExperimentalEditorProvider } from './components/provider';\nimport { lock } from './lock-unlock';\nimport EnablePluginDocumentSettingPanelOption from './components/preferences-modal/enable-plugin-document-setting-panel';\nimport { EntitiesSavedStatesExtensible } from './components/entities-saved-states';\nimport useBlockEditorSettings from './components/provider/use-block-editor-settings';\nimport DocumentTools from './components/document-tools';\nimport InserterSidebar from './components/inserter-sidebar';\nimport ListViewSidebar from './components/list-view-sidebar';\nimport ModeSwitcher from './components/mode-switcher';\nimport PluginPostExcerpt from './components/post-excerpt/plugin';\nimport PostPanelRow from './components/post-panel-row';\nimport PostViewLink from './components/post-view-link';\nimport PreviewDropdown from './components/preview-dropdown';\nimport PreferencesModal from './components/preferences-modal';\n\nexport const privateApis = {};\nlock( privateApis, {\n\tDocumentTools,\n\tEditorCanvas,\n\tExperimentalEditorProvider,\n\tEnablePluginDocumentSettingPanelOption,\n\tEntitiesSavedStatesExtensible,\n\tInserterSidebar,\n\tListViewSidebar,\n\tModeSwitcher,\n\tPluginPostExcerpt,\n\tPostPanelRow,\n\tPostViewLink,\n\tPreviewDropdown,\n\tPreferencesModal,\n\n\t// This is a temporary private API while we're updating the site editor to use EditorProvider.\n\tuseBlockEditorSettings,\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,YAAY,MAAM,4BAA4B;AACrD,SAASC,0BAA0B,QAAQ,uBAAuB;AAClE,SAASC,IAAI,QAAQ,eAAe;AACpC,OAAOC,sCAAsC,MAAM,qEAAqE;AACxH,SAASC,6BAA6B,QAAQ,oCAAoC;AAClF,OAAOC,sBAAsB,MAAM,iDAAiD;AACpF,OAAOC,aAAa,MAAM,6BAA6B;AACvD,OAAOC,eAAe,MAAM,+BAA+B;AAC3D,OAAOC,eAAe,MAAM,gCAAgC;AAC5D,OAAOC,YAAY,MAAM,4BAA4B;AACrD,OAAOC,iBAAiB,MAAM,kCAAkC;AAChE,OAAOC,YAAY,MAAM,6BAA6B;AACtD,OAAOC,YAAY,MAAM,6BAA6B;AACtD,OAAOC,eAAe,MAAM,+BAA+B;AAC3D,OAAOC,gBAAgB,MAAM,gCAAgC;AAE7D,OAAO,MAAMC,WAAW,GAAG,CAAC,CAAC;AAC7Bb,IAAI,CAAEa,WAAW,EAAE;EAClBT,aAAa;EACbN,YAAY;EACZC,0BAA0B;EAC1BE,sCAAsC;EACtCC,6BAA6B;EAC7BG,eAAe;EACfC,eAAe;EACfC,YAAY;EACZC,iBAAiB;EACjBC,YAAY;EACZC,YAAY;EACZC,eAAe;EACfC,gBAAgB;EAEhB;EACAT;AACD,CAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
+ import { speak } from '@wordpress/a11y';
4
5
  import apiFetch from '@wordpress/api-fetch';
5
6
  import deprecated from '@wordpress/deprecated';
6
7
  import { parse, synchronizeBlocksWithTemplate, __unstableSerializeAndClean } from '@wordpress/blocks';
@@ -9,6 +10,7 @@ import { store as coreStore } from '@wordpress/core-data';
9
10
  import { store as blockEditorStore } from '@wordpress/block-editor';
10
11
  import { applyFilters } from '@wordpress/hooks';
11
12
  import { store as preferencesStore } from '@wordpress/preferences';
13
+ import { __ } from '@wordpress/i18n';
12
14
 
13
15
  /**
14
16
  * Internal dependencies
@@ -697,6 +699,70 @@ export function setIsListViewOpened(isOpen) {
697
699
  };
698
700
  }
699
701
 
702
+ /**
703
+ * Action that toggles Distraction free mode.
704
+ * Distraction free mode expects there are no sidebars, as due to the
705
+ * z-index values set, you can't close sidebars.
706
+ */
707
+ export const toggleDistractionFree = () => ({
708
+ dispatch,
709
+ registry
710
+ }) => {
711
+ const isDistractionFree = registry.select(preferencesStore).get('core', 'distractionFree');
712
+ if (isDistractionFree) {
713
+ registry.dispatch(preferencesStore).set('core', 'fixedToolbar', false);
714
+ }
715
+ if (!isDistractionFree) {
716
+ registry.batch(() => {
717
+ registry.dispatch(preferencesStore).set('core', 'fixedToolbar', true);
718
+ dispatch.setIsInserterOpened(false);
719
+ dispatch.setIsListViewOpened(false);
720
+ });
721
+ }
722
+ registry.batch(() => {
723
+ registry.dispatch(preferencesStore).set('core', 'distractionFree', !isDistractionFree);
724
+ registry.dispatch(noticesStore).createInfoNotice(isDistractionFree ? __('Distraction free off.') : __('Distraction free on.'), {
725
+ id: 'core/editor/distraction-free-mode/notice',
726
+ type: 'snackbar',
727
+ actions: [{
728
+ label: __('Undo'),
729
+ onClick: () => {
730
+ registry.batch(() => {
731
+ registry.dispatch(preferencesStore).set('core', 'fixedToolbar', isDistractionFree ? true : false);
732
+ registry.dispatch(preferencesStore).toggle('core', 'distractionFree');
733
+ });
734
+ }
735
+ }]
736
+ });
737
+ });
738
+ };
739
+
740
+ /**
741
+ * Triggers an action used to switch editor mode.
742
+ *
743
+ * @param {string} mode The editor mode.
744
+ */
745
+ export const switchEditorMode = mode => ({
746
+ dispatch,
747
+ registry
748
+ }) => {
749
+ registry.dispatch(preferencesStore).set('core', 'editorMode', mode);
750
+
751
+ // Unselect blocks when we switch to a non visual mode.
752
+ if (mode !== 'visual') {
753
+ registry.dispatch(blockEditorStore).clearSelectedBlock();
754
+ }
755
+ if (mode === 'visual') {
756
+ speak(__('Visual editor selected'), 'assertive');
757
+ } else if (mode === 'text') {
758
+ const isDistractionFree = registry.select(preferencesStore).get('core', 'distractionFree');
759
+ if (isDistractionFree) {
760
+ dispatch.toggleDistractionFree();
761
+ }
762
+ speak(__('Code editor selected'), 'assertive');
763
+ }
764
+ };
765
+
700
766
  /**
701
767
  * Backward compatibility
702
768
  */