@wordpress/editor 13.3.6 → 13.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/components/document-outline/index.js +7 -1
- package/build/components/document-outline/index.js.map +1 -1
- package/build/components/page-attributes/check.js +6 -10
- package/build/components/page-attributes/check.js.map +1 -1
- package/build/components/page-attributes/order.js +3 -5
- package/build/components/page-attributes/order.js.map +1 -1
- package/build/components/page-attributes/parent.js +9 -6
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/post-author/check.js +3 -7
- package/build/components/post-author/check.js.map +1 -1
- package/build/components/post-featured-image/index.js +7 -12
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-locked-modal/index.js +1 -7
- package/build/components/post-locked-modal/index.js.map +1 -1
- package/build/components/post-pending-status/check.js +3 -7
- package/build/components/post-pending-status/check.js.map +1 -1
- package/build/components/post-preview-button/index.js +3 -3
- package/build/components/post-preview-button/index.js.map +1 -1
- package/build/components/post-publish-button/index.js +4 -4
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-button/label.js +3 -7
- package/build/components/post-publish-button/label.js.map +1 -1
- package/build/components/post-publish-panel/index.js +4 -8
- package/build/components/post-publish-panel/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-post-format-panel.js +3 -7
- package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
- package/build/components/post-publish-panel/postpublish.js +5 -9
- package/build/components/post-publish-panel/postpublish.js.map +1 -1
- package/build/components/post-publish-panel/prepublish.js +3 -7
- package/build/components/post-publish-panel/prepublish.js.map +1 -1
- package/build/components/post-schedule/check.js +3 -7
- package/build/components/post-schedule/check.js.map +1 -1
- package/build/components/post-sticky/check.js +3 -7
- package/build/components/post-sticky/check.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +12 -9
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js +18 -12
- package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/most-used-terms.js +2 -9
- package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
- package/build/components/post-title/index.native.js +1 -0
- package/build/components/post-title/index.native.js.map +1 -1
- package/build/components/post-visibility/check.js +3 -7
- package/build/components/post-visibility/check.js.map +1 -1
- package/build/components/theme-support-check/index.js +3 -7
- package/build/components/theme-support-check/index.js.map +1 -1
- package/build/store/utils/notice-builder.js +4 -8
- package/build/store/utils/notice-builder.js.map +1 -1
- package/build-module/components/document-outline/index.js +8 -2
- package/build-module/components/document-outline/index.js.map +1 -1
- package/build-module/components/page-attributes/check.js +6 -9
- package/build-module/components/page-attributes/check.js.map +1 -1
- package/build-module/components/page-attributes/order.js +4 -6
- package/build-module/components/page-attributes/order.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +9 -5
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/post-author/check.js +3 -6
- package/build-module/components/post-author/check.js.map +1 -1
- package/build-module/components/post-featured-image/index.js +7 -11
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-locked-modal/index.js +1 -6
- package/build-module/components/post-locked-modal/index.js.map +1 -1
- package/build-module/components/post-pending-status/check.js +3 -6
- package/build-module/components/post-pending-status/check.js.map +1 -1
- package/build-module/components/post-preview-button/index.js +3 -2
- package/build-module/components/post-preview-button/index.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +4 -3
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-button/label.js +3 -6
- package/build-module/components/post-publish-button/label.js.map +1 -1
- package/build-module/components/post-publish-panel/index.js +4 -7
- package/build-module/components/post-publish-panel/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-post-format-panel.js +3 -6
- package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
- package/build-module/components/post-publish-panel/postpublish.js +5 -8
- package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
- package/build-module/components/post-publish-panel/prepublish.js +3 -6
- package/build-module/components/post-publish-panel/prepublish.js.map +1 -1
- package/build-module/components/post-schedule/check.js +3 -6
- package/build-module/components/post-schedule/check.js.map +1 -1
- package/build-module/components/post-sticky/check.js +3 -6
- package/build-module/components/post-sticky/check.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +12 -8
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js +18 -11
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/most-used-terms.js +2 -8
- package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
- package/build-module/components/post-title/index.native.js +1 -0
- package/build-module/components/post-title/index.native.js.map +1 -1
- package/build-module/components/post-visibility/check.js +3 -6
- package/build-module/components/post-visibility/check.js.map +1 -1
- package/build-module/components/theme-support-check/index.js +3 -6
- package/build-module/components/theme-support-check/index.js.map +1 -1
- package/build-module/store/utils/notice-builder.js +4 -7
- package/build-module/store/utils/notice-builder.js.map +1 -1
- package/build-style/style-rtl.css +1 -13
- package/build-style/style.css +1 -13
- package/package.json +30 -30
- package/src/components/document-outline/index.js +6 -3
- package/src/components/page-attributes/check.js +3 -12
- package/src/components/page-attributes/order.js +18 -12
- package/src/components/page-attributes/parent.js +41 -41
- package/src/components/post-author/check.js +2 -10
- package/src/components/post-featured-image/index.js +5 -10
- package/src/components/post-locked-modal/index.js +1 -6
- package/src/components/post-pending-status/check.js +2 -10
- package/src/components/post-preview-button/index.js +1 -2
- package/src/components/post-publish-button/index.js +3 -7
- package/src/components/post-publish-button/label.js +2 -10
- package/src/components/post-publish-panel/index.js +3 -11
- package/src/components/post-publish-panel/maybe-post-format-panel.js +2 -10
- package/src/components/post-publish-panel/postpublish.js +3 -8
- package/src/components/post-publish-panel/prepublish.js +2 -10
- package/src/components/post-publish-panel/style.scss +1 -1
- package/src/components/post-schedule/check.js +2 -10
- package/src/components/post-sticky/check.js +1 -10
- package/src/components/post-taxonomies/flat-term-selector.js +14 -34
- package/src/components/post-taxonomies/hierarchical-term-selector.js +15 -37
- package/src/components/post-taxonomies/most-used-terms.js +15 -18
- package/src/components/post-title/index.native.js +1 -0
- package/src/components/post-visibility/check.js +2 -10
- package/src/components/theme-support-check/index.js +1 -6
- package/src/store/utils/notice-builder.js +2 -7
- package/src/style.scss +0 -1
- package/src/components/page-attributes/style.scss +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-locked-modal/index.js"],"names":["PostLockedModal","instanceId","hookName","autosave","updatePostLock","editorStore","isLocked","isTakeover","user","postId","postLockUtils","activePostLock","postType","previewLink","select","isPostLocked","isPostLockTakeover","getPostLockUser","getCurrentPostId","getActivePostLock","getEditedPostAttribute","getEditedPostPreviewLink","getEditorSettings","getPostType","coreStore","sendPostLock","data","lock","post_id","receivePostLock","received","lock_error","name","avatar","avatar_src_2x","new_lock","releasePostLock","window","FormData","append","unlockNonce","navigator","sendBeacon","ajaxUrl","xhr","XMLHttpRequest","open","send","addEventListener","removeEventListener","userDisplayName","userAvatar","unlockUrl","lockKey","post","action","_wpnonce","nonce","allPostsUrl","post_type","allPostsLabel","strong","PreviewLink"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tModal,\n\tButton,\n\tExternalLink,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useEffect, createInterpolateElement } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostLockedModal() {\n\tconst instanceId = useInstanceId( PostLockedModal );\n\tconst hookName = 'core/editor/post-locked-modal-' + instanceId;\n\tconst { autosave, updatePostLock } = useDispatch( editorStore );\n\tconst {\n\t\tisLocked,\n\t\tisTakeover,\n\t\tuser,\n\t\tpostId,\n\t\tpostLockUtils,\n\t\tactivePostLock,\n\t\tpostType,\n\t\tpreviewLink,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPostLocked,\n\t\t\tisPostLockTakeover,\n\t\t\tgetPostLockUser,\n\t\t\tgetCurrentPostId,\n\t\t\tgetActivePostLock,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostPreviewLink,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn {\n\t\t\tisLocked: isPostLocked(),\n\t\t\tisTakeover: isPostLockTakeover(),\n\t\t\tuser: getPostLockUser(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostLockUtils: getEditorSettings().postLockUtils,\n\t\t\tactivePostLock: getActivePostLock(),\n\t\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\t\tpreviewLink: getEditedPostPreviewLink(),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t/**\n\t\t * Keep the lock refreshed.\n\t\t *\n\t\t * When the user does not send a heartbeat in a heartbeat-tick\n\t\t * the user is no longer editing and another user can start editing.\n\t\t *\n\t\t * @param {Object} data Data to send in the heartbeat request.\n\t\t */\n\t\tfunction sendPostLock( data ) {\n\t\t\tif ( isLocked ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata[ 'wp-refresh-post-lock' ] = {\n\t\t\t\tlock: activePostLock,\n\t\t\t\tpost_id: postId,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Refresh post locks: update the lock string or show the dialog if somebody has taken over editing.\n\t\t *\n\t\t * @param {Object} data Data received in the heartbeat request\n\t\t */\n\t\tfunction receivePostLock( data ) {\n\t\t\tif ( ! data[ 'wp-refresh-post-lock' ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst received = data[ 'wp-refresh-post-lock' ];\n\t\t\tif ( received.lock_error ) {\n\t\t\t\t// Auto save and display the takeover modal.\n\t\t\t\tautosave();\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: true,\n\t\t\t\t\tisTakeover: true,\n\t\t\t\t\tuser: {\n\t\t\t\t\t\tname: received.lock_error.name,\n\t\t\t\t\t\tavatar: received.lock_error.avatar_src_2x,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else if ( received.new_lock ) {\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: false,\n\t\t\t\t\tactivePostLock: received.new_lock,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Unlock the post before the window is exited.\n\t\t */\n\t\tfunction releasePostLock() {\n\t\t\tif ( isLocked || ! activePostLock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data = new window.FormData();\n\t\t\tdata.append( 'action', 'wp-remove-post-lock' );\n\t\t\tdata.append( '_wpnonce', postLockUtils.unlockNonce );\n\t\t\tdata.append( 'post_ID', postId );\n\t\t\tdata.append( 'active_post_lock', activePostLock );\n\n\t\t\tif ( window.navigator.sendBeacon ) {\n\t\t\t\twindow.navigator.sendBeacon( postLockUtils.ajaxUrl, data );\n\t\t\t} else {\n\t\t\t\tconst xhr = new window.XMLHttpRequest();\n\t\t\t\txhr.open( 'POST', postLockUtils.ajaxUrl, false );\n\t\t\t\txhr.send( data );\n\t\t\t}\n\t\t}\n\n\t\t// Details on these events on the Heartbeat API docs\n\t\t// https://developer.wordpress.org/plugins/javascript/heartbeat-api/\n\t\taddAction( 'heartbeat.send', hookName, sendPostLock );\n\t\taddAction( 'heartbeat.tick', hookName, receivePostLock );\n\t\twindow.addEventListener( 'beforeunload', releasePostLock );\n\n\t\treturn () => {\n\t\t\tremoveAction( 'heartbeat.send', hookName );\n\t\t\tremoveAction( 'heartbeat.tick', hookName );\n\t\t\twindow.removeEventListener( 'beforeunload', releasePostLock );\n\t\t};\n\t}, [] );\n\n\tif ( ! isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst userDisplayName = user.name;\n\tconst userAvatar = user.avatar;\n\n\tconst unlockUrl = addQueryArgs( 'post.php', {\n\t\t'get-post-lock': '1',\n\t\tlockKey: true,\n\t\tpost: postId,\n\t\taction: 'edit',\n\t\t_wpnonce: postLockUtils.nonce,\n\t} );\n\tconst allPostsUrl = addQueryArgs( 'edit.php', {\n\t\tpost_type: get( postType, [ 'slug' ] ),\n\t} );\n\tconst allPostsLabel = __( 'Exit editor' );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\tisTakeover\n\t\t\t\t\t? __( 'Someone else has taken over this post' )\n\t\t\t\t\t: __( 'This post is already being edited' )\n\t\t\t}\n\t\t\tfocusOnMount={ true }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tshouldCloseOnEsc={ false }\n\t\t\tisDismissible={ false }\n\t\t\tclassName=\"editor-post-locked-modal\"\n\t\t>\n\t\t\t{ !! userAvatar && (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ userAvatar }\n\t\t\t\t\talt={ __( 'Avatar' ) }\n\t\t\t\t\tclassName=\"editor-post-locked-modal__avatar\"\n\t\t\t\t\twidth={ 64 }\n\t\t\t\t\theight={ 64 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div>\n\t\t\t\t{ !! isTakeover && (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'<strong>%s</strong> now has editing control of this post (<PreviewLink />). Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\tuserDisplayName\n\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\t'Another user now has editing control of this post (<PreviewLink />). Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstrong: <strong />,\n\t\t\t\t\t\t\t\tPreviewLink: (\n\t\t\t\t\t\t\t\t\t<ExternalLink href={ previewLink }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'preview' ) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t\t{ ! isTakeover && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'<strong>%s</strong> is currently working on this post (<PreviewLink />), which means you cannot make changes, unless you take over.'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tuserDisplayName\n\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\t\t'Another user is currently working on this post (<PreviewLink />), which means you cannot make changes, unless you take over.'\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\tstrong: <strong />,\n\t\t\t\t\t\t\t\t\tPreviewLink: (\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href={ previewLink }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'preview' ) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\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\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'If you take over, the other user will lose editing control to the post, but their changes will be saved.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"editor-post-locked-modal__buttons\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ ! isTakeover && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button variant=\"tertiary\" href={ unlockUrl }>\n\t\t\t\t\t\t\t\t{ __( 'Take over' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"primary\" href={ allPostsUrl }>\n\t\t\t\t\t\t\t{ allPostsLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-locked-modal/index.js"],"names":["PostLockedModal","instanceId","hookName","autosave","updatePostLock","editorStore","isLocked","isTakeover","user","postId","postLockUtils","activePostLock","postType","previewLink","select","isPostLocked","isPostLockTakeover","getPostLockUser","getCurrentPostId","getActivePostLock","getEditedPostAttribute","getEditedPostPreviewLink","getEditorSettings","getPostType","coreStore","sendPostLock","data","lock","post_id","receivePostLock","received","lock_error","name","avatar","avatar_src_2x","new_lock","releasePostLock","window","FormData","append","unlockNonce","navigator","sendBeacon","ajaxUrl","xhr","XMLHttpRequest","open","send","addEventListener","removeEventListener","userDisplayName","userAvatar","unlockUrl","lockKey","post","action","_wpnonce","nonce","allPostsUrl","post_type","slug","allPostsLabel","strong","PreviewLink"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tModal,\n\tButton,\n\tExternalLink,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useEffect, createInterpolateElement } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostLockedModal() {\n\tconst instanceId = useInstanceId( PostLockedModal );\n\tconst hookName = 'core/editor/post-locked-modal-' + instanceId;\n\tconst { autosave, updatePostLock } = useDispatch( editorStore );\n\tconst {\n\t\tisLocked,\n\t\tisTakeover,\n\t\tuser,\n\t\tpostId,\n\t\tpostLockUtils,\n\t\tactivePostLock,\n\t\tpostType,\n\t\tpreviewLink,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPostLocked,\n\t\t\tisPostLockTakeover,\n\t\t\tgetPostLockUser,\n\t\t\tgetCurrentPostId,\n\t\t\tgetActivePostLock,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostPreviewLink,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn {\n\t\t\tisLocked: isPostLocked(),\n\t\t\tisTakeover: isPostLockTakeover(),\n\t\t\tuser: getPostLockUser(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostLockUtils: getEditorSettings().postLockUtils,\n\t\t\tactivePostLock: getActivePostLock(),\n\t\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\t\tpreviewLink: getEditedPostPreviewLink(),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t/**\n\t\t * Keep the lock refreshed.\n\t\t *\n\t\t * When the user does not send a heartbeat in a heartbeat-tick\n\t\t * the user is no longer editing and another user can start editing.\n\t\t *\n\t\t * @param {Object} data Data to send in the heartbeat request.\n\t\t */\n\t\tfunction sendPostLock( data ) {\n\t\t\tif ( isLocked ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata[ 'wp-refresh-post-lock' ] = {\n\t\t\t\tlock: activePostLock,\n\t\t\t\tpost_id: postId,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Refresh post locks: update the lock string or show the dialog if somebody has taken over editing.\n\t\t *\n\t\t * @param {Object} data Data received in the heartbeat request\n\t\t */\n\t\tfunction receivePostLock( data ) {\n\t\t\tif ( ! data[ 'wp-refresh-post-lock' ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst received = data[ 'wp-refresh-post-lock' ];\n\t\t\tif ( received.lock_error ) {\n\t\t\t\t// Auto save and display the takeover modal.\n\t\t\t\tautosave();\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: true,\n\t\t\t\t\tisTakeover: true,\n\t\t\t\t\tuser: {\n\t\t\t\t\t\tname: received.lock_error.name,\n\t\t\t\t\t\tavatar: received.lock_error.avatar_src_2x,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else if ( received.new_lock ) {\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: false,\n\t\t\t\t\tactivePostLock: received.new_lock,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Unlock the post before the window is exited.\n\t\t */\n\t\tfunction releasePostLock() {\n\t\t\tif ( isLocked || ! activePostLock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data = new window.FormData();\n\t\t\tdata.append( 'action', 'wp-remove-post-lock' );\n\t\t\tdata.append( '_wpnonce', postLockUtils.unlockNonce );\n\t\t\tdata.append( 'post_ID', postId );\n\t\t\tdata.append( 'active_post_lock', activePostLock );\n\n\t\t\tif ( window.navigator.sendBeacon ) {\n\t\t\t\twindow.navigator.sendBeacon( postLockUtils.ajaxUrl, data );\n\t\t\t} else {\n\t\t\t\tconst xhr = new window.XMLHttpRequest();\n\t\t\t\txhr.open( 'POST', postLockUtils.ajaxUrl, false );\n\t\t\t\txhr.send( data );\n\t\t\t}\n\t\t}\n\n\t\t// Details on these events on the Heartbeat API docs\n\t\t// https://developer.wordpress.org/plugins/javascript/heartbeat-api/\n\t\taddAction( 'heartbeat.send', hookName, sendPostLock );\n\t\taddAction( 'heartbeat.tick', hookName, receivePostLock );\n\t\twindow.addEventListener( 'beforeunload', releasePostLock );\n\n\t\treturn () => {\n\t\t\tremoveAction( 'heartbeat.send', hookName );\n\t\t\tremoveAction( 'heartbeat.tick', hookName );\n\t\t\twindow.removeEventListener( 'beforeunload', releasePostLock );\n\t\t};\n\t}, [] );\n\n\tif ( ! isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst userDisplayName = user.name;\n\tconst userAvatar = user.avatar;\n\n\tconst unlockUrl = addQueryArgs( 'post.php', {\n\t\t'get-post-lock': '1',\n\t\tlockKey: true,\n\t\tpost: postId,\n\t\taction: 'edit',\n\t\t_wpnonce: postLockUtils.nonce,\n\t} );\n\tconst allPostsUrl = addQueryArgs( 'edit.php', {\n\t\tpost_type: postType?.slug,\n\t} );\n\tconst allPostsLabel = __( 'Exit editor' );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\tisTakeover\n\t\t\t\t\t? __( 'Someone else has taken over this post' )\n\t\t\t\t\t: __( 'This post is already being edited' )\n\t\t\t}\n\t\t\tfocusOnMount={ true }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tshouldCloseOnEsc={ false }\n\t\t\tisDismissible={ false }\n\t\t\tclassName=\"editor-post-locked-modal\"\n\t\t>\n\t\t\t{ !! userAvatar && (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ userAvatar }\n\t\t\t\t\talt={ __( 'Avatar' ) }\n\t\t\t\t\tclassName=\"editor-post-locked-modal__avatar\"\n\t\t\t\t\twidth={ 64 }\n\t\t\t\t\theight={ 64 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div>\n\t\t\t\t{ !! isTakeover && (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'<strong>%s</strong> now has editing control of this post (<PreviewLink />). Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\tuserDisplayName\n\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\t'Another user now has editing control of this post (<PreviewLink />). Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstrong: <strong />,\n\t\t\t\t\t\t\t\tPreviewLink: (\n\t\t\t\t\t\t\t\t\t<ExternalLink href={ previewLink }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'preview' ) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t\t{ ! isTakeover && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'<strong>%s</strong> is currently working on this post (<PreviewLink />), which means you cannot make changes, unless you take over.'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tuserDisplayName\n\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\t\t'Another user is currently working on this post (<PreviewLink />), which means you cannot make changes, unless you take over.'\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\tstrong: <strong />,\n\t\t\t\t\t\t\t\t\tPreviewLink: (\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href={ previewLink }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'preview' ) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\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\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'If you take over, the other user will lose editing control to the post, but their changes will be saved.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"editor-post-locked-modal__buttons\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ ! isTakeover && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button variant=\"tertiary\" href={ unlockUrl }>\n\t\t\t\t\t\t\t\t{ __( 'Take over' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"primary\" href={ allPostsUrl }>\n\t\t\t\t\t\t\t{ allPostsLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n"]}
|
|
@@ -6,18 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.PostPendingStatusCheck = PostPendingStatusCheck;
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
|
|
9
|
-
var _lodash = require("lodash");
|
|
10
|
-
|
|
11
9
|
var _compose = require("@wordpress/compose");
|
|
12
10
|
|
|
13
11
|
var _data = require("@wordpress/data");
|
|
14
12
|
|
|
15
13
|
var _store = require("../../store");
|
|
16
14
|
|
|
17
|
-
/**
|
|
18
|
-
* External dependencies
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
15
|
/**
|
|
22
16
|
* WordPress dependencies
|
|
23
17
|
*/
|
|
@@ -40,13 +34,15 @@ function PostPendingStatusCheck(_ref) {
|
|
|
40
34
|
}
|
|
41
35
|
|
|
42
36
|
var _default = (0, _compose.compose)((0, _data.withSelect)(select => {
|
|
37
|
+
var _getCurrentPost$_link, _getCurrentPost$_link2;
|
|
38
|
+
|
|
43
39
|
const {
|
|
44
40
|
isCurrentPostPublished,
|
|
45
41
|
getCurrentPostType,
|
|
46
42
|
getCurrentPost
|
|
47
43
|
} = select(_store.store);
|
|
48
44
|
return {
|
|
49
|
-
hasPublishAction: (
|
|
45
|
+
hasPublishAction: (_getCurrentPost$_link = (_getCurrentPost$_link2 = getCurrentPost()._links) === null || _getCurrentPost$_link2 === void 0 ? void 0 : _getCurrentPost$_link2['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
|
|
50
46
|
isPublished: isCurrentPostPublished(),
|
|
51
47
|
postType: getCurrentPostType()
|
|
52
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-pending-status/check.js"],"names":["PostPendingStatusCheck","hasPublishAction","isPublished","children","select","isCurrentPostPublished","getCurrentPostType","getCurrentPost","editorStore","postType"],"mappings":";;;;;;;;AAGA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-pending-status/check.js"],"names":["PostPendingStatusCheck","hasPublishAction","isPublished","children","select","isCurrentPostPublished","getCurrentPostType","getCurrentPost","editorStore","_links","postType"],"mappings":";;;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;;AAIA;AACA;AACA;AAGO,SAASA,sBAAT,OAIH;AAAA,MAJoC;AACvCC,IAAAA,gBADuC;AAEvCC,IAAAA,WAFuC;AAGvCC,IAAAA;AAHuC,GAIpC;;AACH,MAAKD,WAAW,IAAI,CAAED,gBAAtB,EAAyC;AACxC,WAAO,IAAP;AACA;;AAED,SAAOE,QAAP;AACA;;eAEc,sBACd,sBAAcC,MAAF,IAAc;AAAA;;AACzB,QAAM;AAAEC,IAAAA,sBAAF;AAA0BC,IAAAA,kBAA1B;AAA8CC,IAAAA;AAA9C,MACLH,MAAM,CAAEI,YAAF,CADP;AAEA,SAAO;AACNP,IAAAA,gBAAgB,qDACfM,cAAc,GAAGE,MADF,2DACf,uBAA2B,mBAA3B,CADe,yEACqC,KAF/C;AAGNP,IAAAA,WAAW,EAAEG,sBAAsB,EAH7B;AAINK,IAAAA,QAAQ,EAAEJ,kBAAkB;AAJtB,GAAP;AAMA,CATD,CADc,EAWZN,sBAXY,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostPendingStatusCheck( {\n\thasPublishAction,\n\tisPublished,\n\tchildren,\n} ) {\n\tif ( isPublished || ! hasPublishAction ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { isCurrentPostPublished, getCurrentPostType, getCurrentPost } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t} )\n)( PostPendingStatusCheck );\n"]}
|
|
@@ -9,8 +9,6 @@ exports.default = exports.PostPreviewButton = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var _lodash = require("lodash");
|
|
13
|
-
|
|
14
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
13
|
|
|
16
14
|
var _components = require("@wordpress/components");
|
|
@@ -243,6 +241,8 @@ class PostPreviewButton extends _element.Component {
|
|
|
243
241
|
exports.PostPreviewButton = PostPreviewButton;
|
|
244
242
|
|
|
245
243
|
var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref) => {
|
|
244
|
+
var _postType$viewable;
|
|
245
|
+
|
|
246
246
|
let {
|
|
247
247
|
forcePreviewLink,
|
|
248
248
|
forceIsAutosaveable
|
|
@@ -267,7 +267,7 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref) => {
|
|
|
267
267
|
previewLink: forcePreviewLink !== undefined ? forcePreviewLink : previewLink,
|
|
268
268
|
isSaveable: isEditedPostSaveable(),
|
|
269
269
|
isAutosaveable: forceIsAutosaveable || isEditedPostAutosaveable(),
|
|
270
|
-
isViewable: (0
|
|
270
|
+
isViewable: (_postType$viewable = postType === null || postType === void 0 ? void 0 : postType.viewable) !== null && _postType$viewable !== void 0 ? _postType$viewable : false,
|
|
271
271
|
isDraft: ['draft', 'auto-draft'].indexOf(getEditedPostAttribute('status')) !== -1,
|
|
272
272
|
isPostLocked: isPostLocked()
|
|
273
273
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-preview-button/index.js"],"names":["writeInterstitialMessage","targetDocument","markup","write","title","close","PostPreviewButton","Component","constructor","arguments","buttonRef","openPreviewWindow","bind","componentDidUpdate","prevProps","previewLink","props","setPreviewWindowLink","url","previewWindow","closed","location","current","focus","getWindowTarget","postId","event","preventDefault","window","open","isAutosaveable","isPostLocked","target","href","isDraft","savePost","isPreview","autosave","document","render","currentPostLink","isSaveable","role","classNames","className","undefined","textContent","select","forcePreviewLink","forceIsAutosaveable","getCurrentPostId","getCurrentPostAttribute","getEditedPostAttribute","isEditedPostSaveable","isEditedPostAutosaveable","getEditedPostPreviewLink","editorStore","getPostType","coreStore","postType","isViewable","indexOf","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, renderToString } from '@wordpress/element';\nimport { Button, Path, SVG, VisuallyHidden } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ifCondition, compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction writeInterstitialMessage( targetDocument ) {\n\tlet markup = renderToString(\n\t\t<div className=\"editor-post-preview-button__interstitial-message\">\n\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"outer\"\n\t\t\t\t\td=\"M48 12c19.9 0 36 16.1 36 36S67.9 84 48 84 12 67.9 12 48s16.1-36 36-36\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"inner\"\n\t\t\t\t\td=\"M69.5 46.4c0-3.9-1.4-6.7-2.6-8.8-1.6-2.6-3.1-4.9-3.1-7.5 0-2.9 2.2-5.7 5.4-5.7h.4C63.9 19.2 56.4 16 48 16c-11.2 0-21 5.7-26.7 14.4h2.1c3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3L40 67.5l7-20.9L42 33c-1.7-.1-3.3-.3-3.3-.3-1.7-.1-1.5-2.7.2-2.6 0 0 5.3.4 8.4.4 3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3l11.5 34.3 3.3-10.4c1.6-4.5 2.4-7.8 2.4-10.5zM16.1 48c0 12.6 7.3 23.5 18 28.7L18.8 35c-1.7 4-2.7 8.4-2.7 13zm32.5 2.8L39 78.6c2.9.8 5.9 1.3 9 1.3 3.7 0 7.3-.6 10.6-1.8-.1-.1-.2-.3-.2-.4l-9.8-26.9zM76.2 36c0 3.2-.6 6.9-2.4 11.4L64 75.6c9.5-5.5 15.9-15.8 15.9-27.6 0-5.5-1.4-10.8-3.9-15.3.1 1 .2 2.1.2 3.3z\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t</SVG>\n\t\t\t<p>{ __( 'Generating preview…' ) }</p>\n\t\t</div>\n\t);\n\n\tmarkup += `\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\twidth: 100vw;\n\t\t\t}\n\t\t\t@-webkit-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-moz-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-o-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg {\n\t\t\t\twidth: 192px;\n\t\t\t\theight: 192px;\n\t\t\t\tstroke: #555d66;\n\t\t\t\tstroke-width: 0.75;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg .outer,\n\t\t\t.editor-post-preview-button__interstitial-message svg .inner {\n\t\t\t\tstroke-dasharray: 280;\n\t\t\t\tstroke-dashoffset: 280;\n\t\t\t\t-webkit-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-moz-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-o-animation: paint 1.5s ease infinite alternate;\n\t\t\t\tanimation: paint 1.5s ease infinite alternate;\n\t\t\t}\n\t\t\tp {\n\t\t\t\ttext-align: center;\n\t\t\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\t\t}\n\t\t</style>\n\t`;\n\n\t/**\n\t * Filters the interstitial message shown when generating previews.\n\t *\n\t * @param {string} markup The preview interstitial markup.\n\t */\n\tmarkup = applyFilters( 'editor.PostPreview.interstitialMarkup', markup );\n\n\ttargetDocument.write( markup );\n\ttargetDocument.title = __( 'Generating preview…' );\n\ttargetDocument.close();\n}\n\nexport class PostPreviewButton extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.buttonRef = createRef();\n\n\t\tthis.openPreviewWindow = this.openPreviewWindow.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { previewLink } = this.props;\n\t\t// This relies on the window being responsible to unset itself when\n\t\t// navigation occurs or a new preview window is opened, to avoid\n\t\t// unintentional forceful redirects.\n\t\tif ( previewLink && ! prevProps.previewLink ) {\n\t\t\tthis.setPreviewWindowLink( previewLink );\n\t\t}\n\t}\n\n\t/**\n\t * Sets the preview window's location to the given URL, if a preview window\n\t * exists and is not closed.\n\t *\n\t * @param {string} url URL to assign as preview window location.\n\t */\n\tsetPreviewWindowLink( url ) {\n\t\tconst { previewWindow } = this;\n\n\t\tif ( previewWindow && ! previewWindow.closed ) {\n\t\t\tpreviewWindow.location = url;\n\t\t\tif ( this.buttonRef.current ) {\n\t\t\t\tthis.buttonRef.current.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetWindowTarget() {\n\t\tconst { postId } = this.props;\n\t\treturn `wp-preview-${ postId }`;\n\t}\n\n\topenPreviewWindow( event ) {\n\t\t// Our Preview button has its 'href' and 'target' set correctly for a11y\n\t\t// purposes. Unfortunately, though, we can't rely on the default 'click'\n\t\t// handler since sometimes it incorrectly opens a new tab instead of reusing\n\t\t// the existing one.\n\t\t// https://github.com/WordPress/gutenberg/pull/8330\n\t\tevent.preventDefault();\n\n\t\t// Open up a Preview tab if needed. This is where we'll show the preview.\n\t\tif ( ! this.previewWindow || this.previewWindow.closed ) {\n\t\t\tthis.previewWindow = window.open( '', this.getWindowTarget() );\n\t\t}\n\n\t\t// Focus the Preview tab. This might not do anything, depending on the browser's\n\t\t// and user's preferences.\n\t\t// https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus\n\t\tthis.previewWindow.focus();\n\n\t\tif (\n\t\t\t// If we don't need to autosave the post before previewing, then we simply\n\t\t\t// load the Preview URL in the Preview tab.\n\t\t\t! this.props.isAutosaveable ||\n\t\t\t// Do not save or overwrite the post, if the post is already locked.\n\t\t\tthis.props.isPostLocked\n\t\t) {\n\t\t\tthis.setPreviewWindowLink( event.target.href );\n\t\t\treturn;\n\t\t}\n\n\t\t// Request an autosave. This happens asynchronously and causes the component\n\t\t// to update when finished.\n\t\tif ( this.props.isDraft ) {\n\t\t\tthis.props.savePost( { isPreview: true } );\n\t\t} else {\n\t\t\tthis.props.autosave( { isPreview: true } );\n\t\t}\n\n\t\t// Display a 'Generating preview' message in the Preview tab while we wait for the\n\t\t// autosave to finish.\n\t\twriteInterstitialMessage( this.previewWindow.document );\n\t}\n\n\trender() {\n\t\tconst { previewLink, currentPostLink, isSaveable, role } = this.props;\n\n\t\t// Link to the `?preview=true` URL if we have it, since this lets us see\n\t\t// changes that were autosaved since the post was last published. Otherwise,\n\t\t// just link to the post's URL.\n\t\tconst href = previewLink || currentPostLink;\n\n\t\tconst classNames = classnames(\n\t\t\t{\n\t\t\t\t'editor-post-preview': ! this.props.className,\n\t\t\t},\n\t\t\tthis.props.className\n\t\t);\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tvariant={ ! this.props.className ? 'tertiary' : undefined }\n\t\t\t\tclassName={ classNames }\n\t\t\t\thref={ href }\n\t\t\t\ttarget={ this.getWindowTarget() }\n\t\t\t\tdisabled={ ! isSaveable }\n\t\t\t\tonClick={ this.openPreviewWindow }\n\t\t\t\tref={ this.buttonRef }\n\t\t\t\trole={ role }\n\t\t\t>\n\t\t\t\t{ this.props.textContent ? (\n\t\t\t\t\tthis.props.textContent\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ _x( 'Preview', 'imperative verb' ) }\n\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { forcePreviewLink, forceIsAutosaveable } ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostAttribute,\n\t\t\tgetEditedPostAttribute,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostAutosaveable,\n\t\t\tgetEditedPostPreviewLink,\n\t\t\tisPostLocked,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\n\t\tconst previewLink = getEditedPostPreviewLink();\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tcurrentPostLink: getCurrentPostAttribute( 'link' ),\n\t\t\tpreviewLink:\n\t\t\t\tforcePreviewLink !== undefined ? forcePreviewLink : previewLink,\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisAutosaveable: forceIsAutosaveable || isEditedPostAutosaveable(),\n\t\t\tisViewable: get( postType, [ 'viewable' ], false ),\n\t\t\tisDraft:\n\t\t\t\t[ 'draft', 'auto-draft' ].indexOf(\n\t\t\t\t\tgetEditedPostAttribute( 'status' )\n\t\t\t\t) !== -1,\n\t\t\tisPostLocked: isPostLocked(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tautosave: dispatch( editorStore ).autosave,\n\t\tsavePost: dispatch( editorStore ).savePost,\n\t} ) ),\n\tifCondition( ( { isViewable } ) => isViewable ),\n] )( PostPreviewButton );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-preview-button/index.js"],"names":["writeInterstitialMessage","targetDocument","markup","write","title","close","PostPreviewButton","Component","constructor","arguments","buttonRef","openPreviewWindow","bind","componentDidUpdate","prevProps","previewLink","props","setPreviewWindowLink","url","previewWindow","closed","location","current","focus","getWindowTarget","postId","event","preventDefault","window","open","isAutosaveable","isPostLocked","target","href","isDraft","savePost","isPreview","autosave","document","render","currentPostLink","isSaveable","role","classNames","className","undefined","textContent","select","forcePreviewLink","forceIsAutosaveable","getCurrentPostId","getCurrentPostAttribute","getEditedPostAttribute","isEditedPostSaveable","isEditedPostAutosaveable","getEditedPostPreviewLink","editorStore","getPostType","coreStore","postType","isViewable","viewable","indexOf","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, renderToString } from '@wordpress/element';\nimport { Button, Path, SVG, VisuallyHidden } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ifCondition, compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction writeInterstitialMessage( targetDocument ) {\n\tlet markup = renderToString(\n\t\t<div className=\"editor-post-preview-button__interstitial-message\">\n\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"outer\"\n\t\t\t\t\td=\"M48 12c19.9 0 36 16.1 36 36S67.9 84 48 84 12 67.9 12 48s16.1-36 36-36\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"inner\"\n\t\t\t\t\td=\"M69.5 46.4c0-3.9-1.4-6.7-2.6-8.8-1.6-2.6-3.1-4.9-3.1-7.5 0-2.9 2.2-5.7 5.4-5.7h.4C63.9 19.2 56.4 16 48 16c-11.2 0-21 5.7-26.7 14.4h2.1c3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3L40 67.5l7-20.9L42 33c-1.7-.1-3.3-.3-3.3-.3-1.7-.1-1.5-2.7.2-2.6 0 0 5.3.4 8.4.4 3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3l11.5 34.3 3.3-10.4c1.6-4.5 2.4-7.8 2.4-10.5zM16.1 48c0 12.6 7.3 23.5 18 28.7L18.8 35c-1.7 4-2.7 8.4-2.7 13zm32.5 2.8L39 78.6c2.9.8 5.9 1.3 9 1.3 3.7 0 7.3-.6 10.6-1.8-.1-.1-.2-.3-.2-.4l-9.8-26.9zM76.2 36c0 3.2-.6 6.9-2.4 11.4L64 75.6c9.5-5.5 15.9-15.8 15.9-27.6 0-5.5-1.4-10.8-3.9-15.3.1 1 .2 2.1.2 3.3z\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t</SVG>\n\t\t\t<p>{ __( 'Generating preview…' ) }</p>\n\t\t</div>\n\t);\n\n\tmarkup += `\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\twidth: 100vw;\n\t\t\t}\n\t\t\t@-webkit-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-moz-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-o-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg {\n\t\t\t\twidth: 192px;\n\t\t\t\theight: 192px;\n\t\t\t\tstroke: #555d66;\n\t\t\t\tstroke-width: 0.75;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg .outer,\n\t\t\t.editor-post-preview-button__interstitial-message svg .inner {\n\t\t\t\tstroke-dasharray: 280;\n\t\t\t\tstroke-dashoffset: 280;\n\t\t\t\t-webkit-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-moz-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-o-animation: paint 1.5s ease infinite alternate;\n\t\t\t\tanimation: paint 1.5s ease infinite alternate;\n\t\t\t}\n\t\t\tp {\n\t\t\t\ttext-align: center;\n\t\t\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\t\t}\n\t\t</style>\n\t`;\n\n\t/**\n\t * Filters the interstitial message shown when generating previews.\n\t *\n\t * @param {string} markup The preview interstitial markup.\n\t */\n\tmarkup = applyFilters( 'editor.PostPreview.interstitialMarkup', markup );\n\n\ttargetDocument.write( markup );\n\ttargetDocument.title = __( 'Generating preview…' );\n\ttargetDocument.close();\n}\n\nexport class PostPreviewButton extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.buttonRef = createRef();\n\n\t\tthis.openPreviewWindow = this.openPreviewWindow.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { previewLink } = this.props;\n\t\t// This relies on the window being responsible to unset itself when\n\t\t// navigation occurs or a new preview window is opened, to avoid\n\t\t// unintentional forceful redirects.\n\t\tif ( previewLink && ! prevProps.previewLink ) {\n\t\t\tthis.setPreviewWindowLink( previewLink );\n\t\t}\n\t}\n\n\t/**\n\t * Sets the preview window's location to the given URL, if a preview window\n\t * exists and is not closed.\n\t *\n\t * @param {string} url URL to assign as preview window location.\n\t */\n\tsetPreviewWindowLink( url ) {\n\t\tconst { previewWindow } = this;\n\n\t\tif ( previewWindow && ! previewWindow.closed ) {\n\t\t\tpreviewWindow.location = url;\n\t\t\tif ( this.buttonRef.current ) {\n\t\t\t\tthis.buttonRef.current.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetWindowTarget() {\n\t\tconst { postId } = this.props;\n\t\treturn `wp-preview-${ postId }`;\n\t}\n\n\topenPreviewWindow( event ) {\n\t\t// Our Preview button has its 'href' and 'target' set correctly for a11y\n\t\t// purposes. Unfortunately, though, we can't rely on the default 'click'\n\t\t// handler since sometimes it incorrectly opens a new tab instead of reusing\n\t\t// the existing one.\n\t\t// https://github.com/WordPress/gutenberg/pull/8330\n\t\tevent.preventDefault();\n\n\t\t// Open up a Preview tab if needed. This is where we'll show the preview.\n\t\tif ( ! this.previewWindow || this.previewWindow.closed ) {\n\t\t\tthis.previewWindow = window.open( '', this.getWindowTarget() );\n\t\t}\n\n\t\t// Focus the Preview tab. This might not do anything, depending on the browser's\n\t\t// and user's preferences.\n\t\t// https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus\n\t\tthis.previewWindow.focus();\n\n\t\tif (\n\t\t\t// If we don't need to autosave the post before previewing, then we simply\n\t\t\t// load the Preview URL in the Preview tab.\n\t\t\t! this.props.isAutosaveable ||\n\t\t\t// Do not save or overwrite the post, if the post is already locked.\n\t\t\tthis.props.isPostLocked\n\t\t) {\n\t\t\tthis.setPreviewWindowLink( event.target.href );\n\t\t\treturn;\n\t\t}\n\n\t\t// Request an autosave. This happens asynchronously and causes the component\n\t\t// to update when finished.\n\t\tif ( this.props.isDraft ) {\n\t\t\tthis.props.savePost( { isPreview: true } );\n\t\t} else {\n\t\t\tthis.props.autosave( { isPreview: true } );\n\t\t}\n\n\t\t// Display a 'Generating preview' message in the Preview tab while we wait for the\n\t\t// autosave to finish.\n\t\twriteInterstitialMessage( this.previewWindow.document );\n\t}\n\n\trender() {\n\t\tconst { previewLink, currentPostLink, isSaveable, role } = this.props;\n\n\t\t// Link to the `?preview=true` URL if we have it, since this lets us see\n\t\t// changes that were autosaved since the post was last published. Otherwise,\n\t\t// just link to the post's URL.\n\t\tconst href = previewLink || currentPostLink;\n\n\t\tconst classNames = classnames(\n\t\t\t{\n\t\t\t\t'editor-post-preview': ! this.props.className,\n\t\t\t},\n\t\t\tthis.props.className\n\t\t);\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tvariant={ ! this.props.className ? 'tertiary' : undefined }\n\t\t\t\tclassName={ classNames }\n\t\t\t\thref={ href }\n\t\t\t\ttarget={ this.getWindowTarget() }\n\t\t\t\tdisabled={ ! isSaveable }\n\t\t\t\tonClick={ this.openPreviewWindow }\n\t\t\t\tref={ this.buttonRef }\n\t\t\t\trole={ role }\n\t\t\t>\n\t\t\t\t{ this.props.textContent ? (\n\t\t\t\t\tthis.props.textContent\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ _x( 'Preview', 'imperative verb' ) }\n\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { forcePreviewLink, forceIsAutosaveable } ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostAttribute,\n\t\t\tgetEditedPostAttribute,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostAutosaveable,\n\t\t\tgetEditedPostPreviewLink,\n\t\t\tisPostLocked,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\n\t\tconst previewLink = getEditedPostPreviewLink();\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tcurrentPostLink: getCurrentPostAttribute( 'link' ),\n\t\t\tpreviewLink:\n\t\t\t\tforcePreviewLink !== undefined ? forcePreviewLink : previewLink,\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisAutosaveable: forceIsAutosaveable || isEditedPostAutosaveable(),\n\t\t\tisViewable: postType?.viewable ?? false,\n\t\t\tisDraft:\n\t\t\t\t[ 'draft', 'auto-draft' ].indexOf(\n\t\t\t\t\tgetEditedPostAttribute( 'status' )\n\t\t\t\t) !== -1,\n\t\t\tisPostLocked: isPostLocked(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tautosave: dispatch( editorStore ).autosave,\n\t\tsavePost: dispatch( editorStore ).savePost,\n\t} ) ),\n\tifCondition( ( { isViewable } ) => isViewable ),\n] )( PostPreviewButton );\n"]}
|
|
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
-
var _lodash = require("lodash");
|
|
15
|
-
|
|
16
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
15
|
|
|
18
16
|
var _components = require("@wordpress/components");
|
|
@@ -178,7 +176,7 @@ class PostPublishButton extends _element.Component {
|
|
|
178
176
|
const buttonProps = {
|
|
179
177
|
'aria-disabled': isButtonDisabled,
|
|
180
178
|
className: 'editor-post-publish-button',
|
|
181
|
-
isBusy: !isAutoSaving && isSaving
|
|
179
|
+
isBusy: !isAutoSaving && isSaving,
|
|
182
180
|
variant: 'primary',
|
|
183
181
|
onClick: this.createOnClick(onClickButton)
|
|
184
182
|
};
|
|
@@ -211,6 +209,8 @@ class PostPublishButton extends _element.Component {
|
|
|
211
209
|
exports.PostPublishButton = PostPublishButton;
|
|
212
210
|
|
|
213
211
|
var _default = (0, _compose.compose)([(0, _data.withSelect)(select => {
|
|
212
|
+
var _getCurrentPost$_link, _getCurrentPost$_link2;
|
|
213
|
+
|
|
214
214
|
const {
|
|
215
215
|
isSavingPost,
|
|
216
216
|
isAutosavingPost,
|
|
@@ -238,7 +238,7 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)(select => {
|
|
|
238
238
|
isPostSavingLocked: isPostSavingLocked(),
|
|
239
239
|
isPublishable: isEditedPostPublishable(),
|
|
240
240
|
isPublished: isCurrentPostPublished(),
|
|
241
|
-
hasPublishAction: (
|
|
241
|
+
hasPublishAction: (_getCurrentPost$_link = (_getCurrentPost$_link2 = getCurrentPost()._links) === null || _getCurrentPost$_link2 === void 0 ? void 0 : _getCurrentPost$_link2['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
|
|
242
242
|
postType: getCurrentPostType(),
|
|
243
243
|
postId: getCurrentPostId(),
|
|
244
244
|
hasNonPostEntityChanges: hasNonPostEntityChanges(),
|
|
@@ -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","dispatch","editPost","savePost","status","undoIgnore"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\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 && isPublished,\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: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\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":"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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"]}
|
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.PublishButtonLabel = PublishButtonLabel;
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
|
|
9
|
-
var _lodash = require("lodash");
|
|
10
|
-
|
|
11
9
|
var _i18n = require("@wordpress/i18n");
|
|
12
10
|
|
|
13
11
|
var _compose = require("@wordpress/compose");
|
|
@@ -16,10 +14,6 @@ var _data = require("@wordpress/data");
|
|
|
16
14
|
|
|
17
15
|
var _store = require("../../store");
|
|
18
16
|
|
|
19
|
-
/**
|
|
20
|
-
* External dependencies
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
17
|
/**
|
|
24
18
|
* WordPress dependencies
|
|
25
19
|
*/
|
|
@@ -61,6 +55,8 @@ function PublishButtonLabel(_ref) {
|
|
|
61
55
|
}
|
|
62
56
|
|
|
63
57
|
var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref2) => {
|
|
58
|
+
var _getCurrentPost$_link, _getCurrentPost$_link2;
|
|
59
|
+
|
|
64
60
|
let {
|
|
65
61
|
forceIsSaving
|
|
66
62
|
} = _ref2;
|
|
@@ -78,7 +74,7 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref2) => {
|
|
|
78
74
|
isBeingScheduled: isEditedPostBeingScheduled(),
|
|
79
75
|
isSaving: forceIsSaving || isSavingPost(),
|
|
80
76
|
isPublishing: isPublishingPost(),
|
|
81
|
-
hasPublishAction: (
|
|
77
|
+
hasPublishAction: (_getCurrentPost$_link = (_getCurrentPost$_link2 = getCurrentPost()._links) === null || _getCurrentPost$_link2 === void 0 ? void 0 : _getCurrentPost$_link2['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
|
|
82
78
|
postType: getCurrentPostType(),
|
|
83
79
|
isAutosaving: isAutosavingPost()
|
|
84
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-button/label.js"],"names":["PublishButtonLabel","isPublished","isBeingScheduled","isSaving","isPublishing","hasPublishAction","isAutosaving","hasNonPostEntityChanges","select","forceIsSaving","isCurrentPostPublished","isEditedPostBeingScheduled","isSavingPost","isPublishingPost","getCurrentPost","getCurrentPostType","isAutosavingPost","editorStore","postType"],"mappings":";;;;;;;;AAGA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-button/label.js"],"names":["PublishButtonLabel","isPublished","isBeingScheduled","isSaving","isPublishing","hasPublishAction","isAutosaving","hasNonPostEntityChanges","select","forceIsSaving","isCurrentPostPublished","isEditedPostBeingScheduled","isSavingPost","isPublishingPost","getCurrentPost","getCurrentPostType","isAutosavingPost","editorStore","_links","postType"],"mappings":";;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGO,SAASA,kBAAT,OAQH;AAAA,MARgC;AACnCC,IAAAA,WADmC;AAEnCC,IAAAA,gBAFmC;AAGnCC,IAAAA,QAHmC;AAInCC,IAAAA,YAJmC;AAKnCC,IAAAA,gBALmC;AAMnCC,IAAAA,YANmC;AAOnCC,IAAAA;AAPmC,GAQhC;;AACH,MAAKH,YAAL,EAAoB;AACnB;AACA,WAAO,cAAI,aAAJ,CAAP;AACA,GAHD,MAGO,IAAKH,WAAW,IAAIE,QAAf,IAA2B,CAAEG,YAAlC,EAAiD;AACvD;AACA,WAAO,cAAI,WAAJ,CAAP;AACA,GAHM,MAGA,IAAKJ,gBAAgB,IAAIC,QAApB,IAAgC,CAAEG,YAAvC,EAAsD;AAC5D;AACA,WAAO,cAAI,aAAJ,CAAP;AACA;;AAED,MAAK,CAAED,gBAAP,EAA0B;AACzB,WAAOE,uBAAuB,GAC3B,cAAI,oBAAJ,CAD2B,GAE3B,cAAI,mBAAJ,CAFH;AAGA,GAJD,MAIO,IAAKN,WAAL,EAAmB;AACzB,WAAOM,uBAAuB,GAAG,cAAI,SAAJ,CAAH,GAAqB,cAAI,QAAJ,CAAnD;AACA,GAFM,MAEA,IAAKL,gBAAL,EAAwB;AAC9B,WAAOK,uBAAuB,GAAG,cAAI,WAAJ,CAAH,GAAuB,cAAI,UAAJ,CAArD;AACA;;AAED,SAAO,cAAI,SAAJ,CAAP;AACA;;eAEc,sBAAS,CACvB,sBAAY,CAAEC,MAAF,YAAiC;AAAA;;AAAA,MAAvB;AAAEC,IAAAA;AAAF,GAAuB;AAC5C,QAAM;AACLC,IAAAA,sBADK;AAELC,IAAAA,0BAFK;AAGLC,IAAAA,YAHK;AAILC,IAAAA,gBAJK;AAKLC,IAAAA,cALK;AAMLC,IAAAA,kBANK;AAOLC,IAAAA;AAPK,MAQFR,MAAM,CAAES,YAAF,CARV;AASA,SAAO;AACNhB,IAAAA,WAAW,EAAES,sBAAsB,EAD7B;AAENR,IAAAA,gBAAgB,EAAES,0BAA0B,EAFtC;AAGNR,IAAAA,QAAQ,EAAEM,aAAa,IAAIG,YAAY,EAHjC;AAINR,IAAAA,YAAY,EAAES,gBAAgB,EAJxB;AAKNR,IAAAA,gBAAgB,qDACfS,cAAc,GAAGI,MADF,2DACf,uBAA2B,mBAA3B,CADe,yEACqC,KAN/C;AAONC,IAAAA,QAAQ,EAAEJ,kBAAkB,EAPtB;AAQNT,IAAAA,YAAY,EAAEU,gBAAgB;AARxB,GAAP;AAUA,CApBD,CADuB,CAAT,EAsBVhB,kBAtBU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PublishButtonLabel( {\n\tisPublished,\n\tisBeingScheduled,\n\tisSaving,\n\tisPublishing,\n\thasPublishAction,\n\tisAutosaving,\n\thasNonPostEntityChanges,\n} ) {\n\tif ( isPublishing ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Publishing…' );\n\t} else if ( isPublished && isSaving && ! isAutosaving ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Updating…' );\n\t} else if ( isBeingScheduled && isSaving && ! isAutosaving ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Scheduling…' );\n\t}\n\n\tif ( ! hasPublishAction ) {\n\t\treturn hasNonPostEntityChanges\n\t\t\t? __( 'Submit for Review…' )\n\t\t\t: __( 'Submit for Review' );\n\t} else if ( isPublished ) {\n\t\treturn hasNonPostEntityChanges ? __( 'Update…' ) : __( 'Update' );\n\t} else if ( isBeingScheduled ) {\n\t\treturn hasNonPostEntityChanges ? __( 'Schedule…' ) : __( 'Schedule' );\n\t}\n\n\treturn __( 'Publish' );\n}\n\nexport default compose( [\n\twithSelect( ( select, { forceIsSaving } ) => {\n\t\tconst {\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tisSavingPost,\n\t\t\tisPublishingPost,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tisAutosavingPost,\n\t\t} = select( editorStore );\n\t\treturn {\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisSaving: forceIsSaving || isSavingPost(),\n\t\t\tisPublishing: isPublishingPost(),\n\t\t\thasPublishAction:\n\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tisAutosaving: isAutosavingPost(),\n\t\t};\n\t} ),\n] )( PublishButtonLabel );\n"]}
|
|
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
-
var _lodash = require("lodash");
|
|
15
|
-
|
|
16
14
|
var _i18n = require("@wordpress/i18n");
|
|
17
15
|
|
|
18
16
|
var _components = require("@wordpress/components");
|
|
@@ -33,10 +31,6 @@ var _postpublish = _interopRequireDefault(require("./postpublish"));
|
|
|
33
31
|
|
|
34
32
|
var _store = require("../../store");
|
|
35
33
|
|
|
36
|
-
/**
|
|
37
|
-
* External dependencies
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
34
|
/**
|
|
41
35
|
* WordPress dependencies
|
|
42
36
|
*/
|
|
@@ -135,6 +129,8 @@ class PostPublishPanel extends _element.Component {
|
|
|
135
129
|
exports.PostPublishPanel = PostPublishPanel;
|
|
136
130
|
|
|
137
131
|
var _default = (0, _compose.compose)([(0, _data.withSelect)(select => {
|
|
132
|
+
var _getCurrentPost$_link, _getCurrentPost$_link2;
|
|
133
|
+
|
|
138
134
|
const {
|
|
139
135
|
getPostType
|
|
140
136
|
} = select(_coreData.store);
|
|
@@ -153,8 +149,8 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)(select => {
|
|
|
153
149
|
} = select(_store.store);
|
|
154
150
|
const postType = getPostType(getEditedPostAttribute('type'));
|
|
155
151
|
return {
|
|
156
|
-
hasPublishAction: (
|
|
157
|
-
isPostTypeViewable:
|
|
152
|
+
hasPublishAction: (_getCurrentPost$_link = (_getCurrentPost$_link2 = getCurrentPost()._links) === null || _getCurrentPost$_link2 === void 0 ? void 0 : _getCurrentPost$_link2['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
|
|
153
|
+
isPostTypeViewable: postType === null || postType === void 0 ? void 0 : postType.viewable,
|
|
158
154
|
isBeingScheduled: isEditedPostBeingScheduled(),
|
|
159
155
|
isDirty: isEditedPostDirty(),
|
|
160
156
|
isPublished: isCurrentPostPublished(),
|
|
@@ -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","dispatch","disablePublishSidebar","enablePublishSidebar","withFocusReturn","withConstrainedTabbing"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\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: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tisPostTypeViewable: get( postType, [ 'viewable' ], false ),\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"]}
|
|
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"]}
|
|
@@ -7,8 +7,6 @@ exports.default = PostFormatPanel;
|
|
|
7
7
|
|
|
8
8
|
var _element = require("@wordpress/element");
|
|
9
9
|
|
|
10
|
-
var _lodash = require("lodash");
|
|
11
|
-
|
|
12
10
|
var _components = require("@wordpress/components");
|
|
13
11
|
|
|
14
12
|
var _data = require("@wordpress/data");
|
|
@@ -21,10 +19,6 @@ var _postFormat = require("../post-format");
|
|
|
21
19
|
|
|
22
20
|
var _store = require("../../store");
|
|
23
21
|
|
|
24
|
-
/**
|
|
25
|
-
* External dependencies
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
22
|
/**
|
|
29
23
|
* WordPress dependencies
|
|
30
24
|
*/
|
|
@@ -55,11 +49,13 @@ function PostFormatPanel() {
|
|
|
55
49
|
currentPostFormat,
|
|
56
50
|
suggestion
|
|
57
51
|
} = (0, _data.useSelect)(select => {
|
|
52
|
+
var _select$getThemeSuppo;
|
|
53
|
+
|
|
58
54
|
const {
|
|
59
55
|
getEditedPostAttribute,
|
|
60
56
|
getSuggestedPostFormat
|
|
61
57
|
} = select(_store.store);
|
|
62
|
-
const supportedFormats = (
|
|
58
|
+
const supportedFormats = (_select$getThemeSuppo = select(_coreData.store).getThemeSupports().formats) !== null && _select$getThemeSuppo !== void 0 ? _select$getThemeSuppo : [];
|
|
63
59
|
return {
|
|
64
60
|
currentPostFormat: getEditedPostAttribute('format'),
|
|
65
61
|
suggestion: getSuggestion(supportedFormats, getSuggestedPostFormat())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/maybe-post-format-panel.js"],"names":["getSuggestion","supportedFormats","suggestedPostFormat","formats","POST_FORMATS","filter","format","includes","id","find","PostFormatSuggestion","suggestionText","onUpdatePostFormat","PostFormatPanel","currentPostFormat","suggestion","select","getEditedPostAttribute","getSuggestedPostFormat","editorStore","coreStore","getThemeSupports","editPost","panelBodyTitle","caption"],"mappings":";;;;;;;;;AAGA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-publish-panel/maybe-post-format-panel.js"],"names":["getSuggestion","supportedFormats","suggestedPostFormat","formats","POST_FORMATS","filter","format","includes","id","find","PostFormatSuggestion","suggestionText","onUpdatePostFormat","PostFormatPanel","currentPostFormat","suggestion","select","getEditedPostAttribute","getSuggestedPostFormat","editorStore","coreStore","getThemeSupports","editPost","panelBodyTitle","caption"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAZA;AACA;AACA;;AAMA;AACA;AACA;AAIA,MAAMA,aAAa,GAAG,CAAEC,gBAAF,EAAoBC,mBAApB,KAA6C;AAClE,QAAMC,OAAO,GAAGC,yBAAaC,MAAb,CAAuBC,MAAF,IACpCL,gBADoC,aACpCA,gBADoC,uBACpCA,gBAAgB,CAAEM,QAAlB,CAA4BD,MAAM,CAACE,EAAnC,CADe,CAAhB;;AAGA,SAAOL,OAAO,CAACM,IAAR,CAAgBH,MAAF,IAAcA,MAAM,CAACE,EAAP,KAAcN,mBAA1C,CAAP;AACA,CALD;;AAOA,MAAMQ,oBAAoB,GAAG;AAAA,MAAE;AAC9BR,IAAAA,mBAD8B;AAE9BS,IAAAA,cAF8B;AAG9BC,IAAAA;AAH8B,GAAF;AAAA,SAK5B,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAC,MADT;AAEC,IAAA,OAAO,EAAG,MAAMA,kBAAkB,CAAEV,mBAAF;AAFnC,KAIGS,cAJH,CAL4B;AAAA,CAA7B;;AAae,SAASE,eAAT,GAA2B;AACzC,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAoC,qBAAaC,MAAF,IAAc;AAAA;;AAClE,UAAM;AAAEC,MAAAA,sBAAF;AAA0BC,MAAAA;AAA1B,QACLF,MAAM,CAAEG,YAAF,CADP;AAEA,UAAMlB,gBAAgB,4BACrBe,MAAM,CAAEI,eAAF,CAAN,CAAoBC,gBAApB,GAAuClB,OADlB,yEAC6B,EADnD;AAEA,WAAO;AACNW,MAAAA,iBAAiB,EAAEG,sBAAsB,CAAE,QAAF,CADnC;AAENF,MAAAA,UAAU,EAAEf,aAAa,CACxBC,gBADwB,EAExBiB,sBAAsB,EAFE;AAFnB,KAAP;AAOA,GAZyC,EAYvC,EAZuC,CAA1C;AAcA,QAAM;AAAEI,IAAAA;AAAF,MAAe,uBAAaH,YAAb,CAArB;;AAEA,QAAMP,kBAAkB,GAAKN,MAAF,IAAcgB,QAAQ,CAAE;AAAEhB,IAAAA;AAAF,GAAF,CAAjD;;AAEA,QAAMiB,cAAc,GAAG,CACtB,cAAI,aAAJ,CADsB,EAEtB;AAAM,IAAA,SAAS,EAAC,iCAAhB;AAAkD,IAAA,GAAG,EAAC;AAAtD,KACG,cAAI,mBAAJ,CADH,CAFsB,CAAvB;;AAOA,MAAK,CAAER,UAAF,IAAgBA,UAAU,CAACP,EAAX,KAAkBM,iBAAvC,EAA2D;AAC1D,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,qBAAD;AAAW,IAAA,WAAW,EAAG,KAAzB;AAAiC,IAAA,KAAK,EAAGS;AAAzC,KACC,uCACG,cACD,+IADC,CADH,CADD,EAMC,uCACC,4BAAC,oBAAD;AACC,IAAA,kBAAkB,EAAGX,kBADtB;AAEC,IAAA,mBAAmB,EAAGG,UAAU,CAACP,EAFlC;AAGC,IAAA,cAAc,EAAG;AAChB;AACA,kBAAI,0BAAJ,CAFgB,EAGhBO,UAAU,CAACS,OAHK;AAHlB,IADD,CAND,CADD;AAoBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, PanelBody } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { POST_FORMATS } from '../post-format';\nimport { store as editorStore } from '../../store';\n\nconst getSuggestion = ( supportedFormats, suggestedPostFormat ) => {\n\tconst formats = POST_FORMATS.filter( ( format ) =>\n\t\tsupportedFormats?.includes( format.id )\n\t);\n\treturn formats.find( ( format ) => format.id === suggestedPostFormat );\n};\n\nconst PostFormatSuggestion = ( {\n\tsuggestedPostFormat,\n\tsuggestionText,\n\tonUpdatePostFormat,\n} ) => (\n\t<Button\n\t\tvariant=\"link\"\n\t\tonClick={ () => onUpdatePostFormat( suggestedPostFormat ) }\n\t>\n\t\t{ suggestionText }\n\t</Button>\n);\n\nexport default function PostFormatPanel() {\n\tconst { currentPostFormat, suggestion } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute, getSuggestedPostFormat } =\n\t\t\tselect( editorStore );\n\t\tconst supportedFormats =\n\t\t\tselect( coreStore ).getThemeSupports().formats ?? [];\n\t\treturn {\n\t\t\tcurrentPostFormat: getEditedPostAttribute( 'format' ),\n\t\t\tsuggestion: getSuggestion(\n\t\t\t\tsupportedFormats,\n\t\t\t\tgetSuggestedPostFormat()\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst onUpdatePostFormat = ( format ) => editPost( { format } );\n\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'Use a post format' ) }\n\t\t</span>,\n\t];\n\n\tif ( ! suggestion || suggestion.id === currentPostFormat ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody initialOpen={ false } title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Your theme uses post formats to highlight different kinds of content, like images or videos. Apply a post format to see this special styling.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t<PostFormatSuggestion\n\t\t\t\t\tonUpdatePostFormat={ onUpdatePostFormat }\n\t\t\t\t\tsuggestedPostFormat={ suggestion.id }\n\t\t\t\t\tsuggestionText={ sprintf(\n\t\t\t\t\t\t/* translators: %s: post format */\n\t\t\t\t\t\t__( 'Apply the \"%1$s\" format.' ),\n\t\t\t\t\t\tsuggestion.caption\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</p>\n\t\t</PanelBody>\n\t);\n}\n"]}
|
|
@@ -9,8 +9,6 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
11
|
|
|
12
|
-
var _lodash = require("lodash");
|
|
13
|
-
|
|
14
12
|
var _components = require("@wordpress/components");
|
|
15
13
|
|
|
16
14
|
var _i18n = require("@wordpress/i18n");
|
|
@@ -29,10 +27,6 @@ var _label = _interopRequireDefault(require("../post-schedule/label"));
|
|
|
29
27
|
|
|
30
28
|
var _store = require("../../store");
|
|
31
29
|
|
|
32
|
-
/**
|
|
33
|
-
* External dependencies
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
30
|
/**
|
|
37
31
|
* WordPress dependencies
|
|
38
32
|
*/
|
|
@@ -112,15 +106,17 @@ class PostPublishPanelPostpublish extends _element.Component {
|
|
|
112
106
|
}
|
|
113
107
|
|
|
114
108
|
render() {
|
|
109
|
+
var _postType$labels, _postType$labels2, _postType$labels3;
|
|
110
|
+
|
|
115
111
|
const {
|
|
116
112
|
children,
|
|
117
113
|
isScheduled,
|
|
118
114
|
post,
|
|
119
115
|
postType
|
|
120
116
|
} = this.props;
|
|
121
|
-
const postLabel =
|
|
122
|
-
const viewPostLabel =
|
|
123
|
-
const addNewPostLabel =
|
|
117
|
+
const postLabel = postType === null || postType === void 0 ? void 0 : (_postType$labels = postType.labels) === null || _postType$labels === void 0 ? void 0 : _postType$labels.singular_name;
|
|
118
|
+
const viewPostLabel = postType === null || postType === void 0 ? void 0 : (_postType$labels2 = postType.labels) === null || _postType$labels2 === void 0 ? void 0 : _postType$labels2.view_item;
|
|
119
|
+
const addNewPostLabel = postType === null || postType === void 0 ? void 0 : (_postType$labels3 = postType.labels) === null || _postType$labels3 === void 0 ? void 0 : _postType$labels3.add_new_item;
|
|
124
120
|
const link = post.status === 'future' ? getFuturePostUrl(post) : post.link;
|
|
125
121
|
const addLink = (0, _url.addQueryArgs)('post-new.php', {
|
|
126
122
|
post_type: post.type
|