@wordpress/editor 14.0.6 → 14.0.8

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.
@@ -820,12 +820,14 @@ function usePostActions({
820
820
  postTypeObject,
821
821
  resource,
822
822
  cachedCanUserResolvers,
823
- userCanCreatePostType
823
+ userCanCreatePostType,
824
+ isBlockBasedTheme
824
825
  } = (0, _data.useSelect)(select => {
825
826
  const {
826
827
  getPostType,
827
828
  getCachedResolvers,
828
- canUser
829
+ canUser,
830
+ getCurrentTheme
829
831
  } = select(_coreData.store);
830
832
  const _postTypeObject = getPostType(postType);
831
833
  const _resource = _postTypeObject?.rest_base || '';
@@ -833,7 +835,8 @@ function usePostActions({
833
835
  postTypeObject: _postTypeObject,
834
836
  resource: _resource,
835
837
  cachedCanUserResolvers: getCachedResolvers()?.canUser,
836
- userCanCreatePostType: canUser('create', _resource)
838
+ userCanCreatePostType: canUser('create', _resource),
839
+ isBlockBasedTheme: getCurrentTheme()?.is_block_theme
837
840
  };
838
841
  }, [postType]);
839
842
  const trashPostActionForPostType = useTrashPostAction(resource);
@@ -849,7 +852,7 @@ function usePostActions({
849
852
  if (!isLoaded) {
850
853
  return [];
851
854
  }
852
- let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && _exportPatternAction.exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType].filter(Boolean);
855
+ let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && isBlockBasedTheme && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && _exportPatternAction.exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType].filter(Boolean);
853
856
  // Filter actions based on provided context. If not provided
854
857
  // all actions are returned. We'll have a single entry for getting the actions
855
858
  // and the consumer should provide the context to filter the actions, if needed.
@@ -1 +1 @@
1
- {"version":3,"names":["_icons","require","_url","_data","_htmlEntities","_coreData","_i18n","_notices","_element","_patterns","_components","_constants","_store","_lockUnlock","_isTemplateRevertable","_interopRequireDefault","_exportPatternAction","_createTemplatePartModal","_jsxRuntime","PATTERN_TYPES","CreatePatternModalContents","useDuplicatePatternProps","unlock","patternsPrivateApis","isTemplateRemovable","template","source","templatePart","includes","TEMPLATE_ORIGINS","custom","has_theme_file","getItemTitle","item","title","decodeEntities","rendered","deletePostAction","id","label","__","isPrimary","icon","trash","isEligible","post","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","type","user","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onActionStart","onActionPerformed","isBusy","setIsBusy","useState","removeTemplates","useDispatch","editorStore","jsxs","__experimentalVStack","spacing","children","jsx","__experimentalText","length","sprintf","_n","__experimentalHStack","justify","Button","variant","onClick","disabled","__experimentalIsFocusable","allowUndo","useCanUserEligibilityCheckPostType","capability","resource","action","registry","useRegistry","useMemo","select","coreStore","canUser","trashPostAction","status","createSuccessNotice","createErrorNotice","noticesStore","deleteEntityRecord","promiseResult","Promise","allSettled","map","throwOnError","every","successMessage","errorMessage","reason","message","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","useTrashPostAction","usePermanentlyDeletePostAction","permanentlyDeletePostAction","callback","posts","force","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","restorePostAction","backup","viewPostAction","external","window","open","link","postRevisionsAction","context","_items$0$_links$versi","revisionsCount","_links","count","_post$_links$predeces","_post$_links$version","lastRevisionId","href","addQueryArgs","revision","document","location","renamePostAction","Object","values","is_custom","isTemplatePart","isUserPattern","isCustomPattern","isCustom","hasThemeFile","originalTitle","setTitle","onRename","event","preventDefault","error","code","onSubmit","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","useRenamePostAction","duplicatePostAction","_x","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItem","slug","author","comment_status","content","raw","excerpt","meta","parent","password","format","featured_media","menu_order","ping_status","categories","tags","placeholder","resetTemplateAction","isTemplateRevertable","revertTemplate","onConfirm","fallbackErrorMessage","duplicatePatternAction","exports","modalHeader","isThemePattern","theme","duplicatedProps","pattern","patternPost","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","CreateTemplatePartModalContents","blocks","defaultArea","area","defaultTitle","onCreate","onError","usePostActions","postType","postTypeObject","cachedCanUserResolvers","userCanCreatePostType","useSelect","getPostType","getCachedResolvers","_postTypeObject","_resource","rest_base","trashPostActionForPostType","permanentlyDeletePostActionForPostType","renamePostActionForPostType","restorePostActionForPostType","isTemplateOrTemplatePart","isPattern","PATTERN_POST_TYPE","isLoaded","supportsRevisions","supports","revisions","supportsTitle","actions","viewable","globalThis","IS_GUTENBERG_PLUGIN","exportPatternAsJSONAction","Boolean","i","existingCallback","_onActionPerformed","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tPATTERN_POST_TYPE,\n} from '../../store/constants';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\nimport { exportPatternAsJSONAction } from './export-pattern-action';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\n// Patterns.\nconst { PATTERN_TYPES, CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\n/**\n * Check if a template is removable.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is removable.\n */\nfunction isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t// In patterns list page we map the templates parts to a different object\n\t// than the one returned from the endpoint. This is why we need to check for\n\t// two props whether is custom or has a theme file.\n\treturn (\n\t\t[ template.source, template.templatePart?.source ].includes(\n\t\t\tTEMPLATE_ORIGINS.custom\n\t\t) &&\n\t\t! template.has_theme_file &&\n\t\t! template.templatePart?.has_theme_file\n\t);\n}\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\n// This action is used for templates, patterns and template parts.\n// Every other post type uses the similar `trashPostAction` which\n// moves the post to trash.\nconst deletePostAction = {\n\tid: 'delete-post',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( post ) {\n\t\tif (\n\t\t\t[ TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE ].includes(\n\t\t\t\tpost.type\n\t\t\t)\n\t\t) {\n\t\t\treturn isTemplateRemovable( post );\n\t\t}\n\t\t// We can only remove user patterns.\n\t\treturn post.type === PATTERN_TYPES.user;\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { removeTemplates } = unlock( useDispatch( editorStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait removeTemplates( items, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useCanUserEligibilityCheckPostType( capability, resource, action ) {\n\tconst registry = useRegistry();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...action,\n\t\t\tisEligible( item ) {\n\t\t\t\treturn (\n\t\t\t\t\taction.isEligible( item ) &&\n\t\t\t\t\tregistry\n\t\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t\t.canUser( capability, resource, item.id )\n\t\t\t\t);\n\t\t\t},\n\t\t} ),\n\t\t[ action, registry, capability, resource ]\n\t);\n}\n\nconst trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\treturn ! [ 'auto-draft', 'trash' ].includes( item.status );\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash \"%s\"?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d item?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id,\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\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\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\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\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t'%s item moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\t'%s items moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\titems.length\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\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\tpromiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item.'\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// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the items.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\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'An error occurred while moving to trash the item: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\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'Some errors occurred while moving to trash the items: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\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}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Trash' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useTrashPostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\ttrashPostAction\n\t);\n}\n\nfunction usePermanentlyDeletePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\tconst permanentlyDeletePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'permanently-delete-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\tpermanentlyDeletePostAction\n\t);\n}\n\nfunction useRestorePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\tconst restorePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tawait Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( posts.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'restore-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trestorePostAction\n\t);\n}\n\nconst viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tcontext: 'list',\n\tlabel( items ) {\n\t\tconst revisionsCount =\n\t\t\titems[ 0 ]._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn sprintf(\n\t\t\t/* translators: %s: number of revisions */\n\t\t\t__( 'View revisions (%s)' ),\n\t\t\trevisionsCount\n\t\t);\n\t},\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst renamePostAction = {\n\tid: 'rename-post',\n\tlabel: __( 'Rename' ),\n\tisEligible( post ) {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\t// Templates, template parts and patterns have special checks for renaming.\n\t\tif (\n\t\t\t! [\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t...Object.values( PATTERN_TYPES ),\n\t\t\t].includes( post.type )\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\t// In the case of templates, we can only rename custom templates.\n\t\tif ( post.type === TEMPLATE_POST_TYPE ) {\n\t\t\treturn isTemplateRemovable( post ) && post.is_custom;\n\t\t}\n\t\t// Make necessary checks for template parts and patterns.\n\t\tconst isTemplatePart = post.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = post.type === PATTERN_TYPES.user;\n\t\t// In patterns list page we map the templates parts to a different object\n\t\t// than the one returned from the endpoint. This is why we need to check for\n\t\t// two props whether is custom or has a theme file.\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern ||\n\t\t\t( isTemplatePart &&\n\t\t\t\t( post.isCustom || post.source === TEMPLATE_ORIGINS.custom ) );\n\t\tconst hasThemeFile =\n\t\t\tisTemplatePart &&\n\t\t\t( post.templatePart?.has_theme_file || post.has_theme_file );\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst originalTitle = decodeEntities(\n\t\t\ttypeof item.title === 'string' ? item.title : item.title.rendered\n\t\t);\n\t\tconst [ title, setTitle ] = useState( () => originalTitle );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice( __( 'Name updated' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tonActionPerformed?.( items );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while updating the name' );\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nfunction useRenamePostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trenamePostAction\n\t);\n}\n\nconst duplicatePostAction = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst [ title, setTitle ] = useState(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: Existing item title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\tgetItemTitle( item )\n\t\t\t)\n\t\t);\n\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\t\tauthor: item.author,\n\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\tcategories: item.categories,\n\t\t\t\t\t\ttags: item.tags,\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tdecodeEntities( newItem.title?.rendered || title )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: ( item ) => {\n\t\treturn isTemplateRevertable( item );\n\t},\n\ticon: backup,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { revertTemplate } = unlock( useDispatch( editorStore ) );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( getItemTitle( items[ 0 ] ) )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __( 'Reset to default and clear all customizations?' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern:\n\t\t\t\tisThemePattern || ! item.patternPost ? item : item.patternPost,\n\t\t\tonSuccess: () => closeModal(),\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tfunction onTemplatePartSuccess() {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart?.area || item.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport function usePostActions( { postType, onActionPerformed, context } ) {\n\tconst {\n\t\tpostTypeObject,\n\t\tresource,\n\t\tcachedCanUserResolvers,\n\t\tuserCanCreatePostType,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getCachedResolvers, canUser } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _postTypeObject = getPostType( postType );\n\t\t\tconst _resource = _postTypeObject?.rest_base || '';\n\t\t\treturn {\n\t\t\t\tpostTypeObject: _postTypeObject,\n\t\t\t\tresource: _resource,\n\t\t\t\tcachedCanUserResolvers: getCachedResolvers()?.canUser,\n\t\t\t\tuserCanCreatePostType: canUser( 'create', _resource ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst trashPostActionForPostType = useTrashPostAction( resource );\n\tconst permanentlyDeletePostActionForPostType =\n\t\tusePermanentlyDeletePostAction( resource );\n\tconst renamePostActionForPostType = useRenamePostAction( resource );\n\tconst restorePostActionForPostType = useRestorePostAction( resource );\n\tconst isTemplateOrTemplatePart = [\n\t\tTEMPLATE_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t].includes( postType );\n\tconst isPattern = postType === PATTERN_POST_TYPE;\n\tconst isLoaded = !! postTypeObject;\n\tconst supportsRevisions = !! postTypeObject?.supports?.revisions;\n\tconst supportsTitle = !! postTypeObject?.supports?.title;\n\treturn useMemo( () => {\n\t\tif ( ! isLoaded ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet actions = [\n\t\t\tpostTypeObject?.viewable && viewPostAction,\n\t\t\tsupportsRevisions && postRevisionsAction,\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! isTemplateOrTemplatePart &&\n\t\t\t\t ! isPattern &&\n\t\t\t\t duplicatePostAction\n\t\t\t\t: false,\n\t\t\tisTemplateOrTemplatePart &&\n\t\t\t\tuserCanCreatePostType &&\n\t\t\t\tduplicateTemplatePartAction,\n\t\t\tisPattern && userCanCreatePostType && duplicatePatternAction,\n\t\t\tsupportsTitle && renamePostActionForPostType,\n\t\t\tisPattern && exportPatternAsJSONAction,\n\t\t\tisTemplateOrTemplatePart\n\t\t\t\t? resetTemplateAction\n\t\t\t\t: restorePostActionForPostType,\n\t\t\tisTemplateOrTemplatePart || isPattern\n\t\t\t\t? deletePostAction\n\t\t\t\t: trashPostActionForPostType,\n\t\t\t! isTemplateOrTemplatePart &&\n\t\t\t\tpermanentlyDeletePostActionForPostType,\n\t\t].filter( Boolean );\n\t\t// Filter actions based on provided context. If not provided\n\t\t// all actions are returned. We'll have a single entry for getting the actions\n\t\t// and the consumer should provide the context to filter the actions, if needed.\n\t\t// Actions should also provide the `context` they support, if it's specific, to\n\t\t// compare with the provided context to get all the actions.\n\t\t// Right now the only supported context is `list`.\n\t\tactions = actions.filter( ( action ) => {\n\t\t\tif ( ! action.context ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn action.context === context;\n\t\t} );\n\n\t\tif ( onActionPerformed ) {\n\t\t\tfor ( let i = 0; i < actions.length; ++i ) {\n\t\t\t\tif ( actions[ i ].callback ) {\n\t\t\t\t\tconst existingCallback = actions[ i ].callback;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tcallback: ( items, _onActionPerformed ) => {\n\t\t\t\t\t\t\texistingCallback( items, ( _items ) => {\n\t\t\t\t\t\t\t\tif ( _onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t_onActionPerformed( _items );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonActionPerformed( actions[ i ].id, _items );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif ( actions[ i ].RenderModal ) {\n\t\t\t\t\tconst ExistingRenderModal = actions[ i ].RenderModal;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tRenderModal: ( props ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ExistingRenderModal\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tonActionPerformed={ ( _items ) => {\n\t\t\t\t\t\t\t\t\t\tif ( props.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t\t_items\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/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t\t// We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render\n\t\t// when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tpermanentlyDeletePostActionForPostType,\n\t\trestorePostActionForPostType,\n\t\trenamePostActionForPostType,\n\t\ttrashPostActionForPostType,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t\tsupportsRevisions,\n\t\tsupportsTitle,\n\t\tcontext,\n\t\tuserCanCreatePostType,\n\t\tcachedCanUserResolvers,\n\t] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_icons","require","_url","_data","_htmlEntities","_coreData","_i18n","_notices","_element","_patterns","_components","_constants","_store","_lockUnlock","_isTemplateRevertable","_interopRequireDefault","_exportPatternAction","_createTemplatePartModal","_jsxRuntime","PATTERN_TYPES","CreatePatternModalContents","useDuplicatePatternProps","unlock","patternsPrivateApis","isTemplateRemovable","template","source","templatePart","includes","TEMPLATE_ORIGINS","custom","has_theme_file","getItemTitle","item","title","decodeEntities","rendered","deletePostAction","id","label","__","isPrimary","icon","trash","isEligible","post","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","type","user","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onActionStart","onActionPerformed","isBusy","setIsBusy","useState","removeTemplates","useDispatch","editorStore","jsxs","__experimentalVStack","spacing","children","jsx","__experimentalText","length","sprintf","_n","__experimentalHStack","justify","Button","variant","onClick","disabled","__experimentalIsFocusable","allowUndo","useCanUserEligibilityCheckPostType","capability","resource","action","registry","useRegistry","useMemo","select","coreStore","canUser","trashPostAction","status","createSuccessNotice","createErrorNotice","noticesStore","deleteEntityRecord","promiseResult","Promise","allSettled","map","throwOnError","every","successMessage","errorMessage","reason","message","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","useTrashPostAction","usePermanentlyDeletePostAction","permanentlyDeletePostAction","callback","posts","force","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","restorePostAction","backup","viewPostAction","external","window","open","link","postRevisionsAction","context","_items$0$_links$versi","revisionsCount","_links","count","_post$_links$predeces","_post$_links$version","lastRevisionId","href","addQueryArgs","revision","document","location","renamePostAction","Object","values","is_custom","isTemplatePart","isUserPattern","isCustomPattern","isCustom","hasThemeFile","originalTitle","setTitle","onRename","event","preventDefault","error","code","onSubmit","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","useRenamePostAction","duplicatePostAction","_x","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItem","slug","author","comment_status","content","raw","excerpt","meta","parent","password","format","featured_media","menu_order","ping_status","categories","tags","placeholder","resetTemplateAction","isTemplateRevertable","revertTemplate","onConfirm","fallbackErrorMessage","duplicatePatternAction","exports","modalHeader","isThemePattern","theme","duplicatedProps","pattern","patternPost","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","CreateTemplatePartModalContents","blocks","defaultArea","area","defaultTitle","onCreate","onError","usePostActions","postType","postTypeObject","cachedCanUserResolvers","userCanCreatePostType","isBlockBasedTheme","useSelect","getPostType","getCachedResolvers","getCurrentTheme","_postTypeObject","_resource","rest_base","is_block_theme","trashPostActionForPostType","permanentlyDeletePostActionForPostType","renamePostActionForPostType","restorePostActionForPostType","isTemplateOrTemplatePart","isPattern","PATTERN_POST_TYPE","isLoaded","supportsRevisions","supports","revisions","supportsTitle","actions","viewable","globalThis","IS_GUTENBERG_PLUGIN","exportPatternAsJSONAction","Boolean","i","existingCallback","_onActionPerformed","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tPATTERN_POST_TYPE,\n} from '../../store/constants';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\nimport { exportPatternAsJSONAction } from './export-pattern-action';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\n// Patterns.\nconst { PATTERN_TYPES, CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\n/**\n * Check if a template is removable.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is removable.\n */\nfunction isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t// In patterns list page we map the templates parts to a different object\n\t// than the one returned from the endpoint. This is why we need to check for\n\t// two props whether is custom or has a theme file.\n\treturn (\n\t\t[ template.source, template.templatePart?.source ].includes(\n\t\t\tTEMPLATE_ORIGINS.custom\n\t\t) &&\n\t\t! template.has_theme_file &&\n\t\t! template.templatePart?.has_theme_file\n\t);\n}\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\n// This action is used for templates, patterns and template parts.\n// Every other post type uses the similar `trashPostAction` which\n// moves the post to trash.\nconst deletePostAction = {\n\tid: 'delete-post',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( post ) {\n\t\tif (\n\t\t\t[ TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE ].includes(\n\t\t\t\tpost.type\n\t\t\t)\n\t\t) {\n\t\t\treturn isTemplateRemovable( post );\n\t\t}\n\t\t// We can only remove user patterns.\n\t\treturn post.type === PATTERN_TYPES.user;\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { removeTemplates } = unlock( useDispatch( editorStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait removeTemplates( items, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useCanUserEligibilityCheckPostType( capability, resource, action ) {\n\tconst registry = useRegistry();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...action,\n\t\t\tisEligible( item ) {\n\t\t\t\treturn (\n\t\t\t\t\taction.isEligible( item ) &&\n\t\t\t\t\tregistry\n\t\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t\t.canUser( capability, resource, item.id )\n\t\t\t\t);\n\t\t\t},\n\t\t} ),\n\t\t[ action, registry, capability, resource ]\n\t);\n}\n\nconst trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\treturn ! [ 'auto-draft', 'trash' ].includes( item.status );\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash \"%s\"?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d item?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id,\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\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\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\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\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t'%s item moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\t'%s items moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\titems.length\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\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\tpromiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item.'\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// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the items.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\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'An error occurred while moving to trash the item: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\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'Some errors occurred while moving to trash the items: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\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}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Trash' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useTrashPostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\ttrashPostAction\n\t);\n}\n\nfunction usePermanentlyDeletePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\tconst permanentlyDeletePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'permanently-delete-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\tpermanentlyDeletePostAction\n\t);\n}\n\nfunction useRestorePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\tconst restorePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tawait Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( posts.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'restore-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trestorePostAction\n\t);\n}\n\nconst viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tcontext: 'list',\n\tlabel( items ) {\n\t\tconst revisionsCount =\n\t\t\titems[ 0 ]._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn sprintf(\n\t\t\t/* translators: %s: number of revisions */\n\t\t\t__( 'View revisions (%s)' ),\n\t\t\trevisionsCount\n\t\t);\n\t},\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst renamePostAction = {\n\tid: 'rename-post',\n\tlabel: __( 'Rename' ),\n\tisEligible( post ) {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\t// Templates, template parts and patterns have special checks for renaming.\n\t\tif (\n\t\t\t! [\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t...Object.values( PATTERN_TYPES ),\n\t\t\t].includes( post.type )\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\t// In the case of templates, we can only rename custom templates.\n\t\tif ( post.type === TEMPLATE_POST_TYPE ) {\n\t\t\treturn isTemplateRemovable( post ) && post.is_custom;\n\t\t}\n\t\t// Make necessary checks for template parts and patterns.\n\t\tconst isTemplatePart = post.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = post.type === PATTERN_TYPES.user;\n\t\t// In patterns list page we map the templates parts to a different object\n\t\t// than the one returned from the endpoint. This is why we need to check for\n\t\t// two props whether is custom or has a theme file.\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern ||\n\t\t\t( isTemplatePart &&\n\t\t\t\t( post.isCustom || post.source === TEMPLATE_ORIGINS.custom ) );\n\t\tconst hasThemeFile =\n\t\t\tisTemplatePart &&\n\t\t\t( post.templatePart?.has_theme_file || post.has_theme_file );\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst originalTitle = decodeEntities(\n\t\t\ttypeof item.title === 'string' ? item.title : item.title.rendered\n\t\t);\n\t\tconst [ title, setTitle ] = useState( () => originalTitle );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice( __( 'Name updated' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tonActionPerformed?.( items );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while updating the name' );\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nfunction useRenamePostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trenamePostAction\n\t);\n}\n\nconst duplicatePostAction = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst [ title, setTitle ] = useState(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: Existing item title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\tgetItemTitle( item )\n\t\t\t)\n\t\t);\n\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\t\tauthor: item.author,\n\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\tcategories: item.categories,\n\t\t\t\t\t\ttags: item.tags,\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tdecodeEntities( newItem.title?.rendered || title )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: ( item ) => {\n\t\treturn isTemplateRevertable( item );\n\t},\n\ticon: backup,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { revertTemplate } = unlock( useDispatch( editorStore ) );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( getItemTitle( items[ 0 ] ) )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __( 'Reset to default and clear all customizations?' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern:\n\t\t\t\tisThemePattern || ! item.patternPost ? item : item.patternPost,\n\t\t\tonSuccess: () => closeModal(),\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tfunction onTemplatePartSuccess() {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart?.area || item.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport function usePostActions( { postType, onActionPerformed, context } ) {\n\tconst {\n\t\tpostTypeObject,\n\t\tresource,\n\t\tcachedCanUserResolvers,\n\t\tuserCanCreatePostType,\n\t\tisBlockBasedTheme,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetPostType,\n\t\t\t\tgetCachedResolvers,\n\t\t\t\tcanUser,\n\t\t\t\tgetCurrentTheme,\n\t\t\t} = select( coreStore );\n\t\t\tconst _postTypeObject = getPostType( postType );\n\t\t\tconst _resource = _postTypeObject?.rest_base || '';\n\t\t\treturn {\n\t\t\t\tpostTypeObject: _postTypeObject,\n\t\t\t\tresource: _resource,\n\t\t\t\tcachedCanUserResolvers: getCachedResolvers()?.canUser,\n\t\t\t\tuserCanCreatePostType: canUser( 'create', _resource ),\n\t\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst trashPostActionForPostType = useTrashPostAction( resource );\n\tconst permanentlyDeletePostActionForPostType =\n\t\tusePermanentlyDeletePostAction( resource );\n\tconst renamePostActionForPostType = useRenamePostAction( resource );\n\tconst restorePostActionForPostType = useRestorePostAction( resource );\n\tconst isTemplateOrTemplatePart = [\n\t\tTEMPLATE_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t].includes( postType );\n\tconst isPattern = postType === PATTERN_POST_TYPE;\n\tconst isLoaded = !! postTypeObject;\n\tconst supportsRevisions = !! postTypeObject?.supports?.revisions;\n\tconst supportsTitle = !! postTypeObject?.supports?.title;\n\treturn useMemo( () => {\n\t\tif ( ! isLoaded ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet actions = [\n\t\t\tpostTypeObject?.viewable && viewPostAction,\n\t\t\tsupportsRevisions && postRevisionsAction,\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! isTemplateOrTemplatePart &&\n\t\t\t\t ! isPattern &&\n\t\t\t\t duplicatePostAction\n\t\t\t\t: false,\n\t\t\tisTemplateOrTemplatePart &&\n\t\t\t\tuserCanCreatePostType &&\n\t\t\t\tisBlockBasedTheme &&\n\t\t\t\tduplicateTemplatePartAction,\n\t\t\tisPattern && userCanCreatePostType && duplicatePatternAction,\n\t\t\tsupportsTitle && renamePostActionForPostType,\n\t\t\tisPattern && exportPatternAsJSONAction,\n\t\t\tisTemplateOrTemplatePart\n\t\t\t\t? resetTemplateAction\n\t\t\t\t: restorePostActionForPostType,\n\t\t\tisTemplateOrTemplatePart || isPattern\n\t\t\t\t? deletePostAction\n\t\t\t\t: trashPostActionForPostType,\n\t\t\t! isTemplateOrTemplatePart &&\n\t\t\t\tpermanentlyDeletePostActionForPostType,\n\t\t].filter( Boolean );\n\t\t// Filter actions based on provided context. If not provided\n\t\t// all actions are returned. We'll have a single entry for getting the actions\n\t\t// and the consumer should provide the context to filter the actions, if needed.\n\t\t// Actions should also provide the `context` they support, if it's specific, to\n\t\t// compare with the provided context to get all the actions.\n\t\t// Right now the only supported context is `list`.\n\t\tactions = actions.filter( ( action ) => {\n\t\t\tif ( ! action.context ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn action.context === context;\n\t\t} );\n\n\t\tif ( onActionPerformed ) {\n\t\t\tfor ( let i = 0; i < actions.length; ++i ) {\n\t\t\t\tif ( actions[ i ].callback ) {\n\t\t\t\t\tconst existingCallback = actions[ i ].callback;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tcallback: ( items, _onActionPerformed ) => {\n\t\t\t\t\t\t\texistingCallback( items, ( _items ) => {\n\t\t\t\t\t\t\t\tif ( _onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t_onActionPerformed( _items );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonActionPerformed( actions[ i ].id, _items );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif ( actions[ i ].RenderModal ) {\n\t\t\t\t\tconst ExistingRenderModal = actions[ i ].RenderModal;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tRenderModal: ( props ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ExistingRenderModal\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tonActionPerformed={ ( _items ) => {\n\t\t\t\t\t\t\t\t\t\tif ( props.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t\t_items\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/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t\t// We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render\n\t\t// when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tpermanentlyDeletePostActionForPostType,\n\t\trestorePostActionForPostType,\n\t\trenamePostActionForPostType,\n\t\ttrashPostActionForPostType,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t\tsupportsRevisions,\n\t\tsupportsTitle,\n\t\tcontext,\n\t\tuserCanCreatePostType,\n\t\tcachedCanUserResolvers,\n\t] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -85,7 +85,7 @@ const getPostIcon = exports.getPostIcon = (0, _data.createRegistrySelector)(sele
85
85
  // `icon` is the `menu_icon` property of a post type. We
86
86
  // only handle `dashicons` for now, even if the `menu_icon`
87
87
  // also supports urls and svg as values.
88
- if (postTypeEntity?.icon?.startsWith('dashicons-')) {
88
+ if (typeof postTypeEntity?.icon === 'string' && postTypeEntity.icon.startsWith('dashicons-')) {
89
89
  return postTypeEntity.icon.slice(10);
90
90
  }
91
91
  return _icons.page;
@@ -1 +1 @@
1
- {"version":3,"names":["_fastDeepEqual","_interopRequireDefault","require","_blockEditor","_data","_icons","_coreData","_selectors","_constants","_getFilteredTemplateParts","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","filterValue","getInsertionPoint","exports","createRegistrySelector","select","createSelector","state","blockInserterPanel","getRenderingMode","postContentClientId","blockEditorStore","getBlocksByName","getListViewToggleRef","listViewToggleRef","getInserterSidebarToggleRef","inserterSidebarToggleRef","CARD_ICONS","wp_block","symbol","wp_navigation","navigation","page","pageIcon","post","verse","getPostIcon","postType","options","__experimentalGetDefaultTemplatePartAreas","find","item","area","icon","layout","postTypeEntity","coreStore","getPostType","startsWith","slice","getCurrentTemplateTemplateParts","templateParts","getEntityRecords","TEMPLATE_PART_POST_TYPE","per_page","clientIds","blocks","getBlocksByClientId","getFilteredTemplatePartBlocks","hasPostMetaChanges","postId","type","currentPostType","id","currentPostId","getCurrentPost","edits","getEntityRecordNonTransientEdits","meta","originalPostMeta","getEntityRecord","fastDeepEqual","footnotes"],"sources":["@wordpress/editor/src/store/private-selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport {\n\tlayout,\n\tsymbol,\n\tnavigation,\n\tpage as pageIcon,\n\tverse,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetRenderingMode,\n\tgetCurrentPost,\n\t__experimentalGetDefaultTemplatePartAreas,\n} from './selectors';\nimport { TEMPLATE_PART_POST_TYPE } from './constants';\nimport { getFilteredTemplatePartBlocks } from './utils/get-filtered-template-parts';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n\tfilterValue: undefined,\n};\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport const getInsertionPoint = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state ) => {\n\t\t\tif ( typeof state.blockInserterPanel === 'object' ) {\n\t\t\t\treturn state.blockInserterPanel;\n\t\t\t}\n\n\t\t\tif ( getRenderingMode( state ) === 'template-locked' ) {\n\t\t\t\tconst [ postContentClientId ] =\n\t\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t\t'core/post-content'\n\t\t\t\t\t);\n\t\t\t\tif ( postContentClientId ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\trootClientId: postContentClientId,\n\t\t\t\t\t\tinsertionIndex: undefined,\n\t\t\t\t\t\tfilterValue: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn EMPTY_INSERTION_POINT;\n\t\t},\n\t\t( state ) => {\n\t\t\tconst [ postContentClientId ] =\n\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t'core/post-content'\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tstate.blockInserterPanel,\n\t\t\t\tgetRenderingMode( state ),\n\t\t\t\tpostContentClientId,\n\t\t\t];\n\t\t}\n\t)\n);\n\nexport function getListViewToggleRef( state ) {\n\treturn state.listViewToggleRef;\n}\nexport function getInserterSidebarToggleRef( state ) {\n\treturn state.inserterSidebarToggleRef;\n}\nconst CARD_ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigation,\n\tpage: pageIcon,\n\tpost: verse,\n};\n\nexport const getPostIcon = createRegistrySelector(\n\t( select ) => ( state, postType, options ) => {\n\t\t{\n\t\t\tif (\n\t\t\t\tpostType === 'wp_template_part' ||\n\t\t\t\tpostType === 'wp_template'\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\t__experimentalGetDefaultTemplatePartAreas( state ).find(\n\t\t\t\t\t\t( item ) => options.area === item.area\n\t\t\t\t\t)?.icon || layout\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( CARD_ICONS[ postType ] ) {\n\t\t\t\treturn CARD_ICONS[ postType ];\n\t\t\t}\n\t\t\tconst postTypeEntity = select( coreStore ).getPostType( postType );\n\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t// also supports urls and svg as values.\n\t\t\tif ( postTypeEntity?.icon?.startsWith( 'dashicons-' ) ) {\n\t\t\t\treturn postTypeEntity.icon.slice( 10 );\n\t\t\t}\n\t\t\treturn pageIcon;\n\t\t}\n\t}\n);\n\n/**\n * Returns the template parts and their blocks for the current edited template.\n *\n * @param {Object} state Global application state.\n * @return {Array} Template parts and their blocks in an array.\n */\nexport const getCurrentTemplateTemplateParts = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst templateParts = select( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 }\n\t\t);\n\n\t\tconst clientIds =\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'core/template-part' );\n\t\tconst blocks =\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds );\n\n\t\treturn getFilteredTemplatePartBlocks( blocks, templateParts );\n\t}\n);\n\n/**\n * Returns true if there are unsaved changes to the\n * post's meta fields, and false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} postType The post type of the post.\n * @param {number} postId The ID of the post.\n *\n * @return {boolean} Whether there are edits or not in the meta fields of the relevant post.\n */\nexport const hasPostMetaChanges = createRegistrySelector(\n\t( select ) => ( state, postType, postId ) => {\n\t\tconst { type: currentPostType, id: currentPostId } =\n\t\t\tgetCurrentPost( state );\n\t\t// If no postType or postId is passed, use the current post.\n\t\tconst edits = select( coreStore ).getEntityRecordNonTransientEdits(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t);\n\n\t\tif ( ! edits?.meta ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Compare if anything apart from `footnotes` has changed.\n\t\tconst originalPostMeta = select( coreStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t)?.meta;\n\n\t\treturn ! fastDeepEqual(\n\t\t\t{ ...originalPostMeta, footnotes: undefined },\n\t\t\t{ ...edits.meta, footnotes: undefined }\n\t\t);\n\t}\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fastDeepEqual","_interopRequireDefault","require","_blockEditor","_data","_icons","_coreData","_selectors","_constants","_getFilteredTemplateParts","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","filterValue","getInsertionPoint","exports","createRegistrySelector","select","createSelector","state","blockInserterPanel","getRenderingMode","postContentClientId","blockEditorStore","getBlocksByName","getListViewToggleRef","listViewToggleRef","getInserterSidebarToggleRef","inserterSidebarToggleRef","CARD_ICONS","wp_block","symbol","wp_navigation","navigation","page","pageIcon","post","verse","getPostIcon","postType","options","__experimentalGetDefaultTemplatePartAreas","find","item","area","icon","layout","postTypeEntity","coreStore","getPostType","startsWith","slice","getCurrentTemplateTemplateParts","templateParts","getEntityRecords","TEMPLATE_PART_POST_TYPE","per_page","clientIds","blocks","getBlocksByClientId","getFilteredTemplatePartBlocks","hasPostMetaChanges","postId","type","currentPostType","id","currentPostId","getCurrentPost","edits","getEntityRecordNonTransientEdits","meta","originalPostMeta","getEntityRecord","fastDeepEqual","footnotes"],"sources":["@wordpress/editor/src/store/private-selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport {\n\tlayout,\n\tsymbol,\n\tnavigation,\n\tpage as pageIcon,\n\tverse,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetRenderingMode,\n\tgetCurrentPost,\n\t__experimentalGetDefaultTemplatePartAreas,\n} from './selectors';\nimport { TEMPLATE_PART_POST_TYPE } from './constants';\nimport { getFilteredTemplatePartBlocks } from './utils/get-filtered-template-parts';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n\tfilterValue: undefined,\n};\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport const getInsertionPoint = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state ) => {\n\t\t\tif ( typeof state.blockInserterPanel === 'object' ) {\n\t\t\t\treturn state.blockInserterPanel;\n\t\t\t}\n\n\t\t\tif ( getRenderingMode( state ) === 'template-locked' ) {\n\t\t\t\tconst [ postContentClientId ] =\n\t\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t\t'core/post-content'\n\t\t\t\t\t);\n\t\t\t\tif ( postContentClientId ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\trootClientId: postContentClientId,\n\t\t\t\t\t\tinsertionIndex: undefined,\n\t\t\t\t\t\tfilterValue: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn EMPTY_INSERTION_POINT;\n\t\t},\n\t\t( state ) => {\n\t\t\tconst [ postContentClientId ] =\n\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t'core/post-content'\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tstate.blockInserterPanel,\n\t\t\t\tgetRenderingMode( state ),\n\t\t\t\tpostContentClientId,\n\t\t\t];\n\t\t}\n\t)\n);\n\nexport function getListViewToggleRef( state ) {\n\treturn state.listViewToggleRef;\n}\nexport function getInserterSidebarToggleRef( state ) {\n\treturn state.inserterSidebarToggleRef;\n}\nconst CARD_ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigation,\n\tpage: pageIcon,\n\tpost: verse,\n};\n\nexport const getPostIcon = createRegistrySelector(\n\t( select ) => ( state, postType, options ) => {\n\t\t{\n\t\t\tif (\n\t\t\t\tpostType === 'wp_template_part' ||\n\t\t\t\tpostType === 'wp_template'\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\t__experimentalGetDefaultTemplatePartAreas( state ).find(\n\t\t\t\t\t\t( item ) => options.area === item.area\n\t\t\t\t\t)?.icon || layout\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( CARD_ICONS[ postType ] ) {\n\t\t\t\treturn CARD_ICONS[ postType ];\n\t\t\t}\n\t\t\tconst postTypeEntity = select( coreStore ).getPostType( postType );\n\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t// also supports urls and svg as values.\n\t\t\tif (\n\t\t\t\ttypeof postTypeEntity?.icon === 'string' &&\n\t\t\t\tpostTypeEntity.icon.startsWith( 'dashicons-' )\n\t\t\t) {\n\t\t\t\treturn postTypeEntity.icon.slice( 10 );\n\t\t\t}\n\t\t\treturn pageIcon;\n\t\t}\n\t}\n);\n\n/**\n * Returns the template parts and their blocks for the current edited template.\n *\n * @param {Object} state Global application state.\n * @return {Array} Template parts and their blocks in an array.\n */\nexport const getCurrentTemplateTemplateParts = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst templateParts = select( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 }\n\t\t);\n\n\t\tconst clientIds =\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'core/template-part' );\n\t\tconst blocks =\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds );\n\n\t\treturn getFilteredTemplatePartBlocks( blocks, templateParts );\n\t}\n);\n\n/**\n * Returns true if there are unsaved changes to the\n * post's meta fields, and false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} postType The post type of the post.\n * @param {number} postId The ID of the post.\n *\n * @return {boolean} Whether there are edits or not in the meta fields of the relevant post.\n */\nexport const hasPostMetaChanges = createRegistrySelector(\n\t( select ) => ( state, postType, postId ) => {\n\t\tconst { type: currentPostType, id: currentPostId } =\n\t\t\tgetCurrentPost( state );\n\t\t// If no postType or postId is passed, use the current post.\n\t\tconst edits = select( coreStore ).getEntityRecordNonTransientEdits(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t);\n\n\t\tif ( ! edits?.meta ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Compare if anything apart from `footnotes` has changed.\n\t\tconst originalPostMeta = select( coreStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t)?.meta;\n\n\t\treturn ! fastDeepEqual(\n\t\t\t{ ...originalPostMeta, footnotes: undefined },\n\t\t\t{ ...edits.meta, footnotes: undefined }\n\t\t);\n\t}\n);\n"],"mappings":"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","ignoreList":[]}
@@ -813,12 +813,14 @@ export function usePostActions({
813
813
  postTypeObject,
814
814
  resource,
815
815
  cachedCanUserResolvers,
816
- userCanCreatePostType
816
+ userCanCreatePostType,
817
+ isBlockBasedTheme
817
818
  } = useSelect(select => {
818
819
  const {
819
820
  getPostType,
820
821
  getCachedResolvers,
821
- canUser
822
+ canUser,
823
+ getCurrentTheme
822
824
  } = select(coreStore);
823
825
  const _postTypeObject = getPostType(postType);
824
826
  const _resource = _postTypeObject?.rest_base || '';
@@ -826,7 +828,8 @@ export function usePostActions({
826
828
  postTypeObject: _postTypeObject,
827
829
  resource: _resource,
828
830
  cachedCanUserResolvers: getCachedResolvers()?.canUser,
829
- userCanCreatePostType: canUser('create', _resource)
831
+ userCanCreatePostType: canUser('create', _resource),
832
+ isBlockBasedTheme: getCurrentTheme()?.is_block_theme
830
833
  };
831
834
  }, [postType]);
832
835
  const trashPostActionForPostType = useTrashPostAction(resource);
@@ -842,7 +845,7 @@ export function usePostActions({
842
845
  if (!isLoaded) {
843
846
  return [];
844
847
  }
845
- let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType].filter(Boolean);
848
+ let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && isBlockBasedTheme && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType].filter(Boolean);
846
849
  // Filter actions based on provided context. If not provided
847
850
  // all actions are returned. We'll have a single entry for getting the actions
848
851
  // and the consumer should provide the context to filter the actions, if needed.
@@ -1 +1 @@
1
- {"version":3,"names":["external","trash","backup","addQueryArgs","useDispatch","useSelect","useRegistry","decodeEntities","store","coreStore","__","_n","sprintf","_x","noticesStore","useMemo","useState","privateApis","patternsPrivateApis","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","TEMPLATE_ORIGINS","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_POST_TYPE","editorStore","unlock","isTemplateRevertable","exportPatternAsJSONAction","CreateTemplatePartModalContents","jsx","_jsx","jsxs","_jsxs","PATTERN_TYPES","CreatePatternModalContents","useDuplicatePatternProps","isTemplateRemovable","template","source","templatePart","includes","custom","has_theme_file","getItemTitle","item","title","rendered","deletePostAction","id","label","isPrimary","icon","isEligible","post","type","user","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onActionStart","onActionPerformed","isBusy","setIsBusy","removeTemplates","spacing","children","length","justify","variant","onClick","disabled","__experimentalIsFocusable","allowUndo","useCanUserEligibilityCheckPostType","capability","resource","action","registry","select","canUser","trashPostAction","status","createSuccessNotice","createErrorNotice","deleteEntityRecord","promiseResult","Promise","allSettled","map","throwOnError","every","successMessage","errorMessage","reason","message","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","useTrashPostAction","usePermanentlyDeletePostAction","permanentlyDeletePostAction","callback","posts","force","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","restorePostAction","viewPostAction","window","open","link","postRevisionsAction","context","_items$0$_links$versi","revisionsCount","_links","count","_post$_links$predeces","_post$_links$version","lastRevisionId","href","revision","document","location","renamePostAction","Object","values","is_custom","isTemplatePart","isUserPattern","isCustomPattern","isCustom","hasThemeFile","originalTitle","setTitle","onRename","event","preventDefault","error","code","onSubmit","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","useRenamePostAction","duplicatePostAction","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItem","slug","author","comment_status","content","raw","excerpt","meta","parent","password","format","featured_media","menu_order","ping_status","categories","tags","placeholder","resetTemplateAction","revertTemplate","onConfirm","fallbackErrorMessage","duplicatePatternAction","modalHeader","isThemePattern","theme","duplicatedProps","pattern","patternPost","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","blocks","defaultArea","area","defaultTitle","onCreate","onError","usePostActions","postType","postTypeObject","cachedCanUserResolvers","userCanCreatePostType","getPostType","getCachedResolvers","_postTypeObject","_resource","rest_base","trashPostActionForPostType","permanentlyDeletePostActionForPostType","renamePostActionForPostType","restorePostActionForPostType","isTemplateOrTemplatePart","isPattern","isLoaded","supportsRevisions","supports","revisions","supportsTitle","actions","viewable","globalThis","IS_GUTENBERG_PLUGIN","Boolean","i","existingCallback","_onActionPerformed","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tPATTERN_POST_TYPE,\n} from '../../store/constants';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\nimport { exportPatternAsJSONAction } from './export-pattern-action';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\n// Patterns.\nconst { PATTERN_TYPES, CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\n/**\n * Check if a template is removable.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is removable.\n */\nfunction isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t// In patterns list page we map the templates parts to a different object\n\t// than the one returned from the endpoint. This is why we need to check for\n\t// two props whether is custom or has a theme file.\n\treturn (\n\t\t[ template.source, template.templatePart?.source ].includes(\n\t\t\tTEMPLATE_ORIGINS.custom\n\t\t) &&\n\t\t! template.has_theme_file &&\n\t\t! template.templatePart?.has_theme_file\n\t);\n}\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\n// This action is used for templates, patterns and template parts.\n// Every other post type uses the similar `trashPostAction` which\n// moves the post to trash.\nconst deletePostAction = {\n\tid: 'delete-post',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( post ) {\n\t\tif (\n\t\t\t[ TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE ].includes(\n\t\t\t\tpost.type\n\t\t\t)\n\t\t) {\n\t\t\treturn isTemplateRemovable( post );\n\t\t}\n\t\t// We can only remove user patterns.\n\t\treturn post.type === PATTERN_TYPES.user;\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { removeTemplates } = unlock( useDispatch( editorStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait removeTemplates( items, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useCanUserEligibilityCheckPostType( capability, resource, action ) {\n\tconst registry = useRegistry();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...action,\n\t\t\tisEligible( item ) {\n\t\t\t\treturn (\n\t\t\t\t\taction.isEligible( item ) &&\n\t\t\t\t\tregistry\n\t\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t\t.canUser( capability, resource, item.id )\n\t\t\t\t);\n\t\t\t},\n\t\t} ),\n\t\t[ action, registry, capability, resource ]\n\t);\n}\n\nconst trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\treturn ! [ 'auto-draft', 'trash' ].includes( item.status );\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash \"%s\"?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d item?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id,\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\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\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\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\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t'%s item moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\t'%s items moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\titems.length\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\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\tpromiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item.'\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// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the items.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\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'An error occurred while moving to trash the item: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\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'Some errors occurred while moving to trash the items: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\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}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Trash' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useTrashPostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\ttrashPostAction\n\t);\n}\n\nfunction usePermanentlyDeletePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\tconst permanentlyDeletePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'permanently-delete-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\tpermanentlyDeletePostAction\n\t);\n}\n\nfunction useRestorePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\tconst restorePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tawait Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( posts.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'restore-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trestorePostAction\n\t);\n}\n\nconst viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tcontext: 'list',\n\tlabel( items ) {\n\t\tconst revisionsCount =\n\t\t\titems[ 0 ]._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn sprintf(\n\t\t\t/* translators: %s: number of revisions */\n\t\t\t__( 'View revisions (%s)' ),\n\t\t\trevisionsCount\n\t\t);\n\t},\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst renamePostAction = {\n\tid: 'rename-post',\n\tlabel: __( 'Rename' ),\n\tisEligible( post ) {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\t// Templates, template parts and patterns have special checks for renaming.\n\t\tif (\n\t\t\t! [\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t...Object.values( PATTERN_TYPES ),\n\t\t\t].includes( post.type )\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\t// In the case of templates, we can only rename custom templates.\n\t\tif ( post.type === TEMPLATE_POST_TYPE ) {\n\t\t\treturn isTemplateRemovable( post ) && post.is_custom;\n\t\t}\n\t\t// Make necessary checks for template parts and patterns.\n\t\tconst isTemplatePart = post.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = post.type === PATTERN_TYPES.user;\n\t\t// In patterns list page we map the templates parts to a different object\n\t\t// than the one returned from the endpoint. This is why we need to check for\n\t\t// two props whether is custom or has a theme file.\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern ||\n\t\t\t( isTemplatePart &&\n\t\t\t\t( post.isCustom || post.source === TEMPLATE_ORIGINS.custom ) );\n\t\tconst hasThemeFile =\n\t\t\tisTemplatePart &&\n\t\t\t( post.templatePart?.has_theme_file || post.has_theme_file );\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst originalTitle = decodeEntities(\n\t\t\ttypeof item.title === 'string' ? item.title : item.title.rendered\n\t\t);\n\t\tconst [ title, setTitle ] = useState( () => originalTitle );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice( __( 'Name updated' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tonActionPerformed?.( items );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while updating the name' );\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nfunction useRenamePostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trenamePostAction\n\t);\n}\n\nconst duplicatePostAction = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst [ title, setTitle ] = useState(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: Existing item title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\tgetItemTitle( item )\n\t\t\t)\n\t\t);\n\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\t\tauthor: item.author,\n\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\tcategories: item.categories,\n\t\t\t\t\t\ttags: item.tags,\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tdecodeEntities( newItem.title?.rendered || title )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: ( item ) => {\n\t\treturn isTemplateRevertable( item );\n\t},\n\ticon: backup,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { revertTemplate } = unlock( useDispatch( editorStore ) );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( getItemTitle( items[ 0 ] ) )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __( 'Reset to default and clear all customizations?' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern:\n\t\t\t\tisThemePattern || ! item.patternPost ? item : item.patternPost,\n\t\t\tonSuccess: () => closeModal(),\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tfunction onTemplatePartSuccess() {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart?.area || item.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport function usePostActions( { postType, onActionPerformed, context } ) {\n\tconst {\n\t\tpostTypeObject,\n\t\tresource,\n\t\tcachedCanUserResolvers,\n\t\tuserCanCreatePostType,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getCachedResolvers, canUser } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _postTypeObject = getPostType( postType );\n\t\t\tconst _resource = _postTypeObject?.rest_base || '';\n\t\t\treturn {\n\t\t\t\tpostTypeObject: _postTypeObject,\n\t\t\t\tresource: _resource,\n\t\t\t\tcachedCanUserResolvers: getCachedResolvers()?.canUser,\n\t\t\t\tuserCanCreatePostType: canUser( 'create', _resource ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst trashPostActionForPostType = useTrashPostAction( resource );\n\tconst permanentlyDeletePostActionForPostType =\n\t\tusePermanentlyDeletePostAction( resource );\n\tconst renamePostActionForPostType = useRenamePostAction( resource );\n\tconst restorePostActionForPostType = useRestorePostAction( resource );\n\tconst isTemplateOrTemplatePart = [\n\t\tTEMPLATE_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t].includes( postType );\n\tconst isPattern = postType === PATTERN_POST_TYPE;\n\tconst isLoaded = !! postTypeObject;\n\tconst supportsRevisions = !! postTypeObject?.supports?.revisions;\n\tconst supportsTitle = !! postTypeObject?.supports?.title;\n\treturn useMemo( () => {\n\t\tif ( ! isLoaded ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet actions = [\n\t\t\tpostTypeObject?.viewable && viewPostAction,\n\t\t\tsupportsRevisions && postRevisionsAction,\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! isTemplateOrTemplatePart &&\n\t\t\t\t ! isPattern &&\n\t\t\t\t duplicatePostAction\n\t\t\t\t: false,\n\t\t\tisTemplateOrTemplatePart &&\n\t\t\t\tuserCanCreatePostType &&\n\t\t\t\tduplicateTemplatePartAction,\n\t\t\tisPattern && userCanCreatePostType && duplicatePatternAction,\n\t\t\tsupportsTitle && renamePostActionForPostType,\n\t\t\tisPattern && exportPatternAsJSONAction,\n\t\t\tisTemplateOrTemplatePart\n\t\t\t\t? resetTemplateAction\n\t\t\t\t: restorePostActionForPostType,\n\t\t\tisTemplateOrTemplatePart || isPattern\n\t\t\t\t? deletePostAction\n\t\t\t\t: trashPostActionForPostType,\n\t\t\t! isTemplateOrTemplatePart &&\n\t\t\t\tpermanentlyDeletePostActionForPostType,\n\t\t].filter( Boolean );\n\t\t// Filter actions based on provided context. If not provided\n\t\t// all actions are returned. We'll have a single entry for getting the actions\n\t\t// and the consumer should provide the context to filter the actions, if needed.\n\t\t// Actions should also provide the `context` they support, if it's specific, to\n\t\t// compare with the provided context to get all the actions.\n\t\t// Right now the only supported context is `list`.\n\t\tactions = actions.filter( ( action ) => {\n\t\t\tif ( ! action.context ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn action.context === context;\n\t\t} );\n\n\t\tif ( onActionPerformed ) {\n\t\t\tfor ( let i = 0; i < actions.length; ++i ) {\n\t\t\t\tif ( actions[ i ].callback ) {\n\t\t\t\t\tconst existingCallback = actions[ i ].callback;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tcallback: ( items, _onActionPerformed ) => {\n\t\t\t\t\t\t\texistingCallback( items, ( _items ) => {\n\t\t\t\t\t\t\t\tif ( _onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t_onActionPerformed( _items );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonActionPerformed( actions[ i ].id, _items );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif ( actions[ i ].RenderModal ) {\n\t\t\t\t\tconst ExistingRenderModal = actions[ i ].RenderModal;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tRenderModal: ( props ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ExistingRenderModal\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tonActionPerformed={ ( _items ) => {\n\t\t\t\t\t\t\t\t\t\tif ( props.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t\t_items\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/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t\t// We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render\n\t\t// when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tpermanentlyDeletePostActionForPostType,\n\t\trestorePostActionForPostType,\n\t\trenamePostActionForPostType,\n\t\ttrashPostActionForPostType,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t\tsupportsRevisions,\n\t\tsupportsTitle,\n\t\tcontext,\n\t\tuserCanCreatePostType,\n\t\tcachedCanUserResolvers,\n\t] );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["external","trash","backup","addQueryArgs","useDispatch","useSelect","useRegistry","decodeEntities","store","coreStore","__","_n","sprintf","_x","noticesStore","useMemo","useState","privateApis","patternsPrivateApis","Button","TextControl","__experimentalText","Text","__experimentalHStack","HStack","__experimentalVStack","VStack","TEMPLATE_ORIGINS","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_POST_TYPE","editorStore","unlock","isTemplateRevertable","exportPatternAsJSONAction","CreateTemplatePartModalContents","jsx","_jsx","jsxs","_jsxs","PATTERN_TYPES","CreatePatternModalContents","useDuplicatePatternProps","isTemplateRemovable","template","source","templatePart","includes","custom","has_theme_file","getItemTitle","item","title","rendered","deletePostAction","id","label","isPrimary","icon","isEligible","post","type","user","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onActionStart","onActionPerformed","isBusy","setIsBusy","removeTemplates","spacing","children","length","justify","variant","onClick","disabled","__experimentalIsFocusable","allowUndo","useCanUserEligibilityCheckPostType","capability","resource","action","registry","select","canUser","trashPostAction","status","createSuccessNotice","createErrorNotice","deleteEntityRecord","promiseResult","Promise","allSettled","map","throwOnError","every","successMessage","errorMessage","reason","message","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","useTrashPostAction","usePermanentlyDeletePostAction","permanentlyDeletePostAction","callback","posts","force","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","restorePostAction","viewPostAction","window","open","link","postRevisionsAction","context","_items$0$_links$versi","revisionsCount","_links","count","_post$_links$predeces","_post$_links$version","lastRevisionId","href","revision","document","location","renamePostAction","Object","values","is_custom","isTemplatePart","isUserPattern","isCustomPattern","isCustom","hasThemeFile","originalTitle","setTitle","onRename","event","preventDefault","error","code","onSubmit","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","useRenamePostAction","duplicatePostAction","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItem","slug","author","comment_status","content","raw","excerpt","meta","parent","password","format","featured_media","menu_order","ping_status","categories","tags","placeholder","resetTemplateAction","revertTemplate","onConfirm","fallbackErrorMessage","duplicatePatternAction","modalHeader","isThemePattern","theme","duplicatedProps","pattern","patternPost","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","onTemplatePartSuccess","blocks","defaultArea","area","defaultTitle","onCreate","onError","usePostActions","postType","postTypeObject","cachedCanUserResolvers","userCanCreatePostType","isBlockBasedTheme","getPostType","getCachedResolvers","getCurrentTheme","_postTypeObject","_resource","rest_base","is_block_theme","trashPostActionForPostType","permanentlyDeletePostActionForPostType","renamePostActionForPostType","restorePostActionForPostType","isTemplateOrTemplatePart","isPattern","isLoaded","supportsRevisions","supports","revisions","supportsTitle","actions","viewable","globalThis","IS_GUTENBERG_PLUGIN","Boolean","i","existingCallback","_onActionPerformed","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n\tPATTERN_POST_TYPE,\n} from '../../store/constants';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport isTemplateRevertable from '../../store/utils/is-template-revertable';\nimport { exportPatternAsJSONAction } from './export-pattern-action';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\n// Patterns.\nconst { PATTERN_TYPES, CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\n/**\n * Check if a template is removable.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is removable.\n */\nfunction isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t// In patterns list page we map the templates parts to a different object\n\t// than the one returned from the endpoint. This is why we need to check for\n\t// two props whether is custom or has a theme file.\n\treturn (\n\t\t[ template.source, template.templatePart?.source ].includes(\n\t\t\tTEMPLATE_ORIGINS.custom\n\t\t) &&\n\t\t! template.has_theme_file &&\n\t\t! template.templatePart?.has_theme_file\n\t);\n}\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\n// This action is used for templates, patterns and template parts.\n// Every other post type uses the similar `trashPostAction` which\n// moves the post to trash.\nconst deletePostAction = {\n\tid: 'delete-post',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( post ) {\n\t\tif (\n\t\t\t[ TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE ].includes(\n\t\t\t\tpost.type\n\t\t\t)\n\t\t) {\n\t\t\treturn isTemplateRemovable( post );\n\t\t}\n\t\t// We can only remove user patterns.\n\t\treturn post.type === PATTERN_TYPES.user;\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { removeTemplates } = unlock( useDispatch( editorStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait removeTemplates( items, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useCanUserEligibilityCheckPostType( capability, resource, action ) {\n\tconst registry = useRegistry();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...action,\n\t\t\tisEligible( item ) {\n\t\t\t\treturn (\n\t\t\t\t\taction.isEligible( item ) &&\n\t\t\t\t\tregistry\n\t\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t\t.canUser( capability, resource, item.id )\n\t\t\t\t);\n\t\t\t},\n\t\t} ),\n\t\t[ action, registry, capability, resource ]\n\t);\n}\n\nconst trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\treturn ! [ 'auto-draft', 'trash' ].includes( item.status );\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash \"%s\"?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d item?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move to trash %d items?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id,\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\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\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\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\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t'%s item moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\t'%s items moved to trash.',\n\t\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\titems.length\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\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\tpromiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the item.'\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// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving to trash the items.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\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'An error occurred while moving to trash the item: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\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'Some errors occurred while moving to trash the items: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\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}\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Trash' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nfunction useTrashPostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\ttrashPostAction\n\t);\n}\n\nfunction usePermanentlyDeletePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\tconst permanentlyDeletePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'permanently-delete-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'delete',\n\t\tresource,\n\t\tpermanentlyDeletePostAction\n\t);\n}\n\nfunction useRestorePostAction( resource ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\tconst restorePostAction = useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tawait Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( posts.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( posts[ 0 ].type === 'page' ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d pages have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'restore-post-action',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to move a single post to the trash.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to move multiple posts to the trash\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while restoring the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trestorePostAction\n\t);\n}\n\nconst viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\twindow.open( post.link, '_blank' );\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tcontext: 'list',\n\tlabel( items ) {\n\t\tconst revisionsCount =\n\t\t\titems[ 0 ]._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn sprintf(\n\t\t\t/* translators: %s: number of revisions */\n\t\t\t__( 'View revisions (%s)' ),\n\t\t\trevisionsCount\n\t\t);\n\t},\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nconst renamePostAction = {\n\tid: 'rename-post',\n\tlabel: __( 'Rename' ),\n\tisEligible( post ) {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\t// Templates, template parts and patterns have special checks for renaming.\n\t\tif (\n\t\t\t! [\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t...Object.values( PATTERN_TYPES ),\n\t\t\t].includes( post.type )\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\t// In the case of templates, we can only rename custom templates.\n\t\tif ( post.type === TEMPLATE_POST_TYPE ) {\n\t\t\treturn isTemplateRemovable( post ) && post.is_custom;\n\t\t}\n\t\t// Make necessary checks for template parts and patterns.\n\t\tconst isTemplatePart = post.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = post.type === PATTERN_TYPES.user;\n\t\t// In patterns list page we map the templates parts to a different object\n\t\t// than the one returned from the endpoint. This is why we need to check for\n\t\t// two props whether is custom or has a theme file.\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern ||\n\t\t\t( isTemplatePart &&\n\t\t\t\t( post.isCustom || post.source === TEMPLATE_ORIGINS.custom ) );\n\t\tconst hasThemeFile =\n\t\t\tisTemplatePart &&\n\t\t\t( post.templatePart?.has_theme_file || post.has_theme_file );\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst originalTitle = decodeEntities(\n\t\t\ttypeof item.title === 'string' ? item.title : item.title.rendered\n\t\t);\n\t\tconst [ title, setTitle ] = useState( () => originalTitle );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice( __( 'Name updated' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tonActionPerformed?.( items );\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while updating the name' );\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nfunction useRenamePostAction( resource ) {\n\treturn useCanUserEligibilityCheckPostType(\n\t\t'update',\n\t\tresource,\n\t\trenamePostAction\n\t);\n}\n\nconst duplicatePostAction = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst [ title, setTitle ] = useState(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: Existing item title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\tgetItemTitle( item )\n\t\t\t)\n\t\t);\n\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t\t\tauthor: item.author,\n\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\tcategories: item.categories,\n\t\t\t\t\t\ttags: item.tags,\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tdecodeEntities( newItem.title?.rendered || title )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: ( item ) => {\n\t\treturn isTemplateRevertable( item );\n\t},\n\ticon: backup,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionStart,\n\t\tonActionPerformed,\n\t} ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { revertTemplate } = unlock( useDispatch( editorStore ) );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( getItemTitle( items[ 0 ] ) )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __( 'Reset to default and clear all customizations?' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tif ( onActionStart ) {\n\t\t\t\t\t\t\t\tonActionStart( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonActionPerformed?.( items );\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern:\n\t\t\t\tisThemePattern || ! item.patternPost ? item : item.patternPost,\n\t\t\tonSuccess: () => closeModal(),\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { items, closeModal } ) => {\n\t\tconst [ item ] = items;\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tfunction onTemplatePartSuccess() {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart?.area || item.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport function usePostActions( { postType, onActionPerformed, context } ) {\n\tconst {\n\t\tpostTypeObject,\n\t\tresource,\n\t\tcachedCanUserResolvers,\n\t\tuserCanCreatePostType,\n\t\tisBlockBasedTheme,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetPostType,\n\t\t\t\tgetCachedResolvers,\n\t\t\t\tcanUser,\n\t\t\t\tgetCurrentTheme,\n\t\t\t} = select( coreStore );\n\t\t\tconst _postTypeObject = getPostType( postType );\n\t\t\tconst _resource = _postTypeObject?.rest_base || '';\n\t\t\treturn {\n\t\t\t\tpostTypeObject: _postTypeObject,\n\t\t\t\tresource: _resource,\n\t\t\t\tcachedCanUserResolvers: getCachedResolvers()?.canUser,\n\t\t\t\tuserCanCreatePostType: canUser( 'create', _resource ),\n\t\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst trashPostActionForPostType = useTrashPostAction( resource );\n\tconst permanentlyDeletePostActionForPostType =\n\t\tusePermanentlyDeletePostAction( resource );\n\tconst renamePostActionForPostType = useRenamePostAction( resource );\n\tconst restorePostActionForPostType = useRestorePostAction( resource );\n\tconst isTemplateOrTemplatePart = [\n\t\tTEMPLATE_POST_TYPE,\n\t\tTEMPLATE_PART_POST_TYPE,\n\t].includes( postType );\n\tconst isPattern = postType === PATTERN_POST_TYPE;\n\tconst isLoaded = !! postTypeObject;\n\tconst supportsRevisions = !! postTypeObject?.supports?.revisions;\n\tconst supportsTitle = !! postTypeObject?.supports?.title;\n\treturn useMemo( () => {\n\t\tif ( ! isLoaded ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet actions = [\n\t\t\tpostTypeObject?.viewable && viewPostAction,\n\t\t\tsupportsRevisions && postRevisionsAction,\n\t\t\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t\t\t? ! isTemplateOrTemplatePart &&\n\t\t\t\t ! isPattern &&\n\t\t\t\t duplicatePostAction\n\t\t\t\t: false,\n\t\t\tisTemplateOrTemplatePart &&\n\t\t\t\tuserCanCreatePostType &&\n\t\t\t\tisBlockBasedTheme &&\n\t\t\t\tduplicateTemplatePartAction,\n\t\t\tisPattern && userCanCreatePostType && duplicatePatternAction,\n\t\t\tsupportsTitle && renamePostActionForPostType,\n\t\t\tisPattern && exportPatternAsJSONAction,\n\t\t\tisTemplateOrTemplatePart\n\t\t\t\t? resetTemplateAction\n\t\t\t\t: restorePostActionForPostType,\n\t\t\tisTemplateOrTemplatePart || isPattern\n\t\t\t\t? deletePostAction\n\t\t\t\t: trashPostActionForPostType,\n\t\t\t! isTemplateOrTemplatePart &&\n\t\t\t\tpermanentlyDeletePostActionForPostType,\n\t\t].filter( Boolean );\n\t\t// Filter actions based on provided context. If not provided\n\t\t// all actions are returned. We'll have a single entry for getting the actions\n\t\t// and the consumer should provide the context to filter the actions, if needed.\n\t\t// Actions should also provide the `context` they support, if it's specific, to\n\t\t// compare with the provided context to get all the actions.\n\t\t// Right now the only supported context is `list`.\n\t\tactions = actions.filter( ( action ) => {\n\t\t\tif ( ! action.context ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn action.context === context;\n\t\t} );\n\n\t\tif ( onActionPerformed ) {\n\t\t\tfor ( let i = 0; i < actions.length; ++i ) {\n\t\t\t\tif ( actions[ i ].callback ) {\n\t\t\t\t\tconst existingCallback = actions[ i ].callback;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tcallback: ( items, _onActionPerformed ) => {\n\t\t\t\t\t\t\texistingCallback( items, ( _items ) => {\n\t\t\t\t\t\t\t\tif ( _onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t_onActionPerformed( _items );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonActionPerformed( actions[ i ].id, _items );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif ( actions[ i ].RenderModal ) {\n\t\t\t\t\tconst ExistingRenderModal = actions[ i ].RenderModal;\n\t\t\t\t\tactions[ i ] = {\n\t\t\t\t\t\t...actions[ i ],\n\t\t\t\t\t\tRenderModal: ( props ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ExistingRenderModal\n\t\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\t\tonActionPerformed={ ( _items ) => {\n\t\t\t\t\t\t\t\t\t\tif ( props.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t\t_items\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/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t\t// We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render\n\t\t// when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tpermanentlyDeletePostActionForPostType,\n\t\trestorePostActionForPostType,\n\t\trenamePostActionForPostType,\n\t\ttrashPostActionForPostType,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t\tsupportsRevisions,\n\t\tsupportsTitle,\n\t\tcontext,\n\t\tuserCanCreatePostType,\n\t\tcachedCanUserResolvers,\n\t] );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -73,7 +73,7 @@ export const getPostIcon = createRegistrySelector(select => (state, postType, op
73
73
  // `icon` is the `menu_icon` property of a post type. We
74
74
  // only handle `dashicons` for now, even if the `menu_icon`
75
75
  // also supports urls and svg as values.
76
- if (postTypeEntity?.icon?.startsWith('dashicons-')) {
76
+ if (typeof postTypeEntity?.icon === 'string' && postTypeEntity.icon.startsWith('dashicons-')) {
77
77
  return postTypeEntity.icon.slice(10);
78
78
  }
79
79
  return pageIcon;
@@ -1 +1 @@
1
- {"version":3,"names":["fastDeepEqual","store","blockEditorStore","createSelector","createRegistrySelector","layout","symbol","navigation","page","pageIcon","verse","coreStore","getRenderingMode","getCurrentPost","__experimentalGetDefaultTemplatePartAreas","TEMPLATE_PART_POST_TYPE","getFilteredTemplatePartBlocks","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","filterValue","getInsertionPoint","select","state","blockInserterPanel","postContentClientId","getBlocksByName","getListViewToggleRef","listViewToggleRef","getInserterSidebarToggleRef","inserterSidebarToggleRef","CARD_ICONS","wp_block","wp_navigation","post","getPostIcon","postType","options","find","item","area","icon","postTypeEntity","getPostType","startsWith","slice","getCurrentTemplateTemplateParts","templateParts","getEntityRecords","per_page","clientIds","blocks","getBlocksByClientId","hasPostMetaChanges","postId","type","currentPostType","id","currentPostId","edits","getEntityRecordNonTransientEdits","meta","originalPostMeta","getEntityRecord","footnotes"],"sources":["@wordpress/editor/src/store/private-selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport {\n\tlayout,\n\tsymbol,\n\tnavigation,\n\tpage as pageIcon,\n\tverse,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetRenderingMode,\n\tgetCurrentPost,\n\t__experimentalGetDefaultTemplatePartAreas,\n} from './selectors';\nimport { TEMPLATE_PART_POST_TYPE } from './constants';\nimport { getFilteredTemplatePartBlocks } from './utils/get-filtered-template-parts';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n\tfilterValue: undefined,\n};\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport const getInsertionPoint = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state ) => {\n\t\t\tif ( typeof state.blockInserterPanel === 'object' ) {\n\t\t\t\treturn state.blockInserterPanel;\n\t\t\t}\n\n\t\t\tif ( getRenderingMode( state ) === 'template-locked' ) {\n\t\t\t\tconst [ postContentClientId ] =\n\t\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t\t'core/post-content'\n\t\t\t\t\t);\n\t\t\t\tif ( postContentClientId ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\trootClientId: postContentClientId,\n\t\t\t\t\t\tinsertionIndex: undefined,\n\t\t\t\t\t\tfilterValue: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn EMPTY_INSERTION_POINT;\n\t\t},\n\t\t( state ) => {\n\t\t\tconst [ postContentClientId ] =\n\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t'core/post-content'\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tstate.blockInserterPanel,\n\t\t\t\tgetRenderingMode( state ),\n\t\t\t\tpostContentClientId,\n\t\t\t];\n\t\t}\n\t)\n);\n\nexport function getListViewToggleRef( state ) {\n\treturn state.listViewToggleRef;\n}\nexport function getInserterSidebarToggleRef( state ) {\n\treturn state.inserterSidebarToggleRef;\n}\nconst CARD_ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigation,\n\tpage: pageIcon,\n\tpost: verse,\n};\n\nexport const getPostIcon = createRegistrySelector(\n\t( select ) => ( state, postType, options ) => {\n\t\t{\n\t\t\tif (\n\t\t\t\tpostType === 'wp_template_part' ||\n\t\t\t\tpostType === 'wp_template'\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\t__experimentalGetDefaultTemplatePartAreas( state ).find(\n\t\t\t\t\t\t( item ) => options.area === item.area\n\t\t\t\t\t)?.icon || layout\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( CARD_ICONS[ postType ] ) {\n\t\t\t\treturn CARD_ICONS[ postType ];\n\t\t\t}\n\t\t\tconst postTypeEntity = select( coreStore ).getPostType( postType );\n\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t// also supports urls and svg as values.\n\t\t\tif ( postTypeEntity?.icon?.startsWith( 'dashicons-' ) ) {\n\t\t\t\treturn postTypeEntity.icon.slice( 10 );\n\t\t\t}\n\t\t\treturn pageIcon;\n\t\t}\n\t}\n);\n\n/**\n * Returns the template parts and their blocks for the current edited template.\n *\n * @param {Object} state Global application state.\n * @return {Array} Template parts and their blocks in an array.\n */\nexport const getCurrentTemplateTemplateParts = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst templateParts = select( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 }\n\t\t);\n\n\t\tconst clientIds =\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'core/template-part' );\n\t\tconst blocks =\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds );\n\n\t\treturn getFilteredTemplatePartBlocks( blocks, templateParts );\n\t}\n);\n\n/**\n * Returns true if there are unsaved changes to the\n * post's meta fields, and false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} postType The post type of the post.\n * @param {number} postId The ID of the post.\n *\n * @return {boolean} Whether there are edits or not in the meta fields of the relevant post.\n */\nexport const hasPostMetaChanges = createRegistrySelector(\n\t( select ) => ( state, postType, postId ) => {\n\t\tconst { type: currentPostType, id: currentPostId } =\n\t\t\tgetCurrentPost( state );\n\t\t// If no postType or postId is passed, use the current post.\n\t\tconst edits = select( coreStore ).getEntityRecordNonTransientEdits(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t);\n\n\t\tif ( ! edits?.meta ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Compare if anything apart from `footnotes` has changed.\n\t\tconst originalPostMeta = select( coreStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t)?.meta;\n\n\t\treturn ! fastDeepEqual(\n\t\t\t{ ...originalPostMeta, footnotes: undefined },\n\t\t\t{ ...edits.meta, footnotes: undefined }\n\t\t);\n\t}\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fastDeepEqual","store","blockEditorStore","createSelector","createRegistrySelector","layout","symbol","navigation","page","pageIcon","verse","coreStore","getRenderingMode","getCurrentPost","__experimentalGetDefaultTemplatePartAreas","TEMPLATE_PART_POST_TYPE","getFilteredTemplatePartBlocks","EMPTY_INSERTION_POINT","rootClientId","undefined","insertionIndex","filterValue","getInsertionPoint","select","state","blockInserterPanel","postContentClientId","getBlocksByName","getListViewToggleRef","listViewToggleRef","getInserterSidebarToggleRef","inserterSidebarToggleRef","CARD_ICONS","wp_block","wp_navigation","post","getPostIcon","postType","options","find","item","area","icon","postTypeEntity","getPostType","startsWith","slice","getCurrentTemplateTemplateParts","templateParts","getEntityRecords","per_page","clientIds","blocks","getBlocksByClientId","hasPostMetaChanges","postId","type","currentPostType","id","currentPostId","edits","getEntityRecordNonTransientEdits","meta","originalPostMeta","getEntityRecord","footnotes"],"sources":["@wordpress/editor/src/store/private-selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createSelector, createRegistrySelector } from '@wordpress/data';\nimport {\n\tlayout,\n\tsymbol,\n\tnavigation,\n\tpage as pageIcon,\n\tverse,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetRenderingMode,\n\tgetCurrentPost,\n\t__experimentalGetDefaultTemplatePartAreas,\n} from './selectors';\nimport { TEMPLATE_PART_POST_TYPE } from './constants';\nimport { getFilteredTemplatePartBlocks } from './utils/get-filtered-template-parts';\n\nconst EMPTY_INSERTION_POINT = {\n\trootClientId: undefined,\n\tinsertionIndex: undefined,\n\tfilterValue: undefined,\n};\n\n/**\n * Get the insertion point for the inserter.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport const getInsertionPoint = createRegistrySelector( ( select ) =>\n\tcreateSelector(\n\t\t( state ) => {\n\t\t\tif ( typeof state.blockInserterPanel === 'object' ) {\n\t\t\t\treturn state.blockInserterPanel;\n\t\t\t}\n\n\t\t\tif ( getRenderingMode( state ) === 'template-locked' ) {\n\t\t\t\tconst [ postContentClientId ] =\n\t\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t\t'core/post-content'\n\t\t\t\t\t);\n\t\t\t\tif ( postContentClientId ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\trootClientId: postContentClientId,\n\t\t\t\t\t\tinsertionIndex: undefined,\n\t\t\t\t\t\tfilterValue: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn EMPTY_INSERTION_POINT;\n\t\t},\n\t\t( state ) => {\n\t\t\tconst [ postContentClientId ] =\n\t\t\t\tselect( blockEditorStore ).getBlocksByName(\n\t\t\t\t\t'core/post-content'\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tstate.blockInserterPanel,\n\t\t\t\tgetRenderingMode( state ),\n\t\t\t\tpostContentClientId,\n\t\t\t];\n\t\t}\n\t)\n);\n\nexport function getListViewToggleRef( state ) {\n\treturn state.listViewToggleRef;\n}\nexport function getInserterSidebarToggleRef( state ) {\n\treturn state.inserterSidebarToggleRef;\n}\nconst CARD_ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigation,\n\tpage: pageIcon,\n\tpost: verse,\n};\n\nexport const getPostIcon = createRegistrySelector(\n\t( select ) => ( state, postType, options ) => {\n\t\t{\n\t\t\tif (\n\t\t\t\tpostType === 'wp_template_part' ||\n\t\t\t\tpostType === 'wp_template'\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\t__experimentalGetDefaultTemplatePartAreas( state ).find(\n\t\t\t\t\t\t( item ) => options.area === item.area\n\t\t\t\t\t)?.icon || layout\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( CARD_ICONS[ postType ] ) {\n\t\t\t\treturn CARD_ICONS[ postType ];\n\t\t\t}\n\t\t\tconst postTypeEntity = select( coreStore ).getPostType( postType );\n\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t// also supports urls and svg as values.\n\t\t\tif (\n\t\t\t\ttypeof postTypeEntity?.icon === 'string' &&\n\t\t\t\tpostTypeEntity.icon.startsWith( 'dashicons-' )\n\t\t\t) {\n\t\t\t\treturn postTypeEntity.icon.slice( 10 );\n\t\t\t}\n\t\t\treturn pageIcon;\n\t\t}\n\t}\n);\n\n/**\n * Returns the template parts and their blocks for the current edited template.\n *\n * @param {Object} state Global application state.\n * @return {Array} Template parts and their blocks in an array.\n */\nexport const getCurrentTemplateTemplateParts = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst templateParts = select( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 }\n\t\t);\n\n\t\tconst clientIds =\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'core/template-part' );\n\t\tconst blocks =\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds );\n\n\t\treturn getFilteredTemplatePartBlocks( blocks, templateParts );\n\t}\n);\n\n/**\n * Returns true if there are unsaved changes to the\n * post's meta fields, and false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} postType The post type of the post.\n * @param {number} postId The ID of the post.\n *\n * @return {boolean} Whether there are edits or not in the meta fields of the relevant post.\n */\nexport const hasPostMetaChanges = createRegistrySelector(\n\t( select ) => ( state, postType, postId ) => {\n\t\tconst { type: currentPostType, id: currentPostId } =\n\t\t\tgetCurrentPost( state );\n\t\t// If no postType or postId is passed, use the current post.\n\t\tconst edits = select( coreStore ).getEntityRecordNonTransientEdits(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t);\n\n\t\tif ( ! edits?.meta ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Compare if anything apart from `footnotes` has changed.\n\t\tconst originalPostMeta = select( coreStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType || currentPostType,\n\t\t\tpostId || currentPostId\n\t\t)?.meta;\n\n\t\treturn ! fastDeepEqual(\n\t\t\t{ ...originalPostMeta, footnotes: undefined },\n\t\t\t{ ...edits.meta, footnotes: undefined }\n\t\t);\n\t}\n);\n"],"mappings":"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","ignoreList":[]}
@@ -967,6 +967,14 @@ body.is-fullscreen-mode .interface-interface-skeleton {
967
967
  height: 61px;
968
968
  }
969
969
 
970
+ .editor-editor-interface .interface-interface-skeleton__content {
971
+ isolation: isolate;
972
+ }
973
+
974
+ .editor-visual-editor {
975
+ flex: 1 0 auto;
976
+ }
977
+
970
978
  .components-editor-notices__dismissible,
971
979
  .components-editor-notices__pinned {
972
980
  position: relative;
@@ -2656,10 +2664,8 @@ h3.components-heading.editor-template-areas__title {
2656
2664
 
2657
2665
  .editor-visual-editor {
2658
2666
  position: relative;
2659
- height: 100%;
2660
2667
  display: block;
2661
2668
  background-color: #ddd;
2662
- isolation: isolate;
2663
2669
  align-items: center;
2664
2670
  }
2665
2671
  .editor-visual-editor.is-resizable {
@@ -967,6 +967,14 @@ body.is-fullscreen-mode .interface-interface-skeleton {
967
967
  height: 61px;
968
968
  }
969
969
 
970
+ .editor-editor-interface .interface-interface-skeleton__content {
971
+ isolation: isolate;
972
+ }
973
+
974
+ .editor-visual-editor {
975
+ flex: 1 0 auto;
976
+ }
977
+
970
978
  .components-editor-notices__dismissible,
971
979
  .components-editor-notices__pinned {
972
980
  position: relative;
@@ -2660,10 +2668,8 @@ h3.components-heading.editor-template-areas__title {
2660
2668
 
2661
2669
  .editor-visual-editor {
2662
2670
  position: relative;
2663
- height: 100%;
2664
2671
  display: block;
2665
2672
  background-color: #ddd;
2666
- isolation: isolate;
2667
2673
  align-items: center;
2668
2674
  }
2669
2675
  .editor-visual-editor.is-resizable {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/editor",
3
- "version": "14.0.6",
3
+ "version": "14.0.8",
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.5",
38
+ "@wordpress/block-editor": "^13.0.7",
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.5",
43
+ "@wordpress/core-data": "^7.0.7",
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.5",
58
+ "@wordpress/patterns": "^2.0.7",
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.5",
62
+ "@wordpress/reusable-blocks": "^5.0.7",
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": "0b9a9459519b0e1a023109bab307ed1448405480"
86
+ "gitHead": "a74a70ed203bbcbb5f3d34335df9631178647acb"
87
87
  }
@@ -1,3 +1,12 @@
1
1
  .editor-editor-interface .entities-saved-states__panel-header {
2
2
  height: $header-height + $border-width;
3
3
  }
4
+
5
+ .editor-editor-interface .interface-interface-skeleton__content {
6
+ // Make this a stacking context to contain the z-index of children elements.
7
+ isolation: isolate;
8
+ }
9
+
10
+ .editor-visual-editor {
11
+ flex: 1 0 auto;
12
+ }
@@ -1055,10 +1055,15 @@ export function usePostActions( { postType, onActionPerformed, context } ) {
1055
1055
  resource,
1056
1056
  cachedCanUserResolvers,
1057
1057
  userCanCreatePostType,
1058
+ isBlockBasedTheme,
1058
1059
  } = useSelect(
1059
1060
  ( select ) => {
1060
- const { getPostType, getCachedResolvers, canUser } =
1061
- select( coreStore );
1061
+ const {
1062
+ getPostType,
1063
+ getCachedResolvers,
1064
+ canUser,
1065
+ getCurrentTheme,
1066
+ } = select( coreStore );
1062
1067
  const _postTypeObject = getPostType( postType );
1063
1068
  const _resource = _postTypeObject?.rest_base || '';
1064
1069
  return {
@@ -1066,6 +1071,7 @@ export function usePostActions( { postType, onActionPerformed, context } ) {
1066
1071
  resource: _resource,
1067
1072
  cachedCanUserResolvers: getCachedResolvers()?.canUser,
1068
1073
  userCanCreatePostType: canUser( 'create', _resource ),
1074
+ isBlockBasedTheme: getCurrentTheme()?.is_block_theme,
1069
1075
  };
1070
1076
  },
1071
1077
  [ postType ]
@@ -1099,6 +1105,7 @@ export function usePostActions( { postType, onActionPerformed, context } ) {
1099
1105
  : false,
1100
1106
  isTemplateOrTemplatePart &&
1101
1107
  userCanCreatePostType &&
1108
+ isBlockBasedTheme &&
1102
1109
  duplicateTemplatePartAction,
1103
1110
  isPattern && userCanCreatePostType && duplicatePatternAction,
1104
1111
  supportsTitle && renamePostActionForPostType,
@@ -1,10 +1,7 @@
1
1
  .editor-visual-editor {
2
2
  position: relative;
3
- height: 100%;
4
3
  display: block;
5
4
  background-color: $gray-300;
6
- // Make this a stacking context to contain the z-index of children elements.
7
- isolation: isolate;
8
5
 
9
6
  // Centralize the editor horizontally (flex-direction is column).
10
7
  align-items: center;
@@ -111,7 +111,10 @@ export const getPostIcon = createRegistrySelector(
111
111
  // `icon` is the `menu_icon` property of a post type. We
112
112
  // only handle `dashicons` for now, even if the `menu_icon`
113
113
  // also supports urls and svg as values.
114
- if ( postTypeEntity?.icon?.startsWith( 'dashicons-' ) ) {
114
+ if (
115
+ typeof postTypeEntity?.icon === 'string' &&
116
+ postTypeEntity.icon.startsWith( 'dashicons-' )
117
+ ) {
115
118
  return postTypeEntity.icon.slice( 10 );
116
119
  }
117
120
  return pageIcon;