@wordpress/editor 13.12.0 → 13.12.2
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/build/components/deprecated.js +4 -5
- package/build/components/deprecated.js.map +1 -1
- package/build/components/editor-help/help-detail-navigation-screen.native.js +2 -4
- package/build/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
- package/build/components/editor-help/index.native.js +2 -4
- package/build/components/editor-help/index.native.js.map +1 -1
- package/build/components/editor-history/redo.js +2 -6
- package/build/components/editor-history/redo.js.map +1 -1
- package/build/components/editor-history/undo.js +2 -6
- package/build/components/editor-history/undo.js.map +1 -1
- package/build/components/entities-saved-states/hooks/use-is-dirty.js +3 -1
- package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
- package/build/components/entities-saved-states/index.js +8 -9
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/index.js +9 -0
- package/build/components/index.js.map +1 -1
- package/build/components/page-attributes/order.js +2 -1
- package/build/components/page-attributes/order.js.map +1 -1
- package/build/components/post-excerpt/check.js +2 -4
- package/build/components/post-excerpt/check.js.map +1 -1
- package/build/components/post-featured-image/check.js +2 -4
- package/build/components/post-featured-image/check.js.map +1 -1
- package/build/components/post-format/check.js +2 -4
- package/build/components/post-format/check.js.map +1 -1
- package/build/components/post-publish-button/index.js +4 -6
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-panel/index.js +4 -5
- package/build/components/post-publish-panel/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-upload-media.js +150 -0
- package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -0
- package/build/components/post-publish-panel/prepublish.js +3 -1
- package/build/components/post-publish-panel/prepublish.js.map +1 -1
- package/build/components/post-sync-status/index.js +67 -0
- package/build/components/post-sync-status/index.js.map +1 -0
- package/build/components/post-taxonomies/flat-term-selector.js +25 -34
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-title/index.js +8 -1
- package/build/components/post-title/index.js.map +1 -1
- package/build/components/post-visibility/index.js +4 -7
- package/build/components/post-visibility/index.js.map +1 -1
- package/build/components/provider/index.js +3 -5
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js +5 -10
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +1 -1
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/components/provider/with-registry-provider.js +4 -2
- package/build/components/provider/with-registry-provider.js.map +1 -1
- package/build/components/table-of-contents/index.js +2 -4
- package/build/components/table-of-contents/index.js.map +1 -1
- package/build/hooks/custom-sources-backwards-compatibility.js +4 -7
- package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
- package/build/{lockUnlock.js → lock-unlock.js} +1 -1
- package/build/lock-unlock.js.map +1 -0
- package/build/private-apis.js +1 -1
- package/build/private-apis.js.map +1 -1
- package/build-module/components/deprecated.js +4 -4
- package/build-module/components/deprecated.js.map +1 -1
- package/build-module/components/editor-help/help-detail-navigation-screen.native.js +2 -3
- package/build-module/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
- package/build-module/components/editor-help/index.native.js +2 -3
- package/build-module/components/editor-help/index.native.js.map +1 -1
- package/build-module/components/editor-history/redo.js +2 -3
- package/build-module/components/editor-history/redo.js.map +1 -1
- package/build-module/components/editor-history/undo.js +2 -3
- package/build-module/components/editor-history/undo.js.map +1 -1
- package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +3 -1
- package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +8 -8
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/page-attributes/order.js +2 -1
- package/build-module/components/page-attributes/order.js.map +1 -1
- package/build-module/components/post-excerpt/check.js +2 -3
- package/build-module/components/post-excerpt/check.js.map +1 -1
- package/build-module/components/post-featured-image/check.js +2 -3
- package/build-module/components/post-featured-image/check.js.map +1 -1
- package/build-module/components/post-format/check.js +2 -3
- package/build-module/components/post-format/check.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +4 -5
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-panel/index.js +4 -4
- package/build-module/components/post-publish-panel/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.js +138 -0
- package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -0
- package/build-module/components/post-publish-panel/prepublish.js +2 -1
- package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
- package/build-module/components/post-sync-status/index.js +56 -0
- package/build-module/components/post-sync-status/index.js.map +1 -0
- package/build-module/components/post-taxonomies/flat-term-selector.js +25 -32
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-title/index.js +8 -1
- package/build-module/components/post-title/index.js.map +1 -1
- package/build-module/components/post-visibility/index.js +4 -4
- package/build-module/components/post-visibility/index.js.map +1 -1
- package/build-module/components/provider/index.js +3 -4
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/index.native.js +5 -9
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +1 -1
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/provider/with-registry-provider.js +4 -2
- package/build-module/components/provider/with-registry-provider.js.map +1 -1
- package/build-module/components/table-of-contents/index.js +2 -3
- package/build-module/components/table-of-contents/index.js.map +1 -1
- package/build-module/hooks/custom-sources-backwards-compatibility.js +4 -4
- package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
- package/build-module/{lockUnlock.js → lock-unlock.js} +1 -1
- package/build-module/lock-unlock.js.map +1 -0
- package/build-module/private-apis.js +1 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-style/style-rtl.css +15 -1
- package/build-style/style.css +15 -1
- package/package.json +30 -31
- package/src/components/editor-help/test/index.native.js +3 -2
- package/src/components/entities-saved-states/hooks/use-is-dirty.js +2 -0
- package/src/components/index.js +1 -0
- package/src/components/post-publish-panel/maybe-upload-media.js +167 -0
- package/src/components/post-publish-panel/prepublish.js +2 -0
- package/src/components/post-publish-panel/style.scss +1 -1
- package/src/components/post-sync-status/index.js +55 -0
- package/src/components/post-sync-status/style.scss +16 -0
- package/src/components/post-taxonomies/flat-term-selector.js +20 -30
- package/src/components/post-title/index.js +3 -1
- package/src/components/provider/index.js +1 -1
- package/src/components/provider/index.native.js +2 -9
- package/src/components/provider/use-block-editor-settings.js +1 -0
- package/src/private-apis.js +1 -1
- package/src/style.scss +1 -0
- package/build/lockUnlock.js.map +0 -1
- package/build-module/lockUnlock.js.map +0 -1
- /package/src/{lockUnlock.js → lock-unlock.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-excerpt/check.js"],"names":["PostExcerptCheck","props"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-excerpt/check.js"],"names":["PostExcerptCheck","props"],"mappings":";;;;;;;;;;;AAGA;;AAHA;AACA;AACA;AAGA,SAASA,gBAAT,CAA2BC,KAA3B,EAAmC;AAClC,SAAO,4BAAC,6BAAD,OAA2BA,KAA3B;AAAmC,IAAA,WAAW,EAAC;AAA/C,IAAP;AACA;;eAEcD,gB","sourcesContent":["/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\n\nfunction PostExcerptCheck( props ) {\n\treturn <PostTypeSupportCheck { ...props } supportKeys=\"excerpt\" />;\n}\n\nexport default PostExcerptCheck;\n"]}
|
|
@@ -9,8 +9,6 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
12
|
var _postTypeSupportCheck = _interopRequireDefault(require("../post-type-support-check"));
|
|
15
13
|
|
|
16
14
|
var _themeSupportCheck = _interopRequireDefault(require("../theme-support-check"));
|
|
@@ -21,9 +19,9 @@ var _themeSupportCheck = _interopRequireDefault(require("../theme-support-check"
|
|
|
21
19
|
function PostFeaturedImageCheck(props) {
|
|
22
20
|
return (0, _element.createElement)(_themeSupportCheck.default, {
|
|
23
21
|
supportKeys: "post-thumbnails"
|
|
24
|
-
}, (0, _element.createElement)(_postTypeSupportCheck.default,
|
|
22
|
+
}, (0, _element.createElement)(_postTypeSupportCheck.default, { ...props,
|
|
25
23
|
supportKeys: "thumbnail"
|
|
26
|
-
}))
|
|
24
|
+
}));
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
var _default = PostFeaturedImageCheck;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-featured-image/check.js"],"names":["PostFeaturedImageCheck","props"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-featured-image/check.js"],"names":["PostFeaturedImageCheck","props"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIA,SAASA,sBAAT,CAAiCC,KAAjC,EAAyC;AACxC,SACC,4BAAC,0BAAD;AAAmB,IAAA,WAAW,EAAC;AAA/B,KACC,4BAAC,6BAAD,OAA2BA,KAA3B;AAAmC,IAAA,WAAW,EAAC;AAA/C,IADD,CADD;AAKA;;eAEcD,sB","sourcesContent":["/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport ThemeSupportCheck from '../theme-support-check';\n\nfunction PostFeaturedImageCheck( props ) {\n\treturn (\n\t\t<ThemeSupportCheck supportKeys=\"post-thumbnails\">\n\t\t\t<PostTypeSupportCheck { ...props } supportKeys=\"thumbnail\" />\n\t\t</ThemeSupportCheck>\n\t);\n}\n\nexport default PostFeaturedImageCheck;\n"]}
|
|
@@ -9,8 +9,6 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
12
|
var _data = require("@wordpress/data");
|
|
15
13
|
|
|
16
14
|
var _postTypeSupportCheck = _interopRequireDefault(require("../post-type-support-check"));
|
|
@@ -28,9 +26,9 @@ function PostFormatCheck({
|
|
|
28
26
|
disablePostFormats,
|
|
29
27
|
...props
|
|
30
28
|
}) {
|
|
31
|
-
return !disablePostFormats && (0, _element.createElement)(_postTypeSupportCheck.default,
|
|
29
|
+
return !disablePostFormats && (0, _element.createElement)(_postTypeSupportCheck.default, { ...props,
|
|
32
30
|
supportKeys: "post-formats"
|
|
33
|
-
})
|
|
31
|
+
});
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
var _default = (0, _data.withSelect)(select => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-format/check.js"],"names":["PostFormatCheck","disablePostFormats","props","select","editorSettings","editorStore","getEditorSettings"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-format/check.js"],"names":["PostFormatCheck","disablePostFormats","props","select","editorSettings","editorStore","getEditorSettings"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIA,SAASA,eAAT,CAA0B;AAAEC,EAAAA,kBAAF;AAAsB,KAAGC;AAAzB,CAA1B,EAA6D;AAC5D,SACC,CAAED,kBAAF,IACC,4BAAC,6BAAD,OAA2BC,KAA3B;AAAmC,IAAA,WAAW,EAAC;AAA/C,IAFF;AAKA;;eAEc,sBAAcC,MAAF,IAAc;AACxC,QAAMC,cAAc,GAAGD,MAAM,CAAEE,YAAF,CAAN,CAAsBC,iBAAtB,EAAvB;AACA,SAAO;AACNL,IAAAA,kBAAkB,EAAEG,cAAc,CAACH;AAD7B,GAAP;AAGA,CALc,EAKVD,eALU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\nfunction PostFormatCheck( { disablePostFormats, ...props } ) {\n\treturn (\n\t\t! disablePostFormats && (\n\t\t\t<PostTypeSupportCheck { ...props } supportKeys=\"post-formats\" />\n\t\t)\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\tconst editorSettings = select( editorStore ).getEditorSettings();\n\treturn {\n\t\tdisablePostFormats: editorSettings.disablePostFormats,\n\t};\n} )( PostFormatCheck );\n"]}
|
|
@@ -9,8 +9,6 @@ exports.default = exports.PostPublishButton = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
13
|
|
|
16
14
|
var _components = require("@wordpress/components");
|
|
@@ -188,13 +186,13 @@ class PostPublishButton extends _element.Component {
|
|
|
188
186
|
});
|
|
189
187
|
const componentProps = isToggle ? toggleProps : buttonProps;
|
|
190
188
|
const componentChildren = isToggle ? toggleChildren : buttonChildren;
|
|
191
|
-
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.Button,
|
|
192
|
-
ref: this.buttonNode
|
|
193
|
-
|
|
189
|
+
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.Button, {
|
|
190
|
+
ref: this.buttonNode,
|
|
191
|
+
...componentProps,
|
|
194
192
|
className: (0, _classnames.default)(componentProps.className, 'editor-post-publish-button__button', {
|
|
195
193
|
'has-changes-dot': hasNonPostEntityChanges
|
|
196
194
|
})
|
|
197
|
-
}
|
|
195
|
+
}, componentChildren));
|
|
198
196
|
}
|
|
199
197
|
|
|
200
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-button/index.js"],"names":["noop","PostPublishButton","Component","constructor","props","buttonNode","createOnClick","bind","closeEntitiesSavedStates","state","entitiesSavedStatesCallback","componentDidMount","focusOnMount","timeoutID","setTimeout","current","focus","componentWillUnmount","clearTimeout","callback","args","hasNonPostEntityChanges","setEntitiesSavedStatesCallback","setState","savedEntities","postType","postId","some","elt","kind","name","key","render","forceIsDirty","forceIsSaving","hasPublishAction","isBeingScheduled","isOpen","isPostSavingLocked","isPublishable","isPublished","isSaveable","isSaving","isAutoSaving","isToggle","onSave","onStatusChange","onSubmit","onToggle","visibility","isSavingNonPostEntityChanges","isButtonDisabled","isToggleDisabled","publishStatus","onClickButton","onClickToggle","buttonProps","className","isBusy","variant","onClick","toggleProps","toggleChildren","buttonChildren","componentProps","componentChildren","select","isSavingPost","isAutosavingPost","isEditedPostBeingScheduled","getEditedPostVisibility","isCurrentPostPublished","isEditedPostSaveable","isEditedPostPublishable","getCurrentPost","getCurrentPostType","getCurrentPostId","editorStore","_isAutoSaving","_links","dispatch","editPost","savePost","status","undoIgnore"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\t// This timeout is necessary to make sure the `useEffect` hook of\n\t\t\t// `useFocusReturn` gets the correct element (the button that opens the\n\t\t\t// PostPublishPanel) otherwise it will get this button.\n\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\tthis.buttonNode.current.focus();\n\t\t\t}, 0 );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timeoutID );\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =\n\t\t\t\tthis.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\tif ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsavedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\tforceIsSaving,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tonSave,\n\t\t\tonStatusChange,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\tforceIsSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\tforceIsSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tlet publishStatus;\n\t\tif ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t} else {\n\t\t\tpublishStatus = 'publish';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tonStatusChange( publishStatus );\n\t\t\tonSave();\n\t\t};\n\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\n\t\tconst toggleChildren = isBeingScheduled\n\t\t\t? __( 'Schedule…' )\n\t\t\t: __( 'Publish' );\n\t\tconst buttonChildren = (\n\t\t\t<PublishButtonLabel\n\t\t\t\tforceIsSaving={ forceIsSaving }\n\t\t\t\thasNonPostEntityChanges={ hasNonPostEntityChanges }\n\t\t\t/>\n\t\t);\n\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\tconst componentChildren = isToggle ? toggleChildren : buttonChildren;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcomponentProps.className,\n\t\t\t\t\t\t'editor-post-publish-button__button',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-changes-dot': hasNonPostEntityChanges,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ componentChildren }\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst _isAutoSaving = isAutosavingPost();\n\t\treturn {\n\t\t\tisSaving: isSavingPost() || _isAutoSaving,\n\t\t\tisAutoSaving: _isAutoSaving,\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonStatusChange: ( status ) =>\n\t\t\t\teditPost( { status }, { undoIgnore: true } ),\n\t\t\tonSave: savePost,\n\t\t};\n\t} ),\n] )( PostPublishButton );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-button/index.js"],"names":["noop","PostPublishButton","Component","constructor","props","buttonNode","createOnClick","bind","closeEntitiesSavedStates","state","entitiesSavedStatesCallback","componentDidMount","focusOnMount","timeoutID","setTimeout","current","focus","componentWillUnmount","clearTimeout","callback","args","hasNonPostEntityChanges","setEntitiesSavedStatesCallback","setState","savedEntities","postType","postId","some","elt","kind","name","key","render","forceIsDirty","forceIsSaving","hasPublishAction","isBeingScheduled","isOpen","isPostSavingLocked","isPublishable","isPublished","isSaveable","isSaving","isAutoSaving","isToggle","onSave","onStatusChange","onSubmit","onToggle","visibility","isSavingNonPostEntityChanges","isButtonDisabled","isToggleDisabled","publishStatus","onClickButton","onClickToggle","buttonProps","className","isBusy","variant","onClick","toggleProps","toggleChildren","buttonChildren","componentProps","componentChildren","select","isSavingPost","isAutosavingPost","isEditedPostBeingScheduled","getEditedPostVisibility","isCurrentPostPublished","isEditedPostSaveable","isEditedPostPublishable","getCurrentPost","getCurrentPostType","getCurrentPostId","editorStore","_isAutoSaving","_links","dispatch","editPost","savePost","status","undoIgnore"],"mappings":";;;;;;;;;AASA;;AANA;;AAKA;;AAEA;;AACA;;AACA;;AAKA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;AAIA,MAAMA,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEO,MAAMC,iBAAN,SAAgCC,kBAAhC,CAA0C;AAChDC,EAAAA,WAAW,CAAEC,KAAF,EAAU;AACpB,UAAOA,KAAP;AACA,SAAKC,UAAL,GAAkB,yBAAlB;AAEA,SAAKC,aAAL,GAAqB,KAAKA,aAAL,CAAmBC,IAAnB,CAAyB,IAAzB,CAArB;AACA,SAAKC,wBAAL,GACC,KAAKA,wBAAL,CAA8BD,IAA9B,CAAoC,IAApC,CADD;AAGA,SAAKE,KAAL,GAAa;AACZC,MAAAA,2BAA2B,EAAE;AADjB,KAAb;AAGA;;AAEDC,EAAAA,iBAAiB,GAAG;AACnB,QAAK,KAAKP,KAAL,CAAWQ,YAAhB,EAA+B;AAC9B;AACA;AACA;AACA,WAAKC,SAAL,GAAiBC,UAAU,CAAE,MAAM;AAClC,aAAKT,UAAL,CAAgBU,OAAhB,CAAwBC,KAAxB;AACA,OAF0B,EAExB,CAFwB,CAA3B;AAGA;AACD;;AAEDC,EAAAA,oBAAoB,GAAG;AACtBC,IAAAA,YAAY,CAAE,KAAKL,SAAP,CAAZ;AACA;;AAEDP,EAAAA,aAAa,CAAEa,QAAF,EAAa;AACzB,WAAO,CAAE,GAAGC,IAAL,KAAe;AACrB,YAAM;AAAEC,QAAAA,uBAAF;AAA2BC,QAAAA;AAA3B,UACL,KAAKlB,KADN,CADqB,CAGrB;AACA;AACA;AACA;AACA;;AACA,UAAKiB,uBAAuB,IAAIC,8BAAhC,EAAiE;AAChE;AACA;AACA;AACA,aAAKC,QAAL,CAAe;AACdb,UAAAA,2BAA2B,EAAE,MAAMS,QAAQ,CAAE,GAAGC,IAAL;AAD7B,SAAf,EAJgE,CAQhE;AACA;AACA;AACA;;AACAE,QAAAA,8BAA8B,CAC7B,MAAM,KAAKd,wBADkB,CAA9B;AAGA,eAAOR,IAAP;AACA;;AAED,aAAOmB,QAAQ,CAAE,GAAGC,IAAL,CAAf;AACA,KA3BD;AA4BA;;AAEDZ,EAAAA,wBAAwB,CAAEgB,aAAF,EAAkB;AACzC,UAAM;AAAEC,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,QAAuB,KAAKtB,KAAlC;AACA,UAAM;AAAEM,MAAAA;AAAF,QAAkC,KAAKD,KAA7C;AACA,SAAKc,QAAL,CAAe;AAAEb,MAAAA,2BAA2B,EAAE;AAA/B,KAAf,EAAuD,MAAM;AAC5D,UACCc,aAAa,IACbA,aAAa,CAACG,IAAd,CACGC,GAAF,IACCA,GAAG,CAACC,IAAJ,KAAa,UAAb,IACAD,GAAG,CAACE,IAAJ,KAAaL,QADb,IAEAG,GAAG,CAACG,GAAJ,KAAYL,MAJd,CAFD,EAQE;AACD;AACAhB,QAAAA,2BAA2B;AAC3B;AACD,KAbD;AAcA;;AAEDsB,EAAAA,MAAM,GAAG;AACR,UAAM;AACLC,MAAAA,YADK;AAELC,MAAAA,aAFK;AAGLC,MAAAA,gBAHK;AAILC,MAAAA,gBAJK;AAKLC,MAAAA,MALK;AAMLC,MAAAA,kBANK;AAOLC,MAAAA,aAPK;AAQLC,MAAAA,WARK;AASLC,MAAAA,UATK;AAULC,MAAAA,QAVK;AAWLC,MAAAA,YAXK;AAYLC,MAAAA,QAZK;AAaLC,MAAAA,MAbK;AAcLC,MAAAA,cAdK;AAeLC,MAAAA,QAAQ,GAAG/C,IAfN;AAgBLgD,MAAAA,QAhBK;AAiBLC,MAAAA,UAjBK;AAkBL5B,MAAAA,uBAlBK;AAmBL6B,MAAAA;AAnBK,QAoBF,KAAK9C,KApBT;AAsBA,UAAM+C,gBAAgB,GACrB,CAAET,QAAQ,IACTR,aADC,IAED,CAAEO,UAFD,IAGDH,kBAHC,IAIC,CAAEC,aAAF,IAAmB,CAAEN,YAJxB,MAKE,CAAEZ,uBAAF,IAA6B6B,4BAL/B,CADD;AAQA,UAAME,gBAAgB,GACrB,CAAEZ,WAAW,IACZE,QADC,IAEDR,aAFC,IAGD,CAAEO,UAHD,IAIC,CAAEF,aAAF,IAAmB,CAAEN,YAJxB,MAKE,CAAEZ,uBAAF,IAA6B6B,4BAL/B,CADD;AAQA,QAAIG,aAAJ;;AACA,QAAK,CAAElB,gBAAP,EAA0B;AACzBkB,MAAAA,aAAa,GAAG,SAAhB;AACA,KAFD,MAEO,IAAKJ,UAAU,KAAK,SAApB,EAAgC;AACtCI,MAAAA,aAAa,GAAG,SAAhB;AACA,KAFM,MAEA,IAAKjB,gBAAL,EAAwB;AAC9BiB,MAAAA,aAAa,GAAG,QAAhB;AACA,KAFM,MAEA;AACNA,MAAAA,aAAa,GAAG,SAAhB;AACA;;AAED,UAAMC,aAAa,GAAG,MAAM;AAC3B,UAAKH,gBAAL,EAAwB;AACvB;AACA;;AACDJ,MAAAA,QAAQ;AACRD,MAAAA,cAAc,CAAEO,aAAF,CAAd;AACAR,MAAAA,MAAM;AACN,KAPD;;AASA,UAAMU,aAAa,GAAG,MAAM;AAC3B,UAAKH,gBAAL,EAAwB;AACvB;AACA;;AACDJ,MAAAA,QAAQ;AACR,KALD;;AAOA,UAAMQ,WAAW,GAAG;AACnB,uBAAiBL,gBADE;AAEnBM,MAAAA,SAAS,EAAE,4BAFQ;AAGnBC,MAAAA,MAAM,EAAE,CAAEf,YAAF,IAAkBD,QAHP;AAInBiB,MAAAA,OAAO,EAAE,SAJU;AAKnBC,MAAAA,OAAO,EAAE,KAAKtD,aAAL,CAAoBgD,aAApB;AALU,KAApB;AAQA,UAAMO,WAAW,GAAG;AACnB,uBAAiBT,gBADE;AAEnB,uBAAiBf,MAFE;AAGnBoB,MAAAA,SAAS,EAAE,mCAHQ;AAInBC,MAAAA,MAAM,EAAEhB,QAAQ,IAAIF,WAJD;AAKnBmB,MAAAA,OAAO,EAAE,SALU;AAMnBC,MAAAA,OAAO,EAAE,KAAKtD,aAAL,CAAoBiD,aAApB;AANU,KAApB;AASA,UAAMO,cAAc,GAAG1B,gBAAgB,GACpC,cAAI,WAAJ,CADoC,GAEpC,cAAI,SAAJ,CAFH;AAGA,UAAM2B,cAAc,GACnB,4BAAC,cAAD;AACC,MAAA,aAAa,EAAG7B,aADjB;AAEC,MAAA,uBAAuB,EAAGb;AAF3B,MADD;AAOA,UAAM2C,cAAc,GAAGpB,QAAQ,GAAGiB,WAAH,GAAiBL,WAAhD;AACA,UAAMS,iBAAiB,GAAGrB,QAAQ,GAAGkB,cAAH,GAAoBC,cAAtD;AACA,WACC,qDACC,4BAAC,kBAAD;AACC,MAAA,GAAG,EAAG,KAAK1D,UADZ;AAAA,SAEM2D,cAFN;AAGC,MAAA,SAAS,EAAG,yBACXA,cAAc,CAACP,SADJ,EAEX,oCAFW,EAGX;AACC,2BAAmBpC;AADpB,OAHW;AAHb,OAWG4C,iBAXH,CADD,CADD;AAiBA;;AA/L+C;;;;eAkMlC,sBAAS,CACvB,sBAAcC,MAAF,IAAc;AAAA;;AACzB,QAAM;AACLC,IAAAA,YADK;AAELC,IAAAA,gBAFK;AAGLC,IAAAA,0BAHK;AAILC,IAAAA,uBAJK;AAKLC,IAAAA,sBALK;AAMLC,IAAAA,oBANK;AAOLC,IAAAA,uBAPK;AAQLnC,IAAAA,kBARK;AASLoC,IAAAA,cATK;AAULC,IAAAA,kBAVK;AAWLC,IAAAA,gBAXK;AAYLvD,IAAAA,uBAZK;AAaL6B,IAAAA;AAbK,MAcFgB,MAAM,CAAEW,YAAF,CAdV;;AAeA,QAAMC,aAAa,GAAGV,gBAAgB,EAAtC;;AACA,SAAO;AACN1B,IAAAA,QAAQ,EAAEyB,YAAY,MAAMW,aADtB;AAENnC,IAAAA,YAAY,EAAEmC,aAFR;AAGN1C,IAAAA,gBAAgB,EAAEiC,0BAA0B,EAHtC;AAINpB,IAAAA,UAAU,EAAEqB,uBAAuB,EAJ7B;AAKN7B,IAAAA,UAAU,EAAE+B,oBAAoB,EAL1B;AAMNlC,IAAAA,kBAAkB,EAAEA,kBAAkB,EANhC;AAONC,IAAAA,aAAa,EAAEkC,uBAAuB,EAPhC;AAQNjC,IAAAA,WAAW,EAAE+B,sBAAsB,EAR7B;AASNpC,IAAAA,gBAAgB,2BACfuC,cAAc,GAAGK,MAAjB,GAA2B,mBAA3B,CADe,yEACqC,KAV/C;AAWNtD,IAAAA,QAAQ,EAAEkD,kBAAkB,EAXtB;AAYNjD,IAAAA,MAAM,EAAEkD,gBAAgB,EAZlB;AAaNvD,IAAAA,uBAAuB,EAAEA,uBAAuB,EAb1C;AAcN6B,IAAAA,4BAA4B,EAAEA,4BAA4B;AAdpD,GAAP;AAgBA,CAjCD,CADuB,EAmCvB,wBAAgB8B,QAAF,IAAgB;AAC7B,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAyBF,QAAQ,CAAEH,YAAF,CAAvC;AACA,SAAO;AACN/B,IAAAA,cAAc,EAAIqC,MAAF,IACfF,QAAQ,CAAE;AAAEE,MAAAA;AAAF,KAAF,EAAc;AAAEC,MAAAA,UAAU,EAAE;AAAd,KAAd,CAFH;AAGNvC,IAAAA,MAAM,EAAEqC;AAHF,GAAP;AAKA,CAPD,CAnCuB,CAAT,EA2CVjF,iBA3CU,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\t// This timeout is necessary to make sure the `useEffect` hook of\n\t\t\t// `useFocusReturn` gets the correct element (the button that opens the\n\t\t\t// PostPublishPanel) otherwise it will get this button.\n\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\tthis.buttonNode.current.focus();\n\t\t\t}, 0 );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timeoutID );\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =\n\t\t\t\tthis.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\tif ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsavedEntities.some(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\tforceIsSaving,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tonSave,\n\t\t\tonStatusChange,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\tforceIsSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\tforceIsSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tlet publishStatus;\n\t\tif ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t} else {\n\t\t\tpublishStatus = 'publish';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tonStatusChange( publishStatus );\n\t\t\tonSave();\n\t\t};\n\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\n\t\tconst toggleChildren = isBeingScheduled\n\t\t\t? __( 'Schedule…' )\n\t\t\t: __( 'Publish' );\n\t\tconst buttonChildren = (\n\t\t\t<PublishButtonLabel\n\t\t\t\tforceIsSaving={ forceIsSaving }\n\t\t\t\thasNonPostEntityChanges={ hasNonPostEntityChanges }\n\t\t\t/>\n\t\t);\n\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\tconst componentChildren = isToggle ? toggleChildren : buttonChildren;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcomponentProps.className,\n\t\t\t\t\t\t'editor-post-publish-button__button',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-changes-dot': hasNonPostEntityChanges,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ componentChildren }\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst _isAutoSaving = isAutosavingPost();\n\t\treturn {\n\t\t\tisSaving: isSavingPost() || _isAutoSaving,\n\t\t\tisAutoSaving: _isAutoSaving,\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonStatusChange: ( status ) =>\n\t\t\t\teditPost( { status }, { undoIgnore: true } ),\n\t\t\tonSave: savePost,\n\t\t};\n\t} ),\n] )( PostPublishButton );\n"]}
|
|
@@ -9,8 +9,6 @@ exports.default = exports.PostPublishPanel = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
12
|
var _i18n = require("@wordpress/i18n");
|
|
15
13
|
|
|
16
14
|
var _components = require("@wordpress/components");
|
|
@@ -89,9 +87,10 @@ class PostPublishPanel extends _element.Component {
|
|
|
89
87
|
const isPublishedOrScheduled = isPublished || isScheduled && isBeingScheduled;
|
|
90
88
|
const isPrePublish = !isPublishedOrScheduled && !isSaving;
|
|
91
89
|
const isPostPublish = isPublishedOrScheduled && !isSaving;
|
|
92
|
-
return (0, _element.createElement)("div",
|
|
93
|
-
className: "editor-post-publish-panel"
|
|
94
|
-
|
|
90
|
+
return (0, _element.createElement)("div", {
|
|
91
|
+
className: "editor-post-publish-panel",
|
|
92
|
+
...propsForPanel
|
|
93
|
+
}, (0, _element.createElement)("div", {
|
|
95
94
|
className: "editor-post-publish-panel__header"
|
|
96
95
|
}, isPostPublish ? (0, _element.createElement)(_components.Button, {
|
|
97
96
|
onClick: onClose,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/index.js"],"names":["PostPublishPanel","Component","constructor","arguments","onSubmit","bind","componentDidUpdate","prevProps","isPublished","props","isSaving","isDirty","onClose","hasPublishAction","isPostTypeViewable","render","forceIsDirty","forceIsSaving","isBeingScheduled","isPublishSidebarEnabled","isScheduled","isSavingNonPostEntityChanges","onTogglePublishSidebar","PostPublishExtension","PrePublishExtension","additionalProps","propsForPanel","isPublishedOrScheduled","isPrePublish","isPostPublish","closeSmall","select","getPostType","coreStore","getCurrentPost","getEditedPostAttribute","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostBeingScheduled","isEditedPostDirty","isSavingPost","editorStore","postType","_links","viewable","dispatch","disablePublishSidebar","enablePublishSidebar","withFocusReturn","withConstrainedTabbing"],"mappings":";;;;;;;;;AAIA
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/index.js"],"names":["PostPublishPanel","Component","constructor","arguments","onSubmit","bind","componentDidUpdate","prevProps","isPublished","props","isSaving","isDirty","onClose","hasPublishAction","isPostTypeViewable","render","forceIsDirty","forceIsSaving","isBeingScheduled","isPublishSidebarEnabled","isScheduled","isSavingNonPostEntityChanges","onTogglePublishSidebar","PostPublishExtension","PrePublishExtension","additionalProps","propsForPanel","isPublishedOrScheduled","isPrePublish","isPostPublish","closeSmall","select","getPostType","coreStore","getCurrentPost","getEditedPostAttribute","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostBeingScheduled","isEditedPostDirty","isSavingPost","editorStore","postType","_links","viewable","dispatch","disablePublishSidebar","enablePublishSidebar","withFocusReturn","withConstrainedTabbing"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport {\n\tButton,\n\tSpinner,\n\tCheckboxControl,\n\twithFocusReturn,\n\twithConstrainedTabbing,\n} from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { closeSmall } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostPublishButton from '../post-publish-button';\nimport PostPublishPanelPrepublish from './prepublish';\nimport PostPublishPanelPostpublish from './postpublish';\nimport { store as editorStore } from '../../store';\n\nexport class PostPublishPanel extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onSubmit = this.onSubmit.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Automatically collapse the publish sidebar when a post\n\t\t// is published and the user makes an edit.\n\t\tif (\n\t\t\tprevProps.isPublished &&\n\t\t\t! this.props.isSaving &&\n\t\t\tthis.props.isDirty\n\t\t) {\n\t\t\tthis.props.onClose();\n\t\t}\n\t}\n\n\tonSubmit() {\n\t\tconst { onClose, hasPublishAction, isPostTypeViewable } = this.props;\n\t\tif ( ! hasPublishAction || ! isPostTypeViewable ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\tforceIsSaving,\n\t\t\tisBeingScheduled,\n\t\t\tisPublished,\n\t\t\tisPublishSidebarEnabled,\n\t\t\tisScheduled,\n\t\t\tisSaving,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t\tonClose,\n\t\t\tonTogglePublishSidebar,\n\t\t\tPostPublishExtension,\n\t\t\tPrePublishExtension,\n\t\t\t...additionalProps\n\t\t} = this.props;\n\t\tconst {\n\t\t\thasPublishAction,\n\t\t\tisDirty,\n\t\t\tisPostTypeViewable,\n\t\t\t...propsForPanel\n\t\t} = additionalProps;\n\t\tconst isPublishedOrScheduled =\n\t\t\tisPublished || ( isScheduled && isBeingScheduled );\n\t\tconst isPrePublish = ! isPublishedOrScheduled && ! isSaving;\n\t\tconst isPostPublish = isPublishedOrScheduled && ! isSaving;\n\t\treturn (\n\t\t\t<div className=\"editor-post-publish-panel\" { ...propsForPanel }>\n\t\t\t\t<div className=\"editor-post-publish-panel__header\">\n\t\t\t\t\t{ isPostPublish ? (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\tlabel={ __( 'Close panel' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"editor-post-publish-panel__header-publish-button\">\n\t\t\t\t\t\t\t\t<PostPublishButton\n\t\t\t\t\t\t\t\t\tfocusOnMount={ true }\n\t\t\t\t\t\t\t\t\tonSubmit={ this.onSubmit }\n\t\t\t\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\t\t\t\tforceIsSaving={ forceIsSaving }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"editor-post-publish-panel__header-cancel-button\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdisabled={ isSavingNonPostEntityChanges }\n\t\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"editor-post-publish-panel__content\">\n\t\t\t\t\t{ isPrePublish && (\n\t\t\t\t\t\t<PostPublishPanelPrepublish>\n\t\t\t\t\t\t\t{ PrePublishExtension && <PrePublishExtension /> }\n\t\t\t\t\t\t</PostPublishPanelPrepublish>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isPostPublish && (\n\t\t\t\t\t\t<PostPublishPanelPostpublish focusOnMount={ true }>\n\t\t\t\t\t\t\t{ PostPublishExtension && <PostPublishExtension /> }\n\t\t\t\t\t\t</PostPublishPanelPostpublish>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isSaving && <Spinner /> }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"editor-post-publish-panel__footer\">\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Always show pre-publish checks.' ) }\n\t\t\t\t\t\tchecked={ isPublishSidebarEnabled }\n\t\t\t\t\t\tonChange={ onTogglePublishSidebar }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst {\n\t\t\tgetCurrentPost,\n\t\t\tgetEditedPostAttribute,\n\t\t\tisCurrentPostPublished,\n\t\t\tisCurrentPostScheduled,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tisEditedPostDirty,\n\t\t\tisSavingPost,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst { isPublishSidebarEnabled } = select( editorStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tisPostTypeViewable: postType?.viewable,\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisDirty: isEditedPostDirty(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisPublishSidebarEnabled: isPublishSidebarEnabled(),\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { isPublishSidebarEnabled } ) => {\n\t\tconst { disablePublishSidebar, enablePublishSidebar } =\n\t\t\tdispatch( editorStore );\n\t\treturn {\n\t\t\tonTogglePublishSidebar: () => {\n\t\t\t\tif ( isPublishSidebarEnabled ) {\n\t\t\t\t\tdisablePublishSidebar();\n\t\t\t\t} else {\n\t\t\t\t\tenablePublishSidebar();\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t} ),\n\twithFocusReturn,\n\twithConstrainedTabbing,\n] )( PostPublishPanel );\n"]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PostFormatPanel;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _components = require("@wordpress/components");
|
|
11
|
+
|
|
12
|
+
var _data = require("@wordpress/data");
|
|
13
|
+
|
|
14
|
+
var _i18n = require("@wordpress/i18n");
|
|
15
|
+
|
|
16
|
+
var _icons = require("@wordpress/icons");
|
|
17
|
+
|
|
18
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
19
|
+
|
|
20
|
+
var _blob = require("@wordpress/blob");
|
|
21
|
+
|
|
22
|
+
var _store = require("../../store");
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* WordPress dependencies
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Internal dependencies
|
|
30
|
+
*/
|
|
31
|
+
function flattenBlocks(blocks) {
|
|
32
|
+
const result = [];
|
|
33
|
+
blocks.forEach(block => {
|
|
34
|
+
result.push(block);
|
|
35
|
+
result.push(...flattenBlocks(block.innerBlocks));
|
|
36
|
+
});
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function Image(block) {
|
|
41
|
+
const {
|
|
42
|
+
selectBlock
|
|
43
|
+
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
44
|
+
return (0, _element.createElement)(_components.__unstableMotion.img, {
|
|
45
|
+
tabIndex: 0,
|
|
46
|
+
role: "button",
|
|
47
|
+
"aria-label": (0, _i18n.__)('Select image block.'),
|
|
48
|
+
onClick: () => {
|
|
49
|
+
selectBlock(block.clientId);
|
|
50
|
+
},
|
|
51
|
+
onKeyDown: event => {
|
|
52
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
53
|
+
selectBlock(block.clientId);
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
key: block.clientId,
|
|
58
|
+
alt: block.attributes.alt,
|
|
59
|
+
src: block.attributes.url,
|
|
60
|
+
animate: {
|
|
61
|
+
opacity: 1
|
|
62
|
+
},
|
|
63
|
+
exit: {
|
|
64
|
+
opacity: 0,
|
|
65
|
+
scale: 0
|
|
66
|
+
},
|
|
67
|
+
style: {
|
|
68
|
+
width: '36px',
|
|
69
|
+
height: '36px',
|
|
70
|
+
objectFit: 'cover',
|
|
71
|
+
borderRadius: '2px',
|
|
72
|
+
cursor: 'pointer'
|
|
73
|
+
},
|
|
74
|
+
whileHover: {
|
|
75
|
+
scale: 1.08
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function PostFormatPanel() {
|
|
81
|
+
const [isUploading, setIsUploading] = (0, _element.useState)(false);
|
|
82
|
+
const {
|
|
83
|
+
editorBlocks,
|
|
84
|
+
mediaUpload
|
|
85
|
+
} = (0, _data.useSelect)(select => ({
|
|
86
|
+
editorBlocks: select(_store.store).getEditorBlocks(),
|
|
87
|
+
mediaUpload: select(_blockEditor.store).getSettings().mediaUpload
|
|
88
|
+
}), []);
|
|
89
|
+
const externalImages = flattenBlocks(editorBlocks).filter(block => block.name === 'core/image' && block.attributes.url && !block.attributes.id);
|
|
90
|
+
const {
|
|
91
|
+
updateBlockAttributes
|
|
92
|
+
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
93
|
+
|
|
94
|
+
if (!mediaUpload || !externalImages.length) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const panelBodyTitle = [(0, _i18n.__)('Suggestion:'), (0, _element.createElement)("span", {
|
|
99
|
+
className: "editor-post-publish-panel__link",
|
|
100
|
+
key: "label"
|
|
101
|
+
}, (0, _i18n.__)('External media'))];
|
|
102
|
+
|
|
103
|
+
function uploadImages() {
|
|
104
|
+
setIsUploading(true);
|
|
105
|
+
Promise.all(externalImages.map(image => window.fetch(image.attributes.url.includes('?') ? image.attributes.url : image.attributes.url + '?').then(response => response.blob()).then(blob => new Promise((resolve, reject) => {
|
|
106
|
+
mediaUpload({
|
|
107
|
+
filesList: [blob],
|
|
108
|
+
onFileChange: ([media]) => {
|
|
109
|
+
if ((0, _blob.isBlobURL)(media.url)) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
updateBlockAttributes(image.clientId, {
|
|
114
|
+
id: media.id,
|
|
115
|
+
url: media.url
|
|
116
|
+
});
|
|
117
|
+
resolve();
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
onError() {
|
|
121
|
+
reject();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
});
|
|
125
|
+
})))).finally(() => {
|
|
126
|
+
setIsUploading(false);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return (0, _element.createElement)(_components.PanelBody, {
|
|
131
|
+
initialOpen: true,
|
|
132
|
+
title: panelBodyTitle
|
|
133
|
+
}, (0, _element.createElement)("p", null, (0, _i18n.__)('There are some external images in the post which can be uploaded to the media library. Images coming from different domains may not always display correctly, load slowly for visitors, or be removed unexpectedly.')), (0, _element.createElement)("div", {
|
|
134
|
+
style: {
|
|
135
|
+
display: 'inline-flex',
|
|
136
|
+
flexWrap: 'wrap',
|
|
137
|
+
gap: '8px'
|
|
138
|
+
}
|
|
139
|
+
}, (0, _element.createElement)(_components.__unstableAnimatePresence, null, externalImages.map(image => {
|
|
140
|
+
return (0, _element.createElement)(Image, {
|
|
141
|
+
key: image.clientId,
|
|
142
|
+
...image
|
|
143
|
+
});
|
|
144
|
+
})), isUploading ? (0, _element.createElement)(_components.Spinner, null) : (0, _element.createElement)(_components.Button, {
|
|
145
|
+
icon: _icons.upload,
|
|
146
|
+
variant: "primary",
|
|
147
|
+
onClick: uploadImages
|
|
148
|
+
}, (0, _i18n.__)('Upload all'))));
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=maybe-upload-media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/maybe-upload-media.js"],"names":["flattenBlocks","blocks","result","forEach","block","push","innerBlocks","Image","selectBlock","blockEditorStore","clientId","event","key","preventDefault","attributes","alt","url","opacity","scale","width","height","objectFit","borderRadius","cursor","PostFormatPanel","isUploading","setIsUploading","editorBlocks","mediaUpload","select","editorStore","getEditorBlocks","getSettings","externalImages","filter","name","id","updateBlockAttributes","length","panelBodyTitle","uploadImages","Promise","all","map","image","window","fetch","includes","then","response","blob","resolve","reject","filesList","onFileChange","media","onError","finally","display","flexWrap","gap","upload"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tButton,\n\tSpinner,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction flattenBlocks( blocks ) {\n\tconst result = [];\n\n\tblocks.forEach( ( block ) => {\n\t\tresult.push( block );\n\t\tresult.push( ...flattenBlocks( block.innerBlocks ) );\n\t} );\n\n\treturn result;\n}\n\nfunction Image( block ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<motion.img\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\taria-label={ __( 'Select image block.' ) }\n\t\t\tonClick={ () => {\n\t\t\t\tselectBlock( block.clientId );\n\t\t\t} }\n\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\t\tselectBlock( block.clientId );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tkey={ block.clientId }\n\t\t\talt={ block.attributes.alt }\n\t\t\tsrc={ block.attributes.url }\n\t\t\tanimate={ { opacity: 1 } }\n\t\t\texit={ { opacity: 0, scale: 0 } }\n\t\t\tstyle={ {\n\t\t\t\twidth: '36px',\n\t\t\t\theight: '36px',\n\t\t\t\tobjectFit: 'cover',\n\t\t\t\tborderRadius: '2px',\n\t\t\t\tcursor: 'pointer',\n\t\t\t} }\n\t\t\twhileHover={ { scale: 1.08 } }\n\t\t/>\n\t);\n}\n\nexport default function PostFormatPanel() {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { editorBlocks, mediaUpload } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorBlocks: select( editorStore ).getEditorBlocks(),\n\t\t\tmediaUpload: select( blockEditorStore ).getSettings().mediaUpload,\n\t\t} ),\n\t\t[]\n\t);\n\tconst externalImages = flattenBlocks( editorBlocks ).filter(\n\t\t( block ) =>\n\t\t\tblock.name === 'core/image' &&\n\t\t\tblock.attributes.url &&\n\t\t\t! block.attributes.id\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tif ( ! mediaUpload || ! externalImages.length ) {\n\t\treturn null;\n\t}\n\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'External media' ) }\n\t\t</span>,\n\t];\n\n\tfunction uploadImages() {\n\t\tsetIsUploading( true );\n\t\tPromise.all(\n\t\t\texternalImages.map( ( image ) =>\n\t\t\t\twindow\n\t\t\t\t\t.fetch(\n\t\t\t\t\t\timage.attributes.url.includes( '?' )\n\t\t\t\t\t\t\t? image.attributes.url\n\t\t\t\t\t\t\t: image.attributes.url + '?'\n\t\t\t\t\t)\n\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t.then(\n\t\t\t\t\t\t( blob ) =>\n\t\t\t\t\t\t\tnew Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\t\tif ( isBlobURL( media.url ) ) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tupdateBlockAttributes( image.clientId, {\n\t\t\t\t\t\t\t\t\t\t\tid: media.id,\n\t\t\t\t\t\t\t\t\t\t\turl: media.url,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tonError() {\n\t\t\t\t\t\t\t\t\t\treject();\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} )\n\t\t\t\t\t)\n\t\t\t)\n\t\t).finally( () => {\n\t\t\tsetIsUploading( false );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PanelBody initialOpen={ true } title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'There are some external images in the post which can be uploaded to the media library. Images coming from different domains may not always display correctly, load slowly for visitors, or be removed unexpectedly.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<div\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'inline-flex',\n\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\tgap: '8px',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<AnimatePresence>\n\t\t\t\t\t{ externalImages.map( ( image ) => {\n\t\t\t\t\t\treturn <Image key={ image.clientId } { ...image } />;\n\t\t\t\t\t} ) }\n\t\t\t\t</AnimatePresence>\n\t\t\t\t{ isUploading ? (\n\t\t\t\t\t<Spinner />\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ uploadImages }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload all' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PanelBody>\n\t);\n}\n"]}
|
|
@@ -39,6 +39,8 @@ var _store = require("../../store");
|
|
|
39
39
|
|
|
40
40
|
var _maybeCategoryPanel = _interopRequireDefault(require("./maybe-category-panel"));
|
|
41
41
|
|
|
42
|
+
var _maybeUploadMedia = _interopRequireDefault(require("./maybe-upload-media"));
|
|
43
|
+
|
|
42
44
|
/**
|
|
43
45
|
* WordPress dependencies
|
|
44
46
|
*/
|
|
@@ -118,7 +120,7 @@ function PostPublishPanelPrepublish({
|
|
|
118
120
|
className: "components-site-name"
|
|
119
121
|
}, (0, _htmlEntities.decodeEntities)(siteTitle) || (0, _i18n.__)('(Untitled)')), (0, _element.createElement)("span", {
|
|
120
122
|
className: "components-site-home"
|
|
121
|
-
}, siteHome))), hasPublishAction && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.PanelBody, {
|
|
123
|
+
}, siteHome))), (0, _element.createElement)(_maybeUploadMedia.default, null), hasPublishAction && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.PanelBody, {
|
|
122
124
|
initialOpen: false,
|
|
123
125
|
title: [(0, _i18n.__)('Visibility:'), (0, _element.createElement)("span", {
|
|
124
126
|
className: "editor-post-publish-panel__link",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/prepublish.js"],"names":["PostPublishPanelPrepublish","children","isBeingScheduled","isRequestingSiteIcon","hasPublishAction","siteIconUrl","siteTitle","siteHome","select","getCurrentPost","isEditedPostBeingScheduled","editorStore","getEntityRecord","isResolving","coreStore","siteData","undefined","_links","site_icon_url","name","home","siteIcon","wordpress","prePublishTitle","prePublishBodyText"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/prepublish.js"],"names":["PostPublishPanelPrepublish","children","isBeingScheduled","isRequestingSiteIcon","hasPublishAction","siteIconUrl","siteTitle","siteHome","select","getCurrentPost","isEditedPostBeingScheduled","editorStore","getEntityRecord","isResolving","coreStore","siteData","undefined","_links","site_icon_url","name","home","siteIcon","wordpress","prePublishTitle","prePublishBodyText"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Icon, PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { wordpress } from '@wordpress/icons';\nimport { filterURLForDisplay } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport PostVisibility from '../post-visibility';\nimport PostVisibilityLabel from '../post-visibility/label';\nimport PostSchedule from '../post-schedule';\nimport PostScheduleLabel from '../post-schedule/label';\nimport MaybeTagsPanel from './maybe-tags-panel';\nimport MaybePostFormatPanel from './maybe-post-format-panel';\nimport { store as editorStore } from '../../store';\nimport MaybeCategoryPanel from './maybe-category-panel';\nimport MaybeUploadMedia from './maybe-upload-media';\n\nfunction PostPublishPanelPrepublish( { children } ) {\n\tconst {\n\t\tisBeingScheduled,\n\t\tisRequestingSiteIcon,\n\t\thasPublishAction,\n\t\tsiteIconUrl,\n\t\tsiteTitle,\n\t\tsiteHome,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentPost, isEditedPostBeingScheduled } =\n\t\t\tselect( editorStore );\n\t\tconst { getEntityRecord, isResolving } = select( coreStore );\n\t\tconst siteData =\n\t\t\tgetEntityRecord( 'root', '__unstableBase', undefined ) || {};\n\n\t\treturn {\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisRequestingSiteIcon: isResolving( 'getEntityRecord', [\n\t\t\t\t'root',\n\t\t\t\t'__unstableBase',\n\t\t\t\tundefined,\n\t\t\t] ),\n\t\t\tsiteIconUrl: siteData.site_icon_url,\n\t\t\tsiteTitle: siteData.name,\n\t\t\tsiteHome: siteData.home && filterURLForDisplay( siteData.home ),\n\t\t};\n\t}, [] );\n\n\tlet siteIcon = (\n\t\t<Icon className=\"components-site-icon\" size=\"36px\" icon={ wordpress } />\n\t);\n\n\tif ( siteIconUrl ) {\n\t\tsiteIcon = (\n\t\t\t<img\n\t\t\t\talt={ __( 'Site Icon' ) }\n\t\t\t\tclassName=\"components-site-icon\"\n\t\t\t\tsrc={ siteIconUrl }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( isRequestingSiteIcon ) {\n\t\tsiteIcon = null;\n\t}\n\n\tlet prePublishTitle, prePublishBodyText;\n\n\tif ( ! hasPublishAction ) {\n\t\tprePublishTitle = __( 'Are you ready to submit for review?' );\n\t\tprePublishBodyText = __(\n\t\t\t'When you’re ready, submit your work for review, and an Editor will be able to approve it for you.'\n\t\t);\n\t} else if ( isBeingScheduled ) {\n\t\tprePublishTitle = __( 'Are you ready to schedule?' );\n\t\tprePublishBodyText = __(\n\t\t\t'Your work will be published at the specified date and time.'\n\t\t);\n\t} else {\n\t\tprePublishTitle = __( 'Are you ready to publish?' );\n\t\tprePublishBodyText = __(\n\t\t\t'Double-check your settings before publishing.'\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"editor-post-publish-panel__prepublish\">\n\t\t\t<div>\n\t\t\t\t<strong>{ prePublishTitle }</strong>\n\t\t\t</div>\n\t\t\t<p>{ prePublishBodyText }</p>\n\t\t\t<div className=\"components-site-card\">\n\t\t\t\t{ siteIcon }\n\t\t\t\t<div className=\"components-site-info\">\n\t\t\t\t\t<span className=\"components-site-name\">\n\t\t\t\t\t\t{ decodeEntities( siteTitle ) || __( '(Untitled)' ) }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"components-site-home\">{ siteHome }</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<MaybeUploadMedia />\n\t\t\t{ hasPublishAction && (\n\t\t\t\t<>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\ttitle={ [\n\t\t\t\t\t\t\t__( 'Visibility:' ),\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"editor-post-publish-panel__link\"\n\t\t\t\t\t\t\t\tkey=\"label\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PostVisibilityLabel />\n\t\t\t\t\t\t\t</span>,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PostVisibility />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\ttitle={ [\n\t\t\t\t\t\t\t__( 'Publish:' ),\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"editor-post-publish-panel__link\"\n\t\t\t\t\t\t\t\tkey=\"label\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PostScheduleLabel />\n\t\t\t\t\t\t\t</span>,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PostSchedule />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<MaybePostFormatPanel />\n\t\t\t<MaybeTagsPanel />\n\t\t\t<MaybeCategoryPanel />\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default PostPublishPanelPrepublish;\n"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PostSyncStatus;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _data = require("@wordpress/data");
|
|
11
|
+
|
|
12
|
+
var _i18n = require("@wordpress/i18n");
|
|
13
|
+
|
|
14
|
+
var _components = require("@wordpress/components");
|
|
15
|
+
|
|
16
|
+
var _store = require("../../store");
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* WordPress dependencies
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Internal dependencies
|
|
24
|
+
*/
|
|
25
|
+
function PostSyncStatus() {
|
|
26
|
+
const {
|
|
27
|
+
editPost
|
|
28
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
29
|
+
const {
|
|
30
|
+
meta,
|
|
31
|
+
postType
|
|
32
|
+
} = (0, _data.useSelect)(select => {
|
|
33
|
+
const {
|
|
34
|
+
getEditedPostAttribute
|
|
35
|
+
} = select(_store.store);
|
|
36
|
+
return {
|
|
37
|
+
meta: getEditedPostAttribute('meta'),
|
|
38
|
+
postType: getEditedPostAttribute('type')
|
|
39
|
+
};
|
|
40
|
+
}, []);
|
|
41
|
+
|
|
42
|
+
if (postType !== 'wp_block') {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const onUpdateSync = syncStatus => editPost({
|
|
47
|
+
meta: { ...meta,
|
|
48
|
+
wp_block: syncStatus === 'unsynced' ? {
|
|
49
|
+
sync_status: syncStatus
|
|
50
|
+
} : null
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const syncStatus = meta?.wp_block?.sync_status;
|
|
55
|
+
const isFullySynced = !syncStatus;
|
|
56
|
+
return (0, _element.createElement)(_components.PanelRow, {
|
|
57
|
+
className: "edit-post-sync-status"
|
|
58
|
+
}, (0, _element.createElement)("span", null, (0, _i18n.__)('Syncing')), (0, _element.createElement)(_components.ToggleControl, {
|
|
59
|
+
__nextHasNoMarginBottom: true,
|
|
60
|
+
label: isFullySynced ? (0, _i18n.__)('Fully synced') : (0, _i18n.__)('Not synced'),
|
|
61
|
+
checked: isFullySynced,
|
|
62
|
+
onChange: () => {
|
|
63
|
+
onUpdateSync(syncStatus === 'unsynced' ? 'fully' : 'unsynced');
|
|
64
|
+
}
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-sync-status/index.js"],"names":["PostSyncStatus","editPost","editorStore","meta","postType","select","getEditedPostAttribute","onUpdateSync","syncStatus","wp_block","sync_status","isFullySynced"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGe,SAASA,cAAT,GAA0B;AACxC,QAAM;AAAEC,IAAAA;AAAF,MAAe,uBAAaC,YAAb,CAArB;AACA,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAqB,qBAAaC,MAAF,IAAc;AACnD,UAAM;AAAEC,MAAAA;AAAF,QAA6BD,MAAM,CAAEH,YAAF,CAAzC;AACA,WAAO;AACNC,MAAAA,IAAI,EAAEG,sBAAsB,CAAE,MAAF,CADtB;AAENF,MAAAA,QAAQ,EAAEE,sBAAsB,CAAE,MAAF;AAF1B,KAAP;AAIA,GAN0B,EAMxB,EANwB,CAA3B;;AAOA,MAAKF,QAAQ,KAAK,UAAlB,EAA+B;AAC9B,WAAO,IAAP;AACA;;AACD,QAAMG,YAAY,GAAKC,UAAF,IACpBP,QAAQ,CAAE;AACTE,IAAAA,IAAI,EAAE,EACL,GAAGA,IADE;AAELM,MAAAA,QAAQ,EACPD,UAAU,KAAK,UAAf,GACG;AAAEE,QAAAA,WAAW,EAAEF;AAAf,OADH,GAEG;AALC;AADG,GAAF,CADT;;AAUA,QAAMA,UAAU,GAAGL,IAAI,EAAEM,QAAN,EAAgBC,WAAnC;AACA,QAAMC,aAAa,GAAG,CAAEH,UAAxB;AAEA,SACC,4BAAC,oBAAD;AAAU,IAAA,SAAS,EAAC;AAApB,KACC,0CAAQ,cAAI,SAAJ,CAAR,CADD,EAEC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EACJG,aAAa,GAAG,cAAI,cAAJ,CAAH,GAA0B,cAAI,YAAJ,CAHzC;AAKC,IAAA,OAAO,EAAGA,aALX;AAMC,IAAA,QAAQ,EAAG,MAAM;AAChBJ,MAAAA,YAAY,CACXC,UAAU,KAAK,UAAf,GAA4B,OAA5B,GAAsC,UAD3B,CAAZ;AAGA;AAVF,IAFD,CADD;AAiBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { ToggleControl, PanelRow } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostSyncStatus() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { meta, postType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\treturn {\n\t\t\tmeta: getEditedPostAttribute( 'meta' ),\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t};\n\t}, [] );\n\tif ( postType !== 'wp_block' ) {\n\t\treturn null;\n\t}\n\tconst onUpdateSync = ( syncStatus ) =>\n\t\teditPost( {\n\t\t\tmeta: {\n\t\t\t\t...meta,\n\t\t\t\twp_block:\n\t\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t\t? { sync_status: syncStatus }\n\t\t\t\t\t\t: null,\n\t\t\t},\n\t\t} );\n\tconst syncStatus = meta?.wp_block?.sync_status;\n\tconst isFullySynced = ! syncStatus;\n\n\treturn (\n\t\t<PanelRow className=\"edit-post-sync-status\">\n\t\t\t<span>{ __( 'Syncing' ) }</span>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={\n\t\t\t\t\tisFullySynced ? __( 'Fully synced' ) : __( 'Not synced' )\n\t\t\t\t}\n\t\t\t\tchecked={ isFullySynced }\n\t\t\t\tonChange={ () => {\n\t\t\t\t\tonUpdateSync(\n\t\t\t\t\t\tsyncStatus === 'unsynced' ? 'fully' : 'unsynced'\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PanelRow>\n\t);\n}\n"]}
|