@wordpress/editor 14.0.4 → 14.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/build/bindings/post-meta.js +4 -0
  2. package/build/bindings/post-meta.js.map +1 -1
  3. package/build/components/page-attributes/parent.js +2 -1
  4. package/build/components/page-attributes/parent.js.map +1 -1
  5. package/build/components/post-actions/actions.js +13 -35
  6. package/build/components/post-actions/actions.js.map +1 -1
  7. package/build/components/post-actions/export-pattern-action.js +2 -2
  8. package/build/components/post-actions/export-pattern-action.js.map +1 -1
  9. package/build/components/post-publish-button/index.js +4 -11
  10. package/build/components/post-publish-button/index.js.map +1 -1
  11. package/build/components/post-saved-state/index.js +11 -1
  12. package/build/components/post-saved-state/index.js.map +1 -1
  13. package/build/components/post-status/index.js +2 -1
  14. package/build/components/post-status/index.js.map +1 -1
  15. package/build/components/save-publish-panels/index.js +1 -2
  16. package/build/components/save-publish-panels/index.js.map +1 -1
  17. package/build/store/utils/is-template-revertable.js +6 -8
  18. package/build/store/utils/is-template-revertable.js.map +1 -1
  19. package/build-module/bindings/post-meta.js +4 -0
  20. package/build-module/bindings/post-meta.js.map +1 -1
  21. package/build-module/components/page-attributes/parent.js +2 -1
  22. package/build-module/components/page-attributes/parent.js.map +1 -1
  23. package/build-module/components/post-actions/actions.js +13 -35
  24. package/build-module/components/post-actions/actions.js.map +1 -1
  25. package/build-module/components/post-actions/export-pattern-action.js +2 -2
  26. package/build-module/components/post-actions/export-pattern-action.js.map +1 -1
  27. package/build-module/components/post-publish-button/index.js +4 -11
  28. package/build-module/components/post-publish-button/index.js.map +1 -1
  29. package/build-module/components/post-saved-state/index.js +11 -1
  30. package/build-module/components/post-saved-state/index.js.map +1 -1
  31. package/build-module/components/post-status/index.js +1 -1
  32. package/build-module/components/post-status/index.js.map +1 -1
  33. package/build-module/components/save-publish-panels/index.js +1 -2
  34. package/build-module/components/save-publish-panels/index.js.map +1 -1
  35. package/build-module/store/utils/is-template-revertable.js +6 -8
  36. package/build-module/store/utils/is-template-revertable.js.map +1 -1
  37. package/build-style/style-rtl.css +1 -0
  38. package/build-style/style.css +1 -0
  39. package/package.json +6 -6
  40. package/src/bindings/post-meta.js +5 -0
  41. package/src/components/page-attributes/parent.js +6 -3
  42. package/src/components/post-actions/actions.js +28 -57
  43. package/src/components/post-actions/export-pattern-action.js +4 -2
  44. package/src/components/post-panel-row/style.scss +1 -0
  45. package/src/components/post-publish-button/index.js +4 -17
  46. package/src/components/post-saved-state/index.js +11 -1
  47. package/src/components/post-status/index.js +1 -1
  48. package/src/components/save-publish-panels/index.js +1 -4
  49. package/src/store/utils/is-template-revertable.js +8 -8
@@ -18,6 +18,7 @@ import { store as preferencesStore } from '@wordpress/preferences';
18
18
  /**
19
19
  * Internal dependencies
20
20
  */
21
+ import { STATUS_OPTIONS } from '../../components/post-status';
21
22
  import { store as editorStore } from '../../store';
22
23
 
