@wordpress/editor 13.33.0 → 13.34.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 +2 -0
- package/README.md +132 -20
- package/build/components/autosave-monitor/index.js +15 -12
- package/build/components/autosave-monitor/index.js.map +1 -1
- package/build/components/character-count/index.js +5 -0
- package/build/components/character-count/index.js.map +1 -1
- package/build/components/collapsible-block-toolbar/index.js +73 -0
- package/build/components/collapsible-block-toolbar/index.js.map +1 -0
- package/build/components/document-outline/check.js +8 -0
- package/build/components/document-outline/check.js.map +1 -1
- package/build/components/document-outline/index.js +11 -0
- package/build/components/document-outline/index.js.map +1 -1
- package/build/components/document-tools/index.js +0 -7
- package/build/components/document-tools/index.js.map +1 -1
- package/build/components/editor-canvas/edit-template-blocks-notification.js +1 -1
- package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
- package/build/components/editor-history/redo.js +11 -0
- package/build/components/editor-history/redo.js.map +1 -1
- package/build/components/editor-history/undo.js +11 -0
- package/build/components/editor-history/undo.js.map +1 -1
- package/build/components/editor-snackbars/index.js +6 -0
- package/build/components/editor-snackbars/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/index.js +7 -0
- package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js +34 -0
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build/components/inserter-sidebar/index.js +1 -4
- package/build/components/inserter-sidebar/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +4 -0
- package/build/components/keyboard-shortcut-help-modal/config.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/more-menu/copy-content-menu-item.js +59 -0
- package/build/components/more-menu/copy-content-menu-item.js.map +1 -0
- package/build/components/more-menu/index.js +119 -0
- package/build/components/more-menu/index.js.map +1 -0
- package/build/components/more-menu/tools-more-menu-group.js +23 -0
- package/build/components/more-menu/tools-more-menu-group.js.map +1 -0
- package/build/components/more-menu/view-more-menu-group.js +24 -0
- package/build/components/more-menu/view-more-menu-group.js.map +1 -0
- package/build/components/page-attributes/check.js +8 -0
- package/build/components/page-attributes/check.js.map +1 -1
- package/build/components/page-attributes/order.js +7 -0
- package/build/components/page-attributes/order.js.map +1 -1
- package/build/components/page-attributes/panel.js +14 -8
- package/build/components/page-attributes/panel.js.map +1 -1
- package/build/components/page-attributes/parent.js +7 -0
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/plugin-post-publish-panel/index.js +1 -1
- package/build/components/plugin-post-publish-panel/index.js.map +1 -1
- package/build/components/plugin-pre-publish-panel/index.js +1 -1
- package/build/components/plugin-pre-publish-panel/index.js.map +1 -1
- package/build/components/plugin-sidebar/index.js +1 -1
- package/build/components/plugin-sidebar/index.js.map +1 -1
- package/build/components/post-actions/actions.js +100 -5
- package/build/components/post-actions/actions.js.map +1 -1
- package/build/components/post-actions/index.js +30 -7
- package/build/components/post-actions/index.js.map +1 -1
- package/build/components/post-author/check.js +9 -0
- package/build/components/post-author/check.js.map +1 -1
- package/build/components/post-author/index.js +6 -0
- package/build/components/post-author/index.js.map +1 -1
- package/build/components/post-author/panel.js +5 -0
- package/build/components/post-author/panel.js.map +1 -1
- package/build/components/post-card-panel/index.js +14 -49
- package/build/components/post-card-panel/index.js.map +1 -1
- package/build/components/post-content-information/index.js +72 -0
- package/build/components/post-content-information/index.js.map +1 -0
- package/build/components/post-discussion/panel.js +9 -7
- package/build/components/post-discussion/panel.js.map +1 -1
- package/build/components/post-excerpt/check.js +0 -19
- package/build/components/post-excerpt/check.js.map +1 -1
- package/build/components/post-excerpt/index.js +52 -12
- package/build/components/post-excerpt/index.js.map +1 -1
- package/build/components/post-excerpt/panel.js +118 -7
- package/build/components/post-excerpt/panel.js.map +1 -1
- package/build/components/post-excerpt/plugin.js +2 -2
- package/build/components/post-excerpt/plugin.js.map +1 -1
- package/build/components/post-featured-image/index.js +1 -1
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-last-edited-panel/index.js +33 -0
- package/build/components/post-last-edited-panel/index.js.map +1 -0
- package/build/components/post-publish-button/post-publish-button-or-toggle.js +100 -0
- package/build/components/post-publish-button/post-publish-button-or-toggle.js.map +1 -0
- package/build/components/post-schedule/panel.js +1 -1
- package/build/components/post-schedule/panel.js.map +1 -1
- package/build/components/post-status/index.js +9 -9
- package/build/components/post-status/index.js.map +1 -1
- package/build/components/post-template/block-theme.js +2 -2
- package/build/components/post-template/block-theme.js.map +1 -1
- package/build/components/post-template/classic-theme.js +0 -1
- package/build/components/post-template/classic-theme.js.map +1 -1
- package/build/components/post-template/swap-template-button.js +2 -5
- package/build/components/post-template/swap-template-button.js.map +1 -1
- package/build/components/post-url/index.js +2 -1
- package/build/components/post-url/index.js.map +1 -1
- package/build/components/post-url/panel.js +1 -1
- package/build/components/post-url/panel.js.map +1 -1
- package/build/components/preferences-modal/enable-publish-sidebar.js +34 -0
- package/build/components/preferences-modal/enable-publish-sidebar.js.map +1 -0
- package/build/components/preferences-modal/index.js +8 -2
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/preview-dropdown/index.js +3 -1
- package/build/components/preview-dropdown/index.js.map +1 -1
- package/build/components/provider/disable-non-page-content-blocks.js +23 -16
- package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
- package/build/components/save-publish-panels/index.js +89 -0
- package/build/components/save-publish-panels/index.js.map +1 -0
- package/build/components/start-page-options/index.js +5 -1
- package/build/components/start-page-options/index.js.map +1 -1
- package/build/private-apis.js +18 -2
- package/build/private-apis.js.map +1 -1
- package/build/store/selectors.js +3 -1
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/autosave-monitor/index.js +15 -13
- package/build-module/components/autosave-monitor/index.js.map +1 -1
- package/build-module/components/character-count/index.js +6 -0
- package/build-module/components/character-count/index.js.map +1 -1
- package/build-module/components/collapsible-block-toolbar/index.js +65 -0
- package/build-module/components/collapsible-block-toolbar/index.js.map +1 -0
- package/build-module/components/document-outline/check.js +9 -0
- package/build-module/components/document-outline/check.js.map +1 -1
- package/build-module/components/document-outline/index.js +11 -0
- package/build-module/components/document-outline/index.js.map +1 -1
- package/build-module/components/document-tools/index.js +1 -8
- package/build-module/components/document-tools/index.js.map +1 -1
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js +1 -1
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
- package/build-module/components/editor-history/redo.js +11 -0
- package/build-module/components/editor-history/redo.js.map +1 -1
- package/build-module/components/editor-history/undo.js +11 -0
- package/build-module/components/editor-history/undo.js.map +1 -1
- package/build-module/components/editor-snackbars/index.js +6 -0
- package/build-module/components/editor-snackbars/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/index.js +8 -0
- package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +35 -0
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build-module/components/inserter-sidebar/index.js +2 -5
- package/build-module/components/inserter-sidebar/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +4 -0
- package/build-module/components/keyboard-shortcut-help-modal/config.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/more-menu/copy-content-menu-item.js +52 -0
- package/build-module/components/more-menu/copy-content-menu-item.js.map +1 -0
- package/build-module/components/more-menu/index.js +111 -0
- package/build-module/components/more-menu/index.js.map +1 -0
- package/build-module/components/more-menu/tools-more-menu-group.js +16 -0
- package/build-module/components/more-menu/tools-more-menu-group.js.map +1 -0
- package/build-module/components/more-menu/view-more-menu-group.js +17 -0
- package/build-module/components/more-menu/view-more-menu-group.js.map +1 -0
- package/build-module/components/page-attributes/check.js +9 -0
- package/build-module/components/page-attributes/check.js.map +1 -1
- package/build-module/components/page-attributes/order.js +7 -0
- package/build-module/components/page-attributes/order.js.map +1 -1
- package/build-module/components/page-attributes/panel.js +13 -6
- package/build-module/components/page-attributes/panel.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +7 -0
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/plugin-post-publish-panel/index.js +1 -1
- package/build-module/components/plugin-post-publish-panel/index.js.map +1 -1
- package/build-module/components/plugin-pre-publish-panel/index.js +1 -1
- package/build-module/components/plugin-pre-publish-panel/index.js.map +1 -1
- package/build-module/components/plugin-sidebar/index.js +1 -1
- package/build-module/components/plugin-sidebar/index.js.map +1 -1
- package/build-module/components/post-actions/actions.js +100 -6
- package/build-module/components/post-actions/actions.js.map +1 -1
- package/build-module/components/post-actions/index.js +31 -8
- package/build-module/components/post-actions/index.js.map +1 -1
- package/build-module/components/post-author/check.js +10 -0
- package/build-module/components/post-author/check.js.map +1 -1
- package/build-module/components/post-author/index.js +6 -0
- package/build-module/components/post-author/index.js.map +1 -1
- package/build-module/components/post-author/panel.js +6 -0
- package/build-module/components/post-author/panel.js.map +1 -1
- package/build-module/components/post-card-panel/index.js +16 -51
- package/build-module/components/post-card-panel/index.js.map +1 -1
- package/build-module/components/post-content-information/index.js +66 -0
- package/build-module/components/post-content-information/index.js.map +1 -0
- package/build-module/components/post-discussion/panel.js +8 -6
- package/build-module/components/post-discussion/panel.js.map +1 -1
- package/build-module/components/post-excerpt/check.js +0 -19
- package/build-module/components/post-excerpt/check.js.map +1 -1
- package/build-module/components/post-excerpt/index.js +52 -11
- package/build-module/components/post-excerpt/index.js.map +1 -1
- package/build-module/components/post-excerpt/panel.js +118 -8
- package/build-module/components/post-excerpt/panel.js.map +1 -1
- package/build-module/components/post-excerpt/plugin.js +2 -2
- package/build-module/components/post-excerpt/plugin.js.map +1 -1
- package/build-module/components/post-featured-image/index.js +1 -1
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-last-edited-panel/index.js +26 -0
- package/build-module/components/post-last-edited-panel/index.js.map +1 -0
- package/build-module/components/post-publish-button/post-publish-button-or-toggle.js +91 -0
- package/build-module/components/post-publish-button/post-publish-button-or-toggle.js.map +1 -0
- package/build-module/components/post-schedule/panel.js +1 -1
- package/build-module/components/post-schedule/panel.js.map +1 -1
- package/build-module/components/post-status/index.js +9 -9
- package/build-module/components/post-status/index.js.map +1 -1
- package/build-module/components/post-template/block-theme.js +2 -2
- package/build-module/components/post-template/block-theme.js.map +1 -1
- package/build-module/components/post-template/classic-theme.js +0 -1
- package/build-module/components/post-template/classic-theme.js.map +1 -1
- package/build-module/components/post-template/swap-template-button.js +3 -6
- package/build-module/components/post-template/swap-template-button.js.map +1 -1
- package/build-module/components/post-url/index.js +2 -1
- package/build-module/components/post-url/index.js.map +1 -1
- package/build-module/components/post-url/panel.js +1 -1
- package/build-module/components/post-url/panel.js.map +1 -1
- package/build-module/components/preferences-modal/enable-publish-sidebar.js +27 -0
- package/build-module/components/preferences-modal/enable-publish-sidebar.js.map +1 -0
- package/build-module/components/preferences-modal/index.js +8 -2
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +3 -1
- package/build-module/components/preview-dropdown/index.js.map +1 -1
- package/build-module/components/provider/disable-non-page-content-blocks.js +24 -17
- package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
- package/build-module/components/save-publish-panels/index.js +80 -0
- package/build-module/components/save-publish-panels/index.js.map +1 -0
- package/build-module/components/start-page-options/index.js +5 -1
- package/build-module/components/start-page-options/index.js.map +1 -1
- package/build-module/private-apis.js +18 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/selectors.js +3 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +207 -30
- package/build-style/style.css +207 -30
- package/package.json +35 -35
- package/src/components/autosave-monitor/index.js +15 -12
- package/src/components/character-count/index.js +5 -0
- package/src/components/collapsible-block-toolbar/index.js +77 -0
- package/src/components/collapsible-block-toolbar/style.scss +80 -0
- package/src/components/document-outline/check.js +8 -0
- package/src/components/document-outline/index.js +10 -0
- package/src/components/document-tools/index.js +0 -5
- package/src/components/editor-canvas/edit-template-blocks-notification.js +1 -1
- package/src/components/editor-history/redo.js +10 -0
- package/src/components/editor-history/undo.js +10 -0
- package/src/components/editor-snackbars/index.js +5 -0
- package/src/components/entities-saved-states/style.scss +7 -0
- package/src/components/global-keyboard-shortcuts/index.js +7 -0
- package/src/components/global-keyboard-shortcuts/register-shortcuts.js +41 -0
- package/src/components/inserter-sidebar/index.js +2 -5
- package/src/components/keyboard-shortcut-help-modal/config.js +10 -1
- package/src/components/list-view-sidebar/index.js +1 -1
- package/src/components/list-view-sidebar/style.scss +2 -2
- package/src/components/more-menu/copy-content-menu-item.js +51 -0
- package/src/components/more-menu/index.js +158 -0
- package/src/components/more-menu/tools-more-menu-group.js +11 -0
- package/src/components/more-menu/view-more-menu-group.js +13 -0
- package/src/components/page-attributes/check.js +8 -0
- package/src/components/page-attributes/order.js +6 -0
- package/src/components/page-attributes/panel.js +21 -17
- package/src/components/page-attributes/parent.js +6 -0
- package/src/components/plugin-post-publish-panel/index.js +1 -1
- package/src/components/plugin-pre-publish-panel/index.js +1 -1
- package/src/components/plugin-sidebar/index.js +1 -1
- package/src/components/post-actions/actions.js +120 -5
- package/src/components/post-actions/index.js +41 -7
- package/src/components/post-author/check.js +9 -0
- package/src/components/post-author/index.js +5 -0
- package/src/components/post-author/panel.js +5 -0
- package/src/components/post-card-panel/index.js +27 -82
- package/src/components/post-card-panel/style.scss +2 -6
- package/src/components/post-content-information/index.js +83 -0
- package/src/components/post-content-information/style.scss +6 -0
- package/src/components/post-discussion/panel.js +24 -20
- package/src/components/post-excerpt/check.js +0 -18
- package/src/components/post-excerpt/index.js +66 -15
- package/src/components/post-excerpt/panel.js +196 -19
- package/src/components/post-excerpt/plugin.js +2 -2
- package/src/components/post-excerpt/style.scss +24 -0
- package/src/components/post-featured-image/index.js +1 -1
- package/src/components/post-featured-image/style.scss +2 -8
- package/src/components/post-last-edited-panel/index.js +35 -0
- package/src/components/post-last-edited-panel/style.scss +6 -0
- package/src/components/post-panel-row/style.scss +3 -3
- package/src/components/post-publish-button/post-publish-button-or-toggle.js +102 -0
- package/src/components/post-publish-button/test/post-publish-button-or-toggle.js +63 -0
- package/src/components/post-publish-panel/style.scss +43 -0
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +225 -75
- package/src/components/post-schedule/panel.js +1 -1
- package/src/components/post-schedule/style.scss +2 -4
- package/src/components/post-status/index.js +84 -76
- package/src/components/post-status/style.scss +0 -1
- package/src/components/post-template/block-theme.js +2 -2
- package/src/components/post-template/classic-theme.js +0 -1
- package/src/components/post-template/swap-template-button.js +3 -6
- package/src/components/post-text-editor/style.scss +1 -1
- package/src/components/post-title/style.scss +1 -1
- package/src/components/post-url/index.js +1 -0
- package/src/components/post-url/panel.js +1 -1
- package/src/components/preferences-modal/enable-publish-sidebar.js +28 -0
- package/src/components/preferences-modal/index.js +14 -0
- package/src/components/preview-dropdown/index.js +3 -1
- package/src/components/provider/disable-non-page-content-blocks.js +23 -21
- package/src/components/save-publish-panels/index.js +96 -0
- package/src/components/save-publish-panels/style.scss +36 -0
- package/src/components/start-page-options/index.js +6 -1
- package/src/private-apis.js +18 -2
- package/src/store/selectors.js +3 -1
- package/src/style.scss +4 -0
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { createElement, Fragment } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* External dependencies
|
|
4
|
+
*/
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
|
|
2
7
|
/**
|
|
3
8
|
* WordPress dependencies
|
|
4
9
|
*/
|
|
5
10
|
import { __ } from '@wordpress/i18n';
|
|
6
|
-
import { PanelBody } from '@wordpress/components';
|
|
11
|
+
import { PanelBody, __experimentalText as Text, Dropdown, Button, __experimentalVStack as VStack } from '@wordpress/components';
|
|
7
12
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
13
|
+
import { useMemo, useState } from '@wordpress/element';
|
|
14
|
+
import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
|
|
15
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
8
16
|
|
|
9
17
|
/**
|
|
10
18
|
* Internal dependencies
|
|
@@ -12,24 +20,28 @@ import { useDispatch, useSelect } from '@wordpress/data';
|
|
|
12
20
|
import PostExcerptForm from './index';
|
|
13
21
|
import PostExcerptCheck from './check';
|
|
14
22
|
import PluginPostExcerpt from './plugin';
|
|
23
|
+
import { TEMPLATE_ORIGINS } from '../../store/constants';
|
|
15
24
|
import { store as editorStore } from '../../store';
|
|
16
25
|
|
|
17
26
|
/**
|
|
18
27
|
* Module Constants
|
|
19
28
|
*/
|
|
20
29
|
const PANEL_NAME = 'post-excerpt';
|
|
21
|
-
|
|
30
|
+
function ExcerptPanel() {
|
|
22
31
|
const {
|
|
23
32
|
isOpened,
|
|
24
|
-
isEnabled
|
|
33
|
+
isEnabled,
|
|
34
|
+
postType
|
|
25
35
|
} = useSelect(select => {
|
|
26
36
|
const {
|
|
27
37
|
isEditorPanelOpened,
|
|
28
|
-
isEditorPanelEnabled
|
|
38
|
+
isEditorPanelEnabled,
|
|
39
|
+
getCurrentPostType
|
|
29
40
|
} = select(editorStore);
|
|
30
41
|
return {
|
|
31
42
|
isOpened: isEditorPanelOpened(PANEL_NAME),
|
|
32
|
-
isEnabled: isEditorPanelEnabled(PANEL_NAME)
|
|
43
|
+
isEnabled: isEditorPanelEnabled(PANEL_NAME),
|
|
44
|
+
postType: getCurrentPostType()
|
|
33
45
|
};
|
|
34
46
|
}, []);
|
|
35
47
|
const {
|
|
@@ -39,10 +51,108 @@ export default function PostExcerptPanel() {
|
|
|
39
51
|
if (!isEnabled) {
|
|
40
52
|
return null;
|
|
41
53
|
}
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
|
|
55
|
+
// There are special cases where we want to label the excerpt as a description.
|
|
56
|
+
const shouldUseDescriptionLabel = ['wp_template', 'wp_template_part', 'wp_block'].includes(postType);
|
|
57
|
+
return createElement(PanelBody, {
|
|
58
|
+
title: shouldUseDescriptionLabel ? __('Description') : __('Excerpt'),
|
|
44
59
|
opened: isOpened,
|
|
45
60
|
onToggle: toggleExcerptPanel
|
|
46
|
-
}, createElement(PluginPostExcerpt.Slot, null, fills => createElement(Fragment, null, createElement(PostExcerptForm, null), fills)))
|
|
61
|
+
}, createElement(PluginPostExcerpt.Slot, null, fills => createElement(Fragment, null, createElement(PostExcerptForm, null), fills)));
|
|
62
|
+
}
|
|
63
|
+
export default function PostExcerptPanel() {
|
|
64
|
+
return createElement(PostExcerptCheck, null, createElement(ExcerptPanel, null));
|
|
65
|
+
}
|
|
66
|
+
export function PrivatePostExcerptPanel() {
|
|
67
|
+
return createElement(PostExcerptCheck, null, createElement(PrivateExcerpt, null));
|
|
68
|
+
}
|
|
69
|
+
function PrivateExcerpt() {
|
|
70
|
+
const {
|
|
71
|
+
shouldRender,
|
|
72
|
+
excerpt,
|
|
73
|
+
shouldBeUsedAsDescription,
|
|
74
|
+
allowEditing
|
|
75
|
+
} = useSelect(select => {
|
|
76
|
+
const {
|
|
77
|
+
getCurrentPostType,
|
|
78
|
+
getCurrentPostId,
|
|
79
|
+
getEditedPostAttribute,
|
|
80
|
+
isEditorPanelEnabled
|
|
81
|
+
} = select(editorStore);
|
|
82
|
+
const postType = getCurrentPostType();
|
|
83
|
+
const isTemplateOrTemplatePart = ['wp_template', 'wp_template_part'].includes(postType);
|
|
84
|
+
const isPattern = postType === 'wp_block';
|
|
85
|
+
// These post types use the `excerpt` field as a description semantically, so we need to
|
|
86
|
+
// handle proper labeling and some flows where we should always render them as text.
|
|
87
|
+
const _shouldBeUsedAsDescription = isTemplateOrTemplatePart || isPattern;
|
|
88
|
+
const _usedAttribute = isTemplateOrTemplatePart ? 'description' : 'excerpt';
|
|
89
|
+
// We need to fetch the entity in this case to check if we'll allow editing.
|
|
90
|
+
const template = isTemplateOrTemplatePart && select(coreStore).getEntityRecord('postType', postType, getCurrentPostId());
|
|
91
|
+
// For post types that use excerpt as description, we do not abide
|
|
92
|
+
// by the `isEnabled` panel flag in order to render them as text.
|
|
93
|
+
const _shouldRender = isEditorPanelEnabled(PANEL_NAME) || _shouldBeUsedAsDescription;
|
|
94
|
+
return {
|
|
95
|
+
excerpt: getEditedPostAttribute(_usedAttribute),
|
|
96
|
+
shouldRender: _shouldRender,
|
|
97
|
+
shouldBeUsedAsDescription: _shouldBeUsedAsDescription,
|
|
98
|
+
// If we should render, allow editing for all post types that are not used as description.
|
|
99
|
+
// For the rest allow editing only for user generated entities.
|
|
100
|
+
allowEditing: _shouldRender && (!_shouldBeUsedAsDescription || isPattern || template && template.source === TEMPLATE_ORIGINS.custom && !template.has_theme_file)
|
|
101
|
+
};
|
|
102
|
+
}, []);
|
|
103
|
+
const [popoverAnchor, setPopoverAnchor] = useState(null);
|
|
104
|
+
const label = shouldBeUsedAsDescription ? __('Description') : __('Excerpt');
|
|
105
|
+
// Memoize popoverProps to avoid returning a new object every time.
|
|
106
|
+
const popoverProps = useMemo(() => ({
|
|
107
|
+
// Anchor the popover to the middle of the entire row so that it doesn't
|
|
108
|
+
// move around when the label changes.
|
|
109
|
+
anchor: popoverAnchor,
|
|
110
|
+
'aria-label': label,
|
|
111
|
+
headerTitle: label,
|
|
112
|
+
placement: 'left-start',
|
|
113
|
+
offset: 36,
|
|
114
|
+
shift: true
|
|
115
|
+
}), [popoverAnchor, label]);
|
|
116
|
+
if (!shouldRender) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
const excerptText = !!excerpt && createElement(Text, {
|
|
120
|
+
align: "left",
|
|
121
|
+
numberOfLines: 4,
|
|
122
|
+
truncate: true
|
|
123
|
+
}, excerpt);
|
|
124
|
+
if (!allowEditing) {
|
|
125
|
+
return excerptText;
|
|
126
|
+
}
|
|
127
|
+
const excerptPlaceholder = shouldBeUsedAsDescription ? __('Add a description…') : __('Add an excerpt…');
|
|
128
|
+
const triggerEditLabel = shouldBeUsedAsDescription ? __('Edit description') : __('Edit excerpt');
|
|
129
|
+
return createElement(Dropdown, {
|
|
130
|
+
className: "editor-post-excerpt__dropdown",
|
|
131
|
+
contentClassName: "editor-post-excerpt__dropdown__content",
|
|
132
|
+
popoverProps: popoverProps,
|
|
133
|
+
focusOnMount: true,
|
|
134
|
+
ref: setPopoverAnchor,
|
|
135
|
+
renderToggle: ({
|
|
136
|
+
onToggle
|
|
137
|
+
}) => createElement(Button, {
|
|
138
|
+
className: classnames('editor-post-excerpt__dropdown__trigger', {
|
|
139
|
+
'has-excerpt': !!excerpt
|
|
140
|
+
}),
|
|
141
|
+
onClick: onToggle,
|
|
142
|
+
label: !!excerptText ? triggerEditLabel : excerptPlaceholder,
|
|
143
|
+
showTooltip: !!excerptText
|
|
144
|
+
}, excerptText || excerptPlaceholder),
|
|
145
|
+
renderContent: ({
|
|
146
|
+
onClose
|
|
147
|
+
}) => createElement(Fragment, null, createElement(InspectorPopoverHeader, {
|
|
148
|
+
title: label,
|
|
149
|
+
onClose: onClose
|
|
150
|
+
}), createElement(VStack, {
|
|
151
|
+
spacing: 4
|
|
152
|
+
}, createElement(PluginPostExcerpt.Slot, null, fills => createElement(Fragment, null, createElement(PostExcerptForm, {
|
|
153
|
+
hideLabelFromVision: true,
|
|
154
|
+
updateOnBlur: true
|
|
155
|
+
}), fills))))
|
|
156
|
+
});
|
|
47
157
|
}
|
|
48
158
|
//# sourceMappingURL=panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","PanelBody","useDispatch","useSelect","PostExcerptForm","PostExcerptCheck","PluginPostExcerpt","store","editorStore","PANEL_NAME","PostExcerptPanel","isOpened","isEnabled","select","isEditorPanelOpened","isEditorPanelEnabled","toggleEditorPanelOpened","toggleExcerptPanel","createElement","title","opened","onToggle","Slot","fills","Fragment"],"sources":["@wordpress/editor/src/components/post-excerpt/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostExcerptForm from './index';\nimport PostExcerptCheck from './check';\nimport PluginPostExcerpt from './plugin';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-excerpt';\n\nexport default function PostExcerptPanel() {\n\tconst { isOpened, isEnabled } = useSelect( ( select ) => {\n\t\tconst { isEditorPanelOpened, isEditorPanelEnabled } =\n\t\t\tselect( editorStore );\n\n\t\treturn {\n\t\t\tisOpened: isEditorPanelOpened( PANEL_NAME ),\n\t\t\tisEnabled: isEditorPanelEnabled( PANEL_NAME ),\n\t\t};\n\t}, [] );\n\n\tconst { toggleEditorPanelOpened } = useDispatch( editorStore );\n\tconst toggleExcerptPanel = () => toggleEditorPanelOpened( PANEL_NAME );\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostExcerptCheck>\n\t\t\t<PanelBody\n\t\t\t\ttitle={ __( 'Excerpt' ) }\n\t\t\t\topened={ isOpened }\n\t\t\t\tonToggle={ toggleExcerptPanel }\n\t\t\t>\n\t\t\t\t<PluginPostExcerpt.Slot>\n\t\t\t\t\t{ ( fills ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PostExcerptForm />\n\t\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PluginPostExcerpt.Slot>\n\t\t\t</PanelBody>\n\t\t</PostExcerptCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;;AAExD;AACA;AACA;AACA,OAAOC,eAAe,MAAM,SAAS;AACrC,OAAOC,gBAAgB,MAAM,SAAS;AACtC,OAAOC,iBAAiB,MAAM,UAAU;AACxC,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;;AAElD;AACA;AACA;AACA,MAAMC,UAAU,GAAG,cAAc;AAEjC,eAAe,SAASC,gBAAgBA,CAAA,EAAG;EAC1C,MAAM;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGT,SAAS,CAAIU,MAAM,IAAM;IACxD,MAAM;MAAEC,mBAAmB;MAAEC;IAAqB,CAAC,GAClDF,MAAM,CAAEL,WAAY,CAAC;IAEtB,OAAO;MACNG,QAAQ,EAAEG,mBAAmB,CAAEL,UAAW,CAAC;MAC3CG,SAAS,EAAEG,oBAAoB,CAAEN,UAAW;IAC7C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM;IAAEO;EAAwB,CAAC,GAAGd,WAAW,CAAEM,WAAY,CAAC;EAC9D,MAAMS,kBAAkB,GAAGA,CAAA,KAAMD,uBAAuB,CAAEP,UAAW,CAAC;EAEtE,IAAK,CAAEG,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,OACCM,aAAA,CAACb,gBAAgB,QAChBa,aAAA,CAACjB,SAAS;IACTkB,KAAK,EAAGnB,EAAE,CAAE,SAAU,CAAG;IACzBoB,MAAM,EAAGT,QAAU;IACnBU,QAAQ,EAAGJ;EAAoB,GAE/BC,aAAA,CAACZ,iBAAiB,CAACgB,IAAI,QAClBC,KAAK,IACRL,aAAA,CAAAM,QAAA,QACCN,aAAA,CAACd,eAAe,MAAE,CAAC,EACjBmB,KACD,CAEoB,CACd,CACM,CAAC;AAErB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["classnames","__","PanelBody","__experimentalText","Text","Dropdown","Button","__experimentalVStack","VStack","useDispatch","useSelect","useMemo","useState","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","store","coreStore","PostExcerptForm","PostExcerptCheck","PluginPostExcerpt","TEMPLATE_ORIGINS","editorStore","PANEL_NAME","ExcerptPanel","isOpened","isEnabled","postType","select","isEditorPanelOpened","isEditorPanelEnabled","getCurrentPostType","toggleEditorPanelOpened","toggleExcerptPanel","shouldUseDescriptionLabel","includes","createElement","title","opened","onToggle","Slot","fills","Fragment","PostExcerptPanel","PrivatePostExcerptPanel","PrivateExcerpt","shouldRender","excerpt","shouldBeUsedAsDescription","allowEditing","getCurrentPostId","getEditedPostAttribute","isTemplateOrTemplatePart","isPattern","_shouldBeUsedAsDescription","_usedAttribute","template","getEntityRecord","_shouldRender","source","custom","has_theme_file","popoverAnchor","setPopoverAnchor","label","popoverProps","anchor","headerTitle","placement","offset","shift","excerptText","align","numberOfLines","truncate","excerptPlaceholder","triggerEditLabel","className","contentClassName","focusOnMount","ref","renderToggle","onClick","showTooltip","renderContent","onClose","spacing","hideLabelFromVision","updateOnBlur"],"sources":["@wordpress/editor/src/components/post-excerpt/panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\t__experimentalText as Text,\n\tDropdown,\n\tButton,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostExcerptForm from './index';\nimport PostExcerptCheck from './check';\nimport PluginPostExcerpt from './plugin';\nimport { TEMPLATE_ORIGINS } from '../../store/constants';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-excerpt';\n\nfunction ExcerptPanel() {\n\tconst { isOpened, isEnabled, postType } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisEditorPanelOpened,\n\t\t\tisEditorPanelEnabled,\n\t\t\tgetCurrentPostType,\n\t\t} = select( editorStore );\n\n\t\treturn {\n\t\t\tisOpened: isEditorPanelOpened( PANEL_NAME ),\n\t\t\tisEnabled: isEditorPanelEnabled( PANEL_NAME ),\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t}, [] );\n\n\tconst { toggleEditorPanelOpened } = useDispatch( editorStore );\n\tconst toggleExcerptPanel = () => toggleEditorPanelOpened( PANEL_NAME );\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\t// There are special cases where we want to label the excerpt as a description.\n\tconst shouldUseDescriptionLabel = [\n\t\t'wp_template',\n\t\t'wp_template_part',\n\t\t'wp_block',\n\t].includes( postType );\n\n\treturn (\n\t\t<PanelBody\n\t\t\ttitle={\n\t\t\t\tshouldUseDescriptionLabel\n\t\t\t\t\t? __( 'Description' )\n\t\t\t\t\t: __( 'Excerpt' )\n\t\t\t}\n\t\t\topened={ isOpened }\n\t\t\tonToggle={ toggleExcerptPanel }\n\t\t>\n\t\t\t<PluginPostExcerpt.Slot>\n\t\t\t\t{ ( fills ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PostExcerptForm />\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PluginPostExcerpt.Slot>\n\t\t</PanelBody>\n\t);\n}\n\nexport default function PostExcerptPanel() {\n\treturn (\n\t\t<PostExcerptCheck>\n\t\t\t<ExcerptPanel />\n\t\t</PostExcerptCheck>\n\t);\n}\n\nexport function PrivatePostExcerptPanel() {\n\treturn (\n\t\t<PostExcerptCheck>\n\t\t\t<PrivateExcerpt />\n\t\t</PostExcerptCheck>\n\t);\n}\n\nfunction PrivateExcerpt() {\n\tconst { shouldRender, excerpt, shouldBeUsedAsDescription, allowEditing } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPostId,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tisEditorPanelEnabled,\n\t\t\t} = select( editorStore );\n\t\t\tconst postType = getCurrentPostType();\n\t\t\tconst isTemplateOrTemplatePart = [\n\t\t\t\t'wp_template',\n\t\t\t\t'wp_template_part',\n\t\t\t].includes( postType );\n\t\t\tconst isPattern = postType === 'wp_block';\n\t\t\t// These post types use the `excerpt` field as a description semantically, so we need to\n\t\t\t// handle proper labeling and some flows where we should always render them as text.\n\t\t\tconst _shouldBeUsedAsDescription =\n\t\t\t\tisTemplateOrTemplatePart || isPattern;\n\t\t\tconst _usedAttribute = isTemplateOrTemplatePart\n\t\t\t\t? 'description'\n\t\t\t\t: 'excerpt';\n\t\t\t// We need to fetch the entity in this case to check if we'll allow editing.\n\t\t\tconst template =\n\t\t\t\tisTemplateOrTemplatePart &&\n\t\t\t\tselect( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tgetCurrentPostId()\n\t\t\t\t);\n\t\t\t// For post types that use excerpt as description, we do not abide\n\t\t\t// by the `isEnabled` panel flag in order to render them as text.\n\t\t\tconst _shouldRender =\n\t\t\t\tisEditorPanelEnabled( PANEL_NAME ) ||\n\t\t\t\t_shouldBeUsedAsDescription;\n\t\t\treturn {\n\t\t\t\texcerpt: getEditedPostAttribute( _usedAttribute ),\n\t\t\t\tshouldRender: _shouldRender,\n\t\t\t\tshouldBeUsedAsDescription: _shouldBeUsedAsDescription,\n\t\t\t\t// If we should render, allow editing for all post types that are not used as description.\n\t\t\t\t// For the rest allow editing only for user generated entities.\n\t\t\t\tallowEditing:\n\t\t\t\t\t_shouldRender &&\n\t\t\t\t\t( ! _shouldBeUsedAsDescription ||\n\t\t\t\t\t\tisPattern ||\n\t\t\t\t\t\t( template &&\n\t\t\t\t\t\t\ttemplate.source === TEMPLATE_ORIGINS.custom &&\n\t\t\t\t\t\t\t! template.has_theme_file ) ),\n\t\t\t};\n\t\t}, [] );\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst label = shouldBeUsedAsDescription\n\t\t? __( 'Description' )\n\t\t: __( 'Excerpt' );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': label,\n\t\t\theaderTitle: label,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor, label ]\n\t);\n\tif ( ! shouldRender ) {\n\t\treturn false;\n\t}\n\tconst excerptText = !! excerpt && (\n\t\t<Text align=\"left\" numberOfLines={ 4 } truncate>\n\t\t\t{ excerpt }\n\t\t</Text>\n\t);\n\tif ( ! allowEditing ) {\n\t\treturn excerptText;\n\t}\n\tconst excerptPlaceholder = shouldBeUsedAsDescription\n\t\t? __( 'Add a description…' )\n\t\t: __( 'Add an excerpt…' );\n\tconst triggerEditLabel = shouldBeUsedAsDescription\n\t\t? __( 'Edit description' )\n\t\t: __( 'Edit excerpt' );\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName=\"editor-post-excerpt__dropdown\"\n\t\t\tcontentClassName=\"editor-post-excerpt__dropdown__content\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tfocusOnMount\n\t\t\tref={ setPopoverAnchor }\n\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'editor-post-excerpt__dropdown__trigger',\n\t\t\t\t\t\t{ 'has-excerpt': !! excerpt }\n\t\t\t\t\t) }\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tlabel={\n\t\t\t\t\t\t!! excerptText ? triggerEditLabel : excerptPlaceholder\n\t\t\t\t\t}\n\t\t\t\t\tshowTooltip={ !! excerptText }\n\t\t\t\t>\n\t\t\t\t\t{ excerptText || excerptPlaceholder }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\ttitle={ label }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t/>\n\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t<PluginPostExcerpt.Slot>\n\t\t\t\t\t\t\t{ ( fills ) => (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<PostExcerptForm\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\t\tupdateOnBlur\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</PluginPostExcerpt.Slot>\n\t\t\t\t\t</VStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,SAAS,EACTC,kBAAkB,IAAIC,IAAI,EAC1BC,QAAQ,EACRC,MAAM,EACNC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AACtD,SAASC,oCAAoC,IAAIC,sBAAsB,QAAQ,yBAAyB;AACxG,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,OAAOC,eAAe,MAAM,SAAS;AACrC,OAAOC,gBAAgB,MAAM,SAAS;AACtC,OAAOC,iBAAiB,MAAM,UAAU;AACxC,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASL,KAAK,IAAIM,WAAW,QAAQ,aAAa;;AAElD;AACA;AACA;AACA,MAAMC,UAAU,GAAG,cAAc;AAEjC,SAASC,YAAYA,CAAA,EAAG;EACvB,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAS,CAAC,GAAGhB,SAAS,CAAIiB,MAAM,IAAM;IAClE,MAAM;MACLC,mBAAmB;MACnBC,oBAAoB;MACpBC;IACD,CAAC,GAAGH,MAAM,CAAEN,WAAY,CAAC;IAEzB,OAAO;MACNG,QAAQ,EAAEI,mBAAmB,CAAEN,UAAW,CAAC;MAC3CG,SAAS,EAAEI,oBAAoB,CAAEP,UAAW,CAAC;MAC7CI,QAAQ,EAAEI,kBAAkB,CAAC;IAC9B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM;IAAEC;EAAwB,CAAC,GAAGtB,WAAW,CAAEY,WAAY,CAAC;EAC9D,MAAMW,kBAAkB,GAAGA,CAAA,KAAMD,uBAAuB,CAAET,UAAW,CAAC;EAEtE,IAAK,CAAEG,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;;EAEA;EACA,MAAMQ,yBAAyB,GAAG,CACjC,aAAa,EACb,kBAAkB,EAClB,UAAU,CACV,CAACC,QAAQ,CAAER,QAAS,CAAC;EAEtB,OACCS,aAAA,CAACjC,SAAS;IACTkC,KAAK,EACJH,yBAAyB,GACtBhC,EAAE,CAAE,aAAc,CAAC,GACnBA,EAAE,CAAE,SAAU,CACjB;IACDoC,MAAM,EAAGb,QAAU;IACnBc,QAAQ,EAAGN;EAAoB,GAE/BG,aAAA,CAAChB,iBAAiB,CAACoB,IAAI,QAClBC,KAAK,IACRL,aAAA,CAAAM,QAAA,QACCN,aAAA,CAAClB,eAAe,MAAE,CAAC,EACjBuB,KACD,CAEoB,CACd,CAAC;AAEd;AAEA,eAAe,SAASE,gBAAgBA,CAAA,EAAG;EAC1C,OACCP,aAAA,CAACjB,gBAAgB,QAChBiB,aAAA,CAACZ,YAAY,MAAE,CACE,CAAC;AAErB;AAEA,OAAO,SAASoB,uBAAuBA,CAAA,EAAG;EACzC,OACCR,aAAA,CAACjB,gBAAgB,QAChBiB,aAAA,CAACS,cAAc,MAAE,CACA,CAAC;AAErB;AAEA,SAASA,cAAcA,CAAA,EAAG;EACzB,MAAM;IAAEC,YAAY;IAAEC,OAAO;IAAEC,yBAAyB;IAAEC;EAAa,CAAC,GACvEtC,SAAS,CAAIiB,MAAM,IAAM;IACxB,MAAM;MACLG,kBAAkB;MAClBmB,gBAAgB;MAChBC,sBAAsB;MACtBrB;IACD,CAAC,GAAGF,MAAM,CAAEN,WAAY,CAAC;IACzB,MAAMK,QAAQ,GAAGI,kBAAkB,CAAC,CAAC;IACrC,MAAMqB,wBAAwB,GAAG,CAChC,aAAa,EACb,kBAAkB,CAClB,CAACjB,QAAQ,CAAER,QAAS,CAAC;IACtB,MAAM0B,SAAS,GAAG1B,QAAQ,KAAK,UAAU;IACzC;IACA;IACA,MAAM2B,0BAA0B,GAC/BF,wBAAwB,IAAIC,SAAS;IACtC,MAAME,cAAc,GAAGH,wBAAwB,GAC5C,aAAa,GACb,SAAS;IACZ;IACA,MAAMI,QAAQ,GACbJ,wBAAwB,IACxBxB,MAAM,CAAEX,SAAU,CAAC,CAACwC,eAAe,CAClC,UAAU,EACV9B,QAAQ,EACRuB,gBAAgB,CAAC,CAClB,CAAC;IACF;IACA;IACA,MAAMQ,aAAa,GAClB5B,oBAAoB,CAAEP,UAAW,CAAC,IAClC+B,0BAA0B;IAC3B,OAAO;MACNP,OAAO,EAAEI,sBAAsB,CAAEI,cAAe,CAAC;MACjDT,YAAY,EAAEY,aAAa;MAC3BV,yBAAyB,EAAEM,0BAA0B;MACrD;MACA;MACAL,YAAY,EACXS,aAAa,KACX,CAAEJ,0BAA0B,IAC7BD,SAAS,IACPG,QAAQ,IACTA,QAAQ,CAACG,MAAM,KAAKtC,gBAAgB,CAACuC,MAAM,IAC3C,CAAEJ,QAAQ,CAACK,cAAgB;IAC/B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACR,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGlD,QAAQ,CAAE,IAAK,CAAC;EAC5D,MAAMmD,KAAK,GAAGhB,yBAAyB,GACpC9C,EAAE,CAAE,aAAc,CAAC,GACnBA,EAAE,CAAE,SAAU,CAAC;EAClB;EACA,MAAM+D,YAAY,GAAGrD,OAAO,CAC3B,OAAQ;IACP;IACA;IACAsD,MAAM,EAAEJ,aAAa;IACrB,YAAY,EAAEE,KAAK;IACnBG,WAAW,EAAEH,KAAK;IAClBI,SAAS,EAAE,YAAY;IACvBC,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE;EACR,CAAC,CAAE,EACH,CAAER,aAAa,EAAEE,KAAK,CACvB,CAAC;EACD,IAAK,CAAElB,YAAY,EAAG;IACrB,OAAO,KAAK;EACb;EACA,MAAMyB,WAAW,GAAG,CAAC,CAAExB,OAAO,IAC7BX,aAAA,CAAC/B,IAAI;IAACmE,KAAK,EAAC,MAAM;IAACC,aAAa,EAAG,CAAG;IAACC,QAAQ;EAAA,GAC5C3B,OACG,CACN;EACD,IAAK,CAAEE,YAAY,EAAG;IACrB,OAAOsB,WAAW;EACnB;EACA,MAAMI,kBAAkB,GAAG3B,yBAAyB,GACjD9C,EAAE,CAAE,oBAAqB,CAAC,GAC1BA,EAAE,CAAE,iBAAkB,CAAC;EAC1B,MAAM0E,gBAAgB,GAAG5B,yBAAyB,GAC/C9C,EAAE,CAAE,kBAAmB,CAAC,GACxBA,EAAE,CAAE,cAAe,CAAC;EACvB,OACCkC,aAAA,CAAC9B,QAAQ;IACRuE,SAAS,EAAC,+BAA+B;IACzCC,gBAAgB,EAAC,wCAAwC;IACzDb,YAAY,EAAGA,YAAc;IAC7Bc,YAAY;IACZC,GAAG,EAAGjB,gBAAkB;IACxBkB,YAAY,EAAGA,CAAE;MAAE1C;IAAS,CAAC,KAC5BH,aAAA,CAAC7B,MAAM;MACNsE,SAAS,EAAG5E,UAAU,CACrB,wCAAwC,EACxC;QAAE,aAAa,EAAE,CAAC,CAAE8C;MAAQ,CAC7B,CAAG;MACHmC,OAAO,EAAG3C,QAAU;MACpByB,KAAK,EACJ,CAAC,CAAEO,WAAW,GAAGK,gBAAgB,GAAGD,kBACpC;MACDQ,WAAW,EAAG,CAAC,CAAEZ;IAAa,GAE5BA,WAAW,IAAII,kBACV,CACN;IACHS,aAAa,EAAGA,CAAE;MAAEC;IAAQ,CAAC,KAC5BjD,aAAA,CAAAM,QAAA,QACCN,aAAA,CAACrB,sBAAsB;MACtBsB,KAAK,EAAG2B,KAAO;MACfqB,OAAO,EAAGA;IAAS,CACnB,CAAC,EAEFjD,aAAA,CAAC3B,MAAM;MAAC6E,OAAO,EAAG;IAAG,GACpBlD,aAAA,CAAChB,iBAAiB,CAACoB,IAAI,QAClBC,KAAK,IACRL,aAAA,CAAAM,QAAA,QACCN,aAAA,CAAClB,eAAe;MACfqE,mBAAmB;MACnBC,YAAY;IAAA,CACZ,CAAC,EACA/C,KACD,CAEoB,CACjB,CACP;EACA,CACH,CAAC;AAEJ","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ const {
|
|
|
23
23
|
* ```js
|
|
24
24
|
* // Using ES5 syntax
|
|
25
25
|
* var __ = wp.i18n.__;
|
|
26
|
-
* var PluginPostExcerpt = wp.editPost.
|
|
26
|
+
* var PluginPostExcerpt = wp.editPost.__experimentalPluginPostExcerpt;
|
|
27
27
|
*
|
|
28
28
|
* function MyPluginPostExcerpt() {
|
|
29
29
|
* return React.createElement(
|
|
@@ -40,7 +40,7 @@ const {
|
|
|
40
40
|
* ```jsx
|
|
41
41
|
* // Using ESNext syntax
|
|
42
42
|
* import { __ } from '@wordpress/i18n';
|
|
43
|
-
* import { PluginPostExcerpt } from '@wordpress/edit-post';
|
|
43
|
+
* import { __experimentalPluginPostExcerpt as PluginPostExcerpt } from '@wordpress/edit-post';
|
|
44
44
|
*
|
|
45
45
|
* const MyPluginPostExcerpt = () => (
|
|
46
46
|
* <PluginPostExcerpt className="my-plugin-post-excerpt">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSlotFill","PanelRow","Fill","Slot","PluginPostExcerpt","children","className","createElement"],"sources":["@wordpress/editor/src/components/post-excerpt/plugin.js"],"sourcesContent":["/**\n * Defines as extensibility slot for the Excerpt panel.\n */\n\n/**\n * WordPress dependencies\n */\nimport { createSlotFill, PanelRow } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginPostExcerpt' );\n\n/**\n * Renders a post excerpt panel in the post sidebar.\n *\n * @param {Object} props Component properties.\n * @param {string} [props.className] An optional class name added to the row.\n * @param {Element} props.children Children to be rendered.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginPostExcerpt = wp.editPost.
|
|
1
|
+
{"version":3,"names":["createSlotFill","PanelRow","Fill","Slot","PluginPostExcerpt","children","className","createElement"],"sources":["@wordpress/editor/src/components/post-excerpt/plugin.js"],"sourcesContent":["/**\n * Defines as extensibility slot for the Excerpt panel.\n */\n\n/**\n * WordPress dependencies\n */\nimport { createSlotFill, PanelRow } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginPostExcerpt' );\n\n/**\n * Renders a post excerpt panel in the post sidebar.\n *\n * @param {Object} props Component properties.\n * @param {string} [props.className] An optional class name added to the row.\n * @param {Element} props.children Children to be rendered.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginPostExcerpt = wp.editPost.__experimentalPluginPostExcerpt;\n *\n * function MyPluginPostExcerpt() {\n * \treturn React.createElement(\n * \t\tPluginPostExcerpt,\n * \t\t{\n * \t\t\tclassName: 'my-plugin-post-excerpt',\n * \t\t},\n * \t\t__( 'Post excerpt custom content' )\n * \t)\n * }\n * ```\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { __experimentalPluginPostExcerpt as PluginPostExcerpt } from '@wordpress/edit-post';\n *\n * const MyPluginPostExcerpt = () => (\n * \t<PluginPostExcerpt className=\"my-plugin-post-excerpt\">\n * \t\t{ __( 'Post excerpt custom content' ) }\n * \t</PluginPostExcerpt>\n * );\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nconst PluginPostExcerpt = ( { children, className } ) => {\n\treturn (\n\t\t<Fill>\n\t\t\t<PanelRow className={ className }>{ children }</PanelRow>\n\t\t</Fill>\n\t);\n};\n\nPluginPostExcerpt.Slot = Slot;\n\nexport default PluginPostExcerpt;\n"],"mappings":";AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAASA,cAAc,EAAEC,QAAQ,QAAQ,uBAAuB;AAEhE,MAAM;EAAEC,IAAI;EAAEC;AAAK,CAAC,GAAGH,cAAc,CAAE,mBAAoB,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,iBAAiB,GAAGA,CAAE;EAAEC,QAAQ;EAAEC;AAAU,CAAC,KAAM;EACxD,OACCC,aAAA,CAACL,IAAI,QACJK,aAAA,CAACN,QAAQ;IAACK,SAAS,EAAGA;EAAW,GAAGD,QAAoB,CACnD,CAAC;AAET,CAAC;AAEDD,iBAAiB,CAACD,IAAI,GAAGA,IAAI;AAE7B,eAAeC,iBAAiB","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ const ALLOWED_MEDIA_TYPES = ['image'];
|
|
|
21
21
|
|
|
22
22
|
// Used when labels from post type were not yet loaded or when they are not present.
|
|
23
23
|
const DEFAULT_FEATURE_IMAGE_LABEL = __('Featured image');
|
|
24
|
-
const DEFAULT_SET_FEATURE_IMAGE_LABEL = __('
|
|
24
|
+
const DEFAULT_SET_FEATURE_IMAGE_LABEL = __('Add a featured image');
|
|
25
25
|
const instructions = createElement("p", null, __('To edit the featured image, you need permission to upload media.'));
|
|
26
26
|
function getMediaDetails(media, postId) {
|
|
27
27
|
var _media$media_details$, _media$media_details$2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","sprintf","applyFilters","DropZone","Button","Spinner","withNotices","withFilters","__experimentalHStack","HStack","isBlobURL","useState","useRef","compose","useSelect","withDispatch","withSelect","MediaUpload","MediaUploadCheck","store","blockEditorStore","coreStore","PostFeaturedImageCheck","editorStore","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","instructions","createElement","getMediaDetails","media","postId","_media$media_details$","_media$media_details$2","defaultSize","id","media_details","sizes","mediaWidth","width","mediaHeight","height","mediaSourceUrl","source_url","fallbackSize","PostFeaturedImage","currentPostId","featuredImageId","onUpdateImage","onRemoveImage","postType","noticeUI","noticeOperations","toggleRef","isLoading","setIsLoading","getSettings","onDropFiles","filesList","mediaUpload","allowedTypes","onFileChange","image","url","onError","message","removeAllNotices","createErrorNotice","className","alt_text","full","file","slug","fallback","title","labels","featured_image","onSelect","unstableFeaturedImageFlow","modalClass","render","open","ref","onClick","src","alt","set_featured_image","current","focus","onFilesDrop","value","applyWithSelect","select","getMedia","getPostType","getCurrentPostId","getEditedPostAttribute","context","applyWithDispatch","dispatch","editPost","featured_media","onDropImage"],"sources":["@wordpress/editor/src/components/post-featured-image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\twithNotices,\n\twithFilters,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useState, useRef } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { useSelect, withDispatch, withSelect } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Set featured image' );\n\nconst instructions = (\n\t<p>\n\t\t{ __(\n\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t) }\n\t</p>\n);\n\nfunction getMediaDetails( media, postId ) {\n\tif ( ! media ) {\n\t\treturn {};\n\t}\n\n\tconst defaultSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'large',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( defaultSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ defaultSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ defaultSize ].height,\n\t\t\tmediaSourceUrl: media.media_details.sizes[ defaultSize ].source_url,\n\t\t};\n\t}\n\n\t// Use fallbackSize when defaultSize is not available.\n\tconst fallbackSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'thumbnail',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( fallbackSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ fallbackSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ fallbackSize ].height,\n\t\t\tmediaSourceUrl:\n\t\t\t\tmedia.media_details.sizes[ fallbackSize ].source_url,\n\t\t};\n\t}\n\n\t// Use full image size when fallbackSize and defaultSize are not available.\n\treturn {\n\t\tmediaWidth: media.media_details.width,\n\t\tmediaHeight: media.media_details.height,\n\t\tmediaSourceUrl: media.source_url,\n\t};\n}\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst toggleRef = useRef();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst { mediaSourceUrl } = getMediaDetails( media, currentPostId );\n\n\tfunction onDropFiles( filesList ) {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( image ) {\n\t\t\t\t\tonUpdateImage( image );\n\t\t\t\t}\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError( message ) {\n\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostType?.labels?.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or replace the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__preview-image\"\n\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t! isLoading &&\n\t\t\t\t\t\t\t\t\t\t( postType?.labels\n\t\t\t\t\t\t\t\t\t\t\t?.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t\t\t\t\t<HStack className=\"editor-post-featured-image__actions\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__action\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__action\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t\t\t\t\t\t\ttoggleRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","sprintf","applyFilters","DropZone","Button","Spinner","withNotices","withFilters","__experimentalHStack","HStack","isBlobURL","useState","useRef","compose","useSelect","withDispatch","withSelect","MediaUpload","MediaUploadCheck","store","blockEditorStore","coreStore","PostFeaturedImageCheck","editorStore","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","instructions","createElement","getMediaDetails","media","postId","_media$media_details$","_media$media_details$2","defaultSize","id","media_details","sizes","mediaWidth","width","mediaHeight","height","mediaSourceUrl","source_url","fallbackSize","PostFeaturedImage","currentPostId","featuredImageId","onUpdateImage","onRemoveImage","postType","noticeUI","noticeOperations","toggleRef","isLoading","setIsLoading","getSettings","onDropFiles","filesList","mediaUpload","allowedTypes","onFileChange","image","url","onError","message","removeAllNotices","createErrorNotice","className","alt_text","full","file","slug","fallback","title","labels","featured_image","onSelect","unstableFeaturedImageFlow","modalClass","render","open","ref","onClick","src","alt","set_featured_image","current","focus","onFilesDrop","value","applyWithSelect","select","getMedia","getPostType","getCurrentPostId","getEditedPostAttribute","context","applyWithDispatch","dispatch","editPost","featured_media","onDropImage"],"sources":["@wordpress/editor/src/components/post-featured-image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\twithNotices,\n\twithFilters,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useState, useRef } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { useSelect, withDispatch, withSelect } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Add a featured image' );\n\nconst instructions = (\n\t<p>\n\t\t{ __(\n\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t) }\n\t</p>\n);\n\nfunction getMediaDetails( media, postId ) {\n\tif ( ! media ) {\n\t\treturn {};\n\t}\n\n\tconst defaultSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'large',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( defaultSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ defaultSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ defaultSize ].height,\n\t\t\tmediaSourceUrl: media.media_details.sizes[ defaultSize ].source_url,\n\t\t};\n\t}\n\n\t// Use fallbackSize when defaultSize is not available.\n\tconst fallbackSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'thumbnail',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( fallbackSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ fallbackSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ fallbackSize ].height,\n\t\t\tmediaSourceUrl:\n\t\t\t\tmedia.media_details.sizes[ fallbackSize ].source_url,\n\t\t};\n\t}\n\n\t// Use full image size when fallbackSize and defaultSize are not available.\n\treturn {\n\t\tmediaWidth: media.media_details.width,\n\t\tmediaHeight: media.media_details.height,\n\t\tmediaSourceUrl: media.source_url,\n\t};\n}\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst toggleRef = useRef();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst { mediaSourceUrl } = getMediaDetails( media, currentPostId );\n\n\tfunction onDropFiles( filesList ) {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( image ) {\n\t\t\t\t\tonUpdateImage( image );\n\t\t\t\t}\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError( message ) {\n\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostType?.labels?.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or replace the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__preview-image\"\n\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t! isLoading &&\n\t\t\t\t\t\t\t\t\t\t( postType?.labels\n\t\t\t\t\t\t\t\t\t\t\t?.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t\t\t\t\t<HStack className=\"editor-post-featured-image__actions\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__action\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__action\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t\t\t\t\t\t\ttoggleRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { __experimentalText as Text } from '@wordpress/components';
|
|
6
|
+
import { useSelect } from '@wordpress/data';
|
|
7
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
8
|
+
import { humanTimeDiff } from '@wordpress/date';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internal dependencies
|
|
12
|
+
*/
|
|
13
|
+
import { store as editorStore } from '../../store';
|
|
14
|
+
export default function PostLastEditedPanel() {
|
|
15
|
+
const modified = useSelect(select => select(editorStore).getEditedPostAttribute('modified'), []);
|
|
16
|
+
const lastEditedText = modified && sprintf(
|
|
17
|
+
// translators: %s: Human-readable time difference, e.g. "2 days ago".
|
|
18
|
+
__('Last edited %s.'), humanTimeDiff(modified));
|
|
19
|
+
if (!lastEditedText) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return createElement("div", {
|
|
23
|
+
className: "editor-post-last-edited-panel"
|
|
24
|
+
}, createElement(Text, null, lastEditedText));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__experimentalText","Text","useSelect","__","sprintf","humanTimeDiff","store","editorStore","PostLastEditedPanel","modified","select","getEditedPostAttribute","lastEditedText","createElement","className"],"sources":["@wordpress/editor/src/components/post-last-edited-panel/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { humanTimeDiff } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostLastEditedPanel() {\n\tconst modified = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getEditedPostAttribute( 'modified' ),\n\t\t[]\n\t);\n\tconst lastEditedText =\n\t\tmodified &&\n\t\tsprintf(\n\t\t\t// translators: %s: Human-readable time difference, e.g. \"2 days ago\".\n\t\t\t__( 'Last edited %s.' ),\n\t\t\thumanTimeDiff( modified )\n\t\t);\n\tif ( ! lastEditedText ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<div className=\"editor-post-last-edited-panel\">\n\t\t\t<Text>{ lastEditedText }</Text>\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,kBAAkB,IAAIC,IAAI,QAAQ,uBAAuB;AAClE,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,eAAe,SAASC,mBAAmBA,CAAA,EAAG;EAC7C,MAAMC,QAAQ,GAAGP,SAAS,CACvBQ,MAAM,IACPA,MAAM,CAAEH,WAAY,CAAC,CAACI,sBAAsB,CAAE,UAAW,CAAC,EAC3D,EACD,CAAC;EACD,MAAMC,cAAc,GACnBH,QAAQ,IACRL,OAAO;EACN;EACAD,EAAE,CAAE,iBAAkB,CAAC,EACvBE,aAAa,CAAEI,QAAS,CACzB,CAAC;EACF,IAAK,CAAEG,cAAc,EAAG;IACvB,OAAO,IAAI;EACZ;EACA,OACCC,aAAA;IAAKC,SAAS,EAAC;EAA+B,GAC7CD,aAAA,CAACZ,IAAI,QAAGW,cAAsB,CAC1B,CAAC;AAER","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { useViewportMatch, compose } from '@wordpress/compose';
|
|
6
|
+
import { withDispatch, withSelect } from '@wordpress/data';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import PostPublishButton from './index';
|
|
12
|
+
import { store as editorStore } from '../../store';
|
|
13
|
+
export function PostPublishButtonOrToggle({
|
|
14
|
+
forceIsDirty,
|
|
15
|
+
hasPublishAction,
|
|
16
|
+
isBeingScheduled,
|
|
17
|
+
isPending,
|
|
18
|
+
isPublished,
|
|
19
|
+
isPublishSidebarEnabled,
|
|
20
|
+
isPublishSidebarOpened,
|
|
21
|
+
isScheduled,
|
|
22
|
+
togglePublishSidebar,
|
|
23
|
+
setEntitiesSavedStatesCallback,
|
|
24
|
+
postStatusHasChanged,
|
|
25
|
+
postStatus
|
|
26
|
+
}) {
|
|
27
|
+
const IS_TOGGLE = 'toggle';
|
|
28
|
+
const IS_BUTTON = 'button';
|
|
29
|
+
const isSmallerThanMediumViewport = useViewportMatch('medium', '<');
|
|
30
|
+
let component;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Conditions to show a BUTTON (publish directly) or a TOGGLE (open publish sidebar):
|
|
34
|
+
*
|
|
35
|
+
* 1) We want to show a BUTTON when the post status is at the _final stage_
|
|
36
|
+
* for a particular role (see https://wordpress.org/documentation/article/post-status/):
|
|
37
|
+
*
|
|
38
|
+
* - is published
|
|
39
|
+
* - post status has changed explicitely to something different than 'future' or 'publish'
|
|
40
|
+
* - is scheduled to be published
|
|
41
|
+
* - is pending and can't be published (but only for viewports >= medium).
|
|
42
|
+
* Originally, we considered showing a button for pending posts that couldn't be published
|
|
43
|
+
* (for example, for an author with the contributor role). Some languages can have
|
|
44
|
+
* long translations for "Submit for review", so given the lack of UI real estate available
|
|
45
|
+
* we decided to take into account the viewport in that case.
|
|
46
|
+
* See: https://github.com/WordPress/gutenberg/issues/10475
|
|
47
|
+
*
|
|
48
|
+
* 2) Then, in small viewports, we'll show a TOGGLE.
|
|
49
|
+
*
|
|
50
|
+
* 3) Finally, we'll use the publish sidebar status to decide:
|
|
51
|
+
*
|
|
52
|
+
* - if it is enabled, we show a TOGGLE
|
|
53
|
+
* - if it is disabled, we show a BUTTON
|
|
54
|
+
*/
|
|
55
|
+
if (isPublished || postStatusHasChanged && !['future', 'publish'].includes(postStatus) || isScheduled && isBeingScheduled || isPending && !hasPublishAction && !isSmallerThanMediumViewport) {
|
|
56
|
+
component = IS_BUTTON;
|
|
57
|
+
} else if (isSmallerThanMediumViewport || isPublishSidebarEnabled) {
|
|
58
|
+
component = IS_TOGGLE;
|
|
59
|
+
} else {
|
|
60
|
+
component = IS_BUTTON;
|
|
61
|
+
}
|
|
62
|
+
return createElement(PostPublishButton, {
|
|
63
|
+
forceIsDirty: forceIsDirty,
|
|
64
|
+
isOpen: isPublishSidebarOpened,
|
|
65
|
+
isToggle: component === IS_TOGGLE,
|
|
66
|
+
onToggle: togglePublishSidebar,
|
|
67
|
+
setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
export default compose(withSelect(select => {
|
|
71
|
+
var _select$getCurrentPos;
|
|
72
|
+
return {
|
|
73
|
+
hasPublishAction: (_select$getCurrentPos = select(editorStore).getCurrentPost()?._links?.['wp:action-publish']) !== null && _select$getCurrentPos !== void 0 ? _select$getCurrentPos : false,
|
|
74
|
+
isBeingScheduled: select(editorStore).isEditedPostBeingScheduled(),
|
|
75
|
+
isPending: select(editorStore).isCurrentPostPending(),
|
|
76
|
+
isPublished: select(editorStore).isCurrentPostPublished(),
|
|
77
|
+
isPublishSidebarEnabled: select(editorStore).isPublishSidebarEnabled(),
|
|
78
|
+
isPublishSidebarOpened: select(editorStore).isPublishSidebarOpened(),
|
|
79
|
+
isScheduled: select(editorStore).isCurrentPostScheduled(),
|
|
80
|
+
postStatus: select(editorStore).getEditedPostAttribute('status'),
|
|
81
|
+
postStatusHasChanged: select(editorStore).getPostEdits()?.status
|
|
82
|
+
};
|
|
83
|
+
}), withDispatch(dispatch => {
|
|
84
|
+
const {
|
|
85
|
+
togglePublishSidebar
|
|
86
|
+
} = dispatch(editorStore);
|
|
87
|
+
return {
|
|
88
|
+
togglePublishSidebar
|
|
89
|
+
};
|
|
90
|
+
}))(PostPublishButtonOrToggle);
|
|
91
|
+
//# sourceMappingURL=post-publish-button-or-toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useViewportMatch","compose","withDispatch","withSelect","PostPublishButton","store","editorStore","PostPublishButtonOrToggle","forceIsDirty","hasPublishAction","isBeingScheduled","isPending","isPublished","isPublishSidebarEnabled","isPublishSidebarOpened","isScheduled","togglePublishSidebar","setEntitiesSavedStatesCallback","postStatusHasChanged","postStatus","IS_TOGGLE","IS_BUTTON","isSmallerThanMediumViewport","component","includes","createElement","isOpen","isToggle","onToggle","select","_select$getCurrentPos","getCurrentPost","_links","isEditedPostBeingScheduled","isCurrentPostPending","isCurrentPostPublished","isCurrentPostScheduled","getEditedPostAttribute","getPostEdits","status","dispatch"],"sources":["@wordpress/editor/src/components/post-publish-button/post-publish-button-or-toggle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useViewportMatch, compose } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostPublishButton from './index';\nimport { store as editorStore } from '../../store';\n\nexport function PostPublishButtonOrToggle( {\n\tforceIsDirty,\n\thasPublishAction,\n\tisBeingScheduled,\n\tisPending,\n\tisPublished,\n\tisPublishSidebarEnabled,\n\tisPublishSidebarOpened,\n\tisScheduled,\n\ttogglePublishSidebar,\n\tsetEntitiesSavedStatesCallback,\n\tpostStatusHasChanged,\n\tpostStatus,\n} ) {\n\tconst IS_TOGGLE = 'toggle';\n\tconst IS_BUTTON = 'button';\n\tconst isSmallerThanMediumViewport = useViewportMatch( 'medium', '<' );\n\tlet component;\n\n\t/**\n\t * Conditions to show a BUTTON (publish directly) or a TOGGLE (open publish sidebar):\n\t *\n\t * 1) We want to show a BUTTON when the post status is at the _final stage_\n\t * for a particular role (see https://wordpress.org/documentation/article/post-status/):\n\t *\n\t * - is published\n\t * - post status has changed explicitely to something different than 'future' or 'publish'\n\t * - is scheduled to be published\n\t * - is pending and can't be published (but only for viewports >= medium).\n\t * \t Originally, we considered showing a button for pending posts that couldn't be published\n\t * \t (for example, for an author with the contributor role). Some languages can have\n\t * \t long translations for \"Submit for review\", so given the lack of UI real estate available\n\t * \t we decided to take into account the viewport in that case.\n\t * \t See: https://github.com/WordPress/gutenberg/issues/10475\n\t *\n\t * 2) Then, in small viewports, we'll show a TOGGLE.\n\t *\n\t * 3) Finally, we'll use the publish sidebar status to decide:\n\t *\n\t * - if it is enabled, we show a TOGGLE\n\t * - if it is disabled, we show a BUTTON\n\t */\n\tif (\n\t\tisPublished ||\n\t\t( postStatusHasChanged &&\n\t\t\t! [ 'future', 'publish' ].includes( postStatus ) ) ||\n\t\t( isScheduled && isBeingScheduled ) ||\n\t\t( isPending && ! hasPublishAction && ! isSmallerThanMediumViewport )\n\t) {\n\t\tcomponent = IS_BUTTON;\n\t} else if ( isSmallerThanMediumViewport || isPublishSidebarEnabled ) {\n\t\tcomponent = IS_TOGGLE;\n\t} else {\n\t\tcomponent = IS_BUTTON;\n\t}\n\n\treturn (\n\t\t<PostPublishButton\n\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\tisOpen={ isPublishSidebarOpened }\n\t\t\tisToggle={ component === IS_TOGGLE }\n\t\t\tonToggle={ togglePublishSidebar }\n\t\t\tsetEntitiesSavedStatesCallback={ setEntitiesSavedStatesCallback }\n\t\t/>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select ) => ( {\n\t\thasPublishAction:\n\t\t\tselect( editorStore ).getCurrentPost()?._links?.[\n\t\t\t\t'wp:action-publish'\n\t\t\t] ?? false,\n\t\tisBeingScheduled: select( editorStore ).isEditedPostBeingScheduled(),\n\t\tisPending: select( editorStore ).isCurrentPostPending(),\n\t\tisPublished: select( editorStore ).isCurrentPostPublished(),\n\t\tisPublishSidebarEnabled:\n\t\t\tselect( editorStore ).isPublishSidebarEnabled(),\n\t\tisPublishSidebarOpened: select( editorStore ).isPublishSidebarOpened(),\n\t\tisScheduled: select( editorStore ).isCurrentPostScheduled(),\n\t\tpostStatus: select( editorStore ).getEditedPostAttribute( 'status' ),\n\t\tpostStatusHasChanged: select( editorStore ).getPostEdits()?.status,\n\t} ) ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { togglePublishSidebar } = dispatch( editorStore );\n\t\treturn {\n\t\t\ttogglePublishSidebar,\n\t\t};\n\t} )\n)( PostPublishButtonOrToggle );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","Dropdown","__","sprintf","useState","useMemo","useSelect","PostScheduleCheck","PostScheduleForm","usePostScheduleLabel","PostPanelRow","store","editorStore","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","PATTERN_POST_TYPE","NAVIGATION_POST_TYPE","DESIGN_POST_TYPES","PostSchedulePanel","popoverAnchor","setPopoverAnchor","postType","select","getCurrentPostType","popoverProps","anchor","placement","label","fullLabel","full","includes","createElement","ref","focusOnMount","className","contentClassName","renderToggle","onToggle","isOpen","
|
|
1
|
+
{"version":3,"names":["Button","Dropdown","__","sprintf","useState","useMemo","useSelect","PostScheduleCheck","PostScheduleForm","usePostScheduleLabel","PostPanelRow","store","editorStore","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","PATTERN_POST_TYPE","NAVIGATION_POST_TYPE","DESIGN_POST_TYPES","PostSchedulePanel","popoverAnchor","setPopoverAnchor","postType","select","getCurrentPostType","popoverProps","anchor","placement","label","fullLabel","full","includes","createElement","ref","focusOnMount","className","contentClassName","renderToggle","onToggle","isOpen","size","variant","onClick","showTooltip","renderContent","onClose"],"sources":["@wordpress/editor/src/components/post-schedule/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Dropdown } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleCheck from './check';\nimport PostScheduleForm from './index';\nimport { usePostScheduleLabel } from './label';\nimport PostPanelRow from '../post-panel-row';\nimport { store as editorStore } from '../../store';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n} from '../../store/constants';\n\nconst DESIGN_POST_TYPES = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n];\n\nexport default function PostSchedulePanel() {\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst postType = useSelect(\n\t\t( select ) => select( editorStore ).getCurrentPostType(),\n\t\t[]\n\t);\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Change publish date' ),\n\t\t\tplacement: 'bottom-end',\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst label = usePostScheduleLabel();\n\tconst fullLabel = usePostScheduleLabel( { full: true } );\n\tif ( DESIGN_POST_TYPES.includes( postType ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostScheduleCheck>\n\t\t\t<PostPanelRow label={ __( 'Publish' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\tclassName=\"editor-post-schedule__panel-dropdown\"\n\t\t\t\t\tcontentClassName=\"editor-post-schedule__dialog\"\n\t\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tclassName=\"editor-post-schedule__dialog-toggle\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Current post date.\n\t\t\t\t\t\t\t\t__( 'Change date: %s' ),\n\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ fullLabel }\n\t\t\t\t\t\t\tshowTooltip={ label !== fullLabel }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<PostScheduleForm onClose={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostScheduleCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,QAAQ,QAAQ,uBAAuB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;AACtD,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,SAAS;AACvC,OAAOC,gBAAgB,MAAM,SAAS;AACtC,SAASC,oBAAoB,QAAQ,SAAS;AAC9C,OAAOC,YAAY,MAAM,mBAAmB;AAC5C,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAClD,SACCC,kBAAkB,EAClBC,uBAAuB,EACvBC,iBAAiB,EACjBC,oBAAoB,QACd,uBAAuB;AAE9B,MAAMC,iBAAiB,GAAG,CACzBJ,kBAAkB,EAClBC,uBAAuB,EACvBC,iBAAiB,EACjBC,oBAAoB,CACpB;AAED,eAAe,SAASE,iBAAiBA,CAAA,EAAG;EAC3C,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGhB,QAAQ,CAAE,IAAK,CAAC;EAC5D,MAAMiB,QAAQ,GAAGf,SAAS,CACvBgB,MAAM,IAAMA,MAAM,CAAEV,WAAY,CAAC,CAACW,kBAAkB,CAAC,CAAC,EACxD,EACD,CAAC;EACD;EACA,MAAMC,YAAY,GAAGnB,OAAO,CAC3B,OAAQ;IACP;IACA;IACAoB,MAAM,EAAEN,aAAa;IACrB,YAAY,EAAEjB,EAAE,CAAE,qBAAsB,CAAC;IACzCwB,SAAS,EAAE;EACZ,CAAC,CAAE,EACH,CAAEP,aAAa,CAChB,CAAC;EAED,MAAMQ,KAAK,GAAGlB,oBAAoB,CAAC,CAAC;EACpC,MAAMmB,SAAS,GAAGnB,oBAAoB,CAAE;IAAEoB,IAAI,EAAE;EAAK,CAAE,CAAC;EACxD,IAAKZ,iBAAiB,CAACa,QAAQ,CAAET,QAAS,CAAC,EAAG;IAC7C,OAAO,IAAI;EACZ;EAEA,OACCU,aAAA,CAACxB,iBAAiB,QACjBwB,aAAA,CAACrB,YAAY;IAACiB,KAAK,EAAGzB,EAAE,CAAE,SAAU,CAAG;IAAC8B,GAAG,EAAGZ;EAAkB,GAC/DW,aAAA,CAAC9B,QAAQ;IACRuB,YAAY,EAAGA,YAAc;IAC7BS,YAAY;IACZC,SAAS,EAAC,sCAAsC;IAChDC,gBAAgB,EAAC,8BAA8B;IAC/CC,YAAY,EAAGA,CAAE;MAAEC,QAAQ;MAAEC;IAAO,CAAC,KACpCP,aAAA,CAAC/B,MAAM;MACNuC,IAAI,EAAC,SAAS;MACdL,SAAS,EAAC,qCAAqC;MAC/CM,OAAO,EAAC,UAAU;MAClBC,OAAO,EAAGJ,QAAU;MACpB,cAAalC,OAAO;MACnB;MACAD,EAAE,CAAE,iBAAkB,CAAC,EACvByB,KACD,CAAG;MACHA,KAAK,EAAGC,SAAW;MACnBc,WAAW,EAAGf,KAAK,KAAKC,SAAW;MACnC,iBAAgBU;IAAQ,GAEtBX,KACK,CACN;IACHgB,aAAa,EAAGA,CAAE;MAAEC;IAAQ,CAAC,KAC5Bb,aAAA,CAACvB,gBAAgB;MAACoC,OAAO,EAAGA;IAAS,CAAE;EACrC,CACH,CACY,CACI,CAAC;AAEtB","ignoreList":[]}
|
|
@@ -14,13 +14,14 @@ import { useState, useMemo } from '@wordpress/element';
|
|
|
14
14
|
import { store as coreStore } from '@wordpress/core-data';
|
|
15
15
|
import { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';
|
|
16
16
|
import { useInstanceId } from '@wordpress/compose';
|
|
17
|
+
import { Icon, chevronDownSmall } from '@wordpress/icons';
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Internal dependencies
|
|
20
21
|
*/
|
|
21
22
|
import { TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE, NAVIGATION_POST_TYPE } from '../../store/constants';
|
|
23
|
+
import PostPanelRow from '../post-panel-row';
|
|
22
24
|
import { store as editorStore } from '../../store';
|
|
23
|
-
import { Icon, chevronDownSmall } from '@wordpress/icons';
|
|
24
25
|
function PostStatusLabel({
|
|
25
26
|
canEdit
|
|
26
27
|
}) {
|
|
@@ -130,11 +131,6 @@ export default function PostStatus() {
|
|
|
130
131
|
if (DESIGN_POST_TYPES.includes(postType)) {
|
|
131
132
|
return null;
|
|
132
133
|
}
|
|
133
|
-
if (!canEdit) {
|
|
134
|
-
return createElement("div", {
|
|
135
|
-
className: "editor-post-status"
|
|
136
|
-
}, createElement(PostStatusLabel, null));
|
|
137
|
-
}
|
|
138
134
|
const updatePost = ({
|
|
139
135
|
status: newStatus = status,
|
|
140
136
|
password: newPassword = password,
|
|
@@ -174,12 +170,14 @@ export default function PostStatus() {
|
|
|
174
170
|
password: newPassword
|
|
175
171
|
});
|
|
176
172
|
};
|
|
177
|
-
return createElement(
|
|
173
|
+
return createElement(PostPanelRow, {
|
|
174
|
+
label: __('Status'),
|
|
175
|
+
ref: setPopoverAnchor
|
|
176
|
+
}, canEdit ? createElement(Dropdown, {
|
|
178
177
|
className: "editor-post-status",
|
|
179
178
|
contentClassName: "editor-change-status__content",
|
|
180
179
|
popoverProps: popoverProps,
|
|
181
180
|
focusOnMount: true,
|
|
182
|
-
ref: setPopoverAnchor,
|
|
183
181
|
renderToggle: ({
|
|
184
182
|
onToggle
|
|
185
183
|
}) => createElement(Button, {
|
|
@@ -226,6 +224,8 @@ export default function PostStatus() {
|
|
|
226
224
|
__next40pxDefaultSize: true,
|
|
227
225
|
__nextHasNoMarginBottom: true
|
|
228
226
|
}))))))
|
|
229
|
-
})
|
|
227
|
+
}) : createElement("div", {
|
|
228
|
+
className: "editor-post-status"
|
|
229
|
+
}, createElement(PostStatusLabel, null)));
|
|
230
230
|
}
|
|
231
231
|
//# sourceMappingURL=index.js.map
|