@wordpress/editor 14.0.3 → 14.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/CHANGELOG.md +16 -12
  2. package/README.md +189 -24
  3. package/build/components/create-template-part-modal/index.js +2 -0
  4. package/build/components/create-template-part-modal/index.js.map +1 -1
  5. package/build/components/document-bar/index.js +11 -4
  6. package/build/components/document-bar/index.js.map +1 -1
  7. package/build/components/editor/index.js +18 -24
  8. package/build/components/editor/index.js.map +1 -1
  9. package/build/components/editor-interface/index.js +3 -1
  10. package/build/components/editor-interface/index.js.map +1 -1
  11. package/build/components/entities-saved-states/hooks/use-is-dirty.js +9 -0
  12. package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  13. package/build/components/entities-saved-states/index.js +28 -0
  14. package/build/components/entities-saved-states/index.js.map +1 -1
  15. package/build/components/global-keyboard-shortcuts/index.js +1 -1
  16. package/build/components/global-keyboard-shortcuts/index.js.map +1 -1
  17. package/build/components/header/index.js +6 -2
  18. package/build/components/header/index.js.map +1 -1
  19. package/build/components/index.js +15 -0
  20. package/build/components/index.js.map +1 -1
  21. package/build/components/post-actions/actions.js +286 -263
  22. package/build/components/post-actions/actions.js.map +1 -1
  23. package/build/components/post-actions/index.js +2 -0
  24. package/build/components/post-actions/index.js.map +1 -1
  25. package/build/components/post-publish-button/index.js +4 -0
  26. package/build/components/post-publish-button/index.js.map +1 -1
  27. package/build/components/post-publish-button/label.js +5 -0
  28. package/build/components/post-publish-button/label.js.map +1 -1
  29. package/build/components/post-publish-panel/index.js +4 -0
  30. package/build/components/post-publish-panel/index.js.map +1 -1
  31. package/build/components/post-slug/check.js +8 -1
  32. package/build/components/post-slug/check.js.map +1 -1
  33. package/build/components/post-slug/index.js +6 -0
  34. package/build/components/post-slug/index.js.map +1 -1
  35. package/build/components/post-status/index.js +2 -1
  36. package/build/components/post-status/index.js.map +1 -1
  37. package/build/components/post-sticky/check.js +8 -0
  38. package/build/components/post-sticky/check.js.map +1 -1
  39. package/build/components/post-sticky/index.js +13 -13
  40. package/build/components/post-sticky/index.js.map +1 -1
  41. package/build/components/post-switch-to-draft-button/index.js +11 -2
  42. package/build/components/post-switch-to-draft-button/index.js.map +1 -1
  43. package/build/components/post-sync-status/index.js +5 -1
  44. package/build/components/post-sync-status/index.js.map +1 -1
  45. package/build/components/post-taxonomies/check.js +8 -0
  46. package/build/components/post-taxonomies/check.js.map +1 -1
  47. package/build/components/post-taxonomies/flat-term-selector.js +14 -2
  48. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  49. package/build/components/post-taxonomies/index.js +9 -0
  50. package/build/components/post-taxonomies/index.js.map +1 -1
  51. package/build/components/post-taxonomies/panel.js +10 -0
  52. package/build/components/post-taxonomies/panel.js.map +1 -1
  53. package/build/components/post-template/create-new-template-modal.js +2 -0
  54. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  55. package/build/components/post-title/index.js +4 -8
  56. package/build/components/post-title/index.js.map +1 -1
  57. package/build/components/post-title/post-title-raw.js +3 -7
  58. package/build/components/post-title/post-title-raw.js.map +1 -1
  59. package/build/components/post-trash/check.js +8 -0
  60. package/build/components/post-trash/check.js.map +1 -1
  61. package/build/components/post-trash/index.js +5 -1
  62. package/build/components/post-trash/index.js.map +1 -1
  63. package/build/components/provider/index.js +18 -15
  64. package/build/components/provider/index.js.map +1 -1
  65. package/build/components/sidebar/index.js +2 -1
  66. package/build/components/sidebar/index.js.map +1 -1
  67. package/build/components/sidebar/post-summary.js +2 -3
  68. package/build/components/sidebar/post-summary.js.map +1 -1
  69. package/build/components/table-of-contents/index.js +11 -0
  70. package/build/components/table-of-contents/index.js.map +1 -1
  71. package/build/components/template-part-content-panel/index.js +70 -0
  72. package/build/components/template-part-content-panel/index.js.map +1 -0
  73. package/build/components/template-part-menu-items/convert-to-regular.js +38 -0
  74. package/build/components/template-part-menu-items/convert-to-regular.js.map +1 -0
  75. package/build/components/template-part-menu-items/convert-to-template-part.js +77 -0
  76. package/build/components/template-part-menu-items/convert-to-template-part.js.map +1 -0
  77. package/build/components/template-part-menu-items/index.js +67 -0
  78. package/build/components/template-part-menu-items/index.js.map +1 -0
  79. package/build/components/template-part-menu-items/index.native.js +10 -0
  80. package/build/components/template-part-menu-items/index.native.js.map +1 -0
  81. package/build/components/theme-support-check/index.js +9 -0
  82. package/build/components/theme-support-check/index.js.map +1 -1
  83. package/build/components/time-to-read/index.js +6 -0
  84. package/build/components/time-to-read/index.js.map +1 -1
  85. package/build/components/word-count/index.js +5 -1
  86. package/build/components/word-count/index.js.map +1 -1
  87. package/build/dataviews/api.js +61 -0
  88. package/build/dataviews/api.js.map +1 -0
  89. package/build/dataviews/store/private-actions.js +28 -0
  90. package/build/dataviews/store/private-actions.js.map +1 -0
  91. package/build/dataviews/store/private-selectors.js +20 -0
  92. package/build/dataviews/store/private-selectors.js.map +1 -0
  93. package/build/dataviews/store/reducer.js +36 -0
  94. package/build/dataviews/store/reducer.js.map +1 -0
  95. package/build/index.js +12 -0
  96. package/build/index.js.map +1 -1
  97. package/build/private-apis.js +0 -6
  98. package/build/private-apis.js.map +1 -1
  99. package/build/private-apis.native.js +0 -2
  100. package/build/private-apis.native.js.map +1 -1
  101. package/build/store/private-actions.js +21 -0
  102. package/build/store/private-actions.js.map +1 -1
  103. package/build/store/private-selectors.js +5 -0
  104. package/build/store/private-selectors.js.map +1 -1
  105. package/build/store/reducer.js +4 -1
  106. package/build/store/reducer.js.map +1 -1
  107. package/build-module/components/create-template-part-modal/index.js +2 -0
  108. package/build-module/components/create-template-part-modal/index.js.map +1 -1
  109. package/build-module/components/document-bar/index.js +11 -4
  110. package/build-module/components/document-bar/index.js.map +1 -1
  111. package/build-module/components/editor/index.js +19 -24
  112. package/build-module/components/editor/index.js.map +1 -1
  113. package/build-module/components/editor-interface/index.js +3 -1
  114. package/build-module/components/editor-interface/index.js.map +1 -1
  115. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +10 -0
  116. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  117. package/build-module/components/entities-saved-states/index.js +28 -0
  118. package/build-module/components/entities-saved-states/index.js.map +1 -1
  119. package/build-module/components/global-keyboard-shortcuts/index.js +1 -1
  120. package/build-module/components/global-keyboard-shortcuts/index.js.map +1 -1
  121. package/build-module/components/header/index.js +6 -2
  122. package/build-module/components/header/index.js.map +1 -1
  123. package/build-module/components/index.js +16 -0
  124. package/build-module/components/index.js.map +1 -1
  125. package/build-module/components/post-actions/actions.js +286 -263
  126. package/build-module/components/post-actions/actions.js.map +1 -1
  127. package/build-module/components/post-actions/index.js +2 -0
  128. package/build-module/components/post-actions/index.js.map +1 -1
  129. package/build-module/components/post-publish-button/index.js +4 -0
  130. package/build-module/components/post-publish-button/index.js.map +1 -1
  131. package/build-module/components/post-publish-button/label.js +6 -0
  132. package/build-module/components/post-publish-button/label.js.map +1 -1
  133. package/build-module/components/post-publish-panel/index.js +4 -0
  134. package/build-module/components/post-publish-panel/index.js.map +1 -1
  135. package/build-module/components/post-slug/check.js +9 -0
  136. package/build-module/components/post-slug/check.js.map +1 -1
  137. package/build-module/components/post-slug/index.js +6 -0
  138. package/build-module/components/post-slug/index.js.map +1 -1
  139. package/build-module/components/post-status/index.js +2 -1
  140. package/build-module/components/post-status/index.js.map +1 -1
  141. package/build-module/components/post-sticky/check.js +9 -0
  142. package/build-module/components/post-sticky/check.js.map +1 -1
  143. package/build-module/components/post-sticky/index.js +15 -13
  144. package/build-module/components/post-sticky/index.js.map +1 -1
  145. package/build-module/components/post-switch-to-draft-button/index.js +10 -1
  146. package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
  147. package/build-module/components/post-sync-status/index.js +6 -0
  148. package/build-module/components/post-sync-status/index.js.map +1 -1
  149. package/build-module/components/post-taxonomies/check.js +9 -0
  150. package/build-module/components/post-taxonomies/check.js.map +1 -1
  151. package/build-module/components/post-taxonomies/flat-term-selector.js +14 -2
  152. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  153. package/build-module/components/post-taxonomies/index.js +9 -0
  154. package/build-module/components/post-taxonomies/index.js.map +1 -1
  155. package/build-module/components/post-taxonomies/panel.js +10 -0
  156. package/build-module/components/post-taxonomies/panel.js.map +1 -1
  157. package/build-module/components/post-template/create-new-template-modal.js +2 -0
  158. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  159. package/build-module/components/post-title/index.js +4 -8
  160. package/build-module/components/post-title/index.js.map +1 -1
  161. package/build-module/components/post-title/post-title-raw.js +3 -7
  162. package/build-module/components/post-title/post-title-raw.js.map +1 -1
  163. package/build-module/components/post-trash/check.js +9 -0
  164. package/build-module/components/post-trash/check.js.map +1 -1
  165. package/build-module/components/post-trash/index.js +6 -0
  166. package/build-module/components/post-trash/index.js.map +1 -1
  167. package/build-module/components/provider/index.js +18 -15
  168. package/build-module/components/provider/index.js.map +1 -1
  169. package/build-module/components/sidebar/index.js +2 -1
  170. package/build-module/components/sidebar/index.js.map +1 -1
  171. package/build-module/components/sidebar/post-summary.js +2 -3
  172. package/build-module/components/sidebar/post-summary.js.map +1 -1
  173. package/build-module/components/table-of-contents/index.js +11 -0
  174. package/build-module/components/table-of-contents/index.js.map +1 -1
  175. package/build-module/components/template-part-content-panel/index.js +63 -0
  176. package/build-module/components/template-part-content-panel/index.js.map +1 -0
  177. package/build-module/components/template-part-menu-items/convert-to-regular.js +31 -0
  178. package/build-module/components/template-part-menu-items/convert-to-regular.js.map +1 -0
  179. package/build-module/components/template-part-menu-items/convert-to-template-part.js +71 -0
  180. package/build-module/components/template-part-menu-items/convert-to-template-part.js.map +1 -0
  181. package/build-module/components/template-part-menu-items/index.js +59 -0
  182. package/build-module/components/template-part-menu-items/index.js.map +1 -0
  183. package/build-module/components/template-part-menu-items/index.native.js +4 -0
  184. package/build-module/components/template-part-menu-items/index.native.js.map +1 -0
  185. package/build-module/components/theme-support-check/index.js +10 -0
  186. package/build-module/components/theme-support-check/index.js.map +1 -1
  187. package/build-module/components/time-to-read/index.js +6 -0
  188. package/build-module/components/time-to-read/index.js.map +1 -1
  189. package/build-module/components/word-count/index.js +6 -0
  190. package/build-module/components/word-count/index.js.map +1 -1
  191. package/build-module/dataviews/api.js +54 -0
  192. package/build-module/dataviews/api.js.map +1 -0
  193. package/build-module/dataviews/store/private-actions.js +21 -0
  194. package/build-module/dataviews/store/private-actions.js.map +1 -0
  195. package/build-module/dataviews/store/private-selectors.js +14 -0
  196. package/build-module/dataviews/store/private-selectors.js.map +1 -0
  197. package/build-module/dataviews/store/reducer.js +29 -0
  198. package/build-module/dataviews/store/reducer.js.map +1 -0
  199. package/build-module/index.js +1 -0
  200. package/build-module/index.js.map +1 -1
  201. package/build-module/private-apis.js +0 -6
  202. package/build-module/private-apis.js.map +1 -1
  203. package/build-module/private-apis.native.js +0 -2
  204. package/build-module/private-apis.native.js.map +1 -1
  205. package/build-module/store/private-actions.js +1 -0
  206. package/build-module/store/private-actions.js.map +1 -1
  207. package/build-module/store/private-selectors.js +4 -0
  208. package/build-module/store/private-selectors.js.map +1 -1
  209. package/build-module/store/reducer.js +3 -1
  210. package/build-module/store/reducer.js.map +1 -1
  211. package/build-style/style-rtl.css +10 -9
  212. package/build-style/style.css +10 -9
  213. package/build-types/dataviews/store/private-actions.d.ts +17 -0
  214. package/build-types/dataviews/store/private-actions.d.ts.map +1 -0
  215. package/build-types/dataviews/store/private-selectors.d.ts +10 -0
  216. package/build-types/dataviews/store/private-selectors.d.ts.map +1 -0
  217. package/build-types/dataviews/store/reducer.d.ts +11 -0
  218. package/build-types/dataviews/store/reducer.d.ts.map +1 -0
  219. package/package.json +35 -35
  220. package/src/components/create-template-part-modal/index.js +2 -0
  221. package/src/components/create-template-part-modal/style.scss +0 -6
  222. package/src/components/document-bar/index.js +11 -4
  223. package/src/components/editor/index.js +23 -28
  224. package/src/components/editor-interface/index.js +2 -0
  225. package/src/components/entities-saved-states/hooks/use-is-dirty.js +9 -0
  226. package/src/components/entities-saved-states/index.js +26 -0
  227. package/src/components/global-keyboard-shortcuts/index.js +1 -1
  228. package/src/components/header/index.js +2 -1
  229. package/src/components/index.js +16 -0
  230. package/src/components/keyboard-shortcut-help-modal/style.scss +0 -3
  231. package/src/components/post-actions/actions.js +376 -387
  232. package/src/components/post-actions/index.js +2 -0
  233. package/src/components/post-card-panel/style.scss +4 -0
  234. package/src/components/post-panel-row/style.scss +1 -1
  235. package/src/components/post-publish-button/index.js +3 -0
  236. package/src/components/post-publish-button/label.js +5 -0
  237. package/src/components/post-publish-panel/index.js +3 -0
  238. package/src/components/post-slug/check.js +8 -0
  239. package/src/components/post-slug/index.js +5 -0
  240. package/src/components/post-status/index.js +2 -0
  241. package/src/components/post-status/style.scss +5 -0
  242. package/src/components/post-sticky/check.js +8 -0
  243. package/src/components/post-sticky/index.js +14 -12
  244. package/src/components/post-sticky/style.scss +3 -2
  245. package/src/components/post-switch-to-draft-button/index.js +10 -1
  246. package/src/components/post-sync-status/index.js +5 -0
  247. package/src/components/post-taxonomies/check.js +8 -0
  248. package/src/components/post-taxonomies/flat-term-selector.js +13 -2
  249. package/src/components/post-taxonomies/index.js +8 -0
  250. package/src/components/post-taxonomies/panel.js +9 -0
  251. package/src/components/post-template/create-new-template-modal.js +2 -0
  252. package/src/components/post-title/index.js +2 -5
  253. package/src/components/post-title/post-title-raw.js +2 -5
  254. package/src/components/post-trash/check.js +8 -0
  255. package/src/components/post-trash/index.js +5 -0
  256. package/src/components/provider/index.js +17 -17
  257. package/src/components/sidebar/index.js +2 -0
  258. package/src/components/sidebar/post-summary.js +1 -3
  259. package/src/components/table-of-contents/index.js +10 -0
  260. package/src/components/template-part-content-panel/index.js +62 -0
  261. package/src/components/template-part-menu-items/convert-to-regular.js +32 -0
  262. package/src/components/template-part-menu-items/convert-to-template-part.js +75 -0
  263. package/src/components/template-part-menu-items/index.js +59 -0
  264. package/src/components/template-part-menu-items/index.native.js +3 -0
  265. package/src/components/theme-support-check/index.js +9 -0
  266. package/src/components/time-to-read/index.js +5 -0
  267. package/src/components/word-count/index.js +5 -0
  268. package/src/dataviews/api.js +55 -0
  269. package/src/dataviews/store/private-actions.ts +30 -0
  270. package/src/dataviews/store/private-selectors.ts +15 -0
  271. package/src/dataviews/store/reducer.ts +44 -0
  272. package/src/index.js +1 -0
  273. package/src/private-apis.js +0 -6
  274. package/src/private-apis.native.js +0 -2
  275. package/src/store/private-actions.js +1 -0
  276. package/src/store/private-selectors.js +5 -0
  277. package/src/store/reducer.js +2 -0
  278. package/tsconfig.json +36 -0
  279. package/tsconfig.tsbuildinfo +1 -0