23
24
  /**
@@ -100,7 +101,16 @@ export default function PostSavedState({
100
101
  if (!hasPublishAction && isPending) {
101
102
  return null;
102
103
  }
103
- if (isPublished || isScheduled || !['pending', 'draft', 'auto-draft'].includes(postStatus) || postStatusHasChanged && ['pending', 'draft'].includes(postStatus)) {
104
+
105
+ // We shouldn't render the button if the post has not one of the following statuses: pending, draft, auto-draft.
106
+ // The reason for this is that this button handles the `save as pending` and `save draft` actions.
107
+ // An exception for this is when the post has a custom status and there should be a way to save changes without
108
+ // having to publish. This should be handled better in the future when custom statuses have better support.
109
+ // @see https://github.com/WordPress/gutenberg/issues/3144.
110
+ const isIneligibleStatus = !['pending', 'draft', 'auto-draft'].includes(postStatus) && STATUS_OPTIONS.map(({
111
+ value
112
+ }) => value).includes(postStatus);
113
+ if (isPublished || isScheduled || isIneligibleStatus || postStatusHasChanged && ['pending', 'draft'].includes(postStatus)) {
104
114
  return null;
105
115
  }
106
116
 
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__unstableGetAnimateClassName","getAnimateClassName","Button","usePrevious","useViewportMatch","useDispatch","useSelect","useEffect","useState","__","Icon","check","cloud","cloudUpload","displayShortcut","store","preferencesStore","editorStore","jsx","_jsx","jsxs","_jsxs","PostSavedState","forceIsDirty","forceSavedMessage","setForceSavedMessage","isLargeViewport","isAutosaving","isDirty","isNew","isPublished","isSaveable","isSaving","isScheduled","hasPublishAction","showIconLabels","postStatus","postStatusHasChanged","select","_getCurrentPost$_link","isEditedPostNew","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostDirty","isSavingPost","isEditedPostSaveable","getCurrentPost","isAutosavingPost","getEditedPostAttribute","getPostEdits","get","_links","status","isPending","savePost","wasSaving","timeoutId","setTimeout","clearTimeout","includes","label","shortLabel","isSaved","isSavedState","isDisabled","text","className","type","undefined","onClick","shortcut","primary","variant","size","icon","children"],"sources":["@wordpress/editor/src/components/post-saved-state/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object} props Component props.\n * @param {?boolean} props.forceIsDirty Whether to force the post to be marked\n * as dirty.\n * @return {import('react').ComponentType} The component.\n */\nexport default function PostSavedState( { forceIsDirty } ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t\tshowIconLabels,\n\t\tpostStatus,\n\t\tpostStatusHasChanged,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetPostEdits,\n\t\t\t} = select( editorStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t\tpostStatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tpostStatusHasChanged: !! getPostEdits()?.status,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty ]\n\t);\n\tconst isPending = postStatus === 'pending';\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tisPublished ||\n\t\tisScheduled ||\n\t\t! [ 'pending', 'draft', 'auto-draft' ].includes( postStatus ) ||\n\t\t( postStatusHasChanged &&\n\t\t\t[ 'pending', 'draft' ].includes( postStatus ) )\n\t) {\n\t\treturn null;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Button\n\t\t\tclassName={\n\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t? clsx( {\n\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t } )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ isDisabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\tvariant=\"tertiary\"\n\t\t\tsize=\"compact\"\n\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\tlabel={ text || label }\n\t\t\taria-disabled={ isDisabled }\n\t\t>\n\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t{ text }\n\t\t</Button>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__unstableGetAnimateClassName","getAnimateClassName","Button","usePrevious","useViewportMatch","useDispatch","useSelect","useEffect","useState","__","Icon","check","cloud","cloudUpload","displayShortcut","store","preferencesStore","STATUS_OPTIONS","editorStore","jsx","_jsx","jsxs","_jsxs","PostSavedState","forceIsDirty","forceSavedMessage","setForceSavedMessage","isLargeViewport","isAutosaving","isDirty","isNew","isPublished","isSaveable","isSaving","isScheduled","hasPublishAction","showIconLabels","postStatus","postStatusHasChanged","select","_getCurrentPost$_link","isEditedPostNew","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostDirty","isSavingPost","isEditedPostSaveable","getCurrentPost","isAutosavingPost","getEditedPostAttribute","getPostEdits","get","_links","status","isPending","savePost","wasSaving","timeoutId","setTimeout","clearTimeout","isIneligibleStatus","includes","map","value","label","shortLabel","isSaved","isSavedState","isDisabled","text","className","type","undefined","onClick","shortcut","primary","variant","size","icon","children"],"sources":["@wordpress/editor/src/components/post-saved-state/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { STATUS_OPTIONS } from '../../components/post-status';\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object} props Component props.\n * @param {?boolean} props.forceIsDirty Whether to force the post to be marked\n * as dirty.\n * @return {import('react').ComponentType} The component.\n */\nexport default function PostSavedState( { forceIsDirty } ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t\tshowIconLabels,\n\t\tpostStatus,\n\t\tpostStatusHasChanged,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetPostEdits,\n\t\t\t} = select( editorStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t\tpostStatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tpostStatusHasChanged: !! getPostEdits()?.status,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty ]\n\t);\n\tconst isPending = postStatus === 'pending';\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\t// We shouldn't render the button if the post has not one of the following statuses: pending, draft, auto-draft.\n\t// The reason for this is that this button handles the `save as pending` and `save draft` actions.\n\t// An exception for this is when the post has a custom status and there should be a way to save changes without\n\t// having to publish. This should be handled better in the future when custom statuses have better support.\n\t// @see https://github.com/WordPress/gutenberg/issues/3144.\n\tconst isIneligibleStatus =\n\t\t! [ 'pending', 'draft', 'auto-draft' ].includes( postStatus ) &&\n\t\tSTATUS_OPTIONS.map( ( { value } ) => value ).includes( postStatus );\n\n\tif (\n\t\tisPublished ||\n\t\tisScheduled ||\n\t\tisIneligibleStatus ||\n\t\t( postStatusHasChanged &&\n\t\t\t[ 'pending', 'draft' ].includes( postStatus ) )\n\t) {\n\t\treturn null;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Button\n\t\t\tclassName={\n\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t? clsx( {\n\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t } )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ isDisabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\tvariant=\"tertiary\"\n\t\t\tsize=\"compact\"\n\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\tlabel={ text || label }\n\t\t\taria-disabled={ isDisabled }\n\t\t>\n\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t{ text }\n\t\t</Button>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SACCC,6BAA6B,IAAIC,mBAAmB,EACpDC,MAAM,QACA,uBAAuB;AAC9B,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,oBAAoB;AAClE,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,SAAS,EAAEC,QAAQ,QAAQ,oBAAoB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,IAAI,EAAEC,KAAK,EAAEC,KAAK,EAAEC,WAAW,QAAQ,kBAAkB;AAClE,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,wBAAwB;;AAElE;AACA;AACA;AACA,SAASC,cAAc,QAAQ,8BAA8B;AAC7D,SAASF,KAAK,IAAIG,WAAW,QAAQ,aAAa;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AASA,eAAe,SAASC,cAAcA,CAAE;EAAEC;AAAa,CAAC,EAAG;EAC1D,MAAM,CAAEC,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGlB,QAAQ,CAAE,KAAM,CAAC;EACrE,MAAMmB,eAAe,GAAGvB,gBAAgB,CAAE,OAAQ,CAAC;EAEnD,MAAM;IACLwB,YAAY;IACZC,OAAO;IACPC,KAAK;IACLC,WAAW;IACXC,UAAU;IACVC,QAAQ;IACRC,WAAW;IACXC,gBAAgB;IAChBC,cAAc;IACdC,UAAU;IACVC;EACD,CAAC,GAAGhC,SAAS,CACViC,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACb,MAAM;MACLC,eAAe;MACfC,sBAAsB;MACtBC,sBAAsB;MACtBC,iBAAiB;MACjBC,YAAY;MACZC,oBAAoB;MACpBC,cAAc;MACdC,gBAAgB;MAChBC,sBAAsB;MACtBC;IACD,CAAC,GAAGX,MAAM,CAAErB,WAAY,CAAC;IACzB,MAAM;MAAEiC;IAAI,CAAC,GAAGZ,MAAM,CAAEvB,gBAAiB,CAAC;IAC1C,OAAO;MACNY,YAAY,EAAEoB,gBAAgB,CAAC,CAAC;MAChCnB,OAAO,EAAEL,YAAY,IAAIoB,iBAAiB,CAAC,CAAC;MAC5Cd,KAAK,EAAEW,eAAe,CAAC,CAAC;MACxBV,WAAW,EAAEW,sBAAsB,CAAC,CAAC;MACrCT,QAAQ,EAAEY,YAAY,CAAC,CAAC;MACxBb,UAAU,EAAEc,oBAAoB,CAAC,CAAC;MAClCZ,WAAW,EAAES,sBAAsB,CAAC,CAAC;MACrCR,gBAAgB,GAAAK,qBAAA,GACfO,cAAc,CAAC,CAAC,EAAEK,MAAM,GAAI,mBAAmB,CAAE,cAAAZ,qBAAA,cAAAA,qBAAA,GAAI,KAAK;MAC3DJ,cAAc,EAAEe,GAAG,CAAE,MAAM,EAAE,gBAAiB,CAAC;MAC/Cd,UAAU,EAAEY,sBAAsB,CAAE,QAAS,CAAC;MAC9CX,oBAAoB,EAAE,CAAC,CAAEY,YAAY,CAAC,CAAC,EAAEG;IAC1C,CAAC;EACF,CAAC,EACD,CAAE7B,YAAY,CACf,CAAC;EACD,MAAM8B,SAAS,GAAGjB,UAAU,KAAK,SAAS;EAC1C,MAAM;IAAEkB;EAAS,CAAC,GAAGlD,WAAW,CAAEa,WAAY,CAAC;EAE/C,MAAMsC,SAAS,GAAGrD,WAAW,CAAE8B,QAAS,CAAC;EAEzC1B,SAAS,CAAE,MAAM;IAChB,IAAIkD,SAAS;IAEb,IAAKD,SAAS,IAAI,CAAEvB,QAAQ,EAAG;MAC9BP,oBAAoB,CAAE,IAAK,CAAC;MAC5B+B,SAAS,GAAGC,UAAU,CAAE,MAAM;QAC7BhC,oBAAoB,CAAE,KAAM,CAAC;MAC9B,CAAC,EAAE,IAAK,CAAC;IACV;IAEA,OAAO,MAAMiC,YAAY,CAAEF,SAAU,CAAC;EACvC,CAAC,EAAE,CAAExB,QAAQ,CAAG,CAAC;;EAEjB;EACA;EACA,IAAK,CAAEE,gBAAgB,IAAImB,SAAS,EAAG;IACtC,OAAO,IAAI;EACZ;;EAEA;EACA;EACA;EACA;EACA;EACA,MAAMM,kBAAkB,GACvB,CAAE,CAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAE,CAACC,QAAQ,CAAExB,UAAW,CAAC,IAC7DpB,cAAc,CAAC6C,GAAG,CAAE,CAAE;IAAEC;EAAM,CAAC,KAAMA,KAAM,CAAC,CAACF,QAAQ,CAAExB,UAAW,CAAC;EAEpE,IACCN,WAAW,IACXG,WAAW,IACX0B,kBAAkB,IAChBtB,oBAAoB,IACrB,CAAE,SAAS,EAAE,OAAO,CAAE,CAACuB,QAAQ,CAAExB,UAAW,CAAG,EAC/C;IACD,OAAO,IAAI;EACZ;;EAEA;EACA,MAAM2B,KAAK,GAAGV,SAAS,GAAG7C,EAAE,CAAE,iBAAkB,CAAC,GAAGA,EAAE,CAAE,YAAa,CAAC;;EAEtE;EACA,MAAMwD,UAAU,GAAGxD,EAAE,CAAE,MAAO,CAAC;EAE/B,MAAMyD,OAAO,GAAGzC,iBAAiB,IAAM,CAAEK,KAAK,IAAI,CAAED,OAAS;EAC7D,MAAMsC,YAAY,GAAGlC,QAAQ,IAAIiC,OAAO;EACxC,MAAME,UAAU,GAAGnC,QAAQ,IAAIiC,OAAO,IAAI,CAAElC,UAAU;EACtD,IAAIqC,IAAI;EAER,IAAKpC,QAAQ,EAAG;IACfoC,IAAI,GAAGzC,YAAY,GAAGnB,EAAE,CAAE,YAAa,CAAC,GAAGA,EAAE,CAAE,QAAS,CAAC;EAC1D,CAAC,MAAM,IAAKyD,OAAO,EAAG;IACrBG,IAAI,GAAG5D,EAAE,CAAE,OAAQ,CAAC;EACrB,CAAC,MAAM,IAAKkB,eAAe,EAAG;IAC7B0C,IAAI,GAAGL,KAAK;EACb,CAAC,MAAM,IAAK5B,cAAc,EAAG;IAC5BiC,IAAI,GAAGJ,UAAU;EAClB;;EAEA;EACA;EACA,oBACC3C,KAAA,CAACpB,MAAM;IACNoE,SAAS,EACRtC,UAAU,IAAIC,QAAQ,GACnBlC,IAAI,CAAE;MACN,wBAAwB,EAAE,CAAEoE,YAAY;MACxC,yBAAyB,EAAEA,YAAY;MACvC,WAAW,EAAElC,QAAQ;MACrB,eAAe,EAAEL,YAAY;MAC7B,UAAU,EAAEsC,OAAO;MACnB,CAAEjE,mBAAmB,CAAE;QACtBsE,IAAI,EAAE;MACP,CAAE,CAAC,GAAItC;IACP,CAAE,CAAC,GACHuC,SACH;IACDC,OAAO,EAAGL,UAAU,GAAGI,SAAS,GAAG,MAAMjB,QAAQ,CAAC;IAClD;AACH;AACA;AACA,OAHG;IAIAmB,QAAQ,EAAGN,UAAU,GAAGI,SAAS,GAAG1D,eAAe,CAAC6D,OAAO,CAAE,GAAI,CAAG;IACpEC,OAAO,EAAC,UAAU;IAClBC,IAAI,EAAC,SAAS;IACdC,IAAI,EAAGnD,eAAe,GAAG6C,SAAS,GAAG3D,WAAa;IAClDmD,KAAK,EAAGK,IAAI,IAAIL,KAAO;IACvB,iBAAgBI,UAAY;IAAAW,QAAA,GAE1BZ,YAAY,iBAAI/C,IAAA,CAACV,IAAI;MAACoE,IAAI,EAAGZ,OAAO,GAAGvD,KAAK,GAAGC;IAAO,CAAE,CAAC,EACzDyD,IAAI;EAAA,CACC,CAAC;AAEX","ignoreList":[]}
@@ -27,7 +27,7 @@ const labels = {
27
27
  future: __('Scheduled'),
28
28
  publish: __('Published')
29
29
  };
30
- const STATUS_OPTIONS = [{
30
+ export const STATUS_OPTIONS = [{
31
31
  label: /*#__PURE__*/_jsxs(_Fragment, {
32
32
  children: [__('Draft'), /*#__PURE__*/_jsx(Text, {
33
33
  variant: "muted",
@@ -1 +1 @@
1
- {"version":3,"names":["Button","CheckboxControl","Dropdown","__experimentalText","Text","__experimentalVStack","VStack","TextControl","RadioControl","__","sprintf","useDispatch","useSelect","useState","useMemo","store","coreStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useInstanceId","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","PATTERN_POST_TYPE","NAVIGATION_POST_TYPE","PostPanelRow","PrivatePostSchedule","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","labels","draft","pending","private","future","publish","STATUS_OPTIONS","label","children","variant","size","value","DESIGN_POST_TYPES","PostStatus","status","date","password","postId","postType","canEdit","select","_getCurrentPost$_link","getEditedPostAttribute","getCurrentPostId","getCurrentPostType","getCurrentPost","_links","showPassword","setShowPassword","passwordInputId","editEntityRecord","popoverAnchor","setPopoverAnchor","popoverProps","anchor","headerTitle","placement","offset","shift","includes","updatePost","newStatus","newPassword","newDate","handleTogglePassword","handleStatus","Date","ref","className","contentClassName","focusOnMount","renderToggle","onToggle","onClick","renderContent","onClose","title","spacing","hideLabelFromVision","options","onChange","selected","showPopoverHeaderActions","isCompact","as","__nextHasNoMarginBottom","help","checked","placeholder","type","id","__next40pxDefaultSize"],"sources":["@wordpress/editor/src/components/post-status/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\tDropdown,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tRadioControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n} from '../../store/constants';\nimport PostPanelRow from '../post-panel-row';\nimport { PrivatePostSchedule } from '../post-schedule';\nimport { store as editorStore } from '../../store';\n\nconst labels = {\n\t'auto-draft': __( 'Draft' ),\n\tdraft: __( 'Draft' ),\n\tpending: __( 'Pending' ),\n\tprivate: __( 'Private' ),\n\tfuture: __( 'Scheduled' ),\n\tpublish: __( 'Published' ),\n};\n\nconst STATUS_OPTIONS = [\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Draft' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Not ready to publish.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'draft',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Pending' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Waiting for review before publishing.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'pending',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Private' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Only visible to site admins and editors.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'private',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Scheduled' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Publish automatically on a chosen date.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'future',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Published' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Visible to everyone.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'publish',\n\t},\n];\n\nconst DESIGN_POST_TYPES = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n];\n\nexport default function PostStatus() {\n\tconst { status, date, password, postId, postType, canEdit } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetCurrentPostId,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPost,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tstatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tdate: getEditedPostAttribute( 'date' ),\n\t\t\t\tpassword: getEditedPostAttribute( 'password' ),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tcanEdit:\n\t\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst [ showPassword, setShowPassword ] = useState( !! password );\n\tconst passwordInputId = useInstanceId(\n\t\tPostStatus,\n\t\t'editor-change-status__password-input'\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Status & visibility' ),\n\t\t\theaderTitle: __( 'Status & visibility' ),\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tif ( DESIGN_POST_TYPES.includes( postType ) ) {\n\t\treturn null;\n\t}\n\n\tconst updatePost = ( {\n\t\tstatus: newStatus = status,\n\t\tpassword: newPassword = password,\n\t\tdate: newDate = date,\n\t} ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tstatus: newStatus,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\tconst handleTogglePassword = ( value ) => {\n\t\tsetShowPassword( value );\n\t\tif ( ! value ) {\n\t\t\tupdatePost( { password: '' } );\n\t\t}\n\t};\n\n\tconst handleStatus = ( value ) => {\n\t\tlet newDate = date;\n\t\tlet newPassword = password;\n\t\tif ( status === 'future' && new Date( date ) > new Date() ) {\n\t\t\tnewDate = null;\n\t\t}\n\t\tif ( value === 'private' && password ) {\n\t\t\tnewPassword = '';\n\t\t}\n\t\tupdatePost( {\n\t\t\tstatus: value,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Status' ) } ref={ setPopoverAnchor }>\n\t\t\t{ canEdit ? (\n\t\t\t\t<Dropdown\n\t\t\t\t\tclassName=\"editor-post-status\"\n\t\t\t\t\tcontentClassName=\"editor-change-status__content\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Current post status.\n\t\t\t\t\t\t\t\t__( 'Change post status: %s' ),\n\t\t\t\t\t\t\t\tlabels[ status ]\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ labels[ status ] }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\t\ttitle={ __( 'Status & visibility' ) }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__options\"\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Status' ) }\n\t\t\t\t\t\t\t\t\t\toptions={ STATUS_OPTIONS }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleStatus }\n\t\t\t\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\t\t\t\tstatus === 'auto-draft'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t\t\t\t\t: status\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ status === 'future' && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__publish-date-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t<PrivatePostSchedule\n\t\t\t\t\t\t\t\t\t\t\t\tshowPopoverHeaderActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tisCompact\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ status !== 'private' && (\n\t\t\t\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\t\t\t\tas=\"fieldset\"\n\t\t\t\t\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__password-fieldset\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Password protected'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Only visible to those who know the password'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ showPassword }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleTogglePassword\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{ showPassword && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__password-input\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePost( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpassword: value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Use a secure password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={ passwordInputId }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"editor-post-status is-read-only\">\n\t\t\t\t\t{ labels[ status ] }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Button","CheckboxControl","Dropdown","__experimentalText","Text","__experimentalVStack","VStack","TextControl","RadioControl","__","sprintf","useDispatch","useSelect","useState","useMemo","store","coreStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useInstanceId","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","PATTERN_POST_TYPE","NAVIGATION_POST_TYPE","PostPanelRow","PrivatePostSchedule","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","labels","draft","pending","private","future","publish","STATUS_OPTIONS","label","children","variant","size","value","DESIGN_POST_TYPES","PostStatus","status","date","password","postId","postType","canEdit","select","_getCurrentPost$_link","getEditedPostAttribute","getCurrentPostId","getCurrentPostType","getCurrentPost","_links","showPassword","setShowPassword","passwordInputId","editEntityRecord","popoverAnchor","setPopoverAnchor","popoverProps","anchor","headerTitle","placement","offset","shift","includes","updatePost","newStatus","newPassword","newDate","handleTogglePassword","handleStatus","Date","ref","className","contentClassName","focusOnMount","renderToggle","onToggle","onClick","renderContent","onClose","title","spacing","hideLabelFromVision","options","onChange","selected","showPopoverHeaderActions","isCompact","as","__nextHasNoMarginBottom","help","checked","placeholder","type","id","__next40pxDefaultSize"],"sources":["@wordpress/editor/src/components/post-status/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\tDropdown,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tRadioControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n} from '../../store/constants';\nimport PostPanelRow from '../post-panel-row';\nimport { PrivatePostSchedule } from '../post-schedule';\nimport { store as editorStore } from '../../store';\n\nconst labels = {\n\t'auto-draft': __( 'Draft' ),\n\tdraft: __( 'Draft' ),\n\tpending: __( 'Pending' ),\n\tprivate: __( 'Private' ),\n\tfuture: __( 'Scheduled' ),\n\tpublish: __( 'Published' ),\n};\n\nexport const STATUS_OPTIONS = [\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Draft' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Not ready to publish.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'draft',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Pending' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Waiting for review before publishing.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'pending',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Private' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Only visible to site admins and editors.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'private',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Scheduled' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Publish automatically on a chosen date.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'future',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Published' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Visible to everyone.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'publish',\n\t},\n];\n\nconst DESIGN_POST_TYPES = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n];\n\nexport default function PostStatus() {\n\tconst { status, date, password, postId, postType, canEdit } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetCurrentPostId,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPost,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tstatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tdate: getEditedPostAttribute( 'date' ),\n\t\t\t\tpassword: getEditedPostAttribute( 'password' ),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tcanEdit:\n\t\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst [ showPassword, setShowPassword ] = useState( !! password );\n\tconst passwordInputId = useInstanceId(\n\t\tPostStatus,\n\t\t'editor-change-status__password-input'\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Status & visibility' ),\n\t\t\theaderTitle: __( 'Status & visibility' ),\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tif ( DESIGN_POST_TYPES.includes( postType ) ) {\n\t\treturn null;\n\t}\n\n\tconst updatePost = ( {\n\t\tstatus: newStatus = status,\n\t\tpassword: newPassword = password,\n\t\tdate: newDate = date,\n\t} ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tstatus: newStatus,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\tconst handleTogglePassword = ( value ) => {\n\t\tsetShowPassword( value );\n\t\tif ( ! value ) {\n\t\t\tupdatePost( { password: '' } );\n\t\t}\n\t};\n\n\tconst handleStatus = ( value ) => {\n\t\tlet newDate = date;\n\t\tlet newPassword = password;\n\t\tif ( status === 'future' && new Date( date ) > new Date() ) {\n\t\t\tnewDate = null;\n\t\t}\n\t\tif ( value === 'private' && password ) {\n\t\t\tnewPassword = '';\n\t\t}\n\t\tupdatePost( {\n\t\t\tstatus: value,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Status' ) } ref={ setPopoverAnchor }>\n\t\t\t{ canEdit ? (\n\t\t\t\t<Dropdown\n\t\t\t\t\tclassName=\"editor-post-status\"\n\t\t\t\t\tcontentClassName=\"editor-change-status__content\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Current post status.\n\t\t\t\t\t\t\t\t__( 'Change post status: %s' ),\n\t\t\t\t\t\t\t\tlabels[ status ]\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ labels[ status ] }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\t\ttitle={ __( 'Status & visibility' ) }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__options\"\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Status' ) }\n\t\t\t\t\t\t\t\t\t\toptions={ STATUS_OPTIONS }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleStatus }\n\t\t\t\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\t\t\t\tstatus === 'auto-draft'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t\t\t\t\t: status\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ status === 'future' && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__publish-date-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t<PrivatePostSchedule\n\t\t\t\t\t\t\t\t\t\t\t\tshowPopoverHeaderActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tisCompact\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ status !== 'private' && (\n\t\t\t\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\t\t\t\tas=\"fieldset\"\n\t\t\t\t\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__password-fieldset\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Password protected'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Only visible to those who know the password'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ showPassword }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleTogglePassword\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{ showPassword && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__password-input\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePost( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpassword: value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Use a secure password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={ passwordInputId }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"editor-post-status is-read-only\">\n\t\t\t\t\t{ labels[ status ] }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,7 +14,6 @@ import PostPublishPanel from '../post-publish-panel';
14
14
  import PluginPrePublishPanel from '../plugin-pre-publish-panel';
15
15
  import PluginPostPublishPanel from '../plugin-post-publish-panel';
16
16
  import { store as editorStore } from '../../store';
17
- import { unlock } from '../../lock-unlock';
18
17
  import { jsx as _jsx } from "react/jsx-runtime";
19
18
  import { Fragment as _Fragment } from "react/jsx-runtime";
20
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -46,7 +45,7 @@ export default function SavePublishPanels({
46
45
  isEditedPostDirty,
47
46
  hasNonPostEntityChanges
48
47
  } = select(editorStore);
49
- const _hasOtherEntitiesChanges = hasNonPostEntityChanges() || unlock(select(editorStore)).hasPostMetaChanges();
48
+ const _hasOtherEntitiesChanges = hasNonPostEntityChanges();
50
49
  return {
51
50
  publishSidebarOpened: isPublishSidebarOpened(),
52
51
  isPublishable: !isCurrentPostPublished() && isEditedPostPublishable(),
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","Button","createSlotFill","__","useCallback","EntitiesSavedStates","PostPublishPanel","PluginPrePublishPanel","PluginPostPublishPanel","store","editorStore","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Fill","Slot","ActionsPanelFill","SavePublishPanels","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","closePublishSidebar","togglePublishSidebar","publishSidebarOpened","isPublishable","isDirty","hasOtherEntitiesChanges","select","isPublishSidebarOpened","isEditedPostPublishable","isCurrentPostPublished","isEditedPostDirty","hasNonPostEntityChanges","_hasOtherEntitiesChanges","hasPostMetaChanges","openEntitiesSavedStates","unmountableContent","onClose","forceIsDirty","PrePublishExtension","PostPublishExtension","className","children","variant","onClick","disabled","__experimentalIsFocusable","close","bubblesVirtually"],"sources":["@wordpress/editor/src/components/save-publish-panels/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, createSlotFill } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntitiesSavedStates from '../entities-saved-states';\nimport PostPublishPanel from '../post-publish-panel';\nimport PluginPrePublishPanel from '../plugin-pre-publish-panel';\nimport PluginPostPublishPanel from '../plugin-post-publish-panel';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Fill, Slot } = createSlotFill( 'ActionsPanel' );\n\nexport const ActionsPanelFill = Fill;\n\nexport default function SavePublishPanels( {\n\tsetEntitiesSavedStatesCallback,\n\tcloseEntitiesSavedStates,\n\tisEntitiesSavedStatesOpen,\n\tforceIsDirtyPublishPanel,\n} ) {\n\tconst { closePublishSidebar, togglePublishSidebar } =\n\t\tuseDispatch( editorStore );\n\tconst {\n\t\tpublishSidebarOpened,\n\t\tisPublishable,\n\t\tisDirty,\n\t\thasOtherEntitiesChanges,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPublishSidebarOpened,\n\t\t\tisEditedPostPublishable,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostDirty,\n\t\t\thasNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst _hasOtherEntitiesChanges =\n\t\t\thasNonPostEntityChanges() ||\n\t\t\tunlock( select( editorStore ) ).hasPostMetaChanges();\n\t\treturn {\n\t\t\tpublishSidebarOpened: isPublishSidebarOpened(),\n\t\t\tisPublishable:\n\t\t\t\t! isCurrentPostPublished() && isEditedPostPublishable(),\n\t\t\tisDirty: _hasOtherEntitiesChanges || isEditedPostDirty(),\n\t\t\thasOtherEntitiesChanges: _hasOtherEntitiesChanges,\n\t\t};\n\t}, [] );\n\n\tconst openEntitiesSavedStates = useCallback(\n\t\t() => setEntitiesSavedStatesCallback( true ),\n\t\t[]\n\t);\n\n\t// It is ok for these components to be unmounted when not in visual use.\n\t// We don't want more than one present at a time, decide which to render.\n\tlet unmountableContent;\n\tif ( publishSidebarOpened ) {\n\t\tunmountableContent = (\n\t\t\t<PostPublishPanel\n\t\t\t\tonClose={ closePublishSidebar }\n\t\t\t\tforceIsDirty={ forceIsDirtyPublishPanel }\n\t\t\t\tPrePublishExtension={ PluginPrePublishPanel.Slot }\n\t\t\t\tPostPublishExtension={ PluginPostPublishPanel.Slot }\n\t\t\t/>\n\t\t);\n\t} else if ( isPublishable && ! hasOtherEntitiesChanges ) {\n\t\tunmountableContent = (\n\t\t\t<div className=\"editor-layout__toggle-publish-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"editor-layout__toggle-publish-panel-button\"\n\t\t\t\t\tonClick={ togglePublishSidebar }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open publish panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tunmountableContent = (\n\t\t\t<div className=\"editor-layout__toggle-entities-saved-states-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"editor-layout__toggle-entities-saved-states-panel-button\"\n\t\t\t\t\tonClick={ openEntitiesSavedStates }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\tdisabled={ ! isDirty }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open save panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Since EntitiesSavedStates controls its own panel, we can keep it\n\t// always mounted to retain its own component state (such as checkboxes).\n\treturn (\n\t\t<>\n\t\t\t{ isEntitiesSavedStatesOpen && (\n\t\t\t\t<EntitiesSavedStates close={ closeEntitiesSavedStates } />\n\t\t\t) }\n\t\t\t<Slot bubblesVirtually />\n\t\t\t{ ! isEntitiesSavedStatesOpen && unmountableContent }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","useDispatch","Button","createSlotFill","__","useCallback","EntitiesSavedStates","PostPublishPanel","PluginPrePublishPanel","PluginPostPublishPanel","store","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Fill","Slot","ActionsPanelFill","SavePublishPanels","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","closePublishSidebar","togglePublishSidebar","publishSidebarOpened","isPublishable","isDirty","hasOtherEntitiesChanges","select","isPublishSidebarOpened","isEditedPostPublishable","isCurrentPostPublished","isEditedPostDirty","hasNonPostEntityChanges","_hasOtherEntitiesChanges","openEntitiesSavedStates","unmountableContent","onClose","forceIsDirty","PrePublishExtension","PostPublishExtension","className","children","variant","onClick","disabled","__experimentalIsFocusable","close","bubblesVirtually"],"sources":["@wordpress/editor/src/components/save-publish-panels/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, createSlotFill } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntitiesSavedStates from '../entities-saved-states';\nimport PostPublishPanel from '../post-publish-panel';\nimport PluginPrePublishPanel from '../plugin-pre-publish-panel';\nimport PluginPostPublishPanel from '../plugin-post-publish-panel';\nimport { store as editorStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'ActionsPanel' );\n\nexport const ActionsPanelFill = Fill;\n\nexport default function SavePublishPanels( {\n\tsetEntitiesSavedStatesCallback,\n\tcloseEntitiesSavedStates,\n\tisEntitiesSavedStatesOpen,\n\tforceIsDirtyPublishPanel,\n} ) {\n\tconst { closePublishSidebar, togglePublishSidebar } =\n\t\tuseDispatch( editorStore );\n\tconst {\n\t\tpublishSidebarOpened,\n\t\tisPublishable,\n\t\tisDirty,\n\t\thasOtherEntitiesChanges,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPublishSidebarOpened,\n\t\t\tisEditedPostPublishable,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostDirty,\n\t\t\thasNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst _hasOtherEntitiesChanges = hasNonPostEntityChanges();\n\t\treturn {\n\t\t\tpublishSidebarOpened: isPublishSidebarOpened(),\n\t\t\tisPublishable:\n\t\t\t\t! isCurrentPostPublished() && isEditedPostPublishable(),\n\t\t\tisDirty: _hasOtherEntitiesChanges || isEditedPostDirty(),\n\t\t\thasOtherEntitiesChanges: _hasOtherEntitiesChanges,\n\t\t};\n\t}, [] );\n\n\tconst openEntitiesSavedStates = useCallback(\n\t\t() => setEntitiesSavedStatesCallback( true ),\n\t\t[]\n\t);\n\n\t// It is ok for these components to be unmounted when not in visual use.\n\t// We don't want more than one present at a time, decide which to render.\n\tlet unmountableContent;\n\tif ( publishSidebarOpened ) {\n\t\tunmountableContent = (\n\t\t\t<PostPublishPanel\n\t\t\t\tonClose={ closePublishSidebar }\n\t\t\t\tforceIsDirty={ forceIsDirtyPublishPanel }\n\t\t\t\tPrePublishExtension={ PluginPrePublishPanel.Slot }\n\t\t\t\tPostPublishExtension={ PluginPostPublishPanel.Slot }\n\t\t\t/>\n\t\t);\n\t} else if ( isPublishable && ! hasOtherEntitiesChanges ) {\n\t\tunmountableContent = (\n\t\t\t<div className=\"editor-layout__toggle-publish-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"editor-layout__toggle-publish-panel-button\"\n\t\t\t\t\tonClick={ togglePublishSidebar }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open publish panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tunmountableContent = (\n\t\t\t<div className=\"editor-layout__toggle-entities-saved-states-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"editor-layout__toggle-entities-saved-states-panel-button\"\n\t\t\t\t\tonClick={ openEntitiesSavedStates }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\tdisabled={ ! isDirty }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open save panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Since EntitiesSavedStates controls its own panel, we can keep it\n\t// always mounted to retain its own component state (such as checkboxes).\n\treturn (\n\t\t<>\n\t\t\t{ isEntitiesSavedStatesOpen && (\n\t\t\t\t<EntitiesSavedStates close={ closeEntitiesSavedStates } />\n\t\t\t) }\n\t\t\t<Slot bubblesVirtually />\n\t\t\t{ ! isEntitiesSavedStatesOpen && unmountableContent }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,17 +6,15 @@ import { TEMPLATE_ORIGINS } from '../constants';
6
6
  // Copy of the function from packages/edit-site/src/utils/is-template-revertable.js
7
7
 
8
8
  /**
9
- * Check if a template is revertable to its original theme-provided template file.
9
+ * Check if a template or template part is revertable to its original theme-provided file.
10
10
  *
11
- * @param {Object} template The template entity to check.
12
- * @return {boolean} Whether the template is revertable.
11
+ * @param {Object} templateOrTemplatePart The entity to check.
12
+ * @return {boolean} Whether the entity is revertable.
13
13
  */
14
- export default function isTemplateRevertable(template) {
15
- if (!template) {
14
+ export default function isTemplateRevertable(templateOrTemplatePart) {
15
+ if (!templateOrTemplatePart) {
16
16
  return false;
17
17
  }
18
- /* eslint-disable camelcase */
19
- return template?.source === TEMPLATE_ORIGINS.custom && template?.has_theme_file;
20
- /* eslint-enable camelcase */
18
+ return templateOrTemplatePart.source === TEMPLATE_ORIGINS.custom && templateOrTemplatePart.has_theme_file;
21
19
  }
22
20
  //# sourceMappingURL=is-template-revertable.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TEMPLATE_ORIGINS","isTemplateRevertable","template","source","custom","has_theme_file"],"sources":["@wordpress/editor/src/store/utils/is-template-revertable.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { TEMPLATE_ORIGINS } from '../constants';\n\n// Copy of the function from packages/edit-site/src/utils/is-template-revertable.js\n\n/**\n * Check if a template is revertable to its original theme-provided template file.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is revertable.\n */\nexport default function isTemplateRevertable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t/* eslint-disable camelcase */\n\treturn (\n\t\ttemplate?.source === TEMPLATE_ORIGINS.custom && template?.has_theme_file\n\t);\n\t/* eslint-enable camelcase */\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,cAAc;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,oBAAoBA,CAAEC,QAAQ,EAAG;EACxD,IAAK,CAAEA,QAAQ,EAAG;IACjB,OAAO,KAAK;EACb;EACA;EACA,OACCA,QAAQ,EAAEC,MAAM,KAAKH,gBAAgB,CAACI,MAAM,IAAIF,QAAQ,EAAEG,cAAc;EAEzE;AACD","ignoreList":[]}
1
+ {"version":3,"names":["TEMPLATE_ORIGINS","isTemplateRevertable","templateOrTemplatePart","source","custom","has_theme_file"],"sources":["@wordpress/editor/src/store/utils/is-template-revertable.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { TEMPLATE_ORIGINS } from '../constants';\n\n// Copy of the function from packages/edit-site/src/utils/is-template-revertable.js\n\n/**\n * Check if a template or template part is revertable to its original theme-provided file.\n *\n * @param {Object} templateOrTemplatePart The entity to check.\n * @return {boolean} Whether the entity is revertable.\n */\nexport default function isTemplateRevertable( templateOrTemplatePart ) {\n\tif ( ! templateOrTemplatePart ) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\ttemplateOrTemplatePart.source === TEMPLATE_ORIGINS.custom &&\n\t\ttemplateOrTemplatePart.has_theme_file\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,cAAc;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,oBAAoBA,CAAEC,sBAAsB,EAAG;EACtE,IAAK,CAAEA,sBAAsB,EAAG;IAC/B,OAAO,KAAK;EACb;EAEA,OACCA,sBAAsB,CAACC,MAAM,KAAKH,gBAAgB,CAACI,MAAM,IACzDF,sBAAsB,CAACG,cAAc;AAEvC","ignoreList":[]}
@@ -1703,6 +1703,7 @@ body.is-fullscreen-mode .interface-interface-skeleton {
1703
1703
  .editor-post-panel__row-control .components-button {
1704
1704
  max-width: 100%;
1705
1705
  text-align: right;
1706
+ white-space: normal;
1706
1707
  text-wrap: balance;
1707
1708
  text-wrap: pretty;
1708
1709
  height: auto;
@@ -1703,6 +1703,7 @@ body.is-fullscreen-mode .interface-interface-skeleton {
1703
1703
  .editor-post-panel__row-control .components-button {
1704
1704
  max-width: 100%;
1705
1705
  text-align: left;
1706
+ white-space: normal;
1706
1707
  text-wrap: balance;
1707
1708
  text-wrap: pretty;
1708
1709
  height: auto;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/editor",
3
- "version": "14.0.4",
3
+ "version": "14.0.6",
4
4
  "description": "Enhanced block editor for WordPress posts.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -35,12 +35,12 @@
35
35
  "@wordpress/a11y": "^4.0.1",
36
36
  "@wordpress/api-fetch": "^7.0.1",
37
37
  "@wordpress/blob": "^4.0.1",
38
- "@wordpress/block-editor": "^13.0.4",
38
+ "@wordpress/block-editor": "^13.0.5",
39
39
  "@wordpress/blocks": "^13.0.3",
40
40
  "@wordpress/commands": "^1.0.3",
41
41
  "@wordpress/components": "^28.0.3",
42
42
  "@wordpress/compose": "^7.0.1",
43
- "@wordpress/core-data": "^7.0.4",
43
+ "@wordpress/core-data": "^7.0.5",
44
44
  "@wordpress/data": "^10.0.2",
45
45
  "@wordpress/date": "^5.0.1",
46
46
  "@wordpress/deprecated": "^4.0.1",
@@ -55,11 +55,11 @@
55
55
  "@wordpress/keycodes": "^4.0.1",
56
56
  "@wordpress/media-utils": "^5.0.1",
57
57
  "@wordpress/notices": "^5.0.2",
58
- "@wordpress/patterns": "^2.0.4",
58
+ "@wordpress/patterns": "^2.0.5",
59
59
  "@wordpress/plugins": "^7.0.3",
60
60
  "@wordpress/preferences": "^4.0.3",
61
61
  "@wordpress/private-apis": "^1.0.2",
62
- "@wordpress/reusable-blocks": "^5.0.4",
62
+ "@wordpress/reusable-blocks": "^5.0.5",
63
63
  "@wordpress/rich-text": "^7.0.2",
64
64
  "@wordpress/server-side-render": "^5.0.3",
65
65
  "@wordpress/url": "^4.0.1",
@@ -83,5 +83,5 @@
83
83
  "publishConfig": {
84
84
  "access": "public"
85
85
  },
86
- "gitHead": "85486692a3e48b7d863226cf895a21d787434921"
86
+ "gitHead": "0b9a9459519b0e1a023109bab307ed1448405480"
87
87
  }
@@ -34,6 +34,11 @@ export default {
34
34
  } );
35
35
  },
36
36
  canUserEditValue( { select, context, args } ) {
37
+ // Lock editing in query loop.
38
+ if ( context?.query || context?.queryId ) {
39
+ return false;
40
+ }
41
+
37
42
  const postType =
38
43
  context?.postType || select( editorStore ).getCurrentPostType();
39
44
 
@@ -249,9 +249,12 @@ export function ParentRow() {
249
249
  onClose={ onClose }
250
250
  />
251
251
  <div>
252
- { __(
253
- "Child pages inherit characteristics from their parent, such as URL structure. For instance, if 'Web Design' is a child of 'Services,' its URL would be mysite.com/services/web-design."
254
- ) }
252
+ {
253
+ /* translators: The domain name should be a reserved domain name to prevent linking to third party sites outside the WordPress project's control. You may also wish to use wordpress.org or a wordpress.org sub-domain. */
254
+ __(
255
+ "Child pages inherit characteristics from their parent, such as URL structure. For instance, if 'Web Design' is a child of 'Services', its URL would be example.org/services/web-design."
256
+ )
257
+ }
255
258
  <p>
256
259
  { __(
257
260
  'They also show up as sub-items in the default navigation menu. '
@@ -59,11 +59,6 @@ function isTemplateRemovable( template ) {
59
59
  ! template.templatePart?.has_theme_file
60
60
  );
61
61
  }
62
- const canDeleteOrReset = ( item ) => {
63
- const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
64
- const isUserPattern = item.type === PATTERN_TYPES.user;
65
- return isUserPattern || ( isTemplatePart && item.isCustom );
66
- };
67
62
 
68
63
  function getItemTitle( item ) {
69
64
  if ( typeof item.title === 'string' ) {
@@ -254,7 +249,7 @@ const trashPostAction = {
254
249
  __( '"%s" moved to trash.' ),
255
250
  getItemTitle( items[ 0 ] )
256
251
  );
257
- } else if ( items[ 0 ].type === 'page' ) {
252
+ } else {
258
253
  successMessage = sprintf(
259
254
  /* translators: The number of items. */
260
255
  _n(
@@ -264,12 +259,6 @@ const trashPostAction = {
264
259
  ),
265
260
  items.length
266
261
  );
267
- } else {
268
- successMessage = sprintf(
269
- /* translators: The number of posts. */
270
- __( '%s items move to trash.' ),
271
- items.length
272
- );
273
262
  }
274
263
  createSuccessNotice( successMessage, {
275
264
  type: 'snackbar',
@@ -885,21 +874,11 @@ const duplicatePostAction = {
885
874
  },
886
875
  };
887
876
 
888
- const isTemplatePartRevertable = ( item ) => {
889
- if ( ! item ) {
890
- return false;
891
- }
892
- const hasThemeFile = item.templatePart?.has_theme_file;
893
- return canDeleteOrReset( item ) && hasThemeFile;
894
- };
895
-
896
877
  const resetTemplateAction = {
897
878
  id: 'reset-template',
898
879
  label: __( 'Reset' ),
899
880
  isEligible: ( item ) => {
900
- return item.type === TEMPLATE_PART_POST_TYPE
901
- ? isTemplatePartRevertable( item )
902
- : isTemplateRevertable( item );
881
+ return isTemplateRevertable( item );
903
882
  },
904
883
  icon: backup,
905
884
  supportsBulk: true,
@@ -911,47 +890,39 @@ const resetTemplateAction = {
911
890
  onActionPerformed,
912
891
  } ) => {
913
892
  const [ isBusy, setIsBusy ] = useState( false );
914
- const { revertTemplate, removeTemplates } = unlock(
915
- useDispatch( editorStore )
916
- );
893
+ const { revertTemplate } = unlock( useDispatch( editorStore ) );
917
894
  const { saveEditedEntityRecord } = useDispatch( coreStore );
918
895
  const { createSuccessNotice, createErrorNotice } =
919
896
  useDispatch( noticesStore );
920
897
  const onConfirm = async () => {
921
898
  try {
922
- if ( items[ 0 ].type === TEMPLATE_PART_POST_TYPE ) {
923
- await removeTemplates( items );
924
- } else {
925
- for ( const template of items ) {
926
- if ( template.type === TEMPLATE_POST_TYPE ) {
927
- await revertTemplate( template, {
928
- allowUndo: false,
929
- } );
930
- await saveEditedEntityRecord(
931
- 'postType',
932
- template.type,
933
- template.id
934
- );
935
- }
936
- }
937
- createSuccessNotice(
938
- items.length > 1
939
- ? sprintf(
940
- /* translators: The number of items. */
941
- __( '%s items reset.' ),
942
- items.length
943
- )
944
- : sprintf(
945
- /* translators: The template/part's name. */
946
- __( '"%s" reset.' ),
947
- decodeEntities( getItemTitle( items[ 0 ] ) )
948
- ),
949
- {
950
- type: 'snackbar',
951
- id: 'revert-template-action',
952
- }
899
+ for ( const template of items ) {
900
+ await revertTemplate( template, {
901
+ allowUndo: false,
902
+ } );
903
+ await saveEditedEntityRecord(
904
+ 'postType',
905
+ template.type,
906
+ template.id
953
907
  );
954
908
  }
909
+ createSuccessNotice(
910
+ items.length > 1
911
+ ? sprintf(
912
+ /* translators: The number of items. */
913
+ __( '%s items reset.' ),
914
+ items.length
915
+ )
916
+ : sprintf(
917
+ /* translators: The template/part's name. */
918
+ __( '"%s" reset.' ),
919
+ decodeEntities( getItemTitle( items[ 0 ] ) )
920
+ ),
921
+ {
922
+ type: 'snackbar',
923
+ id: 'revert-template-action',
924
+ }
925
+ );
955
926
  } catch ( error ) {
956
927
  let fallbackErrorMessage;
957
928
  if ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {
@@ -24,8 +24,10 @@ function getJsonFromItem( item ) {
24
24
  {
25
25
  __file: item.type,
26
26
  title: item.title || item.name,
27
- content: item.patternPost.content.raw,
28
- syncStatus: item.patternPost.wp_pattern_sync_status,
27
+ content: item?.patternPost?.content?.raw || item.content,
28
+ syncStatus:
29
+ item?.patternPost?.wp_pattern_sync_status ||
30
+ item.wp_pattern_sync_status,
29
31
  },
30
32
  null,
31
33
  2
@@ -25,6 +25,7 @@
25
25
  .components-button {
26
26
  max-width: 100%;
27
27
  text-align: left;
28
+ white-space: normal;
28
29
  text-wrap: balance; // Fallback for Safari.
29
30
  text-wrap: pretty;
30
31
  height: auto;
@@ -11,7 +11,6 @@ import { compose } from '@wordpress/compose';
11
11
  */
12
12
  import PublishButtonLabel from './label';
13
13
  import { store as editorStore } from '../../store';
14
- import { unlock } from '../../lock-unlock';
15
14
 
16
15
  const noop = () => {};
17
16
 
@@ -46,24 +45,14 @@ export class PostPublishButton extends Component {
46
45
 
47
46
  createOnClick( callback ) {
48
47
  return ( ...args ) => {
49
- const {
50
- hasNonPostEntityChanges,
51
- hasPostMetaChanges,
52
- setEntitiesSavedStatesCallback,
53
- isPublished,
54
- } = this.props;
48
+ const { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =
49
+ this.props;
55
50
  // If a post with non-post entities is published, but the user
56
51
  // elects to not save changes to the non-post entities, those
57
52
  // entities will still be dirty when the Publish button is clicked.
58
53
  // We also need to check that the `setEntitiesSavedStatesCallback`
59
54
  // prop was passed. See https://github.com/WordPress/gutenberg/pull/37383
60
- //
61
- // TODO: Explore how to manage `hasPostMetaChanges` and pre-publish workflow properly.
62
- if (
63
- ( hasNonPostEntityChanges ||
64
- ( hasPostMetaChanges && isPublished ) ) &&
65
- setEntitiesSavedStatesCallback
66
- ) {
55
+ if ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {
67
56
  // The modal for multiple entity saving will open,
68
57
  // hold the callback for saving/publishing the post
69
58
  // so that we can call it if the post entity is checked.
@@ -223,8 +212,7 @@ export default compose( [
223
212
  isSavingNonPostEntityChanges,
224
213
  getEditedPostAttribute,
225
214
  getPostEdits,
226
- hasPostMetaChanges,
227
- } = unlock( select( editorStore ) );
215
+ } = select( editorStore );
228
216
  return {
229
217
  isSaving: isSavingPost(),
230
218
  isAutoSaving: isAutosavingPost(),
@@ -241,7 +229,6 @@ export default compose( [
241
229
  postStatus: getEditedPostAttribute( 'status' ),
242
230
  postStatusHasChanged: getPostEdits()?.status,
243
231
  hasNonPostEntityChanges: hasNonPostEntityChanges(),
244
- hasPostMetaChanges: hasPostMetaChanges(),
245
232
  isSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),
246
233
  };
247
234
  } ),
@@ -21,6 +21,7 @@ import { store as preferencesStore } from '@wordpress/preferences';
21
21
  /**
22
22
  * Internal dependencies
23
23
  */
24
+ import { STATUS_OPTIONS } from '../../components/post-status';
24
25
  import { store as editorStore } from '../../store';
25
26
 
26
27
  /**
@@ -104,10 +105,19 @@ export default function PostSavedState( { forceIsDirty } ) {
104
105
  return null;
105
106
  }
106
107
 
108
+ // We shouldn't render the button if the post has not one of the following statuses: pending, draft, auto-draft.
109
+ // The reason for this is that this button handles the `save as pending` and `save draft` actions.
110
+ // An exception for this is when the post has a custom status and there should be a way to save changes without
111
+ // having to publish. This should be handled better in the future when custom statuses have better support.
112
+ // @see https://github.com/WordPress/gutenberg/issues/3144.
113
+ const isIneligibleStatus =
114
+ ! [ 'pending', 'draft', 'auto-draft' ].includes( postStatus ) &&
115
+ STATUS_OPTIONS.map( ( { value } ) => value ).includes( postStatus );
116
+
107
117
  if (
108
118
  isPublished ||
109
119
  isScheduled ||
110
- ! [ 'pending', 'draft', 'auto-draft' ].includes( postStatus ) ||
120
+ isIneligibleStatus ||
111
121
  ( postStatusHasChanged &&
112
122
  [ 'pending', 'draft' ].includes( postStatus ) )
113
123
  ) {
@@ -39,7 +39,7 @@ const labels = {
39
39
  publish: __( 'Published' ),
40
40
  };
41
41
 
42
- const STATUS_OPTIONS = [
42
+ export const STATUS_OPTIONS = [
43
43
  {
44
44
  label: (
45
45
  <>