@wordpress/editor 14.0.4 → 14.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/build/bindings/post-meta.js +4 -0
  2. package/build/bindings/post-meta.js.map +1 -1
  3. package/build/components/page-attributes/parent.js +2 -1
  4. package/build/components/page-attributes/parent.js.map +1 -1
  5. package/build/components/post-actions/actions.js +13 -35
  6. package/build/components/post-actions/actions.js.map +1 -1
  7. package/build/components/post-actions/export-pattern-action.js +2 -2
  8. package/build/components/post-actions/export-pattern-action.js.map +1 -1
  9. package/build/components/post-publish-button/index.js +4 -11
  10. package/build/components/post-publish-button/index.js.map +1 -1
  11. package/build/components/post-saved-state/index.js +11 -1
  12. package/build/components/post-saved-state/index.js.map +1 -1
  13. package/build/components/post-status/index.js +2 -1
  14. package/build/components/post-status/index.js.map +1 -1
  15. package/build/components/save-publish-panels/index.js +1 -2
  16. package/build/components/save-publish-panels/index.js.map +1 -1
  17. package/build/store/utils/is-template-revertable.js +6 -8
  18. package/build/store/utils/is-template-revertable.js.map +1 -1
  19. package/build-module/bindings/post-meta.js +4 -0
  20. package/build-module/bindings/post-meta.js.map +1 -1
  21. package/build-module/components/page-attributes/parent.js +2 -1
  22. package/build-module/components/page-attributes/parent.js.map +1 -1
  23. package/build-module/components/post-actions/actions.js +13 -35
  24. package/build-module/components/post-actions/actions.js.map +1 -1
  25. package/build-module/components/post-actions/export-pattern-action.js +2 -2
  26. package/build-module/components/post-actions/export-pattern-action.js.map +1 -1
  27. package/build-module/components/post-publish-button/index.js +4 -11
  28. package/build-module/components/post-publish-button/index.js.map +1 -1
  29. package/build-module/components/post-saved-state/index.js +11 -1
  30. package/build-module/components/post-saved-state/index.js.map +1 -1
  31. package/build-module/components/post-status/index.js +1 -1
  32. package/build-module/components/post-status/index.js.map +1 -1
  33. package/build-module/components/save-publish-panels/index.js +1 -2
  34. package/build-module/components/save-publish-panels/index.js.map +1 -1
  35. package/build-module/store/utils/is-template-revertable.js +6 -8
  36. package/build-module/store/utils/is-template-revertable.js.map +1 -1
  37. package/build-style/style-rtl.css +1 -0
  38. package/build-style/style.css +1 -0
  39. package/package.json +6 -6
  40. package/src/bindings/post-meta.js +5 -0
  41. package/src/components/page-attributes/parent.js +6 -3
  42. package/src/components/post-actions/actions.js +28 -57
  43. package/src/components/post-actions/export-pattern-action.js +4 -2
  44. package/src/components/post-panel-row/style.scss +1 -0
  45. package/src/components/post-publish-button/index.js +4 -17
  46. package/src/components/post-saved-state/index.js +11 -1
  47. package/src/components/post-status/index.js +1 -1
  48. package/src/components/save-publish-panels/index.js +1 -4
  49. package/src/store/utils/is-template-revertable.js +8 -8
