@wordpress/edit-widgets 4.5.0 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/blocks/widget-area/edit/inner-blocks.js.map +1 -1
  3. package/build/components/header/index.js.map +1 -1
  4. package/build/components/layout/interface.js.map +1 -1
  5. package/build/components/save-button/index.js.map +1 -1
  6. package/build/components/secondary-sidebar/index.js.map +1 -1
  7. package/build/components/sidebar/index.js.map +1 -1
  8. package/build/components/widget-areas-block-editor-provider/index.js +12 -14
  9. package/build/components/widget-areas-block-editor-provider/index.js.map +1 -1
  10. package/build/filters/move-to-widget-area.js.map +1 -1
  11. package/build/hooks/use-last-selected-widget-area.js.map +1 -1
  12. package/build/hooks/use-widget-library-insertion-point.js.map +1 -1
  13. package/build/store/actions.js.map +1 -1
  14. package/build/store/resolvers.js.map +1 -1
  15. package/build/store/selectors.js.map +1 -1
  16. package/build-module/blocks/widget-area/edit/inner-blocks.js.map +1 -1
  17. package/build-module/components/header/index.js.map +1 -1
  18. package/build-module/components/layout/interface.js.map +1 -1
  19. package/build-module/components/save-button/index.js.map +1 -1
  20. package/build-module/components/secondary-sidebar/index.js.map +1 -1
  21. package/build-module/components/sidebar/index.js.map +1 -1
  22. package/build-module/components/widget-areas-block-editor-provider/index.js +12 -13
  23. package/build-module/components/widget-areas-block-editor-provider/index.js.map +1 -1
  24. package/build-module/filters/move-to-widget-area.js.map +1 -1
  25. package/build-module/hooks/use-last-selected-widget-area.js.map +1 -1
  26. package/build-module/hooks/use-widget-library-insertion-point.js.map +1 -1
  27. package/build-module/store/actions.js.map +1 -1
  28. package/build-module/store/resolvers.js.map +1 -1
  29. package/build-module/store/selectors.js.map +1 -1
  30. package/build-style/style-rtl.css +4 -6
  31. package/build-style/style.css +4 -6
  32. package/package.json +26 -26
  33. package/src/blocks/widget-area/edit/inner-blocks.js +2 -1
  34. package/src/components/header/index.js +4 -8
  35. package/src/components/layout/interface.js +2 -5
  36. package/src/components/save-button/index.js +2 -3
  37. package/src/components/secondary-sidebar/index.js +2 -3
  38. package/src/components/sidebar/index.js +2 -5
  39. package/src/components/widget-areas-block-editor-provider/index.js +2 -9
  40. package/src/filters/move-to-widget-area.js +19 -24
  41. package/src/hooks/use-last-selected-widget-area.js +4 -6
  42. package/src/hooks/use-widget-library-insertion-point.js +2 -3
  43. package/src/store/actions.js +262 -258
  44. package/src/store/resolvers.js +69 -60
  45. package/src/store/selectors.js +22 -22
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 4.8.0 (2022-06-15)
6
+
7
+ ## 4.7.0 (2022-06-01)
8
+
9
+ ## 4.6.0 (2022-05-18)
10
+
5
11
  ## 4.5.0 (2022-05-04)
6
12
 
