@wordpress/edit-widgets 4.10.0 → 4.12.1-next.d6164808d3.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
+ ## 4.12.0 (2022-08-10)
6
+
7
+ ## 4.11.0 (2022-07-27)
8
+
5
9
  ## 4.10.0 (2022-07-13)
6
10
 
7
11
  ## 4.9.0 (2022-06-29)
@@ -23,6 +23,7 @@ var _coreData = require("@wordpress/core-data");
23
23
  * WordPress dependencies
24
24
  */
25
25
  function RedoButton() {
26
+ const shortcut = (0, _keycodes.isAppleOS)() ? _keycodes.displayShortcut.primaryShift('z') : _keycodes.displayShortcut.primary('y');
26
27
  const hasRedo = (0, _data.useSelect)(select => select(_coreData.store).hasRedo(), []);
27
28
  const {
28
29
  redo
@@ -30,7 +31,7 @@ function RedoButton() {
30
31
  return (0, _element.createElement)(_components.ToolbarButton, {
31
32
  icon: !(0, _i18n.isRTL)() ? _icons.redo : _icons.undo,
32
33
  label: (0, _i18n.__)('Redo'),
33
- shortcut: _keycodes.displayShortcut.primaryShift('z') // If there are no undo levels we don't want to actually disable this
34
+ shortcut: shortcut // If there are no undo levels we don't want to actually disable this
34
35
  // button, because it will remove focus for keyboard users.
35
36
  // See: https://github.com/WordPress/gutenberg/issues/3486
36
37
  ,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/header/undo-redo/redo.js"],"names":["RedoButton","hasRedo","select","coreStore","redo","redoIcon","undoIcon","displayShortcut","primaryShift","undefined"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AARA;AACA;AACA;AAQe,SAASA,UAAT,GAAsB;AACpC,QAAMC,OAAO,GAAG,qBACbC,MAAF,IAAcA,MAAM,CAAEC,eAAF,CAAN,CAAoBF,OAApB,EADC,EAEf,EAFe,CAAhB;AAIA,QAAM;AAAEG,IAAAA;AAAF,MAAW,uBAAaD,eAAb,CAAjB;AACA,SACC,4BAAC,yBAAD;AACC,IAAA,IAAI,EAAG,CAAE,kBAAF,GAAYE,WAAZ,GAAuBC,WAD/B;AAEC,IAAA,KAAK,EAAG,cAAI,MAAJ,CAFT;AAGC,IAAA,QAAQ,EAAGC,0BAAgBC,YAAhB,CAA8B,GAA9B,CAHZ,CAIC;AACA;AACA;AAND;AAOC,qBAAgB,CAAEP,OAPnB;AAQC,IAAA,OAAO,EAAGA,OAAO,GAAGG,IAAH,GAAUK;AAR5B,IADD;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function RedoButton() {\n\tconst hasRedo = useSelect(\n\t\t( select ) => select( coreStore ).hasRedo(),\n\t\t[]\n\t);\n\tconst { redo } = useDispatch( coreStore );\n\treturn (\n\t\t<ToolbarButton\n\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\tlabel={ __( 'Redo' ) }\n\t\t\tshortcut={ displayShortcut.primaryShift( 'z' ) }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasRedo }\n\t\t\tonClick={ hasRedo ? redo : undefined }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/header/undo-redo/redo.js"],"names":["RedoButton","shortcut","displayShortcut","primaryShift","primary","hasRedo","select","coreStore","redo","redoIcon","undoIcon","undefined"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AARA;AACA;AACA;AAQe,SAASA,UAAT,GAAsB;AACpC,QAAMC,QAAQ,GAAG,6BACdC,0BAAgBC,YAAhB,CAA8B,GAA9B,CADc,GAEdD,0BAAgBE,OAAhB,CAAyB,GAAzB,CAFH;AAIA,QAAMC,OAAO,GAAG,qBACbC,MAAF,IAAcA,MAAM,CAAEC,eAAF,CAAN,CAAoBF,OAApB,EADC,EAEf,EAFe,CAAhB;AAIA,QAAM;AAAEG,IAAAA;AAAF,MAAW,uBAAaD,eAAb,CAAjB;AACA,SACC,4BAAC,yBAAD;AACC,IAAA,IAAI,EAAG,CAAE,kBAAF,GAAYE,WAAZ,GAAuBC,WAD/B;AAEC,IAAA,KAAK,EAAG,cAAI,MAAJ,CAFT;AAGC,IAAA,QAAQ,EAAGT,QAHZ,CAIC;AACA;AACA;AAND;AAOC,qBAAgB,CAAEI,OAPnB;AAQC,IAAA,OAAO,EAAGA,OAAO,GAAGG,IAAH,GAAUG;AAR5B,IADD;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';\nimport { displayShortcut, isAppleOS } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function RedoButton() {\n\tconst shortcut = isAppleOS()\n\t\t? displayShortcut.primaryShift( 'z' )\n\t\t: displayShortcut.primary( 'y' );\n\n\tconst hasRedo = useSelect(\n\t\t( select ) => select( coreStore ).hasRedo(),\n\t\t[]\n\t);\n\tconst { redo } = useDispatch( coreStore );\n\treturn (\n\t\t<ToolbarButton\n\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\tlabel={ __( 'Redo' ) }\n\t\t\tshortcut={ shortcut }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasRedo }\n\t\t\tonClick={ hasRedo ? redo : undefined }\n\t\t/>\n\t);\n}\n"]}
@@ -17,6 +17,8 @@ var _mediaUtils = require("@wordpress/media-utils");
17
17
 
18
18
  var _data = require("@wordpress/data");
19
19
 
20
+ var _coreData = require("@wordpress/core-data");
21
+
20
22
  var _blockEditor = require("@wordpress/block-editor");
21
23
 
22
24
  var _reusableBlocks = require("@wordpress/reusable-blocks");
@@ -27,8 +29,6 @@ var _preferences = require("@wordpress/preferences");
27
29
 
28
30
  var _keyboardShortcuts2 = _interopRequireDefault(require("../keyboard-shortcuts"));
29
31
 
30
- var _coreData = require("@wordpress/core-data");
31
-
32
32
  var _utils = require("../../store/utils");
33
33
 
34
34
  var _useLastSelectedWidgetArea = _interopRequireDefault(require("../../hooks/use-last-selected-widget-area"));
@@ -50,30 +50,25 @@ function WidgetAreasBlockEditorProvider(_ref) {
50
50
  children,
51
51
  ...props
52
52
  } = _ref;
53
+ const mediaPermissions = (0, _coreData.useResourcePermissions)('media');
53
54
  const {
54
- hasUploadPermissions,
55
55
  reusableBlocks,
56
56
  isFixedToolbarActive,
57
57
  keepCaretInsideBlock
58
- } = (0, _data.useSelect)(select => {
59
- var _select$canUser;
60
-
61
- return {
62
- hasUploadPermissions: (_select$canUser = select(_coreData.store).canUser('create', 'media')) !== null && _select$canUser !== void 0 ? _select$canUser : true,
63
- widgetAreas: select(_store.store).getWidgetAreas(),
64
- widgets: select(_store.store).getWidgets(),
65
- reusableBlocks: _constants.ALLOW_REUSABLE_BLOCKS ? select(_coreData.store).getEntityRecords('postType', 'wp_block') : [],
66
- isFixedToolbarActive: !!select(_preferences.store).get('core/edit-widgets', 'fixedToolbar'),
67
- keepCaretInsideBlock: !!select(_preferences.store).get('core/edit-widgets', 'keepCaretInsideBlock')
68
- };
69
- }, []);
58
+ } = (0, _data.useSelect)(select => ({
59
+ widgetAreas: select(_store.store).getWidgetAreas(),
60
+ widgets: select(_store.store).getWidgets(),
61
+ reusableBlocks: _constants.ALLOW_REUSABLE_BLOCKS ? select(_coreData.store).getEntityRecords('postType', 'wp_block') : [],
62
+ isFixedToolbarActive: !!select(_preferences.store).get('core/edit-widgets', 'fixedToolbar'),
63
+ keepCaretInsideBlock: !!select(_preferences.store).get('core/edit-widgets', 'keepCaretInsideBlock')
64
+ }), []);
70
65
  const {
71
66
  setIsInserterOpened
72
67
  } = (0, _data.useDispatch)(_store.store);
73
68
  const settings = (0, _element.useMemo)(() => {
74
69
  let mediaUploadBlockEditor;
75
70
 
76
- if (hasUploadPermissions) {
71
+ if (mediaPermissions.canCreate) {
77
72
  mediaUploadBlockEditor = _ref2 => {
78
73
  let {
79
74
  onError,
@@ -100,7 +95,7 @@ function WidgetAreasBlockEditorProvider(_ref) {
100
95
  templateLock: 'all',
101
96
  __experimentalSetIsInserterOpened: setIsInserterOpened
102
97
  };
103
- }, [blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, hasUploadPermissions, reusableBlocks, setIsInserterOpened]);
98
+ }, [blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, mediaPermissions.canCreate, reusableBlocks, setIsInserterOpened]);
104
99
  const widgetAreaId = (0, _useLastSelectedWidgetArea.default)();
105
100
  const [blocks, onInput, onChange] = (0, _coreData.useEntityBlockEditor)(_utils.KIND, _utils.POST_TYPE, {
106
101
  id: (0, _utils.buildWidgetAreasPostId)()
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/widget-areas-block-editor-provider/index.js"],"names":["WidgetAreasBlockEditorProvider","blockEditorSettings","children","props","hasUploadPermissions","reusableBlocks","isFixedToolbarActive","keepCaretInsideBlock","select","coreStore","canUser","widgetAreas","editWidgetsStore","getWidgetAreas","widgets","getWidgets","ALLOW_REUSABLE_BLOCKS","getEntityRecords","preferencesStore","get","setIsInserterOpened","settings","mediaUploadBlockEditor","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalReusableBlocks","hasFixedToolbar","mediaUpload","templateLock","__experimentalSetIsInserterOpened","widgetAreaId","blocks","onInput","onChange","KIND","POST_TYPE","id"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tBlockEditorProvider,\n\tBlockEditorKeyboardShortcuts,\n\tCopyHandler,\n} from '@wordpress/block-editor';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { ShortcutProvider } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\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';\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst {\n\t\thasUploadPermissions,\n\t\treusableBlocks,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\thasUploadPermissions:\n\t\t\t\tselect( coreStore ).canUser( 'create', 'media' ) ?? true,\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? select( coreStore ).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} ),\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,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t};\n\t}, [\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\thasUploadPermissions,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\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<ShortcutProvider>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<SlotFillProvider>\n\t\t\t\t<BlockEditorProvider\n\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<CopyHandler>{ children }</CopyHandler>\n\t\t\t\t\t<ReusableBlocksMenuItems rootClientId={ widgetAreaId } />\n\t\t\t\t</BlockEditorProvider>\n\t\t\t</SlotFillProvider>\n\t\t</ShortcutProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/widget-areas-block-editor-provider/index.js"],"names":["WidgetAreasBlockEditorProvider","blockEditorSettings","children","props","mediaPermissions","reusableBlocks","isFixedToolbarActive","keepCaretInsideBlock","select","widgetAreas","editWidgetsStore","getWidgetAreas","widgets","getWidgets","ALLOW_REUSABLE_BLOCKS","coreStore","getEntityRecords","preferencesStore","get","setIsInserterOpened","settings","mediaUploadBlockEditor","canCreate","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalReusableBlocks","hasFixedToolbar","mediaUpload","templateLock","__experimentalSetIsInserterOpened","widgetAreaId","blocks","onInput","onChange","KIND","POST_TYPE","id"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\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 {\n\tBlockEditorProvider,\n\tBlockEditorKeyboardShortcuts,\n\tCopyHandler,\n} from '@wordpress/block-editor';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { ShortcutProvider } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\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';\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst mediaPermissions = useResourcePermissions( 'media' );\n\tconst { reusableBlocks, isFixedToolbarActive, keepCaretInsideBlock } =\n\t\tuseSelect(\n\t\t\t( select ) => ( {\n\t\t\t\twidgetAreas: select( editWidgetsStore ).getWidgetAreas(),\n\t\t\t\twidgets: select( editWidgetsStore ).getWidgets(),\n\t\t\t\treusableBlocks: ALLOW_REUSABLE_BLOCKS\n\t\t\t\t\t? select( coreStore ).getEntityRecords(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t'wp_block'\n\t\t\t\t\t )\n\t\t\t\t\t: [],\n\t\t\t\tisFixedToolbarActive: !! select( preferencesStore ).get(\n\t\t\t\t\t'core/edit-widgets',\n\t\t\t\t\t'fixedToolbar'\n\t\t\t\t),\n\t\t\t\tkeepCaretInsideBlock: !! select( preferencesStore ).get(\n\t\t\t\t\t'core/edit-widgets',\n\t\t\t\t\t'keepCaretInsideBlock'\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[]\n\t\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,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t};\n\t}, [\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tmediaPermissions.canCreate,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\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<ShortcutProvider>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<SlotFillProvider>\n\t\t\t\t<BlockEditorProvider\n\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<CopyHandler>{ children }</CopyHandler>\n\t\t\t\t\t<ReusableBlocksMenuItems rootClientId={ widgetAreaId } />\n\t\t\t\t</BlockEditorProvider>\n\t\t\t</SlotFillProvider>\n\t\t</ShortcutProvider>\n\t);\n}\n"]}
@@ -22,7 +22,9 @@ var _widgets = require("@wordpress/widgets");
22
22
  */
23
23
  function transformWidgetToBlock(widget) {
24
24
  if (widget.id_base === 'block') {
25
- const parsedBlocks = (0, _blocks.parse)(widget.instance.raw.content);
25
+ const parsedBlocks = (0, _blocks.parse)(widget.instance.raw.content, {
26
+ __unstableSkipAutop: true
27
+ });
26
28
 
27
29
  if (!parsedBlocks.length) {
28
30
  return (0, _widgets.addWidgetIdToBlock)((0, _blocks.createBlock)('core/paragraph', {}, []), widget.id);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/store/transformers.js"],"names":["transformWidgetToBlock","widget","id_base","parsedBlocks","instance","raw","content","length","id","attributes","_embedded","about","is_multi","idBase","transformBlockToWidget","block","relatedWidget","isValidLegacyWidgetBlock","name","rendered","rendered_form"],"mappings":";;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,sBAAT,CAAiCC,MAAjC,EAA0C;AAChD,MAAKA,MAAM,CAACC,OAAP,KAAmB,OAAxB,EAAkC;AACjC,UAAMC,YAAY,GAAG,mBAAOF,MAAM,CAACG,QAAP,CAAgBC,GAAhB,CAAoBC,OAA3B,CAArB;;AACA,QAAK,CAAEH,YAAY,CAACI,MAApB,EAA6B;AAC5B,aAAO,iCACN,yBAAa,gBAAb,EAA+B,EAA/B,EAAmC,EAAnC,CADM,EAENN,MAAM,CAACO,EAFD,CAAP;AAIA;;AACD,WAAO,iCAAoBL,YAAY,CAAE,CAAF,CAAhC,EAAuCF,MAAM,CAACO,EAA9C,CAAP;AACA;;AAED,MAAIC,UAAJ;;AACA,MAAKR,MAAM,CAACS,SAAP,CAAiBC,KAAjB,CAAwB,CAAxB,EAA4BC,QAAjC,EAA4C;AAC3CH,IAAAA,UAAU,GAAG;AACZI,MAAAA,MAAM,EAAEZ,MAAM,CAACC,OADH;AAEZE,MAAAA,QAAQ,EAAEH,MAAM,CAACG;AAFL,KAAb;AAIA,GALD,MAKO;AACNK,IAAAA,UAAU,GAAG;AACZD,MAAAA,EAAE,EAAEP,MAAM,CAACO;AADC,KAAb;AAGA;;AAED,SAAO,iCACN,yBAAa,oBAAb,EAAmCC,UAAnC,EAA+C,EAA/C,CADM,EAENR,MAAM,CAACO,EAFD,CAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASM,sBAAT,CAAiCC,KAAjC,EAA6D;AAAA,MAArBC,aAAqB,uEAAL,EAAK;AACnE,MAAIf,MAAJ;AAEA,QAAMgB,wBAAwB,GAC7BF,KAAK,CAACG,IAAN,KAAe,oBAAf,KACEH,KAAK,CAACN,UAAN,CAAiBD,EAAjB,IAAuBO,KAAK,CAACN,UAAN,CAAiBL,QAD1C,CADD;;AAIA,MAAKa,wBAAL,EAAgC;AAAA;;AAC/BhB,IAAAA,MAAM,GAAG,EACR,GAAGe,aADK;AAERR,MAAAA,EAAE,0BAAEO,KAAK,CAACN,UAAN,CAAiBD,EAAnB,uEAAyBQ,aAAa,CAACR,EAFjC;AAGRN,MAAAA,OAAO,2BAAEa,KAAK,CAACN,UAAN,CAAiBI,MAAnB,yEAA6BG,aAAa,CAACd,OAH1C;AAIRE,MAAAA,QAAQ,2BAAEW,KAAK,CAACN,UAAN,CAAiBL,QAAnB,yEAA+BY,aAAa,CAACZ;AAJ7C,KAAT;AAMA,GAPD,MAOO;AACNH,IAAAA,MAAM,GAAG,EACR,GAAGe,aADK;AAERd,MAAAA,OAAO,EAAE,OAFD;AAGRE,MAAAA,QAAQ,EAAE;AACTC,QAAAA,GAAG,EAAE;AACJC,UAAAA,OAAO,EAAE,uBAAWS,KAAX;AADL;AADI;AAHF,KAAT;AASA,GAxBkE,CA0BnE;;;AACA,SAAOd,MAAM,CAACkB,QAAd;AACA,SAAOlB,MAAM,CAACmB,aAAd;AAEA,SAAOnB,MAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse, serialize } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base === 'block' ) {\n\t\tconst parsedBlocks = parse( widget.instance.raw.content );\n\t\tif ( ! parsedBlocks.length ) {\n\t\t\treturn addWidgetIdToBlock(\n\t\t\t\tcreateBlock( 'core/paragraph', {}, [] ),\n\t\t\t\twidget.id\n\t\t\t);\n\t\t}\n\t\treturn addWidgetIdToBlock( parsedBlocks[ 0 ], widget.id );\n\t}\n\n\tlet attributes;\n\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\tattributes = {\n\t\t\tidBase: widget.id_base,\n\t\t\tinstance: widget.instance,\n\t\t};\n\t} else {\n\t\tattributes = {\n\t\t\tid: widget.id,\n\t\t};\n\t}\n\n\treturn addWidgetIdToBlock(\n\t\tcreateBlock( 'core/legacy-widget', attributes, [] ),\n\t\twidget.id\n\t);\n}\n\n/**\n * Converts a block to a widget entity record.\n *\n * @param {Object} block The block.\n * @param {Object?} relatedWidget A related widget entity record from the API (optional).\n * @return {Object} the widget object (converted from block).\n */\nexport function transformBlockToWidget( block, relatedWidget = {} ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid: block.attributes.id ?? relatedWidget.id,\n\t\t\tid_base: block.attributes.idBase ?? relatedWidget.id_base,\n\t\t\tinstance: block.attributes.instance ?? relatedWidget.instance,\n\t\t};\n\t} else {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid_base: 'block',\n\t\t\tinstance: {\n\t\t\t\traw: {\n\t\t\t\t\tcontent: serialize( block ),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t// Delete read-only properties.\n\tdelete widget.rendered;\n\tdelete widget.rendered_form;\n\n\treturn widget;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/store/transformers.js"],"names":["transformWidgetToBlock","widget","id_base","parsedBlocks","instance","raw","content","__unstableSkipAutop","length","id","attributes","_embedded","about","is_multi","idBase","transformBlockToWidget","block","relatedWidget","isValidLegacyWidgetBlock","name","rendered","rendered_form"],"mappings":";;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,sBAAT,CAAiCC,MAAjC,EAA0C;AAChD,MAAKA,MAAM,CAACC,OAAP,KAAmB,OAAxB,EAAkC;AACjC,UAAMC,YAAY,GAAG,mBAAOF,MAAM,CAACG,QAAP,CAAgBC,GAAhB,CAAoBC,OAA3B,EAAoC;AACxDC,MAAAA,mBAAmB,EAAE;AADmC,KAApC,CAArB;;AAGA,QAAK,CAAEJ,YAAY,CAACK,MAApB,EAA6B;AAC5B,aAAO,iCACN,yBAAa,gBAAb,EAA+B,EAA/B,EAAmC,EAAnC,CADM,EAENP,MAAM,CAACQ,EAFD,CAAP;AAIA;;AACD,WAAO,iCAAoBN,YAAY,CAAE,CAAF,CAAhC,EAAuCF,MAAM,CAACQ,EAA9C,CAAP;AACA;;AAED,MAAIC,UAAJ;;AACA,MAAKT,MAAM,CAACU,SAAP,CAAiBC,KAAjB,CAAwB,CAAxB,EAA4BC,QAAjC,EAA4C;AAC3CH,IAAAA,UAAU,GAAG;AACZI,MAAAA,MAAM,EAAEb,MAAM,CAACC,OADH;AAEZE,MAAAA,QAAQ,EAAEH,MAAM,CAACG;AAFL,KAAb;AAIA,GALD,MAKO;AACNM,IAAAA,UAAU,GAAG;AACZD,MAAAA,EAAE,EAAER,MAAM,CAACQ;AADC,KAAb;AAGA;;AAED,SAAO,iCACN,yBAAa,oBAAb,EAAmCC,UAAnC,EAA+C,EAA/C,CADM,EAENT,MAAM,CAACQ,EAFD,CAAP;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASM,sBAAT,CAAiCC,KAAjC,EAA6D;AAAA,MAArBC,aAAqB,uEAAL,EAAK;AACnE,MAAIhB,MAAJ;AAEA,QAAMiB,wBAAwB,GAC7BF,KAAK,CAACG,IAAN,KAAe,oBAAf,KACEH,KAAK,CAACN,UAAN,CAAiBD,EAAjB,IAAuBO,KAAK,CAACN,UAAN,CAAiBN,QAD1C,CADD;;AAIA,MAAKc,wBAAL,EAAgC;AAAA;;AAC/BjB,IAAAA,MAAM,GAAG,EACR,GAAGgB,aADK;AAERR,MAAAA,EAAE,0BAAEO,KAAK,CAACN,UAAN,CAAiBD,EAAnB,uEAAyBQ,aAAa,CAACR,EAFjC;AAGRP,MAAAA,OAAO,2BAAEc,KAAK,CAACN,UAAN,CAAiBI,MAAnB,yEAA6BG,aAAa,CAACf,OAH1C;AAIRE,MAAAA,QAAQ,2BAAEY,KAAK,CAACN,UAAN,CAAiBN,QAAnB,yEAA+Ba,aAAa,CAACb;AAJ7C,KAAT;AAMA,GAPD,MAOO;AACNH,IAAAA,MAAM,GAAG,EACR,GAAGgB,aADK;AAERf,MAAAA,OAAO,EAAE,OAFD;AAGRE,MAAAA,QAAQ,EAAE;AACTC,QAAAA,GAAG,EAAE;AACJC,UAAAA,OAAO,EAAE,uBAAWU,KAAX;AADL;AADI;AAHF,KAAT;AASA,GAxBkE,CA0BnE;;;AACA,SAAOf,MAAM,CAACmB,QAAd;AACA,SAAOnB,MAAM,CAACoB,aAAd;AAEA,SAAOpB,MAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse, serialize } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base === 'block' ) {\n\t\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tif ( ! parsedBlocks.length ) {\n\t\t\treturn addWidgetIdToBlock(\n\t\t\t\tcreateBlock( 'core/paragraph', {}, [] ),\n\t\t\t\twidget.id\n\t\t\t);\n\t\t}\n\t\treturn addWidgetIdToBlock( parsedBlocks[ 0 ], widget.id );\n\t}\n\n\tlet attributes;\n\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\tattributes = {\n\t\t\tidBase: widget.id_base,\n\t\t\tinstance: widget.instance,\n\t\t};\n\t} else {\n\t\tattributes = {\n\t\t\tid: widget.id,\n\t\t};\n\t}\n\n\treturn addWidgetIdToBlock(\n\t\tcreateBlock( 'core/legacy-widget', attributes, [] ),\n\t\twidget.id\n\t);\n}\n\n/**\n * Converts a block to a widget entity record.\n *\n * @param {Object} block The block.\n * @param {Object?} relatedWidget A related widget entity record from the API (optional).\n * @return {Object} the widget object (converted from block).\n */\nexport function transformBlockToWidget( block, relatedWidget = {} ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid: block.attributes.id ?? relatedWidget.id,\n\t\t\tid_base: block.attributes.idBase ?? relatedWidget.id_base,\n\t\t\tinstance: block.attributes.instance ?? relatedWidget.instance,\n\t\t};\n\t} else {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid_base: 'block',\n\t\t\tinstance: {\n\t\t\t\traw: {\n\t\t\t\t\tcontent: serialize( block ),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t// Delete read-only properties.\n\tdelete widget.rendered;\n\tdelete widget.rendered_form;\n\n\treturn widget;\n}\n"]}
@@ -7,9 +7,10 @@ import { __, isRTL } from '@wordpress/i18n';
7
7
  import { ToolbarButton } from '@wordpress/components';
8
8
  import { useSelect, useDispatch } from '@wordpress/data';
9
9
  import { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';
10
- import { displayShortcut } from '@wordpress/keycodes';
10
+ import { displayShortcut, isAppleOS } from '@wordpress/keycodes';
11
11
  import { store as coreStore } from '@wordpress/core-data';
12
12
  export default function RedoButton() {
13
+ const shortcut = isAppleOS() ? displayShortcut.primaryShift('z') : displayShortcut.primary('y');
13
14
  const hasRedo = useSelect(select => select(coreStore).hasRedo(), []);
14
15
  const {
15
16
  redo
@@ -17,7 +18,7 @@ export default function RedoButton() {
17
18
  return createElement(ToolbarButton, {
18
19
  icon: !isRTL() ? redoIcon : undoIcon,
19
20
  label: __('Redo'),
20
- shortcut: displayShortcut.primaryShift('z') // If there are no undo levels we don't want to actually disable this
21
+ shortcut: shortcut // If there are no undo levels we don't want to actually disable this
21
22
  // button, because it will remove focus for keyboard users.
22
23
  // See: https://github.com/WordPress/gutenberg/issues/3486
23
24
  ,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/header/undo-redo/redo.js"],"names":["__","isRTL","ToolbarButton","useSelect","useDispatch","redo","redoIcon","undo","undoIcon","displayShortcut","store","coreStore","RedoButton","hasRedo","select","primaryShift","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,KAAb,QAA0B,iBAA1B;AACA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,IAAI,IAAIC,QAAjB,EAA2BC,IAAI,IAAIC,QAAnC,QAAmD,kBAAnD;AACA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,QAAMC,OAAO,GAAGV,SAAS,CACtBW,MAAF,IAAcA,MAAM,CAAEH,SAAF,CAAN,CAAoBE,OAApB,EADU,EAExB,EAFwB,CAAzB;AAIA,QAAM;AAAER,IAAAA;AAAF,MAAWD,WAAW,CAAEO,SAAF,CAA5B;AACA,SACC,cAAC,aAAD;AACC,IAAA,IAAI,EAAG,CAAEV,KAAK,EAAP,GAAYK,QAAZ,GAAuBE,QAD/B;AAEC,IAAA,KAAK,EAAGR,EAAE,CAAE,MAAF,CAFX;AAGC,IAAA,QAAQ,EAAGS,eAAe,CAACM,YAAhB,CAA8B,GAA9B,CAHZ,CAIC;AACA;AACA;AAND;AAOC,qBAAgB,CAAEF,OAPnB;AAQC,IAAA,OAAO,EAAGA,OAAO,GAAGR,IAAH,GAAUW;AAR5B,IADD;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function RedoButton() {\n\tconst hasRedo = useSelect(\n\t\t( select ) => select( coreStore ).hasRedo(),\n\t\t[]\n\t);\n\tconst { redo } = useDispatch( coreStore );\n\treturn (\n\t\t<ToolbarButton\n\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\tlabel={ __( 'Redo' ) }\n\t\t\tshortcut={ displayShortcut.primaryShift( 'z' ) }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasRedo }\n\t\t\tonClick={ hasRedo ? redo : undefined }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/header/undo-redo/redo.js"],"names":["__","isRTL","ToolbarButton","useSelect","useDispatch","redo","redoIcon","undo","undoIcon","displayShortcut","isAppleOS","store","coreStore","RedoButton","shortcut","primaryShift","primary","hasRedo","select","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,KAAb,QAA0B,iBAA1B;AACA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,IAAI,IAAIC,QAAjB,EAA2BC,IAAI,IAAIC,QAAnC,QAAmD,kBAAnD;AACA,SAASC,eAAT,EAA0BC,SAA1B,QAA2C,qBAA3C;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,QAAMC,QAAQ,GAAGJ,SAAS,KACvBD,eAAe,CAACM,YAAhB,CAA8B,GAA9B,CADuB,GAEvBN,eAAe,CAACO,OAAhB,CAAyB,GAAzB,CAFH;AAIA,QAAMC,OAAO,GAAGd,SAAS,CACtBe,MAAF,IAAcA,MAAM,CAAEN,SAAF,CAAN,CAAoBK,OAApB,EADU,EAExB,EAFwB,CAAzB;AAIA,QAAM;AAAEZ,IAAAA;AAAF,MAAWD,WAAW,CAAEQ,SAAF,CAA5B;AACA,SACC,cAAC,aAAD;AACC,IAAA,IAAI,EAAG,CAAEX,KAAK,EAAP,GAAYK,QAAZ,GAAuBE,QAD/B;AAEC,IAAA,KAAK,EAAGR,EAAE,CAAE,MAAF,CAFX;AAGC,IAAA,QAAQ,EAAGc,QAHZ,CAIC;AACA;AACA;AAND;AAOC,qBAAgB,CAAEG,OAPnB;AAQC,IAAA,OAAO,EAAGA,OAAO,GAAGZ,IAAH,GAAUc;AAR5B,IADD;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';\nimport { displayShortcut, isAppleOS } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function RedoButton() {\n\tconst shortcut = isAppleOS()\n\t\t? displayShortcut.primaryShift( 'z' )\n\t\t: displayShortcut.primary( 'y' );\n\n\tconst hasRedo = useSelect(\n\t\t( select ) => select( coreStore ).hasRedo(),\n\t\t[]\n\t);\n\tconst { redo } = useDispatch( coreStore );\n\treturn (\n\t\t<ToolbarButton\n\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\tlabel={ __( 'Redo' ) }\n\t\t\tshortcut={ shortcut }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasRedo }\n\t\t\tonClick={ hasRedo ? redo : undefined }\n\t\t/>\n\t);\n}\n"]}
@@ -7,6 +7,7 @@ import { createElement } from "@wordpress/element";
7
7
  import { SlotFillProvider } from '@wordpress/components';
8
8
  import { uploadMedia } from '@wordpress/media-utils';
9
9
  import { useDispatch, useSelect } from '@wordpress/data';
10
+ import { useEntityBlockEditor, store as coreStore, useResourcePermissions } from '@wordpress/core-data';
10
11
  import { useMemo } from '@wordpress/element';
11
12
  import { BlockEditorProvider, BlockEditorKeyboardShortcuts, CopyHandler } from '@wordpress/block-editor';
12
13
  import { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';
@@ -17,7 +18,6 @@ import { store as preferencesStore } from '@wordpress/preferences';
17
18
  */
18
19
 
19
20
  import KeyboardShortcuts from '../keyboard-shortcuts';
20
- import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
21
21
  import { buildWidgetAreasPostId, KIND, POST_TYPE } from '../../store/utils';
22
22
  import useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';
23
23
  import { store as editWidgetsStore } from '../../store';
@@ -28,30 +28,25 @@ export default function WidgetAreasBlockEditorProvider(_ref) {
28
28
  children,
29
29
  ...props
30
30
  } = _ref;
31
+ const mediaPermissions = useResourcePermissions('media');
31
32
  const {
32
- hasUploadPermissions,
33
33
  reusableBlocks,
34
34
  isFixedToolbarActive,
35
35
  keepCaretInsideBlock
36
- } = useSelect(select => {
37
- var _select$canUser;
38
-
39
- return {
40
- hasUploadPermissions: (_select$canUser = select(coreStore).canUser('create', 'media')) !== null && _select$canUser !== void 0 ? _select$canUser : true,
41
- widgetAreas: select(editWidgetsStore).getWidgetAreas(),
42
- widgets: select(editWidgetsStore).getWidgets(),
43
- reusableBlocks: ALLOW_REUSABLE_BLOCKS ? select(coreStore).getEntityRecords('postType', 'wp_block') : [],
44
- isFixedToolbarActive: !!select(preferencesStore).get('core/edit-widgets', 'fixedToolbar'),
45
- keepCaretInsideBlock: !!select(preferencesStore).get('core/edit-widgets', 'keepCaretInsideBlock')
46
- };
47
- }, []);
36
+ } = useSelect(select => ({
37
+ widgetAreas: select(editWidgetsStore).getWidgetAreas(),
38
+ widgets: select(editWidgetsStore).getWidgets(),
39
+ reusableBlocks: ALLOW_REUSABLE_BLOCKS ? select(coreStore).getEntityRecords('postType', 'wp_block') : [],
40
+ isFixedToolbarActive: !!select(preferencesStore).get('core/edit-widgets', 'fixedToolbar'),
41
+ keepCaretInsideBlock: !!select(preferencesStore).get('core/edit-widgets', 'keepCaretInsideBlock')
42
+ }), []);
48
43
  const {
49
44
  setIsInserterOpened
50
45
  } = useDispatch(editWidgetsStore);
51
46
  const settings = useMemo(() => {
52
47
  let mediaUploadBlockEditor;
53
48
 
54
- if (hasUploadPermissions) {
49
+ if (mediaPermissions.canCreate) {
55
50
  mediaUploadBlockEditor = _ref2 => {
56
51
  let {
57
52
  onError,
@@ -78,7 +73,7 @@ export default function WidgetAreasBlockEditorProvider(_ref) {
78
73
  templateLock: 'all',
79
74
  __experimentalSetIsInserterOpened: setIsInserterOpened
80
75
  };
81
- }, [blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, hasUploadPermissions, reusableBlocks, setIsInserterOpened]);
76
+ }, [blockEditorSettings, isFixedToolbarActive, keepCaretInsideBlock, mediaPermissions.canCreate, reusableBlocks, setIsInserterOpened]);
82
77
  const widgetAreaId = useLastSelectedWidgetArea();
83
78
  const [blocks, onInput, onChange] = useEntityBlockEditor(KIND, POST_TYPE, {
84
79
  id: buildWidgetAreasPostId()
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/widget-areas-block-editor-provider/index.js"],"names":["SlotFillProvider","uploadMedia","useDispatch","useSelect","useMemo","BlockEditorProvider","BlockEditorKeyboardShortcuts","CopyHandler","ReusableBlocksMenuItems","ShortcutProvider","store","preferencesStore","KeyboardShortcuts","useEntityBlockEditor","coreStore","buildWidgetAreasPostId","KIND","POST_TYPE","useLastSelectedWidgetArea","editWidgetsStore","ALLOW_REUSABLE_BLOCKS","WidgetAreasBlockEditorProvider","blockEditorSettings","children","props","hasUploadPermissions","reusableBlocks","isFixedToolbarActive","keepCaretInsideBlock","select","canUser","widgetAreas","getWidgetAreas","widgets","getWidgets","getEntityRecords","get","setIsInserterOpened","settings","mediaUploadBlockEditor","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalReusableBlocks","hasFixedToolbar","mediaUpload","templateLock","__experimentalSetIsInserterOpened","widgetAreaId","blocks","onInput","onChange","id"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tBlockEditorProvider,\n\tBlockEditorKeyboardShortcuts,\n\tCopyHandler,\n} from '@wordpress/block-editor';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { ShortcutProvider } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\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';\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst {\n\t\thasUploadPermissions,\n\t\treusableBlocks,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\thasUploadPermissions:\n\t\t\t\tselect( coreStore ).canUser( 'create', 'media' ) ?? true,\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? select( coreStore ).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} ),\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,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t};\n\t}, [\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\thasUploadPermissions,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\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<ShortcutProvider>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<SlotFillProvider>\n\t\t\t\t<BlockEditorProvider\n\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<CopyHandler>{ children }</CopyHandler>\n\t\t\t\t\t<ReusableBlocksMenuItems rootClientId={ widgetAreaId } />\n\t\t\t\t</BlockEditorProvider>\n\t\t\t</SlotFillProvider>\n\t\t</ShortcutProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/widget-areas-block-editor-provider/index.js"],"names":["SlotFillProvider","uploadMedia","useDispatch","useSelect","useEntityBlockEditor","store","coreStore","useResourcePermissions","useMemo","BlockEditorProvider","BlockEditorKeyboardShortcuts","CopyHandler","ReusableBlocksMenuItems","ShortcutProvider","preferencesStore","KeyboardShortcuts","buildWidgetAreasPostId","KIND","POST_TYPE","useLastSelectedWidgetArea","editWidgetsStore","ALLOW_REUSABLE_BLOCKS","WidgetAreasBlockEditorProvider","blockEditorSettings","children","props","mediaPermissions","reusableBlocks","isFixedToolbarActive","keepCaretInsideBlock","select","widgetAreas","getWidgetAreas","widgets","getWidgets","getEntityRecords","get","setIsInserterOpened","settings","mediaUploadBlockEditor","canCreate","onError","argumentsObject","wpAllowedMimeTypes","allowedMimeTypes","message","__experimentalReusableBlocks","hasFixedToolbar","mediaUpload","templateLock","__experimentalSetIsInserterOpened","widgetAreaId","blocks","onInput","onChange","id"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\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 {\n\tBlockEditorProvider,\n\tBlockEditorKeyboardShortcuts,\n\tCopyHandler,\n} from '@wordpress/block-editor';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { ShortcutProvider } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\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';\n\nexport default function WidgetAreasBlockEditorProvider( {\n\tblockEditorSettings,\n\tchildren,\n\t...props\n} ) {\n\tconst mediaPermissions = useResourcePermissions( 'media' );\n\tconst { reusableBlocks, isFixedToolbarActive, keepCaretInsideBlock } =\n\t\tuseSelect(\n\t\t\t( select ) => ( {\n\t\t\t\twidgetAreas: select( editWidgetsStore ).getWidgetAreas(),\n\t\t\t\twidgets: select( editWidgetsStore ).getWidgets(),\n\t\t\t\treusableBlocks: ALLOW_REUSABLE_BLOCKS\n\t\t\t\t\t? select( coreStore ).getEntityRecords(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t'wp_block'\n\t\t\t\t\t )\n\t\t\t\t\t: [],\n\t\t\t\tisFixedToolbarActive: !! select( preferencesStore ).get(\n\t\t\t\t\t'core/edit-widgets',\n\t\t\t\t\t'fixedToolbar'\n\t\t\t\t),\n\t\t\t\tkeepCaretInsideBlock: !! select( preferencesStore ).get(\n\t\t\t\t\t'core/edit-widgets',\n\t\t\t\t\t'keepCaretInsideBlock'\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[]\n\t\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,\n\t\t\tkeepCaretInsideBlock,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\ttemplateLock: 'all',\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t};\n\t}, [\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tmediaPermissions.canCreate,\n\t\treusableBlocks,\n\t\tsetIsInserterOpened,\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<ShortcutProvider>\n\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<SlotFillProvider>\n\t\t\t\t<BlockEditorProvider\n\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<CopyHandler>{ children }</CopyHandler>\n\t\t\t\t\t<ReusableBlocksMenuItems rootClientId={ widgetAreaId } />\n\t\t\t\t</BlockEditorProvider>\n\t\t\t</SlotFillProvider>\n\t\t</ShortcutProvider>\n\t);\n}\n"]}
@@ -12,7 +12,9 @@ import { addWidgetIdToBlock } from '@wordpress/widgets';
12
12
 
13
13
  export function transformWidgetToBlock(widget) {
14
14
  if (widget.id_base === 'block') {
15
- const parsedBlocks = parse(widget.instance.raw.content);
15
+ const parsedBlocks = parse(widget.instance.raw.content, {
16
+ __unstableSkipAutop: true
17
+ });
16
18
 
17
19
  if (!parsedBlocks.length) {
18
20
  return addWidgetIdToBlock(createBlock('core/paragraph', {}, []), widget.id);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/store/transformers.js"],"names":["createBlock","parse","serialize","addWidgetIdToBlock","transformWidgetToBlock","widget","id_base","parsedBlocks","instance","raw","content","length","id","attributes","_embedded","about","is_multi","idBase","transformBlockToWidget","block","relatedWidget","isValidLegacyWidgetBlock","name","rendered","rendered_form"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,KAAtB,EAA6BC,SAA7B,QAA8C,mBAA9C;AACA,SAASC,kBAAT,QAAmC,oBAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,sBAAT,CAAiCC,MAAjC,EAA0C;AAChD,MAAKA,MAAM,CAACC,OAAP,KAAmB,OAAxB,EAAkC;AACjC,UAAMC,YAAY,GAAGN,KAAK,CAAEI,MAAM,CAACG,QAAP,CAAgBC,GAAhB,CAAoBC,OAAtB,CAA1B;;AACA,QAAK,CAAEH,YAAY,CAACI,MAApB,EAA6B;AAC5B,aAAOR,kBAAkB,CACxBH,WAAW,CAAE,gBAAF,EAAoB,EAApB,EAAwB,EAAxB,CADa,EAExBK,MAAM,CAACO,EAFiB,CAAzB;AAIA;;AACD,WAAOT,kBAAkB,CAAEI,YAAY,CAAE,CAAF,CAAd,EAAqBF,MAAM,CAACO,EAA5B,CAAzB;AACA;;AAED,MAAIC,UAAJ;;AACA,MAAKR,MAAM,CAACS,SAAP,CAAiBC,KAAjB,CAAwB,CAAxB,EAA4BC,QAAjC,EAA4C;AAC3CH,IAAAA,UAAU,GAAG;AACZI,MAAAA,MAAM,EAAEZ,MAAM,CAACC,OADH;AAEZE,MAAAA,QAAQ,EAAEH,MAAM,CAACG;AAFL,KAAb;AAIA,GALD,MAKO;AACNK,IAAAA,UAAU,GAAG;AACZD,MAAAA,EAAE,EAAEP,MAAM,CAACO;AADC,KAAb;AAGA;;AAED,SAAOT,kBAAkB,CACxBH,WAAW,CAAE,oBAAF,EAAwBa,UAAxB,EAAoC,EAApC,CADa,EAExBR,MAAM,CAACO,EAFiB,CAAzB;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASM,sBAAT,CAAiCC,KAAjC,EAA6D;AAAA,MAArBC,aAAqB,uEAAL,EAAK;AACnE,MAAIf,MAAJ;AAEA,QAAMgB,wBAAwB,GAC7BF,KAAK,CAACG,IAAN,KAAe,oBAAf,KACEH,KAAK,CAACN,UAAN,CAAiBD,EAAjB,IAAuBO,KAAK,CAACN,UAAN,CAAiBL,QAD1C,CADD;;AAIA,MAAKa,wBAAL,EAAgC;AAAA;;AAC/BhB,IAAAA,MAAM,GAAG,EACR,GAAGe,aADK;AAERR,MAAAA,EAAE,0BAAEO,KAAK,CAACN,UAAN,CAAiBD,EAAnB,uEAAyBQ,aAAa,CAACR,EAFjC;AAGRN,MAAAA,OAAO,2BAAEa,KAAK,CAACN,UAAN,CAAiBI,MAAnB,yEAA6BG,aAAa,CAACd,OAH1C;AAIRE,MAAAA,QAAQ,2BAAEW,KAAK,CAACN,UAAN,CAAiBL,QAAnB,yEAA+BY,aAAa,CAACZ;AAJ7C,KAAT;AAMA,GAPD,MAOO;AACNH,IAAAA,MAAM,GAAG,EACR,GAAGe,aADK;AAERd,MAAAA,OAAO,EAAE,OAFD;AAGRE,MAAAA,QAAQ,EAAE;AACTC,QAAAA,GAAG,EAAE;AACJC,UAAAA,OAAO,EAAER,SAAS,CAAEiB,KAAF;AADd;AADI;AAHF,KAAT;AASA,GAxBkE,CA0BnE;;;AACA,SAAOd,MAAM,CAACkB,QAAd;AACA,SAAOlB,MAAM,CAACmB,aAAd;AAEA,SAAOnB,MAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse, serialize } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base === 'block' ) {\n\t\tconst parsedBlocks = parse( widget.instance.raw.content );\n\t\tif ( ! parsedBlocks.length ) {\n\t\t\treturn addWidgetIdToBlock(\n\t\t\t\tcreateBlock( 'core/paragraph', {}, [] ),\n\t\t\t\twidget.id\n\t\t\t);\n\t\t}\n\t\treturn addWidgetIdToBlock( parsedBlocks[ 0 ], widget.id );\n\t}\n\n\tlet attributes;\n\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\tattributes = {\n\t\t\tidBase: widget.id_base,\n\t\t\tinstance: widget.instance,\n\t\t};\n\t} else {\n\t\tattributes = {\n\t\t\tid: widget.id,\n\t\t};\n\t}\n\n\treturn addWidgetIdToBlock(\n\t\tcreateBlock( 'core/legacy-widget', attributes, [] ),\n\t\twidget.id\n\t);\n}\n\n/**\n * Converts a block to a widget entity record.\n *\n * @param {Object} block The block.\n * @param {Object?} relatedWidget A related widget entity record from the API (optional).\n * @return {Object} the widget object (converted from block).\n */\nexport function transformBlockToWidget( block, relatedWidget = {} ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid: block.attributes.id ?? relatedWidget.id,\n\t\t\tid_base: block.attributes.idBase ?? relatedWidget.id_base,\n\t\t\tinstance: block.attributes.instance ?? relatedWidget.instance,\n\t\t};\n\t} else {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid_base: 'block',\n\t\t\tinstance: {\n\t\t\t\traw: {\n\t\t\t\t\tcontent: serialize( block ),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t// Delete read-only properties.\n\tdelete widget.rendered;\n\tdelete widget.rendered_form;\n\n\treturn widget;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/store/transformers.js"],"names":["createBlock","parse","serialize","addWidgetIdToBlock","transformWidgetToBlock","widget","id_base","parsedBlocks","instance","raw","content","__unstableSkipAutop","length","id","attributes","_embedded","about","is_multi","idBase","transformBlockToWidget","block","relatedWidget","isValidLegacyWidgetBlock","name","rendered","rendered_form"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,KAAtB,EAA6BC,SAA7B,QAA8C,mBAA9C;AACA,SAASC,kBAAT,QAAmC,oBAAnC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,sBAAT,CAAiCC,MAAjC,EAA0C;AAChD,MAAKA,MAAM,CAACC,OAAP,KAAmB,OAAxB,EAAkC;AACjC,UAAMC,YAAY,GAAGN,KAAK,CAAEI,MAAM,CAACG,QAAP,CAAgBC,GAAhB,CAAoBC,OAAtB,EAA+B;AACxDC,MAAAA,mBAAmB,EAAE;AADmC,KAA/B,CAA1B;;AAGA,QAAK,CAAEJ,YAAY,CAACK,MAApB,EAA6B;AAC5B,aAAOT,kBAAkB,CACxBH,WAAW,CAAE,gBAAF,EAAoB,EAApB,EAAwB,EAAxB,CADa,EAExBK,MAAM,CAACQ,EAFiB,CAAzB;AAIA;;AACD,WAAOV,kBAAkB,CAAEI,YAAY,CAAE,CAAF,CAAd,EAAqBF,MAAM,CAACQ,EAA5B,CAAzB;AACA;;AAED,MAAIC,UAAJ;;AACA,MAAKT,MAAM,CAACU,SAAP,CAAiBC,KAAjB,CAAwB,CAAxB,EAA4BC,QAAjC,EAA4C;AAC3CH,IAAAA,UAAU,GAAG;AACZI,MAAAA,MAAM,EAAEb,MAAM,CAACC,OADH;AAEZE,MAAAA,QAAQ,EAAEH,MAAM,CAACG;AAFL,KAAb;AAIA,GALD,MAKO;AACNM,IAAAA,UAAU,GAAG;AACZD,MAAAA,EAAE,EAAER,MAAM,CAACQ;AADC,KAAb;AAGA;;AAED,SAAOV,kBAAkB,CACxBH,WAAW,CAAE,oBAAF,EAAwBc,UAAxB,EAAoC,EAApC,CADa,EAExBT,MAAM,CAACQ,EAFiB,CAAzB;AAIA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASM,sBAAT,CAAiCC,KAAjC,EAA6D;AAAA,MAArBC,aAAqB,uEAAL,EAAK;AACnE,MAAIhB,MAAJ;AAEA,QAAMiB,wBAAwB,GAC7BF,KAAK,CAACG,IAAN,KAAe,oBAAf,KACEH,KAAK,CAACN,UAAN,CAAiBD,EAAjB,IAAuBO,KAAK,CAACN,UAAN,CAAiBN,QAD1C,CADD;;AAIA,MAAKc,wBAAL,EAAgC;AAAA;;AAC/BjB,IAAAA,MAAM,GAAG,EACR,GAAGgB,aADK;AAERR,MAAAA,EAAE,0BAAEO,KAAK,CAACN,UAAN,CAAiBD,EAAnB,uEAAyBQ,aAAa,CAACR,EAFjC;AAGRP,MAAAA,OAAO,2BAAEc,KAAK,CAACN,UAAN,CAAiBI,MAAnB,yEAA6BG,aAAa,CAACf,OAH1C;AAIRE,MAAAA,QAAQ,2BAAEY,KAAK,CAACN,UAAN,CAAiBN,QAAnB,yEAA+Ba,aAAa,CAACb;AAJ7C,KAAT;AAMA,GAPD,MAOO;AACNH,IAAAA,MAAM,GAAG,EACR,GAAGgB,aADK;AAERf,MAAAA,OAAO,EAAE,OAFD;AAGRE,MAAAA,QAAQ,EAAE;AACTC,QAAAA,GAAG,EAAE;AACJC,UAAAA,OAAO,EAAER,SAAS,CAAEkB,KAAF;AADd;AADI;AAHF,KAAT;AASA,GAxBkE,CA0BnE;;;AACA,SAAOf,MAAM,CAACmB,QAAd;AACA,SAAOnB,MAAM,CAACoB,aAAd;AAEA,SAAOpB,MAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock, parse, serialize } from '@wordpress/blocks';\nimport { addWidgetIdToBlock } from '@wordpress/widgets';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base === 'block' ) {\n\t\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t\t__unstableSkipAutop: true,\n\t\t} );\n\t\tif ( ! parsedBlocks.length ) {\n\t\t\treturn addWidgetIdToBlock(\n\t\t\t\tcreateBlock( 'core/paragraph', {}, [] ),\n\t\t\t\twidget.id\n\t\t\t);\n\t\t}\n\t\treturn addWidgetIdToBlock( parsedBlocks[ 0 ], widget.id );\n\t}\n\n\tlet attributes;\n\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\tattributes = {\n\t\t\tidBase: widget.id_base,\n\t\t\tinstance: widget.instance,\n\t\t};\n\t} else {\n\t\tattributes = {\n\t\t\tid: widget.id,\n\t\t};\n\t}\n\n\treturn addWidgetIdToBlock(\n\t\tcreateBlock( 'core/legacy-widget', attributes, [] ),\n\t\twidget.id\n\t);\n}\n\n/**\n * Converts a block to a widget entity record.\n *\n * @param {Object} block The block.\n * @param {Object?} relatedWidget A related widget entity record from the API (optional).\n * @return {Object} the widget object (converted from block).\n */\nexport function transformBlockToWidget( block, relatedWidget = {} ) {\n\tlet widget;\n\n\tconst isValidLegacyWidgetBlock =\n\t\tblock.name === 'core/legacy-widget' &&\n\t\t( block.attributes.id || block.attributes.instance );\n\n\tif ( isValidLegacyWidgetBlock ) {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid: block.attributes.id ?? relatedWidget.id,\n\t\t\tid_base: block.attributes.idBase ?? relatedWidget.id_base,\n\t\t\tinstance: block.attributes.instance ?? relatedWidget.instance,\n\t\t};\n\t} else {\n\t\twidget = {\n\t\t\t...relatedWidget,\n\t\t\tid_base: 'block',\n\t\t\tinstance: {\n\t\t\t\traw: {\n\t\t\t\t\tcontent: serialize( block ),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t// Delete read-only properties.\n\tdelete widget.rendered;\n\tdelete widget.rendered_form;\n\n\treturn widget;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-widgets",
3
- "version": "4.10.0",
3
+ "version": "4.12.1-next.d6164808d3.0",
4
4
  "description": "Widgets Page module for WordPress..",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -27,30 +27,30 @@
27
27
  "react-native": "src/index",
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
- "@wordpress/api-fetch": "^6.10.0",
31
- "@wordpress/block-editor": "^9.5.0",
32
- "@wordpress/block-library": "^7.10.0",
33
- "@wordpress/blocks": "^11.12.0",
34
- "@wordpress/components": "^19.15.0",
35
- "@wordpress/compose": "^5.11.0",
36
- "@wordpress/core-data": "^4.11.0",
37
- "@wordpress/data": "^6.13.0",
38
- "@wordpress/deprecated": "^3.13.0",
39
- "@wordpress/dom": "^3.13.0",
40
- "@wordpress/element": "^4.11.0",
41
- "@wordpress/hooks": "^3.13.0",
42
- "@wordpress/i18n": "^4.13.0",
43
- "@wordpress/icons": "^9.4.0",
44
- "@wordpress/interface": "^4.12.0",
45
- "@wordpress/keyboard-shortcuts": "^3.11.0",
46
- "@wordpress/keycodes": "^3.13.0",
47
- "@wordpress/media-utils": "^4.4.0",
48
- "@wordpress/notices": "^3.13.0",
49
- "@wordpress/plugins": "^4.11.0",
50
- "@wordpress/preferences": "^2.5.0",
51
- "@wordpress/reusable-blocks": "^3.11.0",
52
- "@wordpress/url": "^3.14.0",
53
- "@wordpress/widgets": "^2.11.0",
30
+ "@wordpress/api-fetch": "^6.12.1-next.d6164808d3.0",
31
+ "@wordpress/block-editor": "^9.7.1-next.d6164808d3.0",
32
+ "@wordpress/block-library": "^7.12.2-next.d6164808d3.0",
33
+ "@wordpress/blocks": "^11.14.1-next.d6164808d3.0",
34
+ "@wordpress/components": "^20.0.1-next.d6164808d3.0",
35
+ "@wordpress/compose": "^5.13.1-next.d6164808d3.0",
36
+ "@wordpress/core-data": "^4.14.1-next.d6164808d3.0",
37
+ "@wordpress/data": "^7.0.1-next.d6164808d3.0",
38
+ "@wordpress/deprecated": "^3.15.1-next.d6164808d3.0",
39
+ "@wordpress/dom": "^3.15.1-next.d6164808d3.0",
40
+ "@wordpress/element": "^4.13.1-next.d6164808d3.0",
41
+ "@wordpress/hooks": "^3.15.1-next.d6164808d3.0",
42
+ "@wordpress/i18n": "^4.15.1-next.d6164808d3.0",
43
+ "@wordpress/icons": "^9.6.1-next.d6164808d3.0",
44
+ "@wordpress/interface": "^4.14.1-next.d6164808d3.0",
45
+ "@wordpress/keyboard-shortcuts": "^3.13.1-next.d6164808d3.0",
46
+ "@wordpress/keycodes": "^3.15.1-next.d6164808d3.0",
47
+ "@wordpress/media-utils": "^4.6.1-next.d6164808d3.0",
48
+ "@wordpress/notices": "^3.15.1-next.d6164808d3.0",
49
+ "@wordpress/plugins": "^4.13.1-next.d6164808d3.0",
50
+ "@wordpress/preferences": "^2.7.1-next.d6164808d3.0",
51
+ "@wordpress/reusable-blocks": "^3.13.1-next.d6164808d3.0",
52
+ "@wordpress/url": "^3.16.1-next.d6164808d3.0",
53
+ "@wordpress/widgets": "^2.13.1-next.d6164808d3.0",
54
54
  "classnames": "^2.3.1",
55
55
  "lodash": "^4.17.21"
56
56
  },
@@ -61,5 +61,5 @@
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  },
64
- "gitHead": "9d9d33bbdf317a4381b8ca1713e43bb50df653b3"
64
+ "gitHead": "ba8a396d2f418e53a6c4c50575582f3f3eb11ff7"
65
65
  }
@@ -5,10 +5,14 @@ import { __, isRTL } from '@wordpress/i18n';
5
5
  import { ToolbarButton } from '@wordpress/components';
6
6
  import { useSelect, useDispatch } from '@wordpress/data';
7
7
  import { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';
8
- import { displayShortcut } from '@wordpress/keycodes';
8
+ import { displayShortcut, isAppleOS } from '@wordpress/keycodes';
9
9
  import { store as coreStore } from '@wordpress/core-data';
10
10
 
11
11
  export default function RedoButton() {
12
+ const shortcut = isAppleOS()
13
+ ? displayShortcut.primaryShift( 'z' )
14
+ : displayShortcut.primary( 'y' );
15
+
12
16
  const hasRedo = useSelect(
13
17
  ( select ) => select( coreStore ).hasRedo(),
14
18
  []
@@ -18,7 +22,7 @@ export default function RedoButton() {
18
22
  <ToolbarButton
19
23
  icon={ ! isRTL() ? redoIcon : undoIcon }
20
24
  label={ __( 'Redo' ) }
21
- shortcut={ displayShortcut.primaryShift( 'z' ) }
25
+ shortcut={ shortcut }
22
26
  // If there are no undo levels we don't want to actually disable this
23
27
  // button, because it will remove focus for keyboard users.
24
28
  // See: https://github.com/WordPress/gutenberg/issues/3486
@@ -4,6 +4,11 @@
4
4
  import { SlotFillProvider } from '@wordpress/components';
5
5
  import { uploadMedia } from '@wordpress/media-utils';
6
6
  import { useDispatch, useSelect } from '@wordpress/data';
7
+ import {
8
+ useEntityBlockEditor,
9
+ store as coreStore,
10
+ useResourcePermissions,
11
+ } from '@wordpress/core-data';
7
12
  import { useMemo } from '@wordpress/element';
8
13
  import {
9
14
  BlockEditorProvider,
@@ -18,7 +23,6 @@ import { store as preferencesStore } from '@wordpress/preferences';
18
23
  * Internal dependencies
19
24
  */
20
25
  import KeyboardShortcuts from '../keyboard-shortcuts';
21
- import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
22
26
  import { buildWidgetAreasPostId, KIND, POST_TYPE } from '../../store/utils';
23
27
  import useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';
24
28
  import { store as editWidgetsStore } from '../../store';
@@ -29,36 +33,34 @@ export default function WidgetAreasBlockEditorProvider( {
29
33
  children,
30
34
  ...props
31
35
  } ) {
32
- const {
33
- hasUploadPermissions,
34
- reusableBlocks,
35
- isFixedToolbarActive,
36
- keepCaretInsideBlock,
37
- } = useSelect(
38
- ( select ) => ( {
39
- hasUploadPermissions:
40
- select( coreStore ).canUser( 'create', 'media' ) ?? true,
41
- widgetAreas: select( editWidgetsStore ).getWidgetAreas(),
42
- widgets: select( editWidgetsStore ).getWidgets(),
43
- reusableBlocks: ALLOW_REUSABLE_BLOCKS
44
- ? select( coreStore ).getEntityRecords( 'postType', 'wp_block' )
45
- : [],
46
- isFixedToolbarActive: !! select( preferencesStore ).get(
47
- 'core/edit-widgets',
48
- 'fixedToolbar'
49
- ),
50
- keepCaretInsideBlock: !! select( preferencesStore ).get(
51
- 'core/edit-widgets',
52
- 'keepCaretInsideBlock'
53
- ),
54
- } ),
55
- []
56
- );
36
+ const mediaPermissions = useResourcePermissions( 'media' );
37
+ const { reusableBlocks, isFixedToolbarActive, keepCaretInsideBlock } =
38
+ useSelect(
39
+ ( select ) => ( {
40
+ widgetAreas: select( editWidgetsStore ).getWidgetAreas(),
41
+ widgets: select( editWidgetsStore ).getWidgets(),
42
+ reusableBlocks: ALLOW_REUSABLE_BLOCKS
43
+ ? select( coreStore ).getEntityRecords(
44
+ 'postType',
45
+ 'wp_block'
46
+ )
47
+ : [],
48
+ isFixedToolbarActive: !! select( preferencesStore ).get(
49
+ 'core/edit-widgets',
50
+ 'fixedToolbar'
51
+ ),
52
+ keepCaretInsideBlock: !! select( preferencesStore ).get(
53
+ 'core/edit-widgets',
54
+ 'keepCaretInsideBlock'
55
+ ),
56
+ } ),
57
+ []
58
+ );
57
59
  const { setIsInserterOpened } = useDispatch( editWidgetsStore );
58
60
 
59
61
  const settings = useMemo( () => {
60
62
  let mediaUploadBlockEditor;
61
- if ( hasUploadPermissions ) {
63
+ if ( mediaPermissions.canCreate ) {
62
64
  mediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {
63
65
  uploadMedia( {
64
66
  wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
@@ -80,7 +82,7 @@ export default function WidgetAreasBlockEditorProvider( {
80
82
  blockEditorSettings,
81
83
  isFixedToolbarActive,
82
84
  keepCaretInsideBlock,
83
- hasUploadPermissions,
85
+ mediaPermissions.canCreate,
84
86
  reusableBlocks,
85
87
  setIsInserterOpened,
86
88
  ] );
@@ -12,7 +12,9 @@ import { addWidgetIdToBlock } from '@wordpress/widgets';
12
12
  */
13
13
  export function transformWidgetToBlock( widget ) {
14
14
  if ( widget.id_base === 'block' ) {
15
- const parsedBlocks = parse( widget.instance.raw.content );
15
+ const parsedBlocks = parse( widget.instance.raw.content, {
16
+ __unstableSkipAutop: true,
17
+ } );
16
18
  if ( ! parsedBlocks.length ) {
17
19
  return addWidgetIdToBlock(
18
20
  createBlock( 'core/paragraph', {}, [] ),