@@ -45,6 +45,10 @@ var _default = exports.default = {
45
45
  context,
46
46
  args
47
47
  }) {
48
+ // Lock editing in query loop.
49
+ if (context?.query || context?.queryId) {
50
+ return false;
51
+ }
48
52
  const postType = context?.postType || select(_store.store).getCurrentPostType();
49
53
 
50
54
  // Check that editing is happening in the post editor and not a template.
@@ -1 +1 @@
1
- {"version":3,"names":["_coreData","require","_i18n","_store","_default","exports","default","name","label","_x","getPlaceholder","args","key","getValue","registry","context","select","coreDataStore","getEditedEntityRecord","postType","postId","meta","setValue","value","dispatch","editEntityRecord","canUserEditValue","editorStore","getCurrentPostType","isFieldExposed","getEntityRecord","canUserEdit","canUserEditEntityRecord"],"sources":["@wordpress/editor/src/bindings/post-meta.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../store';\n\nexport default {\n\tname: 'core/post-meta',\n\tlabel: _x( 'Post Meta', 'block bindings source' ),\n\tgetPlaceholder( { args } ) {\n\t\treturn args.key;\n\t},\n\tgetValue( { registry, context, args } ) {\n\t\treturn registry\n\t\t\t.select( coreDataStore )\n\t\t\t.getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tcontext?.postType,\n\t\t\t\tcontext?.postId\n\t\t\t).meta?.[ args.key ];\n\t},\n\tsetValue( { registry, context, args, value } ) {\n\t\tregistry\n\t\t\t.dispatch( coreDataStore )\n\t\t\t.editEntityRecord( 'postType', context?.postType, context?.postId, {\n\t\t\t\tmeta: {\n\t\t\t\t\t[ args.key ]: value,\n\t\t\t\t},\n\t\t\t} );\n\t},\n\tcanUserEditValue( { select, context, args } ) {\n\t\tconst postType =\n\t\t\tcontext?.postType || select( editorStore ).getCurrentPostType();\n\n\t\t// Check that editing is happening in the post editor and not a template.\n\t\tif ( postType === 'wp_template' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check that the custom field is not protected and available in the REST API.\n\t\tconst isFieldExposed = !! select( coreDataStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tcontext?.postId\n\t\t)?.meta?.[ args.key ];\n\n\t\tif ( ! isFieldExposed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check that the user has the capability to edit post meta.\n\t\tconst canUserEdit = select( coreDataStore ).canUserEditEntityRecord(\n\t\t\t'postType',\n\t\t\tcontext?.postType,\n\t\t\tcontext?.postId\n\t\t);\n\t\tif ( ! canUserEdit ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n};\n"],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;AAIA;AACA;AACA;AAFA,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAKe;EACdC,IAAI,EAAE,gBAAgB;EACtBC,KAAK,EAAE,IAAAC,QAAE,EAAE,WAAW,EAAE,uBAAwB,CAAC;EACjDC,cAAcA,CAAE;IAAEC;EAAK,CAAC,EAAG;IAC1B,OAAOA,IAAI,CAACC,GAAG;EAChB,CAAC;EACDC,QAAQA,CAAE;IAAEC,QAAQ;IAAEC,OAAO;IAAEJ;EAAK,CAAC,EAAG;IACvC,OAAOG,QAAQ,CACbE,MAAM,CAAEC,eAAc,CAAC,CACvBC,qBAAqB,CACrB,UAAU,EACVH,OAAO,EAAEI,QAAQ,EACjBJ,OAAO,EAAEK,MACV,CAAC,CAACC,IAAI,GAAIV,IAAI,CAACC,GAAG,CAAE;EACtB,CAAC;EACDU,QAAQA,CAAE;IAAER,QAAQ;IAAEC,OAAO;IAAEJ,IAAI;IAAEY;EAAM,CAAC,EAAG;IAC9CT,QAAQ,CACNU,QAAQ,CAAEP,eAAc,CAAC,CACzBQ,gBAAgB,CAAE,UAAU,EAAEV,OAAO,EAAEI,QAAQ,EAAEJ,OAAO,EAAEK,MAAM,EAAE;MAClEC,IAAI,EAAE;QACL,CAAEV,IAAI,CAACC,GAAG,GAAIW;MACf;IACD,CAAE,CAAC;EACL,CAAC;EACDG,gBAAgBA,CAAE;IAAEV,MAAM;IAAED,OAAO;IAAEJ;EAAK,CAAC,EAAG;IAC7C,MAAMQ,QAAQ,GACbJ,OAAO,EAAEI,QAAQ,IAAIH,MAAM,CAAEW,YAAY,CAAC,CAACC,kBAAkB,CAAC,CAAC;;IAEhE;IACA,IAAKT,QAAQ,KAAK,aAAa,EAAG;MACjC,OAAO,KAAK;IACb;;IAEA;IACA,MAAMU,cAAc,GAAG,CAAC,CAAEb,MAAM,CAAEC,eAAc,CAAC,CAACa,eAAe,CAChE,UAAU,EACVX,QAAQ,EACRJ,OAAO,EAAEK,MACV,CAAC,EAAEC,IAAI,GAAIV,IAAI,CAACC,GAAG,CAAE;IAErB,IAAK,CAAEiB,cAAc,EAAG;MACvB,OAAO,KAAK;IACb;;IAEA;IACA,MAAME,WAAW,GAAGf,MAAM,CAAEC,eAAc,CAAC,CAACe,uBAAuB,CAClE,UAAU,EACVjB,OAAO,EAAEI,QAAQ,EACjBJ,OAAO,EAAEK,MACV,CAAC;IACD,IAAK,CAAEW,WAAW,EAAG;MACpB,OAAO,KAAK;IACb;IAEA,OAAO,IAAI;EACZ;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_coreData","require","_i18n","_store","_default","exports","default","name","label","_x","getPlaceholder","args","key","getValue","registry","context","select","coreDataStore","getEditedEntityRecord","postType","postId","meta","setValue","value","dispatch","editEntityRecord","canUserEditValue","query","queryId","editorStore","getCurrentPostType","isFieldExposed","getEntityRecord","canUserEdit","canUserEditEntityRecord"],"sources":["@wordpress/editor/src/bindings/post-meta.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../store';\n\nexport default {\n\tname: 'core/post-meta',\n\tlabel: _x( 'Post Meta', 'block bindings source' ),\n\tgetPlaceholder( { args } ) {\n\t\treturn args.key;\n\t},\n\tgetValue( { registry, context, args } ) {\n\t\treturn registry\n\t\t\t.select( coreDataStore )\n\t\t\t.getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tcontext?.postType,\n\t\t\t\tcontext?.postId\n\t\t\t).meta?.[ args.key ];\n\t},\n\tsetValue( { registry, context, args, value } ) {\n\t\tregistry\n\t\t\t.dispatch( coreDataStore )\n\t\t\t.editEntityRecord( 'postType', context?.postType, context?.postId, {\n\t\t\t\tmeta: {\n\t\t\t\t\t[ args.key ]: value,\n\t\t\t\t},\n\t\t\t} );\n\t},\n\tcanUserEditValue( { select, context, args } ) {\n\t\t// Lock editing in query loop.\n\t\tif ( context?.query || context?.queryId ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst postType =\n\t\t\tcontext?.postType || select( editorStore ).getCurrentPostType();\n\n\t\t// Check that editing is happening in the post editor and not a template.\n\t\tif ( postType === 'wp_template' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check that the custom field is not protected and available in the REST API.\n\t\tconst isFieldExposed = !! select( coreDataStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tcontext?.postId\n\t\t)?.meta?.[ args.key ];\n\n\t\tif ( ! isFieldExposed ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check that the user has the capability to edit post meta.\n\t\tconst canUserEdit = select( coreDataStore ).canUserEditEntityRecord(\n\t\t\t'postType',\n\t\t\tcontext?.postType,\n\t\t\tcontext?.postId\n\t\t);\n\t\tif ( ! canUserEdit ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n};\n"],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;AAIA;AACA;AACA;AAFA,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAKe;EACdC,IAAI,EAAE,gBAAgB;EACtBC,KAAK,EAAE,IAAAC,QAAE,EAAE,WAAW,EAAE,uBAAwB,CAAC;EACjDC,cAAcA,CAAE;IAAEC;EAAK,CAAC,EAAG;IAC1B,OAAOA,IAAI,CAACC,GAAG;EAChB,CAAC;EACDC,QAAQA,CAAE;IAAEC,QAAQ;IAAEC,OAAO;IAAEJ;EAAK,CAAC,EAAG;IACvC,OAAOG,QAAQ,CACbE,MAAM,CAAEC,eAAc,CAAC,CACvBC,qBAAqB,CACrB,UAAU,EACVH,OAAO,EAAEI,QAAQ,EACjBJ,OAAO,EAAEK,MACV,CAAC,CAACC,IAAI,GAAIV,IAAI,CAACC,GAAG,CAAE;EACtB,CAAC;EACDU,QAAQA,CAAE;IAAER,QAAQ;IAAEC,OAAO;IAAEJ,IAAI;IAAEY;EAAM,CAAC,EAAG;IAC9CT,QAAQ,CACNU,QAAQ,CAAEP,eAAc,CAAC,CACzBQ,gBAAgB,CAAE,UAAU,EAAEV,OAAO,EAAEI,QAAQ,EAAEJ,OAAO,EAAEK,MAAM,EAAE;MAClEC,IAAI,EAAE;QACL,CAAEV,IAAI,CAACC,GAAG,GAAIW;MACf;IACD,CAAE,CAAC;EACL,CAAC;EACDG,gBAAgBA,CAAE;IAAEV,MAAM;IAAED,OAAO;IAAEJ;EAAK,CAAC,EAAG;IAC7C;IACA,IAAKI,OAAO,EAAEY,KAAK,IAAIZ,OAAO,EAAEa,OAAO,EAAG;MACzC,OAAO,KAAK;IACb;IAEA,MAAMT,QAAQ,GACbJ,OAAO,EAAEI,QAAQ,IAAIH,MAAM,CAAEa,YAAY,CAAC,CAACC,kBAAkB,CAAC,CAAC;;IAEhE;IACA,IAAKX,QAAQ,KAAK,aAAa,EAAG;MACjC,OAAO,KAAK;IACb;;IAEA;IACA,MAAMY,cAAc,GAAG,CAAC,CAAEf,MAAM,CAAEC,eAAc,CAAC,CAACe,eAAe,CAChE,UAAU,EACVb,QAAQ,EACRJ,OAAO,EAAEK,MACV,CAAC,EAAEC,IAAI,GAAIV,IAAI,CAACC,GAAG,CAAE;IAErB,IAAK,CAAEmB,cAAc,EAAG;MACvB,OAAO,KAAK;IACb;;IAEA;IACA,MAAME,WAAW,GAAGjB,MAAM,CAAEC,eAAc,CAAC,CAACiB,uBAAuB,CAClE,UAAU,EACVnB,OAAO,EAAEI,QAAQ,EACjBJ,OAAO,EAAEK,MACV,CAAC;IACD,IAAK,CAAEa,WAAW,EAAG;MACpB,OAAO,KAAK;IACb;IAEA,OAAO,IAAI;EACZ;AACD,CAAC","ignoreList":[]}
@@ -242,7 +242,8 @@ function ParentRow() {
242
242
  title: (0, _i18n.__)('Parent'),
243
243
  onClose: onClose
244
244
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
245
- children: [(0, _i18n.__)("Child pages inherit characteristics from their parent, such as URL structure. For instance, if 'Web Design' is a child of 'Services,' its URL would be mysite.com/services/web-design."), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
245
+ children: [/* translators: The domain name should be a reserved domain name to prevent linking to third party sites outside the WordPress project's control. You may also wish to use wordpress.org or a wordpress.org sub-domain. */
246
+ (0, _i18n.__)("Child pages inherit characteristics from their parent, such as URL structure. For instance, if 'Web Design' is a child of 'Services', its URL would be example.org/services/web-design."), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
246
247
  children: [(0, _i18n.__)('They also show up as sub-items in the default navigation menu. '), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ExternalLink, {
247
248
  href: (0, _i18n.__)('https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'),
248
249
  children: (0, _i18n.__)('Learn more')
@@ -1 +1 @@
1
- {"version":3,"names":["_removeAccents","_interopRequireDefault","require","_i18n","_components","_compose","_element","_data","_htmlEntities","_coreData","_blockEditor","_postPanelRow","_terms","_store","_jsxRuntime","getTitle","post","title","rendered","decodeEntities","id","__","getItemPriority","name","searchValue","normalizedName","removeAccents","toLowerCase","normalizedSearch","startsWith","length","Infinity","exports","PageAttributesParent","editPost","useDispatch","editorStore","fieldValue","setFieldValue","useState","isHierarchical","parentPostId","parentPostTitle","pageItems","useSelect","select","_pType$hierarchical","getPostType","getEntityRecords","getEntityRecord","coreStore","getCurrentPostId","getEditedPostAttribute","postTypeSlug","pageId","pType","postId","postIsHierarchical","hierarchical","query","per_page","exclude","parent_exclude","orderby","order","_fields","search","parentPost","parentOptions","useMemo","getOptionsFromTree","tree","level","mappedNodes","map","treeNode","value","label","repeat","rawName","children","sortedNodes","sort","a","b","priorityA","priorityB","flat","item","parent","buildTermsTree","opts","optsHasParent","find","unshift","handleKeydown","inputValue","handleChange","selectedPostId","jsx","ComboboxControl","__nextHasNoMarginBottom","__next40pxDefaultSize","className","help","options","onFilterValueChange","debounce","onChange","hideLabelFromVision","PostParentToggle","isOpen","onClick","parentTitle","Button","size","variant","sprintf","ParentRow","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","default","ref","Dropdown","contentClassName","focusOnMount","renderToggle","onToggle","renderContent","onClose","jsxs","__experimentalInspectorPopoverHeader","ExternalLink","href","_default"],"sources":["@wordpress/editor/src/components/page-attributes/parent.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdown,\n\tComboboxControl,\n\tExternalLink,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PostPanelRow from '../post-panel-row';\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\nfunction getTitle( post ) {\n\treturn post?.title?.rendered\n\t\t? decodeEntities( post.title.rendered )\n\t\t: `#${ post.id } (${ __( 'no title' ) })`;\n}\n\nexport const getItemPriority = ( name, searchValue ) => {\n\tconst normalizedName = removeAccents( name || '' ).toLowerCase();\n\tconst normalizedSearch = removeAccents( searchValue || '' ).toLowerCase();\n\tif ( normalizedName === normalizedSearch ) {\n\t\treturn 0;\n\t}\n\n\tif ( normalizedName.startsWith( normalizedSearch ) ) {\n\t\treturn normalizedName.length;\n\t}\n\n\treturn Infinity;\n};\n\n/**\n * Renders the Page Attributes Parent component. A dropdown menu in an editor interface\n * for selecting the parent page of a given page.\n *\n * @return {Component|null} The component to be rendered. Return null if post type is not hierarchical.\n */\nexport function PageAttributesParent() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ fieldValue, setFieldValue ] = useState( false );\n\tconst { isHierarchical, parentPostId, parentPostTitle, pageItems } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getPostType, getEntityRecords, getEntityRecord } =\n\t\t\t\t\tselect( coreStore );\n\t\t\t\tconst { getCurrentPostId, getEditedPostAttribute } =\n\t\t\t\t\tselect( editorStore );\n\t\t\t\tconst postTypeSlug = getEditedPostAttribute( 'type' );\n\t\t\t\tconst pageId = getEditedPostAttribute( 'parent' );\n\t\t\t\tconst pType = getPostType( postTypeSlug );\n\t\t\t\tconst postId = getCurrentPostId();\n\t\t\t\tconst postIsHierarchical = pType?.hierarchical ?? false;\n\t\t\t\tconst query = {\n\t\t\t\t\tper_page: 100,\n\t\t\t\t\texclude: postId,\n\t\t\t\t\tparent_exclude: postId,\n\t\t\t\t\torderby: 'menu_order',\n\t\t\t\t\torder: 'asc',\n\t\t\t\t\t_fields: 'id,title,parent',\n\t\t\t\t};\n\n\t\t\t\t// Perform a search when the field is changed.\n\t\t\t\tif ( !! fieldValue ) {\n\t\t\t\t\tquery.search = fieldValue;\n\t\t\t\t}\n\n\t\t\t\tconst parentPost = pageId\n\t\t\t\t\t? getEntityRecord( 'postType', postTypeSlug, pageId )\n\t\t\t\t\t: null;\n\n\t\t\t\treturn {\n\t\t\t\t\tisHierarchical: postIsHierarchical,\n\t\t\t\t\tparentPostId: pageId,\n\t\t\t\t\tparentPostTitle: parentPost ? getTitle( parentPost ) : '',\n\t\t\t\t\tpageItems: postIsHierarchical\n\t\t\t\t\t\t? getEntityRecords( 'postType', postTypeSlug, query )\n\t\t\t\t\t\t: null,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ fieldValue ]\n\t\t);\n\n\tconst parentOptions = useMemo( () => {\n\t\tconst getOptionsFromTree = ( tree, level = 0 ) => {\n\t\t\tconst mappedNodes = tree.map( ( treeNode ) => [\n\t\t\t\t{\n\t\t\t\t\tvalue: treeNode.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'— '.repeat( level ) + decodeEntities( treeNode.name ),\n\t\t\t\t\trawName: treeNode.name,\n\t\t\t\t},\n\t\t\t\t...getOptionsFromTree( treeNode.children || [], level + 1 ),\n\t\t\t] );\n\n\t\t\tconst sortedNodes = mappedNodes.sort( ( [ a ], [ b ] ) => {\n\t\t\t\tconst priorityA = getItemPriority( a.rawName, fieldValue );\n\t\t\t\tconst priorityB = getItemPriority( b.rawName, fieldValue );\n\t\t\t\treturn priorityA >= priorityB ? 1 : -1;\n\t\t\t} );\n\n\t\t\treturn sortedNodes.flat();\n\t\t};\n\n\t\tif ( ! pageItems ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet tree = pageItems.map( ( item ) => ( {\n\t\t\tid: item.id,\n\t\t\tparent: item.parent,\n\t\t\tname: getTitle( item ),\n\t\t} ) );\n\n\t\t// Only build a hierarchical tree when not searching.\n\t\tif ( ! fieldValue ) {\n\t\t\ttree = buildTermsTree( tree );\n\t\t}\n\n\t\tconst opts = getOptionsFromTree( tree );\n\n\t\t// Ensure the current parent is in the options list.\n\t\tconst optsHasParent = opts.find(\n\t\t\t( item ) => item.value === parentPostId\n\t\t);\n\t\tif ( parentPostTitle && ! optsHasParent ) {\n\t\t\topts.unshift( {\n\t\t\t\tvalue: parentPostId,\n\t\t\t\tlabel: parentPostTitle,\n\t\t\t} );\n\t\t}\n\t\treturn opts;\n\t}, [ pageItems, fieldValue, parentPostTitle, parentPostId ] );\n\n\tif ( ! isHierarchical ) {\n\t\treturn null;\n\t}\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {Object} selectedPostId The selected Author.\n\t */\n\tconst handleChange = ( selectedPostId ) => {\n\t\teditPost( { parent: selectedPostId } );\n\t};\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\tlabel={ __( 'Parent' ) }\n\t\t\thelp={ __( 'Choose a parent page.' ) }\n\t\t\tvalue={ parentPostId }\n\t\t\toptions={ parentOptions }\n\t\t\tonFilterValueChange={ debounce( handleKeydown, 300 ) }\n\t\t\tonChange={ handleChange }\n\t\t\thideLabelFromVision\n\t\t/>\n\t);\n}\n\nfunction PostParentToggle( { isOpen, onClick } ) {\n\tconst parentPost = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst parentPostId = getEditedPostAttribute( 'parent' );\n\t\tif ( ! parentPostId ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst postTypeSlug = getEditedPostAttribute( 'type' );\n\t\treturn getEntityRecord( 'postType', postTypeSlug, parentPostId );\n\t}, [] );\n\tconst parentTitle = useMemo(\n\t\t() => ( ! parentPost ? __( 'None' ) : getTitle( parentPost ) ),\n\t\t[ parentPost ]\n\t);\n\treturn (\n\t\t<Button\n\t\t\tsize=\"compact\"\n\t\t\tclassName=\"editor-post-parent__panel-toggle\"\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\t// translators: %s: Current post parent.\n\t\t\taria-label={ sprintf( __( 'Change parent: %s' ), parentTitle ) }\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ parentTitle }\n\t\t</Button>\n\t);\n}\n\nexport function ParentRow() {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\treturn (\n\t\t<PostPanelRow label={ __( 'Parent' ) } ref={ setPopoverAnchor }>\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tclassName=\"editor-post-parent__panel-dropdown\"\n\t\t\t\tcontentClassName=\"editor-post-parent__panel-dialog\"\n\t\t\t\tfocusOnMount\n\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t<PostParentToggle isOpen={ isOpen } onClick={ onToggle } />\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t<div className=\"editor-post-parent\">\n\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\ttitle={ __( 'Parent' ) }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\"Child pages inherit characteristics from their parent, such as URL structure. For instance, if 'Web Design' is a child of 'Services,' its URL would be mysite.com/services/web-design.\"\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'They also show up as sub-items in the default navigation menu. '\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Learn more' ) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<PageAttributesParent />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</PostPanelRow>\n\t);\n}\n\nexport default PageAttributesParent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_removeAccents","_interopRequireDefault","require","_i18n","_components","_compose","_element","_data","_htmlEntities","_coreData","_blockEditor","_postPanelRow","_terms","_store","_jsxRuntime","getTitle","post","title","rendered","decodeEntities","id","__","getItemPriority","name","searchValue","normalizedName","removeAccents","toLowerCase","normalizedSearch","startsWith","length","Infinity","exports","PageAttributesParent","editPost","useDispatch","editorStore","fieldValue","setFieldValue","useState","isHierarchical","parentPostId","parentPostTitle","pageItems","useSelect","select","_pType$hierarchical","getPostType","getEntityRecords","getEntityRecord","coreStore","getCurrentPostId","getEditedPostAttribute","postTypeSlug","pageId","pType","postId","postIsHierarchical","hierarchical","query","per_page","exclude","parent_exclude","orderby","order","_fields","search","parentPost","parentOptions","useMemo","getOptionsFromTree","tree","level","mappedNodes","map","treeNode","value","label","repeat","rawName","children","sortedNodes","sort","a","b","priorityA","priorityB","flat","item","parent","buildTermsTree","opts","optsHasParent","find","unshift","handleKeydown","inputValue","handleChange","selectedPostId","jsx","ComboboxControl","__nextHasNoMarginBottom","__next40pxDefaultSize","className","help","options","onFilterValueChange","debounce","onChange","hideLabelFromVision","PostParentToggle","isOpen","onClick","parentTitle","Button","size","variant","sprintf","ParentRow","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","default","ref","Dropdown","contentClassName","focusOnMount","renderToggle","onToggle","renderContent","onClose","jsxs","__experimentalInspectorPopoverHeader","ExternalLink","href","_default"],"sources":["@wordpress/editor/src/components/page-attributes/parent.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropdown,\n\tComboboxControl,\n\tExternalLink,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PostPanelRow from '../post-panel-row';\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\nfunction getTitle( post ) {\n\treturn post?.title?.rendered\n\t\t? decodeEntities( post.title.rendered )\n\t\t: `#${ post.id } (${ __( 'no title' ) })`;\n}\n\nexport const getItemPriority = ( name, searchValue ) => {\n\tconst normalizedName = removeAccents( name || '' ).toLowerCase();\n\tconst normalizedSearch = removeAccents( searchValue || '' ).toLowerCase();\n\tif ( normalizedName === normalizedSearch ) {\n\t\treturn 0;\n\t}\n\n\tif ( normalizedName.startsWith( normalizedSearch ) ) {\n\t\treturn normalizedName.length;\n\t}\n\n\treturn Infinity;\n};\n\n/**\n * Renders the Page Attributes Parent component. A dropdown menu in an editor interface\n * for selecting the parent page of a given page.\n *\n * @return {Component|null} The component to be rendered. Return null if post type is not hierarchical.\n */\nexport function PageAttributesParent() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ fieldValue, setFieldValue ] = useState( false );\n\tconst { isHierarchical, parentPostId, parentPostTitle, pageItems } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getPostType, getEntityRecords, getEntityRecord } =\n\t\t\t\t\tselect( coreStore );\n\t\t\t\tconst { getCurrentPostId, getEditedPostAttribute } =\n\t\t\t\t\tselect( editorStore );\n\t\t\t\tconst postTypeSlug = getEditedPostAttribute( 'type' );\n\t\t\t\tconst pageId = getEditedPostAttribute( 'parent' );\n\t\t\t\tconst pType = getPostType( postTypeSlug );\n\t\t\t\tconst postId = getCurrentPostId();\n\t\t\t\tconst postIsHierarchical = pType?.hierarchical ?? false;\n\t\t\t\tconst query = {\n\t\t\t\t\tper_page: 100,\n\t\t\t\t\texclude: postId,\n\t\t\t\t\tparent_exclude: postId,\n\t\t\t\t\torderby: 'menu_order',\n\t\t\t\t\torder: 'asc',\n\t\t\t\t\t_fields: 'id,title,parent',\n\t\t\t\t};\n\n\t\t\t\t// Perform a search when the field is changed.\n\t\t\t\tif ( !! fieldValue ) {\n\t\t\t\t\tquery.search = fieldValue;\n\t\t\t\t}\n\n\t\t\t\tconst parentPost = pageId\n\t\t\t\t\t? getEntityRecord( 'postType', postTypeSlug, pageId )\n\t\t\t\t\t: null;\n\n\t\t\t\treturn {\n\t\t\t\t\tisHierarchical: postIsHierarchical,\n\t\t\t\t\tparentPostId: pageId,\n\t\t\t\t\tparentPostTitle: parentPost ? getTitle( parentPost ) : '',\n\t\t\t\t\tpageItems: postIsHierarchical\n\t\t\t\t\t\t? getEntityRecords( 'postType', postTypeSlug, query )\n\t\t\t\t\t\t: null,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ fieldValue ]\n\t\t);\n\n\tconst parentOptions = useMemo( () => {\n\t\tconst getOptionsFromTree = ( tree, level = 0 ) => {\n\t\t\tconst mappedNodes = tree.map( ( treeNode ) => [\n\t\t\t\t{\n\t\t\t\t\tvalue: treeNode.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'— '.repeat( level ) + decodeEntities( treeNode.name ),\n\t\t\t\t\trawName: treeNode.name,\n\t\t\t\t},\n\t\t\t\t...getOptionsFromTree( treeNode.children || [], level + 1 ),\n\t\t\t] );\n\n\t\t\tconst sortedNodes = mappedNodes.sort( ( [ a ], [ b ] ) => {\n\t\t\t\tconst priorityA = getItemPriority( a.rawName, fieldValue );\n\t\t\t\tconst priorityB = getItemPriority( b.rawName, fieldValue );\n\t\t\t\treturn priorityA >= priorityB ? 1 : -1;\n\t\t\t} );\n\n\t\t\treturn sortedNodes.flat();\n\t\t};\n\n\t\tif ( ! pageItems ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet tree = pageItems.map( ( item ) => ( {\n\t\t\tid: item.id,\n\t\t\tparent: item.parent,\n\t\t\tname: getTitle( item ),\n\t\t} ) );\n\n\t\t// Only build a hierarchical tree when not searching.\n\t\tif ( ! fieldValue ) {\n\t\t\ttree = buildTermsTree( tree );\n\t\t}\n\n\t\tconst opts = getOptionsFromTree( tree );\n\n\t\t// Ensure the current parent is in the options list.\n\t\tconst optsHasParent = opts.find(\n\t\t\t( item ) => item.value === parentPostId\n\t\t);\n\t\tif ( parentPostTitle && ! optsHasParent ) {\n\t\t\topts.unshift( {\n\t\t\t\tvalue: parentPostId,\n\t\t\t\tlabel: parentPostTitle,\n\t\t\t} );\n\t\t}\n\t\treturn opts;\n\t}, [ pageItems, fieldValue, parentPostTitle, parentPostId ] );\n\n\tif ( ! isHierarchical ) {\n\t\treturn null;\n\t}\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {Object} selectedPostId The selected Author.\n\t */\n\tconst handleChange = ( selectedPostId ) => {\n\t\teditPost( { parent: selectedPostId } );\n\t};\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\tlabel={ __( 'Parent' ) }\n\t\t\thelp={ __( 'Choose a parent page.' ) }\n\t\t\tvalue={ parentPostId }\n\t\t\toptions={ parentOptions }\n\t\t\tonFilterValueChange={ debounce( handleKeydown, 300 ) }\n\t\t\tonChange={ handleChange }\n\t\t\thideLabelFromVision\n\t\t/>\n\t);\n}\n\nfunction PostParentToggle( { isOpen, onClick } ) {\n\tconst parentPost = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst parentPostId = getEditedPostAttribute( 'parent' );\n\t\tif ( ! parentPostId ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst postTypeSlug = getEditedPostAttribute( 'type' );\n\t\treturn getEntityRecord( 'postType', postTypeSlug, parentPostId );\n\t}, [] );\n\tconst parentTitle = useMemo(\n\t\t() => ( ! parentPost ? __( 'None' ) : getTitle( parentPost ) ),\n\t\t[ parentPost ]\n\t);\n\treturn (\n\t\t<Button\n\t\t\tsize=\"compact\"\n\t\t\tclassName=\"editor-post-parent__panel-toggle\"\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\t// translators: %s: Current post parent.\n\t\t\taria-label={ sprintf( __( 'Change parent: %s' ), parentTitle ) }\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ parentTitle }\n\t\t</Button>\n\t);\n}\n\nexport function ParentRow() {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\treturn (\n\t\t<PostPanelRow label={ __( 'Parent' ) } ref={ setPopoverAnchor }>\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tclassName=\"editor-post-parent__panel-dropdown\"\n\t\t\t\tcontentClassName=\"editor-post-parent__panel-dialog\"\n\t\t\t\tfocusOnMount\n\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t<PostParentToggle isOpen={ isOpen } onClick={ onToggle } />\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t<div className=\"editor-post-parent\">\n\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\ttitle={ __( 'Parent' ) }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: The domain name should be a reserved domain name to prevent linking to third party sites outside the WordPress project's control. You may also wish to use wordpress.org or a wordpress.org sub-domain. */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\"Child pages inherit characteristics from their parent, such as URL structure. For instance, if 'Web Design' is a child of 'Services', its URL would be example.org/services/web-design.\"\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<p>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'They also show up as sub-items in the default navigation menu. '\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Learn more' ) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<PageAttributesParent />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</PostPanelRow>\n\t);\n}\n\nexport default PageAttributesParent;\n"],"mappings":"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","ignoreList":[]}
@@ -53,11 +53,6 @@ function isTemplateRemovable(template) {
53
53
  // two props whether is custom or has a theme file.
54
54
  return [template.source, template.templatePart?.source].includes(_constants.TEMPLATE_ORIGINS.custom) && !template.has_theme_file && !template.templatePart?.has_theme_file;
55
55
  }
56
- const canDeleteOrReset = item => {
57
- const isTemplatePart = item.type === _constants.TEMPLATE_PART_POST_TYPE;
58
- const isUserPattern = item.type === PATTERN_TYPES.user;
59
- return isUserPattern || isTemplatePart && item.isCustom;
60
- };
61
56
  function getItemTitle(item) {
62
57
  if (typeof item.title === 'string') {
63
58
  return (0, _htmlEntities.decodeEntities)(item.title);
@@ -198,12 +193,9 @@ const trashPostAction = {
198
193
  if (promiseResult.length === 1) {
199
194
  successMessage = (0, _i18n.sprintf)( /* translators: The item's title. */
200
195
  (0, _i18n.__)('"%s" moved to trash.'), getItemTitle(items[0]));
201
- } else if (items[0].type === 'page') {
196
+ } else {
202
197
  successMessage = (0, _i18n.sprintf)( /* translators: The number of items. */
203
198
  (0, _i18n._n)('%s item moved to trash.', '%s items moved to trash.', items.length), items.length);
204
- } else {
205
- successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
206
- (0, _i18n.__)('%s items move to trash.'), items.length);
207
199
  }
208
200
  createSuccessNotice(successMessage, {
209
201
  type: 'snackbar',
@@ -678,18 +670,11 @@ const duplicatePostAction = {
678
670
  });
679
671
  }
680
672
  };
681
- const isTemplatePartRevertable = item => {
682
- if (!item) {
683
- return false;
684
- }
685
- const hasThemeFile = item.templatePart?.has_theme_file;
686
- return canDeleteOrReset(item) && hasThemeFile;
687
- };
688
673
  const resetTemplateAction = {
689
674
  id: 'reset-template',
690
675
  label: (0, _i18n.__)('Reset'),
691
676
  isEligible: item => {
692
- return item.type === _constants.TEMPLATE_PART_POST_TYPE ? isTemplatePartRevertable(item) : (0, _isTemplateRevertable.default)(item);
677
+ return (0, _isTemplateRevertable.default)(item);
693
678
  },
694
679
  icon: _icons.backup,
695
680
  supportsBulk: true,
@@ -702,8 +687,7 @@ const resetTemplateAction = {
702
687
  }) => {
703
688
  const [isBusy, setIsBusy] = (0, _element.useState)(false);
704
689
  const {
705
- revertTemplate,
706
- removeTemplates
690
+ revertTemplate
707
691
  } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
708
692
  const {
709
693
  saveEditedEntityRecord
@@ -714,24 +698,18 @@ const resetTemplateAction = {
714
698
  } = (0, _data.useDispatch)(_notices.store);
715
699
  const onConfirm = async () => {
716
700
  try {
717
- if (items[0].type === _constants.TEMPLATE_PART_POST_TYPE) {
718
- await removeTemplates(items);
719
- } else {
720
- for (const template of items) {
721
- if (template.type === _constants.TEMPLATE_POST_TYPE) {
722
- await revertTemplate(template, {
723
- allowUndo: false
724
- });
725
- await saveEditedEntityRecord('postType', template.type, template.id);
726
- }
727
- }
728
- createSuccessNotice(items.length > 1 ? (0, _i18n.sprintf)( /* translators: The number of items. */
729
- (0, _i18n.__)('%s items reset.'), items.length) : (0, _i18n.sprintf)( /* translators: The template/part's name. */
730
- (0, _i18n.__)('"%s" reset.'), (0, _htmlEntities.decodeEntities)(getItemTitle(items[0]))), {
731
- type: 'snackbar',
732
- id: 'revert-template-action'
701
+ for (const template of items) {
702
+ await revertTemplate(template, {
703
+ allowUndo: false
733
704
  });
705
+ await saveEditedEntityRecord('postType', template.type, template.id);
734
706
  }
707
+ createSuccessNotice(items.length > 1 ? (0, _i18n.sprintf)( /* translators: The number of items. */
708
+ (0, _i18n.__)('%s items reset.'), items.length) : (0, _i18n.sprintf)( /* translators: The template/part's name. */
709
+ (0, _i18n.__)('"%s" reset.'), (0, _htmlEntities.decodeEntities)(getItemTitle(items[0]))), {
710
+ type: 'snackbar',
711
+ id: 'revert-template-action'
712
+ });
735
713
  } catch (error) {
736
714
  let fallbackErrorMessage;
737
715
  if (items[0].type === _constants.TEMPLATE_POST_TYPE) {
@@ -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","canDeleteOrReset","item","isTemplatePart","type","TEMPLATE_PART_POST_TYPE","isUserPattern","user","isCustom","getItemTitle","title","decodeEntities","rendered","deletePostAction","id","label","__","isPrimary","icon","trash","isEligible","post","TEMPLATE_POST_TYPE","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","isCustomPattern","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","isTemplatePartRevertable","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}\nconst canDeleteOrReset = ( item ) => {\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\treturn isUserPattern || ( isTemplatePart && item.isCustom );\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 if ( items[ 0 ].type === 'page' ) {\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} 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 posts. */\n\t\t\t\t\t\t\t\t\t\t__( '%s items move to trash.' ),\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 isTemplatePartRevertable = ( item ) => {\n\tif ( ! item ) {\n\t\treturn false;\n\t}\n\tconst hasThemeFile = item.templatePart?.has_theme_file;\n\treturn canDeleteOrReset( item ) && hasThemeFile;\n};\n\nconst resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Reset' ),\n\tisEligible: ( item ) => {\n\t\treturn item.type === TEMPLATE_PART_POST_TYPE\n\t\t\t? isTemplatePartRevertable( item )\n\t\t\t: 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, removeTemplates } = unlock(\n\t\t\tuseDispatch( editorStore )\n\t\t);\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\tif ( items[ 0 ].type === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\t\tawait removeTemplates( items );\n\t\t\t\t} else {\n\t\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\t\tif ( template.type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\t\t\tawait revertTemplate( template, {\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\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\t\ttemplate.id\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\tcreateSuccessNotice(\n\t\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t__( '%s items reset.' ),\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" reset.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities( getItemTitle( items[ 0 ] ) )\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'revert-template-action',\n\t\t\t\t\t\t}\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","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":[]}
@@ -30,8 +30,8 @@ function getJsonFromItem(item) {
30
30
  return JSON.stringify({
31
31
  __file: item.type,
32
32
  title: item.title || item.name,
33
- content: item.patternPost.content.raw,
34
- syncStatus: item.patternPost.wp_pattern_sync_status
33
+ content: item?.patternPost?.content?.raw || item.content,
34
+ syncStatus: item?.patternPost?.wp_pattern_sync_status || item.wp_pattern_sync_status
35
35
  }, null, 2);
36
36
  }
37
37
  const exportPatternAsJSONAction = exports.exportPatternAsJSONAction = {