7
13
  ## 4.4.0 (2022-04-21)
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/blocks/widget-area/edit/inner-blocks.js"],"names":["WidgetAreaInnerBlocks","id","blocks","onInput","onChange","innerBlocksRef","isDraggingWithinInnerBlocks","shouldHighlightDropZone","innerBlocksProps","ref","value","templateLock","renderAppender","InnerBlocks","ButtonBlockAppender"],"mappings":";;;;;;;;;AAUA;;AAPA;;AAKA;;AACA;;AAMA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAGe,SAASA,qBAAT,OAAyC;AAAA,MAAT;AAAEC,IAAAA;AAAF,GAAS;AACvD,QAAM,CAAEC,MAAF,EAAUC,OAAV,EAAmBC,QAAnB,IAAgC,oCACrC,MADqC,EAErC,UAFqC,CAAtC;AAIA,QAAMC,cAAc,GAAG,sBAAvB;AACA,QAAMC,2BAA2B,GAAG,kCAAqBD,cAArB,CAApC;AACA,QAAME,uBAAuB,GAAGD,2BAAhC,CAPuD,CAQvD;;AACA,QAAME,gBAAgB,GAAG,sCACxB;AAAEC,IAAAA,GAAG,EAAEJ;AAAP,GADwB,EAExB;AACCK,IAAAA,KAAK,EAAER,MADR;AAECC,IAAAA,OAFD;AAGCC,IAAAA,QAHD;AAICO,IAAAA,YAAY,EAAE,KAJf;AAKCC,IAAAA,cAAc,EAAEC,yBAAYC;AAL7B,GAFwB,CAAzB;AAWA,SACC;AACC,2BAAsBb,EADvB;AAEC,IAAA,SAAS,EAAG,yBACX,oFADW,EAEX;AACC,mDAA6CM;AAD9C,KAFW;AAFb,KASC,mCAAUC,gBAAV,CATD,CADD;AAaA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport { InnerBlocks, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useIsDraggingWithin from './use-is-dragging-within';\n\nexport default function WidgetAreaInnerBlocks( { id } ) {\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'root',\n\t\t'postType'\n\t);\n\tconst innerBlocksRef = useRef();\n\tconst isDraggingWithinInnerBlocks = useIsDraggingWithin( innerBlocksRef );\n\tconst shouldHighlightDropZone = isDraggingWithinInnerBlocks;\n\t// Using the experimental hook so that we can control the className of the element.\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ ref: innerBlocksRef },\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\ttemplateLock: false,\n\t\t\trenderAppender: InnerBlocks.ButtonBlockAppender,\n\t\t}\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tdata-widget-area-id={ id }\n\t\t\tclassName={ classnames(\n\t\t\t\t'wp-block-widget-area__inner-blocks block-editor-inner-blocks editor-styles-wrapper',\n\t\t\t\t{\n\t\t\t\t\t'wp-block-widget-area__highlight-drop-zone': shouldHighlightDropZone,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/blocks/widget-area/edit/inner-blocks.js"],"names":["WidgetAreaInnerBlocks","id","blocks","onInput","onChange","innerBlocksRef","isDraggingWithinInnerBlocks","shouldHighlightDropZone","innerBlocksProps","ref","value","templateLock","renderAppender","InnerBlocks","ButtonBlockAppender"],"mappings":";;;;;;;;;AAUA;;AAPA;;AAKA;;AACA;;AAMA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAGe,SAASA,qBAAT,OAAyC;AAAA,MAAT;AAAEC,IAAAA;AAAF,GAAS;AACvD,QAAM,CAAEC,MAAF,EAAUC,OAAV,EAAmBC,QAAnB,IAAgC,oCACrC,MADqC,EAErC,UAFqC,CAAtC;AAIA,QAAMC,cAAc,GAAG,sBAAvB;AACA,QAAMC,2BAA2B,GAAG,kCAAqBD,cAArB,CAApC;AACA,QAAME,uBAAuB,GAAGD,2BAAhC,CAPuD,CAQvD;;AACA,QAAME,gBAAgB,GAAG,sCACxB;AAAEC,IAAAA,GAAG,EAAEJ;AAAP,GADwB,EAExB;AACCK,IAAAA,KAAK,EAAER,MADR;AAECC,IAAAA,OAFD;AAGCC,IAAAA,QAHD;AAICO,IAAAA,YAAY,EAAE,KAJf;AAKCC,IAAAA,cAAc,EAAEC,yBAAYC;AAL7B,GAFwB,CAAzB;AAWA,SACC;AACC,2BAAsBb,EADvB;AAEC,IAAA,SAAS,EAAG,yBACX,oFADW,EAEX;AACC,mDACCM;AAFF,KAFW;AAFb,KAUC,mCAAUC,gBAAV,CAVD,CADD;AAcA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport { InnerBlocks, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useIsDraggingWithin from './use-is-dragging-within';\n\nexport default function WidgetAreaInnerBlocks( { id } ) {\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'root',\n\t\t'postType'\n\t);\n\tconst innerBlocksRef = useRef();\n\tconst isDraggingWithinInnerBlocks = useIsDraggingWithin( innerBlocksRef );\n\tconst shouldHighlightDropZone = isDraggingWithinInnerBlocks;\n\t// Using the experimental hook so that we can control the className of the element.\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ ref: innerBlocksRef },\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\ttemplateLock: false,\n\t\t\trenderAppender: InnerBlocks.ButtonBlockAppender,\n\t\t}\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tdata-widget-area-id={ id }\n\t\t\tclassName={ classnames(\n\t\t\t\t'wp-block-widget-area__inner-blocks block-editor-inner-blocks editor-styles-wrapper',\n\t\t\t\t{\n\t\t\t\t\t'wp-block-widget-area__highlight-drop-zone':\n\t\t\t\t\t\tshouldHighlightDropZone,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</div>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/header/index.js"],"names":["Header","isMediumViewport","inserterButton","widgetAreaClientId","isLastSelectedWidgetAreaOpen","select","editWidgetsStore","getIsWidgetAreaOpen","isInserterOpen","isListViewOpen","isInserterOpened","isListViewOpened","setIsWidgetAreaOpen","setIsInserterOpened","setIsListViewOpened","selectBlock","blockEditorStore","handleClick","window","requestAnimationFrame","toggleListView","Button","event","preventDefault","plus","listView"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { Button, ToolbarItem, VisuallyHidden } from '@wordpress/components';\nimport {\n\tNavigableToolbar,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PinnedItems } from '@wordpress/interface';\nimport { listView, plus } from '@wordpress/icons';\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport SaveButton from '../save-button';\nimport UndoButton from './undo-redo/undo';\nimport RedoButton from './undo-redo/redo';\nimport MoreMenu from '../more-menu';\nimport useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';\nimport { store as editWidgetsStore } from '../../store';\n\nfunction Header() {\n\tconst isMediumViewport = useViewportMatch( 'medium' );\n\tconst inserterButton = useRef();\n\tconst widgetAreaClientId = useLastSelectedWidgetArea();\n\tconst isLastSelectedWidgetAreaOpen = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editWidgetsStore ).getIsWidgetAreaOpen(\n\t\t\t\twidgetAreaClientId\n\t\t\t),\n\t\t[ widgetAreaClientId ]\n\t);\n\tconst { isInserterOpen, isListViewOpen } = useSelect( ( select ) => {\n\t\tconst { isInserterOpened, isListViewOpened } = select(\n\t\t\teditWidgetsStore\n\t\t);\n\t\treturn {\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t};\n\t}, [] );\n\tconst {\n\t\tsetIsWidgetAreaOpen,\n\t\tsetIsInserterOpened,\n\t\tsetIsListViewOpened,\n\t} = useDispatch( editWidgetsStore );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst handleClick = () => {\n\t\tif ( isInserterOpen ) {\n\t\t\t// Focusing the inserter button closes the inserter popover.\n\t\t\tsetIsInserterOpened( false );\n\t\t} else {\n\t\t\tif ( ! isLastSelectedWidgetAreaOpen ) {\n\t\t\t\t// Select the last selected block if hasn't already.\n\t\t\t\tselectBlock( widgetAreaClientId );\n\t\t\t\t// Open the last selected widget area when opening the inserter.\n\t\t\t\tsetIsWidgetAreaOpen( widgetAreaClientId, true );\n\t\t\t}\n\t\t\t// The DOM updates resulting from selectBlock() and setIsInserterOpened() calls are applied the\n\t\t\t// same tick and pretty much in a random order. The inserter is closed if any other part of the\n\t\t\t// app receives focus. If selectBlock() happens to take effect after setIsInserterOpened() then\n\t\t\t// the inserter is visible for a brief moment and then gets auto-closed due to focus moving to\n\t\t\t// the selected block.\n\t\t\twindow.requestAnimationFrame( () => setIsInserterOpened( true ) );\n\t\t}\n\t};\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"edit-widgets-header\">\n\t\t\t\t<div className=\"edit-widgets-header__navigable-toolbar-wrapper\">\n\t\t\t\t\t{ isMediumViewport && (\n\t\t\t\t\t\t<h1 className=\"edit-widgets-header__title\">\n\t\t\t\t\t\t\t{ __( 'Widgets' ) }\n\t\t\t\t\t\t</h1>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isMediumViewport && (\n\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\tas=\"h1\"\n\t\t\t\t\t\t\tclassName=\"edit-widgets-header__title\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Widgets' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t) }\n\t\t\t\t\t<NavigableToolbar\n\t\t\t\t\t\tclassName=\"edit-widgets-header-toolbar\"\n\t\t\t\t\t\taria-label={ __( 'Document tools' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tclassName=\"edit-widgets-header-toolbar__inserter-toggle\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tisPressed={ isInserterOpen }\n\t\t\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClick={ handleClick }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16\n\t\t\t\t\tcharacters. */\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Toggle block inserter',\n\t\t\t\t\t\t\t\t'Generic label for block inserter button'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ isMediumViewport && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<UndoButton />\n\t\t\t\t\t\t\t\t<RedoButton />\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-widgets-header-toolbar__list-view-toggle\"\n\t\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\t\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\t\tlabel={ __( 'List View' ) }\n\t\t\t\t\t\t\t\t\tonClick={ toggleListView }\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</NavigableToolbar>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"edit-widgets-header__actions\">\n\t\t\t\t\t<SaveButton />\n\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-widgets\" />\n\t\t\t\t\t<MoreMenu />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default Header;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/header/index.js"],"names":["Header","isMediumViewport","inserterButton","widgetAreaClientId","isLastSelectedWidgetAreaOpen","select","editWidgetsStore","getIsWidgetAreaOpen","isInserterOpen","isListViewOpen","isInserterOpened","isListViewOpened","setIsWidgetAreaOpen","setIsInserterOpened","setIsListViewOpened","selectBlock","blockEditorStore","handleClick","window","requestAnimationFrame","toggleListView","Button","event","preventDefault","plus","listView"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { Button, ToolbarItem, VisuallyHidden } from '@wordpress/components';\nimport {\n\tNavigableToolbar,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PinnedItems } from '@wordpress/interface';\nimport { listView, plus } from '@wordpress/icons';\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport SaveButton from '../save-button';\nimport UndoButton from './undo-redo/undo';\nimport RedoButton from './undo-redo/redo';\nimport MoreMenu from '../more-menu';\nimport useLastSelectedWidgetArea from '../../hooks/use-last-selected-widget-area';\nimport { store as editWidgetsStore } from '../../store';\n\nfunction Header() {\n\tconst isMediumViewport = useViewportMatch( 'medium' );\n\tconst inserterButton = useRef();\n\tconst widgetAreaClientId = useLastSelectedWidgetArea();\n\tconst isLastSelectedWidgetAreaOpen = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editWidgetsStore ).getIsWidgetAreaOpen(\n\t\t\t\twidgetAreaClientId\n\t\t\t),\n\t\t[ widgetAreaClientId ]\n\t);\n\tconst { isInserterOpen, isListViewOpen } = useSelect( ( select ) => {\n\t\tconst { isInserterOpened, isListViewOpened } =\n\t\t\tselect( editWidgetsStore );\n\t\treturn {\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t};\n\t}, [] );\n\tconst { setIsWidgetAreaOpen, setIsInserterOpened, setIsListViewOpened } =\n\t\tuseDispatch( editWidgetsStore );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst handleClick = () => {\n\t\tif ( isInserterOpen ) {\n\t\t\t// Focusing the inserter button closes the inserter popover.\n\t\t\tsetIsInserterOpened( false );\n\t\t} else {\n\t\t\tif ( ! isLastSelectedWidgetAreaOpen ) {\n\t\t\t\t// Select the last selected block if hasn't already.\n\t\t\t\tselectBlock( widgetAreaClientId );\n\t\t\t\t// Open the last selected widget area when opening the inserter.\n\t\t\t\tsetIsWidgetAreaOpen( widgetAreaClientId, true );\n\t\t\t}\n\t\t\t// The DOM updates resulting from selectBlock() and setIsInserterOpened() calls are applied the\n\t\t\t// same tick and pretty much in a random order. The inserter is closed if any other part of the\n\t\t\t// app receives focus. If selectBlock() happens to take effect after setIsInserterOpened() then\n\t\t\t// the inserter is visible for a brief moment and then gets auto-closed due to focus moving to\n\t\t\t// the selected block.\n\t\t\twindow.requestAnimationFrame( () => setIsInserterOpened( true ) );\n\t\t}\n\t};\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"edit-widgets-header\">\n\t\t\t\t<div className=\"edit-widgets-header__navigable-toolbar-wrapper\">\n\t\t\t\t\t{ isMediumViewport && (\n\t\t\t\t\t\t<h1 className=\"edit-widgets-header__title\">\n\t\t\t\t\t\t\t{ __( 'Widgets' ) }\n\t\t\t\t\t\t</h1>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isMediumViewport && (\n\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\tas=\"h1\"\n\t\t\t\t\t\t\tclassName=\"edit-widgets-header__title\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Widgets' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t) }\n\t\t\t\t\t<NavigableToolbar\n\t\t\t\t\t\tclassName=\"edit-widgets-header-toolbar\"\n\t\t\t\t\t\taria-label={ __( 'Document tools' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tclassName=\"edit-widgets-header-toolbar__inserter-toggle\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tisPressed={ isInserterOpen }\n\t\t\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClick={ handleClick }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16\n\t\t\t\t\tcharacters. */\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Toggle block inserter',\n\t\t\t\t\t\t\t\t'Generic label for block inserter button'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ isMediumViewport && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<UndoButton />\n\t\t\t\t\t\t\t\t<RedoButton />\n\t\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-widgets-header-toolbar__list-view-toggle\"\n\t\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\t\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\t\tlabel={ __( 'List View' ) }\n\t\t\t\t\t\t\t\t\tonClick={ toggleListView }\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</NavigableToolbar>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"edit-widgets-header__actions\">\n\t\t\t\t\t<SaveButton />\n\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-widgets\" />\n\t\t\t\t\t<MoreMenu />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default Header;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/layout/interface.js"],"names":["interfaceLabels","header","body","sidebar","footer","Interface","blockEditorSettings","isMobileViewport","isHugeViewport","setIsInserterOpened","setIsListViewOpened","closeGeneralSidebar","editWidgetsStore","hasBlockBreadCrumbsEnabled","hasSidebarEnabled","isInserterOpened","isListViewOpened","previousShortcut","nextShortcut","select","interfaceStore","getActiveComplementaryArea","name","preferencesStore","get","keyboardShortcutsStore","getAllShortcutKeyCombinations","secondarySidebarLabel","hasSecondarySidebar","secondarySidebar","previous","next"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { BlockBreadcrumb, BlockStyles } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { __ } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport Header from '../header';\nimport WidgetAreasBlockEditorContent from '../widget-areas-block-editor-content';\nimport { store as editWidgetsStore } from '../../store';\nimport SecondarySidebar from '../secondary-sidebar';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the widgets screen top bar landmark region. */\n\theader: __( 'Widgets top bar' ),\n\t/* translators: accessibility text for the widgets screen content landmark region. */\n\tbody: __( 'Widgets and blocks' ),\n\t/* translators: accessibility text for the widgets screen settings landmark region. */\n\tsidebar: __( 'Widgets settings' ),\n\t/* translators: accessibility text for the widgets screen footer landmark region. */\n\tfooter: __( 'Widgets footer' ),\n};\n\nfunction Interface( { blockEditorSettings } ) {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isHugeViewport = useViewportMatch( 'huge', '>=' );\n\tconst {\n\t\tsetIsInserterOpened,\n\t\tsetIsListViewOpened,\n\t\tcloseGeneralSidebar,\n\t} = useDispatch( editWidgetsStore );\n\tconst {\n\t\thasBlockBreadCrumbsEnabled,\n\t\thasSidebarEnabled,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\thasSidebarEnabled: !! select(\n\t\t\t\tinterfaceStore\n\t\t\t).getActiveComplementaryArea( editWidgetsStore.name ),\n\t\t\tisInserterOpened: !! select( editWidgetsStore ).isInserterOpened(),\n\t\t\tisListViewOpened: !! select( editWidgetsStore ).isListViewOpened(),\n\t\t\thasBlockBreadCrumbsEnabled: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations(\n\t\t\t\t'core/edit-widgets/previous-region'\n\t\t\t),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-widgets/next-region' ),\n\t\t} ),\n\t\t[]\n\t);\n\n\t// Inserter and Sidebars are mutually exclusive\n\tuseEffect( () => {\n\t\tif ( hasSidebarEnabled && ! isHugeViewport ) {\n\t\t\tsetIsInserterOpened( false );\n\t\t\tsetIsListViewOpened( false );\n\t\t}\n\t}, [ hasSidebarEnabled, isHugeViewport ] );\n\n\tuseEffect( () => {\n\t\tif ( ( isInserterOpened || isListViewOpened ) && ! isHugeViewport ) {\n\t\t\tcloseGeneralSidebar();\n\t\t}\n\t}, [ isInserterOpened, isListViewOpened, isHugeViewport ] );\n\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\n\tconst hasSecondarySidebar = isListViewOpened || isInserterOpened;\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={ <Header /> }\n\t\t\tsecondarySidebar={ hasSecondarySidebar && <SecondarySidebar /> }\n\t\t\tsidebar={\n\t\t\t\thasSidebarEnabled && (\n\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-widgets\" />\n\t\t\t\t)\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t<WidgetAreasBlockEditorContent\n\t\t\t\t\t\tblockEditorSettings={ blockEditorSettings }\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockStyles.Slot scope=\"core/block-inspector\" />\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\thasBlockBreadCrumbsEnabled &&\n\t\t\t\t! isMobileViewport && (\n\t\t\t\t\t<div className=\"edit-widgets-layout__footer\">\n\t\t\t\t\t\t<BlockBreadcrumb rootLabelText={ __( 'Widgets' ) } />\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t\tshortcuts={ {\n\t\t\t\tprevious: previousShortcut,\n\t\t\t\tnext: nextShortcut,\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default Interface;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/layout/interface.js"],"names":["interfaceLabels","header","body","sidebar","footer","Interface","blockEditorSettings","isMobileViewport","isHugeViewport","setIsInserterOpened","setIsListViewOpened","closeGeneralSidebar","editWidgetsStore","hasBlockBreadCrumbsEnabled","hasSidebarEnabled","isInserterOpened","isListViewOpened","previousShortcut","nextShortcut","select","interfaceStore","getActiveComplementaryArea","name","preferencesStore","get","keyboardShortcutsStore","getAllShortcutKeyCombinations","secondarySidebarLabel","hasSecondarySidebar","secondarySidebar","previous","next"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { BlockBreadcrumb, BlockStyles } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { __ } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport Header from '../header';\nimport WidgetAreasBlockEditorContent from '../widget-areas-block-editor-content';\nimport { store as editWidgetsStore } from '../../store';\nimport SecondarySidebar from '../secondary-sidebar';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the widgets screen top bar landmark region. */\n\theader: __( 'Widgets top bar' ),\n\t/* translators: accessibility text for the widgets screen content landmark region. */\n\tbody: __( 'Widgets and blocks' ),\n\t/* translators: accessibility text for the widgets screen settings landmark region. */\n\tsidebar: __( 'Widgets settings' ),\n\t/* translators: accessibility text for the widgets screen footer landmark region. */\n\tfooter: __( 'Widgets footer' ),\n};\n\nfunction Interface( { blockEditorSettings } ) {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isHugeViewport = useViewportMatch( 'huge', '>=' );\n\tconst { setIsInserterOpened, setIsListViewOpened, closeGeneralSidebar } =\n\t\tuseDispatch( editWidgetsStore );\n\tconst {\n\t\thasBlockBreadCrumbsEnabled,\n\t\thasSidebarEnabled,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\thasSidebarEnabled: !! select(\n\t\t\t\tinterfaceStore\n\t\t\t).getActiveComplementaryArea( editWidgetsStore.name ),\n\t\t\tisInserterOpened: !! select( editWidgetsStore ).isInserterOpened(),\n\t\t\tisListViewOpened: !! select( editWidgetsStore ).isListViewOpened(),\n\t\t\thasBlockBreadCrumbsEnabled: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\t'showBlockBreadcrumbs'\n\t\t\t),\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations(\n\t\t\t\t'core/edit-widgets/previous-region'\n\t\t\t),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/edit-widgets/next-region' ),\n\t\t} ),\n\t\t[]\n\t);\n\n\t// Inserter and Sidebars are mutually exclusive\n\tuseEffect( () => {\n\t\tif ( hasSidebarEnabled && ! isHugeViewport ) {\n\t\t\tsetIsInserterOpened( false );\n\t\t\tsetIsListViewOpened( false );\n\t\t}\n\t}, [ hasSidebarEnabled, isHugeViewport ] );\n\n\tuseEffect( () => {\n\t\tif ( ( isInserterOpened || isListViewOpened ) && ! isHugeViewport ) {\n\t\t\tcloseGeneralSidebar();\n\t\t}\n\t}, [ isInserterOpened, isListViewOpened, isHugeViewport ] );\n\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\n\tconst hasSecondarySidebar = isListViewOpened || isInserterOpened;\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={ <Header /> }\n\t\t\tsecondarySidebar={ hasSecondarySidebar && <SecondarySidebar /> }\n\t\t\tsidebar={\n\t\t\t\thasSidebarEnabled && (\n\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-widgets\" />\n\t\t\t\t)\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t<WidgetAreasBlockEditorContent\n\t\t\t\t\t\tblockEditorSettings={ blockEditorSettings }\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockStyles.Slot scope=\"core/block-inspector\" />\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\thasBlockBreadCrumbsEnabled &&\n\t\t\t\t! isMobileViewport && (\n\t\t\t\t\t<div className=\"edit-widgets-layout__footer\">\n\t\t\t\t\t\t<BlockBreadcrumb rootLabelText={ __( 'Widgets' ) } />\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t\tshortcuts={ {\n\t\t\t\tprevious: previousShortcut,\n\t\t\t\tnext: nextShortcut,\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default Interface;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/save-button/index.js"],"names":["SaveButton","hasEditedWidgetAreaIds","isSaving","select","getEditedWidgetAreas","isSavingWidgetAreas","editWidgetsStore","length","saveEditedWidgetAreas","undefined"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGA,SAASA,UAAT,GAAsB;AACrB,QAAM;AAAEC,IAAAA,sBAAF;AAA0BC,IAAAA;AAA1B,MAAuC,qBAAaC,MAAF,IAAc;AAAA;;AACrE,UAAM;AAAEC,MAAAA,oBAAF;AAAwBC,MAAAA;AAAxB,QAAgDF,MAAM,CAC3DG,YAD2D,CAA5D;AAIA,WAAO;AACNL,MAAAA,sBAAsB,EAAE,0BAAAG,oBAAoB,YAApB,sEAAwBG,MAAxB,IAAiC,CADnD;AAENL,MAAAA,QAAQ,EAAEG,mBAAmB;AAFvB,KAAP;AAIA,GAT4C,EAS1C,EAT0C,CAA7C;AAUA,QAAM;AAAEG,IAAAA;AAAF,MAA4B,uBAAaF,YAAb,CAAlC;AAEA,SACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,MAAM,EAAGJ,QAFV;AAGC,qBAAgBA,QAHjB;AAIC,IAAA,OAAO,EAAGA,QAAQ,GAAGO,SAAH,GAAeD,qBAJlC;AAKC,IAAA,QAAQ,EAAG,CAAEP;AALd,KAOGC,QAAQ,GAAG,cAAI,SAAJ,CAAH,GAAqB,cAAI,QAAJ,CAPhC,CADD;AAWA;;eAEcF,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\nfunction SaveButton() {\n\tconst { hasEditedWidgetAreaIds, isSaving } = useSelect( ( select ) => {\n\t\tconst { getEditedWidgetAreas, isSavingWidgetAreas } = select(\n\t\t\teditWidgetsStore\n\t\t);\n\n\t\treturn {\n\t\t\thasEditedWidgetAreaIds: getEditedWidgetAreas()?.length > 0,\n\t\t\tisSaving: isSavingWidgetAreas(),\n\t\t};\n\t}, [] );\n\tconst { saveEditedWidgetAreas } = useDispatch( editWidgetsStore );\n\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"primary\"\n\t\t\tisBusy={ isSaving }\n\t\t\taria-disabled={ isSaving }\n\t\t\tonClick={ isSaving ? undefined : saveEditedWidgetAreas }\n\t\t\tdisabled={ ! hasEditedWidgetAreaIds }\n\t\t>\n\t\t\t{ isSaving ? __( 'Saving…' ) : __( 'Update' ) }\n\t\t</Button>\n\t);\n}\n\nexport default SaveButton;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/save-button/index.js"],"names":["SaveButton","hasEditedWidgetAreaIds","isSaving","select","getEditedWidgetAreas","isSavingWidgetAreas","editWidgetsStore","length","saveEditedWidgetAreas","undefined"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGA,SAASA,UAAT,GAAsB;AACrB,QAAM;AAAEC,IAAAA,sBAAF;AAA0BC,IAAAA;AAA1B,MAAuC,qBAAaC,MAAF,IAAc;AAAA;;AACrE,UAAM;AAAEC,MAAAA,oBAAF;AAAwBC,MAAAA;AAAxB,QACLF,MAAM,CAAEG,YAAF,CADP;AAGA,WAAO;AACNL,MAAAA,sBAAsB,EAAE,0BAAAG,oBAAoB,YAApB,sEAAwBG,MAAxB,IAAiC,CADnD;AAENL,MAAAA,QAAQ,EAAEG,mBAAmB;AAFvB,KAAP;AAIA,GAR4C,EAQ1C,EAR0C,CAA7C;AASA,QAAM;AAAEG,IAAAA;AAAF,MAA4B,uBAAaF,YAAb,CAAlC;AAEA,SACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,SADT;AAEC,IAAA,MAAM,EAAGJ,QAFV;AAGC,qBAAgBA,QAHjB;AAIC,IAAA,OAAO,EAAGA,QAAQ,GAAGO,SAAH,GAAeD,qBAJlC;AAKC,IAAA,QAAQ,EAAG,CAAEP;AALd,KAOGC,QAAQ,GAAG,cAAI,SAAJ,CAAH,GAAqB,cAAI,QAAJ,CAPhC,CADD;AAWA;;eAEcF,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\nfunction SaveButton() {\n\tconst { hasEditedWidgetAreaIds, isSaving } = useSelect( ( select ) => {\n\t\tconst { getEditedWidgetAreas, isSavingWidgetAreas } =\n\t\t\tselect( editWidgetsStore );\n\n\t\treturn {\n\t\t\thasEditedWidgetAreaIds: getEditedWidgetAreas()?.length > 0,\n\t\t\tisSaving: isSavingWidgetAreas(),\n\t\t};\n\t}, [] );\n\tconst { saveEditedWidgetAreas } = useDispatch( editWidgetsStore );\n\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"primary\"\n\t\t\tisBusy={ isSaving }\n\t\t\taria-disabled={ isSaving }\n\t\t\tonClick={ isSaving ? undefined : saveEditedWidgetAreas }\n\t\t\tdisabled={ ! hasEditedWidgetAreaIds }\n\t\t>\n\t\t\t{ isSaving ? __( 'Saving…' ) : __( 'Update' ) }\n\t\t</Button>\n\t);\n}\n\nexport default SaveButton;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/secondary-sidebar/index.js"],"names":["SecondarySidebar","isInserterOpen","isListViewOpen","select","isInserterOpened","isListViewOpened","editWidgetsStore"],"mappings":";;;;;;;;;;;AAGA;;AAIA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;AAIe,SAASA,gBAAT,GAA4B;AAC1C,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,MAAqC,qBAAaC,MAAF,IAAc;AACnE,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,QAAyCF,MAAM,CACpDG,YADoD,CAArD;AAGA,WAAO;AACNL,MAAAA,cAAc,EAAEG,gBAAgB,EAD1B;AAENF,MAAAA,cAAc,EAAEG,gBAAgB;AAF1B,KAAP;AAIA,GAR0C,EAQxC,EARwC,CAA3C;;AAUA,MAAKJ,cAAL,EAAsB;AACrB,WAAO,4BAAC,wBAAD,OAAP;AACA;;AACD,MAAKC,cAAL,EAAsB;AACrB,WAAO,4BAAC,wBAAD,OAAP;AACA;;AACD,SAAO,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\n/**\n * Internal dependencies\n */\nimport InserterSidebar from './inserter-sidebar';\nimport ListViewSidebar from './list-view-sidebar';\n\nexport default function SecondarySidebar() {\n\tconst { isInserterOpen, isListViewOpen } = useSelect( ( select ) => {\n\t\tconst { isInserterOpened, isListViewOpened } = select(\n\t\t\teditWidgetsStore\n\t\t);\n\t\treturn {\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t};\n\t}, [] );\n\n\tif ( isInserterOpen ) {\n\t\treturn <InserterSidebar />;\n\t}\n\tif ( isListViewOpen ) {\n\t\treturn <ListViewSidebar />;\n\t}\n\treturn null;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/secondary-sidebar/index.js"],"names":["SecondarySidebar","isInserterOpen","isListViewOpen","select","isInserterOpened","isListViewOpened","editWidgetsStore"],"mappings":";;;;;;;;;;;AAGA;;AAIA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;AAIe,SAASA,gBAAT,GAA4B;AAC1C,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,MAAqC,qBAAaC,MAAF,IAAc;AACnE,UAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,QACLF,MAAM,CAAEG,YAAF,CADP;AAEA,WAAO;AACNL,MAAAA,cAAc,EAAEG,gBAAgB,EAD1B;AAENF,MAAAA,cAAc,EAAEG,gBAAgB;AAF1B,KAAP;AAIA,GAP0C,EAOxC,EAPwC,CAA3C;;AASA,MAAKJ,cAAL,EAAsB;AACrB,WAAO,4BAAC,wBAAD,OAAP;AACA;;AACD,MAAKC,cAAL,EAAsB;AACrB,WAAO,4BAAC,wBAAD,OAAP;AACA;;AACD,SAAO,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../../store';\n\n/**\n * Internal dependencies\n */\nimport InserterSidebar from './inserter-sidebar';\nimport ListViewSidebar from './list-view-sidebar';\n\nexport default function SecondarySidebar() {\n\tconst { isInserterOpen, isListViewOpen } = useSelect( ( select ) => {\n\t\tconst { isInserterOpened, isListViewOpened } =\n\t\t\tselect( editWidgetsStore );\n\t\treturn {\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t};\n\t}, [] );\n\n\tif ( isInserterOpen ) {\n\t\treturn <InserterSidebar />;\n\t}\n\tif ( isListViewOpen ) {\n\t\treturn <ListViewSidebar />;\n\t}\n\treturn null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/components/sidebar/index.js"],"names":["SIDEBAR_ACTIVE_BY_DEFAULT","Platform","select","web","native","BLOCK_INSPECTOR_IDENTIFIER","WIDGET_AREAS_IDENTIFIER","ComplementaryAreaTab","identifier","label","isActive","enableComplementaryArea","interfaceStore","editWidgetsStore","name","Sidebar","currentArea","hasSelectedNonAreaBlock","isGeneralSidebarOpen","selectedWidgetAreaBlock","getSelectedBlock","getBlock","getBlockParentsByBlockName","blockEditorStore","getActiveComplementaryArea","selectedBlock","activeArea","currentSelection","widgetAreaBlock","clientId","attributes","cog","id"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, Platform } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { cog } from '@wordpress/icons';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst BLOCK_INSPECTOR_IDENTIFIER = 'edit-widgets/block-inspector';\n\n// Widget areas were one called block areas, so use 'edit-widgets/block-areas'\n// for backwards compatibility.\nconst WIDGET_AREAS_IDENTIFIER = 'edit-widgets/block-areas';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreas from './widget-areas';\nimport { store as editWidgetsStore } from '../../store';\n\nfunction ComplementaryAreaTab( { identifier, label, isActive } ) {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\treturn (\n\t\t<Button\n\t\t\tonClick={ () =>\n\t\t\t\tenableComplementaryArea( editWidgetsStore.name, identifier )\n\t\t\t}\n\t\t\tclassName={ classnames( 'edit-widgets-sidebar__panel-tab', {\n\t\t\t\t'is-active': isActive,\n\t\t\t} ) }\n\t\t\taria-label={\n\t\t\t\tisActive\n\t\t\t\t\t? // translators: %s: sidebar label e.g: \"Widget Areas\".\n\t\t\t\t\t sprintf( __( '%s (selected)' ), label )\n\t\t\t\t\t: label\n\t\t\t}\n\t\t\tdata-label={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n\nexport default function Sidebar() {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst {\n\t\tcurrentArea,\n\t\thasSelectedNonAreaBlock,\n\t\tisGeneralSidebarOpen,\n\t\tselectedWidgetAreaBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlock,\n\t\t\tgetBlock,\n\t\t\tgetBlockParentsByBlockName,\n\t\t} = select( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\tconst selectedBlock = getSelectedBlock();\n\n\t\tconst activeArea = getActiveComplementaryArea( editWidgetsStore.name );\n\n\t\tlet currentSelection = activeArea;\n\t\tif ( ! currentSelection ) {\n\t\t\tif ( selectedBlock ) {\n\t\t\t\tcurrentSelection = BLOCK_INSPECTOR_IDENTIFIER;\n\t\t\t} else {\n\t\t\t\tcurrentSelection = WIDGET_AREAS_IDENTIFIER;\n\t\t\t}\n\t\t}\n\n\t\tlet widgetAreaBlock;\n\t\tif ( selectedBlock ) {\n\t\t\tif ( selectedBlock.name === 'core/widget-area' ) {\n\t\t\t\twidgetAreaBlock = selectedBlock;\n\t\t\t} else {\n\t\t\t\twidgetAreaBlock = getBlock(\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\t\t'core/widget-area'\n\t\t\t\t\t)[ 0 ]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcurrentArea: currentSelection,\n\t\t\thasSelectedNonAreaBlock: !! (\n\t\t\t\tselectedBlock && selectedBlock.name !== 'core/widget-area'\n\t\t\t),\n\t\t\tisGeneralSidebarOpen: !! activeArea,\n\t\t\tselectedWidgetAreaBlock: widgetAreaBlock,\n\t\t};\n\t}, [] );\n\n\t// currentArea, and isGeneralSidebarOpen are intentionally left out from the dependencies,\n\t// because we want to run the effect when a block is selected/unselected and not when the sidebar state changes.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === WIDGET_AREAS_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tBLOCK_INSPECTOR_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t! hasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tWIDGET_AREAS_IDENTIFIER\n\t\t\t);\n\t\t}\n\t}, [ hasSelectedNonAreaBlock, enableComplementaryArea ] );\n\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tclassName=\"edit-widgets-sidebar\"\n\t\t\theader={\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ComplementaryAreaTab\n\t\t\t\t\t\t\tidentifier={ WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tselectedWidgetAreaBlock\n\t\t\t\t\t\t\t\t\t? selectedWidgetAreaBlock.attributes.name\n\t\t\t\t\t\t\t\t\t: __( 'Widget Areas' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisActive={ currentArea === WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ComplementaryAreaTab\n\t\t\t\t\t\t\tidentifier={ BLOCK_INSPECTOR_IDENTIFIER }\n\t\t\t\t\t\t\tlabel={ __( 'Block' ) }\n\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t}\n\t\t\theaderClassName=\"edit-widgets-sidebar__panel-tabs\"\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\ttitle={ __( 'Settings' ) }\n\t\t\tcloseLabel={ __( 'Close settings' ) }\n\t\t\tscope=\"core/edit-widgets\"\n\t\t\tidentifier={ currentArea }\n\t\t\ticon={ cog }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t{ currentArea === WIDGET_AREAS_IDENTIFIER && (\n\t\t\t\t<WidgetAreas\n\t\t\t\t\tselectedWidgetAreaId={\n\t\t\t\t\t\tselectedWidgetAreaBlock?.attributes.id\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ currentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\t\t( hasSelectedNonAreaBlock ? (\n\t\t\t\t\t<BlockInspector />\n\t\t\t\t) : (\n\t\t\t\t\t// Pretend that Widget Areas are part of the UI by not\n\t\t\t\t\t// showing the Block Inspector when one is selected.\n\t\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t\t</span>\n\t\t\t\t) ) }\n\t\t</ComplementaryArea>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/components/sidebar/index.js"],"names":["SIDEBAR_ACTIVE_BY_DEFAULT","Platform","select","web","native","BLOCK_INSPECTOR_IDENTIFIER","WIDGET_AREAS_IDENTIFIER","ComplementaryAreaTab","identifier","label","isActive","enableComplementaryArea","interfaceStore","editWidgetsStore","name","Sidebar","currentArea","hasSelectedNonAreaBlock","isGeneralSidebarOpen","selectedWidgetAreaBlock","getSelectedBlock","getBlock","getBlockParentsByBlockName","blockEditorStore","getActiveComplementaryArea","selectedBlock","activeArea","currentSelection","widgetAreaBlock","clientId","attributes","cog","id"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, Platform } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { cog } from '@wordpress/icons';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst BLOCK_INSPECTOR_IDENTIFIER = 'edit-widgets/block-inspector';\n\n// Widget areas were one called block areas, so use 'edit-widgets/block-areas'\n// for backwards compatibility.\nconst WIDGET_AREAS_IDENTIFIER = 'edit-widgets/block-areas';\n\n/**\n * Internal dependencies\n */\nimport WidgetAreas from './widget-areas';\nimport { store as editWidgetsStore } from '../../store';\n\nfunction ComplementaryAreaTab( { identifier, label, isActive } ) {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\treturn (\n\t\t<Button\n\t\t\tonClick={ () =>\n\t\t\t\tenableComplementaryArea( editWidgetsStore.name, identifier )\n\t\t\t}\n\t\t\tclassName={ classnames( 'edit-widgets-sidebar__panel-tab', {\n\t\t\t\t'is-active': isActive,\n\t\t\t} ) }\n\t\t\taria-label={\n\t\t\t\tisActive\n\t\t\t\t\t? // translators: %s: sidebar label e.g: \"Widget Areas\".\n\t\t\t\t\t sprintf( __( '%s (selected)' ), label )\n\t\t\t\t\t: label\n\t\t\t}\n\t\t\tdata-label={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n\nexport default function Sidebar() {\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst {\n\t\tcurrentArea,\n\t\thasSelectedNonAreaBlock,\n\t\tisGeneralSidebarOpen,\n\t\tselectedWidgetAreaBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSelectedBlock, getBlock, getBlockParentsByBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\n\t\tconst selectedBlock = getSelectedBlock();\n\n\t\tconst activeArea = getActiveComplementaryArea( editWidgetsStore.name );\n\n\t\tlet currentSelection = activeArea;\n\t\tif ( ! currentSelection ) {\n\t\t\tif ( selectedBlock ) {\n\t\t\t\tcurrentSelection = BLOCK_INSPECTOR_IDENTIFIER;\n\t\t\t} else {\n\t\t\t\tcurrentSelection = WIDGET_AREAS_IDENTIFIER;\n\t\t\t}\n\t\t}\n\n\t\tlet widgetAreaBlock;\n\t\tif ( selectedBlock ) {\n\t\t\tif ( selectedBlock.name === 'core/widget-area' ) {\n\t\t\t\twidgetAreaBlock = selectedBlock;\n\t\t\t} else {\n\t\t\t\twidgetAreaBlock = getBlock(\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\tselectedBlock.clientId,\n\t\t\t\t\t\t'core/widget-area'\n\t\t\t\t\t)[ 0 ]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcurrentArea: currentSelection,\n\t\t\thasSelectedNonAreaBlock: !! (\n\t\t\t\tselectedBlock && selectedBlock.name !== 'core/widget-area'\n\t\t\t),\n\t\t\tisGeneralSidebarOpen: !! activeArea,\n\t\t\tselectedWidgetAreaBlock: widgetAreaBlock,\n\t\t};\n\t}, [] );\n\n\t// currentArea, and isGeneralSidebarOpen are intentionally left out from the dependencies,\n\t// because we want to run the effect when a block is selected/unselected and not when the sidebar state changes.\n\tuseEffect( () => {\n\t\tif (\n\t\t\thasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === WIDGET_AREAS_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tBLOCK_INSPECTOR_IDENTIFIER\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\t! hasSelectedNonAreaBlock &&\n\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\tisGeneralSidebarOpen\n\t\t) {\n\t\t\tenableComplementaryArea(\n\t\t\t\t'core/edit-widgets',\n\t\t\t\tWIDGET_AREAS_IDENTIFIER\n\t\t\t);\n\t\t}\n\t}, [ hasSelectedNonAreaBlock, enableComplementaryArea ] );\n\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tclassName=\"edit-widgets-sidebar\"\n\t\t\theader={\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ComplementaryAreaTab\n\t\t\t\t\t\t\tidentifier={ WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tselectedWidgetAreaBlock\n\t\t\t\t\t\t\t\t\t? selectedWidgetAreaBlock.attributes.name\n\t\t\t\t\t\t\t\t\t: __( 'Widget Areas' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisActive={ currentArea === WIDGET_AREAS_IDENTIFIER }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<ComplementaryAreaTab\n\t\t\t\t\t\t\tidentifier={ BLOCK_INSPECTOR_IDENTIFIER }\n\t\t\t\t\t\t\tlabel={ __( 'Block' ) }\n\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\tcurrentArea === BLOCK_INSPECTOR_IDENTIFIER\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t}\n\t\t\theaderClassName=\"edit-widgets-sidebar__panel-tabs\"\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\ttitle={ __( 'Settings' ) }\n\t\t\tcloseLabel={ __( 'Close settings' ) }\n\t\t\tscope=\"core/edit-widgets\"\n\t\t\tidentifier={ currentArea }\n\t\t\ticon={ cog }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t{ currentArea === WIDGET_AREAS_IDENTIFIER && (\n\t\t\t\t<WidgetAreas\n\t\t\t\t\tselectedWidgetAreaId={\n\t\t\t\t\t\tselectedWidgetAreaBlock?.attributes.id\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ currentArea === BLOCK_INSPECTOR_IDENTIFIER &&\n\t\t\t\t( hasSelectedNonAreaBlock ? (\n\t\t\t\t\t<BlockInspector />\n\t\t\t\t) : (\n\t\t\t\t\t// Pretend that Widget Areas are part of the UI by not\n\t\t\t\t\t// showing the Block Inspector when one is selected.\n\t\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t\t</span>\n\t\t\t\t) ) }\n\t\t</ComplementaryArea>\n\t);\n}\n"]}
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _lodash = require("lodash");
15
-
16
14
  var _components = require("@wordpress/components");
17
15
 
18
16
  var _mediaUtils = require("@wordpress/media-utils");
@@ -39,10 +37,6 @@ var _store = require("../../store");
39
37
 
40
38
  var _constants = require("../../constants");
41
39
 
42
- /**
43
- * External dependencies
44
- */
45
-
46
40
  /**
47
41
  * WordPress dependencies
48
42
  */
@@ -61,14 +55,18 @@ function WidgetAreasBlockEditorProvider(_ref) {
61
55
  reusableBlocks,
62
56
  isFixedToolbarActive,
63
57
  keepCaretInsideBlock
64
- } = (0, _data.useSelect)(select => ({
65
- hasUploadPermissions: (0, _lodash.defaultTo)(select(_coreData.store).canUser('create', 'media'), true),
66
- widgetAreas: select(_store.store).getWidgetAreas(),
67
- widgets: select(_store.store).getWidgets(),
68
- reusableBlocks: _constants.ALLOW_REUSABLE_BLOCKS ? select(_coreData.store).getEntityRecords('postType', 'wp_block') : [],
69
- isFixedToolbarActive: !!select(_preferences.store).get('core/edit-widgets', 'fixedToolbar'),
70
- keepCaretInsideBlock: !!select(_preferences.store).get('core/edit-widgets', 'keepCaretInsideBlock')
71
- }), []);
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
+ }, []);
72
70
  const {
73
71
  setIsInserterOpened
74
72
  } = (0, _data.useDispatch)(_store.store);
