@wordpress/edit-widgets 6.2.0 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 6.4.0 (2024-07-24)
6
+
7
+ ## 6.3.0 (2024-07-10)
8
+
5
9
  ## 6.2.0 (2024-06-26)
6
10
 
7
11
  ## 6.1.0 (2024-06-15)
@@ -39,30 +39,37 @@ const {
39
39
  const {
40
40
  BlockKeyboardShortcuts
41
41
  } = (0, _lockUnlock.unlock)(_blockLibrary.privateApis);
42
+ const EMPTY_ARRAY = [];
42
43
  function WidgetAreasBlockEditorProvider({
43
44
  blockEditorSettings,
44
45
  children,
45
46
  ...props
46
47
  }) {
47
- const mediaPermissions = (0, _coreData.useResourcePermissions)('media');
48
48
  const isLargeViewport = (0, _compose.useViewportMatch)('medium');
49
49
  const {
50
+ hasUploadPermissions,
50
51
  reusableBlocks,
51
52
  isFixedToolbarActive,
52
53
  keepCaretInsideBlock,
53
54
  pageOnFront,
54
55
  pageForPosts
55
56
  } = (0, _data.useSelect)(select => {
57
+ var _canUser;
56
58
  const {
57
59
  canUser,
58
60
  getEntityRecord,
59
61
  getEntityRecords
60
62
  } = select(_coreData.store);
61
- const siteSettings = canUser('read', 'settings') ? getEntityRecord('root', 'site') : undefined;
63
+ const siteSettings = canUser('read', {
64
+ kind: 'root',
65
+ name: 'site'
66
+ }) ? getEntityRecord('root', 'site') : undefined;
62
67
  return {
63
- widgetAreas: select(_store.store).getWidgetAreas(),
64
- widgets: select(_store.store).getWidgets(),
65
- reusableBlocks: _constants.ALLOW_REUSABLE_BLOCKS ? getEntityRecords('postType', 'wp_block') : [],
68
+ hasUploadPermissions: (_canUser = canUser('create', {
69
+ kind: 'root',
70
+ name: 'media'
71
+ })) !== null && _canUser !== void 0 ? _canUser : true,
72
+ reusableBlocks: _constants.ALLOW_REUSABLE_BLOCKS ? getEntityRecords('postType', 'wp_block') : EMPTY_ARRAY,
66
73
  isFixedToolbarActive: !!select(_preferences.store).get('core/edit-widgets', 'fixedToolbar'),
67
74
  keepCaretInsideBlock: !!select(_preferences.store).get('core/edit-widgets', 'keepCaretInsideBlock'),
68
75
  pageOnFront: siteSettings?.page_on_front,
@@ -74,7 +81,7 @@ function WidgetAreasBlockEditorProvider({
74
81
  } = (0, _data.useDispatch)(_store.store);
75
82
  const settings = (0, _element.useMemo)(() => {
76
83
  let mediaUploadBlockEditor;
77
- if (mediaPermissions.canCreate) {
84
+ if (hasUploadPermissions) {
78
85
  mediaUploadBlockEditor = ({
79
86
  onError,
80
87
  ...argumentsObject
@@ -99,7 +106,7 @@ function WidgetAreasBlockEditorProvider({
99
106
  pageOnFront,
100
107
  pageForPosts
101
108
  };
102
- }, [blockEditorSettings, isFixedToolbarActive, isLargeViewport, keepCaretInsideBlock, mediaPermissions.canCreate, reusableBlocks, setIsInserterOpened, pageOnFront, pageForPosts]);
109
+ }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, isLargeViewport, keepCaretInsideBlock, reusableBlocks, setIsInserterOpened, pageOnFront, pageForPosts]);
103
110
  const widgetAreaId = (0, _useLastSelectedWidgetArea.default)();
104
111
  const [blocks, onInput, onChange] = (0, _coreData.useEntityBlockEditor)(_utils.KIND, _utils.POST_TYPE, {
105
112
  id: (0, _utils.buildWidgetAreasPostId)()
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_compose","_mediaUtils","_data","_coreData","_element","_blockEditor","_patterns","_preferences","_blockLibrary","_keyboardShortcuts","_interopRequireDefault","_utils","_useLastSelectedWidgetArea","_store","_constants","_lockUnlock","_jsxRuntime","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PatternsMenuItems","editPatternsPrivateApis","BlockKeyboardShortcuts","blockLibraryPrivateApis","WidgetAreasBlockEditorProvider","blockEditorSettings","children","props","mediaPermissions","useResourcePermissions","isLargeViewport","useViewportMatch","reusableBlocks","isFixedToolbarActive","keepCaretInsideBlock","pageOnFront","pageForPosts","useSelect","select","canUser","getEntityRecord","getEntityRecords","coreStore","siteSettings","undefined","widgetAreas","editWidgetsStore","getWidgetAreas","widgets","getWidgets","ALLOW_REUSABLE_BLOCKS","preferencesStore","get","page_on_front","page_for_posts","setIsInserterOpened","useDispatch","settings","useMemo","mediaUploadBlockEditor","canCreate","onError","argumentsObject","uploadMedia","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalReusableBlocks","hasFixedToolbar","mediaUpload","templateLock","__experimentalSetIsInserterOpened","widgetAreaId","useLastSelectedWidgetArea","blocks","onInput","onChange","useEntityBlockEditor","KIND","POST_TYPE","id","buildWidgetAreasPostId","jsxs","SlotFillProvider","jsx","default","Register","value","useSubRegistry","rootClientId"],"sources":["@wordpress/edit-widgets/src/components/widget-areas-block-editor-provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { privateApis as blockLibraryPrivateApis } from '@wordpress/block-library';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../../store/utils';\nimport useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';\nimport { store as editWidgetsStore } from '../../store';\nimport { ALLOW_REUSABLE_BLOCKS } from '../../constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\nconst { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst mediaPermissions = useResourcePermissions( 'media' );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\treusableBlocks,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEntityRecords } =\n\t\t\tselect( coreStore );\n\t\tconst siteSettings = canUser( 'read', 'settings' )\n\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\treturn {\n\t\t\twidgetAreas: select( editWidgetsStore ).getWidgetAreas(),\n\t\t\twidgets: select( editWidgetsStore ).getWidgets(),\n\t\t\treusableBlocks: ALLOW_REUSABLE_BLOCKS\n\t\t\t\t? getEntityRecords( 'postType', 'wp_block' )\n\t\t\t\t: [],\n\t\t\tisFixedToolbarActive: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t};\n\t}, [] );\n\tconst { setIsInserterOpened } = useDispatch( editWidgetsStore );\n\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( mediaPermissions.canCreate ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\thasFixedToolbar: isFixedToolbarActive || ! isLargeViewport,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t};\n\t}, [\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tisLargeViewport,\n\t\tkeepCaretInsideBlock,\n\t\tmediaPermissions.canCreate,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t] );\n\n\tconst widgetAreaId = useLastSelectedWidgetArea();\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\tKIND,\n\t\tPOST_TYPE,\n\t\t{ id: buildWidgetAreasPostId() }\n\t);\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<BlockKeyboardShortcuts />\n\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\tvalue={ blocks }\n\t\t\t\tonInput={ onInput }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tsettings={ settings }\n\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t\t<PatternsMenuItems rootClientId={ widgetAreaId } />\n\t\t\t</ExperimentalBlockEditorProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_compose","_mediaUtils","_data","_coreData","_element","_blockEditor","_patterns","_preferences","_blockLibrary","_keyboardShortcuts","_interopRequireDefault","_utils","_useLastSelectedWidgetArea","_store","_constants","_lockUnlock","_jsxRuntime","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PatternsMenuItems","editPatternsPrivateApis","BlockKeyboardShortcuts","blockLibraryPrivateApis","EMPTY_ARRAY","WidgetAreasBlockEditorProvider","blockEditorSettings","children","props","isLargeViewport","useViewportMatch","hasUploadPermissions","reusableBlocks","isFixedToolbarActive","keepCaretInsideBlock","pageOnFront","pageForPosts","useSelect","select","_canUser","canUser","getEntityRecord","getEntityRecords","coreStore","siteSettings","kind","name","undefined","ALLOW_REUSABLE_BLOCKS","preferencesStore","get","page_on_front","page_for_posts","setIsInserterOpened","useDispatch","editWidgetsStore","settings","useMemo","mediaUploadBlockEditor","onError","argumentsObject","uploadMedia","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalReusableBlocks","hasFixedToolbar","mediaUpload","templateLock","__experimentalSetIsInserterOpened","widgetAreaId","useLastSelectedWidgetArea","blocks","onInput","onChange","useEntityBlockEditor","KIND","POST_TYPE","id","buildWidgetAreasPostId","jsxs","SlotFillProvider","jsx","default","Register","value","useSubRegistry","rootClientId"],"sources":["@wordpress/edit-widgets/src/components/widget-areas-block-editor-provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { privateApis as blockLibraryPrivateApis } from '@wordpress/block-library';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../../store/utils';\nimport useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';\nimport { store as editWidgetsStore } from '../../store';\nimport { ALLOW_REUSABLE_BLOCKS } from '../../constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\nconst { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\thasUploadPermissions,\n\t\treusableBlocks,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEntityRecords } =\n\t\t\tselect( coreStore );\n\t\tconst siteSettings = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\treturn {\n\t\t\thasUploadPermissions:\n\t\t\t\tcanUser( 'create', {\n\t\t\t\t\tkind: 'root',\n\t\t\t\t\tname: 'media',\n\t\t\t\t} ) ?? true,\n\t\t\treusableBlocks: ALLOW_REUSABLE_BLOCKS\n\t\t\t\t? getEntityRecords( 'postType', 'wp_block' )\n\t\t\t\t: EMPTY_ARRAY,\n\t\t\tisFixedToolbarActive: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t};\n\t}, [] );\n\tconst { setIsInserterOpened } = useDispatch( editWidgetsStore );\n\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( hasUploadPermissions ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\thasFixedToolbar: isFixedToolbarActive || ! isLargeViewport,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tisLargeViewport,\n\t\tkeepCaretInsideBlock,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t] );\n\n\tconst widgetAreaId = useLastSelectedWidgetArea();\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\tKIND,\n\t\tPOST_TYPE,\n\t\t{ id: buildWidgetAreasPostId() }\n\t);\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<BlockKeyboardShortcuts />\n\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\tvalue={ blocks }\n\t\t\t\tonInput={ onInput }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tsettings={ settings }\n\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t\t<PatternsMenuItems rootClientId={ widgetAreaId } />\n\t\t\t</ExperimentalBlockEditorProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -45,7 +45,7 @@ const withMoveToWidgetAreaToolbarItem = (0, _compose.createHigherOrderComponent)
45
45
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
46
46
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(BlockEdit, {
47
47
  ...props
48
- }), isMoveToWidgetAreaVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockControls, {
48
+ }, "edit"), isMoveToWidgetAreaVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockControls, {
49
49
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_widgets.MoveToWidgetArea, {
50
50
  widgetAreas: widgetAreas,
51
51
  currentWidgetAreaId: currentWidgetAreaId,
@@ -1 +1 @@
1
- {"version":3,"names":["_blockEditor","require","_compose","_data","_hooks","_widgets","_store","_jsxRuntime","withMoveToWidgetAreaToolbarItem","createHigherOrderComponent","BlockEdit","props","clientId","name","blockName","widgetAreas","currentWidgetAreaId","canInsertBlockInWidgetArea","useSelect","select","selectors","editWidgetsStore","widgetAreaBlock","getParentWidgetAreaBlock","getWidgetAreas","attributes","id","moveBlockToWidgetArea","useDispatch","hasMultipleWidgetAreas","length","isMoveToWidgetAreaVisible","jsxs","Fragment","children","jsx","BlockControls","MoveToWidgetArea","onSelect","widgetAreaId","addFilter"],"sources":["@wordpress/edit-widgets/src/filters/move-to-widget-area.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { BlockControls } from '@wordpress/block-editor';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { MoveToWidgetArea } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../store';\n\nconst withMoveToWidgetAreaToolbarItem = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { clientId, name: blockName } = props;\n\t\tconst { widgetAreas, currentWidgetAreaId, canInsertBlockInWidgetArea } =\n\t\t\tuseSelect(\n\t\t\t\t( select ) => {\n\t\t\t\t\t// Component won't display for a widget area, so don't run selectors.\n\t\t\t\t\tif ( blockName === 'core/widget-area' ) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst selectors = select( editWidgetsStore );\n\n\t\t\t\t\tconst widgetAreaBlock =\n\t\t\t\t\t\tselectors.getParentWidgetAreaBlock( clientId );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidgetAreas: selectors.getWidgetAreas(),\n\t\t\t\t\t\tcurrentWidgetAreaId: widgetAreaBlock?.attributes?.id,\n\t\t\t\t\t\tcanInsertBlockInWidgetArea:\n\t\t\t\t\t\t\tselectors.canInsertBlockInWidgetArea( blockName ),\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ clientId, blockName ]\n\t\t\t);\n\n\t\tconst { moveBlockToWidgetArea } = useDispatch( editWidgetsStore );\n\t\tconst hasMultipleWidgetAreas = widgetAreas?.length > 1;\n\t\tconst isMoveToWidgetAreaVisible =\n\t\t\tblockName !== 'core/widget-area' &&\n\t\t\thasMultipleWidgetAreas &&\n\t\t\tcanInsertBlockInWidgetArea;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ isMoveToWidgetAreaVisible && (\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<MoveToWidgetArea\n\t\t\t\t\t\t\twidgetAreas={ widgetAreas }\n\t\t\t\t\t\t\tcurrentWidgetAreaId={ currentWidgetAreaId }\n\t\t\t\t\t\t\tonSelect={ ( widgetAreaId ) => {\n\t\t\t\t\t\t\t\tmoveBlockToWidgetArea(\n\t\t\t\t\t\t\t\t\tprops.clientId,\n\t\t\t\t\t\t\t\t\twidgetAreaId\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</BlockControls>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\t'withMoveToWidgetAreaToolbarItem'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-widgets/block-edit',\n\twithMoveToWidgetAreaToolbarItem\n);\n"],"mappings":";;AAIA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AAAqD,IAAAM,WAAA,GAAAN,OAAA;AAbrD;AACA;AACA;;AAQA;AACA;AACA;;AAGA,MAAMO,+BAA+B,GAAG,IAAAC,mCAA0B,EAC/DC,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAM;IAAEC,QAAQ;IAAEC,IAAI,EAAEC;EAAU,CAAC,GAAGH,KAAK;EAC3C,MAAM;IAAEI,WAAW;IAAEC,mBAAmB;IAAEC;EAA2B,CAAC,GACrE,IAAAC,eAAS,EACNC,MAAM,IAAM;IACb;IACA,IAAKL,SAAS,KAAK,kBAAkB,EAAG;MACvC,OAAO,CAAC,CAAC;IACV;IAEA,MAAMM,SAAS,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IAE5C,MAAMC,eAAe,GACpBF,SAAS,CAACG,wBAAwB,CAAEX,QAAS,CAAC;IAE/C,OAAO;MACNG,WAAW,EAAEK,SAAS,CAACI,cAAc,CAAC,CAAC;MACvCR,mBAAmB,EAAEM,eAAe,EAAEG,UAAU,EAAEC,EAAE;MACpDT,0BAA0B,EACzBG,SAAS,CAACH,0BAA0B,CAAEH,SAAU;IAClD,CAAC;EACF,CAAC,EACD,CAAEF,QAAQ,EAAEE,SAAS,CACtB,CAAC;EAEF,MAAM;IAAEa;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEP,YAAiB,CAAC;EACjE,MAAMQ,sBAAsB,GAAGd,WAAW,EAAEe,MAAM,GAAG,CAAC;EACtD,MAAMC,yBAAyB,GAC9BjB,SAAS,KAAK,kBAAkB,IAChCe,sBAAsB,IACtBZ,0BAA0B;EAE3B,oBACC,IAAAV,WAAA,CAAAyB,IAAA,EAAAzB,WAAA,CAAA0B,QAAA;IAAAC,QAAA,gBACC,IAAA3B,WAAA,CAAA4B,GAAA,EAACzB,SAAS;MAAA,GAAMC;IAAK,CAAI,CAAC,EACxBoB,yBAAyB,iBAC1B,IAAAxB,WAAA,CAAA4B,GAAA,EAACnC,YAAA,CAAAoC,aAAa;MAAAF,QAAA,eACb,IAAA3B,WAAA,CAAA4B,GAAA,EAAC9B,QAAA,CAAAgC,gBAAgB;QAChBtB,WAAW,EAAGA,WAAa;QAC3BC,mBAAmB,EAAGA,mBAAqB;QAC3CsB,QAAQ,EAAKC,YAAY,IAAM;UAC9BZ,qBAAqB,CACpBhB,KAAK,CAACC,QAAQ,EACd2B,YACD,CAAC;QACF;MAAG,CACH;IAAC,CACY,CACf;EAAA,CACA,CAAC;AAEL,CAAC,EACD,iCACD,CAAC;AAED,IAAAC,gBAAS,EACR,kBAAkB,EAClB,8BAA8B,EAC9BhC,+BACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_blockEditor","require","_compose","_data","_hooks","_widgets","_store","_jsxRuntime","withMoveToWidgetAreaToolbarItem","createHigherOrderComponent","BlockEdit","props","clientId","name","blockName","widgetAreas","currentWidgetAreaId","canInsertBlockInWidgetArea","useSelect","select","selectors","editWidgetsStore","widgetAreaBlock","getParentWidgetAreaBlock","getWidgetAreas","attributes","id","moveBlockToWidgetArea","useDispatch","hasMultipleWidgetAreas","length","isMoveToWidgetAreaVisible","jsxs","Fragment","children","jsx","BlockControls","MoveToWidgetArea","onSelect","widgetAreaId","addFilter"],"sources":["@wordpress/edit-widgets/src/filters/move-to-widget-area.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { BlockControls } from '@wordpress/block-editor';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { MoveToWidgetArea } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../store';\n\nconst withMoveToWidgetAreaToolbarItem = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { clientId, name: blockName } = props;\n\t\tconst { widgetAreas, currentWidgetAreaId, canInsertBlockInWidgetArea } =\n\t\t\tuseSelect(\n\t\t\t\t( select ) => {\n\t\t\t\t\t// Component won't display for a widget area, so don't run selectors.\n\t\t\t\t\tif ( blockName === 'core/widget-area' ) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst selectors = select( editWidgetsStore );\n\n\t\t\t\t\tconst widgetAreaBlock =\n\t\t\t\t\t\tselectors.getParentWidgetAreaBlock( clientId );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidgetAreas: selectors.getWidgetAreas(),\n\t\t\t\t\t\tcurrentWidgetAreaId: widgetAreaBlock?.attributes?.id,\n\t\t\t\t\t\tcanInsertBlockInWidgetArea:\n\t\t\t\t\t\t\tselectors.canInsertBlockInWidgetArea( blockName ),\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ clientId, blockName ]\n\t\t\t);\n\n\t\tconst { moveBlockToWidgetArea } = useDispatch( editWidgetsStore );\n\t\tconst hasMultipleWidgetAreas = widgetAreas?.length > 1;\n\t\tconst isMoveToWidgetAreaVisible =\n\t\t\tblockName !== 'core/widget-area' &&\n\t\t\thasMultipleWidgetAreas &&\n\t\t\tcanInsertBlockInWidgetArea;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t\t{ isMoveToWidgetAreaVisible && (\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<MoveToWidgetArea\n\t\t\t\t\t\t\twidgetAreas={ widgetAreas }\n\t\t\t\t\t\t\tcurrentWidgetAreaId={ currentWidgetAreaId }\n\t\t\t\t\t\t\tonSelect={ ( widgetAreaId ) => {\n\t\t\t\t\t\t\t\tmoveBlockToWidgetArea(\n\t\t\t\t\t\t\t\t\tprops.clientId,\n\t\t\t\t\t\t\t\t\twidgetAreaId\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</BlockControls>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\t'withMoveToWidgetAreaToolbarItem'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-widgets/block-edit',\n\twithMoveToWidgetAreaToolbarItem\n);\n"],"mappings":";;AAIA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AAAqD,IAAAM,WAAA,GAAAN,OAAA;AAbrD;AACA;AACA;;AAQA;AACA;AACA;;AAGA,MAAMO,+BAA+B,GAAG,IAAAC,mCAA0B,EAC/DC,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAM;IAAEC,QAAQ;IAAEC,IAAI,EAAEC;EAAU,CAAC,GAAGH,KAAK;EAC3C,MAAM;IAAEI,WAAW;IAAEC,mBAAmB;IAAEC;EAA2B,CAAC,GACrE,IAAAC,eAAS,EACNC,MAAM,IAAM;IACb;IACA,IAAKL,SAAS,KAAK,kBAAkB,EAAG;MACvC,OAAO,CAAC,CAAC;IACV;IAEA,MAAMM,SAAS,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IAE5C,MAAMC,eAAe,GACpBF,SAAS,CAACG,wBAAwB,CAAEX,QAAS,CAAC;IAE/C,OAAO;MACNG,WAAW,EAAEK,SAAS,CAACI,cAAc,CAAC,CAAC;MACvCR,mBAAmB,EAAEM,eAAe,EAAEG,UAAU,EAAEC,EAAE;MACpDT,0BAA0B,EACzBG,SAAS,CAACH,0BAA0B,CAAEH,SAAU;IAClD,CAAC;EACF,CAAC,EACD,CAAEF,QAAQ,EAAEE,SAAS,CACtB,CAAC;EAEF,MAAM;IAAEa;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEP,YAAiB,CAAC;EACjE,MAAMQ,sBAAsB,GAAGd,WAAW,EAAEe,MAAM,GAAG,CAAC;EACtD,MAAMC,yBAAyB,GAC9BjB,SAAS,KAAK,kBAAkB,IAChCe,sBAAsB,IACtBZ,0BAA0B;EAE3B,oBACC,IAAAV,WAAA,CAAAyB,IAAA,EAAAzB,WAAA,CAAA0B,QAAA;IAAAC,QAAA,gBACC,IAAA3B,WAAA,CAAA4B,GAAA,EAACzB,SAAS;MAAA,GAAiBC;IAAK,GAAjB,MAAqB,CAAC,EACnCoB,yBAAyB,iBAC1B,IAAAxB,WAAA,CAAA4B,GAAA,EAACnC,YAAA,CAAAoC,aAAa;MAAAF,QAAA,eACb,IAAA3B,WAAA,CAAA4B,GAAA,EAAC9B,QAAA,CAAAgC,gBAAgB;QAChBtB,WAAW,EAAGA,WAAa;QAC3BC,mBAAmB,EAAGA,mBAAqB;QAC3CsB,QAAQ,EAAKC,YAAY,IAAM;UAC9BZ,qBAAqB,CACpBhB,KAAK,CAACC,QAAQ,EACd2B,YACD,CAAC;QACF;MAAG,CACH;IAAC,CACY,CACf;EAAA,CACA,CAAC;AAEL,CAAC,EACD,iCACD,CAAC;AAED,IAAAC,gBAAS,EACR,kBAAkB,EAClB,8BAA8B,EAC9BhC,+BACD,CAAC","ignoreList":[]}
@@ -32,16 +32,16 @@ const EMPTY_INSERTION_POINT = {
32
32
  *
33
33
  * @return {Object[]} API List of widgets.
34
34
  */
35
- const getWidgets = exports.getWidgets = (0, _data.createRegistrySelector)(select => () => {
35
+ const getWidgets = exports.getWidgets = (0, _data.createRegistrySelector)(select => (0, _data.createSelector)(() => {
36
+ var _widgets$reduce;
36
37
  const widgets = select(_coreData.store).getEntityRecords('root', 'widget', (0, _utils.buildWidgetsQuery)());
37
- return (
38
- // Key widgets by their ID.
39
- widgets?.reduce((allWidgets, widget) => ({
38
+ return (// Key widgets by their ID.
39
+ (_widgets$reduce = widgets?.reduce((allWidgets, widget) => ({
40
40
  ...allWidgets,
41
41
  [widget.id]: widget
42
- }), {}) || {}
42
+ }), {})) !== null && _widgets$reduce !== void 0 ? _widgets$reduce : {}
43
43
  );
44
- });
44
+ }, () => [select(_coreData.store).getEntityRecords('root', 'widget', (0, _utils.buildWidgetsQuery)())]));
45
45
 
46
46
  /**
47
47
  * Returns API widget data for a particular widget ID.
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_widgets","_coreData","_blockEditor","_utils","_constants","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","getWidgets","exports","createRegistrySelector","select","widgets","coreStore","getEntityRecords","buildWidgetsQuery","reduce","allWidgets","widget","id","getWidget","state","editWidgetsStoreName","getWidgetAreas","query","buildWidgetAreasQuery","KIND","WIDGET_AREA_ENTITY_TYPE","getWidgetAreaForWidgetId","widgetId","widgetAreas","find","widgetArea","post","getEditedEntityRecord","POST_TYPE","buildWidgetAreaPostId","blockWidgetIds","blocks","map","block","getWidgetIdFromBlock","includes","getParentWidgetAreaBlock","clientId","getBlock","getBlockName","getBlockParents","blockEditorStore","blockParents","widgetAreaClientId","parentClientId","getEditedWidgetAreas","ids","filter","hasEditsForEntityRecord","getReferenceWidgetBlocks","referenceWidgetName","results","_widgetArea","name","attributes","push","isSavingWidgetAreas","widgetAreasIds","isSaving","isSavingEntityRecord","widgetIds","Object","keys","getIsWidgetAreaOpen","widgetAreasOpenState","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","canInsertBlockInWidgetArea","blockName","getBlocks","firstWidgetArea","canInsertBlockType","isListViewOpened","listViewPanel"],"sources":["@wordpress/edit-widgets/src/store/selectors.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createRegistrySelector } from '@wordpress/data';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n};\n\n/**\n * Returns all API widgets.\n *\n * @return {Object[]} API List of widgets.\n */\nexport const getWidgets = createRegistrySelector( ( select ) => () => {\n\tconst widgets = select( coreStore ).getEntityRecords(\n\t\t'root',\n\t\t'widget',\n\t\tbuildWidgetsQuery()\n\t);\n\n\treturn (\n\t\t// Key widgets by their ID.\n\t\twidgets?.reduce(\n\t\t\t( allWidgets, widget ) => ( {\n\t\t\t\t...allWidgets,\n\t\t\t\t[ widget.id ]: widget,\n\t\t\t} ),\n\t\t\t{}\n\t\t) || {}\n\t);\n} );\n\n/**\n * Returns API widget data for a particular widget ID.\n *\n * @param {number} id Widget ID.\n *\n * @return {Object} API widget data for a particular widget ID.\n */\nexport const getWidget = createRegistrySelector(\n\t( select ) => ( state, id ) => {\n\t\tconst widgets = select( editWidgetsStoreName ).getWidgets();\n\t\treturn widgets[ id ];\n\t}\n);\n\n/**\n * Returns all API widget areas.\n *\n * @return {Object[]} API List of widget areas.\n */\nexport const getWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst query = buildWidgetAreasQuery();\n\treturn select( coreStore ).getEntityRecords(\n\t\tKIND,\n\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\tquery\n\t);\n} );\n\n/**\n * Returns widgetArea containing a block identify by given widgetId\n *\n * @param {string} widgetId The ID of the widget.\n * @return {Object} Containing widget area.\n */\nexport const getWidgetAreaForWidgetId = createRegistrySelector(\n\t( select ) => ( state, widgetId ) => {\n\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\treturn widgetAreas.find( ( widgetArea ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetArea.id )\n\t\t\t);\n\t\t\tconst blockWidgetIds = post.blocks.map( ( block ) =>\n\t\t\t\tgetWidgetIdFromBlock( block )\n\t\t\t);\n\t\t\treturn blockWidgetIds.includes( widgetId );\n\t\t} );\n\t}\n);\n\n/**\n * Given a child client id, returns the parent widget area block.\n *\n * @param {string} clientId The client id of a block in a widget area.\n *\n * @return {WPBlock} The widget area block.\n */\nexport const getParentWidgetAreaBlock = createRegistrySelector(\n\t( select ) => ( state, clientId ) => {\n\t\tconst { getBlock, getBlockName, getBlockParents } =\n\t\t\tselect( blockEditorStore );\n\t\tconst blockParents = getBlockParents( clientId );\n\t\tconst widgetAreaClientId = blockParents.find(\n\t\t\t( parentClientId ) =>\n\t\t\t\tgetBlockName( parentClientId ) === 'core/widget-area'\n\t\t);\n\t\treturn getBlock( widgetAreaClientId );\n\t}\n);\n\n/**\n * Returns all edited widget area entity records.\n *\n * @return {Object[]} List of edited widget area entity records.\n */\nexport const getEditedWidgetAreas = createRegistrySelector(\n\t( select ) => ( state, ids ) => {\n\t\tlet widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\tif ( ! widgetAreas ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ids ) {\n\t\t\twidgetAreas = widgetAreas.filter( ( { id } ) =>\n\t\t\t\tids.includes( id )\n\t\t\t);\n\t\t}\n\t\treturn widgetAreas\n\t\t\t.filter( ( { id } ) =>\n\t\t\t\tselect( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( id )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.map( ( { id } ) =>\n\t\t\t\tselect( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tid\n\t\t\t\t)\n\t\t\t);\n\t}\n);\n\n/**\n * Returns all blocks representing reference widgets.\n *\n * @param {string} referenceWidgetName Optional. If given, only reference widgets with this name will be returned.\n * @return {Array} List of all blocks representing reference widgets\n */\nexport const getReferenceWidgetBlocks = createRegistrySelector(\n\t( select ) =>\n\t\t( state, referenceWidgetName = null ) => {\n\t\t\tconst results = [];\n\t\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\t\tfor ( const _widgetArea of widgetAreas ) {\n\t\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( _widgetArea.id )\n\t\t\t\t);\n\t\t\t\tfor ( const block of post.blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblock.name === 'core/legacy-widget' &&\n\t\t\t\t\t\t( ! referenceWidgetName ||\n\t\t\t\t\t\t\tblock.attributes?.referenceWidgetName ===\n\t\t\t\t\t\t\t\treferenceWidgetName )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresults.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t}\n);\n\n/**\n * Returns true if any widget area is currently being saved.\n *\n * @return {boolean} True if any widget area is currently being saved. False otherwise.\n */\nexport const isSavingWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst widgetAreasIds = select( editWidgetsStoreName )\n\t\t.getWidgetAreas()\n\t\t?.map( ( { id } ) => id );\n\tif ( ! widgetAreasIds ) {\n\t\treturn false;\n\t}\n\n\tfor ( const id of widgetAreasIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst widgetIds = [\n\t\t...Object.keys( select( editWidgetsStoreName ).getWidgets() ),\n\t\tundefined, // account for new widgets without an ID\n\t];\n\tfor ( const id of widgetIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\t'root',\n\t\t\t'widget',\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n} );\n\n/**\n * Gets whether the widget area is opened.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} clientId The clientId of the widget area.\n *\n * @return {boolean} True if the widget area is open.\n */\nexport const getIsWidgetAreaOpen = ( state, clientId ) => {\n\tconst { widgetAreasOpenState } = state;\n\treturn !! widgetAreasOpenState[ clientId ];\n};\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID and index to insert at.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tif ( typeof state.blockInserterPanel === 'boolean' ) {\n\t\treturn EMPTY_INSERTION_POINT;\n\t}\n\n\treturn state.blockInserterPanel;\n}\n\n/**\n * Returns true if a block can be inserted into a widget area.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} blockName The name of the block being inserted.\n *\n * @return {boolean} True if the block can be inserted in a widget area.\n */\nexport const canInsertBlockInWidgetArea = createRegistrySelector(\n\t( select ) => ( state, blockName ) => {\n\t\t// Widget areas are always top-level blocks, which getBlocks will return.\n\t\tconst widgetAreas = select( blockEditorStore ).getBlocks();\n\n\t\t// Makes an assumption that a block that can be inserted into one\n\t\t// widget area can be inserted into any widget area. Uses the first\n\t\t// widget area for testing whether the block can be inserted.\n\t\tconst [ firstWidgetArea ] = widgetAreas;\n\t\treturn select( blockEditorStore ).canInsertBlockType(\n\t\t\tblockName,\n\t\t\tfirstWidgetArea.clientId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_widgets","_coreData","_blockEditor","_utils","_constants","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","getWidgets","exports","createRegistrySelector","select","createSelector","_widgets$reduce","widgets","coreStore","getEntityRecords","buildWidgetsQuery","reduce","allWidgets","widget","id","getWidget","state","editWidgetsStoreName","getWidgetAreas","query","buildWidgetAreasQuery","KIND","WIDGET_AREA_ENTITY_TYPE","getWidgetAreaForWidgetId","widgetId","widgetAreas","find","widgetArea","post","getEditedEntityRecord","POST_TYPE","buildWidgetAreaPostId","blockWidgetIds","blocks","map","block","getWidgetIdFromBlock","includes","getParentWidgetAreaBlock","clientId","getBlock","getBlockName","getBlockParents","blockEditorStore","blockParents","widgetAreaClientId","parentClientId","getEditedWidgetAreas","ids","filter","hasEditsForEntityRecord","getReferenceWidgetBlocks","referenceWidgetName","results","_widgetArea","name","attributes","push","isSavingWidgetAreas","widgetAreasIds","isSaving","isSavingEntityRecord","widgetIds","Object","keys","getIsWidgetAreaOpen","widgetAreasOpenState","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","canInsertBlockInWidgetArea","blockName","getBlocks","firstWidgetArea","canInsertBlockType","isListViewOpened","listViewPanel"],"sources":["@wordpress/edit-widgets/src/store/selectors.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n};\n\n/**\n * Returns all API widgets.\n *\n * @return {Object[]} API List of widgets.\n */\nexport const getWidgets = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t() => {\n\t\t\tconst widgets = select( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t// Key widgets by their ID.\n\t\t\t\twidgets?.reduce(\n\t\t\t\t\t( allWidgets, widget ) => ( {\n\t\t\t\t\t\t...allWidgets,\n\t\t\t\t\t\t[ widget.id ]: widget,\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t) ?? {}\n\t\t\t);\n\t\t},\n\t\t() => [\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t),\n\t\t]\n\t)\n);\n\n/**\n * Returns API widget data for a particular widget ID.\n *\n * @param {number} id Widget ID.\n *\n * @return {Object} API widget data for a particular widget ID.\n */\nexport const getWidget = createRegistrySelector(\n\t( select ) => ( state, id ) => {\n\t\tconst widgets = select( editWidgetsStoreName ).getWidgets();\n\t\treturn widgets[ id ];\n\t}\n);\n\n/**\n * Returns all API widget areas.\n *\n * @return {Object[]} API List of widget areas.\n */\nexport const getWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst query = buildWidgetAreasQuery();\n\treturn select( coreStore ).getEntityRecords(\n\t\tKIND,\n\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\tquery\n\t);\n} );\n\n/**\n * Returns widgetArea containing a block identify by given widgetId\n *\n * @param {string} widgetId The ID of the widget.\n * @return {Object} Containing widget area.\n */\nexport const getWidgetAreaForWidgetId = createRegistrySelector(\n\t( select ) => ( state, widgetId ) => {\n\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\treturn widgetAreas.find( ( widgetArea ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetArea.id )\n\t\t\t);\n\t\t\tconst blockWidgetIds = post.blocks.map( ( block ) =>\n\t\t\t\tgetWidgetIdFromBlock( block )\n\t\t\t);\n\t\t\treturn blockWidgetIds.includes( widgetId );\n\t\t} );\n\t}\n);\n\n/**\n * Given a child client id, returns the parent widget area block.\n *\n * @param {string} clientId The client id of a block in a widget area.\n *\n * @return {WPBlock} The widget area block.\n */\nexport const getParentWidgetAreaBlock = createRegistrySelector(\n\t( select ) => ( state, clientId ) => {\n\t\tconst { getBlock, getBlockName, getBlockParents } =\n\t\t\tselect( blockEditorStore );\n\t\tconst blockParents = getBlockParents( clientId );\n\t\tconst widgetAreaClientId = blockParents.find(\n\t\t\t( parentClientId ) =>\n\t\t\t\tgetBlockName( parentClientId ) === 'core/widget-area'\n\t\t);\n\t\treturn getBlock( widgetAreaClientId );\n\t}\n);\n\n/**\n * Returns all edited widget area entity records.\n *\n * @return {Object[]} List of edited widget area entity records.\n */\nexport const getEditedWidgetAreas = createRegistrySelector(\n\t( select ) => ( state, ids ) => {\n\t\tlet widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\tif ( ! widgetAreas ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ids ) {\n\t\t\twidgetAreas = widgetAreas.filter( ( { id } ) =>\n\t\t\t\tids.includes( id )\n\t\t\t);\n\t\t}\n\t\treturn widgetAreas\n\t\t\t.filter( ( { id } ) =>\n\t\t\t\tselect( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( id )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.map( ( { id } ) =>\n\t\t\t\tselect( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tid\n\t\t\t\t)\n\t\t\t);\n\t}\n);\n\n/**\n * Returns all blocks representing reference widgets.\n *\n * @param {string} referenceWidgetName Optional. If given, only reference widgets with this name will be returned.\n * @return {Array} List of all blocks representing reference widgets\n */\nexport const getReferenceWidgetBlocks = createRegistrySelector(\n\t( select ) =>\n\t\t( state, referenceWidgetName = null ) => {\n\t\t\tconst results = [];\n\t\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\t\tfor ( const _widgetArea of widgetAreas ) {\n\t\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( _widgetArea.id )\n\t\t\t\t);\n\t\t\t\tfor ( const block of post.blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblock.name === 'core/legacy-widget' &&\n\t\t\t\t\t\t( ! referenceWidgetName ||\n\t\t\t\t\t\t\tblock.attributes?.referenceWidgetName ===\n\t\t\t\t\t\t\t\treferenceWidgetName )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresults.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t}\n);\n\n/**\n * Returns true if any widget area is currently being saved.\n *\n * @return {boolean} True if any widget area is currently being saved. False otherwise.\n */\nexport const isSavingWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst widgetAreasIds = select( editWidgetsStoreName )\n\t\t.getWidgetAreas()\n\t\t?.map( ( { id } ) => id );\n\tif ( ! widgetAreasIds ) {\n\t\treturn false;\n\t}\n\n\tfor ( const id of widgetAreasIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst widgetIds = [\n\t\t...Object.keys( select( editWidgetsStoreName ).getWidgets() ),\n\t\tundefined, // account for new widgets without an ID\n\t];\n\tfor ( const id of widgetIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\t'root',\n\t\t\t'widget',\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n} );\n\n/**\n * Gets whether the widget area is opened.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} clientId The clientId of the widget area.\n *\n * @return {boolean} True if the widget area is open.\n */\nexport const getIsWidgetAreaOpen = ( state, clientId ) => {\n\tconst { widgetAreasOpenState } = state;\n\treturn !! widgetAreasOpenState[ clientId ];\n};\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID and index to insert at.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tif ( typeof state.blockInserterPanel === 'boolean' ) {\n\t\treturn EMPTY_INSERTION_POINT;\n\t}\n\n\treturn state.blockInserterPanel;\n}\n\n/**\n * Returns true if a block can be inserted into a widget area.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} blockName The name of the block being inserted.\n *\n * @return {boolean} True if the block can be inserted in a widget area.\n */\nexport const canInsertBlockInWidgetArea = createRegistrySelector(\n\t( select ) => ( state, blockName ) => {\n\t\t// Widget areas are always top-level blocks, which getBlocks will return.\n\t\tconst widgetAreas = select( blockEditorStore ).getBlocks();\n\n\t\t// Makes an assumption that a block that can be inserted into one\n\t\t// widget area can be inserted into any widget area. Uses the first\n\t\t// widget area for testing whether the block can be inserted.\n\t\tconst [ firstWidgetArea ] = widgetAreas;\n\t\treturn select( blockEditorStore ).canInsertBlockType(\n\t\t\tblockName,\n\t\t\tfirstWidgetArea.clientId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { SlotFillProvider } from '@wordpress/components';
5
5
  import { useViewportMatch } from '@wordpress/compose';
6
6
  import { uploadMedia } from '@wordpress/media-utils';
7
7
  import { useDispatch, useSelect } from '@wordpress/data';
8
- import { useEntityBlockEditor, store as coreStore, useResourcePermissions } from '@wordpress/core-data';
8
+ import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
9
9
  import { useMemo } from '@wordpress/element';
10
10
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
11
11
  import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
@@ -32,30 +32,37 @@ const {
32
32
  const {
33
33
  BlockKeyboardShortcuts
34
34
  } = unlock(blockLibraryPrivateApis);
35
+ const EMPTY_ARRAY = [];
35
36
  export default function WidgetAreasBlockEditorProvider({
36
37
  blockEditorSettings,
37
38
  children,
38
39
  ...props
39
40
  }) {
40
- const mediaPermissions = useResourcePermissions('media');
41
41
  const isLargeViewport = useViewportMatch('medium');
42
42
  const {
43
+ hasUploadPermissions,
43
44
  reusableBlocks,
44
45
  isFixedToolbarActive,
45
46
  keepCaretInsideBlock,
46
47
  pageOnFront,
47
48
  pageForPosts
48
49
  } = useSelect(select => {
50
+ var _canUser;
49
51
  const {
50
52
  canUser,
51
53
  getEntityRecord,
52
54
  getEntityRecords
53
55
  } = select(coreStore);
54
- const siteSettings = canUser('read', 'settings') ? getEntityRecord('root', 'site') : undefined;
56
+ const siteSettings = canUser('read', {
57
+ kind: 'root',
58
+ name: 'site'
59
+ }) ? getEntityRecord('root', 'site') : undefined;
55
60
  return {
56
- widgetAreas: select(editWidgetsStore).getWidgetAreas(),
57
- widgets: select(editWidgetsStore).getWidgets(),
58
- reusableBlocks: ALLOW_REUSABLE_BLOCKS ? getEntityRecords('postType', 'wp_block') : [],
61
+ hasUploadPermissions: (_canUser = canUser('create', {
62
+ kind: 'root',
63
+ name: 'media'
64
+ })) !== null && _canUser !== void 0 ? _canUser : true,
65
+ reusableBlocks: ALLOW_REUSABLE_BLOCKS ? getEntityRecords('postType', 'wp_block') : EMPTY_ARRAY,
59
66
  isFixedToolbarActive: !!select(preferencesStore).get('core/edit-widgets', 'fixedToolbar'),
60
67
  keepCaretInsideBlock: !!select(preferencesStore).get('core/edit-widgets', 'keepCaretInsideBlock'),
61
68
  pageOnFront: siteSettings?.page_on_front,
@@ -67,7 +74,7 @@ export default function WidgetAreasBlockEditorProvider({
67
74
  } = useDispatch(editWidgetsStore);
68
75
  const settings = useMemo(() => {
69
76
  let mediaUploadBlockEditor;
70
- if (mediaPermissions.canCreate) {
77
+ if (hasUploadPermissions) {
71
78
  mediaUploadBlockEditor = ({
72
79
  onError,
73
80
  ...argumentsObject
@@ -92,7 +99,7 @@ export default function WidgetAreasBlockEditorProvider({
92
99
  pageOnFront,
93
100
  pageForPosts
94
101
  };
95
- }, [blockEditorSettings, isFixedToolbarActive, isLargeViewport, keepCaretInsideBlock, mediaPermissions.canCreate, reusableBlocks, setIsInserterOpened, pageOnFront, pageForPosts]);
102
+ }, [hasUploadPermissions, blockEditorSettings, isFixedToolbarActive, isLargeViewport, keepCaretInsideBlock, reusableBlocks, setIsInserterOpened, pageOnFront, pageForPosts]);
96
103
  const widgetAreaId = useLastSelectedWidgetArea();
97
104
  const [blocks, onInput, onChange] = useEntityBlockEditor(KIND, POST_TYPE, {
98
105
  id: buildWidgetAreasPostId()
@@ -1 +1 @@
1
- {"version":3,"names":["SlotFillProvider","useViewportMatch","uploadMedia","useDispatch","useSelect","useEntityBlockEditor","store","coreStore","useResourcePermissions","useMemo","privateApis","blockEditorPrivateApis","editPatternsPrivateApis","preferencesStore","blockLibraryPrivateApis","KeyboardShortcuts","buildWidgetAreasPostId","KIND","POST_TYPE","useLastSelectedWidgetArea","editWidgetsStore","ALLOW_REUSABLE_BLOCKS","unlock","jsx","_jsx","jsxs","_jsxs","ExperimentalBlockEditorProvider","PatternsMenuItems","BlockKeyboardShortcuts","WidgetAreasBlockEditorProvider","blockEditorSettings","children","props","mediaPermissions","isLargeViewport","reusableBlocks","isFixedToolbarActive","keepCaretInsideBlock","pageOnFront","pageForPosts","select","canUser","getEntityRecord","getEntityRecords","siteSettings","undefined","widgetAreas","getWidgetAreas","widgets","getWidgets","get","page_on_front","page_for_posts","setIsInserterOpened","settings","mediaUploadBlockEditor","canCreate","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalReusableBlocks","hasFixedToolbar","mediaUpload","templateLock","__experimentalSetIsInserterOpened","widgetAreaId","blocks","onInput","onChange","id","Register","value","useSubRegistry","rootClientId"],"sources":["@wordpress/edit-widgets/src/components/widget-areas-block-editor-provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { privateApis as blockLibraryPrivateApis } from '@wordpress/block-library';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../../store/utils';\nimport useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';\nimport { store as editWidgetsStore } from '../../store';\nimport { ALLOW_REUSABLE_BLOCKS } from '../../constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\nconst { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst mediaPermissions = useResourcePermissions( 'media' );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\treusableBlocks,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEntityRecords } =\n\t\t\tselect( coreStore );\n\t\tconst siteSettings = canUser( 'read', 'settings' )\n\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\treturn {\n\t\t\twidgetAreas: select( editWidgetsStore ).getWidgetAreas(),\n\t\t\twidgets: select( editWidgetsStore ).getWidgets(),\n\t\t\treusableBlocks: ALLOW_REUSABLE_BLOCKS\n\t\t\t\t? getEntityRecords( 'postType', 'wp_block' )\n\t\t\t\t: [],\n\t\t\tisFixedToolbarActive: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t};\n\t}, [] );\n\tconst { setIsInserterOpened } = useDispatch( editWidgetsStore );\n\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( mediaPermissions.canCreate ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\thasFixedToolbar: isFixedToolbarActive || ! isLargeViewport,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t};\n\t}, [\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tisLargeViewport,\n\t\tkeepCaretInsideBlock,\n\t\tmediaPermissions.canCreate,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t] );\n\n\tconst widgetAreaId = useLastSelectedWidgetArea();\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\tKIND,\n\t\tPOST_TYPE,\n\t\t{ id: buildWidgetAreasPostId() }\n\t);\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<BlockKeyboardShortcuts />\n\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\tvalue={ blocks }\n\t\t\t\tonInput={ onInput }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tsettings={ settings }\n\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t\t<PatternsMenuItems rootClientId={ widgetAreaId } />\n\t\t\t</ExperimentalBlockEditorProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SlotFillProvider","useViewportMatch","uploadMedia","useDispatch","useSelect","useEntityBlockEditor","store","coreStore","useMemo","privateApis","blockEditorPrivateApis","editPatternsPrivateApis","preferencesStore","blockLibraryPrivateApis","KeyboardShortcuts","buildWidgetAreasPostId","KIND","POST_TYPE","useLastSelectedWidgetArea","editWidgetsStore","ALLOW_REUSABLE_BLOCKS","unlock","jsx","_jsx","jsxs","_jsxs","ExperimentalBlockEditorProvider","PatternsMenuItems","BlockKeyboardShortcuts","EMPTY_ARRAY","WidgetAreasBlockEditorProvider","blockEditorSettings","children","props","isLargeViewport","hasUploadPermissions","reusableBlocks","isFixedToolbarActive","keepCaretInsideBlock","pageOnFront","pageForPosts","select","_canUser","canUser","getEntityRecord","getEntityRecords","siteSettings","kind","name","undefined","get","page_on_front","page_for_posts","setIsInserterOpened","settings","mediaUploadBlockEditor","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalReusableBlocks","hasFixedToolbar","mediaUpload","templateLock","__experimentalSetIsInserterOpened","widgetAreaId","blocks","onInput","onChange","id","Register","value","useSubRegistry","rootClientId"],"sources":["@wordpress/edit-widgets/src/components/widget-areas-block-editor-provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { privateApis as blockLibraryPrivateApis } from '@wordpress/block-library';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../../store/utils';\nimport useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';\nimport { store as editWidgetsStore } from '../../store';\nimport { ALLOW_REUSABLE_BLOCKS } from '../../constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\nconst { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\thasUploadPermissions,\n\t\treusableBlocks,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEntityRecords } =\n\t\t\tselect( coreStore );\n\t\tconst siteSettings = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\treturn {\n\t\t\thasUploadPermissions:\n\t\t\t\tcanUser( 'create', {\n\t\t\t\t\tkind: 'root',\n\t\t\t\t\tname: 'media',\n\t\t\t\t} ) ?? true,\n\t\t\treusableBlocks: ALLOW_REUSABLE_BLOCKS\n\t\t\t\t? getEntityRecords( 'postType', 'wp_block' )\n\t\t\t\t: EMPTY_ARRAY,\n\t\t\tisFixedToolbarActive: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\tpageForPosts: siteSettings?.page_for_posts,\n\t\t};\n\t}, [] );\n\tconst { setIsInserterOpened } = useDispatch( editWidgetsStore );\n\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( hasUploadPermissions ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\thasFixedToolbar: isFixedToolbarActive || ! isLargeViewport,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tisLargeViewport,\n\t\tkeepCaretInsideBlock,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\n\t\tpageOnFront,\n\t\tpageForPosts,\n\t] );\n\n\tconst widgetAreaId = useLastSelectedWidgetArea();\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\tKIND,\n\t\tPOST_TYPE,\n\t\t{ id: buildWidgetAreasPostId() }\n\t);\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<BlockKeyboardShortcuts />\n\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\tvalue={ blocks }\n\t\t\t\tonInput={ onInput }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tsettings={ settings }\n\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t\t<PatternsMenuItems rootClientId={ widgetAreaId } />\n\t\t\t</ExperimentalBlockEditorProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -45,7 +45,7 @@ const withMoveToWidgetAreaToolbarItem = createHigherOrderComponent(BlockEdit =>
45
45
  return /*#__PURE__*/_jsxs(_Fragment, {
46
46
  children: [/*#__PURE__*/_jsx(BlockEdit, {
47
47
  ...props
48
- }), isMoveToWidgetAreaVisible && /*#__PURE__*/_jsx(BlockControls, {
48
+ }, "edit"), isMoveToWidgetAreaVisible && /*#__PURE__*/_jsx(BlockControls, {
49
49
  children: /*#__PURE__*/_jsx(MoveToWidgetArea, {
50
50
  widgetAreas: widgetAreas,
51
51
  currentWidgetAreaId: currentWidgetAreaId,
@@ -1 +1 @@
1
- {"version":3,"names":["BlockControls","createHigherOrderComponent","useDispatch","useSelect","addFilter","MoveToWidgetArea","store","editWidgetsStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","withMoveToWidgetAreaToolbarItem","BlockEdit","props","clientId","name","blockName","widgetAreas","currentWidgetAreaId","canInsertBlockInWidgetArea","select","selectors","widgetAreaBlock","getParentWidgetAreaBlock","getWidgetAreas","attributes","id","moveBlockToWidgetArea","hasMultipleWidgetAreas","length","isMoveToWidgetAreaVisible","children","onSelect","widgetAreaId"],"sources":["@wordpress/edit-widgets/src/filters/move-to-widget-area.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { BlockControls } from '@wordpress/block-editor';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { MoveToWidgetArea } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../store';\n\nconst withMoveToWidgetAreaToolbarItem = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { clientId, name: blockName } = props;\n\t\tconst { widgetAreas, currentWidgetAreaId, canInsertBlockInWidgetArea } =\n\t\t\tuseSelect(\n\t\t\t\t( select ) => {\n\t\t\t\t\t// Component won't display for a widget area, so don't run selectors.\n\t\t\t\t\tif ( blockName === 'core/widget-area' ) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst selectors = select( editWidgetsStore );\n\n\t\t\t\t\tconst widgetAreaBlock =\n\t\t\t\t\t\tselectors.getParentWidgetAreaBlock( clientId );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidgetAreas: selectors.getWidgetAreas(),\n\t\t\t\t\t\tcurrentWidgetAreaId: widgetAreaBlock?.attributes?.id,\n\t\t\t\t\t\tcanInsertBlockInWidgetArea:\n\t\t\t\t\t\t\tselectors.canInsertBlockInWidgetArea( blockName ),\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ clientId, blockName ]\n\t\t\t);\n\n\t\tconst { moveBlockToWidgetArea } = useDispatch( editWidgetsStore );\n\t\tconst hasMultipleWidgetAreas = widgetAreas?.length > 1;\n\t\tconst isMoveToWidgetAreaVisible =\n\t\t\tblockName !== 'core/widget-area' &&\n\t\t\thasMultipleWidgetAreas &&\n\t\t\tcanInsertBlockInWidgetArea;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ isMoveToWidgetAreaVisible && (\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<MoveToWidgetArea\n\t\t\t\t\t\t\twidgetAreas={ widgetAreas }\n\t\t\t\t\t\t\tcurrentWidgetAreaId={ currentWidgetAreaId }\n\t\t\t\t\t\t\tonSelect={ ( widgetAreaId ) => {\n\t\t\t\t\t\t\t\tmoveBlockToWidgetArea(\n\t\t\t\t\t\t\t\t\tprops.clientId,\n\t\t\t\t\t\t\t\t\twidgetAreaId\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</BlockControls>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\t'withMoveToWidgetAreaToolbarItem'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-widgets/block-edit',\n\twithMoveToWidgetAreaToolbarItem\n);\n"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,aAAa,QAAQ,yBAAyB;AACvD,SAASC,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAErD,MAAMC,+BAA+B,GAAGb,0BAA0B,CAC/Dc,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAM;IAAEC,QAAQ;IAAEC,IAAI,EAAEC;EAAU,CAAC,GAAGH,KAAK;EAC3C,MAAM;IAAEI,WAAW;IAAEC,mBAAmB;IAAEC;EAA2B,CAAC,GACrEnB,SAAS,CACNoB,MAAM,IAAM;IACb;IACA,IAAKJ,SAAS,KAAK,kBAAkB,EAAG;MACvC,OAAO,CAAC,CAAC;IACV;IAEA,MAAMK,SAAS,GAAGD,MAAM,CAAEhB,gBAAiB,CAAC;IAE5C,MAAMkB,eAAe,GACpBD,SAAS,CAACE,wBAAwB,CAAET,QAAS,CAAC;IAE/C,OAAO;MACNG,WAAW,EAAEI,SAAS,CAACG,cAAc,CAAC,CAAC;MACvCN,mBAAmB,EAAEI,eAAe,EAAEG,UAAU,EAAEC,EAAE;MACpDP,0BAA0B,EACzBE,SAAS,CAACF,0BAA0B,CAAEH,SAAU;IAClD,CAAC;EACF,CAAC,EACD,CAAEF,QAAQ,EAAEE,SAAS,CACtB,CAAC;EAEF,MAAM;IAAEW;EAAsB,CAAC,GAAG5B,WAAW,CAAEK,gBAAiB,CAAC;EACjE,MAAMwB,sBAAsB,GAAGX,WAAW,EAAEY,MAAM,GAAG,CAAC;EACtD,MAAMC,yBAAyB,GAC9Bd,SAAS,KAAK,kBAAkB,IAChCY,sBAAsB,IACtBT,0BAA0B;EAE3B,oBACCT,KAAA,CAAAF,SAAA;IAAAuB,QAAA,gBACCzB,IAAA,CAACM,SAAS;MAAA,GAAMC;IAAK,CAAI,CAAC,EACxBiB,yBAAyB,iBAC1BxB,IAAA,CAACT,aAAa;MAAAkC,QAAA,eACbzB,IAAA,CAACJ,gBAAgB;QAChBe,WAAW,EAAGA,WAAa;QAC3BC,mBAAmB,EAAGA,mBAAqB;QAC3Cc,QAAQ,EAAKC,YAAY,IAAM;UAC9BN,qBAAqB,CACpBd,KAAK,CAACC,QAAQ,EACdmB,YACD,CAAC;QACF;MAAG,CACH;IAAC,CACY,CACf;EAAA,CACA,CAAC;AAEL,CAAC,EACD,iCACD,CAAC;AAEDhC,SAAS,CACR,kBAAkB,EAClB,8BAA8B,EAC9BU,+BACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["BlockControls","createHigherOrderComponent","useDispatch","useSelect","addFilter","MoveToWidgetArea","store","editWidgetsStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","withMoveToWidgetAreaToolbarItem","BlockEdit","props","clientId","name","blockName","widgetAreas","currentWidgetAreaId","canInsertBlockInWidgetArea","select","selectors","widgetAreaBlock","getParentWidgetAreaBlock","getWidgetAreas","attributes","id","moveBlockToWidgetArea","hasMultipleWidgetAreas","length","isMoveToWidgetAreaVisible","children","onSelect","widgetAreaId"],"sources":["@wordpress/edit-widgets/src/filters/move-to-widget-area.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { BlockControls } from '@wordpress/block-editor';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { MoveToWidgetArea } from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../store';\n\nconst withMoveToWidgetAreaToolbarItem = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { clientId, name: blockName } = props;\n\t\tconst { widgetAreas, currentWidgetAreaId, canInsertBlockInWidgetArea } =\n\t\t\tuseSelect(\n\t\t\t\t( select ) => {\n\t\t\t\t\t// Component won't display for a widget area, so don't run selectors.\n\t\t\t\t\tif ( blockName === 'core/widget-area' ) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst selectors = select( editWidgetsStore );\n\n\t\t\t\t\tconst widgetAreaBlock =\n\t\t\t\t\t\tselectors.getParentWidgetAreaBlock( clientId );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidgetAreas: selectors.getWidgetAreas(),\n\t\t\t\t\t\tcurrentWidgetAreaId: widgetAreaBlock?.attributes?.id,\n\t\t\t\t\t\tcanInsertBlockInWidgetArea:\n\t\t\t\t\t\t\tselectors.canInsertBlockInWidgetArea( blockName ),\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t[ clientId, blockName ]\n\t\t\t);\n\n\t\tconst { moveBlockToWidgetArea } = useDispatch( editWidgetsStore );\n\t\tconst hasMultipleWidgetAreas = widgetAreas?.length > 1;\n\t\tconst isMoveToWidgetAreaVisible =\n\t\t\tblockName !== 'core/widget-area' &&\n\t\t\thasMultipleWidgetAreas &&\n\t\t\tcanInsertBlockInWidgetArea;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit key=\"edit\" { ...props } />\n\t\t\t\t{ isMoveToWidgetAreaVisible && (\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<MoveToWidgetArea\n\t\t\t\t\t\t\twidgetAreas={ widgetAreas }\n\t\t\t\t\t\t\tcurrentWidgetAreaId={ currentWidgetAreaId }\n\t\t\t\t\t\t\tonSelect={ ( widgetAreaId ) => {\n\t\t\t\t\t\t\t\tmoveBlockToWidgetArea(\n\t\t\t\t\t\t\t\t\tprops.clientId,\n\t\t\t\t\t\t\t\t\twidgetAreaId\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</BlockControls>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\t'withMoveToWidgetAreaToolbarItem'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-widgets/block-edit',\n\twithMoveToWidgetAreaToolbarItem\n);\n"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,aAAa,QAAQ,yBAAyB;AACvD,SAASC,0BAA0B,QAAQ,oBAAoB;AAC/D,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAErD,MAAMC,+BAA+B,GAAGb,0BAA0B,CAC/Dc,SAAS,IAAQC,KAAK,IAAM;EAC7B,MAAM;IAAEC,QAAQ;IAAEC,IAAI,EAAEC;EAAU,CAAC,GAAGH,KAAK;EAC3C,MAAM;IAAEI,WAAW;IAAEC,mBAAmB;IAAEC;EAA2B,CAAC,GACrEnB,SAAS,CACNoB,MAAM,IAAM;IACb;IACA,IAAKJ,SAAS,KAAK,kBAAkB,EAAG;MACvC,OAAO,CAAC,CAAC;IACV;IAEA,MAAMK,SAAS,GAAGD,MAAM,CAAEhB,gBAAiB,CAAC;IAE5C,MAAMkB,eAAe,GACpBD,SAAS,CAACE,wBAAwB,CAAET,QAAS,CAAC;IAE/C,OAAO;MACNG,WAAW,EAAEI,SAAS,CAACG,cAAc,CAAC,CAAC;MACvCN,mBAAmB,EAAEI,eAAe,EAAEG,UAAU,EAAEC,EAAE;MACpDP,0BAA0B,EACzBE,SAAS,CAACF,0BAA0B,CAAEH,SAAU;IAClD,CAAC;EACF,CAAC,EACD,CAAEF,QAAQ,EAAEE,SAAS,CACtB,CAAC;EAEF,MAAM;IAAEW;EAAsB,CAAC,GAAG5B,WAAW,CAAEK,gBAAiB,CAAC;EACjE,MAAMwB,sBAAsB,GAAGX,WAAW,EAAEY,MAAM,GAAG,CAAC;EACtD,MAAMC,yBAAyB,GAC9Bd,SAAS,KAAK,kBAAkB,IAChCY,sBAAsB,IACtBT,0BAA0B;EAE3B,oBACCT,KAAA,CAAAF,SAAA;IAAAuB,QAAA,gBACCzB,IAAA,CAACM,SAAS;MAAA,GAAiBC;IAAK,GAAjB,MAAqB,CAAC,EACnCiB,yBAAyB,iBAC1BxB,IAAA,CAACT,aAAa;MAAAkC,QAAA,eACbzB,IAAA,CAACJ,gBAAgB;QAChBe,WAAW,EAAGA,WAAa;QAC3BC,mBAAmB,EAAGA,mBAAqB;QAC3Cc,QAAQ,EAAKC,YAAY,IAAM;UAC9BN,qBAAqB,CACpBd,KAAK,CAACC,QAAQ,EACdmB,YACD,CAAC;QACF;MAAG,CACH;IAAC,CACY,CACf;EAAA,CACA,CAAC;AAEL,CAAC,EACD,iCACD,CAAC;AAEDhC,SAAS,CACR,kBAAkB,EAClB,8BAA8B,EAC9BU,+BACD,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createRegistrySelector } from '@wordpress/data';
4
+ import { createSelector, createRegistrySelector } from '@wordpress/data';
5
5
  import { getWidgetIdFromBlock } from '@wordpress/widgets';
6
6
  import { store as coreStore } from '@wordpress/core-data';
7
7
  import { store as blockEditorStore } from '@wordpress/block-editor';
@@ -21,16 +21,16 @@ const EMPTY_INSERTION_POINT = {
21
21
  *
22
22
  * @return {Object[]} API List of widgets.
23
23
  */
24
- export const getWidgets = createRegistrySelector(select => () => {
24
+ export const getWidgets = createRegistrySelector(select => createSelector(() => {
25
+ var _widgets$reduce;
25
26
  const widgets = select(coreStore).getEntityRecords('root', 'widget', buildWidgetsQuery());
26
- return (
27
- // Key widgets by their ID.
28
- widgets?.reduce((allWidgets, widget) => ({
27
+ return (// Key widgets by their ID.
28
+ (_widgets$reduce = widgets?.reduce((allWidgets, widget) => ({
29
29
  ...allWidgets,
30
30
  [widget.id]: widget
31
- }), {}) || {}
31
+ }), {})) !== null && _widgets$reduce !== void 0 ? _widgets$reduce : {}
32
32
  );
33
- });
33
+ }, () => [select(coreStore).getEntityRecords('root', 'widget', buildWidgetsQuery())]));
34
34
 
35
35
  /**
36
36
  * Returns API widget data for a particular widget ID.
@@ -1 +1 @@
1
- {"version":3,"names":["createRegistrySelector","getWidgetIdFromBlock","store","coreStore","blockEditorStore","buildWidgetsQuery","buildWidgetAreasQuery","buildWidgetAreaPostId","KIND","POST_TYPE","WIDGET_AREA_ENTITY_TYPE","STORE_NAME","editWidgetsStoreName","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","getWidgets","select","widgets","getEntityRecords","reduce","allWidgets","widget","id","getWidget","state","getWidgetAreas","query","getWidgetAreaForWidgetId","widgetId","widgetAreas","find","widgetArea","post","getEditedEntityRecord","blockWidgetIds","blocks","map","block","includes","getParentWidgetAreaBlock","clientId","getBlock","getBlockName","getBlockParents","blockParents","widgetAreaClientId","parentClientId","getEditedWidgetAreas","ids","filter","hasEditsForEntityRecord","getReferenceWidgetBlocks","referenceWidgetName","results","_widgetArea","name","attributes","push","isSavingWidgetAreas","widgetAreasIds","isSaving","isSavingEntityRecord","widgetIds","Object","keys","getIsWidgetAreaOpen","widgetAreasOpenState","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","canInsertBlockInWidgetArea","blockName","getBlocks","firstWidgetArea","canInsertBlockType","isListViewOpened","listViewPanel"],"sources":["@wordpress/edit-widgets/src/store/selectors.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createRegistrySelector } from '@wordpress/data';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n};\n\n/**\n * Returns all API widgets.\n *\n * @return {Object[]} API List of widgets.\n */\nexport const getWidgets = createRegistrySelector( ( select ) => () => {\n\tconst widgets = select( coreStore ).getEntityRecords(\n\t\t'root',\n\t\t'widget',\n\t\tbuildWidgetsQuery()\n\t);\n\n\treturn (\n\t\t// Key widgets by their ID.\n\t\twidgets?.reduce(\n\t\t\t( allWidgets, widget ) => ( {\n\t\t\t\t...allWidgets,\n\t\t\t\t[ widget.id ]: widget,\n\t\t\t} ),\n\t\t\t{}\n\t\t) || {}\n\t);\n} );\n\n/**\n * Returns API widget data for a particular widget ID.\n *\n * @param {number} id Widget ID.\n *\n * @return {Object} API widget data for a particular widget ID.\n */\nexport const getWidget = createRegistrySelector(\n\t( select ) => ( state, id ) => {\n\t\tconst widgets = select( editWidgetsStoreName ).getWidgets();\n\t\treturn widgets[ id ];\n\t}\n);\n\n/**\n * Returns all API widget areas.\n *\n * @return {Object[]} API List of widget areas.\n */\nexport const getWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst query = buildWidgetAreasQuery();\n\treturn select( coreStore ).getEntityRecords(\n\t\tKIND,\n\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\tquery\n\t);\n} );\n\n/**\n * Returns widgetArea containing a block identify by given widgetId\n *\n * @param {string} widgetId The ID of the widget.\n * @return {Object} Containing widget area.\n */\nexport const getWidgetAreaForWidgetId = createRegistrySelector(\n\t( select ) => ( state, widgetId ) => {\n\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\treturn widgetAreas.find( ( widgetArea ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetArea.id )\n\t\t\t);\n\t\t\tconst blockWidgetIds = post.blocks.map( ( block ) =>\n\t\t\t\tgetWidgetIdFromBlock( block )\n\t\t\t);\n\t\t\treturn blockWidgetIds.includes( widgetId );\n\t\t} );\n\t}\n);\n\n/**\n * Given a child client id, returns the parent widget area block.\n *\n * @param {string} clientId The client id of a block in a widget area.\n *\n * @return {WPBlock} The widget area block.\n */\nexport const getParentWidgetAreaBlock = createRegistrySelector(\n\t( select ) => ( state, clientId ) => {\n\t\tconst { getBlock, getBlockName, getBlockParents } =\n\t\t\tselect( blockEditorStore );\n\t\tconst blockParents = getBlockParents( clientId );\n\t\tconst widgetAreaClientId = blockParents.find(\n\t\t\t( parentClientId ) =>\n\t\t\t\tgetBlockName( parentClientId ) === 'core/widget-area'\n\t\t);\n\t\treturn getBlock( widgetAreaClientId );\n\t}\n);\n\n/**\n * Returns all edited widget area entity records.\n *\n * @return {Object[]} List of edited widget area entity records.\n */\nexport const getEditedWidgetAreas = createRegistrySelector(\n\t( select ) => ( state, ids ) => {\n\t\tlet widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\tif ( ! widgetAreas ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ids ) {\n\t\t\twidgetAreas = widgetAreas.filter( ( { id } ) =>\n\t\t\t\tids.includes( id )\n\t\t\t);\n\t\t}\n\t\treturn widgetAreas\n\t\t\t.filter( ( { id } ) =>\n\t\t\t\tselect( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( id )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.map( ( { id } ) =>\n\t\t\t\tselect( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tid\n\t\t\t\t)\n\t\t\t);\n\t}\n);\n\n/**\n * Returns all blocks representing reference widgets.\n *\n * @param {string} referenceWidgetName Optional. If given, only reference widgets with this name will be returned.\n * @return {Array} List of all blocks representing reference widgets\n */\nexport const getReferenceWidgetBlocks = createRegistrySelector(\n\t( select ) =>\n\t\t( state, referenceWidgetName = null ) => {\n\t\t\tconst results = [];\n\t\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\t\tfor ( const _widgetArea of widgetAreas ) {\n\t\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( _widgetArea.id )\n\t\t\t\t);\n\t\t\t\tfor ( const block of post.blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblock.name === 'core/legacy-widget' &&\n\t\t\t\t\t\t( ! referenceWidgetName ||\n\t\t\t\t\t\t\tblock.attributes?.referenceWidgetName ===\n\t\t\t\t\t\t\t\treferenceWidgetName )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresults.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t}\n);\n\n/**\n * Returns true if any widget area is currently being saved.\n *\n * @return {boolean} True if any widget area is currently being saved. False otherwise.\n */\nexport const isSavingWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst widgetAreasIds = select( editWidgetsStoreName )\n\t\t.getWidgetAreas()\n\t\t?.map( ( { id } ) => id );\n\tif ( ! widgetAreasIds ) {\n\t\treturn false;\n\t}\n\n\tfor ( const id of widgetAreasIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst widgetIds = [\n\t\t...Object.keys( select( editWidgetsStoreName ).getWidgets() ),\n\t\tundefined, // account for new widgets without an ID\n\t];\n\tfor ( const id of widgetIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\t'root',\n\t\t\t'widget',\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n} );\n\n/**\n * Gets whether the widget area is opened.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} clientId The clientId of the widget area.\n *\n * @return {boolean} True if the widget area is open.\n */\nexport const getIsWidgetAreaOpen = ( state, clientId ) => {\n\tconst { widgetAreasOpenState } = state;\n\treturn !! widgetAreasOpenState[ clientId ];\n};\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID and index to insert at.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tif ( typeof state.blockInserterPanel === 'boolean' ) {\n\t\treturn EMPTY_INSERTION_POINT;\n\t}\n\n\treturn state.blockInserterPanel;\n}\n\n/**\n * Returns true if a block can be inserted into a widget area.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} blockName The name of the block being inserted.\n *\n * @return {boolean} True if the block can be inserted in a widget area.\n */\nexport const canInsertBlockInWidgetArea = createRegistrySelector(\n\t( select ) => ( state, blockName ) => {\n\t\t// Widget areas are always top-level blocks, which getBlocks will return.\n\t\tconst widgetAreas = select( blockEditorStore ).getBlocks();\n\n\t\t// Makes an assumption that a block that can be inserted into one\n\t\t// widget area can be inserted into any widget area. Uses the first\n\t\t// widget area for testing whether the block can be inserted.\n\t\tconst [ firstWidgetArea ] = widgetAreas;\n\t\treturn select( blockEditorStore ).canInsertBlockType(\n\t\t\tblockName,\n\t\t\tfirstWidgetArea.clientId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createSelector","createRegistrySelector","getWidgetIdFromBlock","store","coreStore","blockEditorStore","buildWidgetsQuery","buildWidgetAreasQuery","buildWidgetAreaPostId","KIND","POST_TYPE","WIDGET_AREA_ENTITY_TYPE","STORE_NAME","editWidgetsStoreName","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","getWidgets","select","_widgets$reduce","widgets","getEntityRecords","reduce","allWidgets","widget","id","getWidget","state","getWidgetAreas","query","getWidgetAreaForWidgetId","widgetId","widgetAreas","find","widgetArea","post","getEditedEntityRecord","blockWidgetIds","blocks","map","block","includes","getParentWidgetAreaBlock","clientId","getBlock","getBlockName","getBlockParents","blockParents","widgetAreaClientId","parentClientId","getEditedWidgetAreas","ids","filter","hasEditsForEntityRecord","getReferenceWidgetBlocks","referenceWidgetName","results","_widgetArea","name","attributes","push","isSavingWidgetAreas","widgetAreasIds","isSaving","isSavingEntityRecord","widgetIds","Object","keys","getIsWidgetAreaOpen","widgetAreasOpenState","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","canInsertBlockInWidgetArea","blockName","getBlocks","firstWidgetArea","canInsertBlockType","isListViewOpened","listViewPanel"],"sources":["@wordpress/edit-widgets/src/store/selectors.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport { getWidgetIdFromBlock } from '@wordpress/widgets';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n};\n\n/**\n * Returns all API widgets.\n *\n * @return {Object[]} API List of widgets.\n */\nexport const getWidgets = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t() => {\n\t\t\tconst widgets = select( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t// Key widgets by their ID.\n\t\t\t\twidgets?.reduce(\n\t\t\t\t\t( allWidgets, widget ) => ( {\n\t\t\t\t\t\t...allWidgets,\n\t\t\t\t\t\t[ widget.id ]: widget,\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t) ?? {}\n\t\t\t);\n\t\t},\n\t\t() => [\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\tbuildWidgetsQuery()\n\t\t\t),\n\t\t]\n\t)\n);\n\n/**\n * Returns API widget data for a particular widget ID.\n *\n * @param {number} id Widget ID.\n *\n * @return {Object} API widget data for a particular widget ID.\n */\nexport const getWidget = createRegistrySelector(\n\t( select ) => ( state, id ) => {\n\t\tconst widgets = select( editWidgetsStoreName ).getWidgets();\n\t\treturn widgets[ id ];\n\t}\n);\n\n/**\n * Returns all API widget areas.\n *\n * @return {Object[]} API List of widget areas.\n */\nexport const getWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst query = buildWidgetAreasQuery();\n\treturn select( coreStore ).getEntityRecords(\n\t\tKIND,\n\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\tquery\n\t);\n} );\n\n/**\n * Returns widgetArea containing a block identify by given widgetId\n *\n * @param {string} widgetId The ID of the widget.\n * @return {Object} Containing widget area.\n */\nexport const getWidgetAreaForWidgetId = createRegistrySelector(\n\t( select ) => ( state, widgetId ) => {\n\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\treturn widgetAreas.find( ( widgetArea ) => {\n\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetArea.id )\n\t\t\t);\n\t\t\tconst blockWidgetIds = post.blocks.map( ( block ) =>\n\t\t\t\tgetWidgetIdFromBlock( block )\n\t\t\t);\n\t\t\treturn blockWidgetIds.includes( widgetId );\n\t\t} );\n\t}\n);\n\n/**\n * Given a child client id, returns the parent widget area block.\n *\n * @param {string} clientId The client id of a block in a widget area.\n *\n * @return {WPBlock} The widget area block.\n */\nexport const getParentWidgetAreaBlock = createRegistrySelector(\n\t( select ) => ( state, clientId ) => {\n\t\tconst { getBlock, getBlockName, getBlockParents } =\n\t\t\tselect( blockEditorStore );\n\t\tconst blockParents = getBlockParents( clientId );\n\t\tconst widgetAreaClientId = blockParents.find(\n\t\t\t( parentClientId ) =>\n\t\t\t\tgetBlockName( parentClientId ) === 'core/widget-area'\n\t\t);\n\t\treturn getBlock( widgetAreaClientId );\n\t}\n);\n\n/**\n * Returns all edited widget area entity records.\n *\n * @return {Object[]} List of edited widget area entity records.\n */\nexport const getEditedWidgetAreas = createRegistrySelector(\n\t( select ) => ( state, ids ) => {\n\t\tlet widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\tif ( ! widgetAreas ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ids ) {\n\t\t\twidgetAreas = widgetAreas.filter( ( { id } ) =>\n\t\t\t\tids.includes( id )\n\t\t\t);\n\t\t}\n\t\treturn widgetAreas\n\t\t\t.filter( ( { id } ) =>\n\t\t\t\tselect( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( id )\n\t\t\t\t)\n\t\t\t)\n\t\t\t.map( ( { id } ) =>\n\t\t\t\tselect( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tid\n\t\t\t\t)\n\t\t\t);\n\t}\n);\n\n/**\n * Returns all blocks representing reference widgets.\n *\n * @param {string} referenceWidgetName Optional. If given, only reference widgets with this name will be returned.\n * @return {Array} List of all blocks representing reference widgets\n */\nexport const getReferenceWidgetBlocks = createRegistrySelector(\n\t( select ) =>\n\t\t( state, referenceWidgetName = null ) => {\n\t\t\tconst results = [];\n\t\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\t\tfor ( const _widgetArea of widgetAreas ) {\n\t\t\t\tconst post = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\tKIND,\n\t\t\t\t\tPOST_TYPE,\n\t\t\t\t\tbuildWidgetAreaPostId( _widgetArea.id )\n\t\t\t\t);\n\t\t\t\tfor ( const block of post.blocks ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tblock.name === 'core/legacy-widget' &&\n\t\t\t\t\t\t( ! referenceWidgetName ||\n\t\t\t\t\t\t\tblock.attributes?.referenceWidgetName ===\n\t\t\t\t\t\t\t\treferenceWidgetName )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresults.push( block );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t}\n);\n\n/**\n * Returns true if any widget area is currently being saved.\n *\n * @return {boolean} True if any widget area is currently being saved. False otherwise.\n */\nexport const isSavingWidgetAreas = createRegistrySelector( ( select ) => () => {\n\tconst widgetAreasIds = select( editWidgetsStoreName )\n\t\t.getWidgetAreas()\n\t\t?.map( ( { id } ) => id );\n\tif ( ! widgetAreasIds ) {\n\t\treturn false;\n\t}\n\n\tfor ( const id of widgetAreasIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst widgetIds = [\n\t\t...Object.keys( select( editWidgetsStoreName ).getWidgets() ),\n\t\tundefined, // account for new widgets without an ID\n\t];\n\tfor ( const id of widgetIds ) {\n\t\tconst isSaving = select( coreStore ).isSavingEntityRecord(\n\t\t\t'root',\n\t\t\t'widget',\n\t\t\tid\n\t\t);\n\t\tif ( isSaving ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n} );\n\n/**\n * Gets whether the widget area is opened.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} clientId The clientId of the widget area.\n *\n * @return {boolean} True if the widget area is open.\n */\nexport const getIsWidgetAreaOpen = ( state, clientId ) => {\n\tconst { widgetAreasOpenState } = state;\n\treturn !! widgetAreasOpenState[ clientId ];\n};\n\n/**\n * Returns true if the inserter is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport function isInserterOpened( state ) {\n\treturn !! state.blockInserterPanel;\n}\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID and index to insert at.\n */\nexport function __experimentalGetInsertionPoint( state ) {\n\tif ( typeof state.blockInserterPanel === 'boolean' ) {\n\t\treturn EMPTY_INSERTION_POINT;\n\t}\n\n\treturn state.blockInserterPanel;\n}\n\n/**\n * Returns true if a block can be inserted into a widget area.\n *\n * @param {Array} state The open state of the widget areas.\n * @param {string} blockName The name of the block being inserted.\n *\n * @return {boolean} True if the block can be inserted in a widget area.\n */\nexport const canInsertBlockInWidgetArea = createRegistrySelector(\n\t( select ) => ( state, blockName ) => {\n\t\t// Widget areas are always top-level blocks, which getBlocks will return.\n\t\tconst widgetAreas = select( blockEditorStore ).getBlocks();\n\n\t\t// Makes an assumption that a block that can be inserted into one\n\t\t// widget area can be inserted into any widget area. Uses the first\n\t\t// widget area for testing whether the block can be inserted.\n\t\tconst [ firstWidgetArea ] = widgetAreas;\n\t\treturn select( blockEditorStore ).canInsertBlockType(\n\t\t\tblockName,\n\t\t\tfirstWidgetArea.clientId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport function isListViewOpened( state ) {\n\treturn state.listViewPanel;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -176,7 +176,7 @@
176
176
  top: 0;
177
177
  }
178
178
  }
179
- .interface-complementary-area p:not(.components-base-control__help) {
179
+ .interface-complementary-area p:not(.components-base-control__help, .components-form-token-field__help) {
180
180
  margin-top: 0;
181
181
  }
182
182
  .interface-complementary-area h2 {
@@ -359,7 +359,7 @@ body.is-fullscreen-mode .interface-interface-skeleton {
359
359
  }
360
360
  @media (min-width: 782px) {
361
361
  .interface-interface-skeleton__sidebar {
362
- box-shadow: 1px 1px 0 0 rgba(0, 0, 0, 0.133);
362
+ box-shadow: 1px 0 0 0 rgba(0, 0, 0, 0.133);
363
363
  outline: 1px solid transparent;
364
364
  }
365
365
  }
@@ -370,7 +370,7 @@ body.is-fullscreen-mode .interface-interface-skeleton {
370
370
  }
371
371
  @media (min-width: 782px) {
372
372
  .interface-interface-skeleton__secondary-sidebar {
373
- box-shadow: -1px 1px 0 0 rgba(0, 0, 0, 0.133);
373
+ box-shadow: -1px 0 0 0 rgba(0, 0, 0, 0.133);
374
374
  outline: 1px solid transparent;
375
375
  }
376
376
  }
@@ -176,7 +176,7 @@
176
176
  top: 0;
177
177
  }
178
178
  }
179
- .interface-complementary-area p:not(.components-base-control__help) {
179
+ .interface-complementary-area p:not(.components-base-control__help, .components-form-token-field__help) {
180
180
  margin-top: 0;
181
181
  }
182
182
  .interface-complementary-area h2 {
@@ -359,7 +359,7 @@ body.is-fullscreen-mode .interface-interface-skeleton {
359
359
  }
360
360
  @media (min-width: 782px) {
361
361
  .interface-interface-skeleton__sidebar {
362
- box-shadow: -1px 1px 0 0 rgba(0, 0, 0, 0.133);
362
+ box-shadow: -1px 0 0 0 rgba(0, 0, 0, 0.133);
363
363
  outline: 1px solid transparent;
364
364
  }
365
365
  }
@@ -370,7 +370,7 @@ body.is-fullscreen-mode .interface-interface-skeleton {
370
370
  }
371
371
  @media (min-width: 782px) {
372
372
  .interface-interface-skeleton__secondary-sidebar {
373
- box-shadow: 1px 1px 0 0 rgba(0, 0, 0, 0.133);
373
+ box-shadow: 1px 0 0 0 rgba(0, 0, 0, 0.133);
374
374
  outline: 1px solid transparent;
375
375
  }
376
376
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-widgets",
3
- "version": "6.2.0",
3
+ "version": "6.4.0",
4
4
  "description": "Widgets Page module for WordPress..",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -28,32 +28,32 @@
28
28
  "react-native": "src/index",
29
29
  "dependencies": {
30
30
  "@babel/runtime": "^7.16.0",
31
- "@wordpress/api-fetch": "^7.2.0",
32
- "@wordpress/block-editor": "^13.2.0",
33
- "@wordpress/block-library": "^9.2.0",
34
- "@wordpress/blocks": "^13.2.0",
35
- "@wordpress/components": "^28.2.0",
36
- "@wordpress/compose": "^7.2.0",
37
- "@wordpress/core-data": "^7.2.0",
38
- "@wordpress/data": "^10.2.0",
39
- "@wordpress/deprecated": "^4.2.0",
40
- "@wordpress/dom": "^4.2.0",
41
- "@wordpress/element": "^6.2.0",
42
- "@wordpress/hooks": "^4.2.0",
43
- "@wordpress/i18n": "^5.2.0",
44
- "@wordpress/icons": "^10.2.0",
45
- "@wordpress/interface": "^6.2.0",
46
- "@wordpress/keyboard-shortcuts": "^5.2.0",
47
- "@wordpress/keycodes": "^4.2.0",
48
- "@wordpress/media-utils": "^5.2.0",
49
- "@wordpress/notices": "^5.2.0",
50
- "@wordpress/patterns": "^2.2.0",
51
- "@wordpress/plugins": "^7.2.0",
52
- "@wordpress/preferences": "^4.2.0",
53
- "@wordpress/private-apis": "^1.2.0",
54
- "@wordpress/reusable-blocks": "^5.2.0",
55
- "@wordpress/url": "^4.2.0",
56
- "@wordpress/widgets": "^4.2.0",
31
+ "@wordpress/api-fetch": "^7.4.0",
32
+ "@wordpress/block-editor": "^13.4.0",
33
+ "@wordpress/block-library": "^9.4.0",
34
+ "@wordpress/blocks": "^13.4.0",
35
+ "@wordpress/components": "^28.4.0",
36
+ "@wordpress/compose": "^7.4.0",
37
+ "@wordpress/core-data": "^7.4.0",
38
+ "@wordpress/data": "^10.4.0",
39
+ "@wordpress/deprecated": "^4.4.0",
40
+ "@wordpress/dom": "^4.4.0",
41
+ "@wordpress/element": "^6.4.0",
42
+ "@wordpress/hooks": "^4.4.0",
43
+ "@wordpress/i18n": "^5.4.0",
44
+ "@wordpress/icons": "^10.4.0",
45
+ "@wordpress/interface": "^6.4.0",
46
+ "@wordpress/keyboard-shortcuts": "^5.4.0",
47
+ "@wordpress/keycodes": "^4.4.0",
48
+ "@wordpress/media-utils": "^5.4.0",
49
+ "@wordpress/notices": "^5.4.0",
50
+ "@wordpress/patterns": "^2.4.0",
51
+ "@wordpress/plugins": "^7.4.0",
52
+ "@wordpress/preferences": "^4.4.0",
53
+ "@wordpress/private-apis": "^1.4.0",
54
+ "@wordpress/reusable-blocks": "^5.4.0",
55
+ "@wordpress/url": "^4.4.0",
56
+ "@wordpress/widgets": "^4.4.0",
57
57
  "clsx": "^2.1.1"
58
58
  },
59
59
  "peerDependencies": {
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "aa5b14bb5bdbb8d8a02914e154c3bc1c2f18ace6"
66
+ "gitHead": "363edb39b8dda8727f652e42cbb8497732693ed2"
67
67
  }
@@ -5,11 +5,7 @@ import { SlotFillProvider } from '@wordpress/components';
5
5
  import { useViewportMatch } from '@wordpress/compose';
6
6
  import { uploadMedia } from '@wordpress/media-utils';
7
7
  import { useDispatch, useSelect } from '@wordpress/data';
8
- import {
9
- useEntityBlockEditor,
10
- store as coreStore,
11
- useResourcePermissions,
12
- } from '@wordpress/core-data';
8
+ import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
13
9
  import { useMemo } from '@wordpress/element';
14
10
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
15
11
  import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
@@ -30,14 +26,16 @@ const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );
30
26
  const { PatternsMenuItems } = unlock( editPatternsPrivateApis );
31
27
  const { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );
32
28
 
29
+ const EMPTY_ARRAY = [];
30
+
33
31
  export default function WidgetAreasBlockEditorProvider( {
34
32
  blockEditorSettings,
35
33
  children,
36
34
  ...props
37
35
  } ) {
38
- const mediaPermissions = useResourcePermissions( 'media' );
39
36
  const isLargeViewport = useViewportMatch( 'medium' );
40
37
  const {
38
+ hasUploadPermissions,
41
39
  reusableBlocks,
42
40
  isFixedToolbarActive,
43
41
  keepCaretInsideBlock,
@@ -46,15 +44,21 @@ export default function WidgetAreasBlockEditorProvider( {
46
44
  } = useSelect( ( select ) => {
47
45
  const { canUser, getEntityRecord, getEntityRecords } =
48
46
  select( coreStore );
49
- const siteSettings = canUser( 'read', 'settings' )
47
+ const siteSettings = canUser( 'read', {
48
+ kind: 'root',
49
+ name: 'site',
50
+ } )
50
51
  ? getEntityRecord( 'root', 'site' )
51
52
  : undefined;
52
53
  return {
53
- widgetAreas: select( editWidgetsStore ).getWidgetAreas(),
54
- widgets: select( editWidgetsStore ).getWidgets(),
54
+ hasUploadPermissions:
55
+ canUser( 'create', {
56
+ kind: 'root',
57
+ name: 'media',
58
+ } ) ?? true,
55
59
  reusableBlocks: ALLOW_REUSABLE_BLOCKS
56
60
  ? getEntityRecords( 'postType', 'wp_block' )
57
- : [],
61
+ : EMPTY_ARRAY,
58
62
  isFixedToolbarActive: !! select( preferencesStore ).get(
59
63
  'core/edit-widgets',
60
64
  'fixedToolbar'
@@ -71,7 +75,7 @@ export default function WidgetAreasBlockEditorProvider( {
71
75
 
72
76
  const settings = useMemo( () => {
73
77
  let mediaUploadBlockEditor;
74
- if ( mediaPermissions.canCreate ) {
78
+ if ( hasUploadPermissions ) {
75
79
  mediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {
76
80
  uploadMedia( {
77
81
  wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
@@ -92,11 +96,11 @@ export default function WidgetAreasBlockEditorProvider( {
92
96
  pageForPosts,
93
97
  };
94
98
  }, [
99
+ hasUploadPermissions,
95
100
  blockEditorSettings,
96
101
  isFixedToolbarActive,
97
102
  isLargeViewport,
98
103
  keepCaretInsideBlock,
99
- mediaPermissions.canCreate,
100
104
  reusableBlocks,
101
105
  setIsInserterOpened,
102
106
  pageOnFront,
@@ -48,7 +48,7 @@ const withMoveToWidgetAreaToolbarItem = createHigherOrderComponent(
48
48
 
49
49
  return (
50
50
  <>
51
- <BlockEdit { ...props } />
51
+ <BlockEdit key="edit" { ...props } />
52
52
  { isMoveToWidgetAreaVisible && (
53
53
  <BlockControls>
54
54
  <MoveToWidgetArea
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createRegistrySelector } from '@wordpress/data';
4
+ import { createSelector, createRegistrySelector } from '@wordpress/data';
5
5
  import { getWidgetIdFromBlock } from '@wordpress/widgets';
6
6
  import { store as coreStore } from '@wordpress/core-data';
7
7
  import { store as blockEditorStore } from '@wordpress/block-editor';
@@ -29,24 +29,35 @@ const EMPTY_INSERTION_POINT = {
29
29
  *
30
30
  * @return {Object[]} API List of widgets.
31
31
  */
32
- export const getWidgets = createRegistrySelector( ( select ) => () => {
33
- const widgets = select( coreStore ).getEntityRecords(
34
- 'root',
35
- 'widget',
36
- buildWidgetsQuery()
37
- );
32
+ export const getWidgets = createRegistrySelector( ( select ) =>
33
+ createSelector(
34
+ () => {
35
+ const widgets = select( coreStore ).getEntityRecords(
36
+ 'root',
37
+ 'widget',
38
+ buildWidgetsQuery()
39
+ );
38
40
 
39
- return (
40
- // Key widgets by their ID.
41
- widgets?.reduce(
42
- ( allWidgets, widget ) => ( {
43
- ...allWidgets,
44
- [ widget.id ]: widget,
45
- } ),
46
- {}
47
- ) || {}
48
- );
49
- } );
41
+ return (
42
+ // Key widgets by their ID.
43
+ widgets?.reduce(
44
+ ( allWidgets, widget ) => ( {
45
+ ...allWidgets,
46
+ [ widget.id ]: widget,
47
+ } ),
48
+ {}
49
+ ) ?? {}
50
+ );
51
+ },
52
+ () => [
53
+ select( coreStore ).getEntityRecords(
54
+ 'root',
55
+ 'widget',
56
+ buildWidgetsQuery()
57
+ ),
58
+ ]
59
+ )
60
+ );
50
61
 
51
62
  /**
52
63
  * Returns API widget data for a particular widget ID.