@@ -85,7 +85,6 @@ const deletePostAction = {
85
85
  RenderModal: ({
86
86
  items,
87
87
  closeModal,
88
- onActionStart,
89
88
  onActionPerformed
90
89
  }) => {
91
90
  const [isBusy, setIsBusy] = (0, _element.useState)(false);
@@ -112,9 +111,6 @@ const deletePostAction = {
112
111
  variant: "primary",
113
112
  onClick: async () => {
114
113
  setIsBusy(true);
115
- if (onActionStart) {
116
- onActionStart(items);
117
- }
118
114
  await removeTemplates(items, {
119
115
  allowUndo: false
120
116
  });
@@ -131,15 +127,6 @@ const deletePostAction = {
131
127
  });
132
128
  }
133
129
  };
134
- function useCanUserEligibilityCheckPostType(capability, resource, action) {
135
- const registry = (0, _data.useRegistry)();
136
- return (0, _element.useMemo)(() => ({
137
- ...action,
138
- isEligible(item) {
139
- return action.isEligible(item) && registry.select(_coreData.store).canUser(capability, resource, item.id);
140
- }
141
- }), [action, registry, capability, resource]);
142
- }
143
130
  const trashPostAction = {
144
131
  id: 'move-to-trash',
145
132
  label: (0, _i18n.__)('Move to Trash'),
@@ -153,7 +140,6 @@ const trashPostAction = {
153
140
  RenderModal: ({
154
141
  items,
155
142
  closeModal,
156
- onActionStart,
157
143
  onActionPerformed
158
144
  }) => {
159
145
  const [isBusy, setIsBusy] = (0, _element.useState)(false);
@@ -184,9 +170,6 @@ const trashPostAction = {
184
170
  variant: "primary",
185
171
  onClick: async () => {
186
172
  setIsBusy(true);
187
- if (onActionStart) {
188
- onActionStart(items);
189
- }
190
173
  const promiseResult = await Promise.allSettled(items.map(item => deleteEntityRecord('postType', item.type, item.id, {}, {
191
174
  throwOnError: true
192
175
  })));
@@ -259,180 +242,191 @@ const trashPostAction = {
259
242
  });
260
243
  }
261
244
  };
245
+ function useCanUserEligibilityCheckPostType(capability, resource, action) {
246
+ const registry = (0, _data.useRegistry)();
247
+ return (0, _element.useMemo)(() => ({
248
+ ...action,
249
+ isEligible(item) {
250
+ return action.isEligible(item) && registry.select(_coreData.store).canUser(capability, resource, item.id);
251
+ }
252
+ }), [action, registry, capability, resource]);
253
+ }
262
254
  function useTrashPostAction(resource) {
263
255
  return useCanUserEligibilityCheckPostType('delete', resource, trashPostAction);
264
256
  }
265
- function usePermanentlyDeletePostAction(resource) {
266
- const {
267
- createSuccessNotice,
268
- createErrorNotice
269
- } = (0, _data.useDispatch)(_notices.store);
270
- const {
271
- deleteEntityRecord
272
- } = (0, _data.useDispatch)(_coreData.store);
273
- const permanentlyDeletePostAction = (0, _element.useMemo)(() => ({
274
- id: 'permanently-delete',
275
- label: (0, _i18n.__)('Permanently delete'),
276
- supportsBulk: true,
277
- isEligible({
257
+ const permanentlyDeletePostAction = {
258
+ id: 'permanently-delete',
259
+ label: (0, _i18n.__)('Permanently delete'),
260
+ supportsBulk: true,
261
+ isEligible({
262
+ status
263
+ }) {
264
+ return status === 'trash';
265
+ },
266
+ async callback(posts, {
267
+ registry
268
+ }) {
269
+ const {
270
+ createSuccessNotice,
271
+ createErrorNotice
272
+ } = registry.dispatch(_notices.store);
273
+ const {
274
+ deleteEntityRecord
275
+ } = registry.dispatch(_coreData.store);
276
+ const promiseResult = await Promise.allSettled(posts.map(post => {
277
+ return deleteEntityRecord('postType', post.type, post.id, {
278
+ force: true
279
+ }, {
280
+ throwOnError: true
281
+ });
282
+ }));
283
+ // If all the promises were fulfilled with success.
284
+ if (promiseResult.every(({
278
285
  status
279
- }) {
280
- return status === 'trash';
281
- },
282
- async callback(posts, onActionPerformed) {
283
- const promiseResult = await Promise.allSettled(posts.map(post => {
284
- return deleteEntityRecord('postType', post.type, post.id, {
285
- force: true
286
- }, {
287
- throwOnError: true
288
- });
289
- }));
290
- // If all the promises were fulfilled with success.
291
- if (promiseResult.every(({
292
- status
293
- }) => status === 'fulfilled')) {
294
- let successMessage;
295
- if (promiseResult.length === 1) {
296
- successMessage = (0, _i18n.sprintf)( /* translators: The posts's title. */
297
- (0, _i18n.__)('"%s" permanently deleted.'), getItemTitle(posts[0]));
286
+ }) => status === 'fulfilled')) {
287
+ let successMessage;
288
+ if (promiseResult.length === 1) {
289
+ successMessage = (0, _i18n.sprintf)( /* translators: The posts's title. */
290
+ (0, _i18n.__)('"%s" permanently deleted.'), getItemTitle(posts[0]));
291
+ } else {
292
+ successMessage = (0, _i18n.__)('The posts were permanently deleted.');
293
+ }
294
+ createSuccessNotice(successMessage, {
295
+ type: 'snackbar',
296
+ id: 'permanently-delete-post-action'
297
+ });
298
+ } else {
299
+ // If there was at lease one failure.
300
+ let errorMessage;
301
+ // If we were trying to permanently delete a single post.
302
+ if (promiseResult.length === 1) {
303
+ if (promiseResult[0].reason?.message) {
304
+ errorMessage = promiseResult[0].reason.message;
298
305
  } else {
299
- successMessage = (0, _i18n.__)('The posts were permanently deleted.');
300
- }
301
- createSuccessNotice(successMessage, {
302
- type: 'snackbar',
303
- id: 'permanently-delete-post-action'
304
- });
305
- if (onActionPerformed) {
306
- onActionPerformed(posts);
306
+ errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the post.');
307
307
  }
308
+ // If we were trying to permanently delete multiple posts
308
309
  } else {
309
- // If there was at lease one failure.
310
- let errorMessage;
311
- // If we were trying to permanently delete a single post.
312
- if (promiseResult.length === 1) {
313
- if (promiseResult[0].reason?.message) {
314
- errorMessage = promiseResult[0].reason.message;
315
- } else {
316
- errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the post.');
310
+ const errorMessages = new Set();
311
+ const failedPromises = promiseResult.filter(({
312
+ status
313
+ }) => status === 'rejected');
314
+ for (const failedPromise of failedPromises) {
315
+ if (failedPromise.reason?.message) {
316
+ errorMessages.add(failedPromise.reason.message);
317
317
  }
318
- // If we were trying to permanently delete multiple posts
318
+ }
319
+ if (errorMessages.size === 0) {
320
+ errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the posts.');
321
+ } else if (errorMessages.size === 1) {
322
+ errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
323
+ (0, _i18n.__)('An error occurred while permanently deleting the posts: %s'), [...errorMessages][0]);
319
324
  } else {
320
- const errorMessages = new Set();
321
- const failedPromises = promiseResult.filter(({
322
- status
323
- }) => status === 'rejected');
324
- for (const failedPromise of failedPromises) {
325
- if (failedPromise.reason?.message) {
326
- errorMessages.add(failedPromise.reason.message);
327
- }
328
- }
329
- if (errorMessages.size === 0) {
330
- errorMessage = (0, _i18n.__)('An error occurred while permanently deleting the posts.');
331
- } else if (errorMessages.size === 1) {
332
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
333
- (0, _i18n.__)('An error occurred while permanently deleting the posts: %s'), [...errorMessages][0]);
334
- } else {
335
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
336
- (0, _i18n.__)('Some errors occurred while permanently deleting the posts: %s'), [...errorMessages].join(','));
337
- }
325
+ errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
326
+ (0, _i18n.__)('Some errors occurred while permanently deleting the posts: %s'), [...errorMessages].join(','));
338
327
  }
339
- createErrorNotice(errorMessage, {
340
- type: 'snackbar'
341
- });
342
328
  }
329
+ createErrorNotice(errorMessage, {
330
+ type: 'snackbar'
331
+ });
343
332
  }
344
- }), [createSuccessNotice, createErrorNotice, deleteEntityRecord]);
333
+ }
334
+ };
335
+ function usePermanentlyDeletePostAction(resource) {
345
336
  return useCanUserEligibilityCheckPostType('delete', resource, permanentlyDeletePostAction);
346
337
  }
347
- function useRestorePostAction(resource) {
348
- const {
349
- createSuccessNotice,
350
- createErrorNotice
351
- } = (0, _data.useDispatch)(_notices.store);
352
- const {
353
- editEntityRecord,
354
- saveEditedEntityRecord
355
- } = (0, _data.useDispatch)(_coreData.store);
356
- const restorePostAction = (0, _element.useMemo)(() => ({
357
- id: 'restore',
358
- label: (0, _i18n.__)('Restore'),
359
- isPrimary: true,
360
- icon: _icons.backup,
361
- supportsBulk: true,
362
- isEligible({
338
+ const restorePostAction = {
339
+ id: 'restore',
340
+ label: (0, _i18n.__)('Restore'),
341
+ isPrimary: true,
342
+ icon: _icons.backup,
343
+ supportsBulk: true,
344
+ isEligible({
345
+ status
346
+ }) {
347
+ return status === 'trash';
348
+ },
349
+ async callback(posts, {
350
+ registry,
351
+ onActionPerformed
352
+ }) {
353
+ const {
354
+ createSuccessNotice,
355
+ createErrorNotice
356
+ } = registry.dispatch(_notices.store);
357
+ const {
358
+ editEntityRecord,
359
+ saveEditedEntityRecord
360
+ } = registry.dispatch(_coreData.store);
361
+ await Promise.allSettled(posts.map(post => {
362
+ return editEntityRecord('postType', post.type, post.id, {
363
+ status: 'draft'
364
+ });
365
+ }));
366
+ const promiseResult = await Promise.allSettled(posts.map(post => {
367
+ return saveEditedEntityRecord('postType', post.type, post.id, {
368
+ throwOnError: true
369
+ });
370
+ }));
371
+ if (promiseResult.every(({
363
372
  status
364
- }) {
365
- return status === 'trash';
366
- },
367
- async callback(posts, onActionPerformed) {
368
- await Promise.allSettled(posts.map(post => {
369
- return editEntityRecord('postType', post.type, post.id, {
370
- status: 'draft'
371
- });
372
- }));
373
- const promiseResult = await Promise.allSettled(posts.map(post => {
374
- return saveEditedEntityRecord('postType', post.type, post.id, {
375
- throwOnError: true
376
- });
377
- }));
378
- if (promiseResult.every(({
379
- status
380
- }) => status === 'fulfilled')) {
381
- let successMessage;
382
- if (posts.length === 1) {
383
- successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
384
- (0, _i18n.__)('"%s" has been restored.'), getItemTitle(posts[0]));
385
- } else if (posts[0].type === 'page') {
386
- successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
387
- (0, _i18n.__)('%d pages have been restored.'), posts.length);
373
+ }) => status === 'fulfilled')) {
374
+ let successMessage;
375
+ if (posts.length === 1) {
376
+ successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
377
+ (0, _i18n.__)('"%s" has been restored.'), getItemTitle(posts[0]));
378
+ } else if (posts[0].type === 'page') {
379
+ successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
380
+ (0, _i18n.__)('%d pages have been restored.'), posts.length);
381
+ } else {
382
+ successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
383
+ (0, _i18n.__)('%d posts have been restored.'), posts.length);
384
+ }
385
+ createSuccessNotice(successMessage, {
386
+ type: 'snackbar',
387
+ id: 'restore-post-action'
388
+ });
389
+ if (onActionPerformed) {
390
+ onActionPerformed(posts);
391
+ }
392
+ } else {
393
+ // If there was at lease one failure.
394
+ let errorMessage;
395
+ // If we were trying to move a single post to the trash.
396
+ if (promiseResult.length === 1) {
397
+ if (promiseResult[0].reason?.message) {
398
+ errorMessage = promiseResult[0].reason.message;
388
399
  } else {
389
- successMessage = (0, _i18n.sprintf)( /* translators: The number of posts. */
390
- (0, _i18n.__)('%d posts have been restored.'), posts.length);
391
- }
392
- createSuccessNotice(successMessage, {
393
- type: 'snackbar',
394
- id: 'restore-post-action'
395
- });
396
- if (onActionPerformed) {
397
- onActionPerformed(posts);
400
+ errorMessage = (0, _i18n.__)('An error occurred while restoring the post.');
398
401
  }
402
+ // If we were trying to move multiple posts to the trash
399
403
  } else {
400
- // If there was at lease one failure.
401
- let errorMessage;
402
- // If we were trying to move a single post to the trash.
403
- if (promiseResult.length === 1) {
404
- if (promiseResult[0].reason?.message) {
405
- errorMessage = promiseResult[0].reason.message;
406
- } else {
407
- errorMessage = (0, _i18n.__)('An error occurred while restoring the post.');
404
+ const errorMessages = new Set();
405
+ const failedPromises = promiseResult.filter(({
406
+ status
407
+ }) => status === 'rejected');
408
+ for (const failedPromise of failedPromises) {
409
+ if (failedPromise.reason?.message) {
410
+ errorMessages.add(failedPromise.reason.message);
408
411
  }
409
- // If we were trying to move multiple posts to the trash
412
+ }
413
+ if (errorMessages.size === 0) {
414
+ errorMessage = (0, _i18n.__)('An error occurred while restoring the posts.');
415
+ } else if (errorMessages.size === 1) {
416
+ errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
417
+ (0, _i18n.__)('An error occurred while restoring the posts: %s'), [...errorMessages][0]);
410
418
  } else {
411
- const errorMessages = new Set();
412
- const failedPromises = promiseResult.filter(({
413
- status
414
- }) => status === 'rejected');
415
- for (const failedPromise of failedPromises) {
416
- if (failedPromise.reason?.message) {
417
- errorMessages.add(failedPromise.reason.message);
418
- }
419
- }
420
- if (errorMessages.size === 0) {
421
- errorMessage = (0, _i18n.__)('An error occurred while restoring the posts.');
422
- } else if (errorMessages.size === 1) {
423
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: an error message */
424
- (0, _i18n.__)('An error occurred while restoring the posts: %s'), [...errorMessages][0]);
425
- } else {
426
- errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
427
- (0, _i18n.__)('Some errors occurred while restoring the posts: %s'), [...errorMessages].join(','));
428
- }
419
+ errorMessage = (0, _i18n.sprintf)( /* translators: %s: a list of comma separated error messages */
420
+ (0, _i18n.__)('Some errors occurred while restoring the posts: %s'), [...errorMessages].join(','));
429
421
  }
430
- createErrorNotice(errorMessage, {
431
- type: 'snackbar'
432
- });
433
422
  }
423
+ createErrorNotice(errorMessage, {
424
+ type: 'snackbar'
425
+ });
434
426
  }
435
- }), [createSuccessNotice, createErrorNotice, editEntityRecord, saveEditedEntityRecord]);
427
+ }
428
+ };
429
+ function useRestorePostAction(resource) {
436
430
  return useCanUserEligibilityCheckPostType('update', resource, restorePostAction);
437
431
  }
438
432
  const viewPostAction = {
@@ -443,7 +437,9 @@ const viewPostAction = {
443
437
  isEligible(post) {
444
438
  return post.status !== 'trash';
445
439
  },
446
- callback(posts, onActionPerformed) {
440
+ callback(posts, {
441
+ onActionPerformed
442
+ }) {
447
443
  const post = posts[0];
448
444
  window.open(post.link, '_blank');
449
445
  if (onActionPerformed) {
@@ -469,7 +465,9 @@ const postRevisionsAction = {
469
465
  const revisionsCount = (_post$_links$version = post?._links?.['version-history']?.[0]?.count) !== null && _post$_links$version !== void 0 ? _post$_links$version : 0;
470
466
  return lastRevisionId && revisionsCount > 1;
471
467
  },
472
- callback(posts, onActionPerformed) {
468
+ callback(posts, {
469
+ onActionPerformed
470
+ }) {
473
471
  const post = posts[0];
474
472
  const href = (0, _url.addQueryArgs)('revision.php', {
475
473
  revision: post?._links?.['predecessor-version']?.[0]?.id
@@ -579,42 +577,52 @@ const renamePostAction = {
579
577
  function useRenamePostAction(resource) {
580
578
  return useCanUserEligibilityCheckPostType('update', resource, renamePostAction);
581
579
  }
582
- const duplicatePostAction = {
583
- id: 'duplicate-post',
584
- label: (0, _i18n._x)('Duplicate', 'action label'),
585
- isEligible({
586
- status
587
- }) {
588
- return status !== 'trash';
589
- },
590
- RenderModal: ({
591
- items,
592
- closeModal,
593
- onActionPerformed
594
- }) => {
595
- const [item] = items;
596
- const [isCreatingPage, setIsCreatingPage] = (0, _element.useState)(false);
597
- const [title, setTitle] = (0, _element.useState)((0, _i18n.sprintf)( /* translators: %s: Existing item title */
598
- (0, _i18n.__)('%s (Copy)'), getItemTitle(item)));
599
- const {
600
- saveEntityRecord
601
- } = (0, _data.useDispatch)(_coreData.store);
580
+ const useDuplicatePostAction = postType => {
581
+ const {
582
+ userCanCreatePost
583
+ } = (0, _data.useSelect)(select => {
602
584
  const {
603
- createSuccessNotice,
604
- createErrorNotice
605
- } = (0, _data.useDispatch)(_notices.store);
606
- async function createPage(event) {
607
- event.preventDefault();
608
- if (isCreatingPage) {
609
- return;
610
- }
611
- setIsCreatingPage(true);
612
- try {
613
- const newItem = await saveEntityRecord('postType', item.type, {
585
+ getPostType,
586
+ canUser
587
+ } = select(_coreData.store);
588
+ const resource = getPostType(postType)?.rest_base || '';
589
+ return {
590
+ userCanCreatePost: canUser('create', resource)
591
+ };
592
+ }, [postType]);
593
+ return (0, _element.useMemo)(() => userCanCreatePost && {
594
+ id: 'duplicate-post',
595
+ label: (0, _i18n._x)('Duplicate', 'action label'),
596
+ isEligible({
597
+ status
598
+ }) {
599
+ return status !== 'trash';
600
+ },
601
+ RenderModal: ({
602
+ items,
603
+ closeModal,
604
+ onActionPerformed
605
+ }) => {
606
+ const [item] = items;
607
+ const [isCreatingPage, setIsCreatingPage] = (0, _element.useState)(false);
608
+ const [title, setTitle] = (0, _element.useState)((0, _i18n.sprintf)( /* translators: %s: Existing item title */
609
+ (0, _i18n.__)('%s (Copy)'), getItemTitle(item)));
610
+ const {
611
+ saveEntityRecord
612
+ } = (0, _data.useDispatch)(_coreData.store);
613
+ const {
614
+ createSuccessNotice,
615
+ createErrorNotice
616
+ } = (0, _data.useDispatch)(_notices.store);
617
+ async function createPage(event) {
618
+ event.preventDefault();
619
+ if (isCreatingPage) {
620
+ return;
621
+ }
622
+ const newItemOject = {
614
623
  status: 'draft',
615
624
  title,
616
625
  slug: title || (0, _i18n.__)('No title'),
617
- author: item.author,
618
626
  comment_status: item.comment_status,
619
627
  content: typeof item.content === 'string' ? item.content : item.content.raw,
620
628
  excerpt: item.excerpt.raw,
@@ -625,58 +633,69 @@ const duplicatePostAction = {
625
633
  format: item.format,
626
634
  featured_media: item.featured_media,
627
635
  menu_order: item.menu_order,
628
- ping_status: item.ping_status,
629
- categories: item.categories,
630
- tags: item.tags
631
- }, {
632
- throwOnError: true
633
- });
634
- createSuccessNotice((0, _i18n.sprintf)(
635
- // translators: %s: Title of the created template e.g: "Category".
636
- (0, _i18n.__)('"%s" successfully created.'), (0, _htmlEntities.decodeEntities)(newItem.title?.rendered || title)), {
637
- id: 'duplicate-post-action',
638
- type: 'snackbar'
636
+ ping_status: item.ping_status
637
+ };
638
+ const assignablePropertiesPrefix = 'wp:action-assign-';
639
+ // Get all the properties that the current user is able to assign normally author, categories, tags,
640
+ // and custom taxonomies.
641
+ const assignableProperties = Object.keys(item?._links || {}).filter(property => property.startsWith(assignablePropertiesPrefix)).map(property => property.slice(assignablePropertiesPrefix.length));
642
+ assignableProperties.forEach(property => {
643
+ if (item[property]) {
644
+ newItemOject[property] = item[property];
645
+ }
639
646
  });
640
- if (onActionPerformed) {
641
- onActionPerformed([newItem]);
647
+ setIsCreatingPage(true);
648
+ try {
649
+ const newItem = await saveEntityRecord('postType', item.type, newItemOject, {
650
+ throwOnError: true
651
+ });
652
+ createSuccessNotice((0, _i18n.sprintf)(
653
+ // translators: %s: Title of the created template e.g: "Category".
654
+ (0, _i18n.__)('"%s" successfully created.'), (0, _htmlEntities.decodeEntities)(newItem.title?.rendered || title)), {
655
+ id: 'duplicate-post-action',
656
+ type: 'snackbar'
657
+ });
658
+ if (onActionPerformed) {
659
+ onActionPerformed([newItem]);
660
+ }
661
+ } catch (error) {
662
+ const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while duplicating the page.');
663
+ createErrorNotice(errorMessage, {
664
+ type: 'snackbar'
665
+ });
666
+ } finally {
667
+ setIsCreatingPage(false);
668
+ closeModal();
642
669
  }
643
- } catch (error) {
644
- const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while duplicating the page.');
645
- createErrorNotice(errorMessage, {
646
- type: 'snackbar'
647
- });
648
- } finally {
649
- setIsCreatingPage(false);
650
- closeModal();
651
670
  }
652
- }
653
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
654
- onSubmit: createPage,
655
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
656
- spacing: 3,
657
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
658
- label: (0, _i18n.__)('Title'),
659
- onChange: setTitle,
660
- placeholder: (0, _i18n.__)('No title'),
661
- value: title
662
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
663
- spacing: 2,
664
- justify: "end",
665
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
666
- variant: "tertiary",
667
- onClick: closeModal,
668
- children: (0, _i18n.__)('Cancel')
669
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
670
- variant: "primary",
671
- type: "submit",
672
- isBusy: isCreatingPage,
673
- "aria-disabled": isCreatingPage,
674
- children: (0, _i18n._x)('Duplicate', 'action label')
671
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
672
+ onSubmit: createPage,
673
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
674
+ spacing: 3,
675
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
676
+ label: (0, _i18n.__)('Title'),
677
+ onChange: setTitle,
678
+ placeholder: (0, _i18n.__)('No title'),
679
+ value: title
680
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
681
+ spacing: 2,
682
+ justify: "end",
683
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
684
+ variant: "tertiary",
685
+ onClick: closeModal,
686
+ children: (0, _i18n.__)('Cancel')
687
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
688
+ variant: "primary",
689
+ type: "submit",
690
+ isBusy: isCreatingPage,
691
+ "aria-disabled": isCreatingPage,
692
+ children: (0, _i18n._x)('Duplicate', 'action label')
693
+ })]
675
694
  })]
676
- })]
677
- })
678
- });
679
- }
695
+ })
696
+ });
697
+ }
698
+ }, [userCanCreatePost]);
680
699
  };
681
700
  const isTemplatePartRevertable = item => {
682
701
  if (!item) {
@@ -697,7 +716,6 @@ const resetTemplateAction = {
697
716
  RenderModal: ({
698
717
  items,
699
718
  closeModal,
700
- onActionStart,
701
719
  onActionPerformed
702
720
  }) => {
703
721
  const [isBusy, setIsBusy] = (0, _element.useState)(false);
@@ -761,9 +779,6 @@ const resetTemplateAction = {
761
779
  variant: "primary",
762
780
  onClick: async () => {
763
781
  setIsBusy(true);
764
- if (onActionStart) {
765
- onActionStart(items);
766
- }
767
782
  await onConfirm(items);
768
783
  onActionPerformed?.(items);
769
784
  setIsBusy(false);
@@ -839,25 +854,31 @@ function usePostActions({
839
854
  context
840
855
  }) {
841
856
  const {
857
+ defaultActions,
842
858
  postTypeObject,
859
+ userCanCreatePostType,
843
860
  resource,
844
- cachedCanUserResolvers,
845
- userCanCreatePostType
861
+ cachedCanUserResolvers
846
862
  } = (0, _data.useSelect)(select => {
847
863
  const {
848
864
  getPostType,
849
- getCachedResolvers,
850
- canUser
865
+ canUser,
866
+ getCachedResolvers
851
867
  } = select(_coreData.store);
868
+ const {
869
+ getEntityActions
870
+ } = (0, _lockUnlock.unlock)(select(_store.store));
852
871
  const _postTypeObject = getPostType(postType);
853
872
  const _resource = _postTypeObject?.rest_base || '';
854
873
  return {
855
874
  postTypeObject: _postTypeObject,
875
+ defaultActions: getEntityActions('postType', postType),
876
+ userCanCreatePostType: canUser('create', _resource),
856
877
  resource: _resource,
857
- cachedCanUserResolvers: getCachedResolvers()?.canUser,
858
- userCanCreatePostType: canUser('create', _resource)
878
+ cachedCanUserResolvers: getCachedResolvers()?.canUser
859
879
  };
860
880
  }, [postType]);
881
+ const duplicatePostAction = useDuplicatePostAction(postType);
861
882
  const trashPostActionForPostType = useTrashPostAction(resource);
862
883
  const permanentlyDeletePostActionForPostType = usePermanentlyDeletePostAction(resource);
863
884
  const renamePostActionForPostType = useRenamePostAction(resource);
@@ -871,7 +892,7 @@ function usePostActions({
871
892
  if (!isLoaded) {
872
893
  return [];
873
894
  }
874
- let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && _exportPatternAction.exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType].filter(Boolean);
895
+ let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostActionForPostType, isPattern && _exportPatternAction.exportPatternAsJSONAction, isTemplateOrTemplatePart ? resetTemplateAction : restorePostActionForPostType, isTemplateOrTemplatePart || isPattern ? deletePostAction : trashPostActionForPostType, !isTemplateOrTemplatePart && permanentlyDeletePostActionForPostType, ...defaultActions].filter(Boolean);
875
896
  // Filter actions based on provided context. If not provided
876
897
  // all actions are returned. We'll have a single entry for getting the actions
877
898
  // and the consumer should provide the context to filter the actions, if needed.
@@ -890,7 +911,9 @@ function usePostActions({
890
911
  const existingCallback = actions[i].callback;
891
912
  actions[i] = {
892
913
  ...actions[i],
893
- callback: (items, _onActionPerformed) => {
914
+ callback: (items, {
915
+ _onActionPerformed
916
+ }) => {
894
917
  existingCallback(items, _items => {
895
918
  if (_onActionPerformed) {
896
919
  _onActionPerformed(_items);
@@ -923,6 +946,6 @@ function usePostActions({
923
946
  // We are making this use memo depend on cachedCanUserResolvers as a way to make the component using this hook re-render
924
947
  // when user capabilities are resolved. This makes sure the isEligible functions of actions dependent on capabilities are re-evaluated.
925
948
  // eslint-disable-next-line react-hooks/exhaustive-deps
926
- }, [isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable, permanentlyDeletePostActionForPostType, restorePostActionForPostType, renamePostActionForPostType, trashPostActionForPostType, onActionPerformed, isLoaded, supportsRevisions, supportsTitle, context, userCanCreatePostType, cachedCanUserResolvers]);
949
+ }, [defaultActions, userCanCreatePostType, isTemplateOrTemplatePart, isPattern, postTypeObject?.viewable, duplicatePostAction, trashPostActionForPostType, restorePostActionForPostType, renamePostActionForPostType, permanentlyDeletePostActionForPostType, onActionPerformed, isLoaded, supportsRevisions, supportsTitle, context, cachedCanUserResolvers]);
927
950
  }
928
951
  //# sourceMappingURL=actions.js.map