@wordpress/editor 14.0.1 → 14.0.3

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 (83) hide show
  1. package/build/components/document-tools/index.js +12 -3
  2. package/build/components/document-tools/index.js.map +1 -1
  3. package/build/components/editor-interface/index.js +2 -2
  4. package/build/components/editor-interface/index.js.map +1 -1
  5. package/build/components/entities-saved-states/entity-record-item.js +4 -12
  6. package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
  7. package/build/components/global-styles-provider/index.js +15 -67
  8. package/build/components/global-styles-provider/index.js.map +1 -1
  9. package/build/components/post-actions/actions.js +62 -13
  10. package/build/components/post-actions/actions.js.map +1 -1
  11. package/build/components/post-actions/index.js +4 -1
  12. package/build/components/post-actions/index.js.map +1 -1
  13. package/build/components/post-excerpt/index.js +2 -1
  14. package/build/components/post-excerpt/index.js.map +1 -1
  15. package/build/components/post-excerpt/panel.js +2 -1
  16. package/build/components/post-excerpt/panel.js.map +1 -1
  17. package/build/components/post-trash/index.js +1 -0
  18. package/build/components/post-trash/index.js.map +1 -1
  19. package/build/components/post-visibility/index.js +1 -0
  20. package/build/components/post-visibility/index.js.map +1 -1
  21. package/build/components/template-validation-notice/index.js +1 -0
  22. package/build/components/template-validation-notice/index.js.map +1 -1
  23. package/build/components/visual-editor/edit-template-blocks-notification.js +1 -0
  24. package/build/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  25. package/build/hooks/pattern-overrides.js +3 -2
  26. package/build/hooks/pattern-overrides.js.map +1 -1
  27. package/build/lock-unlock.js +1 -1
  28. package/build/lock-unlock.js.map +1 -1
  29. package/build/store/private-actions.js +9 -5
  30. package/build/store/private-actions.js.map +1 -1
  31. package/build-module/components/document-tools/index.js +12 -3
  32. package/build-module/components/document-tools/index.js.map +1 -1
  33. package/build-module/components/editor-interface/index.js +2 -2
  34. package/build-module/components/editor-interface/index.js.map +1 -1
  35. package/build-module/components/entities-saved-states/entity-record-item.js +6 -14
  36. package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
  37. package/build-module/components/global-styles-provider/index.js +16 -68
  38. package/build-module/components/global-styles-provider/index.js.map +1 -1
  39. package/build-module/components/post-actions/actions.js +63 -14
  40. package/build-module/components/post-actions/actions.js.map +1 -1
  41. package/build-module/components/post-actions/index.js +4 -1
  42. package/build-module/components/post-actions/index.js.map +1 -1
  43. package/build-module/components/post-excerpt/index.js +2 -1
  44. package/build-module/components/post-excerpt/index.js.map +1 -1
  45. package/build-module/components/post-excerpt/panel.js +2 -1
  46. package/build-module/components/post-excerpt/panel.js.map +1 -1
  47. package/build-module/components/post-trash/index.js +1 -0
  48. package/build-module/components/post-trash/index.js.map +1 -1
  49. package/build-module/components/post-visibility/index.js +1 -0
  50. package/build-module/components/post-visibility/index.js.map +1 -1
  51. package/build-module/components/template-validation-notice/index.js +1 -0
  52. package/build-module/components/template-validation-notice/index.js.map +1 -1
  53. package/build-module/components/visual-editor/edit-template-blocks-notification.js +1 -0
  54. package/build-module/components/visual-editor/edit-template-blocks-notification.js.map +1 -1
  55. package/build-module/hooks/pattern-overrides.js +3 -2
  56. package/build-module/hooks/pattern-overrides.js.map +1 -1
  57. package/build-module/lock-unlock.js +1 -1
  58. package/build-module/lock-unlock.js.map +1 -1
  59. package/build-module/store/private-actions.js +9 -5
  60. package/build-module/store/private-actions.js.map +1 -1
  61. package/build-style/style-rtl.css +8 -16
  62. package/build-style/style.css +8 -16
  63. package/package.json +19 -19
  64. package/src/components/document-tools/index.js +13 -4
  65. package/src/components/editor-interface/index.js +12 -8
  66. package/src/components/entities-saved-states/entity-record-item.js +4 -14
  67. package/src/components/entities-saved-states/style.scss +0 -13
  68. package/src/components/global-styles-provider/index.js +19 -92
  69. package/src/components/post-actions/actions.js +105 -21
  70. package/src/components/post-actions/index.js +1 -1
  71. package/src/components/post-card-panel/style.scss +1 -0
  72. package/src/components/post-excerpt/index.js +4 -1
  73. package/src/components/post-excerpt/panel.js +2 -1
  74. package/src/components/post-publish-panel/style.scss +1 -1
  75. package/src/components/post-trash/index.js +1 -0
  76. package/src/components/post-url/style.scss +4 -0
  77. package/src/components/post-visibility/index.js +1 -0
  78. package/src/components/template-validation-notice/index.js +1 -0
  79. package/src/components/visual-editor/edit-template-blocks-notification.js +1 -0
  80. package/src/components/visual-editor/style.scss +2 -0
  81. package/src/hooks/pattern-overrides.js +4 -3
  82. package/src/lock-unlock.js +1 -1
  83. package/src/store/private-actions.js +54 -21
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","InterfaceSkeleton","ComplementaryArea","useSelect","__","_x","store","preferencesStore","blockEditorStore","BlockBreadcrumb","BlockToolbar","keyboardShortcutsStore","useViewportMatch","useState","useCallback","editorStore","EditorNotices","Header","InserterSidebar","ListViewSidebar","SavePublishPanels","TextEditor","VisualEditor","EditorContentSlotFill","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","interfaceLabels","header","body","sidebar","actions","footer","EditorInterface","className","enableRegionNavigation","styles","children","forceIsDirty","contentRef","disableIframe","autoFocus","customSaveButton","forceDisableBlockTools","title","iframeProps","mode","isRichEditingEnabled","isInserterOpened","isListViewOpened","isDistractionFree","isPreviewMode","previousShortcut","nextShortcut","showBlockBreadcrumbs","documentLabel","blockEditorMode","select","get","getEditorSettings","getPostTypeLabel","editorSettings","postTypeLabel","getEditorMode","richEditingEnabled","__unstableIsPreviewMode","getAllShortcutKeyCombinations","__unstableGetEditorMode","isWideViewport","isLargeViewport","secondarySidebarLabel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","arg","labels","secondarySidebar","editorNotices","Slot","scope","content","editorCanvasView","hideDragHandle","rootLabelText","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","shortcuts","previous","next"],"sources":["@wordpress/editor/src/components/editor-interface/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InterfaceSkeleton, ComplementaryArea } from '@wordpress/interface';\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tstore as blockEditorStore,\n\tBlockBreadcrumb,\n\tBlockToolbar,\n} from '@wordpress/block-editor';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport EditorNotices from '../editor-notices';\nimport Header from '../header';\nimport InserterSidebar from '../inserter-sidebar';\nimport ListViewSidebar from '../list-view-sidebar';\nimport SavePublishPanels from '../save-publish-panels';\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditorContentSlotFill from './content-slot-fill';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nexport default function EditorInterface( {\n\tclassName,\n\tenableRegionNavigation,\n\tstyles,\n\tchildren,\n\tforceIsDirty,\n\tcontentRef,\n\tdisableIframe,\n\tautoFocus,\n\tcustomSaveButton,\n\tforceDisableBlockTools,\n\ttitle,\n\tiframeProps,\n} ) {\n\tconst {\n\t\tmode,\n\t\tisRichEditingEnabled,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tisDistractionFree,\n\t\tisPreviewMode,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t\tshowBlockBreadcrumbs,\n\t\tdocumentLabel,\n\t\tblockEditorMode,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\treturn {\n\t\t\tmode: select( editorStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editorStore ).isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\tisPreviewMode: editorSettings.__unstableIsPreviewMode,\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/editor/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/editor/next-region' ),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\tdocumentLabel: postTypeLabel || _x( 'Document', 'noun' ),\n\t\t\tblockEditorMode:\n\t\t\t\tselect( blockEditorStore ).__unstableGetEditorMode(),\n\t\t};\n\t}, [] );\n\tconst isWideViewport = useViewportMatch( 'large' );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'Document Overview' )\n\t\t: __( 'Block Library' );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =\n\t\tuseState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tenableRegionNavigation={ enableRegionNavigation }\n\t\t\tisDistractionFree={ isDistractionFree && isWideViewport }\n\t\t\tclassName={ clsx( 'editor-editor-interface', className, {\n\t\t\t\t'is-entity-save-view-open': !! entitiesSavedStatesCallback,\n\t\t\t\t'is-distraction-free':\n\t\t\t\t\tisDistractionFree && isWideViewport && ! isPreviewMode,\n\t\t\t} ) }\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={\n\t\t\t\t! isPreviewMode && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcustomSaveButton={ customSaveButton }\n\t\t\t\t\t\tforceDisableBlockTools={ forceDisableBlockTools }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\teditorNotices={ <EditorNotices /> }\n\t\t\tsecondarySidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\tmode === 'visual' &&\n\t\t\t\t( ( isInserterOpened && <InserterSidebar /> ) ||\n\t\t\t\t\t( isListViewOpened && <ListViewSidebar /> ) )\n\t\t\t}\n\t\t\tsidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree && <ComplementaryArea.Slot scope=\"core\" />\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ ! isDistractionFree && ! isPreviewMode && (\n\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t) }\n\n\t\t\t\t\t<EditorContentSlotFill.Slot>\n\t\t\t\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t\t\t\teditorCanvasView\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t( mode === 'text' ||\n\t\t\t\t\t\t\t\t\t\t\t! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t\t\t\t\t<TextEditor\n\t\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t! isLargeViewport &&\n\t\t\t\t\t\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( isPreviewMode ||\n\t\t\t\t\t\t\t\t\t\t( isRichEditingEnabled &&\n\t\t\t\t\t\t\t\t\t\t\tmode === 'visual' ) ) && (\n\t\t\t\t\t\t\t\t\t\t<VisualEditor\n\t\t\t\t\t\t\t\t\t\t\tstyles={ styles }\n\t\t\t\t\t\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\t\t\t\t\t\tdisableIframe={ disableIframe }\n\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\n\t\t\t\t\t\t\t\t\t\t\tiframeProps={ iframeProps }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ children }\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</EditorContentSlotFill.Slot>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\tisRichEditingEnabled &&\n\t\t\t\tblockEditorMode !== 'zoom-out' &&\n\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t)\n\t\t\t}\n\t\t\tactions={\n\t\t\t\t<SavePublishPanels\n\t\t\t\t\tcloseEntitiesSavedStates={ closeEntitiesSavedStates }\n\t\t\t\t\tisEntitiesSavedStatesOpen={ entitiesSavedStatesCallback }\n\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t}\n\t\t\t\t\tforceIsDirtyPublishPanel={ forceIsDirty }\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","InterfaceSkeleton","ComplementaryArea","useSelect","__","_x","store","preferencesStore","blockEditorStore","BlockBreadcrumb","BlockToolbar","keyboardShortcutsStore","useViewportMatch","useState","useCallback","editorStore","EditorNotices","Header","InserterSidebar","ListViewSidebar","SavePublishPanels","TextEditor","VisualEditor","EditorContentSlotFill","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","interfaceLabels","header","body","sidebar","actions","footer","EditorInterface","className","enableRegionNavigation","styles","children","forceIsDirty","contentRef","disableIframe","autoFocus","customSaveButton","forceDisableBlockTools","title","iframeProps","mode","isRichEditingEnabled","isInserterOpened","isListViewOpened","isDistractionFree","isPreviewMode","previousShortcut","nextShortcut","showBlockBreadcrumbs","documentLabel","blockEditorMode","select","get","getEditorSettings","getPostTypeLabel","editorSettings","postTypeLabel","getEditorMode","richEditingEnabled","__unstableIsPreviewMode","getAllShortcutKeyCombinations","__unstableGetEditorMode","isWideViewport","isLargeViewport","secondarySidebarLabel","entitiesSavedStatesCallback","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","arg","labels","secondarySidebar","editorNotices","Slot","scope","content","editorCanvasView","hideDragHandle","rootLabelText","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","undefined","shortcuts","previous","next"],"sources":["@wordpress/editor/src/components/editor-interface/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InterfaceSkeleton, ComplementaryArea } from '@wordpress/interface';\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tstore as blockEditorStore,\n\tBlockBreadcrumb,\n\tBlockToolbar,\n} from '@wordpress/block-editor';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport EditorNotices from '../editor-notices';\nimport Header from '../header';\nimport InserterSidebar from '../inserter-sidebar';\nimport ListViewSidebar from '../list-view-sidebar';\nimport SavePublishPanels from '../save-publish-panels';\nimport TextEditor from '../text-editor';\nimport VisualEditor from '../visual-editor';\nimport EditorContentSlotFill from './content-slot-fill';\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor top bar landmark region. */\n\theader: __( 'Editor top bar' ),\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\nexport default function EditorInterface( {\n\tclassName,\n\tenableRegionNavigation,\n\tstyles,\n\tchildren,\n\tforceIsDirty,\n\tcontentRef,\n\tdisableIframe,\n\tautoFocus,\n\tcustomSaveButton,\n\tforceDisableBlockTools,\n\ttitle,\n\tiframeProps,\n} ) {\n\tconst {\n\t\tmode,\n\t\tisRichEditingEnabled,\n\t\tisInserterOpened,\n\t\tisListViewOpened,\n\t\tisDistractionFree,\n\t\tisPreviewMode,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t\tshowBlockBreadcrumbs,\n\t\tdocumentLabel,\n\t\tblockEditorMode,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorSettings, getPostTypeLabel } = select( editorStore );\n\t\tconst editorSettings = getEditorSettings();\n\t\tconst postTypeLabel = getPostTypeLabel();\n\n\t\treturn {\n\t\t\tmode: select( editorStore ).getEditorMode(),\n\t\t\tisRichEditingEnabled: editorSettings.richEditingEnabled,\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpened: select( editorStore ).isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t\tisPreviewMode: editorSettings.__unstableIsPreviewMode,\n\t\t\tpreviousShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/editor/previous-region' ),\n\t\t\tnextShortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getAllShortcutKeyCombinations( 'core/editor/next-region' ),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\t// translators: Default label for the Document in the Block Breadcrumb.\n\t\t\tdocumentLabel: postTypeLabel || _x( 'Document', 'noun' ),\n\t\t\tblockEditorMode:\n\t\t\t\tselect( blockEditorStore ).__unstableGetEditorMode(),\n\t\t};\n\t}, [] );\n\tconst isWideViewport = useViewportMatch( 'large' );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst secondarySidebarLabel = isListViewOpened\n\t\t? __( 'Document Overview' )\n\t\t: __( 'Block Library' );\n\n\t// Local state for save panel.\n\t// Note 'truthy' callback implies an open panel.\n\tconst [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =\n\t\tuseState( false );\n\tconst closeEntitiesSavedStates = useCallback(\n\t\t( arg ) => {\n\t\t\tif ( typeof entitiesSavedStatesCallback === 'function' ) {\n\t\t\t\tentitiesSavedStatesCallback( arg );\n\t\t\t}\n\t\t\tsetEntitiesSavedStatesCallback( false );\n\t\t},\n\t\t[ entitiesSavedStatesCallback ]\n\t);\n\n\treturn (\n\t\t<InterfaceSkeleton\n\t\t\tenableRegionNavigation={ enableRegionNavigation }\n\t\t\tisDistractionFree={ isDistractionFree && isWideViewport }\n\t\t\tclassName={ clsx( 'editor-editor-interface', className, {\n\t\t\t\t'is-entity-save-view-open': !! entitiesSavedStatesCallback,\n\t\t\t\t'is-distraction-free':\n\t\t\t\t\tisDistractionFree && isWideViewport && ! isPreviewMode,\n\t\t\t} ) }\n\t\t\tlabels={ {\n\t\t\t\t...interfaceLabels,\n\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t} }\n\t\t\theader={\n\t\t\t\t! isPreviewMode && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcustomSaveButton={ customSaveButton }\n\t\t\t\t\t\tforceDisableBlockTools={ forceDisableBlockTools }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\teditorNotices={ <EditorNotices /> }\n\t\t\tsecondarySidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\tmode === 'visual' &&\n\t\t\t\t( ( isInserterOpened && <InserterSidebar /> ) ||\n\t\t\t\t\t( isListViewOpened && <ListViewSidebar /> ) )\n\t\t\t}\n\t\t\tsidebar={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree && <ComplementaryArea.Slot scope=\"core\" />\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ ! isDistractionFree && ! isPreviewMode && (\n\t\t\t\t\t\t<EditorNotices />\n\t\t\t\t\t) }\n\n\t\t\t\t\t<EditorContentSlotFill.Slot>\n\t\t\t\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t\t\t\teditorCanvasView\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t( mode === 'text' ||\n\t\t\t\t\t\t\t\t\t\t\t! isRichEditingEnabled ) && (\n\t\t\t\t\t\t\t\t\t\t\t<TextEditor\n\t\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! isPreviewMode &&\n\t\t\t\t\t\t\t\t\t\t! isLargeViewport &&\n\t\t\t\t\t\t\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ( isPreviewMode ||\n\t\t\t\t\t\t\t\t\t\t( isRichEditingEnabled &&\n\t\t\t\t\t\t\t\t\t\t\tmode === 'visual' ) ) && (\n\t\t\t\t\t\t\t\t\t\t<VisualEditor\n\t\t\t\t\t\t\t\t\t\t\tstyles={ styles }\n\t\t\t\t\t\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\t\t\t\t\t\tdisableIframe={ disableIframe }\n\t\t\t\t\t\t\t\t\t\t\t// We should auto-focus the canvas (title) on load.\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\t\t\t\t\tautoFocus={ autoFocus }\n\t\t\t\t\t\t\t\t\t\t\tiframeProps={ iframeProps }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ children }\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</EditorContentSlotFill.Slot>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\t! isPreviewMode &&\n\t\t\t\t! isDistractionFree &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\tshowBlockBreadcrumbs &&\n\t\t\t\tisRichEditingEnabled &&\n\t\t\t\tblockEditorMode !== 'zoom-out' &&\n\t\t\t\tmode === 'visual' && (\n\t\t\t\t\t<BlockBreadcrumb rootLabelText={ documentLabel } />\n\t\t\t\t)\n\t\t\t}\n\t\t\tactions={\n\t\t\t\t! isPreviewMode ? (\n\t\t\t\t\t<SavePublishPanels\n\t\t\t\t\t\tcloseEntitiesSavedStates={ closeEntitiesSavedStates }\n\t\t\t\t\t\tisEntitiesSavedStatesOpen={\n\t\t\t\t\t\t\tentitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetEntitiesSavedStatesCallback={\n\t\t\t\t\t\t\tsetEntitiesSavedStatesCallback\n\t\t\t\t\t\t}\n\t\t\t\t\t\tforceIsDirtyPublishPanel={ forceIsDirty }\n\t\t\t\t\t/>\n\t\t\t\t) : undefined\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"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { Icon, CheckboxControl, Flex, PanelRow } from '@wordpress/components';
4
+ import { CheckboxControl, PanelRow } from '@wordpress/components';
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import { useSelect } from '@wordpress/data';
7
7
  import { store as coreStore } from '@wordpress/core-data';
8
8
  import { decodeEntities } from '@wordpress/html-entities';
9
- import { connection } from '@wordpress/icons';
10
9
 
11
10
  /**
12
11
  * Internal dependencies
@@ -14,8 +13,8 @@ import { connection } from '@wordpress/icons';
14
13
  import { store as editorStore } from '../../store';
15
14
  import { unlock } from '../../lock-unlock';
16
15
  import { jsx as _jsx } from "react/jsx-runtime";
17
- import { jsxs as _jsxs } from "react/jsx-runtime";
18
16
  import { Fragment as _Fragment } from "react/jsx-runtime";
17
+ import { jsxs as _jsxs } from "react/jsx-runtime";
19
18
  export default function EntityRecordItem({
20
19
  record,
21
20
  checked,
@@ -53,17 +52,10 @@ export default function EntityRecordItem({
53
52
  checked: checked,
54
53
  onChange: onChange
55
54
  })
56
- }), hasPostMetaChanges && /*#__PURE__*/_jsx(PanelRow, {
57
- children: /*#__PURE__*/_jsxs(Flex, {
58
- className: "entities-saved-states__post-meta",
59
- children: [/*#__PURE__*/_jsx(Icon, {
60
- className: "entities-saved-states__connections-icon",
61
- icon: connection,
62
- size: 24
63
- }), /*#__PURE__*/_jsx("span", {
64
- className: "entities-saved-states__bindings-text",
65
- children: __('Post Meta.')
66
- })]
55
+ }), hasPostMetaChanges && /*#__PURE__*/_jsx("ul", {
56
+ className: "entities-saved-states__changes",
57
+ children: /*#__PURE__*/_jsx("li", {
58
+ children: __('Post Meta.')
67
59
  })
68
60
  })]
69
61
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Icon","CheckboxControl","Flex","PanelRow","__","useSelect","store","coreStore","decodeEntities","connection","editorStore","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EntityRecordItem","record","checked","onChange","name","kind","title","key","entityRecordTitle","hasPostMetaChanges","select","template","getEditedEntityRecord","__experimentalGetTemplateInfo","children","__nextHasNoMarginBottom","label","className","icon","size"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-record-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Icon, CheckboxControl, Flex, PanelRow } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { connection } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport default function EntityRecordItem( { record, checked, onChange } ) {\n\tconst { name, kind, title, key } = record;\n\n\t// Handle templates that might use default descriptive titles.\n\tconst { entityRecordTitle, hasPostMetaChanges } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( 'postType' !== kind || 'wp_template' !== name ) {\n\t\t\t\treturn {\n\t\t\t\t\tentityRecordTitle: title,\n\t\t\t\t\thasPostMetaChanges: unlock(\n\t\t\t\t\t\tselect( editorStore )\n\t\t\t\t\t).hasPostMetaChanges( name, key ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst template = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tkey\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tentityRecordTitle:\n\t\t\t\t\tselect( editorStore ).__experimentalGetTemplateInfo(\n\t\t\t\t\t\ttemplate\n\t\t\t\t\t).title,\n\t\t\t\thasPostMetaChanges: unlock(\n\t\t\t\t\tselect( editorStore )\n\t\t\t\t).hasPostMetaChanges( name, key ),\n\t\t\t};\n\t\t},\n\t\t[ name, kind, title, key ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<PanelRow>\n\t\t\t\t<CheckboxControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tdecodeEntities( entityRecordTitle ) || __( 'Untitled' )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ checked }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</PanelRow>\n\t\t\t{ hasPostMetaChanges && (\n\t\t\t\t<PanelRow>\n\t\t\t\t\t<Flex className=\"entities-saved-states__post-meta\">\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"entities-saved-states__connections-icon\"\n\t\t\t\t\t\t\ticon={ connection }\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span className=\"entities-saved-states__bindings-text\">\n\t\t\t\t\t\t\t{ __( 'Post Meta.' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Flex>\n\t\t\t\t</PanelRow>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,eAAe,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,uBAAuB;AAC7E,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,UAAU,QAAQ,kBAAkB;;AAE7C;AACA;AACA;AACA,SAASH,KAAK,IAAII,WAAW,QAAQ,aAAa;AAClD,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAE3C,eAAe,SAASC,gBAAgBA,CAAE;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAAS,CAAC,EAAG;EACzE,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAGN,MAAM;;EAEzC;EACA,MAAM;IAAEO,iBAAiB;IAAEC;EAAmB,CAAC,GAAGtB,SAAS,CACxDuB,MAAM,IAAM;IACb,IAAK,UAAU,KAAKL,IAAI,IAAI,aAAa,KAAKD,IAAI,EAAG;MACpD,OAAO;QACNI,iBAAiB,EAAEF,KAAK;QACxBG,kBAAkB,EAAEhB,MAAM,CACzBiB,MAAM,CAAElB,WAAY,CACrB,CAAC,CAACiB,kBAAkB,CAAEL,IAAI,EAAEG,GAAI;MACjC,CAAC;IACF;IAEA,MAAMI,QAAQ,GAAGD,MAAM,CAAErB,SAAU,CAAC,CAACuB,qBAAqB,CACzDP,IAAI,EACJD,IAAI,EACJG,GACD,CAAC;IACD,OAAO;MACNC,iBAAiB,EAChBE,MAAM,CAAElB,WAAY,CAAC,CAACqB,6BAA6B,CAClDF,QACD,CAAC,CAACL,KAAK;MACRG,kBAAkB,EAAEhB,MAAM,CACzBiB,MAAM,CAAElB,WAAY,CACrB,CAAC,CAACiB,kBAAkB,CAAEL,IAAI,EAAEG,GAAI;IACjC,CAAC;EACF,CAAC,EACD,CAAEH,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAEC,GAAG,CACzB,CAAC;EAED,oBACCV,KAAA,CAAAE,SAAA;IAAAe,QAAA,gBACCnB,IAAA,CAACV,QAAQ;MAAA6B,QAAA,eACRnB,IAAA,CAACZ,eAAe;QACfgC,uBAAuB;QACvBC,KAAK,EACJ1B,cAAc,CAAEkB,iBAAkB,CAAC,IAAItB,EAAE,CAAE,UAAW,CACtD;QACDgB,OAAO,EAAGA,OAAS;QACnBC,QAAQ,EAAGA;MAAU,CACrB;IAAC,CACO,CAAC,EACTM,kBAAkB,iBACnBd,IAAA,CAACV,QAAQ;MAAA6B,QAAA,eACRjB,KAAA,CAACb,IAAI;QAACiC,SAAS,EAAC,kCAAkC;QAAAH,QAAA,gBACjDnB,IAAA,CAACb,IAAI;UACJmC,SAAS,EAAC,yCAAyC;UACnDC,IAAI,EAAG3B,UAAY;UACnB4B,IAAI,EAAG;QAAI,CACX,CAAC,eACFxB,IAAA;UAAMsB,SAAS,EAAC,sCAAsC;UAAAH,QAAA,EACnD5B,EAAE,CAAE,YAAa;QAAC,CACf,CAAC;MAAA,CACF;IAAC,CACE,CACV;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
1
+ {"version":3,"names":["CheckboxControl","PanelRow","__","useSelect","store","coreStore","decodeEntities","editorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","EntityRecordItem","record","checked","onChange","name","kind","title","key","entityRecordTitle","hasPostMetaChanges","select","template","getEditedEntityRecord","__experimentalGetTemplateInfo","children","__nextHasNoMarginBottom","label","className"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-record-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CheckboxControl, PanelRow } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport default function EntityRecordItem( { record, checked, onChange } ) {\n\tconst { name, kind, title, key } = record;\n\n\t// Handle templates that might use default descriptive titles.\n\tconst { entityRecordTitle, hasPostMetaChanges } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( 'postType' !== kind || 'wp_template' !== name ) {\n\t\t\t\treturn {\n\t\t\t\t\tentityRecordTitle: title,\n\t\t\t\t\thasPostMetaChanges: unlock(\n\t\t\t\t\t\tselect( editorStore )\n\t\t\t\t\t).hasPostMetaChanges( name, key ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst template = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tkey\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tentityRecordTitle:\n\t\t\t\t\tselect( editorStore ).__experimentalGetTemplateInfo(\n\t\t\t\t\t\ttemplate\n\t\t\t\t\t).title,\n\t\t\t\thasPostMetaChanges: unlock(\n\t\t\t\t\tselect( editorStore )\n\t\t\t\t).hasPostMetaChanges( name, key ),\n\t\t\t};\n\t\t},\n\t\t[ name, kind, title, key ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<PanelRow>\n\t\t\t\t<CheckboxControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tdecodeEntities( entityRecordTitle ) || __( 'Untitled' )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ checked }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</PanelRow>\n\t\t\t{ hasPostMetaChanges && (\n\t\t\t\t<ul className=\"entities-saved-states__changes\">\n\t\t\t\t\t<li>{ __( 'Post Meta.' ) }</li>\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,eAAe,EAAEC,QAAQ,QAAQ,uBAAuB;AACjE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,cAAc,QAAQ,0BAA0B;;AAEzD;AACA;AACA;AACA,SAASF,KAAK,IAAIG,WAAW,QAAQ,aAAa;AAClD,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE3C,eAAe,SAASC,gBAAgBA,CAAE;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAAS,CAAC,EAAG;EACzE,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAGN,MAAM;;EAEzC;EACA,MAAM;IAAEO,iBAAiB;IAAEC;EAAmB,CAAC,GAAGrB,SAAS,CACxDsB,MAAM,IAAM;IACb,IAAK,UAAU,KAAKL,IAAI,IAAI,aAAa,KAAKD,IAAI,EAAG;MACpD,OAAO;QACNI,iBAAiB,EAAEF,KAAK;QACxBG,kBAAkB,EAAEhB,MAAM,CACzBiB,MAAM,CAAElB,WAAY,CACrB,CAAC,CAACiB,kBAAkB,CAAEL,IAAI,EAAEG,GAAI;MACjC,CAAC;IACF;IAEA,MAAMI,QAAQ,GAAGD,MAAM,CAAEpB,SAAU,CAAC,CAACsB,qBAAqB,CACzDP,IAAI,EACJD,IAAI,EACJG,GACD,CAAC;IACD,OAAO;MACNC,iBAAiB,EAChBE,MAAM,CAAElB,WAAY,CAAC,CAACqB,6BAA6B,CAClDF,QACD,CAAC,CAACL,KAAK;MACRG,kBAAkB,EAAEhB,MAAM,CACzBiB,MAAM,CAAElB,WAAY,CACrB,CAAC,CAACiB,kBAAkB,CAAEL,IAAI,EAAEG,GAAI;IACjC,CAAC;EACF,CAAC,EACD,CAAEH,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAEC,GAAG,CACzB,CAAC;EAED,oBACCR,KAAA,CAAAF,SAAA;IAAAiB,QAAA,gBACCnB,IAAA,CAACT,QAAQ;MAAA4B,QAAA,eACRnB,IAAA,CAACV,eAAe;QACf8B,uBAAuB;QACvBC,KAAK,EACJzB,cAAc,CAAEiB,iBAAkB,CAAC,IAAIrB,EAAE,CAAE,UAAW,CACtD;QACDe,OAAO,EAAGA,OAAS;QACnBC,QAAQ,EAAGA;MAAU,CACrB;IAAC,CACO,CAAC,EACTM,kBAAkB,iBACnBd,IAAA;MAAIsB,SAAS,EAAC,gCAAgC;MAAAH,QAAA,eAC7CnB,IAAA;QAAAmB,QAAA,EAAM3B,EAAE,CAAE,YAAa;MAAC,CAAM;IAAC,CAC5B,CACJ;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
@@ -7,17 +7,15 @@ import { isPlainObject } from 'is-plain-object';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { registerBlockStyle, store as blocksStore } from '@wordpress/blocks';
11
10
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
12
11
  import { store as coreStore } from '@wordpress/core-data';
13
12
  import { useSelect, useDispatch } from '@wordpress/data';
14
- import { useEffect, useMemo, useCallback } from '@wordpress/element';
13
+ import { useMemo, useCallback } from '@wordpress/element';
15
14
 
16
15
  /**
17
16
  * Internal dependencies
18
17
  */
19
18
  import { unlock } from '../../lock-unlock';
20
- import setNestedValue from '../../utils/set-nested-value';
21
19
  import { jsx as _jsx } from "react/jsx-runtime";
22
20
  const {
23
21
  GlobalStylesContext,
@@ -31,62 +29,6 @@ export function mergeBaseAndUserConfigs(base, user) {
31
29
  isMergeableObject: isPlainObject
32
30
  });
33
31
  }
34
-
35
- /**
36
- * Resolves shared block style variation definitions from the user origin
37
- * under their respective block types and registers the block style if required.
38
- *
39
- * @param {Object} userConfig Current user origin global styles data.
40
- * @return {Object} Updated global styles data.
41
- */
42
- function useResolvedBlockStyleVariationsConfig(userConfig) {
43
- const {
44
- getBlockStyles
45
- } = useSelect(blocksStore);
46
- const sharedVariations = userConfig?.styles?.blocks?.variations;
47
-
48
- // Collect block style variation definitions to merge and unregistered
49
- // block styles for automatic registration.
50
- const [userConfigToMerge, unregisteredStyles] = useMemo(() => {
51
- if (!sharedVariations) {
52
- return [];
53
- }
54
- const variationsConfigToMerge = {};
55
- const unregisteredBlockStyles = [];
56
- Object.entries(sharedVariations).forEach(([variationName, variation]) => {
57
- if (!variation?.blockTypes?.length) {
58
- return;
59
- }
60
- variation.blockTypes.forEach(blockName => {
61
- const blockStyles = getBlockStyles(blockName);
62
- const registeredBlockStyle = blockStyles.find(({
63
- name
64
- }) => name === variationName);
65
- if (!registeredBlockStyle) {
66
- unregisteredBlockStyles.push([blockName, {
67
- name: variationName,
68
- label: variationName
69
- }]);
70
- }
71
- const path = ['styles', 'blocks', blockName, 'variations', variationName];
72
- setNestedValue(variationsConfigToMerge, path, variation);
73
- });
74
- });
75
- return [variationsConfigToMerge, unregisteredBlockStyles];
76
- }, [sharedVariations, getBlockStyles]);
77
-
78
- // Automatically register missing block styles from variations.
79
- useEffect(() => unregisteredStyles?.forEach(unregisteredStyle => registerBlockStyle(...unregisteredStyle)), [unregisteredStyles]);
80
-
81
- // Merge shared block style variation definitions into overall user config.
82
- const updatedConfig = useMemo(() => {
83
- if (!userConfigToMerge) {
84
- return userConfig;
85
- }
86
- return deepmerge(userConfigToMerge, userConfig);
87
- }, [userConfigToMerge, userConfig]);
88
- return updatedConfig;
89
- }
90
32
  function useGlobalStylesUserConfig() {
91
33
  const {
92
34
  globalStylesId,
@@ -126,7 +68,14 @@ function useGlobalStylesUserConfig() {
126
68
  _links: _links !== null && _links !== void 0 ? _links : {}
127
69
  };
128
70
  }, [settings, styles, _links]);
129
- const setConfig = useCallback((callback, options = {}) => {
71
+ const setConfig = useCallback(
72
+ /**
73
+ * Set the global styles config.
74
+ * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.
75
+ * Otherwise, overwrite the current config with the incoming object.
76
+ * @param {Object} options Options for editEntityRecord Core selector.
77
+ */
78
+ (callbackOrObject, options = {}) => {
130
79
  var _record$styles, _record$settings, _record$_links;
131
80
  const record = getEditedEntityRecord('root', 'globalStyles', globalStylesId);
132
81
  const currentConfig = {
@@ -134,13 +83,13 @@ function useGlobalStylesUserConfig() {
134
83
  settings: (_record$settings = record?.settings) !== null && _record$settings !== void 0 ? _record$settings : {},
135
84
  _links: (_record$_links = record?._links) !== null && _record$_links !== void 0 ? _record$_links : {}
136
85
  };
137
- const updatedConfig = callback(currentConfig);
86
+ const updatedConfig = typeof callbackOrObject === 'function' ? callbackOrObject(currentConfig) : callbackOrObject;
138
87
  editEntityRecord('root', 'globalStyles', globalStylesId, {
139
88
  styles: cleanEmptyObject(updatedConfig.styles) || {},
140
89
  settings: cleanEmptyObject(updatedConfig.settings) || {},
141
90
  _links: cleanEmptyObject(updatedConfig._links) || {}
142
91
  }, options);
143
- }, [globalStylesId]);
92
+ }, [globalStylesId, editEntityRecord, getEditedEntityRecord]);
144
93
  return [isReady, config, setConfig];
145
94
  }
146
95
  function useGlobalStylesBaseConfig() {
@@ -152,22 +101,21 @@ function useGlobalStylesBaseConfig() {
152
101
  export function useGlobalStylesContext() {
153
102
  const [isUserConfigReady, userConfig, setUserConfig] = useGlobalStylesUserConfig();
154
103
  const [isBaseConfigReady, baseConfig] = useGlobalStylesBaseConfig();
155
- const userConfigWithVariations = useResolvedBlockStyleVariationsConfig(userConfig);
156
104
  const mergedConfig = useMemo(() => {
157
- if (!baseConfig || !userConfigWithVariations) {
105
+ if (!baseConfig || !userConfig) {
158
106
  return {};
159
107
  }
160
- return mergeBaseAndUserConfigs(baseConfig, userConfigWithVariations);
161
- }, [userConfigWithVariations, baseConfig]);
108
+ return mergeBaseAndUserConfigs(baseConfig, userConfig);
109
+ }, [userConfig, baseConfig]);
162
110
  const context = useMemo(() => {
163
111
  return {
164
112
  isReady: isUserConfigReady && isBaseConfigReady,
165
- user: userConfigWithVariations,
113
+ user: userConfig,
166
114
  base: baseConfig,
167
115
  merged: mergedConfig,
168
116
  setUserConfig
169
117
  };
170
- }, [mergedConfig, userConfigWithVariations, baseConfig, setUserConfig, isUserConfigReady, isBaseConfigReady]);
118
+ }, [mergedConfig, userConfig, baseConfig, setUserConfig, isUserConfigReady, isBaseConfigReady]);
171
119
  return context;
172
120
  }
173
121
  export function GlobalStylesProvider({
@@ -1 +1 @@
1
- {"version":3,"names":["deepmerge","isPlainObject","registerBlockStyle","store","blocksStore","privateApis","blockEditorPrivateApis","coreStore","useSelect","useDispatch","useEffect","useMemo","useCallback","unlock","setNestedValue","jsx","_jsx","GlobalStylesContext","cleanEmptyObject","mergeBaseAndUserConfigs","base","user","isMergeableObject","useResolvedBlockStyleVariationsConfig","userConfig","getBlockStyles","sharedVariations","styles","blocks","variations","userConfigToMerge","unregisteredStyles","variationsConfigToMerge","unregisteredBlockStyles","Object","entries","forEach","variationName","variation","blockTypes","length","blockName","blockStyles","registeredBlockStyle","find","name","push","label","path","unregisteredStyle","updatedConfig","useGlobalStylesUserConfig","globalStylesId","isReady","settings","_links","select","getEditedEntityRecord","hasFinishedResolution","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","undefined","hasResolved","editEntityRecord","config","setConfig","callback","options","_record$styles","_record$settings","_record$_links","currentConfig","useGlobalStylesBaseConfig","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","setUserConfig","isBaseConfigReady","userConfigWithVariations","mergedConfig","context","merged","GlobalStylesProvider","children","Provider","value"],"sources":["@wordpress/editor/src/components/global-styles-provider/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { registerBlockStyle, store as blocksStore } from '@wordpress/blocks';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport setNestedValue from '../../utils/set-nested-value';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t// We only pass as arrays the presets,\n\t\t// in which case we want the new array of values\n\t\t// to override the old array (no merging).\n\t\tisMergeableObject: isPlainObject,\n\t} );\n}\n\n/**\n * Resolves shared block style variation definitions from the user origin\n * under their respective block types and registers the block style if required.\n *\n * @param {Object} userConfig Current user origin global styles data.\n * @return {Object} Updated global styles data.\n */\nfunction useResolvedBlockStyleVariationsConfig( userConfig ) {\n\tconst { getBlockStyles } = useSelect( blocksStore );\n\tconst sharedVariations = userConfig?.styles?.blocks?.variations;\n\n\t// Collect block style variation definitions to merge and unregistered\n\t// block styles for automatic registration.\n\tconst [ userConfigToMerge, unregisteredStyles ] = useMemo( () => {\n\t\tif ( ! sharedVariations ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst variationsConfigToMerge = {};\n\t\tconst unregisteredBlockStyles = [];\n\n\t\tObject.entries( sharedVariations ).forEach(\n\t\t\t( [ variationName, variation ] ) => {\n\t\t\t\tif ( ! variation?.blockTypes?.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvariation.blockTypes.forEach( ( blockName ) => {\n\t\t\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\t\t\tconst registeredBlockStyle = blockStyles.find(\n\t\t\t\t\t\t( { name } ) => name === variationName\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! registeredBlockStyle ) {\n\t\t\t\t\t\tunregisteredBlockStyles.push( [\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: variationName,\n\t\t\t\t\t\t\t\tlabel: variationName,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst path = [\n\t\t\t\t\t\t'styles',\n\t\t\t\t\t\t'blocks',\n\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t'variations',\n\t\t\t\t\t\tvariationName,\n\t\t\t\t\t];\n\t\t\t\t\tsetNestedValue( variationsConfigToMerge, path, variation );\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\treturn [ variationsConfigToMerge, unregisteredBlockStyles ];\n\t}, [ sharedVariations, getBlockStyles ] );\n\n\t// Automatically register missing block styles from variations.\n\tuseEffect(\n\t\t() =>\n\t\t\tunregisteredStyles?.forEach( ( unregisteredStyle ) =>\n\t\t\t\tregisterBlockStyle( ...unregisteredStyle )\n\t\t\t),\n\t\t[ unregisteredStyles ]\n\t);\n\n\t// Merge shared block style variation definitions into overall user config.\n\tconst updatedConfig = useMemo( () => {\n\t\tif ( ! userConfigToMerge ) {\n\t\t\treturn userConfig;\n\t\t}\n\n\t\treturn deepmerge( userConfigToMerge, userConfig );\n\t}, [ userConfigToMerge, userConfig ] );\n\n\treturn updatedConfig;\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\t\tconst record = _globalStylesId\n\t\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t )\n\t\t\t\t: undefined;\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\thasResolved = _globalStylesId\n\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t ] )\n\t\t\t\t\t: true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\t_links: record?._links,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\t_links: _links ?? {},\n\t\t};\n\t}, [ settings, styles, _links ] );\n\n\tconst setConfig = useCallback(\n\t\t( callback, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\t_links: record?._links ?? {},\n\t\t\t};\n\t\t\tconst updatedConfig = callback( currentConfig );\n\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\t_links: cleanEmptyObject( updatedConfig._links ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nexport function useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\tconst userConfigWithVariations =\n\t\tuseResolvedBlockStyleVariationsConfig( userConfig );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfigWithVariations ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfigWithVariations );\n\t}, [ userConfigWithVariations, baseConfig ] );\n\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfigWithVariations,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfigWithVariations,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["deepmerge","isPlainObject","privateApis","blockEditorPrivateApis","store","coreStore","useSelect","useDispatch","useMemo","useCallback","unlock","jsx","_jsx","GlobalStylesContext","cleanEmptyObject","mergeBaseAndUserConfigs","base","user","isMergeableObject","useGlobalStylesUserConfig","globalStylesId","isReady","settings","styles","_links","select","getEditedEntityRecord","hasFinishedResolution","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","undefined","hasResolved","editEntityRecord","config","setConfig","callbackOrObject","options","_record$styles","_record$settings","_record$_links","currentConfig","updatedConfig","useGlobalStylesBaseConfig","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","userConfig","setUserConfig","isBaseConfigReady","mergedConfig","context","merged","GlobalStylesProvider","children","Provider","value"],"sources":["@wordpress/editor/src/components/global-styles-provider/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t// We only pass as arrays the presets,\n\t\t// in which case we want the new array of values\n\t\t// to override the old array (no merging).\n\t\tisMergeableObject: isPlainObject,\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\t\tconst record = _globalStylesId\n\t\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t )\n\t\t\t\t: undefined;\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\thasResolved = _globalStylesId\n\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t ] )\n\t\t\t\t\t: true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t\t_links: record?._links,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t\t_links: _links ?? {},\n\t\t};\n\t}, [ settings, styles, _links ] );\n\n\tconst setConfig = useCallback(\n\t\t/**\n\t\t * Set the global styles config.\n\t\t * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.\n\t\t * Otherwise, overwrite the current config with the incoming object.\n\t\t * @param {Object} options Options for editEntityRecord Core selector.\n\t\t */\n\t\t( callbackOrObject, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t\t_links: record?._links ?? {},\n\t\t\t};\n\n\t\t\tconst updatedConfig =\n\t\t\t\ttypeof callbackOrObject === 'function'\n\t\t\t\t\t? callbackOrObject( currentConfig )\n\t\t\t\t\t: callbackOrObject;\n\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t\t_links: cleanEmptyObject( updatedConfig._links ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId, editEntityRecord, getEditedEntityRecord ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nexport function useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { external, trash, backup } from '@wordpress/icons';
5
5
  import { addQueryArgs } from '@wordpress/url';
6
- import { useDispatch, useSelect } from '@wordpress/data';
6
+ import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
7
7
  import { decodeEntities } from '@wordpress/html-entities';
8
8
  import { store as coreStore } from '@wordpress/core-data';
9
9
  import { __, _n, sprintf, _x } from '@wordpress/i18n';
@@ -124,6 +124,15 @@ const deletePostAction = {
124
124
  });
125
125
  }
126
126
  };
127
+ function useCanUserEligibilityCheckPostType(capability, resource, action) {
128
+ const registry = useRegistry();
129
+ return useMemo(() => ({
130
+ ...action,
131
+ isEligible(item) {
132
+ return action.isEligible(item) && registry.select(coreStore).canUser(capability, resource, item.id);
133
+ }
134
+ }), [action, registry, capability, resource]);
135
+ }
127
136
  const trashPostAction = {
128
137
  id: 'move-to-trash',
129
138
  label: __('Move to Trash'),
@@ -243,7 +252,10 @@ const trashPostAction = {
243
252
  });
244
253
  }
245
254
  };
246
- function usePermanentlyDeletePostAction() {
255
+ function useTrashPostAction(resource) {
256
+ return useCanUserEligibilityCheckPostType('delete', resource, trashPostAction);
257
+ }
258
+ function usePermanentlyDeletePostAction(resource) {
247
259
  const {
248
260
  createSuccessNotice,
249
261
  createErrorNotice
@@ -251,7 +263,7 @@ function usePermanentlyDeletePostAction() {
251
263
  const {
252
264
  deleteEntityRecord
253
265
  } = useDispatch(coreStore);
254
- return useMemo(() => ({
266
+ const permanentlyDeletePostAction = useMemo(() => ({
255
267
  id: 'permanently-delete',
256
268
  label: __('Permanently delete'),
257
269
  supportsBulk: true,
@@ -323,8 +335,9 @@ function usePermanentlyDeletePostAction() {
323
335
  }
324
336
  }
325
337
  }), [createSuccessNotice, createErrorNotice, deleteEntityRecord]);
338
+ return useCanUserEligibilityCheckPostType('delete', resource, permanentlyDeletePostAction);
326
339
  }
327
- function useRestorePostAction() {
340
+ function useRestorePostAction(resource) {
328
341
  const {
329
342
  createSuccessNotice,
330
343
  createErrorNotice
@@ -333,7 +346,7 @@ function useRestorePostAction() {
333
346
  editEntityRecord,
334
347
  saveEditedEntityRecord
335
348
  } = useDispatch(coreStore);
336
- return useMemo(() => ({
349
+ const restorePostAction = useMemo(() => ({
337
350
  id: 'restore',
338
351
  label: __('Restore'),
339
352
  isPrimary: true,
@@ -413,6 +426,7 @@ function useRestorePostAction() {
413
426
  }
414
427
  }
415
428
  }), [createSuccessNotice, createErrorNotice, editEntityRecord, saveEditedEntityRecord]);
429
+ return useCanUserEligibilityCheckPostType('update', resource, restorePostAction);
416
430
  }
417
431
  const viewPostAction = {
418
432
  id: 'view-post',
@@ -432,6 +446,7 @@ const viewPostAction = {
432
446
  };
433
447
  const postRevisionsAction = {
434
448
  id: 'view-post-revisions',
449
+ context: 'list',
435
450
  label(items) {
436
451
  var _items$0$_links$versi;
437
452
  const revisionsCount = (_items$0$_links$versi = items[0]._links?.['version-history']?.[0]?.count) !== null && _items$0$_links$versi !== void 0 ? _items$0$_links$versi : 0;
@@ -554,6 +569,9 @@ const renamePostAction = {
554
569
  });
555
570
  }
556
571
  };
572
+ function useRenamePostAction(resource) {
573
+ return useCanUserEligibilityCheckPostType('update', resource, renamePostAction);
574
+ }
557
575
  const duplicatePostAction = {
558
576
  id: 'duplicate-post',
559
577
  label: _x('Duplicate', 'action label'),
@@ -608,7 +626,7 @@ const duplicatePostAction = {
608
626
  });
609
627
  createSuccessNotice(sprintf(
610
628
  // translators: %s: Title of the created template e.g: "Category".
611
- __('"%s" successfully created.'), newItem.title?.rendered || title), {
629
+ __('"%s" successfully created.'), decodeEntities(newItem.title?.rendered || title)), {
612
630
  id: 'duplicate-post-action',
613
631
  type: 'snackbar'
614
632
  });
@@ -808,19 +826,35 @@ export const duplicateTemplatePartAction = {
808
826
  });
809
827
  }
810
828
  };
811
- export function usePostActions(postType, onActionPerformed) {
829
+ export function usePostActions({
830
+ postType,
831
+ onActionPerformed,
832
+ context
833
+ }) {
812
834
  const {
813
- postTypeObject
835
+ postTypeObject,
836
+ resource,
837
+ cachedCanUserResolvers,
838
+ userCanCreatePostType
814
839
  } = useSelect(select => {
815
840
  const {
816
- getPostType
841
+ getPostType,
842
+ getCachedResolvers,
843
+ canUser
817
844
  } = select(coreStore);
845
+ const _postTypeObject = getPostType(postType);
846
+ const _resource = _postTypeObject?.rest_base || '';
818
847
  return {
819
- postTypeObject: getPostType(postType)
848
+ postTypeObject: _postTypeObject,
849
+ resource: _resource,
850
+ cachedCanUserResolvers: getCachedResolvers()?.canUser,
851
+ userCanCreatePostType: canUser('create', _resource)
820
852
  };
821
853
  }, [postType]);
822
- const permanentlyDeletePostAction = usePermanentlyDeletePostAction();
823
- const restorePostAction = useRestorePostAction();
854
+ const trashPostActionForPostType = useTrashPostAction(resource);
855
+ const permanentlyDeletePostActionForPostType = usePermanentlyDeletePostAction(resource);
856
+ const renamePostActionForPostType = useRenamePostAction(resource);
857
+ const restorePostActionForPostType = useRestorePostAction(resource);
824
858
  const isTemplateOrTemplatePart = [TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE].includes(postType);
825
859
  const isPattern = postType === PATTERN_POST_TYPE;
826
860
  const isLoaded = !!postTypeObject;
@@ -830,7 +864,19 @@ export function usePostActions(postType, onActionPerformed) {
830
864
  if (!isLoaded) {
831
865
  return [];
832
866
  }
833
- const actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && duplicateTemplatePartAction, isPattern && duplicatePatternAction, supportsTitle && renamePostAction, isPattern && exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostAction, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostAction, !isTemplateOrTemplatePart && permanentlyDeletePostAction].filter(Boolean);
867
+ let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType].filter(Boolean);
868
+ // Filter actions based on provided context. If not provided
869
+ // all actions are returned. We'll have a single entry for getting the actions
870
+ // and the consumer should provide the context to filter the actions, if needed.
871
+ // Actions should also provide the `context` they support, if it's specific, to
872
+ // compare with the provided context to get all the actions.
873
+ // Right now the only supported context is `list`.
874
+ actions = actions.filter(action => {
875
+ if (!action.context) {
876
+ return true;
877
+ }
878
+ return action.context === context;
879
+ });
834
880
  if (onActionPerformed) {
835
881
  for (let i = 0; i < actions.length; ++i) {
836
882
  if (actions[i].callback) {
@@ -867,6 +913,9 @@ export function usePostActions(postType, onActionPerformed) {
867
913
  }
868
914
  }
869
915
  return actions;
870
- }, [isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable, permanentlyDeletePostAction, restorePostAction, onActionPerformed, isLoaded, supportsRevisions, supportsTitle]);
916
+ // We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render
917
+ // when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.
918
+ // eslint-disable-next-line react-hooks/exhaustive-deps
919
+ }, [isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable, permanentlyDeletePostActionForPostType, restorePostActionForPostType, renamePostActionForPostType, trashPostActionForPostType, onActionPerformed, isLoaded, supportsRevisions, supportsTitle, context, userCanCreatePostType, cachedCanUserResolvers]);
871
920
  }
872
921
  //# sourceMappingURL=actions.js.map