@wordpress/editor 14.8.10 → 14.8.12

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.
@@ -45,13 +45,14 @@ function ContentOnlySettingsMenuItems({
45
45
  record = select(_coreData.store).getEntityRecord('postType', 'wp_block', getBlockAttributes(patternParent).ref);
46
46
  } else {
47
47
  const {
48
- getCurrentTemplateId
48
+ getCurrentTemplateId,
49
+ getRenderingMode
49
50
  } = select(_store.store);
50
51
  const templateId = getCurrentTemplateId();
51
52
  const {
52
53
  getContentLockingParent
53
54
  } = (0, _lockUnlock.unlock)(select(_blockEditor.store));
54
- if (!getContentLockingParent(clientId) && templateId) {
55
+ if (getRenderingMode() === 'template-locked' && !getContentLockingParent(clientId) && templateId) {
55
56
  record = select(_coreData.store).getEntityRecord('postType', 'wp_template', templateId);
56
57
  }
57
58
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_blockEditor","require","_coreData","_components","_data","_i18n","_store","_lockUnlock","_jsxRuntime","ContentOnlySettingsMenuItems","clientId","onClose","entity","onNavigateToEntityRecord","canEditTemplates","useSelect","select","getBlockEditingMode","getBlockParentsByBlockName","getSettings","getBlockAttributes","blockEditorStore","contentOnly","patternParent","record","coreStore","getEntityRecord","ref","getCurrentTemplateId","editorStore","templateId","getContentLockingParent","unlock","_canEditTemplates","canUser","kind","name","jsx","TemplateLockContentOnlyMenuItems","isPattern","type","helpText","__","jsxs","Fragment","children","__unstableBlockSettingsMenuFirstItem","MenuItem","onClick","postId","id","postType","disabled","__experimentalText","variant","as","className","contentLockingParent","blockDisplayInformation","useBlockDisplayInformation","blockEditorActions","useDispatch","title","modifyContentLockBlock","_x","ContentOnlySettingsMenu","BlockSettingsMenuControls","selectedClientIds","length"],"sources":["@wordpress/editor/src/components/block-settings-menu/content-only-settings-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockSettingsMenuControls,\n\t__unstableBlockSettingsMenuFirstItem as BlockSettingsMenuFirstItem,\n\tstore as blockEditorStore,\n\tuseBlockDisplayInformation,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalText as Text, MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction ContentOnlySettingsMenuItems( { clientId, onClose } ) {\n\tconst { entity, onNavigateToEntityRecord, canEditTemplates } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst contentOnly =\n\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly';\n\t\t\tif ( ! contentOnly ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst patternParent = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/block',\n\t\t\t\ttrue\n\t\t\t)[ 0 ];\n\n\t\t\tlet record;\n\t\t\tif ( patternParent ) {\n\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tgetBlockAttributes( patternParent ).ref\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst { getCurrentTemplateId } = select( editorStore );\n\t\t\t\tconst templateId = getCurrentTemplateId();\n\t\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\n\t\t\t\tif ( ! getContentLockingParent( clientId ) && templateId ) {\n\t\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_template',\n\t\t\t\t\t\ttemplateId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst _canEditTemplates = select( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\treturn {\n\t\t\t\tcanEditTemplates: _canEditTemplates,\n\t\t\t\tentity: record,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! entity ) {\n\t\treturn (\n\t\t\t<TemplateLockContentOnlyMenuItems\n\t\t\t\tclientId={ clientId }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst isPattern = entity.type === 'wp_block';\n\tlet helpText = isPattern\n\t\t? __(\n\t\t\t\t'Edit the pattern to move, delete, or make further changes to this block.'\n\t\t )\n\t\t: __(\n\t\t\t\t'Edit the template to move, delete, or make further changes to this block.'\n\t\t );\n\n\tif ( ! canEditTemplates ) {\n\t\thelpText = __(\n\t\t\t'Only users with permissions to edit the template can move or delete this block'\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: entity.id,\n\t\t\t\t\t\t\tpostType: entity.type,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! canEditTemplates }\n\t\t\t\t>\n\t\t\t\t\t{ isPattern ? __( 'Edit pattern' ) : __( 'Edit template' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ helpText }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nfunction TemplateLockContentOnlyMenuItems( { clientId, onClose } ) {\n\tconst { contentLockingParent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontentLockingParent: getContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst blockDisplayInformation =\n\t\tuseBlockDisplayInformation( contentLockingParent );\n\tconst blockEditorActions = useDispatch( blockEditorStore );\n\tif ( ! blockDisplayInformation?.title ) {\n\t\treturn null;\n\t}\n\n\tconst { modifyContentLockBlock } = unlock( blockEditorActions );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tmodifyContentLockBlock( contentLockingParent );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ _x( 'Unlock', 'Unlock content locked blocks' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ __(\n\t\t\t\t\t'Temporarily unlock the parent block to edit, delete or make further changes to this block.'\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nexport default function ContentOnlySettingsMenu() {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) =>\n\t\t\t\tselectedClientIds.length === 1 && (\n\t\t\t\t\t<ContentOnlySettingsMenuItems\n\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_blockEditor","require","_coreData","_components","_data","_i18n","_store","_lockUnlock","_jsxRuntime","ContentOnlySettingsMenuItems","clientId","onClose","entity","onNavigateToEntityRecord","canEditTemplates","useSelect","select","getBlockEditingMode","getBlockParentsByBlockName","getSettings","getBlockAttributes","blockEditorStore","contentOnly","patternParent","record","coreStore","getEntityRecord","ref","getCurrentTemplateId","getRenderingMode","editorStore","templateId","getContentLockingParent","unlock","_canEditTemplates","canUser","kind","name","jsx","TemplateLockContentOnlyMenuItems","isPattern","type","helpText","__","jsxs","Fragment","children","__unstableBlockSettingsMenuFirstItem","MenuItem","onClick","postId","id","postType","disabled","__experimentalText","variant","as","className","contentLockingParent","blockDisplayInformation","useBlockDisplayInformation","blockEditorActions","useDispatch","title","modifyContentLockBlock","_x","ContentOnlySettingsMenu","BlockSettingsMenuControls","selectedClientIds","length"],"sources":["@wordpress/editor/src/components/block-settings-menu/content-only-settings-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockSettingsMenuControls,\n\t__unstableBlockSettingsMenuFirstItem as BlockSettingsMenuFirstItem,\n\tstore as blockEditorStore,\n\tuseBlockDisplayInformation,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalText as Text, MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction ContentOnlySettingsMenuItems( { clientId, onClose } ) {\n\tconst { entity, onNavigateToEntityRecord, canEditTemplates } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst contentOnly =\n\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly';\n\t\t\tif ( ! contentOnly ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst patternParent = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/block',\n\t\t\t\ttrue\n\t\t\t)[ 0 ];\n\n\t\t\tlet record;\n\t\t\tif ( patternParent ) {\n\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tgetBlockAttributes( patternParent ).ref\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst { getCurrentTemplateId, getRenderingMode } =\n\t\t\t\t\tselect( editorStore );\n\t\t\t\tconst templateId = getCurrentTemplateId();\n\t\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\tgetRenderingMode() === 'template-locked' &&\n\t\t\t\t\t! getContentLockingParent( clientId ) &&\n\t\t\t\t\ttemplateId\n\t\t\t\t) {\n\t\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_template',\n\t\t\t\t\t\ttemplateId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst _canEditTemplates = select( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\treturn {\n\t\t\t\tcanEditTemplates: _canEditTemplates,\n\t\t\t\tentity: record,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! entity ) {\n\t\treturn (\n\t\t\t<TemplateLockContentOnlyMenuItems\n\t\t\t\tclientId={ clientId }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst isPattern = entity.type === 'wp_block';\n\tlet helpText = isPattern\n\t\t? __(\n\t\t\t\t'Edit the pattern to move, delete, or make further changes to this block.'\n\t\t )\n\t\t: __(\n\t\t\t\t'Edit the template to move, delete, or make further changes to this block.'\n\t\t );\n\n\tif ( ! canEditTemplates ) {\n\t\thelpText = __(\n\t\t\t'Only users with permissions to edit the template can move or delete this block'\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: entity.id,\n\t\t\t\t\t\t\tpostType: entity.type,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! canEditTemplates }\n\t\t\t\t>\n\t\t\t\t\t{ isPattern ? __( 'Edit pattern' ) : __( 'Edit template' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ helpText }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nfunction TemplateLockContentOnlyMenuItems( { clientId, onClose } ) {\n\tconst { contentLockingParent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontentLockingParent: getContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst blockDisplayInformation =\n\t\tuseBlockDisplayInformation( contentLockingParent );\n\tconst blockEditorActions = useDispatch( blockEditorStore );\n\tif ( ! blockDisplayInformation?.title ) {\n\t\treturn null;\n\t}\n\n\tconst { modifyContentLockBlock } = unlock( blockEditorActions );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tmodifyContentLockBlock( contentLockingParent );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ _x( 'Unlock', 'Unlock content locked blocks' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ __(\n\t\t\t\t\t'Temporarily unlock the parent block to edit, delete or make further changes to this block.'\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nexport default function ContentOnlySettingsMenu() {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) =>\n\t\t\t\tselectedClientIds.length === 1 && (\n\t\t\t\t\t<ContentOnlySettingsMenuItems\n\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -68,12 +68,22 @@ function useGlobalStylesUserConfig() {
68
68
  } = select(_coreData.store);
69
69
  const _globalStylesId = select(_coreData.store).__experimentalGetCurrentGlobalStylesId();
70
70
  let record;
71
- const userCanEditGlobalStyles = canUser('update', {
71
+
72
+ // We want the global styles ID request to finish before triggering
73
+ // the OPTIONS request for user capabilities, otherwise it will
74
+ // fetch `/wp/v2/global-styles` instead of
75
+ // `/wp/v2/global-styles/{id}`!
76
+ // Please adjust the preloaded requests if this changes!
77
+ const userCanEditGlobalStyles = _globalStylesId ? canUser('update', {
72
78
  kind: 'root',
73
79
  name: 'globalStyles',
74
80
  id: _globalStylesId
75
- });
76
- if (_globalStylesId) {
81
+ }) : null;
82
+ if (_globalStylesId &&
83
+ // We want the OPTIONS request for user capabilities to finish
84
+ // before getting the records, otherwise we'll fetch both!
85
+ typeof userCanEditGlobalStyles === 'boolean') {
86
+ // Please adjust the preloaded requests if this changes!
77
87
  if (userCanEditGlobalStyles) {
78
88
  record = getEditedEntityRecord('root', 'globalStyles', _globalStylesId);
79
89
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["_deepmerge","_interopRequireDefault","require","_isPlainObject","_blockEditor","_coreData","_data","_element","_lockUnlock","_jsxRuntime","GlobalStylesContext","cleanEmptyObject","unlock","blockEditorPrivateApis","mergeBaseAndUserConfigs","base","user","deepmerge","isMergeableObject","isPlainObject","customMerge","key","baseConfig","userConfig","undefined","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","_links","useSelect","select","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","canUser","coreStore","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","userCanEditGlobalStyles","kind","name","id","context","hasResolved","editEntityRecord","useDispatch","config","useMemo","setConfig","useCallback","callbackOrObject","options","_record$styles","_record$settings","_record$_links","currentConfig","updatedConfig","useGlobalStylesBaseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","setUserConfig","isBaseConfigReady","mergedConfig","merged","GlobalStylesProvider","children","jsx","Provider","value"],"sources":["@wordpress/editor/src/components/global-styles-provider/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t/*\n\t\t * We only pass as arrays the presets,\n\t\t * in which case we want the new array of values\n\t\t * to override the old array (no merging).\n\t\t */\n\t\tisMergeableObject: isPlainObject,\n\t\t/*\n\t\t * Exceptions to the above rule.\n\t\t * Background images should be replaced, not merged,\n\t\t * as they themselves are specific object definitions for the style.\n\t\t */\n\t\tcustomMerge: ( key ) => {\n\t\t\tif ( key === 'backgroundImage' ) {\n\t\t\t\treturn ( baseConfig, userConfig ) => userConfig;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\n\t\t\tlet record;\n\t\t\tconst userCanEditGlobalStyles = canUser( 'update', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'globalStyles',\n\t\t\t\tid: _globalStylesId,\n\t\t\t} );\n\n\t\t\tif ( _globalStylesId ) {\n\t\t\t\tif ( userCanEditGlobalStyles ) {\n\t\t\t\t\trecord = getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\trecord = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t{ context: 'view' }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( _globalStylesId ) {\n\t\t\t\t\thasResolved = userCanEditGlobalStyles\n\t\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t ] )\n\t\t\t\t\t\t: hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t\t\t{ context: 'view' },\n\t\t\t\t\t\t ] );\n\t\t\t\t} else {\n\t\t\t\t\thasResolved = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\t_links: record?._links,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\t_links: _links ?? {},\n\t\t};\n\t}, [ settings, styles, _links ] );\n\n\tconst setConfig = useCallback(\n\t\t/**\n\t\t * Set the global styles config.\n\t\t * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.\n\t\t * Otherwise, overwrite the current config with the incoming object.\n\t\t * @param {Object} options Options for editEntityRecord Core selector.\n\t\t */\n\t\t( callbackOrObject, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\t_links: record?._links ?? {},\n\t\t\t};\n\n\t\t\tconst updatedConfig =\n\t\t\t\ttypeof callbackOrObject === 'function'\n\t\t\t\t\t? callbackOrObject( currentConfig )\n\t\t\t\t\t: callbackOrObject;\n\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\t_links: cleanEmptyObject( updatedConfig._links ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId, editEntityRecord, getEditedEntityRecord ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).__experimentalGetCurrentThemeBaseGlobalStyles(),\n\t\t[]\n\t);\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nexport function useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_deepmerge","_interopRequireDefault","require","_isPlainObject","_blockEditor","_coreData","_data","_element","_lockUnlock","_jsxRuntime","GlobalStylesContext","cleanEmptyObject","unlock","blockEditorPrivateApis","mergeBaseAndUserConfigs","base","user","deepmerge","isMergeableObject","isPlainObject","customMerge","key","baseConfig","userConfig","undefined","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","_links","useSelect","select","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","canUser","coreStore","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","userCanEditGlobalStyles","kind","name","id","context","hasResolved","editEntityRecord","useDispatch","config","useMemo","setConfig","useCallback","callbackOrObject","options","_record$styles","_record$settings","_record$_links","currentConfig","updatedConfig","useGlobalStylesBaseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","setUserConfig","isBaseConfigReady","mergedConfig","merged","GlobalStylesProvider","children","jsx","Provider","value"],"sources":["@wordpress/editor/src/components/global-styles-provider/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t/*\n\t\t * We only pass as arrays the presets,\n\t\t * in which case we want the new array of values\n\t\t * to override the old array (no merging).\n\t\t */\n\t\tisMergeableObject: isPlainObject,\n\t\t/*\n\t\t * Exceptions to the above rule.\n\t\t * Background images should be replaced, not merged,\n\t\t * as they themselves are specific object definitions for the style.\n\t\t */\n\t\tcustomMerge: ( key ) => {\n\t\t\tif ( key === 'backgroundImage' ) {\n\t\t\t\treturn ( baseConfig, userConfig ) => userConfig;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\n\t\t\tlet record;\n\n\t\t\t// We want the global styles ID request to finish before triggering\n\t\t\t// the OPTIONS request for user capabilities, otherwise it will\n\t\t\t// fetch `/wp/v2/global-styles` instead of\n\t\t\t// `/wp/v2/global-styles/{id}`!\n\t\t\t// Please adjust the preloaded requests if this changes!\n\t\t\tconst userCanEditGlobalStyles = _globalStylesId\n\t\t\t\t? canUser( 'update', {\n\t\t\t\t\t\tkind: 'root',\n\t\t\t\t\t\tname: 'globalStyles',\n\t\t\t\t\t\tid: _globalStylesId,\n\t\t\t\t } )\n\t\t\t\t: null;\n\n\t\t\tif (\n\t\t\t\t_globalStylesId &&\n\t\t\t\t// We want the OPTIONS request for user capabilities to finish\n\t\t\t\t// before getting the records, otherwise we'll fetch both!\n\t\t\t\ttypeof userCanEditGlobalStyles === 'boolean'\n\t\t\t) {\n\t\t\t\t// Please adjust the preloaded requests if this changes!\n\t\t\t\tif ( userCanEditGlobalStyles ) {\n\t\t\t\t\trecord = getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\trecord = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t{ context: 'view' }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( _globalStylesId ) {\n\t\t\t\t\thasResolved = userCanEditGlobalStyles\n\t\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t ] )\n\t\t\t\t\t\t: hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t\t\t{ context: 'view' },\n\t\t\t\t\t\t ] );\n\t\t\t\t} else {\n\t\t\t\t\thasResolved = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\t_links: record?._links,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\t_links: _links ?? {},\n\t\t};\n\t}, [ settings, styles, _links ] );\n\n\tconst setConfig = useCallback(\n\t\t/**\n\t\t * Set the global styles config.\n\t\t * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.\n\t\t * Otherwise, overwrite the current config with the incoming object.\n\t\t * @param {Object} options Options for editEntityRecord Core selector.\n\t\t */\n\t\t( callbackOrObject, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\t_links: record?._links ?? {},\n\t\t\t};\n\n\t\t\tconst updatedConfig =\n\t\t\t\ttypeof callbackOrObject === 'function'\n\t\t\t\t\t? callbackOrObject( currentConfig )\n\t\t\t\t\t: callbackOrObject;\n\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\t_links: cleanEmptyObject( updatedConfig._links ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId, editEntityRecord, getEditedEntityRecord ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).__experimentalGetCurrentThemeBaseGlobalStyles(),\n\t\t[]\n\t);\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nexport function useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -275,7 +275,10 @@ function VisualEditor({
275
275
  const shouldIframe = !disableIframe || ['Tablet', 'Mobile'].includes(deviceType);
276
276
  const iframeStyles = (0, _element.useMemo)(() => {
277
277
  return [...(styles !== null && styles !== void 0 ? styles : []), {
278
- css: `.is-root-container{display:flow-root;${
278
+ // Ensures margins of children are contained so that the body background paints behind them.
279
+ // Otherwise, the background of html (when zoomed out) would show there and appear broken. It’s
280
+ // important mostly for post-only views yet conceivably an issue in templated views too.
281
+ css: `:where(.block-editor-iframe__body){display:flow-root;}.is-root-container{display:flow-root;${
279
282
  // Some themes will have `min-height: 100vh` for the root container,
280
283
  // which isn't a requirement in auto resize mode.
281
284
  enableResizing ? 'min-height:0!important;' : ''}}`
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_blockEditor","_element","_data","_blocks","_coreData","_compose","_postTitle","_store","_lockUnlock","_editTemplateBlocksNotification","_resizableEditor","_useSelectNearestEditableBlock","_constants","_jsxRuntime","LayoutStyle","useLayoutClasses","useLayoutStyles","ExperimentalBlockCanvas","BlockCanvas","useFlashEditableBlocks","useZoomOutModeExit","unlock","blockEditorPrivateApis","DESIGN_POST_TYPES","PATTERN_POST_TYPE","TEMPLATE_POST_TYPE","NAVIGATION_POST_TYPE","TEMPLATE_PART_POST_TYPE","getPostContentAttributes","blocks","i","length","name","attributes","innerBlocks","nestedPostContent","checkForPostContentAtRootLevel","VisualEditor","autoFocus","styles","disableIframe","iframeProps","contentRef","className","resizeObserver","sizes","useResizeObserver","isMobileViewport","useViewportMatch","isTabletViewport","renderingMode","postContentAttributes","editedPostTemplate","wrapperBlockName","wrapperUniqueId","deviceType","isFocusedEntity","isDesignPostType","postType","isPreview","useSelect","select","getCurrentPostId","getCurrentPostType","getCurrentTemplateId","getEditorSettings","getRenderingMode","getDeviceType","editorStore","getPostType","getEditedEntityRecord","coreStore","postTypeSlug","_renderingMode","_wrapperBlockName","editorSettings","supportsTemplateMode","postTypeObject","currentTemplateId","template","undefined","includes","viewable","onNavigateToPreviousEntityRecord","__unstableIsPreviewMode","isCleanNewPost","hasRootPaddingAwareAlignments","themeHasDisabledLayoutStyles","themeSupportsLayout","isZoomedOut","getSettings","isZoomOut","_isZoomOut","blockEditorStore","_settings","disableLayoutStyles","supportsLayout","__experimentalFeatures","useRootPaddingAwareAlignments","deviceStyles","useResizeCanvas","globalLayoutSettings","useSettings","fallbackLayout","useMemo","type","newestPostContentAttributes","content","parseableContent","parse","hasPostContentAtRootLevel","layout","align","postContentLayoutClasses","blockListLayoutClass","clsx","postContentLayoutStyles","postContentLayout","inherit","contentSize","wideSize","blockListLayout","postEditorLayout","observeTypingRef","useTypingObserver","titleRef","useRef","useEffect","current","focus","alignCSS","localRef","typewriterRef","useTypewriter","useMergeRefs","isEnabled","useSelectNearestEditableBlock","zoomOutProps","scale","frameSize","forceFullHeight","enableResizing","shouldIframe","iframeStyles","css","jsx","children","default","height","jsxs","style","Fragment","selector","contentEditable","ref","marginTop","RecursionProvider","blockName","uniqueId","BlockList","toLowerCase","dropZoneElement","parentNode","__unstableDisableDropZone","_default","exports"],"sources":["@wordpress/editor/src/components/visual-editor/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockList,\n\tstore as blockEditorStore,\n\t__unstableUseTypewriter as useTypewriter,\n\t__unstableUseTypingObserver as useTypingObserver,\n\tuseSettings,\n\tRecursionProvider,\n\tprivateApis as blockEditorPrivateApis,\n\t__experimentalUseResizeCanvas as useResizeCanvas,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { parse } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tuseMergeRefs,\n\tuseViewportMatch,\n\tuseResizeObserver,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostTitle from '../post-title';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport EditTemplateBlocksNotification from './edit-template-blocks-notification';\nimport ResizableEditor from '../resizable-editor';\nimport useSelectNearestEditableBlock from './use-select-nearest-editable-block';\nimport {\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../store/constants';\n\nconst {\n\tLayoutStyle,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tExperimentalBlockCanvas: BlockCanvas,\n\tuseFlashEditableBlocks,\n\tuseZoomOutModeExit,\n} = unlock( blockEditorPrivateApis );\n\n/**\n * These post types have a special editor where they don't allow you to fill the title\n * and they don't apply the layout styles.\n */\nconst DESIGN_POST_TYPES = [\n\tPATTERN_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n];\n\n/**\n * Given an array of nested blocks, find the first Post Content\n * block inside it, recursing through any nesting levels,\n * and return its attributes.\n *\n * @param {Array} blocks A list of blocks.\n *\n * @return {Object | undefined} The Post Content block.\n */\nfunction getPostContentAttributes( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn blocks[ i ].attributes;\n\t\t}\n\t\tif ( blocks[ i ].innerBlocks.length ) {\n\t\t\tconst nestedPostContent = getPostContentAttributes(\n\t\t\t\tblocks[ i ].innerBlocks\n\t\t\t);\n\n\t\t\tif ( nestedPostContent ) {\n\t\t\t\treturn nestedPostContent;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkForPostContentAtRootLevel( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction VisualEditor( {\n\t// Ideally as we unify post and site editors, we won't need these props.\n\tautoFocus,\n\tstyles,\n\tdisableIframe = false,\n\tiframeProps,\n\tcontentRef,\n\tclassName,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst isTabletViewport = useViewportMatch( 'medium', '<' );\n\tconst {\n\t\trenderingMode,\n\t\tpostContentAttributes,\n\t\teditedPostTemplate = {},\n\t\twrapperBlockName,\n\t\twrapperUniqueId,\n\t\tdeviceType,\n\t\tisFocusedEntity,\n\t\tisDesignPostType,\n\t\tpostType,\n\t\tisPreview,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentTemplateId,\n\t\t\tgetEditorSettings,\n\t\t\tgetRenderingMode,\n\t\t\tgetDeviceType,\n\t\t} = select( editorStore );\n\t\tconst { getPostType, getEditedEntityRecord } = select( coreStore );\n\t\tconst postTypeSlug = getCurrentPostType();\n\t\tconst _renderingMode = getRenderingMode();\n\t\tlet _wrapperBlockName;\n\n\t\tif ( postTypeSlug === PATTERN_POST_TYPE ) {\n\t\t\t_wrapperBlockName = 'core/block';\n\t\t} else if ( _renderingMode === 'post-only' ) {\n\t\t\t_wrapperBlockName = 'core/post-content';\n\t\t}\n\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst supportsTemplateMode = editorSettings.supportsTemplateMode;\n\t\tconst postTypeObject = getPostType( postTypeSlug );\n\t\tconst currentTemplateId = getCurrentTemplateId();\n\t\tconst template = currentTemplateId\n\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\tcurrentTemplateId\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\trenderingMode: _renderingMode,\n\t\t\tpostContentAttributes: editorSettings.postContentAttributes,\n\t\t\tisDesignPostType: DESIGN_POST_TYPES.includes( postTypeSlug ),\n\t\t\t// Post template fetch returns a 404 on classic themes, which\n\t\t\t// messes with e2e tests, so check it's a block theme first.\n\t\t\teditedPostTemplate:\n\t\t\t\tpostTypeObject?.viewable && supportsTemplateMode\n\t\t\t\t\t? template\n\t\t\t\t\t: undefined,\n\t\t\twrapperBlockName: _wrapperBlockName,\n\t\t\twrapperUniqueId: getCurrentPostId(),\n\t\t\tdeviceType: getDeviceType(),\n\t\t\tisFocusedEntity: !! editorSettings.onNavigateToPreviousEntityRecord,\n\t\t\tpostType: postTypeSlug,\n\t\t\tisPreview: editorSettings.__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\tconst { isCleanNewPost } = useSelect( editorStore );\n\tconst {\n\t\thasRootPaddingAwareAlignments,\n\t\tthemeHasDisabledLayoutStyles,\n\t\tthemeSupportsLayout,\n\t\tisZoomedOut,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings, isZoomOut: _isZoomOut } = unlock(\n\t\t\tselect( blockEditorStore )\n\t\t);\n\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tthemeHasDisabledLayoutStyles: _settings.disableLayoutStyles,\n\t\t\tthemeSupportsLayout: _settings.supportsLayout,\n\t\t\thasRootPaddingAwareAlignments:\n\t\t\t\t_settings.__experimentalFeatures?.useRootPaddingAwareAlignments,\n\t\t\tisZoomedOut: _isZoomOut(),\n\t\t};\n\t}, [] );\n\n\tconst deviceStyles = useResizeCanvas( deviceType );\n\tconst [ globalLayoutSettings ] = useSettings( 'layout' );\n\n\t// fallbackLayout is used if there is no Post Content,\n\t// and for Post Title.\n\tconst fallbackLayout = useMemo( () => {\n\t\tif ( renderingMode !== 'post-only' || isDesignPostType ) {\n\t\t\treturn { type: 'default' };\n\t\t}\n\n\t\tif ( themeSupportsLayout ) {\n\t\t\t// We need to ensure support for wide and full alignments,\n\t\t\t// so we add the constrained type.\n\t\t\treturn { ...globalLayoutSettings, type: 'constrained' };\n\t\t}\n\t\t// Set default layout for classic themes so all alignments are supported.\n\t\treturn { type: 'default' };\n\t}, [\n\t\trenderingMode,\n\t\tthemeSupportsLayout,\n\t\tglobalLayoutSettings,\n\t\tisDesignPostType,\n\t] );\n\n\tconst newestPostContentAttributes = useMemo( () => {\n\t\tif (\n\t\t\t! editedPostTemplate?.content &&\n\t\t\t! editedPostTemplate?.blocks &&\n\t\t\tpostContentAttributes\n\t\t) {\n\t\t\treturn postContentAttributes;\n\t\t}\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn getPostContentAttributes( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn getPostContentAttributes( parse( parseableContent ) ) || {};\n\t}, [\n\t\teditedPostTemplate?.content,\n\t\teditedPostTemplate?.blocks,\n\t\tpostContentAttributes,\n\t] );\n\n\tconst hasPostContentAtRootLevel = useMemo( () => {\n\t\tif ( ! editedPostTemplate?.content && ! editedPostTemplate?.blocks ) {\n\t\t\treturn false;\n\t\t}\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn checkForPostContentAtRootLevel( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn (\n\t\t\tcheckForPostContentAtRootLevel( parse( parseableContent ) ) || false\n\t\t);\n\t}, [ editedPostTemplate?.content, editedPostTemplate?.blocks ] );\n\n\tconst { layout = {}, align = '' } = newestPostContentAttributes || {};\n\n\tconst postContentLayoutClasses = useLayoutClasses(\n\t\tnewestPostContentAttributes,\n\t\t'core/post-content'\n\t);\n\n\tconst blockListLayoutClass = clsx(\n\t\t{\n\t\t\t'is-layout-flow': ! themeSupportsLayout,\n\t\t},\n\t\tthemeSupportsLayout && postContentLayoutClasses,\n\t\talign && `align${ align }`\n\t);\n\n\tconst postContentLayoutStyles = useLayoutStyles(\n\t\tnewestPostContentAttributes,\n\t\t'core/post-content',\n\t\t'.block-editor-block-list__layout.is-root-container'\n\t);\n\n\t// Update type for blocks using legacy layouts.\n\tconst postContentLayout = useMemo( () => {\n\t\treturn layout &&\n\t\t\t( layout?.type === 'constrained' ||\n\t\t\t\tlayout?.inherit ||\n\t\t\t\tlayout?.contentSize ||\n\t\t\t\tlayout?.wideSize )\n\t\t\t? { ...globalLayoutSettings, ...layout, type: 'constrained' }\n\t\t\t: { ...globalLayoutSettings, ...layout, type: 'default' };\n\t}, [\n\t\tlayout?.type,\n\t\tlayout?.inherit,\n\t\tlayout?.contentSize,\n\t\tlayout?.wideSize,\n\t\tglobalLayoutSettings,\n\t] );\n\n\t// If there is a Post Content block we use its layout for the block list;\n\t// if not, this must be a classic theme, in which case we use the fallback layout.\n\tconst blockListLayout = postContentAttributes\n\t\t? postContentLayout\n\t\t: fallbackLayout;\n\n\tconst postEditorLayout =\n\t\tblockListLayout?.type === 'default' && ! hasPostContentAtRootLevel\n\t\t\t? fallbackLayout\n\t\t\t: blockListLayout;\n\tconst observeTypingRef = useTypingObserver();\n\tconst titleRef = useRef();\n\tuseEffect( () => {\n\t\tif ( ! autoFocus || ! isCleanNewPost() ) {\n\t\t\treturn;\n\t\t}\n\t\ttitleRef?.current?.focus();\n\t}, [ autoFocus, isCleanNewPost ] );\n\n\t// Add some styles for alignwide/alignfull Post Content and its children.\n\tconst alignCSS = `.is-root-container.alignwide { max-width: var(--wp--style--global--wide-size); margin-left: auto; margin-right: auto;}\n\t\t.is-root-container.alignwide:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: var(--wp--style--global--wide-size);}\n\t\t.is-root-container.alignfull { max-width: none; margin-left: auto; margin-right: auto;}\n\t\t.is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;\n\n\tconst localRef = useRef();\n\tconst typewriterRef = useTypewriter();\n\tcontentRef = useMergeRefs( [\n\t\tlocalRef,\n\t\tcontentRef,\n\t\trenderingMode === 'post-only' ? typewriterRef : null,\n\t\tuseFlashEditableBlocks( {\n\t\t\tisEnabled: renderingMode === 'template-locked',\n\t\t} ),\n\t\tuseSelectNearestEditableBlock( {\n\t\t\tisEnabled: renderingMode === 'template-locked',\n\t\t} ),\n\t\tuseZoomOutModeExit(),\n\t] );\n\n\tconst zoomOutProps =\n\t\tisZoomedOut && ! isTabletViewport\n\t\t\t? {\n\t\t\t\t\tscale: 'default',\n\t\t\t\t\tframeSize: '40px',\n\t\t\t }\n\t\t\t: {};\n\n\tconst forceFullHeight = postType === NAVIGATION_POST_TYPE;\n\tconst enableResizing =\n\t\t[\n\t\t\tNAVIGATION_POST_TYPE,\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\tPATTERN_POST_TYPE,\n\t\t].includes( postType ) &&\n\t\t// Disable in previews / view mode.\n\t\t! isPreview &&\n\t\t// Disable resizing in mobile viewport.\n\t\t! isMobileViewport &&\n\t\t// Dsiable resizing in zoomed-out mode.\n\t\t! isZoomedOut;\n\tconst shouldIframe =\n\t\t! disableIframe || [ 'Tablet', 'Mobile' ].includes( deviceType );\n\n\tconst iframeStyles = useMemo( () => {\n\t\treturn [\n\t\t\t...( styles ?? [] ),\n\t\t\t{\n\t\t\t\tcss: `.is-root-container{display:flow-root;${\n\t\t\t\t\t// Some themes will have `min-height: 100vh` for the root container,\n\t\t\t\t\t// which isn't a requirement in auto resize mode.\n\t\t\t\t\tenableResizing ? 'min-height:0!important;' : ''\n\t\t\t\t}}`,\n\t\t\t},\n\t\t];\n\t}, [ styles, enableResizing ] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'editor-visual-editor',\n\t\t\t\t// this class is here for backward compatibility reasons.\n\t\t\t\t'edit-post-visual-editor',\n\t\t\t\tclassName,\n\t\t\t\t{\n\t\t\t\t\t'has-padding': isFocusedEntity || enableResizing,\n\t\t\t\t\t'is-resizable': enableResizing,\n\t\t\t\t\t'is-iframed': shouldIframe,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t<ResizableEditor\n\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\theight={\n\t\t\t\t\tsizes.height && ! forceFullHeight ? sizes.height : '100%'\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<BlockCanvas\n\t\t\t\t\tshouldIframe={ shouldIframe }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\tstyles={ iframeStyles }\n\t\t\t\t\theight=\"100%\"\n\t\t\t\t\tiframeProps={ {\n\t\t\t\t\t\t...iframeProps,\n\t\t\t\t\t\t...zoomOutProps,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t\t\t\t...deviceStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ themeSupportsLayout &&\n\t\t\t\t\t\t! themeHasDisabledLayoutStyles &&\n\t\t\t\t\t\trenderingMode === 'post-only' &&\n\t\t\t\t\t\t! isDesignPostType && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\tselector=\".editor-visual-editor__post-title-wrapper\"\n\t\t\t\t\t\t\t\t\tlayout={ fallbackLayout }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\tselector=\".block-editor-block-list__layout.is-root-container\"\n\t\t\t\t\t\t\t\t\tlayout={ postEditorLayout }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ align && <LayoutStyle css={ alignCSS } /> }\n\t\t\t\t\t\t\t\t{ postContentLayoutStyles && (\n\t\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\t\tlayout={ postContentLayout }\n\t\t\t\t\t\t\t\t\t\tcss={ postContentLayoutStyles }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t{ renderingMode === 'post-only' && ! isDesignPostType && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'editor-visual-editor__post-title-wrapper',\n\t\t\t\t\t\t\t\t// The following class is only here for backward comapatibility\n\t\t\t\t\t\t\t\t// some themes might be using it to style the post title.\n\t\t\t\t\t\t\t\t'edit-post-visual-editor__post-title-wrapper',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-global-padding':\n\t\t\t\t\t\t\t\t\t\thasRootPaddingAwareAlignments,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tcontentEditable={ false }\n\t\t\t\t\t\t\tref={ observeTypingRef }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t// This is using inline styles\n\t\t\t\t\t\t\t\t// so it's applied for both iframed and non iframed editors.\n\t\t\t\t\t\t\t\tmarginTop: '4rem',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PostTitle ref={ titleRef } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<RecursionProvider\n\t\t\t\t\t\tblockName={ wrapperBlockName }\n\t\t\t\t\t\tuniqueId={ wrapperUniqueId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'is-' + deviceType.toLowerCase() + '-preview',\n\t\t\t\t\t\t\t\trenderingMode !== 'post-only' ||\n\t\t\t\t\t\t\t\t\tisDesignPostType\n\t\t\t\t\t\t\t\t\t? 'wp-site-blocks'\n\t\t\t\t\t\t\t\t\t: `${ blockListLayoutClass } wp-block-post-content` // Ensure root level blocks receive default/flow blockGap styling rules.\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlayout={ blockListLayout }\n\t\t\t\t\t\t\tdropZoneElement={\n\t\t\t\t\t\t\t\t// When iframed, pass in the html element of the iframe to\n\t\t\t\t\t\t\t\t// ensure the drop zone extends to the edges of the iframe.\n\t\t\t\t\t\t\t\tdisableIframe\n\t\t\t\t\t\t\t\t\t? localRef.current\n\t\t\t\t\t\t\t\t\t: localRef.current?.parentNode\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__unstableDisableDropZone={\n\t\t\t\t\t\t\t\t// In template preview mode, disable drop zones at the root of the template.\n\t\t\t\t\t\t\t\trenderingMode === 'template-locked'\n\t\t\t\t\t\t\t\t\t? true\n\t\t\t\t\t\t\t\t\t: false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ renderingMode === 'template-locked' && (\n\t\t\t\t\t\t\t<EditTemplateBlocksNotification\n\t\t\t\t\t\t\t\tcontentRef={ localRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</RecursionProvider>\n\t\t\t\t\t{\n\t\t\t\t\t\t// Avoid resize listeners when not needed,\n\t\t\t\t\t\t// these will trigger unnecessary re-renders\n\t\t\t\t\t\t// when animating the iframe width.\n\t\t\t\t\t\tenableResizing && resizeObserver\n\t\t\t\t\t}\n\t\t\t\t</BlockCanvas>\n\t\t\t</ResizableEditor>\n\t\t</div>\n\t);\n}\n\nexport default VisualEditor;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_blockEditor","_element","_data","_blocks","_coreData","_compose","_postTitle","_store","_lockUnlock","_editTemplateBlocksNotification","_resizableEditor","_useSelectNearestEditableBlock","_constants","_jsxRuntime","LayoutStyle","useLayoutClasses","useLayoutStyles","ExperimentalBlockCanvas","BlockCanvas","useFlashEditableBlocks","useZoomOutModeExit","unlock","blockEditorPrivateApis","DESIGN_POST_TYPES","PATTERN_POST_TYPE","TEMPLATE_POST_TYPE","NAVIGATION_POST_TYPE","TEMPLATE_PART_POST_TYPE","getPostContentAttributes","blocks","i","length","name","attributes","innerBlocks","nestedPostContent","checkForPostContentAtRootLevel","VisualEditor","autoFocus","styles","disableIframe","iframeProps","contentRef","className","resizeObserver","sizes","useResizeObserver","isMobileViewport","useViewportMatch","isTabletViewport","renderingMode","postContentAttributes","editedPostTemplate","wrapperBlockName","wrapperUniqueId","deviceType","isFocusedEntity","isDesignPostType","postType","isPreview","useSelect","select","getCurrentPostId","getCurrentPostType","getCurrentTemplateId","getEditorSettings","getRenderingMode","getDeviceType","editorStore","getPostType","getEditedEntityRecord","coreStore","postTypeSlug","_renderingMode","_wrapperBlockName","editorSettings","supportsTemplateMode","postTypeObject","currentTemplateId","template","undefined","includes","viewable","onNavigateToPreviousEntityRecord","__unstableIsPreviewMode","isCleanNewPost","hasRootPaddingAwareAlignments","themeHasDisabledLayoutStyles","themeSupportsLayout","isZoomedOut","getSettings","isZoomOut","_isZoomOut","blockEditorStore","_settings","disableLayoutStyles","supportsLayout","__experimentalFeatures","useRootPaddingAwareAlignments","deviceStyles","useResizeCanvas","globalLayoutSettings","useSettings","fallbackLayout","useMemo","type","newestPostContentAttributes","content","parseableContent","parse","hasPostContentAtRootLevel","layout","align","postContentLayoutClasses","blockListLayoutClass","clsx","postContentLayoutStyles","postContentLayout","inherit","contentSize","wideSize","blockListLayout","postEditorLayout","observeTypingRef","useTypingObserver","titleRef","useRef","useEffect","current","focus","alignCSS","localRef","typewriterRef","useTypewriter","useMergeRefs","isEnabled","useSelectNearestEditableBlock","zoomOutProps","scale","frameSize","forceFullHeight","enableResizing","shouldIframe","iframeStyles","css","jsx","children","default","height","jsxs","style","Fragment","selector","contentEditable","ref","marginTop","RecursionProvider","blockName","uniqueId","BlockList","toLowerCase","dropZoneElement","parentNode","__unstableDisableDropZone","_default","exports"],"sources":["@wordpress/editor/src/components/visual-editor/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockList,\n\tstore as blockEditorStore,\n\t__unstableUseTypewriter as useTypewriter,\n\t__unstableUseTypingObserver as useTypingObserver,\n\tuseSettings,\n\tRecursionProvider,\n\tprivateApis as blockEditorPrivateApis,\n\t__experimentalUseResizeCanvas as useResizeCanvas,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { parse } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tuseMergeRefs,\n\tuseViewportMatch,\n\tuseResizeObserver,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostTitle from '../post-title';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport EditTemplateBlocksNotification from './edit-template-blocks-notification';\nimport ResizableEditor from '../resizable-editor';\nimport useSelectNearestEditableBlock from './use-select-nearest-editable-block';\nimport {\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../store/constants';\n\nconst {\n\tLayoutStyle,\n\tuseLayoutClasses,\n\tuseLayoutStyles,\n\tExperimentalBlockCanvas: BlockCanvas,\n\tuseFlashEditableBlocks,\n\tuseZoomOutModeExit,\n} = unlock( blockEditorPrivateApis );\n\n/**\n * These post types have a special editor where they don't allow you to fill the title\n * and they don't apply the layout styles.\n */\nconst DESIGN_POST_TYPES = [\n\tPATTERN_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n];\n\n/**\n * Given an array of nested blocks, find the first Post Content\n * block inside it, recursing through any nesting levels,\n * and return its attributes.\n *\n * @param {Array} blocks A list of blocks.\n *\n * @return {Object | undefined} The Post Content block.\n */\nfunction getPostContentAttributes( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn blocks[ i ].attributes;\n\t\t}\n\t\tif ( blocks[ i ].innerBlocks.length ) {\n\t\t\tconst nestedPostContent = getPostContentAttributes(\n\t\t\t\tblocks[ i ].innerBlocks\n\t\t\t);\n\n\t\t\tif ( nestedPostContent ) {\n\t\t\t\treturn nestedPostContent;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkForPostContentAtRootLevel( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction VisualEditor( {\n\t// Ideally as we unify post and site editors, we won't need these props.\n\tautoFocus,\n\tstyles,\n\tdisableIframe = false,\n\tiframeProps,\n\tcontentRef,\n\tclassName,\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst isTabletViewport = useViewportMatch( 'medium', '<' );\n\tconst {\n\t\trenderingMode,\n\t\tpostContentAttributes,\n\t\teditedPostTemplate = {},\n\t\twrapperBlockName,\n\t\twrapperUniqueId,\n\t\tdeviceType,\n\t\tisFocusedEntity,\n\t\tisDesignPostType,\n\t\tpostType,\n\t\tisPreview,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentTemplateId,\n\t\t\tgetEditorSettings,\n\t\t\tgetRenderingMode,\n\t\t\tgetDeviceType,\n\t\t} = select( editorStore );\n\t\tconst { getPostType, getEditedEntityRecord } = select( coreStore );\n\t\tconst postTypeSlug = getCurrentPostType();\n\t\tconst _renderingMode = getRenderingMode();\n\t\tlet _wrapperBlockName;\n\n\t\tif ( postTypeSlug === PATTERN_POST_TYPE ) {\n\t\t\t_wrapperBlockName = 'core/block';\n\t\t} else if ( _renderingMode === 'post-only' ) {\n\t\t\t_wrapperBlockName = 'core/post-content';\n\t\t}\n\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst supportsTemplateMode = editorSettings.supportsTemplateMode;\n\t\tconst postTypeObject = getPostType( postTypeSlug );\n\t\tconst currentTemplateId = getCurrentTemplateId();\n\t\tconst template = currentTemplateId\n\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\tcurrentTemplateId\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\trenderingMode: _renderingMode,\n\t\t\tpostContentAttributes: editorSettings.postContentAttributes,\n\t\t\tisDesignPostType: DESIGN_POST_TYPES.includes( postTypeSlug ),\n\t\t\t// Post template fetch returns a 404 on classic themes, which\n\t\t\t// messes with e2e tests, so check it's a block theme first.\n\t\t\teditedPostTemplate:\n\t\t\t\tpostTypeObject?.viewable && supportsTemplateMode\n\t\t\t\t\t? template\n\t\t\t\t\t: undefined,\n\t\t\twrapperBlockName: _wrapperBlockName,\n\t\t\twrapperUniqueId: getCurrentPostId(),\n\t\t\tdeviceType: getDeviceType(),\n\t\t\tisFocusedEntity: !! editorSettings.onNavigateToPreviousEntityRecord,\n\t\t\tpostType: postTypeSlug,\n\t\t\tisPreview: editorSettings.__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\tconst { isCleanNewPost } = useSelect( editorStore );\n\tconst {\n\t\thasRootPaddingAwareAlignments,\n\t\tthemeHasDisabledLayoutStyles,\n\t\tthemeSupportsLayout,\n\t\tisZoomedOut,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings, isZoomOut: _isZoomOut } = unlock(\n\t\t\tselect( blockEditorStore )\n\t\t);\n\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tthemeHasDisabledLayoutStyles: _settings.disableLayoutStyles,\n\t\t\tthemeSupportsLayout: _settings.supportsLayout,\n\t\t\thasRootPaddingAwareAlignments:\n\t\t\t\t_settings.__experimentalFeatures?.useRootPaddingAwareAlignments,\n\t\t\tisZoomedOut: _isZoomOut(),\n\t\t};\n\t}, [] );\n\n\tconst deviceStyles = useResizeCanvas( deviceType );\n\tconst [ globalLayoutSettings ] = useSettings( 'layout' );\n\n\t// fallbackLayout is used if there is no Post Content,\n\t// and for Post Title.\n\tconst fallbackLayout = useMemo( () => {\n\t\tif ( renderingMode !== 'post-only' || isDesignPostType ) {\n\t\t\treturn { type: 'default' };\n\t\t}\n\n\t\tif ( themeSupportsLayout ) {\n\t\t\t// We need to ensure support for wide and full alignments,\n\t\t\t// so we add the constrained type.\n\t\t\treturn { ...globalLayoutSettings, type: 'constrained' };\n\t\t}\n\t\t// Set default layout for classic themes so all alignments are supported.\n\t\treturn { type: 'default' };\n\t}, [\n\t\trenderingMode,\n\t\tthemeSupportsLayout,\n\t\tglobalLayoutSettings,\n\t\tisDesignPostType,\n\t] );\n\n\tconst newestPostContentAttributes = useMemo( () => {\n\t\tif (\n\t\t\t! editedPostTemplate?.content &&\n\t\t\t! editedPostTemplate?.blocks &&\n\t\t\tpostContentAttributes\n\t\t) {\n\t\t\treturn postContentAttributes;\n\t\t}\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn getPostContentAttributes( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn getPostContentAttributes( parse( parseableContent ) ) || {};\n\t}, [\n\t\teditedPostTemplate?.content,\n\t\teditedPostTemplate?.blocks,\n\t\tpostContentAttributes,\n\t] );\n\n\tconst hasPostContentAtRootLevel = useMemo( () => {\n\t\tif ( ! editedPostTemplate?.content && ! editedPostTemplate?.blocks ) {\n\t\t\treturn false;\n\t\t}\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn checkForPostContentAtRootLevel( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn (\n\t\t\tcheckForPostContentAtRootLevel( parse( parseableContent ) ) || false\n\t\t);\n\t}, [ editedPostTemplate?.content, editedPostTemplate?.blocks ] );\n\n\tconst { layout = {}, align = '' } = newestPostContentAttributes || {};\n\n\tconst postContentLayoutClasses = useLayoutClasses(\n\t\tnewestPostContentAttributes,\n\t\t'core/post-content'\n\t);\n\n\tconst blockListLayoutClass = clsx(\n\t\t{\n\t\t\t'is-layout-flow': ! themeSupportsLayout,\n\t\t},\n\t\tthemeSupportsLayout && postContentLayoutClasses,\n\t\talign && `align${ align }`\n\t);\n\n\tconst postContentLayoutStyles = useLayoutStyles(\n\t\tnewestPostContentAttributes,\n\t\t'core/post-content',\n\t\t'.block-editor-block-list__layout.is-root-container'\n\t);\n\n\t// Update type for blocks using legacy layouts.\n\tconst postContentLayout = useMemo( () => {\n\t\treturn layout &&\n\t\t\t( layout?.type === 'constrained' ||\n\t\t\t\tlayout?.inherit ||\n\t\t\t\tlayout?.contentSize ||\n\t\t\t\tlayout?.wideSize )\n\t\t\t? { ...globalLayoutSettings, ...layout, type: 'constrained' }\n\t\t\t: { ...globalLayoutSettings, ...layout, type: 'default' };\n\t}, [\n\t\tlayout?.type,\n\t\tlayout?.inherit,\n\t\tlayout?.contentSize,\n\t\tlayout?.wideSize,\n\t\tglobalLayoutSettings,\n\t] );\n\n\t// If there is a Post Content block we use its layout for the block list;\n\t// if not, this must be a classic theme, in which case we use the fallback layout.\n\tconst blockListLayout = postContentAttributes\n\t\t? postContentLayout\n\t\t: fallbackLayout;\n\n\tconst postEditorLayout =\n\t\tblockListLayout?.type === 'default' && ! hasPostContentAtRootLevel\n\t\t\t? fallbackLayout\n\t\t\t: blockListLayout;\n\tconst observeTypingRef = useTypingObserver();\n\tconst titleRef = useRef();\n\tuseEffect( () => {\n\t\tif ( ! autoFocus || ! isCleanNewPost() ) {\n\t\t\treturn;\n\t\t}\n\t\ttitleRef?.current?.focus();\n\t}, [ autoFocus, isCleanNewPost ] );\n\n\t// Add some styles for alignwide/alignfull Post Content and its children.\n\tconst alignCSS = `.is-root-container.alignwide { max-width: var(--wp--style--global--wide-size); margin-left: auto; margin-right: auto;}\n\t\t.is-root-container.alignwide:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: var(--wp--style--global--wide-size);}\n\t\t.is-root-container.alignfull { max-width: none; margin-left: auto; margin-right: auto;}\n\t\t.is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;\n\n\tconst localRef = useRef();\n\tconst typewriterRef = useTypewriter();\n\tcontentRef = useMergeRefs( [\n\t\tlocalRef,\n\t\tcontentRef,\n\t\trenderingMode === 'post-only' ? typewriterRef : null,\n\t\tuseFlashEditableBlocks( {\n\t\t\tisEnabled: renderingMode === 'template-locked',\n\t\t} ),\n\t\tuseSelectNearestEditableBlock( {\n\t\t\tisEnabled: renderingMode === 'template-locked',\n\t\t} ),\n\t\tuseZoomOutModeExit(),\n\t] );\n\n\tconst zoomOutProps =\n\t\tisZoomedOut && ! isTabletViewport\n\t\t\t? {\n\t\t\t\t\tscale: 'default',\n\t\t\t\t\tframeSize: '40px',\n\t\t\t }\n\t\t\t: {};\n\n\tconst forceFullHeight = postType === NAVIGATION_POST_TYPE;\n\tconst enableResizing =\n\t\t[\n\t\t\tNAVIGATION_POST_TYPE,\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\tPATTERN_POST_TYPE,\n\t\t].includes( postType ) &&\n\t\t// Disable in previews / view mode.\n\t\t! isPreview &&\n\t\t// Disable resizing in mobile viewport.\n\t\t! isMobileViewport &&\n\t\t// Dsiable resizing in zoomed-out mode.\n\t\t! isZoomedOut;\n\tconst shouldIframe =\n\t\t! disableIframe || [ 'Tablet', 'Mobile' ].includes( deviceType );\n\n\tconst iframeStyles = useMemo( () => {\n\t\treturn [\n\t\t\t...( styles ?? [] ),\n\t\t\t{\n\t\t\t\t// Ensures margins of children are contained so that the body background paints behind them.\n\t\t\t\t// Otherwise, the background of html (when zoomed out) would show there and appear broken. It’s\n\t\t\t\t// important mostly for post-only views yet conceivably an issue in templated views too.\n\t\t\t\tcss: `:where(.block-editor-iframe__body){display:flow-root;}.is-root-container{display:flow-root;${\n\t\t\t\t\t// Some themes will have `min-height: 100vh` for the root container,\n\t\t\t\t\t// which isn't a requirement in auto resize mode.\n\t\t\t\t\tenableResizing ? 'min-height:0!important;' : ''\n\t\t\t\t}}`,\n\t\t\t},\n\t\t];\n\t}, [ styles, enableResizing ] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'editor-visual-editor',\n\t\t\t\t// this class is here for backward compatibility reasons.\n\t\t\t\t'edit-post-visual-editor',\n\t\t\t\tclassName,\n\t\t\t\t{\n\t\t\t\t\t'has-padding': isFocusedEntity || enableResizing,\n\t\t\t\t\t'is-resizable': enableResizing,\n\t\t\t\t\t'is-iframed': shouldIframe,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t<ResizableEditor\n\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\theight={\n\t\t\t\t\tsizes.height && ! forceFullHeight ? sizes.height : '100%'\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<BlockCanvas\n\t\t\t\t\tshouldIframe={ shouldIframe }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\tstyles={ iframeStyles }\n\t\t\t\t\theight=\"100%\"\n\t\t\t\t\tiframeProps={ {\n\t\t\t\t\t\t...iframeProps,\n\t\t\t\t\t\t...zoomOutProps,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t\t\t\t...deviceStyles,\n\t\t\t\t\t\t},\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ themeSupportsLayout &&\n\t\t\t\t\t\t! themeHasDisabledLayoutStyles &&\n\t\t\t\t\t\trenderingMode === 'post-only' &&\n\t\t\t\t\t\t! isDesignPostType && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\tselector=\".editor-visual-editor__post-title-wrapper\"\n\t\t\t\t\t\t\t\t\tlayout={ fallbackLayout }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\tselector=\".block-editor-block-list__layout.is-root-container\"\n\t\t\t\t\t\t\t\t\tlayout={ postEditorLayout }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ align && <LayoutStyle css={ alignCSS } /> }\n\t\t\t\t\t\t\t\t{ postContentLayoutStyles && (\n\t\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\t\tlayout={ postContentLayout }\n\t\t\t\t\t\t\t\t\t\tcss={ postContentLayoutStyles }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t{ renderingMode === 'post-only' && ! isDesignPostType && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'editor-visual-editor__post-title-wrapper',\n\t\t\t\t\t\t\t\t// The following class is only here for backward comapatibility\n\t\t\t\t\t\t\t\t// some themes might be using it to style the post title.\n\t\t\t\t\t\t\t\t'edit-post-visual-editor__post-title-wrapper',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-global-padding':\n\t\t\t\t\t\t\t\t\t\thasRootPaddingAwareAlignments,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tcontentEditable={ false }\n\t\t\t\t\t\t\tref={ observeTypingRef }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t// This is using inline styles\n\t\t\t\t\t\t\t\t// so it's applied for both iframed and non iframed editors.\n\t\t\t\t\t\t\t\tmarginTop: '4rem',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PostTitle ref={ titleRef } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<RecursionProvider\n\t\t\t\t\t\tblockName={ wrapperBlockName }\n\t\t\t\t\t\tuniqueId={ wrapperUniqueId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'is-' + deviceType.toLowerCase() + '-preview',\n\t\t\t\t\t\t\t\trenderingMode !== 'post-only' ||\n\t\t\t\t\t\t\t\t\tisDesignPostType\n\t\t\t\t\t\t\t\t\t? 'wp-site-blocks'\n\t\t\t\t\t\t\t\t\t: `${ blockListLayoutClass } wp-block-post-content` // Ensure root level blocks receive default/flow blockGap styling rules.\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlayout={ blockListLayout }\n\t\t\t\t\t\t\tdropZoneElement={\n\t\t\t\t\t\t\t\t// When iframed, pass in the html element of the iframe to\n\t\t\t\t\t\t\t\t// ensure the drop zone extends to the edges of the iframe.\n\t\t\t\t\t\t\t\tdisableIframe\n\t\t\t\t\t\t\t\t\t? localRef.current\n\t\t\t\t\t\t\t\t\t: localRef.current?.parentNode\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__unstableDisableDropZone={\n\t\t\t\t\t\t\t\t// In template preview mode, disable drop zones at the root of the template.\n\t\t\t\t\t\t\t\trenderingMode === 'template-locked'\n\t\t\t\t\t\t\t\t\t? true\n\t\t\t\t\t\t\t\t\t: false\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ renderingMode === 'template-locked' && (\n\t\t\t\t\t\t\t<EditTemplateBlocksNotification\n\t\t\t\t\t\t\t\tcontentRef={ localRef }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</RecursionProvider>\n\t\t\t\t\t{\n\t\t\t\t\t\t// Avoid resize listeners when not needed,\n\t\t\t\t\t\t// these will trigger unnecessary re-renders\n\t\t\t\t\t\t// when animating the iframe width.\n\t\t\t\t\t\tenableResizing && resizeObserver\n\t\t\t\t\t}\n\t\t\t\t</BlockCanvas>\n\t\t\t</ResizableEditor>\n\t\t</div>\n\t);\n}\n\nexport default VisualEditor;\n"],"mappings":"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","ignoreList":[]}
@@ -40,13 +40,14 @@ function ContentOnlySettingsMenuItems({
40
40
  record = select(coreStore).getEntityRecord('postType', 'wp_block', getBlockAttributes(patternParent).ref);
41
41
  } else {
42
42
  const {
43
- getCurrentTemplateId
43
+ getCurrentTemplateId,
44
+ getRenderingMode
44
45
  } = select(editorStore);
45
46
  const templateId = getCurrentTemplateId();
46
47
  const {
47
48
  getContentLockingParent
48
49
  } = unlock(select(blockEditorStore));
49
- if (!getContentLockingParent(clientId) && templateId) {
50
+ if (getRenderingMode() === 'template-locked' && !getContentLockingParent(clientId) && templateId) {
50
51
  record = select(coreStore).getEntityRecord('postType', 'wp_template', templateId);
51
52
  }
52
53
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BlockSettingsMenuControls","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuFirstItem","store","blockEditorStore","useBlockDisplayInformation","coreStore","__experimentalText","Text","MenuItem","useSelect","useDispatch","__","_x","editorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ContentOnlySettingsMenuItems","clientId","onClose","entity","onNavigateToEntityRecord","canEditTemplates","select","getBlockEditingMode","getBlockParentsByBlockName","getSettings","getBlockAttributes","contentOnly","patternParent","record","getEntityRecord","ref","getCurrentTemplateId","templateId","getContentLockingParent","_canEditTemplates","canUser","kind","name","TemplateLockContentOnlyMenuItems","isPattern","type","helpText","children","onClick","postId","id","postType","disabled","variant","as","className","contentLockingParent","blockDisplayInformation","blockEditorActions","title","modifyContentLockBlock","ContentOnlySettingsMenu","selectedClientIds","length"],"sources":["@wordpress/editor/src/components/block-settings-menu/content-only-settings-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockSettingsMenuControls,\n\t__unstableBlockSettingsMenuFirstItem as BlockSettingsMenuFirstItem,\n\tstore as blockEditorStore,\n\tuseBlockDisplayInformation,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalText as Text, MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction ContentOnlySettingsMenuItems( { clientId, onClose } ) {\n\tconst { entity, onNavigateToEntityRecord, canEditTemplates } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst contentOnly =\n\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly';\n\t\t\tif ( ! contentOnly ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst patternParent = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/block',\n\t\t\t\ttrue\n\t\t\t)[ 0 ];\n\n\t\t\tlet record;\n\t\t\tif ( patternParent ) {\n\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tgetBlockAttributes( patternParent ).ref\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst { getCurrentTemplateId } = select( editorStore );\n\t\t\t\tconst templateId = getCurrentTemplateId();\n\t\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\n\t\t\t\tif ( ! getContentLockingParent( clientId ) && templateId ) {\n\t\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_template',\n\t\t\t\t\t\ttemplateId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst _canEditTemplates = select( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\treturn {\n\t\t\t\tcanEditTemplates: _canEditTemplates,\n\t\t\t\tentity: record,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! entity ) {\n\t\treturn (\n\t\t\t<TemplateLockContentOnlyMenuItems\n\t\t\t\tclientId={ clientId }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst isPattern = entity.type === 'wp_block';\n\tlet helpText = isPattern\n\t\t? __(\n\t\t\t\t'Edit the pattern to move, delete, or make further changes to this block.'\n\t\t )\n\t\t: __(\n\t\t\t\t'Edit the template to move, delete, or make further changes to this block.'\n\t\t );\n\n\tif ( ! canEditTemplates ) {\n\t\thelpText = __(\n\t\t\t'Only users with permissions to edit the template can move or delete this block'\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: entity.id,\n\t\t\t\t\t\t\tpostType: entity.type,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! canEditTemplates }\n\t\t\t\t>\n\t\t\t\t\t{ isPattern ? __( 'Edit pattern' ) : __( 'Edit template' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ helpText }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nfunction TemplateLockContentOnlyMenuItems( { clientId, onClose } ) {\n\tconst { contentLockingParent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontentLockingParent: getContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst blockDisplayInformation =\n\t\tuseBlockDisplayInformation( contentLockingParent );\n\tconst blockEditorActions = useDispatch( blockEditorStore );\n\tif ( ! blockDisplayInformation?.title ) {\n\t\treturn null;\n\t}\n\n\tconst { modifyContentLockBlock } = unlock( blockEditorActions );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tmodifyContentLockBlock( contentLockingParent );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ _x( 'Unlock', 'Unlock content locked blocks' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ __(\n\t\t\t\t\t'Temporarily unlock the parent block to edit, delete or make further changes to this block.'\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nexport default function ContentOnlySettingsMenu() {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) =>\n\t\t\t\tselectedClientIds.length === 1 && (\n\t\t\t\t\t<ContentOnlySettingsMenuItems\n\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BlockSettingsMenuControls","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuFirstItem","store","blockEditorStore","useBlockDisplayInformation","coreStore","__experimentalText","Text","MenuItem","useSelect","useDispatch","__","_x","editorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ContentOnlySettingsMenuItems","clientId","onClose","entity","onNavigateToEntityRecord","canEditTemplates","select","getBlockEditingMode","getBlockParentsByBlockName","getSettings","getBlockAttributes","contentOnly","patternParent","record","getEntityRecord","ref","getCurrentTemplateId","getRenderingMode","templateId","getContentLockingParent","_canEditTemplates","canUser","kind","name","TemplateLockContentOnlyMenuItems","isPattern","type","helpText","children","onClick","postId","id","postType","disabled","variant","as","className","contentLockingParent","blockDisplayInformation","blockEditorActions","title","modifyContentLockBlock","ContentOnlySettingsMenu","selectedClientIds","length"],"sources":["@wordpress/editor/src/components/block-settings-menu/content-only-settings-menu.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBlockSettingsMenuControls,\n\t__unstableBlockSettingsMenuFirstItem as BlockSettingsMenuFirstItem,\n\tstore as blockEditorStore,\n\tuseBlockDisplayInformation,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalText as Text, MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction ContentOnlySettingsMenuItems( { clientId, onClose } ) {\n\tconst { entity, onNavigateToEntityRecord, canEditTemplates } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst contentOnly =\n\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly';\n\t\t\tif ( ! contentOnly ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst patternParent = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/block',\n\t\t\t\ttrue\n\t\t\t)[ 0 ];\n\n\t\t\tlet record;\n\t\t\tif ( patternParent ) {\n\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tgetBlockAttributes( patternParent ).ref\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst { getCurrentTemplateId, getRenderingMode } =\n\t\t\t\t\tselect( editorStore );\n\t\t\t\tconst templateId = getCurrentTemplateId();\n\t\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\t\tselect( blockEditorStore )\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\tgetRenderingMode() === 'template-locked' &&\n\t\t\t\t\t! getContentLockingParent( clientId ) &&\n\t\t\t\t\ttemplateId\n\t\t\t\t) {\n\t\t\t\t\trecord = select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_template',\n\t\t\t\t\t\ttemplateId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst _canEditTemplates = select( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\treturn {\n\t\t\t\tcanEditTemplates: _canEditTemplates,\n\t\t\t\tentity: record,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! entity ) {\n\t\treturn (\n\t\t\t<TemplateLockContentOnlyMenuItems\n\t\t\t\tclientId={ clientId }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst isPattern = entity.type === 'wp_block';\n\tlet helpText = isPattern\n\t\t? __(\n\t\t\t\t'Edit the pattern to move, delete, or make further changes to this block.'\n\t\t )\n\t\t: __(\n\t\t\t\t'Edit the template to move, delete, or make further changes to this block.'\n\t\t );\n\n\tif ( ! canEditTemplates ) {\n\t\thelpText = __(\n\t\t\t'Only users with permissions to edit the template can move or delete this block'\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: entity.id,\n\t\t\t\t\t\t\tpostType: entity.type,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdisabled={ ! canEditTemplates }\n\t\t\t\t>\n\t\t\t\t\t{ isPattern ? __( 'Edit pattern' ) : __( 'Edit template' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ helpText }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nfunction TemplateLockContentOnlyMenuItems( { clientId, onClose } ) {\n\tconst { contentLockingParent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getContentLockingParent } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontentLockingParent: getContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst blockDisplayInformation =\n\t\tuseBlockDisplayInformation( contentLockingParent );\n\tconst blockEditorActions = useDispatch( blockEditorStore );\n\tif ( ! blockDisplayInformation?.title ) {\n\t\treturn null;\n\t}\n\n\tconst { modifyContentLockBlock } = unlock( blockEditorActions );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockSettingsMenuFirstItem>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tmodifyContentLockBlock( contentLockingParent );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ _x( 'Unlock', 'Unlock content locked blocks' ) }\n\t\t\t\t</MenuItem>\n\t\t\t</BlockSettingsMenuFirstItem>\n\t\t\t<Text\n\t\t\t\tvariant=\"muted\"\n\t\t\t\tas=\"p\"\n\t\t\t\tclassName=\"editor-content-only-settings-menu__description\"\n\t\t\t>\n\t\t\t\t{ __(\n\t\t\t\t\t'Temporarily unlock the parent block to edit, delete or make further changes to this block.'\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t</>\n\t);\n}\n\nexport default function ContentOnlySettingsMenu() {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) =>\n\t\t\t\tselectedClientIds.length === 1 && (\n\t\t\t\t\t<ContentOnlySettingsMenuItems\n\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -58,12 +58,22 @@ function useGlobalStylesUserConfig() {
58
58
  } = select(coreStore);
59
59
  const _globalStylesId = select(coreStore).__experimentalGetCurrentGlobalStylesId();
60
60
  let record;
61
- const userCanEditGlobalStyles = canUser('update', {
61
+
62
+ // We want the global styles ID request to finish before triggering
63
+ // the OPTIONS request for user capabilities, otherwise it will
64
+ // fetch `/wp/v2/global-styles` instead of
65
+ // `/wp/v2/global-styles/{id}`!
66
+ // Please adjust the preloaded requests if this changes!
67
+ const userCanEditGlobalStyles = _globalStylesId ? canUser('update', {
62
68
  kind: 'root',
63
69
  name: 'globalStyles',
64
70
  id: _globalStylesId
65
- });
66
- if (_globalStylesId) {
71
+ }) : null;
72
+ if (_globalStylesId &&
73
+ // We want the OPTIONS request for user capabilities to finish
74
+ // before getting the records, otherwise we'll fetch both!
75
+ typeof userCanEditGlobalStyles === 'boolean') {
76
+ // Please adjust the preloaded requests if this changes!
67
77
  if (userCanEditGlobalStyles) {
68
78
  record = getEditedEntityRecord('root', 'globalStyles', _globalStylesId);
69
79
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["deepmerge","isPlainObject","privateApis","blockEditorPrivateApis","store","coreStore","useSelect","useDispatch","useMemo","useCallback","unlock","jsx","_jsx","GlobalStylesContext","cleanEmptyObject","mergeBaseAndUserConfigs","base","user","isMergeableObject","customMerge","key","baseConfig","userConfig","undefined","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","_links","select","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","canUser","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","userCanEditGlobalStyles","kind","name","id","context","hasResolved","editEntityRecord","config","setConfig","callbackOrObject","options","_record$styles","_record$settings","_record$_links","currentConfig","updatedConfig","useGlobalStylesBaseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","setUserConfig","isBaseConfigReady","mergedConfig","merged","GlobalStylesProvider","children","Provider","value"],"sources":["@wordpress/editor/src/components/global-styles-provider/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t/*\n\t\t * We only pass as arrays the presets,\n\t\t * in which case we want the new array of values\n\t\t * to override the old array (no merging).\n\t\t */\n\t\tisMergeableObject: isPlainObject,\n\t\t/*\n\t\t * Exceptions to the above rule.\n\t\t * Background images should be replaced, not merged,\n\t\t * as they themselves are specific object definitions for the style.\n\t\t */\n\t\tcustomMerge: ( key ) => {\n\t\t\tif ( key === 'backgroundImage' ) {\n\t\t\t\treturn ( baseConfig, userConfig ) => userConfig;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\n\t\t\tlet record;\n\t\t\tconst userCanEditGlobalStyles = canUser( 'update', {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'globalStyles',\n\t\t\t\tid: _globalStylesId,\n\t\t\t} );\n\n\t\t\tif ( _globalStylesId ) {\n\t\t\t\tif ( userCanEditGlobalStyles ) {\n\t\t\t\t\trecord = getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\trecord = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t{ context: 'view' }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( _globalStylesId ) {\n\t\t\t\t\thasResolved = userCanEditGlobalStyles\n\t\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t ] )\n\t\t\t\t\t\t: hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t\t\t{ context: 'view' },\n\t\t\t\t\t\t ] );\n\t\t\t\t} else {\n\t\t\t\t\thasResolved = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\t_links: record?._links,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\t_links: _links ?? {},\n\t\t};\n\t}, [ settings, styles, _links ] );\n\n\tconst setConfig = useCallback(\n\t\t/**\n\t\t * Set the global styles config.\n\t\t * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.\n\t\t * Otherwise, overwrite the current config with the incoming object.\n\t\t * @param {Object} options Options for editEntityRecord Core selector.\n\t\t */\n\t\t( callbackOrObject, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\t_links: record?._links ?? {},\n\t\t\t};\n\n\t\t\tconst updatedConfig =\n\t\t\t\ttypeof callbackOrObject === 'function'\n\t\t\t\t\t? callbackOrObject( currentConfig )\n\t\t\t\t\t: callbackOrObject;\n\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\t_links: cleanEmptyObject( updatedConfig._links ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId, editEntityRecord, getEditedEntityRecord ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).__experimentalGetCurrentThemeBaseGlobalStyles(),\n\t\t[]\n\t);\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nexport function useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["deepmerge","isPlainObject","privateApis","blockEditorPrivateApis","store","coreStore","useSelect","useDispatch","useMemo","useCallback","unlock","jsx","_jsx","GlobalStylesContext","cleanEmptyObject","mergeBaseAndUserConfigs","base","user","isMergeableObject","customMerge","key","baseConfig","userConfig","undefined","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","_links","select","getEntityRecord","getEditedEntityRecord","hasFinishedResolution","canUser","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","userCanEditGlobalStyles","kind","name","id","context","hasResolved","editEntityRecord","config","setConfig","callbackOrObject","options","_record$styles","_record$settings","_record$_links","currentConfig","updatedConfig","useGlobalStylesBaseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","setUserConfig","isBaseConfigReady","mergedConfig","merged","GlobalStylesProvider","children","Provider","value"],"sources":["@wordpress/editor/src/components/global-styles-provider/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t/*\n\t\t * We only pass as arrays the presets,\n\t\t * in which case we want the new array of values\n\t\t * to override the old array (no merging).\n\t\t */\n\t\tisMergeableObject: isPlainObject,\n\t\t/*\n\t\t * Exceptions to the above rule.\n\t\t * Background images should be replaced, not merged,\n\t\t * as they themselves are specific object definitions for the style.\n\t\t */\n\t\tcustomMerge: ( key ) => {\n\t\t\tif ( key === 'backgroundImage' ) {\n\t\t\t\treturn ( baseConfig, userConfig ) => userConfig;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\thasFinishedResolution,\n\t\t\t\tcanUser,\n\t\t\t} = select( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\n\t\t\tlet record;\n\n\t\t\t// We want the global styles ID request to finish before triggering\n\t\t\t// the OPTIONS request for user capabilities, otherwise it will\n\t\t\t// fetch `/wp/v2/global-styles` instead of\n\t\t\t// `/wp/v2/global-styles/{id}`!\n\t\t\t// Please adjust the preloaded requests if this changes!\n\t\t\tconst userCanEditGlobalStyles = _globalStylesId\n\t\t\t\t? canUser( 'update', {\n\t\t\t\t\t\tkind: 'root',\n\t\t\t\t\t\tname: 'globalStyles',\n\t\t\t\t\t\tid: _globalStylesId,\n\t\t\t\t } )\n\t\t\t\t: null;\n\n\t\t\tif (\n\t\t\t\t_globalStylesId &&\n\t\t\t\t// We want the OPTIONS request for user capabilities to finish\n\t\t\t\t// before getting the records, otherwise we'll fetch both!\n\t\t\t\ttypeof userCanEditGlobalStyles === 'boolean'\n\t\t\t) {\n\t\t\t\t// Please adjust the preloaded requests if this changes!\n\t\t\t\tif ( userCanEditGlobalStyles ) {\n\t\t\t\t\trecord = getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\trecord = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t{ context: 'view' }\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( _globalStylesId ) {\n\t\t\t\t\thasResolved = userCanEditGlobalStyles\n\t\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t ] )\n\t\t\t\t\t\t: hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t\t\t\t{ context: 'view' },\n\t\t\t\t\t\t ] );\n\t\t\t\t} else {\n\t\t\t\t\thasResolved = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\t_links: record?._links,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\t_links: _links ?? {},\n\t\t};\n\t}, [ settings, styles, _links ] );\n\n\tconst setConfig = useCallback(\n\t\t/**\n\t\t * Set the global styles config.\n\t\t * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.\n\t\t * Otherwise, overwrite the current config with the incoming object.\n\t\t * @param {Object} options Options for editEntityRecord Core selector.\n\t\t */\n\t\t( callbackOrObject, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\t_links: record?._links ?? {},\n\t\t\t};\n\n\t\t\tconst updatedConfig =\n\t\t\t\ttypeof callbackOrObject === 'function'\n\t\t\t\t\t? callbackOrObject( currentConfig )\n\t\t\t\t\t: callbackOrObject;\n\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\t_links: cleanEmptyObject( updatedConfig._links ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId, editEntityRecord, getEditedEntityRecord ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).__experimentalGetCurrentThemeBaseGlobalStyles(),\n\t\t[]\n\t);\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nexport function useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -269,7 +269,10 @@ function VisualEditor({
269
269
  const shouldIframe = !disableIframe || ['Tablet', 'Mobile'].includes(deviceType);
270
270
  const iframeStyles = useMemo(() => {
271
271
  return [...(styles !== null && styles !== void 0 ? styles : []), {
272
- css: `.is-root-container{display:flow-root;${
272
+ // Ensures margins of children are contained so that the body background paints behind them.
273
+ // Otherwise, the background of html (when zoomed out) would show there and appear broken. It’s
274
+ // important mostly for post-only views yet conceivably an issue in templated views too.
275
+ css: `:where(.block-editor-iframe__body){display:flow-root;}.is-root-container{display:flow-root;${
273
276
  // Some themes will have `min-height: 100vh` for the root container,
274
277
  // which isn't a requirement in auto resize mode.
275
278
  enableResizing ? 'min-height:0!important;' : ''}}`