@wordpress/editor 14.8.11 → 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.
@@ -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":[]}
@@ -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":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/global-styles-provider/index.js"],"names":[],"mappings":"AAuBA,mEAoBC;AAuID;;;;;;4BAjDa,WAAS,MAAM,YAEf,MAAM;;;;;;;4BAFN,WAAS,MAAM,YAEf,MAAM;EA8ElB;AAED;;uCAWC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/global-styles-provider/index.js"],"names":[],"mappings":"AAuBA,mEAoBC;AAqJD;;;;;;4BAjDa,WAAS,MAAM,YAEf,MAAM;;;;;;;4BAFN,WAAS,MAAM,YAEf,MAAM;EA8ElB;AAED;;uCAWC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/editor",
3
- "version": "14.8.11",
3
+ "version": "14.8.12",
4
4
  "description": "Enhanced block editor for WordPress posts.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -35,19 +35,19 @@
35
35
  "@wordpress/a11y": "^4.8.2",
36
36
  "@wordpress/api-fetch": "^7.8.2",
37
37
  "@wordpress/blob": "^4.8.1",
38
- "@wordpress/block-editor": "^14.3.9",
38
+ "@wordpress/block-editor": "^14.3.10",
39
39
  "@wordpress/blocks": "^13.8.5",
40
40
  "@wordpress/commands": "^1.8.8",
41
41
  "@wordpress/components": "^28.8.8",
42
42
  "@wordpress/compose": "^7.8.3",
43
- "@wordpress/core-data": "^7.8.9",
43
+ "@wordpress/core-data": "^7.8.10",
44
44
  "@wordpress/data": "^10.8.3",
45
45
  "@wordpress/dataviews": "^4.4.8",
46
46
  "@wordpress/date": "^5.8.2",
47
47
  "@wordpress/deprecated": "^4.8.2",
48
48
  "@wordpress/dom": "^4.8.2",
49
49
  "@wordpress/element": "^6.8.1",
50
- "@wordpress/fields": "^0.0.10",
50
+ "@wordpress/fields": "^0.0.11",
51
51
  "@wordpress/hooks": "^4.8.2",
52
52
  "@wordpress/html-entities": "^4.8.1",
53
53
  "@wordpress/i18n": "^5.8.2",
@@ -57,11 +57,11 @@
57
57
  "@wordpress/keycodes": "^4.8.2",
58
58
  "@wordpress/media-utils": "^5.8.2",
59
59
  "@wordpress/notices": "^5.8.3",
60
- "@wordpress/patterns": "^2.8.9",
60
+ "@wordpress/patterns": "^2.8.10",
61
61
  "@wordpress/plugins": "^7.8.8",
62
62
  "@wordpress/preferences": "^4.8.8",
63
63
  "@wordpress/private-apis": "^1.8.1",
64
- "@wordpress/reusable-blocks": "^5.8.9",
64
+ "@wordpress/reusable-blocks": "^5.8.10",
65
65
  "@wordpress/rich-text": "^7.8.3",
66
66
  "@wordpress/server-side-render": "^5.8.8",
67
67
  "@wordpress/url": "^4.8.1",
@@ -86,5 +86,5 @@
86
86
  "publishConfig": {
87
87
  "access": "public"
88
88
  },
89
- "gitHead": "b78063a69a8154bed32c2217ffbaf911852cffb5"
89
+ "gitHead": "53f68ecef17c6dd7c6c436f368413a1569a2aec6"
90
90
  }
@@ -56,13 +56,27 @@ function useGlobalStylesUserConfig() {
56
56
  select( coreStore ).__experimentalGetCurrentGlobalStylesId();
57
57
 
58
58
  let record;
59
- const userCanEditGlobalStyles = canUser( 'update', {
60
- kind: 'root',
61
- name: 'globalStyles',
62
- id: _globalStylesId,
63
- } );
64
59
 
65
- if ( _globalStylesId ) {
60
+ // We want the global styles ID request to finish before triggering
61
+ // the OPTIONS request for user capabilities, otherwise it will
62
+ // fetch `/wp/v2/global-styles` instead of
63
+ // `/wp/v2/global-styles/{id}`!
64
+ // Please adjust the preloaded requests if this changes!
65
+ const userCanEditGlobalStyles = _globalStylesId
66
+ ? canUser( 'update', {
67
+ kind: 'root',
68
+ name: 'globalStyles',
69
+ id: _globalStylesId,
70
+ } )
71
+ : null;
72
+
73
+ if (
74
+ _globalStylesId &&
75
+ // We want the OPTIONS request for user capabilities to finish
76
+ // before getting the records, otherwise we'll fetch both!
77
+ typeof userCanEditGlobalStyles === 'boolean'
78
+ ) {
79
+ // Please adjust the preloaded requests if this changes!
66
80
  if ( userCanEditGlobalStyles ) {
67
81
  record = getEditedEntityRecord(
68
82
  'root',