@wordpress/editor 13.29.0 → 13.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/bindings/index.js +5 -3
- package/build/bindings/index.js.map +1 -1
- package/build/bindings/post-meta.js +2 -1
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/block-removal-warnings/index.js +70 -0
- package/build/components/block-removal-warnings/index.js.map +1 -0
- package/build/components/commands/index.js +22 -14
- package/build/components/commands/index.js.map +1 -1
- package/build/components/document-bar/index.js +2 -2
- package/build/components/document-bar/index.js.map +1 -1
- package/build/components/document-outline/check.js +8 -7
- package/build/components/document-outline/check.js.map +1 -1
- package/build/components/document-outline/index.js +27 -28
- package/build/components/document-outline/index.js.map +1 -1
- package/build/components/document-tools/index.js +5 -3
- package/build/components/document-tools/index.js.map +1 -1
- package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
- package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
- package/build/components/entities-saved-states/hooks/use-is-dirty.js +10 -16
- package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
- package/build/components/entities-saved-states/index.js +17 -3
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/error-boundary/index.native.js +133 -0
- package/build/components/error-boundary/index.native.js.map +1 -0
- package/build/components/index.js +9 -8
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +9 -1
- package/build/components/index.native.js.map +1 -1
- package/build/components/list-view-sidebar/index.js +1 -1
- package/build/components/list-view-sidebar/index.js.map +1 -1
- package/build/components/plugin-document-setting-panel/index.js +123 -0
- package/build/components/plugin-document-setting-panel/index.js.map +1 -0
- package/build/components/post-featured-image/index.js +3 -8
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-featured-image/panel.js +7 -3
- package/build/components/post-featured-image/panel.js.map +1 -1
- package/build/components/post-locked-modal/index.js.map +1 -1
- package/build/components/post-preview-button/index.js +2 -1
- package/build/components/post-preview-button/index.js.map +1 -1
- package/build/components/post-publish-button/index.js +2 -1
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-panel/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build/components/post-sync-status/index.js +0 -72
- package/build/components/post-sync-status/index.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +7 -3
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js +3 -0
- package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build/components/post-title/index.native.js.map +1 -1
- package/build/components/post-title/post-title-raw.js.map +1 -1
- package/build/components/post-view-link/index.js +2 -1
- package/build/components/post-view-link/index.js.map +1 -1
- package/build/components/provider/disable-non-page-content-blocks.js +23 -30
- package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
- package/build/components/provider/index.js +3 -2
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-hide-blocks-from-inserter.js +4 -3
- package/build/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
- package/build/hooks/index.js +1 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +13 -9
- package/build/hooks/pattern-overrides.js.map +1 -0
- package/build/private-apis.js +0 -2
- package/build/private-apis.js.map +1 -1
- package/build-module/bindings/index.js +5 -3
- package/build-module/bindings/index.js.map +1 -1
- package/build-module/bindings/post-meta.js +2 -1
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/block-removal-warnings/index.js +64 -0
- package/build-module/components/block-removal-warnings/index.js.map +1 -0
- package/build-module/components/commands/index.js +22 -14
- package/build-module/components/commands/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +2 -2
- package/build-module/components/document-bar/index.js.map +1 -1
- package/build-module/components/document-outline/check.js +9 -8
- package/build-module/components/document-outline/check.js.map +1 -1
- package/build-module/components/document-outline/index.js +27 -27
- package/build-module/components/document-outline/index.js.map +1 -1
- package/build-module/components/document-tools/index.js +5 -3
- package/build-module/components/document-tools/index.js.map +1 -1
- package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
- package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
- package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +10 -16
- package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +18 -4
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/error-boundary/index.native.js +125 -0
- package/build-module/components/error-boundary/index.native.js.map +1 -0
- package/build-module/components/index.js +2 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/list-view-sidebar/index.js +1 -1
- package/build-module/components/list-view-sidebar/index.js.map +1 -1
- package/build-module/components/plugin-document-setting-panel/index.js +115 -0
- package/build-module/components/plugin-document-setting-panel/index.js.map +1 -0
- package/build-module/components/post-featured-image/index.js +4 -9
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-featured-image/panel.js +6 -2
- package/build-module/components/post-featured-image/panel.js.map +1 -1
- package/build-module/components/post-locked-modal/index.js.map +1 -1
- package/build-module/components/post-preview-button/index.js +2 -1
- package/build-module/components/post-preview-button/index.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +2 -1
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-panel/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build-module/components/post-sync-status/index.js +2 -73
- package/build-module/components/post-sync-status/index.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +7 -3
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js +3 -0
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build-module/components/post-title/index.native.js.map +1 -1
- package/build-module/components/post-title/post-title-raw.js.map +1 -1
- package/build-module/components/post-view-link/index.js +2 -1
- package/build-module/components/post-view-link/index.js.map +1 -1
- package/build-module/components/provider/disable-non-page-content-blocks.js +24 -31
- package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
- package/build-module/components/provider/index.js +3 -2
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-hide-blocks-from-inserter.js +4 -3
- package/build-module/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
- package/build-module/hooks/index.js +1 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +13 -9
- package/build-module/hooks/pattern-overrides.js.map +1 -0
- package/build-module/private-apis.js +0 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-style/style-rtl.css +9 -8
- package/build-style/style.css +9 -8
- package/package.json +34 -32
- package/src/bindings/index.js +6 -3
- package/src/bindings/post-meta.js +4 -1
- package/src/components/block-removal-warnings/index.js +92 -0
- package/src/components/commands/index.js +21 -13
- package/src/components/document-bar/index.js +3 -2
- package/src/components/document-outline/check.js +8 -10
- package/src/components/document-outline/index.js +20 -24
- package/src/components/document-outline/test/index.js +26 -7
- package/src/components/document-tools/index.js +3 -3
- package/src/components/editor-help/intro-to-blocks.native.js +1 -1
- package/src/components/entities-saved-states/entity-type-list.js +1 -1
- package/src/components/entities-saved-states/hooks/use-is-dirty.js +18 -22
- package/src/components/entities-saved-states/index.js +33 -8
- package/src/components/entities-saved-states/test/use-is-dirty.js +3 -0
- package/src/components/error-boundary/index.native.js +192 -0
- package/src/components/error-boundary/style.native.scss +116 -0
- package/src/components/index.js +2 -4
- package/src/components/index.native.js +1 -0
- package/src/components/list-view-sidebar/index.js +1 -1
- package/src/components/plugin-document-setting-panel/index.js +121 -0
- package/src/components/post-featured-image/index.js +6 -15
- package/src/components/post-featured-image/panel.js +9 -3
- package/src/components/post-featured-image/style.scss +8 -13
- package/src/components/post-locked-modal/index.js +1 -1
- package/src/components/post-preview-button/index.js +1 -0
- package/src/components/post-publish-button/index.js +1 -0
- package/src/components/post-publish-panel/index.js +1 -1
- package/src/components/post-publish-panel/maybe-upload-media.js +1 -1
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +3 -3
- package/src/components/post-sync-status/index.js +1 -94
- package/src/components/post-taxonomies/flat-term-selector.js +13 -8
- package/src/components/post-taxonomies/hierarchical-term-selector.js +3 -0
- package/src/components/post-title/index.native.js +2 -2
- package/src/components/post-title/post-title-raw.js +1 -1
- package/src/components/post-view-link/index.js +1 -0
- package/src/components/provider/disable-non-page-content-blocks.js +34 -36
- package/src/components/provider/index.js +3 -1
- package/src/components/provider/test/disable-non-page-content-blocks.js +90 -0
- package/src/components/provider/use-hide-blocks-from-inserter.js +5 -3
- package/src/hooks/index.js +1 -1
- package/src/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +16 -10
- package/src/private-apis.js +0 -2
- package/build/components/provider/constants.js +0 -8
- package/build/components/provider/constants.js.map +0 -1
- package/build/hooks/pattern-partial-syncing.js.map +0 -1
- package/build-module/components/provider/constants.js +0 -2
- package/build-module/components/provider/constants.js.map +0 -1
- package/build-module/hooks/pattern-partial-syncing.js.map +0 -1
- package/src/components/provider/constants.js +0 -5
|
@@ -33,7 +33,7 @@ var _undo = _interopRequireDefault(require("../editor-history/undo"));
|
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
35
|
const {
|
|
36
|
-
|
|
36
|
+
useShowBlockTools
|
|
37
37
|
} = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
|
|
38
38
|
const preventDefault = event => {
|
|
39
39
|
event.preventDefault();
|
|
@@ -84,7 +84,9 @@ function DocumentTools({
|
|
|
84
84
|
}, []);
|
|
85
85
|
const isLargeViewport = (0, _compose.useViewportMatch)('medium');
|
|
86
86
|
const isWideViewport = (0, _compose.useViewportMatch)('wide');
|
|
87
|
-
const
|
|
87
|
+
const {
|
|
88
|
+
showFixedToolbar
|
|
89
|
+
} = useShowBlockTools();
|
|
88
90
|
|
|
89
91
|
/* translators: accessibility text for the editor toolbar */
|
|
90
92
|
const toolbarAriaLabel = (0, _i18n.__)('Document tools');
|
|
@@ -112,7 +114,7 @@ function DocumentTools({
|
|
|
112
114
|
(0, _react.createElement)(_blockEditor.NavigableToolbar, {
|
|
113
115
|
className: (0, _classnames.default)('editor-document-tools', 'edit-post-header-toolbar', className),
|
|
114
116
|
"aria-label": toolbarAriaLabel,
|
|
115
|
-
shouldUseKeyboardFocusShortcut: !
|
|
117
|
+
shouldUseKeyboardFocusShortcut: !showFixedToolbar,
|
|
116
118
|
variant: "unstyled"
|
|
117
119
|
}, (0, _react.createElement)("div", {
|
|
118
120
|
className: "editor-document-tools__left"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_data","_i18n","_blockEditor","_components","_icons","_element","_keyboardShortcuts","_preferences","_lockUnlock","_store","_redo","_undo","useCanBlockToolbarBeFocused","unlock","blockEditorPrivateApis","preventDefault","event","DocumentTools","className","disableBlockTools","children","listViewLabel","__","inserterButton","useRef","setIsInserterOpened","setIsListViewOpened","useDispatch","editorStore","isDistractionFree","isInserterOpened","isListViewOpen","listViewShortcut","listViewToggleRef","hasFixedToolbar","showIconLabels","useSelect","select","getSettings","blockEditorStore","get","preferencesStore","isListViewOpened","getListViewToggleRef","getShortcutRepresentation","keyboardShortcutsStore","isLargeViewport","useViewportMatch","isWideViewport","blockToolbarCanBeFocused","toolbarAriaLabel","toggleListView","useCallback","toggleInserter","current","focus","longLabel","_x","shortLabel","_react","createElement","NavigableToolbar","classnames","shouldUseKeyboardFocusShortcut","variant","ToolbarItem","ref","as","Button","isPressed","onMouseDown","onClick","disabled","icon","plus","label","showTooltip","Fragment","ToolSelector","undefined","size","EditorHistoryUndo","EditorHistoryRedo","listView","shortcut","_default","exports","default"],"sources":["@wordpress/editor/src/components/document-tools/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tNavigableToolbar,\n\tToolSelector,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { Button, ToolbarItem } from '@wordpress/components';\nimport { listView, plus } from '@wordpress/icons';\nimport { useRef, useCallback } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport EditorHistoryRedo from '../editor-history/redo';\nimport EditorHistoryUndo from '../editor-history/undo';\n\nconst { useCanBlockToolbarBeFocused } = unlock( blockEditorPrivateApis );\n\nconst preventDefault = ( event ) => {\n\tevent.preventDefault();\n};\n\nfunction DocumentTools( {\n\tclassName,\n\tdisableBlockTools = false,\n\tchildren,\n\t// This is a temporary prop until the list view is fully unified between post and site editors.\n\tlistViewLabel = __( 'Document Overview' ),\n} ) {\n\tconst inserterButton = useRef();\n\tconst { setIsInserterOpened, setIsListViewOpened } =\n\t\tuseDispatch( editorStore );\n\tconst {\n\t\tisDistractionFree,\n\t\tisInserterOpened,\n\t\tisListViewOpen,\n\t\tlistViewShortcut,\n\t\tlistViewToggleRef,\n\t\thasFixedToolbar,\n\t\tshowIconLabels,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { isListViewOpened, getListViewToggleRef } = unlock(\n\t\t\tselect( editorStore )\n\t\t);\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\n\t\treturn {\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tlistViewShortcut: getShortcutRepresentation(\n\t\t\t\t'core/editor/toggle-list-view'\n\t\t\t),\n\t\t\tlistViewToggleRef: getListViewToggleRef(),\n\t\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t};\n\t}, [] );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideViewport = useViewportMatch( 'wide' );\n\tconst blockToolbarCanBeFocused = useCanBlockToolbarBeFocused();\n\n\t/* translators: accessibility text for the editor toolbar */\n\tconst toolbarAriaLabel = __( 'Document tools' );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst toggleInserter = useCallback( () => {\n\t\tif ( isInserterOpened ) {\n\t\t\t// Focusing the inserter button should close the inserter popover.\n\t\t\t// However, there are some cases it won't close when the focus is lost.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/43090 for more details.\n\t\t\tinserterButton.current.focus();\n\t\t\tsetIsInserterOpened( false );\n\t\t} else {\n\t\t\tsetIsInserterOpened( true );\n\t\t}\n\t}, [ isInserterOpened, setIsInserterOpened ] );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst longLabel = _x(\n\t\t'Toggle block inserter',\n\t\t'Generic label for block inserter button'\n\t);\n\tconst shortLabel = ! isInserterOpened ? __( 'Add' ) : __( 'Close' );\n\n\treturn (\n\t\t// Some plugins expect and use the `edit-post-header-toolbar` CSS class to\n\t\t// find the toolbar and inject UI elements into it. This is not officially\n\t\t// supported, but we're keeping it in the list of class names for backwards\n\t\t// compatibility.\n\t\t<NavigableToolbar\n\t\t\tclassName={ classnames(\n\t\t\t\t'editor-document-tools',\n\t\t\t\t'edit-post-header-toolbar',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\taria-label={ toolbarAriaLabel }\n\t\t\tshouldUseKeyboardFocusShortcut={ ! blockToolbarCanBeFocused }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t<div className=\"editor-document-tools__left\">\n\t\t\t\t<ToolbarItem\n\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tclassName=\"editor-document-tools__inserter-toggle\"\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tisPressed={ isInserterOpened }\n\t\t\t\t\tonMouseDown={ preventDefault }\n\t\t\t\t\tonClick={ toggleInserter }\n\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tlabel={ showIconLabels ? shortLabel : longLabel }\n\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\taria-expanded={ isInserterOpened }\n\t\t\t\t/>\n\t\t\t\t{ ( isWideViewport || ! showIconLabels ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ isLargeViewport && ! hasFixedToolbar && (\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ ToolSelector }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tas={ EditorHistoryUndo }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tas={ EditorHistoryRedo }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isDistractionFree && (\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\tclassName=\"editor-document-tools__document-overview-toggle\"\n\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\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\tlabel={ listViewLabel }\n\t\t\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\t\t\tshortcut={ listViewShortcut }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-expanded={ isListViewOpen }\n\t\t\t\t\t\t\t\tref={ listViewToggleRef }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default DocumentTools;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_data","_i18n","_blockEditor","_components","_icons","_element","_keyboardShortcuts","_preferences","_lockUnlock","_store","_redo","_undo","useShowBlockTools","unlock","blockEditorPrivateApis","preventDefault","event","DocumentTools","className","disableBlockTools","children","listViewLabel","__","inserterButton","useRef","setIsInserterOpened","setIsListViewOpened","useDispatch","editorStore","isDistractionFree","isInserterOpened","isListViewOpen","listViewShortcut","listViewToggleRef","hasFixedToolbar","showIconLabels","useSelect","select","getSettings","blockEditorStore","get","preferencesStore","isListViewOpened","getListViewToggleRef","getShortcutRepresentation","keyboardShortcutsStore","isLargeViewport","useViewportMatch","isWideViewport","showFixedToolbar","toolbarAriaLabel","toggleListView","useCallback","toggleInserter","current","focus","longLabel","_x","shortLabel","_react","createElement","NavigableToolbar","classnames","shouldUseKeyboardFocusShortcut","variant","ToolbarItem","ref","as","Button","isPressed","onMouseDown","onClick","disabled","icon","plus","label","showTooltip","Fragment","ToolSelector","undefined","size","EditorHistoryUndo","EditorHistoryRedo","listView","shortcut","_default","exports","default"],"sources":["@wordpress/editor/src/components/document-tools/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tNavigableToolbar,\n\tToolSelector,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { Button, ToolbarItem } from '@wordpress/components';\nimport { listView, plus } from '@wordpress/icons';\nimport { useRef, useCallback } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport EditorHistoryRedo from '../editor-history/redo';\nimport EditorHistoryUndo from '../editor-history/undo';\n\nconst { useShowBlockTools } = unlock( blockEditorPrivateApis );\n\nconst preventDefault = ( event ) => {\n\tevent.preventDefault();\n};\n\nfunction DocumentTools( {\n\tclassName,\n\tdisableBlockTools = false,\n\tchildren,\n\t// This is a temporary prop until the list view is fully unified between post and site editors.\n\tlistViewLabel = __( 'Document Overview' ),\n} ) {\n\tconst inserterButton = useRef();\n\tconst { setIsInserterOpened, setIsListViewOpened } =\n\t\tuseDispatch( editorStore );\n\tconst {\n\t\tisDistractionFree,\n\t\tisInserterOpened,\n\t\tisListViewOpen,\n\t\tlistViewShortcut,\n\t\tlistViewToggleRef,\n\t\thasFixedToolbar,\n\t\tshowIconLabels,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { isListViewOpened, getListViewToggleRef } = unlock(\n\t\t\tselect( editorStore )\n\t\t);\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\n\t\treturn {\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tlistViewShortcut: getShortcutRepresentation(\n\t\t\t\t'core/editor/toggle-list-view'\n\t\t\t),\n\t\t\tlistViewToggleRef: getListViewToggleRef(),\n\t\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t};\n\t}, [] );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideViewport = useViewportMatch( 'wide' );\n\tconst { showFixedToolbar } = useShowBlockTools();\n\n\t/* translators: accessibility text for the editor toolbar */\n\tconst toolbarAriaLabel = __( 'Document tools' );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst toggleInserter = useCallback( () => {\n\t\tif ( isInserterOpened ) {\n\t\t\t// Focusing the inserter button should close the inserter popover.\n\t\t\t// However, there are some cases it won't close when the focus is lost.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/43090 for more details.\n\t\t\tinserterButton.current.focus();\n\t\t\tsetIsInserterOpened( false );\n\t\t} else {\n\t\t\tsetIsInserterOpened( true );\n\t\t}\n\t}, [ isInserterOpened, setIsInserterOpened ] );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst longLabel = _x(\n\t\t'Toggle block inserter',\n\t\t'Generic label for block inserter button'\n\t);\n\tconst shortLabel = ! isInserterOpened ? __( 'Add' ) : __( 'Close' );\n\n\treturn (\n\t\t// Some plugins expect and use the `edit-post-header-toolbar` CSS class to\n\t\t// find the toolbar and inject UI elements into it. This is not officially\n\t\t// supported, but we're keeping it in the list of class names for backwards\n\t\t// compatibility.\n\t\t<NavigableToolbar\n\t\t\tclassName={ classnames(\n\t\t\t\t'editor-document-tools',\n\t\t\t\t'edit-post-header-toolbar',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\taria-label={ toolbarAriaLabel }\n\t\t\tshouldUseKeyboardFocusShortcut={ ! showFixedToolbar }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t<div className=\"editor-document-tools__left\">\n\t\t\t\t<ToolbarItem\n\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tclassName=\"editor-document-tools__inserter-toggle\"\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tisPressed={ isInserterOpened }\n\t\t\t\t\tonMouseDown={ preventDefault }\n\t\t\t\t\tonClick={ toggleInserter }\n\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tlabel={ showIconLabels ? shortLabel : longLabel }\n\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\taria-expanded={ isInserterOpened }\n\t\t\t\t/>\n\t\t\t\t{ ( isWideViewport || ! showIconLabels ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ isLargeViewport && ! hasFixedToolbar && (\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ ToolSelector }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tas={ EditorHistoryUndo }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tas={ EditorHistoryRedo }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isDistractionFree && (\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\tclassName=\"editor-document-tools__document-overview-toggle\"\n\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\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\tlabel={ listViewLabel }\n\t\t\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\t\t\tshortcut={ listViewShortcut }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-expanded={ isListViewOpen }\n\t\t\t\t\t\t\t\tref={ listViewToggleRef }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default DocumentTools;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_i18n","_compose","_style","_interopRequireDefault","_viewSections","IntroToBlocks","titleStyle","usePreferredColorSchemeStyle","styles","helpDetailTitle","helpDetailTitleDark","_react","createElement","Fragment","HelpDetailImage","source","View","style","helpDetailContainer","Text","accessibilityRole","selectable","__","HelpDetailBodyText","text","HelpDetailSectionHeadingText","accessible","accessibilityLabel","sourceDarkMode","_default","exports","default"],"sources":["@wordpress/editor/src/components/editor-help/intro-to-blocks.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport {\n\tHelpDetailBodyText,\n\tHelpDetailSectionHeadingText,\n\tHelpDetailImage,\n} from './view-sections';\n\nconst IntroToBlocks = () => {\n\tconst titleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailTitle,\n\t\tstyles.helpDetailTitleDark\n\t);\n\treturn (\n\t\t<>\n\t\t\t<HelpDetailImage\n\t\t\t\tsource={ require( './images/block-layout-collage.png' ) }\n\t\t\t/>\n\t\t\t<View style={ styles.helpDetailContainer }>\n\t\t\t\t<Text\n\t\t\t\t\taccessibilityRole=\"header\"\n\t\t\t\t\tselectable\n\t\t\t\t\tstyle={ titleStyle }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Welcome to the world of blocks' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText\n\t\t\t\t\ttext={ __( 'Rich text editing' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Blocks allow you to focus on writing your content, knowing that all the formatting tools you need are there to help you get your message across.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\taccessible
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_i18n","_compose","_style","_interopRequireDefault","_viewSections","IntroToBlocks","titleStyle","usePreferredColorSchemeStyle","styles","helpDetailTitle","helpDetailTitleDark","_react","createElement","Fragment","HelpDetailImage","source","View","style","helpDetailContainer","Text","accessibilityRole","selectable","__","HelpDetailBodyText","text","HelpDetailSectionHeadingText","accessible","accessibilityLabel","sourceDarkMode","_default","exports","default"],"sources":["@wordpress/editor/src/components/editor-help/intro-to-blocks.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport {\n\tHelpDetailBodyText,\n\tHelpDetailSectionHeadingText,\n\tHelpDetailImage,\n} from './view-sections';\n\nconst IntroToBlocks = () => {\n\tconst titleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailTitle,\n\t\tstyles.helpDetailTitleDark\n\t);\n\treturn (\n\t\t<>\n\t\t\t<HelpDetailImage\n\t\t\t\tsource={ require( './images/block-layout-collage.png' ) }\n\t\t\t/>\n\t\t\t<View style={ styles.helpDetailContainer }>\n\t\t\t\t<Text\n\t\t\t\t\taccessibilityRole=\"header\"\n\t\t\t\t\tselectable\n\t\t\t\t\tstyle={ titleStyle }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Welcome to the world of blocks' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText\n\t\t\t\t\ttext={ __( 'Rich text editing' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Blocks allow you to focus on writing your content, knowing that all the formatting tools you need are there to help you get your message across.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\taccessible\n\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t'Text formatting controls are located within the toolbar positioned above the keyboard while editing a text block'\n\t\t\t\t\t) }\n\t\t\t\t\tsource={ require( './images/rich-text-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/rich-text-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText text={ __( 'Embed media' ) } />\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Make your content stand out by adding images, gifs, videos, and embedded media to your pages.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\tsource={ require( './images/embed-media-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/embed-media-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText text={ __( 'Build layouts' ) } />\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Arrange your content into columns, add Call to Action buttons, and overlay images with text.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\tsource={ require( './images/build-layouts-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/build-layouts-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Give it a try by adding a few blocks to your post or page!'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n};\n\nexport default IntroToBlocks;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_data","_components","_coreData","_blockEditor","_element","_entityRecordItem","_interopRequireDefault","_lockUnlock","getGlobalStylesChanges","GlobalStylesContext","unlock","blockEditorPrivateApis","getEntityDescription","entity","count","__","GlobalStylesDescription","record","user","currentEditorGlobalStyles","useContext","savedRecord","useSelect","select","coreStore","getEntityRecord","kind","name","key","globalStylesChanges","maxResults","length","_react","createElement","className","map","change","EntityDescription","description","PanelRow","EntityTypeList","list","unselectedEntities","setUnselectedEntities","firstRecord","entityConfig","getEntityConfig","entityLabel","label","PanelBody","title","initialOpen","default","property","checked","some","elt","onChange","value"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-type-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, PanelRow } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntityRecordItem from './entity-record-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { getGlobalStylesChanges, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction getEntityDescription( entity, count ) {\n\tswitch ( entity ) {\n\t\tcase 'site':\n\t\t\treturn 1 === count\n\t\t\t\t? __( 'This change will affect your whole site.' )\n\t\t\t\t: __( 'These changes will affect your whole site.' );\n\t\tcase 'wp_template':\n\t\t\treturn __(\n\t\t\t\t'This change will affect pages and posts that use this template.'\n\t\t\t);\n\t\tcase 'page':\n\t\tcase 'post':\n\t\t\treturn __( 'The following has been modified.' );\n\t}\n}\n\nfunction GlobalStylesDescription( { record } ) {\n\tconst { user: currentEditorGlobalStyles } =\n\t\tuseContext( GlobalStylesContext );\n\tconst savedRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord(\n\t\t\t\trecord.kind,\n\t\t\t\trecord.name,\n\t\t\t\trecord.key\n\t\t\t),\n\t\t[ record.kind, record.name, record.key ]\n\t);\n\n\tconst globalStylesChanges = getGlobalStylesChanges(\n\t\tcurrentEditorGlobalStyles,\n\t\tsavedRecord,\n\t\t{\n\t\t\tmaxResults: 10,\n\t\t}\n\t);\n\treturn globalStylesChanges.length ? (\n\t\t<ul className=\"entities-saved-states__changes\">\n\t\t\t{ globalStylesChanges.map( ( change ) => (\n\t\t\t\t<li key={ change }>{ change }</li>\n\t\t\t) ) }\n\t\t</ul>\n\t) : null;\n}\n\nfunction EntityDescription( { record, count } ) {\n\tif ( 'globalStyles' === record?.name ) {\n\t\treturn null;\n\t}\n\tconst description = getEntityDescription( record?.name, count );\n\treturn description ? <PanelRow>{ description }</PanelRow> : null;\n}\n\nexport default function EntityTypeList( {\n\tlist,\n\tunselectedEntities,\n\tsetUnselectedEntities,\n} ) {\n\tconst count = list.length;\n\tconst firstRecord = list[ 0 ];\n\tconst entityConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityConfig(\n\t\t\t\tfirstRecord.kind,\n\t\t\t\tfirstRecord.name\n\t\t\t),\n\t\t[ firstRecord.kind, firstRecord.name ]\n\t);\n\n\tlet entityLabel = entityConfig.label;\n\tif ( firstRecord?.name === 'wp_template_part' ) {\n\t\tentityLabel =\n\t\t\t1 === count ? __( 'Template Part' ) : __( 'Template Parts' );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ entityLabel } initialOpen
|
|
1
|
+
{"version":3,"names":["_i18n","require","_data","_components","_coreData","_blockEditor","_element","_entityRecordItem","_interopRequireDefault","_lockUnlock","getGlobalStylesChanges","GlobalStylesContext","unlock","blockEditorPrivateApis","getEntityDescription","entity","count","__","GlobalStylesDescription","record","user","currentEditorGlobalStyles","useContext","savedRecord","useSelect","select","coreStore","getEntityRecord","kind","name","key","globalStylesChanges","maxResults","length","_react","createElement","className","map","change","EntityDescription","description","PanelRow","EntityTypeList","list","unselectedEntities","setUnselectedEntities","firstRecord","entityConfig","getEntityConfig","entityLabel","label","PanelBody","title","initialOpen","default","property","checked","some","elt","onChange","value"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-type-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, PanelRow } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntityRecordItem from './entity-record-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { getGlobalStylesChanges, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction getEntityDescription( entity, count ) {\n\tswitch ( entity ) {\n\t\tcase 'site':\n\t\t\treturn 1 === count\n\t\t\t\t? __( 'This change will affect your whole site.' )\n\t\t\t\t: __( 'These changes will affect your whole site.' );\n\t\tcase 'wp_template':\n\t\t\treturn __(\n\t\t\t\t'This change will affect pages and posts that use this template.'\n\t\t\t);\n\t\tcase 'page':\n\t\tcase 'post':\n\t\t\treturn __( 'The following has been modified.' );\n\t}\n}\n\nfunction GlobalStylesDescription( { record } ) {\n\tconst { user: currentEditorGlobalStyles } =\n\t\tuseContext( GlobalStylesContext );\n\tconst savedRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord(\n\t\t\t\trecord.kind,\n\t\t\t\trecord.name,\n\t\t\t\trecord.key\n\t\t\t),\n\t\t[ record.kind, record.name, record.key ]\n\t);\n\n\tconst globalStylesChanges = getGlobalStylesChanges(\n\t\tcurrentEditorGlobalStyles,\n\t\tsavedRecord,\n\t\t{\n\t\t\tmaxResults: 10,\n\t\t}\n\t);\n\treturn globalStylesChanges.length ? (\n\t\t<ul className=\"entities-saved-states__changes\">\n\t\t\t{ globalStylesChanges.map( ( change ) => (\n\t\t\t\t<li key={ change }>{ change }</li>\n\t\t\t) ) }\n\t\t</ul>\n\t) : null;\n}\n\nfunction EntityDescription( { record, count } ) {\n\tif ( 'globalStyles' === record?.name ) {\n\t\treturn null;\n\t}\n\tconst description = getEntityDescription( record?.name, count );\n\treturn description ? <PanelRow>{ description }</PanelRow> : null;\n}\n\nexport default function EntityTypeList( {\n\tlist,\n\tunselectedEntities,\n\tsetUnselectedEntities,\n} ) {\n\tconst count = list.length;\n\tconst firstRecord = list[ 0 ];\n\tconst entityConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityConfig(\n\t\t\t\tfirstRecord.kind,\n\t\t\t\tfirstRecord.name\n\t\t\t),\n\t\t[ firstRecord.kind, firstRecord.name ]\n\t);\n\n\tlet entityLabel = entityConfig.label;\n\tif ( firstRecord?.name === 'wp_template_part' ) {\n\t\tentityLabel =\n\t\t\t1 === count ? __( 'Template Part' ) : __( 'Template Parts' );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ entityLabel } initialOpen>\n\t\t\t<EntityDescription record={ firstRecord } count={ count } />\n\t\t\t{ list.map( ( record ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityRecordItem\n\t\t\t\t\t\tkey={ record.key || record.property }\n\t\t\t\t\t\trecord={ record }\n\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t! unselectedEntities.some(\n\t\t\t\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\t\t\t\telt.kind === record.kind &&\n\t\t\t\t\t\t\t\t\telt.name === record.name &&\n\t\t\t\t\t\t\t\t\telt.key === record.key &&\n\t\t\t\t\t\t\t\t\telt.property === record.property\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetUnselectedEntities( record, value )\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\t{ 'globalStyles' === firstRecord?.name && (\n\t\t\t\t<GlobalStylesDescription record={ firstRecord } />\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -7,49 +7,43 @@ exports.useIsDirty = void 0;
|
|
|
7
7
|
var _data = require("@wordpress/data");
|
|
8
8
|
var _coreData = require("@wordpress/core-data");
|
|
9
9
|
var _element = require("@wordpress/element");
|
|
10
|
-
var _i18n = require("@wordpress/i18n");
|
|
11
10
|
/**
|
|
12
11
|
* WordPress dependencies
|
|
13
12
|
*/
|
|
14
13
|
|
|
15
|
-
const TRANSLATED_SITE_PROPERTIES = {
|
|
16
|
-
title: (0, _i18n.__)('Title'),
|
|
17
|
-
description: (0, _i18n.__)('Tagline'),
|
|
18
|
-
site_logo: (0, _i18n.__)('Logo'),
|
|
19
|
-
site_icon: (0, _i18n.__)('Icon'),
|
|
20
|
-
show_on_front: (0, _i18n.__)('Show on front'),
|
|
21
|
-
page_on_front: (0, _i18n.__)('Page on front'),
|
|
22
|
-
posts_per_page: (0, _i18n.__)('Maximum posts per page'),
|
|
23
|
-
default_comment_status: (0, _i18n.__)('Allow comments on new posts')
|
|
24
|
-
};
|
|
25
14
|
const useIsDirty = () => {
|
|
26
15
|
const {
|
|
27
16
|
editedEntities,
|
|
28
|
-
siteEdits
|
|
17
|
+
siteEdits,
|
|
18
|
+
siteEntityConfig
|
|
29
19
|
} = (0, _data.useSelect)(select => {
|
|
30
20
|
const {
|
|
31
21
|
__experimentalGetDirtyEntityRecords,
|
|
32
|
-
getEntityRecordEdits
|
|
22
|
+
getEntityRecordEdits,
|
|
23
|
+
getEntityConfig
|
|
33
24
|
} = select(_coreData.store);
|
|
34
25
|
return {
|
|
35
26
|
editedEntities: __experimentalGetDirtyEntityRecords(),
|
|
36
|
-
siteEdits: getEntityRecordEdits('root', 'site')
|
|
27
|
+
siteEdits: getEntityRecordEdits('root', 'site'),
|
|
28
|
+
siteEntityConfig: getEntityConfig('root', 'site')
|
|
37
29
|
};
|
|
38
30
|
}, []);
|
|
39
31
|
const dirtyEntityRecords = (0, _element.useMemo)(() => {
|
|
32
|
+
var _siteEntityConfig$met;
|
|
40
33
|
// Remove site object and decouple into its edited pieces.
|
|
41
34
|
const editedEntitiesWithoutSite = editedEntities.filter(record => !(record.kind === 'root' && record.name === 'site'));
|
|
35
|
+
const siteEntityLabels = (_siteEntityConfig$met = siteEntityConfig?.meta?.labels) !== null && _siteEntityConfig$met !== void 0 ? _siteEntityConfig$met : {};
|
|
42
36
|
const editedSiteEntities = [];
|
|
43
37
|
for (const property in siteEdits) {
|
|
44
38
|
editedSiteEntities.push({
|
|
45
39
|
kind: 'root',
|
|
46
40
|
name: 'site',
|
|
47
|
-
title:
|
|
41
|
+
title: siteEntityLabels[property] || property,
|
|
48
42
|
property
|
|
49
43
|
});
|
|
50
44
|
}
|
|
51
45
|
return [...editedEntitiesWithoutSite, ...editedSiteEntities];
|
|
52
|
-
}, [editedEntities, siteEdits]);
|
|
46
|
+
}, [editedEntities, siteEdits, siteEntityConfig]);
|
|
53
47
|
|
|
54
48
|
// Unchecked entities to be ignored by save function.
|
|
55
49
|
const [unselectedEntities, _setUnselectedEntities] = (0, _element.useState)([]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_coreData","_element","
|
|
1
|
+
{"version":3,"names":["_data","require","_coreData","_element","useIsDirty","editedEntities","siteEdits","siteEntityConfig","useSelect","select","__experimentalGetDirtyEntityRecords","getEntityRecordEdits","getEntityConfig","coreStore","dirtyEntityRecords","useMemo","_siteEntityConfig$met","editedEntitiesWithoutSite","filter","record","kind","name","siteEntityLabels","meta","labels","editedSiteEntities","property","push","title","unselectedEntities","_setUnselectedEntities","useState","setUnselectedEntities","key","checked","elt","isDirty","length","exports"],"sources":["@wordpress/editor/src/components/entities-saved-states/hooks/use-is-dirty.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo, useState } from '@wordpress/element';\n\nexport const useIsDirty = () => {\n\tconst { editedEntities, siteEdits, siteEntityConfig } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\tgetEntityRecordEdits,\n\t\t\t\tgetEntityConfig,\n\t\t\t} = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\teditedEntities: __experimentalGetDirtyEntityRecords(),\n\t\t\t\tsiteEdits: getEntityRecordEdits( 'root', 'site' ),\n\t\t\t\tsiteEntityConfig: getEntityConfig( 'root', 'site' ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst dirtyEntityRecords = useMemo( () => {\n\t\t// Remove site object and decouple into its edited pieces.\n\t\tconst editedEntitiesWithoutSite = editedEntities.filter(\n\t\t\t( record ) => ! ( record.kind === 'root' && record.name === 'site' )\n\t\t);\n\n\t\tconst siteEntityLabels = siteEntityConfig?.meta?.labels ?? {};\n\t\tconst editedSiteEntities = [];\n\t\tfor ( const property in siteEdits ) {\n\t\t\teditedSiteEntities.push( {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t\ttitle: siteEntityLabels[ property ] || property,\n\t\t\t\tproperty,\n\t\t\t} );\n\t\t}\n\n\t\treturn [ ...editedEntitiesWithoutSite, ...editedSiteEntities ];\n\t}, [ editedEntities, siteEdits, siteEntityConfig ] );\n\n\t// Unchecked entities to be ignored by save function.\n\tconst [ unselectedEntities, _setUnselectedEntities ] = useState( [] );\n\n\tconst setUnselectedEntities = (\n\t\t{ kind, name, key, property },\n\t\tchecked\n\t) => {\n\t\tif ( checked ) {\n\t\t\t_setUnselectedEntities(\n\t\t\t\tunselectedEntities.filter(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind !== kind ||\n\t\t\t\t\t\telt.name !== name ||\n\t\t\t\t\t\telt.key !== key ||\n\t\t\t\t\t\telt.property !== property\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\t_setUnselectedEntities( [\n\t\t\t\t...unselectedEntities,\n\t\t\t\t{ kind, name, key, property },\n\t\t\t] );\n\t\t}\n\t};\n\n\tconst isDirty = dirtyEntityRecords.length - unselectedEntities.length > 0;\n\n\treturn {\n\t\tdirtyEntityRecords,\n\t\tisDirty,\n\t\tsetUnselectedEntities,\n\t\tunselectedEntities,\n\t};\n};\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKO,MAAMG,UAAU,GAAGA,CAAA,KAAM;EAC/B,MAAM;IAAEC,cAAc;IAAEC,SAAS;IAAEC;EAAiB,CAAC,GAAG,IAAAC,eAAS,EAC9DC,MAAM,IAAM;IACb,MAAM;MACLC,mCAAmC;MACnCC,oBAAoB;MACpBC;IACD,CAAC,GAAGH,MAAM,CAAEI,eAAU,CAAC;IAEvB,OAAO;MACNR,cAAc,EAAEK,mCAAmC,CAAC,CAAC;MACrDJ,SAAS,EAAEK,oBAAoB,CAAE,MAAM,EAAE,MAAO,CAAC;MACjDJ,gBAAgB,EAAEK,eAAe,CAAE,MAAM,EAAE,MAAO;IACnD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAME,kBAAkB,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAAA,IAAAC,qBAAA;IACzC;IACA,MAAMC,yBAAyB,GAAGZ,cAAc,CAACa,MAAM,CACpDC,MAAM,IAAM,EAAIA,MAAM,CAACC,IAAI,KAAK,MAAM,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,CACnE,CAAC;IAED,MAAMC,gBAAgB,IAAAN,qBAAA,GAAGT,gBAAgB,EAAEgB,IAAI,EAAEC,MAAM,cAAAR,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;IAC7D,MAAMS,kBAAkB,GAAG,EAAE;IAC7B,KAAM,MAAMC,QAAQ,IAAIpB,SAAS,EAAG;MACnCmB,kBAAkB,CAACE,IAAI,CAAE;QACxBP,IAAI,EAAE,MAAM;QACZC,IAAI,EAAE,MAAM;QACZO,KAAK,EAAEN,gBAAgB,CAAEI,QAAQ,CAAE,IAAIA,QAAQ;QAC/CA;MACD,CAAE,CAAC;IACJ;IAEA,OAAO,CAAE,GAAGT,yBAAyB,EAAE,GAAGQ,kBAAkB,CAAE;EAC/D,CAAC,EAAE,CAAEpB,cAAc,EAAEC,SAAS,EAAEC,gBAAgB,CAAG,CAAC;;EAEpD;EACA,MAAM,CAAEsB,kBAAkB,EAAEC,sBAAsB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,EAAG,CAAC;EAErE,MAAMC,qBAAqB,GAAGA,CAC7B;IAAEZ,IAAI;IAAEC,IAAI;IAAEY,GAAG;IAAEP;EAAS,CAAC,EAC7BQ,OAAO,KACH;IACJ,IAAKA,OAAO,EAAG;MACdJ,sBAAsB,CACrBD,kBAAkB,CAACX,MAAM,CACtBiB,GAAG,IACJA,GAAG,CAACf,IAAI,KAAKA,IAAI,IACjBe,GAAG,CAACd,IAAI,KAAKA,IAAI,IACjBc,GAAG,CAACF,GAAG,KAAKA,GAAG,IACfE,GAAG,CAACT,QAAQ,KAAKA,QACnB,CACD,CAAC;IACF,CAAC,MAAM;MACNI,sBAAsB,CAAE,CACvB,GAAGD,kBAAkB,EACrB;QAAET,IAAI;QAAEC,IAAI;QAAEY,GAAG;QAAEP;MAAS,CAAC,CAC5B,CAAC;IACJ;EACD,CAAC;EAED,MAAMU,OAAO,GAAGtB,kBAAkB,CAACuB,MAAM,GAAGR,kBAAkB,CAACQ,MAAM,GAAG,CAAC;EAEzE,OAAO;IACNvB,kBAAkB;IAClBsB,OAAO;IACPJ,qBAAqB;IACrBH;EACD,CAAC;AACF,CAAC;AAACS,OAAA,CAAAlC,UAAA,GAAAA,UAAA"}
|
|
@@ -33,11 +33,13 @@ function identity(values) {
|
|
|
33
33
|
return values;
|
|
34
34
|
}
|
|
35
35
|
function EntitiesSavedStates({
|
|
36
|
-
close
|
|
36
|
+
close,
|
|
37
|
+
renderDialog = undefined
|
|
37
38
|
}) {
|
|
38
39
|
const isDirtyProps = (0, _useIsDirty.useIsDirty)();
|
|
39
40
|
return (0, _react.createElement)(EntitiesSavedStatesExtensible, {
|
|
40
41
|
close: close,
|
|
42
|
+
renderDialog: renderDialog,
|
|
41
43
|
...isDirtyProps
|
|
42
44
|
});
|
|
43
45
|
}
|
|
@@ -47,6 +49,7 @@ function EntitiesSavedStatesExtensible({
|
|
|
47
49
|
onSave = identity,
|
|
48
50
|
saveEnabled: saveEnabledProp = undefined,
|
|
49
51
|
saveLabel = (0, _i18n.__)('Save'),
|
|
52
|
+
renderDialog = undefined,
|
|
50
53
|
dirtyEntityRecords,
|
|
51
54
|
isDirty,
|
|
52
55
|
setUnselectedEntities,
|
|
@@ -157,10 +160,15 @@ function EntitiesSavedStatesExtensible({
|
|
|
157
160
|
const [saveDialogRef, saveDialogProps] = (0, _compose.__experimentalUseDialog)({
|
|
158
161
|
onClose: () => dismissPanel()
|
|
159
162
|
});
|
|
163
|
+
const dialogLabel = (0, _compose.useInstanceId)(EntitiesSavedStatesExtensible, 'label');
|
|
164
|
+
const dialogDescription = (0, _compose.useInstanceId)(EntitiesSavedStatesExtensible, 'description');
|
|
160
165
|
return (0, _react.createElement)("div", {
|
|
161
166
|
ref: saveDialogRef,
|
|
162
167
|
...saveDialogProps,
|
|
163
|
-
className: "entities-saved-states__panel"
|
|
168
|
+
className: "entities-saved-states__panel",
|
|
169
|
+
role: renderDialog ? 'dialog' : undefined,
|
|
170
|
+
"aria-labelledby": renderDialog ? dialogLabel : undefined,
|
|
171
|
+
"aria-describedby": renderDialog ? dialogDescription : undefined
|
|
164
172
|
}, (0, _react.createElement)(_components.Flex, {
|
|
165
173
|
className: "entities-saved-states__panel-header",
|
|
166
174
|
gap: 2
|
|
@@ -170,6 +178,7 @@ function EntitiesSavedStatesExtensible({
|
|
|
170
178
|
ref: saveButtonRef,
|
|
171
179
|
variant: "primary",
|
|
172
180
|
disabled: !saveEnabled,
|
|
181
|
+
__experimentalIsFocusable: true,
|
|
173
182
|
onClick: saveCheckedEntities,
|
|
174
183
|
className: "editor-entities-saved-states__save-button"
|
|
175
184
|
}, saveLabel), (0, _react.createElement)(_components.FlexItem, {
|
|
@@ -179,9 +188,14 @@ function EntitiesSavedStatesExtensible({
|
|
|
179
188
|
onClick: dismissPanel
|
|
180
189
|
}, (0, _i18n.__)('Cancel'))), (0, _react.createElement)("div", {
|
|
181
190
|
className: "entities-saved-states__text-prompt"
|
|
191
|
+
}, (0, _react.createElement)("div", {
|
|
192
|
+
className: "entities-saved-states__text-prompt--header-wrapper",
|
|
193
|
+
id: renderDialog ? dialogLabel : undefined
|
|
182
194
|
}, (0, _react.createElement)("strong", {
|
|
183
195
|
className: "entities-saved-states__text-prompt--header"
|
|
184
|
-
}, (0, _i18n.__)('Are you ready to save?')), additionalPrompt, (0, _react.createElement)("p",
|
|
196
|
+
}, (0, _i18n.__)('Are you ready to save?')), additionalPrompt), (0, _react.createElement)("p", {
|
|
197
|
+
id: renderDialog ? dialogDescription : undefined
|
|
198
|
+
}, isDirty ? (0, _element.createInterpolateElement)((0, _i18n.sprintf)( /* translators: %d: number of site changes waiting to be saved. */
|
|
185
199
|
(0, _i18n._n)('There is <strong>%d site change</strong> waiting to be saved.', 'There are <strong>%d site changes</strong> waiting to be saved.', sortedPartitionedSavables.length), sortedPartitionedSavables.length), {
|
|
186
200
|
strong: (0, _react.createElement)("strong", null)
|
|
187
201
|
}) : (0, _i18n.__)('Select the items you want to save.'))), sortedPartitionedSavables.map(list => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_data","_element","_coreData","_blockEditor","_compose","_notices","_entityTypeList","_interopRequireDefault","_useIsDirty","PUBLISH_ON_SAVE_ENTITIES","kind","name","identity","values","EntitiesSavedStates","close","isDirtyProps","useIsDirty","_react","createElement","EntitiesSavedStatesExtensible","additionalPrompt","undefined","onSave","saveEnabled","saveEnabledProp","saveLabel","__","dirtyEntityRecords","isDirty","setUnselectedEntities","unselectedEntities","saveButtonRef","useRef","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","useDispatch","coreStore","__unstableMarkLastChangeAsPersistent","blockEditorStore","createSuccessNotice","createErrorNotice","removeNotice","noticesStore","partitionedSavables","reduce","acc","record","push","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","filter","Array","isArray","homeUrl","useSelect","select","getUnstableBase","home","saveCheckedEntities","saveNoticeId","entitiesToSave","key","property","some","elt","siteItemsToSave","pendingSavedRecords","forEach","typeToPublish","status","length","Promise","all","then","value","type","id","actions","label","url","catch","error","dismissPanel","useCallback","saveDialogRef","saveDialogProps","useDialog","onClose","ref","className","Flex","gap","FlexItem","isBlock","as","Button","variant","disabled","onClick","createInterpolateElement","sprintf","_n","strong","map","list","default"],"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\nimport { useIsDirty } from './hooks/use-is-dirty';\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nfunction identity( values ) {\n\treturn values;\n}\n\nexport default function EntitiesSavedStates( { close } ) {\n\tconst isDirtyProps = useIsDirty();\n\treturn (\n\t\t<EntitiesSavedStatesExtensible close={ close } { ...isDirtyProps } />\n\t);\n}\n\nexport function EntitiesSavedStatesExtensible( {\n\tadditionalPrompt = undefined,\n\tclose,\n\tonSave = identity,\n\tsaveEnabled: saveEnabledProp = undefined,\n\tsaveLabel = __( 'Save' ),\n\n\tdirtyEntityRecords,\n\tisDirty,\n\tsetUnselectedEntities,\n\tunselectedEntities,\n} ) {\n\tconst saveButtonRef = useRef();\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice, removeNotice } =\n\t\tuseDispatch( noticesStore );\n\n\t// To group entities by type.\n\tconst partitionedSavables = dirtyEntityRecords.reduce( ( acc, record ) => {\n\t\tconst { name } = record;\n\t\tif ( ! acc[ name ] ) {\n\t\t\tacc[ name ] = [];\n\t\t}\n\t\tacc[ name ].push( record );\n\t\treturn acc;\n\t}, {} );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\tconst saveEnabled = saveEnabledProp ?? isDirty;\n\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\n\tconst saveCheckedEntities = () => {\n\t\tconst saveNoticeId = 'site-editor-save-success';\n\t\tremoveNotice( saveNoticeId );\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! unselectedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === kind &&\n\t\t\t\t\t\telt.name === name &&\n\t\t\t\t\t\telt.key === key &&\n\t\t\t\t\t\telt.property === property\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\treturn onSave( values );\n\t\t\t} )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: saveNoticeId,\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View site' ),\n\t\t\t\t\t\t\t\turl: homeUrl,\n\t\t\t\t\t\t\t},\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\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t>\n\t\t\t<Flex className=\"entities-saved-states__panel-header\" gap={ 2 }>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={ ! saveEnabled }\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ saveLabel }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<strong className=\"entities-saved-states__text-prompt--header\">\n\t\t\t\t\t{ __( 'Are you ready to save?' ) }\n\t\t\t\t</strong>\n\t\t\t\t{ additionalPrompt }\n\t\t\t\t<p>\n\t\t\t\t\t{ isDirty\n\t\t\t\t\t\t? createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: number of site changes waiting to be saved. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'There is <strong>%d site change</strong> waiting to be saved.',\n\t\t\t\t\t\t\t\t\t\t'There are <strong>%d site changes</strong> waiting to be saved.',\n\t\t\t\t\t\t\t\t\t\tsortedPartitionedSavables.length\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsortedPartitionedSavables.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{ strong: <strong /> }\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Select the items you want to save.' ) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAKA,IAAAQ,eAAA,GAAAC,sBAAA,CAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AApBA;AACA;AACA;;AAcA;AACA;AACA;;AAIA,MAAMW,wBAAwB,GAAG,CAChC;EACCC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE;AACP,CAAC,CACD;AAED,SAASC,QAAQA,CAAEC,MAAM,EAAG;EAC3B,OAAOA,MAAM;AACd;AAEe,SAASC,mBAAmBA,CAAE;EAAEC;AAAM,CAAC,EAAG;EACxD,MAAMC,YAAY,GAAG,IAAAC,sBAAU,EAAC,CAAC;EACjC,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACC,6BAA6B;IAACL,KAAK,EAAGA,KAAO;IAAA,GAAMC;EAAY,CAAI,CAAC;AAEvE;AAEO,SAASI,6BAA6BA,CAAE;EAC9CC,gBAAgB,GAAGC,SAAS;EAC5BP,KAAK;EACLQ,MAAM,GAAGX,QAAQ;EACjBY,WAAW,EAAEC,eAAe,GAAGH,SAAS;EACxCI,SAAS,GAAG,IAAAC,QAAE,EAAE,MAAO,CAAC;EAExBC,kBAAkB;EAClBC,OAAO;EACPC,qBAAqB;EACrBC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,IAAAC,eAAM,EAAC,CAAC;EAC9B,MAAM;IACLC,gBAAgB;IAChBC,sBAAsB;IACtBC,sCAAsC,EAAEC;EACzC,CAAC,GAAG,IAAAC,iBAAW,EAAEC,eAAU,CAAC;EAE5B,MAAM;IAAEC;EAAqC,CAAC,GAC7C,IAAAF,iBAAW,EAAEG,kBAAiB,CAAC;EAEhC,MAAM;IAAEC,mBAAmB;IAAEC,iBAAiB;IAAEC;EAAa,CAAC,GAC7D,IAAAN,iBAAW,EAAEO,cAAa,CAAC;;EAE5B;EACA,MAAMC,mBAAmB,GAAGlB,kBAAkB,CAACmB,MAAM,CAAE,CAAEC,GAAG,EAAEC,MAAM,KAAM;IACzE,MAAM;MAAEtC;IAAK,CAAC,GAAGsC,MAAM;IACvB,IAAK,CAAED,GAAG,CAAErC,IAAI,CAAE,EAAG;MACpBqC,GAAG,CAAErC,IAAI,CAAE,GAAG,EAAE;IACjB;IACAqC,GAAG,CAAErC,IAAI,CAAE,CAACuC,IAAI,CAAED,MAAO,CAAC;IAC1B,OAAOD,GAAG;EACX,CAAC,EAAE,CAAC,CAAE,CAAC;;EAEP;EACA,MAAM;IACLG,IAAI,EAAEC,YAAY;IAClBC,WAAW,EAAEC,gBAAgB;IAC7BC,gBAAgB,EAAEC,oBAAoB;IACtC,GAAGC;EACJ,CAAC,GAAGX,mBAAmB;EACvB,MAAMY,yBAAyB,GAAG,CACjCN,YAAY,EACZE,gBAAgB,EAChBE,oBAAoB,EACpB,GAAGG,MAAM,CAAC9C,MAAM,CAAE4C,eAAgB,CAAC,CACnC,CAACG,MAAM,CAAEC,KAAK,CAACC,OAAQ,CAAC;EAEzB,MAAMtC,WAAW,GAAGC,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAII,OAAO;EAE9C,MAAM;IAAEkC;EAAQ,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5C,MAAM;MACLC,eAAe,CAAE;IAClB,CAAC,GAAGD,MAAM,CAAE1B,eAAU,CAAC;IACvB,OAAO;MACNwB,OAAO,EAAEG,eAAe,CAAC,CAAC,EAAEC;IAC7B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;IACjC,MAAMC,YAAY,GAAG,0BAA0B;IAC/CzB,YAAY,CAAEyB,YAAa,CAAC;IAC5B,MAAMC,cAAc,GAAG1C,kBAAkB,CAACgC,MAAM,CAC/C,CAAE;MAAElD,IAAI;MAAEC,IAAI;MAAE4D,GAAG;MAAEC;IAAS,CAAC,KAAM;MACpC,OAAO,CAAEzC,kBAAkB,CAAC0C,IAAI,CAC7BC,GAAG,IACJA,GAAG,CAAChE,IAAI,KAAKA,IAAI,IACjBgE,GAAG,CAAC/D,IAAI,KAAKA,IAAI,IACjB+D,GAAG,CAACH,GAAG,KAAKA,GAAG,IACfG,GAAG,CAACF,QAAQ,KAAKA,QACnB,CAAC;IACF,CACD,CAAC;IAEDzD,KAAK,CAAEuD,cAAe,CAAC;IAEvB,MAAMK,eAAe,GAAG,EAAE;IAC1B,MAAMC,mBAAmB,GAAG,EAAE;IAC9BN,cAAc,CAACO,OAAO,CAAE,CAAE;MAAEnE,IAAI;MAAEC,IAAI;MAAE4D,GAAG;MAAEC;IAAS,CAAC,KAAM;MAC5D,IAAK,MAAM,KAAK9D,IAAI,IAAI,MAAM,KAAKC,IAAI,EAAG;QACzCgE,eAAe,CAACzB,IAAI,CAAEsB,QAAS,CAAC;MACjC,CAAC,MAAM;QACN,IACC/D,wBAAwB,CAACgE,IAAI,CAC1BK,aAAa,IACdA,aAAa,CAACpE,IAAI,KAAKA,IAAI,IAC3BoE,aAAa,CAACnE,IAAI,KAAKA,IACzB,CAAC,EACA;UACDuB,gBAAgB,CAAExB,IAAI,EAAEC,IAAI,EAAE4D,GAAG,EAAE;YAAEQ,MAAM,EAAE;UAAU,CAAE,CAAC;QAC3D;QAEAH,mBAAmB,CAAC1B,IAAI,CACvBf,sBAAsB,CAAEzB,IAAI,EAAEC,IAAI,EAAE4D,GAAI,CACzC,CAAC;MACF;IACD,CAAE,CAAC;IACH,IAAKI,eAAe,CAACK,MAAM,EAAG;MAC7BJ,mBAAmB,CAAC1B,IAAI,CACvBb,wBAAwB,CACvB,MAAM,EACN,MAAM,EACNf,SAAS,EACTqD,eACD,CACD,CAAC;IACF;IAEAnC,oCAAoC,CAAC,CAAC;IAEtCyC,OAAO,CAACC,GAAG,CAAEN,mBAAoB,CAAC,CAChCO,IAAI,CAAItE,MAAM,IAAM;MACpB,OAAOU,MAAM,CAAEV,MAAO,CAAC;IACxB,CAAE,CAAC,CACFsE,IAAI,CAAItE,MAAM,IAAM;MACpB,IACCA,MAAM,CAAC4D,IAAI,CAAIW,KAAK,IAAM,OAAOA,KAAK,KAAK,WAAY,CAAC,EACvD;QACDzC,iBAAiB,CAAE,IAAAhB,QAAE,EAAE,gBAAiB,CAAE,CAAC;MAC5C,CAAC,MAAM;QACNe,mBAAmB,CAAE,IAAAf,QAAE,EAAE,eAAgB,CAAC,EAAE;UAC3C0D,IAAI,EAAE,UAAU;UAChBC,EAAE,EAAEjB,YAAY;UAChBkB,OAAO,EAAE,CACR;YACCC,KAAK,EAAE,IAAA7D,QAAE,EAAE,WAAY,CAAC;YACxB8D,GAAG,EAAE1B;UACN,CAAC;QAEH,CAAE,CAAC;MACJ;IACD,CAAE,CAAC,CACF2B,KAAK,CAAIC,KAAK,IACdhD,iBAAiB,CAAG,GAAG,IAAAhB,QAAE,EAAE,gBAAiB,CAAG,IAAIgE,KAAO,EAAE,CAC7D,CAAC;EACH,CAAC;;EAED;EACA;EACA,MAAMC,YAAY,GAAG,IAAAC,oBAAW,EAAE,MAAM9E,KAAK,CAAC,CAAC,EAAE,CAAEA,KAAK,CAAG,CAAC;EAE5D,MAAM,CAAE+E,aAAa,EAAEC,eAAe,CAAE,GAAG,IAAAC,gCAAS,EAAE;IACrDC,OAAO,EAAEA,CAAA,KAAML,YAAY,CAAC;EAC7B,CAAE,CAAC;EAEH,OACC,IAAA1E,MAAA,CAAAC,aAAA;IACC+E,GAAG,EAAGJ,aAAe;IAAA,GAChBC,eAAe;IACpBI,SAAS,EAAC;EAA8B,GAExC,IAAAjF,MAAA,CAAAC,aAAA,EAACtB,WAAA,CAAAuG,IAAI;IAACD,SAAS,EAAC,qCAAqC;IAACE,GAAG,EAAG;EAAG,GAC9D,IAAAnF,MAAA,CAAAC,aAAA,EAACtB,WAAA,CAAAyG,QAAQ;IACRC,OAAO;IACPC,EAAE,EAAGC,kBAAQ;IACbP,GAAG,EAAGlE,aAAe;IACrB0E,OAAO,EAAC,SAAS;IACjBC,QAAQ,EAAG,CAAEnF,WAAa;IAC1BoF,OAAO,EAAGxC,mBAAqB;IAC/B+B,SAAS,EAAC;EAA2C,GAEnDzE,SACO,CAAC,EACX,IAAAR,MAAA,CAAAC,aAAA,EAACtB,WAAA,CAAAyG,QAAQ;IACRC,OAAO;IACPC,EAAE,EAAGC,kBAAQ;IACbC,OAAO,EAAC,WAAW;IACnBE,OAAO,EAAGhB;EAAc,GAEtB,IAAAjE,QAAE,EAAE,QAAS,CACN,CACL,CAAC,EAEP,IAAAT,MAAA,CAAAC,aAAA;IAAKgF,SAAS,EAAC;EAAoC,GAClD,IAAAjF,MAAA,CAAAC,aAAA;IAAQgF,SAAS,EAAC;EAA4C,GAC3D,IAAAxE,QAAE,EAAE,wBAAyB,CACxB,CAAC,EACPN,gBAAgB,EAClB,IAAAH,MAAA,CAAAC,aAAA,aACGU,OAAO,GACN,IAAAgF,iCAAwB,EACxB,IAAAC,aAAO,GACN;EACA,IAAAC,QAAE,EACD,+DAA+D,EAC/D,iEAAiE,EACjErD,yBAAyB,CAACsB,MAC3B,CAAC,EACDtB,yBAAyB,CAACsB,MAC3B,CAAC,EACD;IAAEgC,MAAM,EAAE,IAAA9F,MAAA,CAAAC,aAAA,gBAAS;EAAE,CACrB,CAAC,GACD,IAAAQ,QAAE,EAAE,oCAAqC,CAC1C,CACC,CAAC,EAEJ+B,yBAAyB,CAACuD,GAAG,CAAIC,IAAI,IAAM;IAC5C,OACC,IAAAhG,MAAA,CAAAC,aAAA,EAACb,eAAA,CAAA6G,OAAc;MACd5C,GAAG,EAAG2C,IAAI,CAAE,CAAC,CAAE,CAACvG,IAAM;MACtBuG,IAAI,EAAGA,IAAM;MACbnF,kBAAkB,EAAGA,kBAAoB;MACzCD,qBAAqB,EAAGA;IAAuB,CAC/C,CAAC;EAEJ,CAAE,CACE,CAAC;AAER"}
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_data","_element","_coreData","_blockEditor","_compose","_notices","_entityTypeList","_interopRequireDefault","_useIsDirty","PUBLISH_ON_SAVE_ENTITIES","kind","name","identity","values","EntitiesSavedStates","close","renderDialog","undefined","isDirtyProps","useIsDirty","_react","createElement","EntitiesSavedStatesExtensible","additionalPrompt","onSave","saveEnabled","saveEnabledProp","saveLabel","__","dirtyEntityRecords","isDirty","setUnselectedEntities","unselectedEntities","saveButtonRef","useRef","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","useDispatch","coreStore","__unstableMarkLastChangeAsPersistent","blockEditorStore","createSuccessNotice","createErrorNotice","removeNotice","noticesStore","partitionedSavables","reduce","acc","record","push","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","filter","Array","isArray","homeUrl","useSelect","select","getUnstableBase","home","saveCheckedEntities","saveNoticeId","entitiesToSave","key","property","some","elt","siteItemsToSave","pendingSavedRecords","forEach","typeToPublish","status","length","Promise","all","then","value","type","id","actions","label","url","catch","error","dismissPanel","useCallback","saveDialogRef","saveDialogProps","useDialog","onClose","dialogLabel","useInstanceId","dialogDescription","ref","className","role","Flex","gap","FlexItem","isBlock","as","Button","variant","disabled","__experimentalIsFocusable","onClick","createInterpolateElement","sprintf","_n","strong","map","list","default"],"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\t__experimentalUseDialog as useDialog,\n\tuseInstanceId,\n} from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\nimport { useIsDirty } from './hooks/use-is-dirty';\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nfunction identity( values ) {\n\treturn values;\n}\n\nexport default function EntitiesSavedStates( {\n\tclose,\n\trenderDialog = undefined,\n} ) {\n\tconst isDirtyProps = useIsDirty();\n\treturn (\n\t\t<EntitiesSavedStatesExtensible\n\t\t\tclose={ close }\n\t\t\trenderDialog={ renderDialog }\n\t\t\t{ ...isDirtyProps }\n\t\t/>\n\t);\n}\n\nexport function EntitiesSavedStatesExtensible( {\n\tadditionalPrompt = undefined,\n\tclose,\n\tonSave = identity,\n\tsaveEnabled: saveEnabledProp = undefined,\n\tsaveLabel = __( 'Save' ),\n\trenderDialog = undefined,\n\n\tdirtyEntityRecords,\n\tisDirty,\n\tsetUnselectedEntities,\n\tunselectedEntities,\n} ) {\n\tconst saveButtonRef = useRef();\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice, removeNotice } =\n\t\tuseDispatch( noticesStore );\n\n\t// To group entities by type.\n\tconst partitionedSavables = dirtyEntityRecords.reduce( ( acc, record ) => {\n\t\tconst { name } = record;\n\t\tif ( ! acc[ name ] ) {\n\t\t\tacc[ name ] = [];\n\t\t}\n\t\tacc[ name ].push( record );\n\t\treturn acc;\n\t}, {} );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\tconst saveEnabled = saveEnabledProp ?? isDirty;\n\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\n\tconst saveCheckedEntities = () => {\n\t\tconst saveNoticeId = 'site-editor-save-success';\n\t\tremoveNotice( saveNoticeId );\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! unselectedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === kind &&\n\t\t\t\t\t\telt.name === name &&\n\t\t\t\t\t\telt.key === key &&\n\t\t\t\t\t\telt.property === property\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\treturn onSave( values );\n\t\t\t} )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: saveNoticeId,\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View site' ),\n\t\t\t\t\t\t\t\turl: homeUrl,\n\t\t\t\t\t\t\t},\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\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\tconst dialogLabel = useInstanceId( EntitiesSavedStatesExtensible, 'label' );\n\tconst dialogDescription = useInstanceId(\n\t\tEntitiesSavedStatesExtensible,\n\t\t'description'\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t\trole={ renderDialog ? 'dialog' : undefined }\n\t\t\taria-labelledby={ renderDialog ? dialogLabel : undefined }\n\t\t\taria-describedby={ renderDialog ? dialogDescription : undefined }\n\t\t>\n\t\t\t<Flex className=\"entities-saved-states__panel-header\" gap={ 2 }>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={ ! saveEnabled }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ saveLabel }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"entities-saved-states__text-prompt--header-wrapper\"\n\t\t\t\t\tid={ renderDialog ? dialogLabel : undefined }\n\t\t\t\t>\n\t\t\t\t\t<strong className=\"entities-saved-states__text-prompt--header\">\n\t\t\t\t\t\t{ __( 'Are you ready to save?' ) }\n\t\t\t\t\t</strong>\n\t\t\t\t\t{ additionalPrompt }\n\t\t\t\t</div>\n\t\t\t\t<p id={ renderDialog ? dialogDescription : undefined }>\n\t\t\t\t\t{ isDirty\n\t\t\t\t\t\t? createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: number of site changes waiting to be saved. */\n\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t'There is <strong>%d site change</strong> waiting to be saved.',\n\t\t\t\t\t\t\t\t\t\t'There are <strong>%d site changes</strong> waiting to be saved.',\n\t\t\t\t\t\t\t\t\t\tsortedPartitionedSavables.length\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tsortedPartitionedSavables.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{ strong: <strong /> }\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Select the items you want to save.' ) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAIA,IAAAO,QAAA,GAAAP,OAAA;AAKA,IAAAQ,eAAA,GAAAC,sBAAA,CAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AAvBA;AACA;AACA;;AAiBA;AACA;AACA;;AAIA,MAAMW,wBAAwB,GAAG,CAChC;EACCC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE;AACP,CAAC,CACD;AAED,SAASC,QAAQA,CAAEC,MAAM,EAAG;EAC3B,OAAOA,MAAM;AACd;AAEe,SAASC,mBAAmBA,CAAE;EAC5CC,KAAK;EACLC,YAAY,GAAGC;AAChB,CAAC,EAAG;EACH,MAAMC,YAAY,GAAG,IAAAC,sBAAU,EAAC,CAAC;EACjC,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACC,6BAA6B;IAC7BP,KAAK,EAAGA,KAAO;IACfC,YAAY,EAAGA,YAAc;IAAA,GACxBE;EAAY,CACjB,CAAC;AAEJ;AAEO,SAASI,6BAA6BA,CAAE;EAC9CC,gBAAgB,GAAGN,SAAS;EAC5BF,KAAK;EACLS,MAAM,GAAGZ,QAAQ;EACjBa,WAAW,EAAEC,eAAe,GAAGT,SAAS;EACxCU,SAAS,GAAG,IAAAC,QAAE,EAAE,MAAO,CAAC;EACxBZ,YAAY,GAAGC,SAAS;EAExBY,kBAAkB;EAClBC,OAAO;EACPC,qBAAqB;EACrBC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,IAAAC,eAAM,EAAC,CAAC;EAC9B,MAAM;IACLC,gBAAgB;IAChBC,sBAAsB;IACtBC,sCAAsC,EAAEC;EACzC,CAAC,GAAG,IAAAC,iBAAW,EAAEC,eAAU,CAAC;EAE5B,MAAM;IAAEC;EAAqC,CAAC,GAC7C,IAAAF,iBAAW,EAAEG,kBAAiB,CAAC;EAEhC,MAAM;IAAEC,mBAAmB;IAAEC,iBAAiB;IAAEC;EAAa,CAAC,GAC7D,IAAAN,iBAAW,EAAEO,cAAa,CAAC;;EAE5B;EACA,MAAMC,mBAAmB,GAAGlB,kBAAkB,CAACmB,MAAM,CAAE,CAAEC,GAAG,EAAEC,MAAM,KAAM;IACzE,MAAM;MAAEvC;IAAK,CAAC,GAAGuC,MAAM;IACvB,IAAK,CAAED,GAAG,CAAEtC,IAAI,CAAE,EAAG;MACpBsC,GAAG,CAAEtC,IAAI,CAAE,GAAG,EAAE;IACjB;IACAsC,GAAG,CAAEtC,IAAI,CAAE,CAACwC,IAAI,CAAED,MAAO,CAAC;IAC1B,OAAOD,GAAG;EACX,CAAC,EAAE,CAAC,CAAE,CAAC;;EAEP;EACA,MAAM;IACLG,IAAI,EAAEC,YAAY;IAClBC,WAAW,EAAEC,gBAAgB;IAC7BC,gBAAgB,EAAEC,oBAAoB;IACtC,GAAGC;EACJ,CAAC,GAAGX,mBAAmB;EACvB,MAAMY,yBAAyB,GAAG,CACjCN,YAAY,EACZE,gBAAgB,EAChBE,oBAAoB,EACpB,GAAGG,MAAM,CAAC/C,MAAM,CAAE6C,eAAgB,CAAC,CACnC,CAACG,MAAM,CAAEC,KAAK,CAACC,OAAQ,CAAC;EAEzB,MAAMtC,WAAW,GAAGC,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAII,OAAO;EAE9C,MAAM;IAAEkC;EAAQ,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5C,MAAM;MACLC,eAAe,CAAE;IAClB,CAAC,GAAGD,MAAM,CAAE1B,eAAU,CAAC;IACvB,OAAO;MACNwB,OAAO,EAAEG,eAAe,CAAC,CAAC,EAAEC;IAC7B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;IACjC,MAAMC,YAAY,GAAG,0BAA0B;IAC/CzB,YAAY,CAAEyB,YAAa,CAAC;IAC5B,MAAMC,cAAc,GAAG1C,kBAAkB,CAACgC,MAAM,CAC/C,CAAE;MAAEnD,IAAI;MAAEC,IAAI;MAAE6D,GAAG;MAAEC;IAAS,CAAC,KAAM;MACpC,OAAO,CAAEzC,kBAAkB,CAAC0C,IAAI,CAC7BC,GAAG,IACJA,GAAG,CAACjE,IAAI,KAAKA,IAAI,IACjBiE,GAAG,CAAChE,IAAI,KAAKA,IAAI,IACjBgE,GAAG,CAACH,GAAG,KAAKA,GAAG,IACfG,GAAG,CAACF,QAAQ,KAAKA,QACnB,CAAC;IACF,CACD,CAAC;IAED1D,KAAK,CAAEwD,cAAe,CAAC;IAEvB,MAAMK,eAAe,GAAG,EAAE;IAC1B,MAAMC,mBAAmB,GAAG,EAAE;IAC9BN,cAAc,CAACO,OAAO,CAAE,CAAE;MAAEpE,IAAI;MAAEC,IAAI;MAAE6D,GAAG;MAAEC;IAAS,CAAC,KAAM;MAC5D,IAAK,MAAM,KAAK/D,IAAI,IAAI,MAAM,KAAKC,IAAI,EAAG;QACzCiE,eAAe,CAACzB,IAAI,CAAEsB,QAAS,CAAC;MACjC,CAAC,MAAM;QACN,IACChE,wBAAwB,CAACiE,IAAI,CAC1BK,aAAa,IACdA,aAAa,CAACrE,IAAI,KAAKA,IAAI,IAC3BqE,aAAa,CAACpE,IAAI,KAAKA,IACzB,CAAC,EACA;UACDwB,gBAAgB,CAAEzB,IAAI,EAAEC,IAAI,EAAE6D,GAAG,EAAE;YAAEQ,MAAM,EAAE;UAAU,CAAE,CAAC;QAC3D;QAEAH,mBAAmB,CAAC1B,IAAI,CACvBf,sBAAsB,CAAE1B,IAAI,EAAEC,IAAI,EAAE6D,GAAI,CACzC,CAAC;MACF;IACD,CAAE,CAAC;IACH,IAAKI,eAAe,CAACK,MAAM,EAAG;MAC7BJ,mBAAmB,CAAC1B,IAAI,CACvBb,wBAAwB,CACvB,MAAM,EACN,MAAM,EACNrB,SAAS,EACT2D,eACD,CACD,CAAC;IACF;IAEAnC,oCAAoC,CAAC,CAAC;IAEtCyC,OAAO,CAACC,GAAG,CAAEN,mBAAoB,CAAC,CAChCO,IAAI,CAAIvE,MAAM,IAAM;MACpB,OAAOW,MAAM,CAAEX,MAAO,CAAC;IACxB,CAAE,CAAC,CACFuE,IAAI,CAAIvE,MAAM,IAAM;MACpB,IACCA,MAAM,CAAC6D,IAAI,CAAIW,KAAK,IAAM,OAAOA,KAAK,KAAK,WAAY,CAAC,EACvD;QACDzC,iBAAiB,CAAE,IAAAhB,QAAE,EAAE,gBAAiB,CAAE,CAAC;MAC5C,CAAC,MAAM;QACNe,mBAAmB,CAAE,IAAAf,QAAE,EAAE,eAAgB,CAAC,EAAE;UAC3C0D,IAAI,EAAE,UAAU;UAChBC,EAAE,EAAEjB,YAAY;UAChBkB,OAAO,EAAE,CACR;YACCC,KAAK,EAAE,IAAA7D,QAAE,EAAE,WAAY,CAAC;YACxB8D,GAAG,EAAE1B;UACN,CAAC;QAEH,CAAE,CAAC;MACJ;IACD,CAAE,CAAC,CACF2B,KAAK,CAAIC,KAAK,IACdhD,iBAAiB,CAAG,GAAG,IAAAhB,QAAE,EAAE,gBAAiB,CAAG,IAAIgE,KAAO,EAAE,CAC7D,CAAC;EACH,CAAC;;EAED;EACA;EACA,MAAMC,YAAY,GAAG,IAAAC,oBAAW,EAAE,MAAM/E,KAAK,CAAC,CAAC,EAAE,CAAEA,KAAK,CAAG,CAAC;EAE5D,MAAM,CAAEgF,aAAa,EAAEC,eAAe,CAAE,GAAG,IAAAC,gCAAS,EAAE;IACrDC,OAAO,EAAEA,CAAA,KAAML,YAAY,CAAC;EAC7B,CAAE,CAAC;EACH,MAAMM,WAAW,GAAG,IAAAC,sBAAa,EAAE9E,6BAA6B,EAAE,OAAQ,CAAC;EAC3E,MAAM+E,iBAAiB,GAAG,IAAAD,sBAAa,EACtC9E,6BAA6B,EAC7B,aACD,CAAC;EAED,OACC,IAAAF,MAAA,CAAAC,aAAA;IACCiF,GAAG,EAAGP,aAAe;IAAA,GAChBC,eAAe;IACpBO,SAAS,EAAC,8BAA8B;IACxCC,IAAI,EAAGxF,YAAY,GAAG,QAAQ,GAAGC,SAAW;IAC5C,mBAAkBD,YAAY,GAAGmF,WAAW,GAAGlF,SAAW;IAC1D,oBAAmBD,YAAY,GAAGqF,iBAAiB,GAAGpF;EAAW,GAEjE,IAAAG,MAAA,CAAAC,aAAA,EAACxB,WAAA,CAAA4G,IAAI;IAACF,SAAS,EAAC,qCAAqC;IAACG,GAAG,EAAG;EAAG,GAC9D,IAAAtF,MAAA,CAAAC,aAAA,EAACxB,WAAA,CAAA8G,QAAQ;IACRC,OAAO;IACPC,EAAE,EAAGC,kBAAQ;IACbR,GAAG,EAAGrE,aAAe;IACrB8E,OAAO,EAAC,SAAS;IACjBC,QAAQ,EAAG,CAAEvF,WAAa;IAC1BwF,yBAAyB;IACzBC,OAAO,EAAG7C,mBAAqB;IAC/BkC,SAAS,EAAC;EAA2C,GAEnD5E,SACO,CAAC,EACX,IAAAP,MAAA,CAAAC,aAAA,EAACxB,WAAA,CAAA8G,QAAQ;IACRC,OAAO;IACPC,EAAE,EAAGC,kBAAQ;IACbC,OAAO,EAAC,WAAW;IACnBG,OAAO,EAAGrB;EAAc,GAEtB,IAAAjE,QAAE,EAAE,QAAS,CACN,CACL,CAAC,EAEP,IAAAR,MAAA,CAAAC,aAAA;IAAKkF,SAAS,EAAC;EAAoC,GAClD,IAAAnF,MAAA,CAAAC,aAAA;IACCkF,SAAS,EAAC,oDAAoD;IAC9DhB,EAAE,EAAGvE,YAAY,GAAGmF,WAAW,GAAGlF;EAAW,GAE7C,IAAAG,MAAA,CAAAC,aAAA;IAAQkF,SAAS,EAAC;EAA4C,GAC3D,IAAA3E,QAAE,EAAE,wBAAyB,CACxB,CAAC,EACPL,gBACE,CAAC,EACN,IAAAH,MAAA,CAAAC,aAAA;IAAGkE,EAAE,EAAGvE,YAAY,GAAGqF,iBAAiB,GAAGpF;EAAW,GACnDa,OAAO,GACN,IAAAqF,iCAAwB,EACxB,IAAAC,aAAO,GACN;EACA,IAAAC,QAAE,EACD,+DAA+D,EAC/D,iEAAiE,EACjE1D,yBAAyB,CAACsB,MAC3B,CAAC,EACDtB,yBAAyB,CAACsB,MAC3B,CAAC,EACD;IAAEqC,MAAM,EAAE,IAAAlG,MAAA,CAAAC,aAAA,gBAAS;EAAE,CACrB,CAAC,GACD,IAAAO,QAAE,EAAE,oCAAqC,CAC1C,CACC,CAAC,EAEJ+B,yBAAyB,CAAC4D,GAAG,CAAIC,IAAI,IAAM;IAC5C,OACC,IAAApG,MAAA,CAAAC,aAAA,EAACf,eAAA,CAAAmH,OAAc;MACdjD,GAAG,EAAGgD,IAAI,CAAE,CAAC,CAAE,CAAC7G,IAAM;MACtB6G,IAAI,EAAGA,IAAM;MACbxF,kBAAkB,EAAGA,kBAAoB;MACzCD,qBAAqB,EAAGA;IAAuB,CAC/C,CAAC;EAEJ,CAAE,CACE,CAAC;AAER"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _reactNative = require("react-native");
|
|
10
|
+
var _clipboard = _interopRequireDefault(require("@react-native-clipboard/clipboard"));
|
|
11
|
+
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
12
|
+
var _element = require("@wordpress/element");
|
|
13
|
+
var _i18n = require("@wordpress/i18n");
|
|
14
|
+
var _data = require("@wordpress/data");
|
|
15
|
+
var _reactNativeBridge = require("@wordpress/react-native-bridge");
|
|
16
|
+
var _compose = require("@wordpress/compose");
|
|
17
|
+
var _icons = require("@wordpress/icons");
|
|
18
|
+
var _components = require("@wordpress/components");
|
|
19
|
+
var _store = require("../../store");
|
|
20
|
+
var _style = _interopRequireDefault(require("./style.scss"));
|
|
21
|
+
/**
|
|
22
|
+
* External dependencies
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* WordPress dependencies
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Internal dependencies
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
function getContent() {
|
|
34
|
+
try {
|
|
35
|
+
// While `select` in a component is generally discouraged, it is
|
|
36
|
+
// used here because it (a) reduces the chance of data loss in the
|
|
37
|
+
// case of additional errors by performing a direct retrieval and
|
|
38
|
+
// (b) avoids the performance cost associated with unnecessary
|
|
39
|
+
// content serialization throughout the lifetime of a non-erroring
|
|
40
|
+
// application.
|
|
41
|
+
return (0, _data.select)(_store.store).getEditedPostContent();
|
|
42
|
+
} catch (error) {}
|
|
43
|
+
}
|
|
44
|
+
function CopyButton({
|
|
45
|
+
text,
|
|
46
|
+
label,
|
|
47
|
+
accessibilityLabel,
|
|
48
|
+
accessibilityHint,
|
|
49
|
+
secondary = false
|
|
50
|
+
}) {
|
|
51
|
+
const containerStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default['copy-button__container'], _style.default['copy-button__container--dark']);
|
|
52
|
+
const containerSecondaryStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default['copy-button__container--secondary'], _style.default['copy-button__container--secondary-dark']);
|
|
53
|
+
const textStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default['copy-button__text'], _style.default['copy-button__text--dark']);
|
|
54
|
+
const textSecondaryStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default['copy-button__text--secondary'], _style.default['copy-button__text--secondary-dark']);
|
|
55
|
+
return (0, _react.createElement)(_reactNative.TouchableOpacity, {
|
|
56
|
+
activeOpacity: 0.5,
|
|
57
|
+
accessibilityLabel: accessibilityLabel,
|
|
58
|
+
style: [containerStyle, secondary && containerSecondaryStyle],
|
|
59
|
+
accessibilityRole: 'button',
|
|
60
|
+
accessibilityHint: accessibilityHint,
|
|
61
|
+
onPress: () => {
|
|
62
|
+
_clipboard.default.setString(typeof text === 'function' ? text() : text || '');
|
|
63
|
+
}
|
|
64
|
+
}, (0, _react.createElement)(_reactNative.Text, {
|
|
65
|
+
style: [textStyle, secondary && textSecondaryStyle]
|
|
66
|
+
}, label));
|
|
67
|
+
}
|
|
68
|
+
class ErrorBoundary extends _element.Component {
|
|
69
|
+
constructor() {
|
|
70
|
+
super(...arguments);
|
|
71
|
+
this.state = {
|
|
72
|
+
error: null
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
componentDidCatch(error) {
|
|
76
|
+
(0, _reactNativeBridge.logException)(error, {
|
|
77
|
+
context: {
|
|
78
|
+
component_stack: error.componentStack
|
|
79
|
+
},
|
|
80
|
+
isHandled: true,
|
|
81
|
+
handledBy: 'Editor-level Error Boundary'
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
static getDerivedStateFromError(error) {
|
|
85
|
+
return {
|
|
86
|
+
error
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
render() {
|
|
90
|
+
const {
|
|
91
|
+
error
|
|
92
|
+
} = this.state;
|
|
93
|
+
if (!error) {
|
|
94
|
+
return this.props.children;
|
|
95
|
+
}
|
|
96
|
+
const {
|
|
97
|
+
getStylesFromColorScheme
|
|
98
|
+
} = this.props;
|
|
99
|
+
const iconContainerStyle = getStylesFromColorScheme(_style.default['error-boundary__icon-container'], _style.default['error-boundary__icon-container--dark']);
|
|
100
|
+
const titleStyle = getStylesFromColorScheme(_style.default['error-boundary__title'], _style.default['error-boundary__title--dark']);
|
|
101
|
+
const messageStyle = getStylesFromColorScheme(_style.default['error-boundary__message'], _style.default['error-boundary__message--dark']);
|
|
102
|
+
return (0, _react.createElement)(_reactNativeSafeAreaContext.SafeAreaView, null, (0, _react.createElement)(_reactNative.ScrollView, {
|
|
103
|
+
style: _style.default['error-boundary__scroll'],
|
|
104
|
+
contentContainerStyle: _style.default['error-boundary__scroll-container']
|
|
105
|
+
}, (0, _react.createElement)(_reactNative.View, {
|
|
106
|
+
style: _style.default['error-boundary__container']
|
|
107
|
+
}, (0, _react.createElement)(_reactNative.View, {
|
|
108
|
+
style: iconContainerStyle
|
|
109
|
+
}, (0, _react.createElement)(_components.Icon, {
|
|
110
|
+
icon: _icons.warning,
|
|
111
|
+
..._style.default['error-boundary__icon']
|
|
112
|
+
})), (0, _react.createElement)(_reactNative.Text, {
|
|
113
|
+
style: titleStyle
|
|
114
|
+
}, (0, _i18n.__)('The editor has encountered an unexpected error')), (0, _react.createElement)(_reactNative.Text, {
|
|
115
|
+
style: messageStyle
|
|
116
|
+
}, (0, _i18n.__)('You can copy your post text in case your content is impacted. Copy error details to debug and share with support.')), (0, _react.createElement)(_reactNative.View, {
|
|
117
|
+
style: _style.default['error-boundary__actions-container']
|
|
118
|
+
}, (0, _react.createElement)(CopyButton, {
|
|
119
|
+
label: (0, _i18n.__)('Copy post text'),
|
|
120
|
+
accessibilityLabel: (0, _i18n.__)('Button to copy post text'),
|
|
121
|
+
accessibilityHint: (0, _i18n.__)('Tap here to copy post text'),
|
|
122
|
+
text: getContent
|
|
123
|
+
}), (0, _react.createElement)(CopyButton, {
|
|
124
|
+
label: (0, _i18n.__)('Copy error details'),
|
|
125
|
+
accessibilityLabel: (0, _i18n.__)('Button to copy error details'),
|
|
126
|
+
accessibilityHint: (0, _i18n.__)('Tap here to copy error details'),
|
|
127
|
+
text: error.stack,
|
|
128
|
+
secondary: true
|
|
129
|
+
})))));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
var _default = exports.default = (0, _compose.withPreferredColorScheme)(ErrorBoundary);
|
|
133
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_clipboard","_interopRequireDefault","_reactNativeSafeAreaContext","_element","_i18n","_data","_reactNativeBridge","_compose","_icons","_components","_store","_style","getContent","select","editorStore","getEditedPostContent","error","CopyButton","text","label","accessibilityLabel","accessibilityHint","secondary","containerStyle","usePreferredColorSchemeStyle","styles","containerSecondaryStyle","textStyle","textSecondaryStyle","_react","createElement","TouchableOpacity","activeOpacity","style","accessibilityRole","onPress","Clipboard","setString","Text","ErrorBoundary","Component","constructor","arguments","state","componentDidCatch","logException","context","component_stack","componentStack","isHandled","handledBy","getDerivedStateFromError","render","props","children","getStylesFromColorScheme","iconContainerStyle","titleStyle","messageStyle","SafeAreaView","ScrollView","contentContainerStyle","View","Icon","icon","warning","__","stack","_default","exports","default","withPreferredColorScheme"],"sources":["@wordpress/editor/src/components/error-boundary/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { ScrollView, Text, TouchableOpacity, View } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { select } from '@wordpress/data';\nimport { logException } from '@wordpress/react-native-bridge';\nimport {\n\tusePreferredColorSchemeStyle,\n\twithPreferredColorScheme,\n} from '@wordpress/compose';\nimport { warning } from '@wordpress/icons';\nimport { Icon } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport styles from './style.scss';\n\nfunction getContent() {\n\ttry {\n\t\t// While `select` in a component is generally discouraged, it is\n\t\t// used here because it (a) reduces the chance of data loss in the\n\t\t// case of additional errors by performing a direct retrieval and\n\t\t// (b) avoids the performance cost associated with unnecessary\n\t\t// content serialization throughout the lifetime of a non-erroring\n\t\t// application.\n\t\treturn select( editorStore ).getEditedPostContent();\n\t} catch ( error ) {}\n}\n\nfunction CopyButton( {\n\ttext,\n\tlabel,\n\taccessibilityLabel,\n\taccessibilityHint,\n\tsecondary = false,\n} ) {\n\tconst containerStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'copy-button__container' ],\n\t\tstyles[ 'copy-button__container--dark' ]\n\t);\n\n\tconst containerSecondaryStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'copy-button__container--secondary' ],\n\t\tstyles[ 'copy-button__container--secondary-dark' ]\n\t);\n\n\tconst textStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'copy-button__text' ],\n\t\tstyles[ 'copy-button__text--dark' ]\n\t);\n\n\tconst textSecondaryStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'copy-button__text--secondary' ],\n\t\tstyles[ 'copy-button__text--secondary-dark' ]\n\t);\n\n\treturn (\n\t\t<TouchableOpacity\n\t\t\tactiveOpacity={ 0.5 }\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tstyle={ [ containerStyle, secondary && containerSecondaryStyle ] }\n\t\t\taccessibilityRole={ 'button' }\n\t\t\taccessibilityHint={ accessibilityHint }\n\t\t\tonPress={ () => {\n\t\t\t\tClipboard.setString(\n\t\t\t\t\ttypeof text === 'function' ? text() : text || ''\n\t\t\t\t);\n\t\t\t} }\n\t\t>\n\t\t\t<Text style={ [ textStyle, secondary && textSecondaryStyle ] }>\n\t\t\t\t{ label }\n\t\t\t</Text>\n\t\t</TouchableOpacity>\n\t);\n}\n\nclass ErrorBoundary extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.state = {\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tcomponentDidCatch( error ) {\n\t\tlogException( error, {\n\t\t\tcontext: {\n\t\t\t\tcomponent_stack: error.componentStack,\n\t\t\t},\n\t\t\tisHandled: true,\n\t\t\thandledBy: 'Editor-level Error Boundary',\n\t\t} );\n\t}\n\n\tstatic getDerivedStateFromError( error ) {\n\t\treturn { error };\n\t}\n\n\trender() {\n\t\tconst { error } = this.state;\n\t\tif ( ! error ) {\n\t\t\treturn this.props.children;\n\t\t}\n\n\t\tconst { getStylesFromColorScheme } = this.props;\n\n\t\tconst iconContainerStyle = getStylesFromColorScheme(\n\t\t\tstyles[ 'error-boundary__icon-container' ],\n\t\t\tstyles[ 'error-boundary__icon-container--dark' ]\n\t\t);\n\n\t\tconst titleStyle = getStylesFromColorScheme(\n\t\t\tstyles[ 'error-boundary__title' ],\n\t\t\tstyles[ 'error-boundary__title--dark' ]\n\t\t);\n\n\t\tconst messageStyle = getStylesFromColorScheme(\n\t\t\tstyles[ 'error-boundary__message' ],\n\t\t\tstyles[ 'error-boundary__message--dark' ]\n\t\t);\n\n\t\treturn (\n\t\t\t<SafeAreaView>\n\t\t\t\t<ScrollView\n\t\t\t\t\tstyle={ styles[ 'error-boundary__scroll' ] }\n\t\t\t\t\tcontentContainerStyle={\n\t\t\t\t\t\tstyles[ 'error-boundary__scroll-container' ]\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles[ 'error-boundary__container' ] }>\n\t\t\t\t\t\t<View style={ iconContainerStyle }>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={ warning }\n\t\t\t\t\t\t\t\t{ ...styles[ 'error-boundary__icon' ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t<Text style={ titleStyle }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'The editor has encountered an unexpected error'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Text style={ messageStyle }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'You can copy your post text in case your content is impacted. Copy error details to debug and share with support.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\tstyles[ 'error-boundary__actions-container' ]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CopyButton\n\t\t\t\t\t\t\t\tlabel={ __( 'Copy post text' ) }\n\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t'Button to copy post text'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taccessibilityHint={ __(\n\t\t\t\t\t\t\t\t\t'Tap here to copy post text'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ttext={ getContent }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<CopyButton\n\t\t\t\t\t\t\t\tlabel={ __( 'Copy error details' ) }\n\t\t\t\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t\t\t\t'Button to copy error details'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taccessibilityHint={ __(\n\t\t\t\t\t\t\t\t\t'Tap here to copy error details'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ttext={ error.stack }\n\t\t\t\t\t\t\t\tsecondary\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</ScrollView>\n\t\t\t</SafeAreaView>\n\t\t);\n\t}\n}\n\nexport default withPreferredColorScheme( ErrorBoundary );\n"],"mappings":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,2BAAA,GAAAH,OAAA;AAKA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AAIA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AAKA,IAAAW,MAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAV,sBAAA,CAAAF,OAAA;AAzBA;AACA;AACA;;AAKA;AACA;AACA;;AAYA;AACA;AACA;;AAIA,SAASa,UAAUA,CAAA,EAAG;EACrB,IAAI;IACH;IACA;IACA;IACA;IACA;IACA;IACA,OAAO,IAAAC,YAAM,EAAEC,YAAY,CAAC,CAACC,oBAAoB,CAAC,CAAC;EACpD,CAAC,CAAC,OAAQC,KAAK,EAAG,CAAC;AACpB;AAEA,SAASC,UAAUA,CAAE;EACpBC,IAAI;EACJC,KAAK;EACLC,kBAAkB;EAClBC,iBAAiB;EACjBC,SAAS,GAAG;AACb,CAAC,EAAG;EACH,MAAMC,cAAc,GAAG,IAAAC,qCAA4B,EAClDC,cAAM,CAAE,wBAAwB,CAAE,EAClCA,cAAM,CAAE,8BAA8B,CACvC,CAAC;EAED,MAAMC,uBAAuB,GAAG,IAAAF,qCAA4B,EAC3DC,cAAM,CAAE,mCAAmC,CAAE,EAC7CA,cAAM,CAAE,wCAAwC,CACjD,CAAC;EAED,MAAME,SAAS,GAAG,IAAAH,qCAA4B,EAC7CC,cAAM,CAAE,mBAAmB,CAAE,EAC7BA,cAAM,CAAE,yBAAyB,CAClC,CAAC;EAED,MAAMG,kBAAkB,GAAG,IAAAJ,qCAA4B,EACtDC,cAAM,CAAE,8BAA8B,CAAE,EACxCA,cAAM,CAAE,mCAAmC,CAC5C,CAAC;EAED,OACC,IAAAI,MAAA,CAAAC,aAAA,EAAChC,YAAA,CAAAiC,gBAAgB;IAChBC,aAAa,EAAG,GAAK;IACrBZ,kBAAkB,EAAGA,kBAAoB;IACzCa,KAAK,EAAG,CAAEV,cAAc,EAAED,SAAS,IAAII,uBAAuB,CAAI;IAClEQ,iBAAiB,EAAG,QAAU;IAC9Bb,iBAAiB,EAAGA,iBAAmB;IACvCc,OAAO,EAAGA,CAAA,KAAM;MACfC,kBAAS,CAACC,SAAS,CAClB,OAAOnB,IAAI,KAAK,UAAU,GAAGA,IAAI,CAAC,CAAC,GAAGA,IAAI,IAAI,EAC/C,CAAC;IACF;EAAG,GAEH,IAAAW,MAAA,CAAAC,aAAA,EAAChC,YAAA,CAAAwC,IAAI;IAACL,KAAK,EAAG,CAAEN,SAAS,EAAEL,SAAS,IAAIM,kBAAkB;EAAI,GAC3DT,KACG,CACW,CAAC;AAErB;AAEA,MAAMoB,aAAa,SAASC,kBAAS,CAAC;EACrCC,WAAWA,CAAA,EAAG;IACb,KAAK,CAAE,GAAGC,SAAU,CAAC;IAErB,IAAI,CAACC,KAAK,GAAG;MACZ3B,KAAK,EAAE;IACR,CAAC;EACF;EAEA4B,iBAAiBA,CAAE5B,KAAK,EAAG;IAC1B,IAAA6B,+BAAY,EAAE7B,KAAK,EAAE;MACpB8B,OAAO,EAAE;QACRC,eAAe,EAAE/B,KAAK,CAACgC;MACxB,CAAC;MACDC,SAAS,EAAE,IAAI;MACfC,SAAS,EAAE;IACZ,CAAE,CAAC;EACJ;EAEA,OAAOC,wBAAwBA,CAAEnC,KAAK,EAAG;IACxC,OAAO;MAAEA;IAAM,CAAC;EACjB;EAEAoC,MAAMA,CAAA,EAAG;IACR,MAAM;MAAEpC;IAAM,CAAC,GAAG,IAAI,CAAC2B,KAAK;IAC5B,IAAK,CAAE3B,KAAK,EAAG;MACd,OAAO,IAAI,CAACqC,KAAK,CAACC,QAAQ;IAC3B;IAEA,MAAM;MAAEC;IAAyB,CAAC,GAAG,IAAI,CAACF,KAAK;IAE/C,MAAMG,kBAAkB,GAAGD,wBAAwB,CAClD9B,cAAM,CAAE,gCAAgC,CAAE,EAC1CA,cAAM,CAAE,sCAAsC,CAC/C,CAAC;IAED,MAAMgC,UAAU,GAAGF,wBAAwB,CAC1C9B,cAAM,CAAE,uBAAuB,CAAE,EACjCA,cAAM,CAAE,6BAA6B,CACtC,CAAC;IAED,MAAMiC,YAAY,GAAGH,wBAAwB,CAC5C9B,cAAM,CAAE,yBAAyB,CAAE,EACnCA,cAAM,CAAE,+BAA+B,CACxC,CAAC;IAED,OACC,IAAAI,MAAA,CAAAC,aAAA,EAAC5B,2BAAA,CAAAyD,YAAY,QACZ,IAAA9B,MAAA,CAAAC,aAAA,EAAChC,YAAA,CAAA8D,UAAU;MACV3B,KAAK,EAAGR,cAAM,CAAE,wBAAwB,CAAI;MAC5CoC,qBAAqB,EACpBpC,cAAM,CAAE,kCAAkC;IAC1C,GAED,IAAAI,MAAA,CAAAC,aAAA,EAAChC,YAAA,CAAAgE,IAAI;MAAC7B,KAAK,EAAGR,cAAM,CAAE,2BAA2B;IAAI,GACpD,IAAAI,MAAA,CAAAC,aAAA,EAAChC,YAAA,CAAAgE,IAAI;MAAC7B,KAAK,EAAGuB;IAAoB,GACjC,IAAA3B,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAsD,IAAI;MACJC,IAAI,EAAGC,cAAS;MAAA,GACXxC,cAAM,CAAE,sBAAsB;IAAE,CACrC,CACI,CAAC,EACP,IAAAI,MAAA,CAAAC,aAAA,EAAChC,YAAA,CAAAwC,IAAI;MAACL,KAAK,EAAGwB;IAAY,GACvB,IAAAS,QAAE,EACH,gDACD,CACK,CAAC,EACP,IAAArC,MAAA,CAAAC,aAAA,EAAChC,YAAA,CAAAwC,IAAI;MAACL,KAAK,EAAGyB;IAAc,GACzB,IAAAQ,QAAE,EACH,mHACD,CACK,CAAC,EACP,IAAArC,MAAA,CAAAC,aAAA,EAAChC,YAAA,CAAAgE,IAAI;MACJ7B,KAAK,EACJR,cAAM,CAAE,mCAAmC;IAC3C,GAED,IAAAI,MAAA,CAAAC,aAAA,EAACb,UAAU;MACVE,KAAK,EAAG,IAAA+C,QAAE,EAAE,gBAAiB,CAAG;MAChC9C,kBAAkB,EAAG,IAAA8C,QAAE,EACtB,0BACD,CAAG;MACH7C,iBAAiB,EAAG,IAAA6C,QAAE,EACrB,4BACD,CAAG;MACHhD,IAAI,EAAGN;IAAY,CACnB,CAAC,EACF,IAAAiB,MAAA,CAAAC,aAAA,EAACb,UAAU;MACVE,KAAK,EAAG,IAAA+C,QAAE,EAAE,oBAAqB,CAAG;MACpC9C,kBAAkB,EAAG,IAAA8C,QAAE,EACtB,8BACD,CAAG;MACH7C,iBAAiB,EAAG,IAAA6C,QAAE,EACrB,gCACD,CAAG;MACHhD,IAAI,EAAGF,KAAK,CAACmD,KAAO;MACpB7C,SAAS;IAAA,CACT,CACI,CACD,CACK,CACC,CAAC;EAEjB;AACD;AAAC,IAAA8C,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,iCAAwB,EAAEhC,aAAc,CAAC"}
|