@@ -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 * External dependencies\n */\nimport { defaultTo } from 'lodash';\n\n/**\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: defaultTo(\n\t\t\t\tselect( coreStore ).canUser( 'create', 'media' ),\n\t\t\t\ttrue\n\t\t\t),\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","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 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/filters/move-to-widget-area.js"],"names":["withMoveToWidgetAreaToolbarItem","BlockEdit","props","clientId","name","blockName","widgetAreas","currentWidgetAreaId","canInsertBlockInWidgetArea","select","selectors","editWidgetsStore","widgetAreaBlock","getParentWidgetAreaBlock","getWidgetAreas","attributes","id","moveBlockToWidgetArea","hasMultipleWidgetAreas","length","isMoveToWidgetAreaVisible","widgetAreaId"],"mappings":";;;;AAIA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAbA;AACA;AACA;;AAQA;AACA;AACA;AAGA,MAAMA,+BAA+B,GAAG,yCACrCC,SAAF,IAAmBC,KAAF,IAAa;AAC7B,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAI,EAAEC;AAAlB,MAAgCH,KAAtC;AACA,QAAM;AACLI,IAAAA,WADK;AAELC,IAAAA,mBAFK;AAGLC,IAAAA;AAHK,MAIF,qBACDC,MAAF,IAAc;AAAA;;AACb;AACA,QAAKJ,SAAS,KAAK,kBAAnB,EAAwC;AACvC,aAAO,EAAP;AACA;;AAED,UAAMK,SAAS,GAAGD,MAAM,CAAEE,YAAF,CAAxB;AAEA,UAAMC,eAAe,GAAGF,SAAS,CAACG,wBAAV,CACvBV,QADuB,CAAxB;AAIA,WAAO;AACNG,MAAAA,WAAW,EAAEI,SAAS,CAACI,cAAV,EADP;AAENP,MAAAA,mBAAmB,EAAEK,eAAF,aAAEA,eAAF,gDAAEA,eAAe,CAAEG,UAAnB,0DAAE,sBAA6BC,EAF5C;AAGNR,MAAAA,0BAA0B,EAAEE,SAAS,CAACF,0BAAV,CAC3BH,SAD2B;AAHtB,KAAP;AAOA,GApBE,EAqBH,CAAEF,QAAF,EAAYE,SAAZ,CArBG,CAJJ;AA4BA,QAAM;AAAEY,IAAAA;AAAF,MAA4B,uBAAaN,YAAb,CAAlC;AACA,QAAMO,sBAAsB,GAAG,CAAAZ,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAEa,MAAb,IAAsB,CAArD;AACA,QAAMC,yBAAyB,GAC9Bf,SAAS,KAAK,kBAAd,IACAa,sBADA,IAEAV,0BAHD;AAKA,SACC,qDACC,4BAAC,SAAD,EAAgBN,KAAhB,CADD,EAEGkB,yBAAyB,IAC1B,4BAAC,0BAAD,QACC,4BAAC,yBAAD;AACC,IAAA,WAAW,EAAGd,WADf;AAEC,IAAA,mBAAmB,EAAGC,mBAFvB;AAGC,IAAA,QAAQ,EAAKc,YAAF,IAAoB;AAC9BJ,MAAAA,qBAAqB,CACpBf,KAAK,CAACC,QADc,EAEpBkB,YAFoB,CAArB;AAIA;AARF,IADD,CAHF,CADD;AAmBA,CAzDsC,EA0DvC,iCA1DuC,CAAxC;AA6DA,sBACC,kBADD,EAEC,8BAFD,EAGCrB,+BAHD","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 {\n\t\t\twidgetAreas,\n\t\t\tcurrentWidgetAreaId,\n\t\t\tcanInsertBlockInWidgetArea,\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\t// Component won't display for a widget area, so don't run selectors.\n\t\t\t\tif ( blockName === 'core/widget-area' ) {\n\t\t\t\t\treturn {};\n\t\t\t\t}\n\n\t\t\t\tconst selectors = select( editWidgetsStore );\n\n\t\t\t\tconst widgetAreaBlock = selectors.getParentWidgetAreaBlock(\n\t\t\t\t\tclientId\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\twidgetAreas: selectors.getWidgetAreas(),\n\t\t\t\t\tcurrentWidgetAreaId: widgetAreaBlock?.attributes?.id,\n\t\t\t\t\tcanInsertBlockInWidgetArea: selectors.canInsertBlockInWidgetArea(\n\t\t\t\t\t\tblockName\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId, blockName ]\n\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"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/filters/move-to-widget-area.js"],"names":["withMoveToWidgetAreaToolbarItem","BlockEdit","props","clientId","name","blockName","widgetAreas","currentWidgetAreaId","canInsertBlockInWidgetArea","select","selectors","editWidgetsStore","widgetAreaBlock","getParentWidgetAreaBlock","getWidgetAreas","attributes","id","moveBlockToWidgetArea","hasMultipleWidgetAreas","length","isMoveToWidgetAreaVisible","widgetAreaId"],"mappings":";;;;AAIA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAbA;AACA;AACA;;AAQA;AACA;AACA;AAGA,MAAMA,+BAA+B,GAAG,yCACrCC,SAAF,IAAmBC,KAAF,IAAa;AAC7B,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAI,EAAEC;AAAlB,MAAgCH,KAAtC;AACA,QAAM;AAAEI,IAAAA,WAAF;AAAeC,IAAAA,mBAAf;AAAoCC,IAAAA;AAApC,MACL,qBACGC,MAAF,IAAc;AAAA;;AACb;AACA,QAAKJ,SAAS,KAAK,kBAAnB,EAAwC;AACvC,aAAO,EAAP;AACA;;AAED,UAAMK,SAAS,GAAGD,MAAM,CAAEE,YAAF,CAAxB;AAEA,UAAMC,eAAe,GACpBF,SAAS,CAACG,wBAAV,CAAoCV,QAApC,CADD;AAGA,WAAO;AACNG,MAAAA,WAAW,EAAEI,SAAS,CAACI,cAAV,EADP;AAENP,MAAAA,mBAAmB,EAAEK,eAAF,aAAEA,eAAF,gDAAEA,eAAe,CAAEG,UAAnB,0DAAE,sBAA6BC,EAF5C;AAGNR,MAAAA,0BAA0B,EACzBE,SAAS,CAACF,0BAAV,CAAsCH,SAAtC;AAJK,KAAP;AAMA,GAlBF,EAmBC,CAAEF,QAAF,EAAYE,SAAZ,CAnBD,CADD;AAuBA,QAAM;AAAEY,IAAAA;AAAF,MAA4B,uBAAaN,YAAb,CAAlC;AACA,QAAMO,sBAAsB,GAAG,CAAAZ,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAEa,MAAb,IAAsB,CAArD;AACA,QAAMC,yBAAyB,GAC9Bf,SAAS,KAAK,kBAAd,IACAa,sBADA,IAEAV,0BAHD;AAKA,SACC,qDACC,4BAAC,SAAD,EAAgBN,KAAhB,CADD,EAEGkB,yBAAyB,IAC1B,4BAAC,0BAAD,QACC,4BAAC,yBAAD;AACC,IAAA,WAAW,EAAGd,WADf;AAEC,IAAA,mBAAmB,EAAGC,mBAFvB;AAGC,IAAA,QAAQ,EAAKc,YAAF,IAAoB;AAC9BJ,MAAAA,qBAAqB,CACpBf,KAAK,CAACC,QADc,EAEpBkB,YAFoB,CAArB;AAIA;AARF,IADD,CAHF,CADD;AAmBA,CApDsC,EAqDvC,iCArDuC,CAAxC;AAwDA,sBACC,kBADD,EAEC,8BAFD,EAGCrB,+BAHD","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"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/hooks/use-last-selected-widget-area.js"],"names":["useLastSelectedWidgetArea","select","getBlockSelectionEnd","getBlockName","blockEditorStore","selectionEndClientId","getParentWidgetAreaBlock","widgetsEditorStore","widgetAreaBlock","widgetAreaBlockClientId","clientId","getEntityRecord","coreStore","widgetAreasPost","KIND","POST_TYPE","blocks"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AAXA;AACA;AACA;;AAKA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,yBAAyB,GAAG,MACjC,qBAAaC,MAAF,IAAc;AAAA;;AACxB,QAAM;AAAEC,IAAAA,oBAAF;AAAwBC,IAAAA;AAAxB,MAAyCF,MAAM,CACpDG,kBADoD,CAArD;AAGA,QAAMC,oBAAoB,GAAGH,oBAAoB,EAAjD,CAJwB,CAMxB;;AACA,MAAKC,YAAY,CAAEE,oBAAF,CAAZ,KAAyC,kBAA9C,EAAmE;AAClE,WAAOA,oBAAP;AACA;;AAED,QAAM;AAAEC,IAAAA;AAAF,MAA+BL,MAAM,CAAEM,YAAF,CAA3C;AACA,QAAMC,eAAe,GAAGF,wBAAwB,CAC/CD,oBAD+C,CAAhD;AAGA,QAAMI,uBAAuB,GAAGD,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEE,QAAjD;;AAEA,MAAKD,uBAAL,EAA+B;AAC9B,WAAOA,uBAAP;AACA,GAnBuB,CAqBxB;AACA;;;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAsBV,MAAM,CAAEW,eAAF,CAAlC;AACA,QAAMC,eAAe,GAAGF,eAAe,CACtCG,WADsC,EAEtCC,gBAFsC,EAGtC,oCAHsC,CAAvC;AAKA,SAAOF,eAAP,aAAOA,eAAP,gDAAOA,eAAe,CAAEG,MAAjB,CAAyB,CAAzB,CAAP,0DAAO,sBAA8BN,QAArC;AACA,CA9BD,EA8BG,EA9BH,CADD;;eAiCeV,yB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as widgetsEditorStore } from '../store';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../store/utils';\n\n/**\n * A react hook that returns the client id of the last widget area to have\n * been selected, or to have a selected block within it.\n *\n * @return {string} clientId of the widget area last selected.\n */\nconst useLastSelectedWidgetArea = () =>\n\tuseSelect( ( select ) => {\n\t\tconst { getBlockSelectionEnd, getBlockName } = select(\n\t\t\tblockEditorStore\n\t\t);\n\t\tconst selectionEndClientId = getBlockSelectionEnd();\n\n\t\t// If the selected block is a widget area, return its clientId.\n\t\tif ( getBlockName( selectionEndClientId ) === 'core/widget-area' ) {\n\t\t\treturn selectionEndClientId;\n\t\t}\n\n\t\tconst { getParentWidgetAreaBlock } = select( widgetsEditorStore );\n\t\tconst widgetAreaBlock = getParentWidgetAreaBlock(\n\t\t\tselectionEndClientId\n\t\t);\n\t\tconst widgetAreaBlockClientId = widgetAreaBlock?.clientId;\n\n\t\tif ( widgetAreaBlockClientId ) {\n\t\t\treturn widgetAreaBlockClientId;\n\t\t}\n\n\t\t// If no widget area has been selected, return the clientId of the first\n\t\t// area.\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst widgetAreasPost = getEntityRecord(\n\t\t\tKIND,\n\t\t\tPOST_TYPE,\n\t\t\tbuildWidgetAreasPostId()\n\t\t);\n\t\treturn widgetAreasPost?.blocks[ 0 ]?.clientId;\n\t}, [] );\n\nexport default useLastSelectedWidgetArea;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/hooks/use-last-selected-widget-area.js"],"names":["useLastSelectedWidgetArea","select","getBlockSelectionEnd","getBlockName","blockEditorStore","selectionEndClientId","getParentWidgetAreaBlock","widgetsEditorStore","widgetAreaBlock","widgetAreaBlockClientId","clientId","getEntityRecord","coreStore","widgetAreasPost","KIND","POST_TYPE","blocks"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AAXA;AACA;AACA;;AAKA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,yBAAyB,GAAG,MACjC,qBAAaC,MAAF,IAAc;AAAA;;AACxB,QAAM;AAAEC,IAAAA,oBAAF;AAAwBC,IAAAA;AAAxB,MACLF,MAAM,CAAEG,kBAAF,CADP;AAEA,QAAMC,oBAAoB,GAAGH,oBAAoB,EAAjD,CAHwB,CAKxB;;AACA,MAAKC,YAAY,CAAEE,oBAAF,CAAZ,KAAyC,kBAA9C,EAAmE;AAClE,WAAOA,oBAAP;AACA;;AAED,QAAM;AAAEC,IAAAA;AAAF,MAA+BL,MAAM,CAAEM,YAAF,CAA3C;AACA,QAAMC,eAAe,GACpBF,wBAAwB,CAAED,oBAAF,CADzB;AAEA,QAAMI,uBAAuB,GAAGD,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAEE,QAAjD;;AAEA,MAAKD,uBAAL,EAA+B;AAC9B,WAAOA,uBAAP;AACA,GAjBuB,CAmBxB;AACA;;;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAsBV,MAAM,CAAEW,eAAF,CAAlC;AACA,QAAMC,eAAe,GAAGF,eAAe,CACtCG,WADsC,EAEtCC,gBAFsC,EAGtC,oCAHsC,CAAvC;AAKA,SAAOF,eAAP,aAAOA,eAAP,gDAAOA,eAAe,CAAEG,MAAjB,CAAyB,CAAzB,CAAP,0DAAO,sBAA8BN,QAArC;AACA,CA5BD,EA4BG,EA5BH,CADD;;eA+BeV,yB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as widgetsEditorStore } from '../store';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../store/utils';\n\n/**\n * A react hook that returns the client id of the last widget area to have\n * been selected, or to have a selected block within it.\n *\n * @return {string} clientId of the widget area last selected.\n */\nconst useLastSelectedWidgetArea = () =>\n\tuseSelect( ( select ) => {\n\t\tconst { getBlockSelectionEnd, getBlockName } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectionEndClientId = getBlockSelectionEnd();\n\n\t\t// If the selected block is a widget area, return its clientId.\n\t\tif ( getBlockName( selectionEndClientId ) === 'core/widget-area' ) {\n\t\t\treturn selectionEndClientId;\n\t\t}\n\n\t\tconst { getParentWidgetAreaBlock } = select( widgetsEditorStore );\n\t\tconst widgetAreaBlock =\n\t\t\tgetParentWidgetAreaBlock( selectionEndClientId );\n\t\tconst widgetAreaBlockClientId = widgetAreaBlock?.clientId;\n\n\t\tif ( widgetAreaBlockClientId ) {\n\t\t\treturn widgetAreaBlockClientId;\n\t\t}\n\n\t\t// If no widget area has been selected, return the clientId of the first\n\t\t// area.\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst widgetAreasPost = getEntityRecord(\n\t\t\tKIND,\n\t\t\tPOST_TYPE,\n\t\t\tbuildWidgetAreasPostId()\n\t\t);\n\t\treturn widgetAreasPost?.blocks[ 0 ]?.clientId;\n\t}, [] );\n\nexport default useLastSelectedWidgetArea;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/hooks/use-widget-library-insertion-point.js"],"names":["useWidgetLibraryInsertionPoint","firstRootId","select","getEntityRecord","coreStore","widgetAreasPost","KIND","POST_TYPE","blocks","clientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","blockEditorStore","insertionPoint","editWidgetsStore","__experimentalGetInsertionPoint","rootClientId","insertionIndex","length"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AAXA;AACA;AACA;;AAKA;AACA;AACA;AAIA,MAAMA,8BAA8B,GAAG,MAAM;AAC5C,QAAMC,WAAW,GAAG,qBAAaC,MAAF,IAAc;AAAA;;AAC5C;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAsBD,MAAM,CAAEE,eAAF,CAAlC;AACA,UAAMC,eAAe,GAAGF,eAAe,CACtCG,WADsC,EAEtCC,gBAFsC,EAGtC,oCAHsC,CAAvC;AAKA,WAAOF,eAAP,aAAOA,eAAP,gDAAOA,eAAe,CAAEG,MAAjB,CAAyB,CAAzB,CAAP,0DAAO,sBAA8BC,QAArC;AACA,GATmB,EASjB,EATiB,CAApB;AAWA,SAAO,qBACJP,MAAF,IAAc;AACb,UAAM;AACLQ,MAAAA,oBADK;AAELC,MAAAA,oBAFK;AAGLC,MAAAA,aAHK;AAILC,MAAAA;AAJK,QAKFX,MAAM,CAAEY,kBAAF,CALV;;AAOA,UAAMC,cAAc,GAAGb,MAAM,CAC5Bc,YAD4B,CAAN,CAErBC,+BAFqB,EAAvB,CARa,CAYb;AACA;;;AACA,QAAKF,cAAc,CAACG,YAApB,EAAmC;AAClC,aAAOH,cAAP;AACA;;AAED,UAAMN,QAAQ,GAAGE,oBAAoB,MAAMV,WAA3C;AACA,UAAMiB,YAAY,GAAGR,oBAAoB,CAAED,QAAF,CAAzC,CAnBa,CAqBb;AACA;AACA;;AACA,QAAKA,QAAQ,IAAIS,YAAY,KAAK,EAAlC,EAAuC;AACtC,aAAO;AACNA,QAAAA,YAAY,EAAET,QADR;AAENU,QAAAA,cAAc,EAAEP,aAAa,CAAEH,QAAF,CAAb,CAA0BW;AAFpC,OAAP;AAIA;;AAED,WAAO;AACNF,MAAAA,YADM;AAENC,MAAAA,cAAc,EAAEN,aAAa,CAAEJ,QAAF,CAAb,GAA4B;AAFtC,KAAP;AAIA,GApCK,EAqCN,CAAER,WAAF,CArCM,CAAP;AAuCA,CAnDD;;eAqDeD,8B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../store';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../store/utils';\n\nconst useWidgetLibraryInsertionPoint = () => {\n\tconst firstRootId = useSelect( ( select ) => {\n\t\t// Default to the first widget area\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst widgetAreasPost = getEntityRecord(\n\t\t\tKIND,\n\t\t\tPOST_TYPE,\n\t\t\tbuildWidgetAreasPostId()\n\t\t);\n\t\treturn widgetAreasPost?.blocks[ 0 ]?.clientId;\n\t}, [] );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst insertionPoint = select(\n\t\t\t\teditWidgetsStore\n\t\t\t).__experimentalGetInsertionPoint();\n\n\t\t\t// \"Browse all\" in the quick inserter will set the rootClientId to the current block.\n\t\t\t// Otherwise, it will just be undefined, and we'll have to handle it differently below.\n\t\t\tif ( insertionPoint.rootClientId ) {\n\t\t\t\treturn insertionPoint;\n\t\t\t}\n\n\t\t\tconst clientId = getBlockSelectionEnd() || firstRootId;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\t// If the selected block is at the root level, it's a widget area and\n\t\t\t// blocks can't be inserted here. Return this block as the root and the\n\t\t\t// last child clientId indicating insertion at the end.\n\t\t\tif ( clientId && rootClientId === '' ) {\n\t\t\t\treturn {\n\t\t\t\t\trootClientId: clientId,\n\t\t\t\t\tinsertionIndex: getBlockOrder( clientId ).length,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\trootClientId,\n\t\t\t\tinsertionIndex: getBlockIndex( clientId ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ firstRootId ]\n\t);\n};\n\nexport default useWidgetLibraryInsertionPoint;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/hooks/use-widget-library-insertion-point.js"],"names":["useWidgetLibraryInsertionPoint","firstRootId","select","getEntityRecord","coreStore","widgetAreasPost","KIND","POST_TYPE","blocks","clientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","blockEditorStore","insertionPoint","editWidgetsStore","__experimentalGetInsertionPoint","rootClientId","insertionIndex","length"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AAXA;AACA;AACA;;AAKA;AACA;AACA;AAIA,MAAMA,8BAA8B,GAAG,MAAM;AAC5C,QAAMC,WAAW,GAAG,qBAAaC,MAAF,IAAc;AAAA;;AAC5C;AACA,UAAM;AAAEC,MAAAA;AAAF,QAAsBD,MAAM,CAAEE,eAAF,CAAlC;AACA,UAAMC,eAAe,GAAGF,eAAe,CACtCG,WADsC,EAEtCC,gBAFsC,EAGtC,oCAHsC,CAAvC;AAKA,WAAOF,eAAP,aAAOA,eAAP,gDAAOA,eAAe,CAAEG,MAAjB,CAAyB,CAAzB,CAAP,0DAAO,sBAA8BC,QAArC;AACA,GATmB,EASjB,EATiB,CAApB;AAWA,SAAO,qBACJP,MAAF,IAAc;AACb,UAAM;AACLQ,MAAAA,oBADK;AAELC,MAAAA,oBAFK;AAGLC,MAAAA,aAHK;AAILC,MAAAA;AAJK,QAKFX,MAAM,CAAEY,kBAAF,CALV;;AAOA,UAAMC,cAAc,GACnBb,MAAM,CAAEc,YAAF,CAAN,CAA2BC,+BAA3B,EADD,CARa,CAWb;AACA;;;AACA,QAAKF,cAAc,CAACG,YAApB,EAAmC;AAClC,aAAOH,cAAP;AACA;;AAED,UAAMN,QAAQ,GAAGE,oBAAoB,MAAMV,WAA3C;AACA,UAAMiB,YAAY,GAAGR,oBAAoB,CAAED,QAAF,CAAzC,CAlBa,CAoBb;AACA;AACA;;AACA,QAAKA,QAAQ,IAAIS,YAAY,KAAK,EAAlC,EAAuC;AACtC,aAAO;AACNA,QAAAA,YAAY,EAAET,QADR;AAENU,QAAAA,cAAc,EAAEP,aAAa,CAAEH,QAAF,CAAb,CAA0BW;AAFpC,OAAP;AAIA;;AAED,WAAO;AACNF,MAAAA,YADM;AAENC,MAAAA,cAAc,EAAEN,aAAa,CAAEJ,QAAF,CAAb,GAA4B;AAFtC,KAAP;AAIA,GAnCK,EAoCN,CAAER,WAAF,CApCM,CAAP;AAsCA,CAlDD;;eAoDeD,8B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editWidgetsStore } from '../store';\nimport { buildWidgetAreasPostId, KIND, POST_TYPE } from '../store/utils';\n\nconst useWidgetLibraryInsertionPoint = () => {\n\tconst firstRootId = useSelect( ( select ) => {\n\t\t// Default to the first widget area\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst widgetAreasPost = getEntityRecord(\n\t\t\tKIND,\n\t\t\tPOST_TYPE,\n\t\t\tbuildWidgetAreasPostId()\n\t\t);\n\t\treturn widgetAreasPost?.blocks[ 0 ]?.clientId;\n\t}, [] );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst insertionPoint =\n\t\t\t\tselect( editWidgetsStore ).__experimentalGetInsertionPoint();\n\n\t\t\t// \"Browse all\" in the quick inserter will set the rootClientId to the current block.\n\t\t\t// Otherwise, it will just be undefined, and we'll have to handle it differently below.\n\t\t\tif ( insertionPoint.rootClientId ) {\n\t\t\t\treturn insertionPoint;\n\t\t\t}\n\n\t\t\tconst clientId = getBlockSelectionEnd() || firstRootId;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\t// If the selected block is at the root level, it's a widget area and\n\t\t\t// blocks can't be inserted here. Return this block as the root and the\n\t\t\t// last child clientId indicating insertion at the end.\n\t\t\tif ( clientId && rootClientId === '' ) {\n\t\t\t\treturn {\n\t\t\t\t\trootClientId: clientId,\n\t\t\t\t\tinsertionIndex: getBlockOrder( clientId ).length,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\trootClientId,\n\t\t\t\tinsertionIndex: getBlockIndex( clientId ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ firstRootId ]\n\t);\n};\n\nexport default useWidgetLibraryInsertionPoint;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/store/actions.js"],"names":["persistStubPost","id","blocks","registry","stubPost","dispatch","coreStore","receiveEntityRecords","KIND","POST_TYPE","saveEditedWidgetAreas","select","editedWidgetAreas","getEditedWidgetAreas","length","saveWidgetAreas","noticesStore","createSuccessNotice","type","e","createErrorNotice","message","widgetAreas","widgetArea","saveWidgetArea","finishResolution","WIDGET_AREA_ENTITY_TYPE","widgetAreaId","widgets","getWidgets","post","getEditedEntityRecord","areaWidgets","Object","values","filter","sidebar","usedReferenceWidgets","widgetsBlocks","block","attributes","name","includes","push","deletedWidgets","widget","widgetsNewArea","getWidgetAreaForWidgetId","batchMeta","batchTasks","sidebarWidgetsIds","i","widgetId","oldWidget","editEntityRecord","undoIgnore","hasEdits","hasEditsForEntityRecord","saveEditedEntityRecord","saveEntityRecord","position","clientId","deleteEntityRecord","force","records","__experimentalBatch","preservedRecords","record","hasOwnProperty","failedWidgetNames","__internalWidgetId","error","getLastEntitySaveError","Error","join","trySaveWidgetArea","undefined","throwOnError","setWidgetIdForClientId","setWidgetAreasOpenState","widgetAreasOpenState","setIsWidgetAreaOpen","isOpen","setIsInserterOpened","value","setIsListViewOpened","closeGeneralSidebar","interfaceStore","disableComplementaryArea","editWidgetsStoreName","moveBlockToWidgetArea","sourceRootClientId","blockEditorStore","getBlockRootClientId","getBlocks","destinationWidgetAreaBlock","find","destinationRootClientId","destinationInnerBlocksClientIds","getBlockOrder","destinationIndex","isDestinationWidgetAreaOpen","getIsWidgetAreaOpen","moveBlocksToPosition"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as interfaceStore } from '@wordpress/interface';\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 { transformBlockToWidget } from './transformers';\nimport {\n\tbuildWidgetAreaPostId,\n\tbuildWidgetAreasQuery,\n\tcreateStubPost,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\n/**\n * Persists a stub post with given ID to core data store. The post is meant to be in-memory only and\n * shouldn't be saved via the API.\n *\n * @param {string} id Post ID.\n * @param {Array} blocks Blocks the post should consist of.\n * @return {Object} The post object.\n */\nexport const persistStubPost = ( id, blocks ) => ( { registry } ) => {\n\tconst stubPost = createStubPost( id, blocks );\n\tregistry\n\t\t.dispatch( coreStore )\n\t\t.receiveEntityRecords(\n\t\t\tKIND,\n\t\t\tPOST_TYPE,\n\t\t\tstubPost,\n\t\t\t{ id: stubPost.id },\n\t\t\tfalse\n\t\t);\n\treturn stubPost;\n};\n\n/**\n * Converts all the blocks from edited widget areas into widgets,\n * and submits a batch request to save everything at once.\n *\n * Creates a snackbar notice on either success or error.\n *\n * @return {Function} An action creator.\n */\nexport const saveEditedWidgetAreas = () => async ( {\n\tselect,\n\tdispatch,\n\tregistry,\n} ) => {\n\tconst editedWidgetAreas = select.getEditedWidgetAreas();\n\tif ( ! editedWidgetAreas?.length ) {\n\t\treturn;\n\t}\n\ttry {\n\t\tawait dispatch.saveWidgetAreas( editedWidgetAreas );\n\t\tregistry\n\t\t\t.dispatch( noticesStore )\n\t\t\t.createSuccessNotice( __( 'Widgets saved.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t} catch ( e ) {\n\t\tregistry.dispatch( noticesStore ).createErrorNotice(\n\t\t\t/* translators: %s: The error message. */\n\t\t\tsprintf( __( 'There was an error. %s' ), e.message ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n};\n\n/**\n * Converts all the blocks from specified widget areas into widgets,\n * and submits a batch request to save everything at once.\n *\n * @param {Object[]} widgetAreas Widget areas to save.\n * @return {Function} An action creator.\n */\nexport const saveWidgetAreas = ( widgetAreas ) => async ( {\n\tdispatch,\n\tregistry,\n} ) => {\n\ttry {\n\t\tfor ( const widgetArea of widgetAreas ) {\n\t\t\tawait dispatch.saveWidgetArea( widgetArea.id );\n\t\t}\n\t} finally {\n\t\t// saveEditedEntityRecord resets the resolution status, let's fix it manually.\n\t\tawait registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.finishResolution(\n\t\t\t\t'getEntityRecord',\n\t\t\t\tKIND,\n\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\tbuildWidgetAreasQuery()\n\t\t\t);\n\t}\n};\n\n/**\n * Converts all the blocks from a widget area specified by ID into widgets,\n * and submits a batch request to save everything at once.\n *\n * @param {string} widgetAreaId ID of the widget area to process.\n * @return {Function} An action creator.\n */\nexport const saveWidgetArea = ( widgetAreaId ) => async ( {\n\tdispatch,\n\tselect,\n\tregistry,\n} ) => {\n\tconst widgets = select.getWidgets();\n\n\tconst post = registry\n\t\t.select( coreStore )\n\t\t.getEditedEntityRecord(\n\t\t\tKIND,\n\t\t\tPOST_TYPE,\n\t\t\tbuildWidgetAreaPostId( widgetAreaId )\n\t\t);\n\n\t// Get all widgets from this area\n\tconst areaWidgets = Object.values( widgets ).filter(\n\t\t( { sidebar } ) => sidebar === widgetAreaId\n\t);\n\n\t// Remove all duplicate reference widget instances for legacy widgets.\n\t// Why? We filter out the widgets with duplicate IDs to prevent adding more than one instance of a widget\n\t// implemented using a function. WordPress doesn't support having more than one instance of these, if you try to\n\t// save multiple instances of these in different sidebars you will run into undefined behaviors.\n\tconst usedReferenceWidgets = [];\n\tconst widgetsBlocks = post.blocks.filter( ( block ) => {\n\t\tconst { id } = block.attributes;\n\n\t\tif ( block.name === 'core/legacy-widget' && id ) {\n\t\t\tif ( usedReferenceWidgets.includes( id ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tusedReferenceWidgets.push( id );\n\t\t}\n\t\treturn true;\n\t} );\n\n\t// Determine which widgets have been deleted. We can tell if a widget is\n\t// deleted and not just moved to a different area by looking to see if\n\t// getWidgetAreaForWidgetId() finds something.\n\tconst deletedWidgets = [];\n\tfor ( const widget of areaWidgets ) {\n\t\tconst widgetsNewArea = select.getWidgetAreaForWidgetId( widget.id );\n\t\tif ( ! widgetsNewArea ) {\n\t\t\tdeletedWidgets.push( widget );\n\t\t}\n\t}\n\n\tconst batchMeta = [];\n\tconst batchTasks = [];\n\tconst sidebarWidgetsIds = [];\n\tfor ( let i = 0; i < widgetsBlocks.length; i++ ) {\n\t\tconst block = widgetsBlocks[ i ];\n\t\tconst widgetId = getWidgetIdFromBlock( block );\n\t\tconst oldWidget = widgets[ widgetId ];\n\t\tconst widget = transformBlockToWidget( block, oldWidget );\n\n\t\t// We'll replace the null widgetId after save, but we track it here\n\t\t// since order is important.\n\t\tsidebarWidgetsIds.push( widgetId );\n\n\t\t// Check oldWidget as widgetId might refer to an ID which has been\n\t\t// deleted, e.g. if a deleted block is restored via undo after saving.\n\t\tif ( oldWidget ) {\n\t\t\t// Update an existing widget.\n\t\t\tregistry.dispatch( coreStore ).editEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'widget',\n\t\t\t\twidgetId,\n\t\t\t\t{\n\t\t\t\t\t...widget,\n\t\t\t\t\tsidebar: widgetAreaId,\n\t\t\t\t},\n\t\t\t\t{ undoIgnore: true }\n\t\t\t);\n\n\t\t\tconst hasEdits = registry\n\t\t\t\t.select( coreStore )\n\t\t\t\t.hasEditsForEntityRecord( 'root', 'widget', widgetId );\n\n\t\t\tif ( ! hasEdits ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbatchTasks.push( ( { saveEditedEntityRecord } ) =>\n\t\t\t\tsaveEditedEntityRecord( 'root', 'widget', widgetId )\n\t\t\t);\n\t\t} else {\n\t\t\t// Create a new widget.\n\t\t\tbatchTasks.push( ( { saveEntityRecord } ) =>\n\t\t\t\tsaveEntityRecord( 'root', 'widget', {\n\t\t\t\t\t...widget,\n\t\t\t\t\tsidebar: widgetAreaId,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\n\t\tbatchMeta.push( {\n\t\t\tblock,\n\t\t\tposition: i,\n\t\t\tclientId: block.clientId,\n\t\t} );\n\t}\n\tfor ( const widget of deletedWidgets ) {\n\t\tbatchTasks.push( ( { deleteEntityRecord } ) =>\n\t\t\tdeleteEntityRecord( 'root', 'widget', widget.id, {\n\t\t\t\tforce: true,\n\t\t\t} )\n\t\t);\n\t}\n\n\tconst records = await registry\n\t\t.dispatch( coreStore )\n\t\t.__experimentalBatch( batchTasks );\n\tconst preservedRecords = records.filter(\n\t\t( record ) => ! record.hasOwnProperty( 'deleted' )\n\t);\n\n\tconst failedWidgetNames = [];\n\n\tfor ( let i = 0; i < preservedRecords.length; i++ ) {\n\t\tconst widget = preservedRecords[ i ];\n\t\tconst { block, position } = batchMeta[ i ];\n\n\t\t// Set __internalWidgetId on the block. This will be persisted to the\n\t\t// store when we dispatch receiveEntityRecords( post ) below.\n\t\tpost.blocks[ position ].attributes.__internalWidgetId = widget.id;\n\n\t\tconst error = registry\n\t\t\t.select( coreStore )\n\t\t\t.getLastEntitySaveError( 'root', 'widget', widget.id );\n\t\tif ( error ) {\n\t\t\tfailedWidgetNames.push( block.attributes?.name || block?.name );\n\t\t}\n\n\t\tif ( ! sidebarWidgetsIds[ position ] ) {\n\t\t\tsidebarWidgetsIds[ position ] = widget.id;\n\t\t}\n\t}\n\n\tif ( failedWidgetNames.length ) {\n\t\tthrow new Error(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: List of widget names */\n\t\t\t\t__( 'Could not save the following widgets: %s.' ),\n\t\t\t\tfailedWidgetNames.join( ', ' )\n\t\t\t)\n\t\t);\n\t}\n\n\tregistry.dispatch( coreStore ).editEntityRecord(\n\t\tKIND,\n\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\twidgetAreaId,\n\t\t{\n\t\t\twidgets: sidebarWidgetsIds,\n\t\t},\n\t\t{ undoIgnore: true }\n\t);\n\n\tdispatch( trySaveWidgetArea( widgetAreaId ) );\n\n\tregistry\n\t\t.dispatch( coreStore )\n\t\t.receiveEntityRecords( KIND, POST_TYPE, post, undefined );\n};\n\nconst trySaveWidgetArea = ( widgetAreaId ) => ( { registry } ) => {\n\tregistry\n\t\t.dispatch( coreStore )\n\t\t.saveEditedEntityRecord( KIND, WIDGET_AREA_ENTITY_TYPE, widgetAreaId, {\n\t\t\tthrowOnError: true,\n\t\t} );\n};\n\n/**\n * Sets the clientId stored for a particular widgetId.\n *\n * @param {number} clientId Client id.\n * @param {number} widgetId Widget id.\n *\n * @return {Object} Action.\n */\nexport function setWidgetIdForClientId( clientId, widgetId ) {\n\treturn {\n\t\ttype: 'SET_WIDGET_ID_FOR_CLIENT_ID',\n\t\tclientId,\n\t\twidgetId,\n\t};\n}\n\n/**\n * Sets the open state of all the widget areas.\n *\n * @param {Object} widgetAreasOpenState The open states of all the widget areas.\n *\n * @return {Object} Action.\n */\nexport function setWidgetAreasOpenState( widgetAreasOpenState ) {\n\treturn {\n\t\ttype: 'SET_WIDGET_AREAS_OPEN_STATE',\n\t\twidgetAreasOpenState,\n\t};\n}\n\n/**\n * Sets the open state of the widget area.\n *\n * @param {string} clientId The clientId of the widget area.\n * @param {boolean} isOpen Whether the widget area should be opened.\n *\n * @return {Object} Action.\n */\nexport function setIsWidgetAreaOpen( clientId, isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_WIDGET_AREA_OPEN',\n\t\tclientId,\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean|Object} value Whether the inserter should be\n * opened (true) or closed (false).\n * To specify an insertion point,\n * use an object.\n * @param {string} value.rootClientId The root client ID to insert at.\n * @param {number} value.insertionIndex The index to insert at.\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the list view.\n *\n * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.\n * @return {Object} Action object.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object signalling that the user closed the sidebar.\n *\n * @return {Object} Action creator.\n */\nexport const closeGeneralSidebar = () => ( { registry } ) => {\n\tregistry\n\t\t.dispatch( interfaceStore )\n\t\t.disableComplementaryArea( editWidgetsStoreName );\n};\n\n/**\n * Action that handles moving a block between widget areas\n *\n * @param {string} clientId The clientId of the block to move.\n * @param {string} widgetAreaId The id of the widget area to move the block to.\n */\nexport const moveBlockToWidgetArea = ( clientId, widgetAreaId ) => async ( {\n\tdispatch,\n\tselect,\n\tregistry,\n} ) => {\n\tconst sourceRootClientId = registry\n\t\t.select( blockEditorStore )\n\t\t.getBlockRootClientId( [ clientId ] );\n\n\t// Search the top level blocks (widget areas) for the one with the matching\n\t// id attribute. Makes the assumption that all top-level blocks are widget\n\t// areas.\n\tconst widgetAreas = registry.select( blockEditorStore ).getBlocks();\n\tconst destinationWidgetAreaBlock = widgetAreas.find(\n\t\t( { attributes } ) => attributes.id === widgetAreaId\n\t);\n\tconst destinationRootClientId = destinationWidgetAreaBlock.clientId;\n\n\t// Get the index for moving to the end of the the destination widget area.\n\tconst destinationInnerBlocksClientIds = registry\n\t\t.select( blockEditorStore )\n\t\t.getBlockOrder( destinationRootClientId );\n\tconst destinationIndex = destinationInnerBlocksClientIds.length;\n\n\t// Reveal the widget area, if it's not open.\n\tconst isDestinationWidgetAreaOpen = select.getIsWidgetAreaOpen(\n\t\tdestinationRootClientId\n\t);\n\n\tif ( ! isDestinationWidgetAreaOpen ) {\n\t\tdispatch.setIsWidgetAreaOpen( destinationRootClientId, true );\n\t}\n\n\t// Move the block.\n\tregistry\n\t\t.dispatch( blockEditorStore )\n\t\t.moveBlocksToPosition(\n\t\t\t[ clientId ],\n\t\t\tsourceRootClientId,\n\t\t\tdestinationRootClientId,\n\t\t\tdestinationIndex\n\t\t);\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/store/actions.js"],"names":["persistStubPost","id","blocks","registry","stubPost","dispatch","coreStore","receiveEntityRecords","KIND","POST_TYPE","saveEditedWidgetAreas","select","editedWidgetAreas","getEditedWidgetAreas","length","saveWidgetAreas","noticesStore","createSuccessNotice","type","e","createErrorNotice","message","widgetAreas","widgetArea","saveWidgetArea","finishResolution","WIDGET_AREA_ENTITY_TYPE","widgetAreaId","widgets","getWidgets","post","getEditedEntityRecord","areaWidgets","Object","values","filter","sidebar","usedReferenceWidgets","widgetsBlocks","block","attributes","name","includes","push","deletedWidgets","widget","widgetsNewArea","getWidgetAreaForWidgetId","batchMeta","batchTasks","sidebarWidgetsIds","i","widgetId","oldWidget","editEntityRecord","undoIgnore","hasEdits","hasEditsForEntityRecord","saveEditedEntityRecord","saveEntityRecord","position","clientId","deleteEntityRecord","force","records","__experimentalBatch","preservedRecords","record","hasOwnProperty","failedWidgetNames","__internalWidgetId","error","getLastEntitySaveError","Error","join","trySaveWidgetArea","undefined","throwOnError","setWidgetIdForClientId","setWidgetAreasOpenState","widgetAreasOpenState","setIsWidgetAreaOpen","isOpen","setIsInserterOpened","value","setIsListViewOpened","closeGeneralSidebar","interfaceStore","disableComplementaryArea","editWidgetsStoreName","moveBlockToWidgetArea","sourceRootClientId","blockEditorStore","getBlockRootClientId","getBlocks","destinationWidgetAreaBlock","find","destinationRootClientId","destinationInnerBlocksClientIds","getBlockOrder","destinationIndex","isDestinationWidgetAreaOpen","getIsWidgetAreaOpen","moveBlocksToPosition"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as interfaceStore } from '@wordpress/interface';\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 { transformBlockToWidget } from './transformers';\nimport {\n\tbuildWidgetAreaPostId,\n\tbuildWidgetAreasQuery,\n\tcreateStubPost,\n\tKIND,\n\tPOST_TYPE,\n\tWIDGET_AREA_ENTITY_TYPE,\n} from './utils';\nimport { STORE_NAME as editWidgetsStoreName } from './constants';\n\n/**\n * Persists a stub post with given ID to core data store. The post is meant to be in-memory only and\n * shouldn't be saved via the API.\n *\n * @param {string} id Post ID.\n * @param {Array} blocks Blocks the post should consist of.\n * @return {Object} The post object.\n */\nexport const persistStubPost =\n\t( id, blocks ) =>\n\t( { registry } ) => {\n\t\tconst stubPost = createStubPost( id, blocks );\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.receiveEntityRecords(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tstubPost,\n\t\t\t\t{ id: stubPost.id },\n\t\t\t\tfalse\n\t\t\t);\n\t\treturn stubPost;\n\t};\n\n/**\n * Converts all the blocks from edited widget areas into widgets,\n * and submits a batch request to save everything at once.\n *\n * Creates a snackbar notice on either success or error.\n *\n * @return {Function} An action creator.\n */\nexport const saveEditedWidgetAreas =\n\t() =>\n\tasync ( { select, dispatch, registry } ) => {\n\t\tconst editedWidgetAreas = select.getEditedWidgetAreas();\n\t\tif ( ! editedWidgetAreas?.length ) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tawait dispatch.saveWidgetAreas( editedWidgetAreas );\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createSuccessNotice( __( 'Widgets saved.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t} catch ( e ) {\n\t\t\tregistry.dispatch( noticesStore ).createErrorNotice(\n\t\t\t\t/* translators: %s: The error message. */\n\t\t\t\tsprintf( __( 'There was an error. %s' ), e.message ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n/**\n * Converts all the blocks from specified widget areas into widgets,\n * and submits a batch request to save everything at once.\n *\n * @param {Object[]} widgetAreas Widget areas to save.\n * @return {Function} An action creator.\n */\nexport const saveWidgetAreas =\n\t( widgetAreas ) =>\n\tasync ( { dispatch, registry } ) => {\n\t\ttry {\n\t\t\tfor ( const widgetArea of widgetAreas ) {\n\t\t\t\tawait dispatch.saveWidgetArea( widgetArea.id );\n\t\t\t}\n\t\t} finally {\n\t\t\t// saveEditedEntityRecord resets the resolution status, let's fix it manually.\n\t\t\tawait registry\n\t\t\t\t.dispatch( coreStore )\n\t\t\t\t.finishResolution(\n\t\t\t\t\t'getEntityRecord',\n\t\t\t\t\tKIND,\n\t\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\t\tbuildWidgetAreasQuery()\n\t\t\t\t);\n\t\t}\n\t};\n\n/**\n * Converts all the blocks from a widget area specified by ID into widgets,\n * and submits a batch request to save everything at once.\n *\n * @param {string} widgetAreaId ID of the widget area to process.\n * @return {Function} An action creator.\n */\nexport const saveWidgetArea =\n\t( widgetAreaId ) =>\n\tasync ( { dispatch, select, registry } ) => {\n\t\tconst widgets = select.getWidgets();\n\n\t\tconst post = registry\n\t\t\t.select( coreStore )\n\t\t\t.getEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tPOST_TYPE,\n\t\t\t\tbuildWidgetAreaPostId( widgetAreaId )\n\t\t\t);\n\n\t\t// Get all widgets from this area\n\t\tconst areaWidgets = Object.values( widgets ).filter(\n\t\t\t( { sidebar } ) => sidebar === widgetAreaId\n\t\t);\n\n\t\t// Remove all duplicate reference widget instances for legacy widgets.\n\t\t// Why? We filter out the widgets with duplicate IDs to prevent adding more than one instance of a widget\n\t\t// implemented using a function. WordPress doesn't support having more than one instance of these, if you try to\n\t\t// save multiple instances of these in different sidebars you will run into undefined behaviors.\n\t\tconst usedReferenceWidgets = [];\n\t\tconst widgetsBlocks = post.blocks.filter( ( block ) => {\n\t\t\tconst { id } = block.attributes;\n\n\t\t\tif ( block.name === 'core/legacy-widget' && id ) {\n\t\t\t\tif ( usedReferenceWidgets.includes( id ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tusedReferenceWidgets.push( id );\n\t\t\t}\n\t\t\treturn true;\n\t\t} );\n\n\t\t// Determine which widgets have been deleted. We can tell if a widget is\n\t\t// deleted and not just moved to a different area by looking to see if\n\t\t// getWidgetAreaForWidgetId() finds something.\n\t\tconst deletedWidgets = [];\n\t\tfor ( const widget of areaWidgets ) {\n\t\t\tconst widgetsNewArea = select.getWidgetAreaForWidgetId( widget.id );\n\t\t\tif ( ! widgetsNewArea ) {\n\t\t\t\tdeletedWidgets.push( widget );\n\t\t\t}\n\t\t}\n\n\t\tconst batchMeta = [];\n\t\tconst batchTasks = [];\n\t\tconst sidebarWidgetsIds = [];\n\t\tfor ( let i = 0; i < widgetsBlocks.length; i++ ) {\n\t\t\tconst block = widgetsBlocks[ i ];\n\t\t\tconst widgetId = getWidgetIdFromBlock( block );\n\t\t\tconst oldWidget = widgets[ widgetId ];\n\t\t\tconst widget = transformBlockToWidget( block, oldWidget );\n\n\t\t\t// We'll replace the null widgetId after save, but we track it here\n\t\t\t// since order is important.\n\t\t\tsidebarWidgetsIds.push( widgetId );\n\n\t\t\t// Check oldWidget as widgetId might refer to an ID which has been\n\t\t\t// deleted, e.g. if a deleted block is restored via undo after saving.\n\t\t\tif ( oldWidget ) {\n\t\t\t\t// Update an existing widget.\n\t\t\t\tregistry.dispatch( coreStore ).editEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'widget',\n\t\t\t\t\twidgetId,\n\t\t\t\t\t{\n\t\t\t\t\t\t...widget,\n\t\t\t\t\t\tsidebar: widgetAreaId,\n\t\t\t\t\t},\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\n\t\t\t\tconst hasEdits = registry\n\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t.hasEditsForEntityRecord( 'root', 'widget', widgetId );\n\n\t\t\t\tif ( ! hasEdits ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tbatchTasks.push( ( { saveEditedEntityRecord } ) =>\n\t\t\t\t\tsaveEditedEntityRecord( 'root', 'widget', widgetId )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// Create a new widget.\n\t\t\t\tbatchTasks.push( ( { saveEntityRecord } ) =>\n\t\t\t\t\tsaveEntityRecord( 'root', 'widget', {\n\t\t\t\t\t\t...widget,\n\t\t\t\t\t\tsidebar: widgetAreaId,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tbatchMeta.push( {\n\t\t\t\tblock,\n\t\t\t\tposition: i,\n\t\t\t\tclientId: block.clientId,\n\t\t\t} );\n\t\t}\n\t\tfor ( const widget of deletedWidgets ) {\n\t\t\tbatchTasks.push( ( { deleteEntityRecord } ) =>\n\t\t\t\tdeleteEntityRecord( 'root', 'widget', widget.id, {\n\t\t\t\t\tforce: true,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\n\t\tconst records = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.__experimentalBatch( batchTasks );\n\t\tconst preservedRecords = records.filter(\n\t\t\t( record ) => ! record.hasOwnProperty( 'deleted' )\n\t\t);\n\n\t\tconst failedWidgetNames = [];\n\n\t\tfor ( let i = 0; i < preservedRecords.length; i++ ) {\n\t\t\tconst widget = preservedRecords[ i ];\n\t\t\tconst { block, position } = batchMeta[ i ];\n\n\t\t\t// Set __internalWidgetId on the block. This will be persisted to the\n\t\t\t// store when we dispatch receiveEntityRecords( post ) below.\n\t\t\tpost.blocks[ position ].attributes.__internalWidgetId = widget.id;\n\n\t\t\tconst error = registry\n\t\t\t\t.select( coreStore )\n\t\t\t\t.getLastEntitySaveError( 'root', 'widget', widget.id );\n\t\t\tif ( error ) {\n\t\t\t\tfailedWidgetNames.push( block.attributes?.name || block?.name );\n\t\t\t}\n\n\t\t\tif ( ! sidebarWidgetsIds[ position ] ) {\n\t\t\t\tsidebarWidgetsIds[ position ] = widget.id;\n\t\t\t}\n\t\t}\n\n\t\tif ( failedWidgetNames.length ) {\n\t\t\tthrow new Error(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: List of widget names */\n\t\t\t\t\t__( 'Could not save the following widgets: %s.' ),\n\t\t\t\t\tfailedWidgetNames.join( ', ' )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tregistry.dispatch( coreStore ).editEntityRecord(\n\t\t\tKIND,\n\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\twidgetAreaId,\n\t\t\t{\n\t\t\t\twidgets: sidebarWidgetsIds,\n\t\t\t},\n\t\t\t{ undoIgnore: true }\n\t\t);\n\n\t\tdispatch( trySaveWidgetArea( widgetAreaId ) );\n\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.receiveEntityRecords( KIND, POST_TYPE, post, undefined );\n\t};\n\nconst trySaveWidgetArea =\n\t( widgetAreaId ) =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEditedEntityRecord(\n\t\t\t\tKIND,\n\t\t\t\tWIDGET_AREA_ENTITY_TYPE,\n\t\t\t\twidgetAreaId,\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t};\n\n/**\n * Sets the clientId stored for a particular widgetId.\n *\n * @param {number} clientId Client id.\n * @param {number} widgetId Widget id.\n *\n * @return {Object} Action.\n */\nexport function setWidgetIdForClientId( clientId, widgetId ) {\n\treturn {\n\t\ttype: 'SET_WIDGET_ID_FOR_CLIENT_ID',\n\t\tclientId,\n\t\twidgetId,\n\t};\n}\n\n/**\n * Sets the open state of all the widget areas.\n *\n * @param {Object} widgetAreasOpenState The open states of all the widget areas.\n *\n * @return {Object} Action.\n */\nexport function setWidgetAreasOpenState( widgetAreasOpenState ) {\n\treturn {\n\t\ttype: 'SET_WIDGET_AREAS_OPEN_STATE',\n\t\twidgetAreasOpenState,\n\t};\n}\n\n/**\n * Sets the open state of the widget area.\n *\n * @param {string} clientId The clientId of the widget area.\n * @param {boolean} isOpen Whether the widget area should be opened.\n *\n * @return {Object} Action.\n */\nexport function setIsWidgetAreaOpen( clientId, isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_WIDGET_AREA_OPEN',\n\t\tclientId,\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean|Object} value Whether the inserter should be\n * opened (true) or closed (false).\n * To specify an insertion point,\n * use an object.\n * @param {string} value.rootClientId The root client ID to insert at.\n * @param {number} value.insertionIndex The index to insert at.\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the list view.\n *\n * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.\n * @return {Object} Action object.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object signalling that the user closed the sidebar.\n *\n * @return {Object} Action creator.\n */\nexport const closeGeneralSidebar =\n\t() =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t.disableComplementaryArea( editWidgetsStoreName );\n\t};\n\n/**\n * Action that handles moving a block between widget areas\n *\n * @param {string} clientId The clientId of the block to move.\n * @param {string} widgetAreaId The id of the widget area to move the block to.\n */\nexport const moveBlockToWidgetArea =\n\t( clientId, widgetAreaId ) =>\n\tasync ( { dispatch, select, registry } ) => {\n\t\tconst sourceRootClientId = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlockRootClientId( [ clientId ] );\n\n\t\t// Search the top level blocks (widget areas) for the one with the matching\n\t\t// id attribute. Makes the assumption that all top-level blocks are widget\n\t\t// areas.\n\t\tconst widgetAreas = registry.select( blockEditorStore ).getBlocks();\n\t\tconst destinationWidgetAreaBlock = widgetAreas.find(\n\t\t\t( { attributes } ) => attributes.id === widgetAreaId\n\t\t);\n\t\tconst destinationRootClientId = destinationWidgetAreaBlock.clientId;\n\n\t\t// Get the index for moving to the end of the the destination widget area.\n\t\tconst destinationInnerBlocksClientIds = registry\n\t\t\t.select( blockEditorStore )\n\t\t\t.getBlockOrder( destinationRootClientId );\n\t\tconst destinationIndex = destinationInnerBlocksClientIds.length;\n\n\t\t// Reveal the widget area, if it's not open.\n\t\tconst isDestinationWidgetAreaOpen = select.getIsWidgetAreaOpen(\n\t\t\tdestinationRootClientId\n\t\t);\n\n\t\tif ( ! isDestinationWidgetAreaOpen ) {\n\t\t\tdispatch.setIsWidgetAreaOpen( destinationRootClientId, true );\n\t\t}\n\n\t\t// Move the block.\n\t\tregistry\n\t\t\t.dispatch( blockEditorStore )\n\t\t\t.moveBlocksToPosition(\n\t\t\t\t[ clientId ],\n\t\t\t\tsourceRootClientId,\n\t\t\t\tdestinationRootClientId,\n\t\t\t\tdestinationIndex\n\t\t\t);\n\t};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/store/resolvers.js"],"names":["getWidgetAreas","dispatch","registry","query","widgetAreas","resolveSelect","coreStore","getEntityRecords","KIND","WIDGET_AREA_ENTITY_TYPE","widgetAreaBlocks","sortedWidgetAreas","sort","a","b","id","widgetArea","push","name","widgets","length","widgetAreasOpenState","forEach","widgetAreaBlock","index","clientId","getWidgets","groupedBySidebar","widget","block","sidebar","sidebarId","hasOwnProperty"],"mappings":";;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAQA;;AAlBA;AACA;AACA;;AAIA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,cAAc,GAAG,MAAM,cAAoC;AAAA,MAA5B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA4B;AACvE,QAAMC,KAAK,GAAG,mCAAd;AACA,QAAMC,WAAW,GAAG,MAAMF,QAAQ,CAChCG,aADwB,CACTC,eADS,EAExBC,gBAFwB,CAENC,WAFM,EAEAC,8BAFA,EAEyBN,KAFzB,CAA1B;AAIA,QAAMO,gBAAgB,GAAG,EAAzB;AACA,QAAMC,iBAAiB,GAAGP,WAAW,CAACQ,IAAZ,CAAkB,CAAEC,CAAF,EAAKC,CAAL,KAAY;AACvD,QAAKD,CAAC,CAACE,EAAF,KAAS,qBAAd,EAAsC;AACrC,aAAO,CAAP;AACA;;AACD,QAAKD,CAAC,CAACC,EAAF,KAAS,qBAAd,EAAsC;AACrC,aAAO,CAAC,CAAR;AACA;;AACD,WAAO,CAAP;AACA,GARyB,CAA1B;;AASA,OAAM,MAAMC,UAAZ,IAA0BL,iBAA1B,EAA8C;AAC7CD,IAAAA,gBAAgB,CAACO,IAAjB,CACC,yBAAa,kBAAb,EAAiC;AAChCF,MAAAA,EAAE,EAAEC,UAAU,CAACD,EADiB;AAEhCG,MAAAA,IAAI,EAAEF,UAAU,CAACE;AAFe,KAAjC,CADD;;AAOA,QAAK,CAAEF,UAAU,CAACG,OAAX,CAAmBC,MAA1B,EAAmC;AAClC;AACA;AACAnB,MAAAA,QAAQ,CACP,8BAAiB,kCAAuBe,UAAU,CAACD,EAAlC,CAAjB,EAAyD,EAAzD,CADO,CAAR;AAGA;AACD;;AAED,QAAMM,oBAAoB,GAAG,EAA7B;AACAX,EAAAA,gBAAgB,CAACY,OAAjB,CAA0B,CAAEC,eAAF,EAAmBC,KAAnB,KAA8B;AACvD;AACAH,IAAAA,oBAAoB,CAAEE,eAAe,CAACE,QAAlB,CAApB,GAAmDD,KAAK,KAAK,CAA7D;AACA,GAHD;AAIAvB,EAAAA,QAAQ,CAAE,sCAAyBoB,oBAAzB,CAAF,CAAR;AAEApB,EAAAA,QAAQ,CAAE,8BAAiB,oCAAjB,EAA2CS,gBAA3C,CAAF,CAAR;AACA,CAzCM;AA2CP;AACA;AACA;AACA;AACA;;;;;AACO,MAAMgB,UAAU,GAAG,MAAM,eAAoC;AAAA,MAA5B;AAAEzB,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA4B;AACnE,QAAMC,KAAK,GAAG,+BAAd;AACA,QAAMgB,OAAO,GAAG,MAAMjB,QAAQ,CAC5BG,aADoB,CACLC,eADK,EAEpBC,gBAFoB,CAEF,MAFE,EAEM,QAFN,EAEgBJ,KAFhB,CAAtB;AAIA,QAAMwB,gBAAgB,GAAG,EAAzB;;AAEA,OAAM,MAAMC,MAAZ,IAAsBT,OAAtB,EAAgC;AAC/B,UAAMU,KAAK,GAAG,0CAAwBD,MAAxB,CAAd;AACAD,IAAAA,gBAAgB,CAAEC,MAAM,CAACE,OAAT,CAAhB,GACCH,gBAAgB,CAAEC,MAAM,CAACE,OAAT,CAAhB,IAAsC,EADvC;AAEAH,IAAAA,gBAAgB,CAAEC,MAAM,CAACE,OAAT,CAAhB,CAAmCb,IAAnC,CAAyCY,KAAzC;AACA;;AAED,OAAM,MAAME,SAAZ,IAAyBJ,gBAAzB,EAA4C;AAC3C,QAAKA,gBAAgB,CAACK,cAAjB,CAAiCD,SAAjC,CAAL,EAAoD;AACnD;AACA9B,MAAAA,QAAQ,CACP,8BACC,kCAAuB8B,SAAvB,CADD,EAECJ,gBAAgB,CAAEI,SAAF,CAFjB,CADO,CAAR;AAMA;AACD;AACD,CA1BM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { persistStubPost, setWidgetAreasOpenState } from './actions';\nimport {\n\tKIND,\n\tWIDGET_AREA_ENTITY_TYPE,\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tbuildWidgetAreasPostId,\n} from './utils';\nimport { transformWidgetToBlock } from './transformers';\n\n/**\n * Creates a \"stub\" widgets post reflecting all available widget areas. The\n * post is meant as a convenient to only exists in runtime and should never be saved. It\n * enables a convenient way of editing the widgets by using a regular post editor.\n *\n * Fetches all widgets from all widgets aras, converts them into blocks, and hydrates a new post with them.\n *\n * @return {Function} An action creator.\n */\nexport const getWidgetAreas = () => async ( { dispatch, registry } ) => {\n\tconst query = buildWidgetAreasQuery();\n\tconst widgetAreas = await registry\n\t\t.resolveSelect( coreStore )\n\t\t.getEntityRecords( KIND, WIDGET_AREA_ENTITY_TYPE, query );\n\n\tconst widgetAreaBlocks = [];\n\tconst sortedWidgetAreas = widgetAreas.sort( ( a, b ) => {\n\t\tif ( a.id === 'wp_inactive_widgets' ) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ( b.id === 'wp_inactive_widgets' ) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn 0;\n\t} );\n\tfor ( const widgetArea of sortedWidgetAreas ) {\n\t\twidgetAreaBlocks.push(\n\t\t\tcreateBlock( 'core/widget-area', {\n\t\t\t\tid: widgetArea.id,\n\t\t\t\tname: widgetArea.name,\n\t\t\t} )\n\t\t);\n\n\t\tif ( ! widgetArea.widgets.length ) {\n\t\t\t// If this widget area has no widgets, it won't get a post setup by\n\t\t\t// the getWidgets resolver.\n\t\t\tdispatch(\n\t\t\t\tpersistStubPost( buildWidgetAreaPostId( widgetArea.id ), [] )\n\t\t\t);\n\t\t}\n\t}\n\n\tconst widgetAreasOpenState = {};\n\twidgetAreaBlocks.forEach( ( widgetAreaBlock, index ) => {\n\t\t// Defaults to open the first widget area.\n\t\twidgetAreasOpenState[ widgetAreaBlock.clientId ] = index === 0;\n\t} );\n\tdispatch( setWidgetAreasOpenState( widgetAreasOpenState ) );\n\n\tdispatch( persistStubPost( buildWidgetAreasPostId(), widgetAreaBlocks ) );\n};\n\n/**\n * Fetches all widgets from all widgets ares, and groups them by widget area Id.\n *\n * @return {Function} An action creator.\n */\nexport const getWidgets = () => async ( { dispatch, registry } ) => {\n\tconst query = buildWidgetsQuery();\n\tconst widgets = await registry\n\t\t.resolveSelect( coreStore )\n\t\t.getEntityRecords( 'root', 'widget', query );\n\n\tconst groupedBySidebar = {};\n\n\tfor ( const widget of widgets ) {\n\t\tconst block = transformWidgetToBlock( widget );\n\t\tgroupedBySidebar[ widget.sidebar ] =\n\t\t\tgroupedBySidebar[ widget.sidebar ] || [];\n\t\tgroupedBySidebar[ widget.sidebar ].push( block );\n\t}\n\n\tfor ( const sidebarId in groupedBySidebar ) {\n\t\tif ( groupedBySidebar.hasOwnProperty( sidebarId ) ) {\n\t\t\t// Persist the actual post containing the widget block\n\t\t\tdispatch(\n\t\t\t\tpersistStubPost(\n\t\t\t\t\tbuildWidgetAreaPostId( sidebarId ),\n\t\t\t\t\tgroupedBySidebar[ sidebarId ]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/store/resolvers.js"],"names":["getWidgetAreas","dispatch","registry","query","widgetAreas","resolveSelect","coreStore","getEntityRecords","KIND","WIDGET_AREA_ENTITY_TYPE","widgetAreaBlocks","sortedWidgetAreas","sort","a","b","id","widgetArea","push","name","widgets","length","widgetAreasOpenState","forEach","widgetAreaBlock","index","clientId","getWidgets","groupedBySidebar","widget","block","sidebar","sidebarId","hasOwnProperty"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { persistStubPost, setWidgetAreasOpenState } from './actions';\nimport {\n\tKIND,\n\tWIDGET_AREA_ENTITY_TYPE,\n\tbuildWidgetsQuery,\n\tbuildWidgetAreasQuery,\n\tbuildWidgetAreaPostId,\n\tbuildWidgetAreasPostId,\n} from './utils';\nimport { transformWidgetToBlock } from './transformers';\n\n/**\n * Creates a \"stub\" widgets post reflecting all available widget areas. The\n * post is meant as a convenient to only exists in runtime and should never be saved. It\n * enables a convenient way of editing the widgets by using a regular post editor.\n *\n * Fetches all widgets from all widgets aras, converts them into blocks, and hydrates a new post with them.\n *\n * @return {Function} An action creator.\n */\nexport const getWidgetAreas =\n\t() =>\n\tasync ( { dispatch, registry } ) => {\n\t\tconst query = buildWidgetAreasQuery();\n\t\tconst widgetAreas = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getEntityRecords( KIND, WIDGET_AREA_ENTITY_TYPE, query );\n\n\t\tconst widgetAreaBlocks = [];\n\t\tconst sortedWidgetAreas = widgetAreas.sort( ( a, b ) => {\n\t\t\tif ( a.id === 'wp_inactive_widgets' ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif ( b.id === 'wp_inactive_widgets' ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t} );\n\t\tfor ( const widgetArea of sortedWidgetAreas ) {\n\t\t\twidgetAreaBlocks.push(\n\t\t\t\tcreateBlock( 'core/widget-area', {\n\t\t\t\t\tid: widgetArea.id,\n\t\t\t\t\tname: widgetArea.name,\n\t\t\t\t} )\n\t\t\t);\n\n\t\t\tif ( ! widgetArea.widgets.length ) {\n\t\t\t\t// If this widget area has no widgets, it won't get a post setup by\n\t\t\t\t// the getWidgets resolver.\n\t\t\t\tdispatch(\n\t\t\t\t\tpersistStubPost(\n\t\t\t\t\t\tbuildWidgetAreaPostId( widgetArea.id ),\n\t\t\t\t\t\t[]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst widgetAreasOpenState = {};\n\t\twidgetAreaBlocks.forEach( ( widgetAreaBlock, index ) => {\n\t\t\t// Defaults to open the first widget area.\n\t\t\twidgetAreasOpenState[ widgetAreaBlock.clientId ] = index === 0;\n\t\t} );\n\t\tdispatch( setWidgetAreasOpenState( widgetAreasOpenState ) );\n\n\t\tdispatch(\n\t\t\tpersistStubPost( buildWidgetAreasPostId(), widgetAreaBlocks )\n\t\t);\n\t};\n\n/**\n * Fetches all widgets from all widgets ares, and groups them by widget area Id.\n *\n * @return {Function} An action creator.\n */\nexport const getWidgets =\n\t() =>\n\tasync ( { dispatch, registry } ) => {\n\t\tconst query = buildWidgetsQuery();\n\t\tconst widgets = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getEntityRecords( 'root', 'widget', query );\n\n\t\tconst groupedBySidebar = {};\n\n\t\tfor ( const widget of widgets ) {\n\t\t\tconst block = transformWidgetToBlock( widget );\n\t\t\tgroupedBySidebar[ widget.sidebar ] =\n\t\t\t\tgroupedBySidebar[ widget.sidebar ] || [];\n\t\t\tgroupedBySidebar[ widget.sidebar ].push( block );\n\t\t}\n\n\t\tfor ( const sidebarId in groupedBySidebar ) {\n\t\t\tif ( groupedBySidebar.hasOwnProperty( sidebarId ) ) {\n\t\t\t\t// Persist the actual post containing the widget block\n\t\t\t\tdispatch(\n\t\t\t\t\tpersistStubPost(\n\t\t\t\t\t\tbuildWidgetAreaPostId( sidebarId ),\n\t\t\t\t\t\tgroupedBySidebar[ sidebarId ]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-widgets/src/store/selectors.js"],"names":["getWidgets","select","widgets","coreStore","getEntityRecords","getWidget","state","id","editWidgetsStoreName","getWidgetAreas","query","KIND","WIDGET_AREA_ENTITY_TYPE","getWidgetAreaForWidgetId","widgetId","widgetAreas","find","widgetArea","post","getEditedEntityRecord","POST_TYPE","blockWidgetIds","blocks","map","block","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","undefined","getIsWidgetAreaOpen","widgetAreasOpenState","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","rootClientId","insertionIndex","canInsertBlockInWidgetArea","blockName","getBlocks","firstWidgetArea","canInsertBlockType","isListViewOpened","listViewPanel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { keyBy } from 'lodash';\n\n/**\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\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 keyBy( widgets, 'id' );\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 } = select(\n\t\t\tblockEditorStore\n\t\t);\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 ) => ( state, referenceWidgetName = null ) => {\n\t\tconst results = [];\n\t\tconst widgetAreas = select( editWidgetsStoreName ).getWidgetAreas();\n\t\tfor ( const _widgetArea of widgetAreas ) {\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\tfor ( const block of post.blocks ) {\n\t\t\t\tif (\n\t\t\t\t\tblock.name === 'core/legacy-widget' &&\n\t\t\t\t\t( ! referenceWidgetName ||\n\t\t\t\t\t\tblock.attributes?.referenceWidgetName ===\n\t\t\t\t\t\t\treferenceWidgetName )\n\t\t\t\t) {\n\t\t\t\t\tresults.push( block );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn results;\n\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\tconst { rootClientId, insertionIndex } = state.blockInserterPanel;\n\treturn { rootClientId, insertionIndex };\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"]}
1
+ {"version":3,"sources":["@wordpress/edit-widgets/src/store/selectors.js"],"names":["getWidgets","select","widgets","coreStore","getEntityRecords","getWidget","state","id","editWidgetsStoreName","getWidgetAreas","query","KIND","WIDGET_AREA_ENTITY_TYPE","getWidgetAreaForWidgetId","widgetId","widgetAreas","find","widgetArea","post","getEditedEntityRecord","POST_TYPE","blockWidgetIds","blocks","map","block","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","undefined","getIsWidgetAreaOpen","widgetAreasOpenState","isInserterOpened","blockInserterPanel","__experimentalGetInsertionPoint","rootClientId","insertionIndex","canInsertBlockInWidgetArea","blockName","getBlocks","firstWidgetArea","canInsertBlockType","isListViewOpened","listViewPanel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { keyBy } from 'lodash';\n\n/**\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\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 keyBy( widgets, 'id' );\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\tconst { rootClientId, insertionIndex } = state.blockInserterPanel;\n\treturn { rootClientId, insertionIndex };\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"]}