@wordpress/editor 14.5.0 → 14.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/bindings/post-meta.js +2 -2
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +1 -0
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/global-styles-provider/index.js +17 -4
- package/build/components/global-styles-provider/index.js.map +1 -1
- package/build/components/inserter-sidebar/index.js +5 -2
- package/build/components/inserter-sidebar/index.js.map +1 -1
- package/build/components/page-attributes/parent.js +6 -5
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/post-actions/actions.js +4 -499
- package/build/components/post-actions/actions.js.map +1 -1
- package/build/components/post-actions/index.js +8 -17
- package/build/components/post-actions/index.js.map +1 -1
- package/build/components/post-card-panel/index.js +20 -20
- package/build/components/post-card-panel/index.js.map +1 -1
- package/build/components/post-featured-image/index.js +2 -0
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-publish-panel/postpublish.js +4 -0
- package/build/components/post-publish-panel/postpublish.js.map +1 -1
- package/build/components/post-slug/index.js +1 -0
- package/build/components/post-slug/index.js.map +1 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js +2 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build/components/post-url/index.js +6 -5
- package/build/components/post-url/index.js.map +1 -1
- package/build/components/sidebar/post-summary.js +10 -7
- package/build/components/sidebar/post-summary.js.map +1 -1
- package/build/components/template-content-panel/index.js +1 -1
- package/build/components/template-content-panel/index.js.map +1 -1
- package/build/dataviews/actions/duplicate-pattern.js +48 -0
- package/build/dataviews/actions/duplicate-pattern.js.map +1 -0
- package/build/dataviews/actions/duplicate-post.js +146 -0
- package/build/dataviews/actions/duplicate-post.js.map +1 -0
- package/build/dataviews/actions/duplicate-post.native.js +9 -0
- package/build/dataviews/actions/duplicate-post.native.js.map +1 -0
- package/build/dataviews/actions/duplicate-template-part.js +67 -0
- package/build/dataviews/actions/duplicate-template-part.js.map +1 -0
- package/build/dataviews/actions/rename-post.js +125 -0
- package/build/dataviews/actions/rename-post.js.map +1 -0
- package/build/dataviews/actions/reorder-page.js +116 -0
- package/build/dataviews/actions/reorder-page.js.map +1 -0
- package/build/dataviews/actions/reorder-page.native.js +9 -0
- package/build/dataviews/actions/reorder-page.native.js.map +1 -0
- package/build/dataviews/actions/reset-post.js +1 -1
- package/build/dataviews/actions/reset-post.js.map +1 -1
- package/build/dataviews/actions/utils.js +9 -1
- package/build/dataviews/actions/utils.js.map +1 -1
- package/build/dataviews/actions/view-post-revisions.js +49 -0
- package/build/dataviews/actions/view-post-revisions.js.map +1 -0
- package/build/dataviews/actions/view-post.js +36 -0
- package/build/dataviews/actions/view-post.js.map +1 -0
- package/build/dataviews/fields/index.js +32 -0
- package/build/dataviews/fields/index.js.map +1 -0
- package/build/dataviews/store/private-actions.js +16 -2
- package/build/dataviews/store/private-actions.js.map +1 -1
- package/build/dataviews/types.js.map +1 -1
- package/build/private-apis.js +2 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/private-actions.js +1 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/utils/is-template-revertable.js +1 -1
- package/build/store/utils/is-template-revertable.js.map +1 -1
- package/build-module/bindings/post-meta.js +2 -2
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +1 -0
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/global-styles-provider/index.js +17 -4
- package/build-module/components/global-styles-provider/index.js.map +1 -1
- package/build-module/components/inserter-sidebar/index.js +5 -2
- package/build-module/components/inserter-sidebar/index.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +6 -5
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/post-actions/actions.js +5 -501
- package/build-module/components/post-actions/actions.js.map +1 -1
- package/build-module/components/post-actions/index.js +8 -17
- package/build-module/components/post-actions/index.js.map +1 -1
- package/build-module/components/post-card-panel/index.js +20 -20
- package/build-module/components/post-card-panel/index.js.map +1 -1
- package/build-module/components/post-featured-image/index.js +2 -0
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-publish-panel/postpublish.js +4 -0
- package/build-module/components/post-publish-panel/postpublish.js.map +1 -1
- package/build-module/components/post-slug/index.js +1 -0
- package/build-module/components/post-slug/index.js.map +1 -1
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js +3 -2
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build-module/components/post-url/index.js +7 -6
- package/build-module/components/post-url/index.js.map +1 -1
- package/build-module/components/sidebar/post-summary.js +10 -7
- package/build-module/components/sidebar/post-summary.js.map +1 -1
- package/build-module/components/template-content-panel/index.js +1 -1
- package/build-module/components/template-content-panel/index.js.map +1 -1
- package/build-module/dataviews/actions/duplicate-pattern.js +39 -0
- package/build-module/dataviews/actions/duplicate-pattern.js.map +1 -0
- package/build-module/dataviews/actions/duplicate-post.js +139 -0
- package/build-module/dataviews/actions/duplicate-post.js.map +1 -0
- package/build-module/dataviews/actions/duplicate-post.native.js +3 -0
- package/build-module/dataviews/actions/duplicate-post.native.js.map +1 -0
- package/build-module/dataviews/actions/duplicate-template-part.js +58 -0
- package/build-module/dataviews/actions/duplicate-template-part.js.map +1 -0
- package/build-module/dataviews/actions/rename-post.js +118 -0
- package/build-module/dataviews/actions/rename-post.js.map +1 -0
- package/build-module/dataviews/actions/reorder-page.js +111 -0
- package/build-module/dataviews/actions/reorder-page.js.map +1 -0
- package/build-module/dataviews/actions/reorder-page.native.js +3 -0
- package/build-module/dataviews/actions/reorder-page.native.js.map +1 -0
- package/build-module/dataviews/actions/reset-post.js +1 -1
- package/build-module/dataviews/actions/reset-post.js.map +1 -1
- package/build-module/dataviews/actions/utils.js +7 -1
- package/build-module/dataviews/actions/utils.js.map +1 -1
- package/build-module/dataviews/actions/view-post-revisions.js +43 -0
- package/build-module/dataviews/actions/view-post-revisions.js.map +1 -0
- package/build-module/dataviews/actions/view-post.js +30 -0
- package/build-module/dataviews/actions/view-post.js.map +1 -0
- package/build-module/dataviews/fields/index.js +26 -0
- package/build-module/dataviews/fields/index.js.map +1 -0
- package/build-module/dataviews/store/private-actions.js +16 -2
- package/build-module/dataviews/store/private-actions.js.map +1 -1
- package/build-module/dataviews/types.js.map +1 -1
- package/build-module/private-apis.js +2 -0
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-actions.js +1 -1
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/utils/is-template-revertable.js +1 -1
- package/build-module/store/utils/is-template-revertable.js.map +1 -1
- package/build-style/style-rtl.css +2 -31
- package/build-style/style.css +2 -31
- package/build-types/components/create-template-part-modal/index.d.ts.map +1 -1
- package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
- package/build-types/components/inserter-sidebar/index.d.ts.map +1 -1
- package/build-types/components/page-attributes/parent.d.ts.map +1 -1
- package/build-types/components/post-actions/actions.d.ts +1 -26
- package/build-types/components/post-actions/actions.d.ts.map +1 -1
- package/build-types/components/post-actions/index.d.ts +3 -2
- package/build-types/components/post-actions/index.d.ts.map +1 -1
- package/build-types/components/post-card-panel/index.d.ts +4 -2
- package/build-types/components/post-card-panel/index.d.ts.map +1 -1
- package/build-types/components/post-slug/index.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts +1 -17
- package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
- package/build-types/components/post-url/index.d.ts.map +1 -1
- package/build-types/components/sidebar/post-summary.d.ts.map +1 -1
- package/build-types/components/template-content-panel/index.d.ts.map +1 -1
- package/build-types/dataviews/actions/duplicate-pattern.d.ts +5 -0
- package/build-types/dataviews/actions/duplicate-pattern.d.ts.map +1 -0
- package/build-types/dataviews/actions/duplicate-post.d.ts +5 -0
- package/build-types/dataviews/actions/duplicate-post.d.ts.map +1 -0
- package/build-types/dataviews/actions/duplicate-post.native.d.ts +3 -0
- package/build-types/dataviews/actions/duplicate-post.native.d.ts.map +1 -0
- package/build-types/dataviews/actions/duplicate-template-part.d.ts +5 -0
- package/build-types/dataviews/actions/duplicate-template-part.d.ts.map +1 -0
- package/build-types/dataviews/actions/rename-post.d.ts +5 -0
- package/build-types/dataviews/actions/rename-post.d.ts.map +1 -0
- package/build-types/dataviews/actions/reorder-page.d.ts +8 -0
- package/build-types/dataviews/actions/reorder-page.d.ts.map +1 -0
- package/build-types/dataviews/actions/reorder-page.native.d.ts +3 -0
- package/build-types/dataviews/actions/reorder-page.native.d.ts.map +1 -0
- package/build-types/dataviews/actions/reset-post.d.ts.map +1 -1
- package/build-types/dataviews/actions/utils.d.ts +5 -3
- package/build-types/dataviews/actions/utils.d.ts.map +1 -1
- package/build-types/dataviews/actions/view-post-revisions.d.ts +8 -0
- package/build-types/dataviews/actions/view-post-revisions.d.ts.map +1 -0
- package/build-types/dataviews/actions/view-post.d.ts +8 -0
- package/build-types/dataviews/actions/view-post.d.ts.map +1 -0
- package/build-types/dataviews/fields/index.d.ts +8 -0
- package/build-types/dataviews/fields/index.d.ts.map +1 -0
- package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
- package/build-types/dataviews/types.d.ts +57 -8
- package/build-types/dataviews/types.d.ts.map +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/store/utils/is-template-revertable.d.ts.map +1 -1
- package/package.json +36 -36
- package/src/bindings/post-meta.js +2 -2
- package/src/components/block-manager/style.scss +2 -2
- package/src/components/create-template-part-modal/index.js +1 -0
- package/src/components/error-boundary/style.native.scss +1 -1
- package/src/components/error-boundary/style.scss +1 -1
- package/src/components/global-styles-provider/index.js +16 -3
- package/src/components/inserter-sidebar/index.js +10 -4
- package/src/components/page-attributes/parent.js +13 -9
- package/src/components/post-actions/actions.js +5 -616
- package/src/components/post-actions/index.js +16 -20
- package/src/components/post-card-panel/index.js +28 -27
- package/src/components/post-discussion/style.scss +0 -9
- package/src/components/post-featured-image/index.js +2 -0
- package/src/components/post-format/style.scss +0 -6
- package/src/components/post-publish-panel/postpublish.js +8 -2
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +8 -8
- package/src/components/post-slug/index.js +1 -0
- package/src/components/post-status/style.scss +0 -19
- package/src/components/post-taxonomies/hierarchical-term-selector.js +3 -1
- package/src/components/post-url/index.js +15 -9
- package/src/components/save-publish-panels/style.scss +3 -3
- package/src/components/sidebar/post-summary.js +20 -16
- package/src/components/site-discussion/style.scss +0 -14
- package/src/components/template-content-panel/index.js +4 -1
- package/src/dataviews/actions/duplicate-pattern.tsx +40 -0
- package/src/dataviews/actions/duplicate-post.native.tsx +3 -0
- package/src/dataviews/actions/duplicate-post.tsx +174 -0
- package/src/dataviews/actions/duplicate-template-part.tsx +70 -0
- package/src/dataviews/actions/rename-post.tsx +146 -0
- package/src/dataviews/actions/reorder-page.native.tsx +3 -0
- package/src/dataviews/actions/reorder-page.tsx +125 -0
- package/src/dataviews/actions/reset-post.tsx +2 -1
- package/src/dataviews/actions/utils.ts +14 -4
- package/src/dataviews/actions/view-post-revisions.tsx +47 -0
- package/src/dataviews/actions/view-post.tsx +30 -0
- package/src/dataviews/fields/index.ts +26 -0
- package/src/dataviews/store/private-actions.ts +42 -1
- package/src/dataviews/types.ts +47 -6
- package/src/private-apis.js +2 -0
- package/src/store/private-actions.js +1 -1
- package/src/store/utils/is-template-revertable.js +2 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,513 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { external } from '@wordpress/icons';
|
|
5
|
-
import { addQueryArgs } from '@wordpress/url';
|
|
6
4
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
7
|
-
import {
|
|
8
|
-
import { store as coreStore } from '@wordpress/core-data';
|
|
9
|
-
import { __, sprintf, _x } from '@wordpress/i18n';
|
|
10
|
-
import { store as noticesStore } from '@wordpress/notices';
|
|
11
|
-
import { useMemo, useState, useEffect } from '@wordpress/element';
|
|
12
|
-
import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
|
|
13
|
-
import { parse } from '@wordpress/blocks';
|
|
14
|
-
import { DataForm, isItemValid } from '@wordpress/dataviews';
|
|
15
|
-
import { Button, TextControl, __experimentalHStack as HStack, __experimentalVStack as VStack } from '@wordpress/components';
|
|
5
|
+
import { useMemo, useEffect } from '@wordpress/element';
|
|
16
6
|
|
|
17
7
|
/**
|
|
18
8
|
* Internal dependencies
|
|
19
9
|
*/
|
|
20
|
-
import { TEMPLATE_ORIGINS, TEMPLATE_PART_POST_TYPE, TEMPLATE_POST_TYPE, PATTERN_POST_TYPE } from '../../store/constants';
|
|
21
10
|
import { store as editorStore } from '../../store';
|
|
22
11
|
import { unlock } from '../../lock-unlock';
|
|
23
|
-
import { CreateTemplatePartModalContents } from '../create-template-part-modal';
|
|
24
|
-
import { getItemTitle } from '../../dataviews/actions/utils';
|
|
25
|
-
|
|
26
|
-
// Patterns.
|
|
27
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
28
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
|
-
const {
|
|
30
|
-
PATTERN_TYPES,
|
|
31
|
-
CreatePatternModalContents,
|
|
32
|
-
useDuplicatePatternProps
|
|
33
|
-
} = unlock(patternsPrivateApis);
|
|
34
|
-
|
|
35
|
-
// TODO: this should be shared with other components (see post-fields in edit-site).
|
|
36
|
-
const fields = [{
|
|
37
|
-
type: 'text',
|
|
38
|
-
id: 'title',
|
|
39
|
-
label: __('Title'),
|
|
40
|
-
placeholder: __('No title'),
|
|
41
|
-
getValue: ({
|
|
42
|
-
item
|
|
43
|
-
}) => item.title
|
|
44
|
-
}, {
|
|
45
|
-
type: 'integer',
|
|
46
|
-
id: 'menu_order',
|
|
47
|
-
label: __('Order'),
|
|
48
|
-
description: __('Determines the order of pages.')
|
|
49
|
-
}];
|
|
50
|
-
const formDuplicateAction = {
|
|
51
|
-
fields: ['title']
|
|
52
|
-
};
|
|
53
|
-
const formOrderAction = {
|
|
54
|
-
fields: ['menu_order']
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Check if a template is removable.
|
|
59
|
-
*
|
|
60
|
-
* @param {Object} template The template entity to check.
|
|
61
|
-
* @return {boolean} Whether the template is removable.
|
|
62
|
-
*/
|
|
63
|
-
function isTemplateRemovable(template) {
|
|
64
|
-
if (!template) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
// In patterns list page we map the templates parts to a different object
|
|
68
|
-
// than the one returned from the endpoint. This is why we need to check for
|
|
69
|
-
// two props whether is custom or has a theme file.
|
|
70
|
-
return template?.source === TEMPLATE_ORIGINS.custom && !template?.has_theme_file;
|
|
71
|
-
}
|
|
72
|
-
const viewPostAction = {
|
|
73
|
-
id: 'view-post',
|
|
74
|
-
label: __('View'),
|
|
75
|
-
isPrimary: true,
|
|
76
|
-
icon: external,
|
|
77
|
-
isEligible(post) {
|
|
78
|
-
return post.status !== 'trash';
|
|
79
|
-
},
|
|
80
|
-
callback(posts, {
|
|
81
|
-
onActionPerformed
|
|
82
|
-
}) {
|
|
83
|
-
const post = posts[0];
|
|
84
|
-
window.open(post.link, '_blank');
|
|
85
|
-
if (onActionPerformed) {
|
|
86
|
-
onActionPerformed(posts);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
const postRevisionsAction = {
|
|
91
|
-
id: 'view-post-revisions',
|
|
92
|
-
context: 'list',
|
|
93
|
-
label(items) {
|
|
94
|
-
var _items$0$_links$versi;
|
|
95
|
-
const revisionsCount = (_items$0$_links$versi = items[0]._links?.['version-history']?.[0]?.count) !== null && _items$0$_links$versi !== void 0 ? _items$0$_links$versi : 0;
|
|
96
|
-
return sprintf( /* translators: %s: number of revisions */
|
|
97
|
-
__('View revisions (%s)'), revisionsCount);
|
|
98
|
-
},
|
|
99
|
-
isEligible: post => {
|
|
100
|
-
var _post$_links$predeces, _post$_links$version;
|
|
101
|
-
if (post.status === 'trash') {
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
const lastRevisionId = (_post$_links$predeces = post?._links?.['predecessor-version']?.[0]?.id) !== null && _post$_links$predeces !== void 0 ? _post$_links$predeces : null;
|
|
105
|
-
const revisionsCount = (_post$_links$version = post?._links?.['version-history']?.[0]?.count) !== null && _post$_links$version !== void 0 ? _post$_links$version : 0;
|
|
106
|
-
return lastRevisionId && revisionsCount > 1;
|
|
107
|
-
},
|
|
108
|
-
callback(posts, {
|
|
109
|
-
onActionPerformed
|
|
110
|
-
}) {
|
|
111
|
-
const post = posts[0];
|
|
112
|
-
const href = addQueryArgs('revision.php', {
|
|
113
|
-
revision: post?._links?.['predecessor-version']?.[0]?.id
|
|
114
|
-
});
|
|
115
|
-
document.location.href = href;
|
|
116
|
-
if (onActionPerformed) {
|
|
117
|
-
onActionPerformed(posts);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
const renamePostAction = {
|
|
122
|
-
id: 'rename-post',
|
|
123
|
-
label: __('Rename'),
|
|
124
|
-
isEligible(post) {
|
|
125
|
-
if (post.status === 'trash') {
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
// Templates, template parts and patterns have special checks for renaming.
|
|
129
|
-
if (![TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, ...Object.values(PATTERN_TYPES)].includes(post.type)) {
|
|
130
|
-
return post.permissions?.update;
|
|
131
|
-
}
|
|
132
|
-
// In the case of templates, we can only rename custom templates.
|
|
133
|
-
if (post.type === TEMPLATE_POST_TYPE) {
|
|
134
|
-
return isTemplateRemovable(post) && post.is_custom && post.permissions?.update;
|
|
135
|
-
}
|
|
136
|
-
// Make necessary checks for template parts and patterns.
|
|
137
|
-
const isTemplatePart = post.type === TEMPLATE_PART_POST_TYPE;
|
|
138
|
-
const isUserPattern = post.type === PATTERN_TYPES.user;
|
|
139
|
-
// In patterns list page we map the templates parts to a different object
|
|
140
|
-
// than the one returned from the endpoint. This is why we need to check for
|
|
141
|
-
// two props whether is custom or has a theme file.
|
|
142
|
-
const isCustomPattern = isUserPattern || isTemplatePart && post.source === TEMPLATE_ORIGINS.custom;
|
|
143
|
-
const hasThemeFile = post?.has_theme_file;
|
|
144
|
-
return isCustomPattern && !hasThemeFile && post.permissions?.update;
|
|
145
|
-
},
|
|
146
|
-
RenderModal: ({
|
|
147
|
-
items,
|
|
148
|
-
closeModal,
|
|
149
|
-
onActionPerformed
|
|
150
|
-
}) => {
|
|
151
|
-
const [item] = items;
|
|
152
|
-
const [title, setTitle] = useState(() => getItemTitle(item));
|
|
153
|
-
const {
|
|
154
|
-
editEntityRecord,
|
|
155
|
-
saveEditedEntityRecord
|
|
156
|
-
} = useDispatch(coreStore);
|
|
157
|
-
const {
|
|
158
|
-
createSuccessNotice,
|
|
159
|
-
createErrorNotice
|
|
160
|
-
} = useDispatch(noticesStore);
|
|
161
|
-
async function onRename(event) {
|
|
162
|
-
event.preventDefault();
|
|
163
|
-
try {
|
|
164
|
-
await editEntityRecord('postType', item.type, item.id, {
|
|
165
|
-
title
|
|
166
|
-
});
|
|
167
|
-
// Update state before saving rerenders the list.
|
|
168
|
-
setTitle('');
|
|
169
|
-
closeModal();
|
|
170
|
-
// Persist edited entity.
|
|
171
|
-
await saveEditedEntityRecord('postType', item.type, item.id, {
|
|
172
|
-
throwOnError: true
|
|
173
|
-
});
|
|
174
|
-
createSuccessNotice(__('Name updated'), {
|
|
175
|
-
type: 'snackbar'
|
|
176
|
-
});
|
|
177
|
-
onActionPerformed?.(items);
|
|
178
|
-
} catch (error) {
|
|
179
|
-
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('An error occurred while updating the name');
|
|
180
|
-
createErrorNotice(errorMessage, {
|
|
181
|
-
type: 'snackbar'
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
return /*#__PURE__*/_jsx("form", {
|
|
186
|
-
onSubmit: onRename,
|
|
187
|
-
children: /*#__PURE__*/_jsxs(VStack, {
|
|
188
|
-
spacing: "5",
|
|
189
|
-
children: [/*#__PURE__*/_jsx(TextControl, {
|
|
190
|
-
__nextHasNoMarginBottom: true,
|
|
191
|
-
__next40pxDefaultSize: true,
|
|
192
|
-
label: __('Name'),
|
|
193
|
-
value: title,
|
|
194
|
-
onChange: setTitle,
|
|
195
|
-
required: true
|
|
196
|
-
}), /*#__PURE__*/_jsxs(HStack, {
|
|
197
|
-
justify: "right",
|
|
198
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
|
199
|
-
__next40pxDefaultSize: true,
|
|
200
|
-
variant: "tertiary",
|
|
201
|
-
onClick: () => {
|
|
202
|
-
closeModal();
|
|
203
|
-
},
|
|
204
|
-
children: __('Cancel')
|
|
205
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
206
|
-
__next40pxDefaultSize: true,
|
|
207
|
-
variant: "primary",
|
|
208
|
-
type: "submit",
|
|
209
|
-
children: __('Save')
|
|
210
|
-
})]
|
|
211
|
-
})]
|
|
212
|
-
})
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
function ReorderModal({
|
|
217
|
-
items,
|
|
218
|
-
closeModal,
|
|
219
|
-
onActionPerformed
|
|
220
|
-
}) {
|
|
221
|
-
const [item, setItem] = useState(items[0]);
|
|
222
|
-
const orderInput = item.menu_order;
|
|
223
|
-
const {
|
|
224
|
-
editEntityRecord,
|
|
225
|
-
saveEditedEntityRecord
|
|
226
|
-
} = useDispatch(coreStore);
|
|
227
|
-
const {
|
|
228
|
-
createSuccessNotice,
|
|
229
|
-
createErrorNotice
|
|
230
|
-
} = useDispatch(noticesStore);
|
|
231
|
-
async function onOrder(event) {
|
|
232
|
-
event.preventDefault();
|
|
233
|
-
if (!isItemValid(item, fields, formOrderAction)) {
|
|
234
|
-
return;
|
|
235
|
-
}
|
|
236
|
-
try {
|
|
237
|
-
await editEntityRecord('postType', item.type, item.id, {
|
|
238
|
-
menu_order: orderInput
|
|
239
|
-
});
|
|
240
|
-
closeModal();
|
|
241
|
-
// Persist edited entity.
|
|
242
|
-
await saveEditedEntityRecord('postType', item.type, item.id, {
|
|
243
|
-
throwOnError: true
|
|
244
|
-
});
|
|
245
|
-
createSuccessNotice(__('Order updated'), {
|
|
246
|
-
type: 'snackbar'
|
|
247
|
-
});
|
|
248
|
-
onActionPerformed?.(items);
|
|
249
|
-
} catch (error) {
|
|
250
|
-
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('An error occurred while updating the order');
|
|
251
|
-
createErrorNotice(errorMessage, {
|
|
252
|
-
type: 'snackbar'
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
const isSaveDisabled = !isItemValid(item, fields, formOrderAction);
|
|
257
|
-
return /*#__PURE__*/_jsx("form", {
|
|
258
|
-
onSubmit: onOrder,
|
|
259
|
-
children: /*#__PURE__*/_jsxs(VStack, {
|
|
260
|
-
spacing: "5",
|
|
261
|
-
children: [/*#__PURE__*/_jsx("div", {
|
|
262
|
-
children: __('Determines the order of pages. Pages with the same order value are sorted alphabetically. Negative order values are supported.')
|
|
263
|
-
}), /*#__PURE__*/_jsx(DataForm, {
|
|
264
|
-
data: item,
|
|
265
|
-
fields: fields,
|
|
266
|
-
form: formOrderAction,
|
|
267
|
-
onChange: setItem
|
|
268
|
-
}), /*#__PURE__*/_jsxs(HStack, {
|
|
269
|
-
justify: "right",
|
|
270
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
|
271
|
-
__next40pxDefaultSize: true,
|
|
272
|
-
variant: "tertiary",
|
|
273
|
-
onClick: () => {
|
|
274
|
-
closeModal();
|
|
275
|
-
},
|
|
276
|
-
children: __('Cancel')
|
|
277
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
278
|
-
__next40pxDefaultSize: true,
|
|
279
|
-
variant: "primary",
|
|
280
|
-
type: "submit",
|
|
281
|
-
accessibleWhenDisabled: true,
|
|
282
|
-
disabled: isSaveDisabled,
|
|
283
|
-
__experimentalIsFocusable: true,
|
|
284
|
-
children: __('Save')
|
|
285
|
-
})]
|
|
286
|
-
})]
|
|
287
|
-
})
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
function useReorderPagesAction(postType) {
|
|
291
|
-
const supportsPageAttributes = useSelect(select => {
|
|
292
|
-
const {
|
|
293
|
-
getPostType
|
|
294
|
-
} = select(coreStore);
|
|
295
|
-
const postTypeObject = getPostType(postType);
|
|
296
|
-
return !!postTypeObject?.supports?.['page-attributes'];
|
|
297
|
-
}, [postType]);
|
|
298
|
-
return useMemo(() => supportsPageAttributes && {
|
|
299
|
-
id: 'order-pages',
|
|
300
|
-
label: __('Order'),
|
|
301
|
-
isEligible({
|
|
302
|
-
status
|
|
303
|
-
}) {
|
|
304
|
-
return status !== 'trash';
|
|
305
|
-
},
|
|
306
|
-
RenderModal: ReorderModal
|
|
307
|
-
}, [supportsPageAttributes]);
|
|
308
|
-
}
|
|
309
|
-
const useDuplicatePostAction = postType => {
|
|
310
|
-
const userCanCreatePost = useSelect(select => {
|
|
311
|
-
return select(coreStore).canUser('create', {
|
|
312
|
-
kind: 'postType',
|
|
313
|
-
name: postType
|
|
314
|
-
});
|
|
315
|
-
}, [postType]);
|
|
316
|
-
return useMemo(() => userCanCreatePost && {
|
|
317
|
-
id: 'duplicate-post',
|
|
318
|
-
label: _x('Duplicate', 'action label'),
|
|
319
|
-
isEligible({
|
|
320
|
-
status
|
|
321
|
-
}) {
|
|
322
|
-
return status !== 'trash';
|
|
323
|
-
},
|
|
324
|
-
RenderModal: ({
|
|
325
|
-
items,
|
|
326
|
-
closeModal,
|
|
327
|
-
onActionPerformed
|
|
328
|
-
}) => {
|
|
329
|
-
const [item, setItem] = useState({
|
|
330
|
-
...items[0],
|
|
331
|
-
title: sprintf( /* translators: %s: Existing template title */
|
|
332
|
-
__('%s (Copy)'), getItemTitle(items[0]))
|
|
333
|
-
});
|
|
334
|
-
const [isCreatingPage, setIsCreatingPage] = useState(false);
|
|
335
|
-
const {
|
|
336
|
-
saveEntityRecord
|
|
337
|
-
} = useDispatch(coreStore);
|
|
338
|
-
const {
|
|
339
|
-
createSuccessNotice,
|
|
340
|
-
createErrorNotice
|
|
341
|
-
} = useDispatch(noticesStore);
|
|
342
|
-
async function createPage(event) {
|
|
343
|
-
event.preventDefault();
|
|
344
|
-
if (isCreatingPage) {
|
|
345
|
-
return;
|
|
346
|
-
}
|
|
347
|
-
const newItemOject = {
|
|
348
|
-
status: 'draft',
|
|
349
|
-
title: item.title,
|
|
350
|
-
slug: item.title || __('No title'),
|
|
351
|
-
comment_status: item.comment_status,
|
|
352
|
-
content: typeof item.content === 'string' ? item.content : item.content.raw,
|
|
353
|
-
excerpt: item.excerpt.raw,
|
|
354
|
-
meta: item.meta,
|
|
355
|
-
parent: item.parent,
|
|
356
|
-
password: item.password,
|
|
357
|
-
template: item.template,
|
|
358
|
-
format: item.format,
|
|
359
|
-
featured_media: item.featured_media,
|
|
360
|
-
menu_order: item.menu_order,
|
|
361
|
-
ping_status: item.ping_status
|
|
362
|
-
};
|
|
363
|
-
const assignablePropertiesPrefix = 'wp:action-assign-';
|
|
364
|
-
// Get all the properties that the current user is able to assign normally author, categories, tags,
|
|
365
|
-
// and custom taxonomies.
|
|
366
|
-
const assignableProperties = Object.keys(item?._links || {}).filter(property => property.startsWith(assignablePropertiesPrefix)).map(property => property.slice(assignablePropertiesPrefix.length));
|
|
367
|
-
assignableProperties.forEach(property => {
|
|
368
|
-
if (item[property]) {
|
|
369
|
-
newItemOject[property] = item[property];
|
|
370
|
-
}
|
|
371
|
-
});
|
|
372
|
-
setIsCreatingPage(true);
|
|
373
|
-
try {
|
|
374
|
-
const newItem = await saveEntityRecord('postType', item.type, newItemOject, {
|
|
375
|
-
throwOnError: true
|
|
376
|
-
});
|
|
377
|
-
createSuccessNotice(sprintf(
|
|
378
|
-
// translators: %s: Title of the created template e.g: "Category".
|
|
379
|
-
__('"%s" successfully created.'), decodeEntities(newItem.title?.rendered || item.title)), {
|
|
380
|
-
id: 'duplicate-post-action',
|
|
381
|
-
type: 'snackbar'
|
|
382
|
-
});
|
|
383
|
-
if (onActionPerformed) {
|
|
384
|
-
onActionPerformed([newItem]);
|
|
385
|
-
}
|
|
386
|
-
} catch (error) {
|
|
387
|
-
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('An error occurred while duplicating the page.');
|
|
388
|
-
createErrorNotice(errorMessage, {
|
|
389
|
-
type: 'snackbar'
|
|
390
|
-
});
|
|
391
|
-
} finally {
|
|
392
|
-
setIsCreatingPage(false);
|
|
393
|
-
closeModal();
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
return /*#__PURE__*/_jsx("form", {
|
|
397
|
-
onSubmit: createPage,
|
|
398
|
-
children: /*#__PURE__*/_jsxs(VStack, {
|
|
399
|
-
spacing: 3,
|
|
400
|
-
children: [/*#__PURE__*/_jsx(DataForm, {
|
|
401
|
-
data: item,
|
|
402
|
-
fields: fields,
|
|
403
|
-
form: formDuplicateAction,
|
|
404
|
-
onChange: setItem
|
|
405
|
-
}), /*#__PURE__*/_jsxs(HStack, {
|
|
406
|
-
spacing: 2,
|
|
407
|
-
justify: "end",
|
|
408
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
|
409
|
-
variant: "tertiary",
|
|
410
|
-
onClick: closeModal,
|
|
411
|
-
__next40pxDefaultSize: true,
|
|
412
|
-
children: __('Cancel')
|
|
413
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
414
|
-
variant: "primary",
|
|
415
|
-
type: "submit",
|
|
416
|
-
isBusy: isCreatingPage,
|
|
417
|
-
"aria-disabled": isCreatingPage,
|
|
418
|
-
__next40pxDefaultSize: true,
|
|
419
|
-
children: _x('Duplicate', 'action label')
|
|
420
|
-
})]
|
|
421
|
-
})]
|
|
422
|
-
})
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
}, [userCanCreatePost]);
|
|
426
|
-
};
|
|
427
|
-
export const duplicatePatternAction = {
|
|
428
|
-
id: 'duplicate-pattern',
|
|
429
|
-
label: _x('Duplicate', 'action label'),
|
|
430
|
-
isEligible: item => item.type !== TEMPLATE_PART_POST_TYPE,
|
|
431
|
-
modalHeader: _x('Duplicate pattern', 'action label'),
|
|
432
|
-
RenderModal: ({
|
|
433
|
-
items,
|
|
434
|
-
closeModal
|
|
435
|
-
}) => {
|
|
436
|
-
const [item] = items;
|
|
437
|
-
const duplicatedProps = useDuplicatePatternProps({
|
|
438
|
-
pattern: item,
|
|
439
|
-
onSuccess: () => closeModal()
|
|
440
|
-
});
|
|
441
|
-
return /*#__PURE__*/_jsx(CreatePatternModalContents, {
|
|
442
|
-
onClose: closeModal,
|
|
443
|
-
confirmLabel: _x('Duplicate', 'action label'),
|
|
444
|
-
...duplicatedProps
|
|
445
|
-
});
|
|
446
|
-
}
|
|
447
|
-
};
|
|
448
|
-
export const duplicateTemplatePartAction = {
|
|
449
|
-
id: 'duplicate-template-part',
|
|
450
|
-
label: _x('Duplicate', 'action label'),
|
|
451
|
-
isEligible: item => item.type === TEMPLATE_PART_POST_TYPE,
|
|
452
|
-
modalHeader: _x('Duplicate template part', 'action label'),
|
|
453
|
-
RenderModal: ({
|
|
454
|
-
items,
|
|
455
|
-
closeModal
|
|
456
|
-
}) => {
|
|
457
|
-
const [item] = items;
|
|
458
|
-
const blocks = useMemo(() => {
|
|
459
|
-
var _item$blocks;
|
|
460
|
-
return (_item$blocks = item.blocks) !== null && _item$blocks !== void 0 ? _item$blocks : parse(typeof item.content === 'string' ? item.content : item.content.raw, {
|
|
461
|
-
__unstableSkipMigrationLogs: true
|
|
462
|
-
});
|
|
463
|
-
}, [item.content, item.blocks]);
|
|
464
|
-
const {
|
|
465
|
-
createSuccessNotice
|
|
466
|
-
} = useDispatch(noticesStore);
|
|
467
|
-
function onTemplatePartSuccess() {
|
|
468
|
-
createSuccessNotice(sprintf(
|
|
469
|
-
// translators: %s: The new template part's title e.g. 'Call to action (copy)'.
|
|
470
|
-
__('"%s" duplicated.'), getItemTitle(item)), {
|
|
471
|
-
type: 'snackbar',
|
|
472
|
-
id: 'edit-site-patterns-success'
|
|
473
|
-
});
|
|
474
|
-
closeModal();
|
|
475
|
-
}
|
|
476
|
-
return /*#__PURE__*/_jsx(CreateTemplatePartModalContents, {
|
|
477
|
-
blocks: blocks,
|
|
478
|
-
defaultArea: item.area,
|
|
479
|
-
defaultTitle: sprintf( /* translators: %s: Existing template part title */
|
|
480
|
-
__('%s (Copy)'), getItemTitle(item)),
|
|
481
|
-
onCreate: onTemplatePartSuccess,
|
|
482
|
-
onError: closeModal,
|
|
483
|
-
confirmLabel: _x('Duplicate', 'action label')
|
|
484
|
-
});
|
|
485
|
-
}
|
|
486
|
-
};
|
|
487
13
|
export function usePostActions({
|
|
488
14
|
postType,
|
|
489
15
|
onActionPerformed,
|
|
490
16
|
context
|
|
491
17
|
}) {
|
|
492
18
|
const {
|
|
493
|
-
defaultActions
|
|
494
|
-
postTypeObject,
|
|
495
|
-
userCanCreatePostType
|
|
19
|
+
defaultActions
|
|
496
20
|
} = useSelect(select => {
|
|
497
|
-
const {
|
|
498
|
-
getPostType,
|
|
499
|
-
canUser
|
|
500
|
-
} = select(coreStore);
|
|
501
21
|
const {
|
|
502
22
|
getEntityActions
|
|
503
23
|
} = unlock(select(editorStore));
|
|
504
24
|
return {
|
|
505
|
-
|
|
506
|
-
defaultActions: getEntityActions('postType', postType),
|
|
507
|
-
userCanCreatePostType: canUser('create', {
|
|
508
|
-
kind: 'postType',
|
|
509
|
-
name: postType
|
|
510
|
-
})
|
|
25
|
+
defaultActions: getEntityActions('postType', postType)
|
|
511
26
|
};
|
|
512
27
|
}, [postType]);
|
|
513
28
|
const {
|
|
@@ -516,25 +31,14 @@ export function usePostActions({
|
|
|
516
31
|
useEffect(() => {
|
|
517
32
|
registerPostTypeActions(postType);
|
|
518
33
|
}, [registerPostTypeActions, postType]);
|
|
519
|
-
const duplicatePostAction = useDuplicatePostAction(postType);
|
|
520
|
-
const reorderPagesAction = useReorderPagesAction(postType);
|
|
521
|
-
const isTemplateOrTemplatePart = [TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE].includes(postType);
|
|
522
|
-
const isPattern = postType === PATTERN_POST_TYPE;
|
|
523
|
-
const isLoaded = !!postTypeObject;
|
|
524
|
-
const supportsRevisions = !!postTypeObject?.supports?.revisions;
|
|
525
|
-
const supportsTitle = !!postTypeObject?.supports?.title;
|
|
526
34
|
return useMemo(() => {
|
|
527
|
-
if (!isLoaded) {
|
|
528
|
-
return [];
|
|
529
|
-
}
|
|
530
|
-
let actions = [postTypeObject?.viewable && viewPostAction, supportsRevisions && postRevisionsAction, globalThis.IS_GUTENBERG_PLUGIN ? !isTemplateOrTemplatePart && !isPattern && duplicatePostAction : false, isTemplateOrTemplatePart && userCanCreatePostType && duplicateTemplatePartAction, isPattern && userCanCreatePostType && duplicatePatternAction, supportsTitle && renamePostAction, reorderPagesAction, ...defaultActions].filter(Boolean);
|
|
531
35
|
// Filter actions based on provided context. If not provided
|
|
532
36
|
// all actions are returned. We'll have a single entry for getting the actions
|
|
533
37
|
// and the consumer should provide the context to filter the actions, if needed.
|
|
534
38
|
// Actions should also provide the `context` they support, if it's specific, to
|
|
535
39
|
// compare with the provided context to get all the actions.
|
|
536
40
|
// Right now the only supported context is `list`.
|
|
537
|
-
actions =
|
|
41
|
+
const actions = defaultActions.filter(action => {
|
|
538
42
|
if (!action.context) {
|
|
539
43
|
return true;
|
|
540
44
|
}
|
|
@@ -579,6 +83,6 @@ export function usePostActions({
|
|
|
579
83
|
}
|
|
580
84
|
}
|
|
581
85
|
return actions;
|
|
582
|
-
}, [defaultActions,
|
|
86
|
+
}, [defaultActions, onActionPerformed, context]);
|
|
583
87
|
}
|
|
584
88
|
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["external","addQueryArgs","useDispatch","useSelect","decodeEntities","store","coreStore","__","sprintf","_x","noticesStore","useMemo","useState","useEffect","privateApis","patternsPrivateApis","parse","DataForm","isItemValid","Button","TextControl","__experimentalHStack","HStack","__experimentalVStack","VStack","TEMPLATE_ORIGINS","TEMPLATE_PART_POST_TYPE","TEMPLATE_POST_TYPE","PATTERN_POST_TYPE","editorStore","unlock","CreateTemplatePartModalContents","getItemTitle","jsx","_jsx","jsxs","_jsxs","PATTERN_TYPES","CreatePatternModalContents","useDuplicatePatternProps","fields","type","id","label","placeholder","getValue","item","title","description","formDuplicateAction","formOrderAction","isTemplateRemovable","template","source","custom","has_theme_file","viewPostAction","isPrimary","icon","isEligible","post","status","callback","posts","onActionPerformed","window","open","link","postRevisionsAction","context","items","_items$0$_links$versi","revisionsCount","_links","count","_post$_links$predeces","_post$_links$version","lastRevisionId","href","revision","document","location","renamePostAction","Object","values","includes","permissions","update","is_custom","isTemplatePart","isUserPattern","user","isCustomPattern","hasThemeFile","RenderModal","closeModal","setTitle","editEntityRecord","saveEditedEntityRecord","createSuccessNotice","createErrorNotice","onRename","event","preventDefault","throwOnError","error","errorMessage","message","code","onSubmit","children","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required","justify","variant","onClick","ReorderModal","setItem","orderInput","menu_order","onOrder","isSaveDisabled","data","form","accessibleWhenDisabled","disabled","__experimentalIsFocusable","useReorderPagesAction","postType","supportsPageAttributes","select","getPostType","postTypeObject","supports","useDuplicatePostAction","userCanCreatePost","canUser","kind","name","isCreatingPage","setIsCreatingPage","saveEntityRecord","createPage","newItemOject","slug","comment_status","content","raw","excerpt","meta","parent","password","format","featured_media","ping_status","assignablePropertiesPrefix","assignableProperties","keys","filter","property","startsWith","map","slice","length","forEach","newItem","rendered","isBusy","duplicatePatternAction","modalHeader","duplicatedProps","pattern","onSuccess","onClose","confirmLabel","duplicateTemplatePartAction","blocks","_item$blocks","__unstableSkipMigrationLogs","onTemplatePartSuccess","defaultArea","area","defaultTitle","onCreate","onError","usePostActions","defaultActions","userCanCreatePostType","getEntityActions","registerPostTypeActions","duplicatePostAction","reorderPagesAction","isTemplateOrTemplatePart","isPattern","isLoaded","supportsRevisions","revisions","supportsTitle","actions","viewable","globalThis","IS_GUTENBERG_PLUGIN","Boolean","action","i","existingCallback","argsObject","_items","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { external } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse } from '@wordpress/blocks';\nimport { DataForm, isItemValid } from '@wordpress/dataviews';\nimport {\n\tButton,\n\tTextControl,\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 { CreateTemplatePartModalContents } from '../create-template-part-modal';\nimport { getItemTitle } from '../../dataviews/actions/utils';\n\n// Patterns.\nconst { PATTERN_TYPES, CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\n// TODO: this should be shared with other components (see post-fields in edit-site).\nconst fields = [\n\t{\n\t\ttype: 'text',\n\t\tid: 'title',\n\t\tlabel: __( 'Title' ),\n\t\tplaceholder: __( 'No title' ),\n\t\tgetValue: ( { item } ) => item.title,\n\t},\n\t{\n\t\ttype: 'integer',\n\t\tid: 'menu_order',\n\t\tlabel: __( 'Order' ),\n\t\tdescription: __( 'Determines the order of pages.' ),\n\t},\n];\n\nconst formDuplicateAction = {\n\tfields: [ 'title' ],\n};\n\nconst formOrderAction = {\n\tfields: [ 'menu_order' ],\n};\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\ttemplate?.source === TEMPLATE_ORIGINS.custom &&\n\t\t! template?.has_theme_file\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 post.permissions?.update;\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 (\n\t\t\t\tisTemplateRemovable( post ) &&\n\t\t\t\tpost.is_custom &&\n\t\t\t\tpost.permissions?.update\n\t\t\t);\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 && post.source === TEMPLATE_ORIGINS.custom );\n\t\tconst hasThemeFile = post?.has_theme_file;\n\t\treturn isCustomPattern && ! hasThemeFile && post.permissions?.update;\n\t},\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item ] = items;\n\t\tconst [ title, setTitle ] = useState( () => getItemTitle( item ) );\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 ReorderModal( { items, closeModal, onActionPerformed } ) {\n\tconst [ item, setItem ] = useState( items[ 0 ] );\n\tconst orderInput = item.menu_order;\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tasync function onOrder( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( ! isItemValid( item, fields, formOrderAction ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\tmenu_order: orderInput,\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t\t// Persist edited entity.\n\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\tcreateSuccessNotice( __( 'Order updated' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\tonActionPerformed?.( items );\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while updating the order' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t}\n\tconst isSaveDisabled = ! isItemValid( item, fields, formOrderAction );\n\treturn (\n\t\t<form onSubmit={ onOrder }>\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<div>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Determines the order of pages. Pages with the same order value are sorted alphabetically. Negative order values are supported.'\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<DataForm\n\t\t\t\t\tdata={ item }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tform={ formOrderAction }\n\t\t\t\t\tonChange={ setItem }\n\t\t\t\t/>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\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\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\tdisabled={ isSaveDisabled }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n\nfunction useReorderPagesAction( postType ) {\n\tconst supportsPageAttributes = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType } = select( coreStore );\n\t\t\tconst postTypeObject = getPostType( postType );\n\n\t\t\treturn !! postTypeObject?.supports?.[ 'page-attributes' ];\n\t\t},\n\t\t[ postType ]\n\t);\n\n\treturn useMemo(\n\t\t() =>\n\t\t\tsupportsPageAttributes && {\n\t\t\t\tid: 'order-pages',\n\t\t\t\tlabel: __( 'Order' ),\n\t\t\t\tisEligible( { status } ) {\n\t\t\t\t\treturn status !== 'trash';\n\t\t\t\t},\n\t\t\t\tRenderModal: ReorderModal,\n\t\t\t},\n\t\t[ supportsPageAttributes ]\n\t);\n}\n\nconst useDuplicatePostAction = ( postType ) => {\n\tconst userCanCreatePost = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: postType,\n\t\t\t} );\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn useMemo(\n\t\t() =>\n\t\t\tuserCanCreatePost && {\n\t\t\t\tid: 'duplicate-post',\n\t\t\t\tlabel: _x( 'Duplicate', 'action label' ),\n\t\t\t\tisEligible( { status } ) {\n\t\t\t\t\treturn status !== 'trash';\n\t\t\t\t},\n\t\t\t\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\t\t\t\tconst [ item, setItem ] = useState( {\n\t\t\t\t\t\t...items[ 0 ],\n\t\t\t\t\t\ttitle: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Existing template title */\n\t\t\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\n\t\t\t\t\tconst [ isCreatingPage, setIsCreatingPage ] =\n\t\t\t\t\t\tuseState( false );\n\n\t\t\t\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\t\t\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\t\t\t\tuseDispatch( noticesStore );\n\n\t\t\t\t\tasync function createPage( event ) {\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\tif ( isCreatingPage ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newItemOject = {\n\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\ttitle: item.title,\n\t\t\t\t\t\t\tslug: item.title || __( 'No title' ),\n\t\t\t\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t\t\texcerpt: item.excerpt.raw,\n\t\t\t\t\t\t\tmeta: item.meta,\n\t\t\t\t\t\t\tparent: item.parent,\n\t\t\t\t\t\t\tpassword: item.password,\n\t\t\t\t\t\t\ttemplate: item.template,\n\t\t\t\t\t\t\tformat: item.format,\n\t\t\t\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\t\t\t\tping_status: item.ping_status,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst assignablePropertiesPrefix = 'wp:action-assign-';\n\t\t\t\t\t\t// Get all the properties that the current user is able to assign normally author, categories, tags,\n\t\t\t\t\t\t// and custom taxonomies.\n\t\t\t\t\t\tconst assignableProperties = Object.keys(\n\t\t\t\t\t\t\titem?._links || {}\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.filter( ( property ) =>\n\t\t\t\t\t\t\t\tproperty.startsWith(\n\t\t\t\t\t\t\t\t\tassignablePropertiesPrefix\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.map( ( property ) =>\n\t\t\t\t\t\t\t\tproperty.slice(\n\t\t\t\t\t\t\t\t\tassignablePropertiesPrefix.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\tassignableProperties.forEach( ( property ) => {\n\t\t\t\t\t\t\tif ( item[ property ] ) {\n\t\t\t\t\t\t\t\tnewItemOject[ property ] = item[ property ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetIsCreatingPage( true );\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\tnewItemOject,\n\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\tnewItem.title?.rendered || item.title\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{\n\t\t\t\t\t\t\t\t\tid: 'duplicate-post-action',\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\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch ( error ) {\n\t\t\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while duplicating the page.'\n\t\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t\t\t\t<DataForm\n\t\t\t\t\t\t\t\t\tdata={ item }\n\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\tform={ formDuplicateAction }\n\t\t\t\t\t\t\t\t\tonChange={ setItem }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t[ userCanCreatePost ]\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 duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern: item,\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 blocks = useMemo( () => {\n\t\t\treturn (\n\t\t\t\titem.blocks ??\n\t\t\t\tparse(\n\t\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t: item.content.raw,\n\t\t\t\t\t{\n\t\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\t\t}, [ item.content, item.blocks ] );\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\tgetItemTitle( item )\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={ blocks }\n\t\t\t\tdefaultArea={ 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\tgetItemTitle( item )\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 { defaultActions, postTypeObject, userCanCreatePostType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, canUser } = select( coreStore );\n\t\t\tconst { getEntityActions } = unlock( select( editorStore ) );\n\t\t\treturn {\n\t\t\t\tpostTypeObject: getPostType( postType ),\n\t\t\t\tdefaultActions: getEntityActions( 'postType', postType ),\n\t\t\t\tuserCanCreatePostType: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: postType,\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\tconst { registerPostTypeActions } = unlock( useDispatch( editorStore ) );\n\tuseEffect( () => {\n\t\tregisterPostTypeActions( postType );\n\t}, [ registerPostTypeActions, postType ] );\n\n\tconst duplicatePostAction = useDuplicatePostAction( postType );\n\tconst reorderPagesAction = useReorderPagesAction( postType );\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 && renamePostAction,\n\t\t\treorderPagesAction,\n\t\t\t...defaultActions,\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, argsObject ) => {\n\t\t\t\t\t\t\texistingCallback( items, {\n\t\t\t\t\t\t\t\t...argsObject,\n\t\t\t\t\t\t\t\tonActionPerformed: ( _items ) => {\n\t\t\t\t\t\t\t\t\tif ( argsObject?.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\targsObject.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t_items\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\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}, [\n\t\tdefaultActions,\n\t\tuserCanCreatePostType,\n\t\tisTemplateOrTemplatePart,\n\t\tisPattern,\n\t\tpostTypeObject?.viewable,\n\t\tduplicatePostAction,\n\t\treorderPagesAction,\n\t\tonActionPerformed,\n\t\tisLoaded,\n\t\tsupportsRevisions,\n\t\tsupportsTitle,\n\t\tcontext,\n\t] );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,kBAAkB;AAC3C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,EAAE,EAAEC,OAAO,EAAEC,EAAE,QAAQ,iBAAiB;AACjD,SAASJ,KAAK,IAAIK,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,OAAO,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;AACjE,SAASC,WAAW,IAAIC,mBAAmB,QAAQ,qBAAqB;AACxE,SAASC,KAAK,QAAQ,mBAAmB;AACzC,SAASC,QAAQ,EAAEC,WAAW,QAAQ,sBAAsB;AAC5D,SACCC,MAAM,EACNC,WAAW,EACXC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;AACA,SACCC,gBAAgB,EAChBC,uBAAuB,EACvBC,kBAAkB,EAClBC,iBAAiB,QACX,uBAAuB;AAC9B,SAASvB,KAAK,IAAIwB,WAAW,QAAQ,aAAa;AAClD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,+BAA+B,QAAQ,+BAA+B;AAC/E,SAASC,YAAY,QAAQ,+BAA+B;;AAE5D;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AACA,MAAM;EAAEC,aAAa;EAAEC,0BAA0B;EAAEC;AAAyB,CAAC,GAC5ET,MAAM,CAAEf,mBAAoB,CAAC;;AAE9B;AACA,MAAMyB,MAAM,GAAG,CACd;EACCC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,OAAO;EACXC,KAAK,EAAEpC,EAAE,CAAE,OAAQ,CAAC;EACpBqC,WAAW,EAAErC,EAAE,CAAE,UAAW,CAAC;EAC7BsC,QAAQ,EAAEA,CAAE;IAAEC;EAAK,CAAC,KAAMA,IAAI,CAACC;AAChC,CAAC,EACD;EACCN,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,YAAY;EAChBC,KAAK,EAAEpC,EAAE,CAAE,OAAQ,CAAC;EACpByC,WAAW,EAAEzC,EAAE,CAAE,gCAAiC;AACnD,CAAC,CACD;AAED,MAAM0C,mBAAmB,GAAG;EAC3BT,MAAM,EAAE,CAAE,OAAO;AAClB,CAAC;AAED,MAAMU,eAAe,GAAG;EACvBV,MAAM,EAAE,CAAE,YAAY;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,mBAAmBA,CAAEC,QAAQ,EAAG;EACxC,IAAK,CAAEA,QAAQ,EAAG;IACjB,OAAO,KAAK;EACb;EACA;EACA;EACA;EACA,OACCA,QAAQ,EAAEC,MAAM,KAAK5B,gBAAgB,CAAC6B,MAAM,IAC5C,CAAEF,QAAQ,EAAEG,cAAc;AAE5B;AAEA,MAAMC,cAAc,GAAG;EACtBd,EAAE,EAAE,WAAW;EACfC,KAAK,EAAEpC,EAAE,CAAE,MAAO,CAAC;EACnBkD,SAAS,EAAE,IAAI;EACfC,IAAI,EAAE1D,QAAQ;EACd2D,UAAUA,CAAEC,IAAI,EAAG;IAClB,OAAOA,IAAI,CAACC,MAAM,KAAK,OAAO;EAC/B,CAAC;EACDC,QAAQA,CAAEC,KAAK,EAAE;IAAEC;EAAkB,CAAC,EAAG;IACxC,MAAMJ,IAAI,GAAGG,KAAK,CAAE,CAAC,CAAE;IACvBE,MAAM,CAACC,IAAI,CAAEN,IAAI,CAACO,IAAI,EAAE,QAAS,CAAC;IAClC,IAAKH,iBAAiB,EAAG;MACxBA,iBAAiB,CAAED,KAAM,CAAC;IAC3B;EACD;AACD,CAAC;AAED,MAAMK,mBAAmB,GAAG;EAC3B1B,EAAE,EAAE,qBAAqB;EACzB2B,OAAO,EAAE,MAAM;EACf1B,KAAKA,CAAE2B,KAAK,EAAG;IAAA,IAAAC,qBAAA;IACd,MAAMC,cAAc,IAAAD,qBAAA,GACnBD,KAAK,CAAE,CAAC,CAAE,CAACG,MAAM,GAAI,iBAAiB,CAAE,GAAI,CAAC,CAAE,EAAEC,KAAK,cAAAH,qBAAA,cAAAA,qBAAA,GAAI,CAAC;IAC5D,OAAO/D,OAAO,EACb;IACAD,EAAE,CAAE,qBAAsB,CAAC,EAC3BiE,cACD,CAAC;EACF,CAAC;EACDb,UAAU,EAAIC,IAAI,IAAM;IAAA,IAAAe,qBAAA,EAAAC,oBAAA;IACvB,IAAKhB,IAAI,CAACC,MAAM,KAAK,OAAO,EAAG;MAC9B,OAAO,KAAK;IACb;IACA,MAAMgB,cAAc,IAAAF,qBAAA,GACnBf,IAAI,EAAEa,MAAM,GAAI,qBAAqB,CAAE,GAAI,CAAC,CAAE,EAAE/B,EAAE,cAAAiC,qBAAA,cAAAA,qBAAA,GAAI,IAAI;IAC3D,MAAMH,cAAc,IAAAI,oBAAA,GACnBhB,IAAI,EAAEa,MAAM,GAAI,iBAAiB,CAAE,GAAI,CAAC,CAAE,EAAEC,KAAK,cAAAE,oBAAA,cAAAA,oBAAA,GAAI,CAAC;IACvD,OAAOC,cAAc,IAAIL,cAAc,GAAG,CAAC;EAC5C,CAAC;EACDV,QAAQA,CAAEC,KAAK,EAAE;IAAEC;EAAkB,CAAC,EAAG;IACxC,MAAMJ,IAAI,GAAGG,KAAK,CAAE,CAAC,CAAE;IACvB,MAAMe,IAAI,GAAG7E,YAAY,CAAE,cAAc,EAAE;MAC1C8E,QAAQ,EAAEnB,IAAI,EAAEa,MAAM,GAAI,qBAAqB,CAAE,GAAI,CAAC,CAAE,EAAE/B;IAC3D,CAAE,CAAC;IACHsC,QAAQ,CAACC,QAAQ,CAACH,IAAI,GAAGA,IAAI;IAC7B,IAAKd,iBAAiB,EAAG;MACxBA,iBAAiB,CAAED,KAAM,CAAC;IAC3B;EACD;AACD,CAAC;AAED,MAAMmB,gBAAgB,GAAG;EACxBxC,EAAE,EAAE,aAAa;EACjBC,KAAK,EAAEpC,EAAE,CAAE,QAAS,CAAC;EACrBoD,UAAUA,CAAEC,IAAI,EAAG;IAClB,IAAKA,IAAI,CAACC,MAAM,KAAK,OAAO,EAAG;MAC9B,OAAO,KAAK;IACb;IACA;IACA,IACC,CAAE,CACDlC,kBAAkB,EAClBD,uBAAuB,EACvB,GAAGyD,MAAM,CAACC,MAAM,CAAE/C,aAAc,CAAC,CACjC,CAACgD,QAAQ,CAAEzB,IAAI,CAACnB,IAAK,CAAC,EACtB;MACD,OAAOmB,IAAI,CAAC0B,WAAW,EAAEC,MAAM;IAChC;IACA;IACA,IAAK3B,IAAI,CAACnB,IAAI,KAAKd,kBAAkB,EAAG;MACvC,OACCwB,mBAAmB,CAAES,IAAK,CAAC,IAC3BA,IAAI,CAAC4B,SAAS,IACd5B,IAAI,CAAC0B,WAAW,EAAEC,MAAM;IAE1B;IACA;IACA,MAAME,cAAc,GAAG7B,IAAI,CAACnB,IAAI,KAAKf,uBAAuB;IAC5D,MAAMgE,aAAa,GAAG9B,IAAI,CAACnB,IAAI,KAAKJ,aAAa,CAACsD,IAAI;IACtD;IACA;IACA;IACA,MAAMC,eAAe,GACpBF,aAAa,IACXD,cAAc,IAAI7B,IAAI,CAACP,MAAM,KAAK5B,gBAAgB,CAAC6B,MAAQ;IAC9D,MAAMuC,YAAY,GAAGjC,IAAI,EAAEL,cAAc;IACzC,OAAOqC,eAAe,IAAI,CAAEC,YAAY,IAAIjC,IAAI,CAAC0B,WAAW,EAAEC,MAAM;EACrE,CAAC;EACDO,WAAW,EAAEA,CAAE;IAAExB,KAAK;IAAEyB,UAAU;IAAE/B;EAAkB,CAAC,KAAM;IAC5D,MAAM,CAAElB,IAAI,CAAE,GAAGwB,KAAK;IACtB,MAAM,CAAEvB,KAAK,EAAEiD,QAAQ,CAAE,GAAGpF,QAAQ,CAAE,MAAMoB,YAAY,CAAEc,IAAK,CAAE,CAAC;IAClE,MAAM;MAAEmD,gBAAgB;MAAEC;IAAuB,CAAC,GACjDhG,WAAW,CAAEI,SAAU,CAAC;IACzB,MAAM;MAAE6F,mBAAmB;MAAEC;IAAkB,CAAC,GAC/ClG,WAAW,CAAEQ,YAAa,CAAC;IAE5B,eAAe2F,QAAQA,CAAEC,KAAK,EAAG;MAChCA,KAAK,CAACC,cAAc,CAAC,CAAC;MACtB,IAAI;QACH,MAAMN,gBAAgB,CAAE,UAAU,EAAEnD,IAAI,CAACL,IAAI,EAAEK,IAAI,CAACJ,EAAE,EAAE;UACvDK;QACD,CAAE,CAAC;QACH;QACAiD,QAAQ,CAAE,EAAG,CAAC;QACdD,UAAU,CAAC,CAAC;QACZ;QACA,MAAMG,sBAAsB,CAAE,UAAU,EAAEpD,IAAI,CAACL,IAAI,EAAEK,IAAI,CAACJ,EAAE,EAAE;UAC7D8D,YAAY,EAAE;QACf,CAAE,CAAC;QACHL,mBAAmB,CAAE5F,EAAE,CAAE,cAAe,CAAC,EAAE;UAC1CkC,IAAI,EAAE;QACP,CAAE,CAAC;QACHuB,iBAAiB,GAAIM,KAAM,CAAC;MAC7B,CAAC,CAAC,OAAQmC,KAAK,EAAG;QACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACbpG,EAAE,CAAE,2CAA4C,CAAC;QACrD6F,iBAAiB,CAAEM,YAAY,EAAE;UAAEjE,IAAI,EAAE;QAAW,CAAE,CAAC;MACxD;IACD;IAEA,oBACCP,IAAA;MAAM2E,QAAQ,EAAGR,QAAU;MAAAS,QAAA,eAC1B1E,KAAA,CAACZ,MAAM;QAACuF,OAAO,EAAC,GAAG;QAAAD,QAAA,gBAClB5E,IAAA,CAACd,WAAW;UACX4F,uBAAuB;UACvBC,qBAAqB;UACrBtE,KAAK,EAAGpC,EAAE,CAAE,MAAO,CAAG;UACtB2G,KAAK,EAAGnE,KAAO;UACfoE,QAAQ,EAAGnB,QAAU;UACrBoB,QAAQ;QAAA,CACR,CAAC,eACFhF,KAAA,CAACd,MAAM;UAAC+F,OAAO,EAAC,OAAO;UAAAP,QAAA,gBACtB5E,IAAA,CAACf,MAAM;YACN8F,qBAAqB;YACrBK,OAAO,EAAC,UAAU;YAClBC,OAAO,EAAGA,CAAA,KAAM;cACfxB,UAAU,CAAC,CAAC;YACb,CAAG;YAAAe,QAAA,EAEDvG,EAAE,CAAE,QAAS;UAAC,CACT,CAAC,eACT2B,IAAA,CAACf,MAAM;YACN8F,qBAAqB;YACrBK,OAAO,EAAC,SAAS;YACjB7E,IAAI,EAAC,QAAQ;YAAAqE,QAAA,EAEXvG,EAAE,CAAE,MAAO;UAAC,CACP,CAAC;QAAA,CACF,CAAC;MAAA,CACF;IAAC,CACJ,CAAC;EAET;AACD,CAAC;AAED,SAASiH,YAAYA,CAAE;EAAElD,KAAK;EAAEyB,UAAU;EAAE/B;AAAkB,CAAC,EAAG;EACjE,MAAM,CAAElB,IAAI,EAAE2E,OAAO,CAAE,GAAG7G,QAAQ,CAAE0D,KAAK,CAAE,CAAC,CAAG,CAAC;EAChD,MAAMoD,UAAU,GAAG5E,IAAI,CAAC6E,UAAU;EAClC,MAAM;IAAE1B,gBAAgB;IAAEC;EAAuB,CAAC,GACjDhG,WAAW,CAAEI,SAAU,CAAC;EACzB,MAAM;IAAE6F,mBAAmB;IAAEC;EAAkB,CAAC,GAC/ClG,WAAW,CAAEQ,YAAa,CAAC;EAE5B,eAAekH,OAAOA,CAAEtB,KAAK,EAAG;IAC/BA,KAAK,CAACC,cAAc,CAAC,CAAC;IAEtB,IAAK,CAAErF,WAAW,CAAE4B,IAAI,EAAEN,MAAM,EAAEU,eAAgB,CAAC,EAAG;MACrD;IACD;IAEA,IAAI;MACH,MAAM+C,gBAAgB,CAAE,UAAU,EAAEnD,IAAI,CAACL,IAAI,EAAEK,IAAI,CAACJ,EAAE,EAAE;QACvDiF,UAAU,EAAED;MACb,CAAE,CAAC;MACH3B,UAAU,CAAC,CAAC;MACZ;MACA,MAAMG,sBAAsB,CAAE,UAAU,EAAEpD,IAAI,CAACL,IAAI,EAAEK,IAAI,CAACJ,EAAE,EAAE;QAC7D8D,YAAY,EAAE;MACf,CAAE,CAAC;MACHL,mBAAmB,CAAE5F,EAAE,CAAE,eAAgB,CAAC,EAAE;QAC3CkC,IAAI,EAAE;MACP,CAAE,CAAC;MACHuB,iBAAiB,GAAIM,KAAM,CAAC;IAC7B,CAAC,CAAC,OAAQmC,KAAK,EAAG;MACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACbpG,EAAE,CAAE,4CAA6C,CAAC;MACtD6F,iBAAiB,CAAEM,YAAY,EAAE;QAChCjE,IAAI,EAAE;MACP,CAAE,CAAC;IACJ;EACD;EACA,MAAMoF,cAAc,GAAG,CAAE3G,WAAW,CAAE4B,IAAI,EAAEN,MAAM,EAAEU,eAAgB,CAAC;EACrE,oBACChB,IAAA;IAAM2E,QAAQ,EAAGe,OAAS;IAAAd,QAAA,eACzB1E,KAAA,CAACZ,MAAM;MAACuF,OAAO,EAAC,GAAG;MAAAD,QAAA,gBAClB5E,IAAA;QAAA4E,QAAA,EACGvG,EAAE,CACH,gIACD;MAAC,CACG,CAAC,eACN2B,IAAA,CAACjB,QAAQ;QACR6G,IAAI,EAAGhF,IAAM;QACbN,MAAM,EAAGA,MAAQ;QACjBuF,IAAI,EAAG7E,eAAiB;QACxBiE,QAAQ,EAAGM;MAAS,CACpB,CAAC,eACFrF,KAAA,CAACd,MAAM;QAAC+F,OAAO,EAAC,OAAO;QAAAP,QAAA,gBACtB5E,IAAA,CAACf,MAAM;UACN8F,qBAAqB;UACrBK,OAAO,EAAC,UAAU;UAClBC,OAAO,EAAGA,CAAA,KAAM;YACfxB,UAAU,CAAC,CAAC;UACb,CAAG;UAAAe,QAAA,EAEDvG,EAAE,CAAE,QAAS;QAAC,CACT,CAAC,eACT2B,IAAA,CAACf,MAAM;UACN8F,qBAAqB;UACrBK,OAAO,EAAC,SAAS;UACjB7E,IAAI,EAAC,QAAQ;UACbuF,sBAAsB;UACtBC,QAAQ,EAAGJ,cAAgB;UAC3BK,yBAAyB;UAAApB,QAAA,EAEvBvG,EAAE,CAAE,MAAO;QAAC,CACP,CAAC;MAAA,CACF,CAAC;IAAA,CACF;EAAC,CACJ,CAAC;AAET;AAEA,SAAS4H,qBAAqBA,CAAEC,QAAQ,EAAG;EAC1C,MAAMC,sBAAsB,GAAGlI,SAAS,CACrCmI,MAAM,IAAM;IACb,MAAM;MAAEC;IAAY,CAAC,GAAGD,MAAM,CAAEhI,SAAU,CAAC;IAC3C,MAAMkI,cAAc,GAAGD,WAAW,CAAEH,QAAS,CAAC;IAE9C,OAAO,CAAC,CAAEI,cAAc,EAAEC,QAAQ,GAAI,iBAAiB,CAAE;EAC1D,CAAC,EACD,CAAEL,QAAQ,CACX,CAAC;EAED,OAAOzH,OAAO,CACb,MACC0H,sBAAsB,IAAI;IACzB3F,EAAE,EAAE,aAAa;IACjBC,KAAK,EAAEpC,EAAE,CAAE,OAAQ,CAAC;IACpBoD,UAAUA,CAAE;MAAEE;IAAO,CAAC,EAAG;MACxB,OAAOA,MAAM,KAAK,OAAO;IAC1B,CAAC;IACDiC,WAAW,EAAE0B;EACd,CAAC,EACF,CAAEa,sBAAsB,CACzB,CAAC;AACF;AAEA,MAAMK,sBAAsB,GAAKN,QAAQ,IAAM;EAC9C,MAAMO,iBAAiB,GAAGxI,SAAS,CAChCmI,MAAM,IAAM;IACb,OAAOA,MAAM,CAAEhI,SAAU,CAAC,CAACsI,OAAO,CAAE,QAAQ,EAAE;MAC7CC,IAAI,EAAE,UAAU;MAChBC,IAAI,EAAEV;IACP,CAAE,CAAC;EACJ,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EACD,OAAOzH,OAAO,CACb,MACCgI,iBAAiB,IAAI;IACpBjG,EAAE,EAAE,gBAAgB;IACpBC,KAAK,EAAElC,EAAE,CAAE,WAAW,EAAE,cAAe,CAAC;IACxCkD,UAAUA,CAAE;MAAEE;IAAO,CAAC,EAAG;MACxB,OAAOA,MAAM,KAAK,OAAO;IAC1B,CAAC;IACDiC,WAAW,EAAEA,CAAE;MAAExB,KAAK;MAAEyB,UAAU;MAAE/B;IAAkB,CAAC,KAAM;MAC5D,MAAM,CAAElB,IAAI,EAAE2E,OAAO,CAAE,GAAG7G,QAAQ,CAAE;QACnC,GAAG0D,KAAK,CAAE,CAAC,CAAE;QACbvB,KAAK,EAAEvC,OAAO,EACb;QACAD,EAAE,CAAE,WAAY,CAAC,EACjByB,YAAY,CAAEsC,KAAK,CAAE,CAAC,CAAG,CAC1B;MACD,CAAE,CAAC;MAEH,MAAM,CAAEyE,cAAc,EAAEC,iBAAiB,CAAE,GAC1CpI,QAAQ,CAAE,KAAM,CAAC;MAElB,MAAM;QAAEqI;MAAiB,CAAC,GAAG/I,WAAW,CAAEI,SAAU,CAAC;MACrD,MAAM;QAAE6F,mBAAmB;QAAEC;MAAkB,CAAC,GAC/ClG,WAAW,CAAEQ,YAAa,CAAC;MAE5B,eAAewI,UAAUA,CAAE5C,KAAK,EAAG;QAClCA,KAAK,CAACC,cAAc,CAAC,CAAC;QAEtB,IAAKwC,cAAc,EAAG;UACrB;QACD;QAEA,MAAMI,YAAY,GAAG;UACpBtF,MAAM,EAAE,OAAO;UACfd,KAAK,EAAED,IAAI,CAACC,KAAK;UACjBqG,IAAI,EAAEtG,IAAI,CAACC,KAAK,IAAIxC,EAAE,CAAE,UAAW,CAAC;UACpC8I,cAAc,EAAEvG,IAAI,CAACuG,cAAc;UACnCC,OAAO,EACN,OAAOxG,IAAI,CAACwG,OAAO,KAAK,QAAQ,GAC7BxG,IAAI,CAACwG,OAAO,GACZxG,IAAI,CAACwG,OAAO,CAACC,GAAG;UACpBC,OAAO,EAAE1G,IAAI,CAAC0G,OAAO,CAACD,GAAG;UACzBE,IAAI,EAAE3G,IAAI,CAAC2G,IAAI;UACfC,MAAM,EAAE5G,IAAI,CAAC4G,MAAM;UACnBC,QAAQ,EAAE7G,IAAI,CAAC6G,QAAQ;UACvBvG,QAAQ,EAAEN,IAAI,CAACM,QAAQ;UACvBwG,MAAM,EAAE9G,IAAI,CAAC8G,MAAM;UACnBC,cAAc,EAAE/G,IAAI,CAAC+G,cAAc;UACnClC,UAAU,EAAE7E,IAAI,CAAC6E,UAAU;UAC3BmC,WAAW,EAAEhH,IAAI,CAACgH;QACnB,CAAC;QACD,MAAMC,0BAA0B,GAAG,mBAAmB;QACtD;QACA;QACA,MAAMC,oBAAoB,GAAG7E,MAAM,CAAC8E,IAAI,CACvCnH,IAAI,EAAE2B,MAAM,IAAI,CAAC,CAClB,CAAC,CACCyF,MAAM,CAAIC,QAAQ,IAClBA,QAAQ,CAACC,UAAU,CAClBL,0BACD,CACD,CAAC,CACAM,GAAG,CAAIF,QAAQ,IACfA,QAAQ,CAACG,KAAK,CACbP,0BAA0B,CAACQ,MAC5B,CACD,CAAC;QACFP,oBAAoB,CAACQ,OAAO,CAAIL,QAAQ,IAAM;UAC7C,IAAKrH,IAAI,CAAEqH,QAAQ,CAAE,EAAG;YACvBhB,YAAY,CAAEgB,QAAQ,CAAE,GAAGrH,IAAI,CAAEqH,QAAQ,CAAE;UAC5C;QACD,CAAE,CAAC;QACHnB,iBAAiB,CAAE,IAAK,CAAC;QACzB,IAAI;UACH,MAAMyB,OAAO,GAAG,MAAMxB,gBAAgB,CACrC,UAAU,EACVnG,IAAI,CAACL,IAAI,EACT0G,YAAY,EACZ;YAAE3C,YAAY,EAAE;UAAK,CACtB,CAAC;UAEDL,mBAAmB,CAClB3F,OAAO;UACN;UACAD,EAAE,CAAE,4BAA6B,CAAC,EAClCH,cAAc,CACbqK,OAAO,CAAC1H,KAAK,EAAE2H,QAAQ,IAAI5H,IAAI,CAACC,KACjC,CACD,CAAC,EACD;YACCL,EAAE,EAAE,uBAAuB;YAC3BD,IAAI,EAAE;UACP,CACD,CAAC;UAED,IAAKuB,iBAAiB,EAAG;YACxBA,iBAAiB,CAAE,CAAEyG,OAAO,CAAG,CAAC;UACjC;QACD,CAAC,CAAC,OAAQhE,KAAK,EAAG;UACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACbpG,EAAE,CACF,+CACA,CAAC;UAEL6F,iBAAiB,CAAEM,YAAY,EAAE;YAChCjE,IAAI,EAAE;UACP,CAAE,CAAC;QACJ,CAAC,SAAS;UACTuG,iBAAiB,CAAE,KAAM,CAAC;UAC1BjD,UAAU,CAAC,CAAC;QACb;MACD;MAEA,oBACC7D,IAAA;QAAM2E,QAAQ,EAAGqC,UAAY;QAAApC,QAAA,eAC5B1E,KAAA,CAACZ,MAAM;UAACuF,OAAO,EAAG,CAAG;UAAAD,QAAA,gBACpB5E,IAAA,CAACjB,QAAQ;YACR6G,IAAI,EAAGhF,IAAM;YACbN,MAAM,EAAGA,MAAQ;YACjBuF,IAAI,EAAG9E,mBAAqB;YAC5BkE,QAAQ,EAAGM;UAAS,CACpB,CAAC,eACFrF,KAAA,CAACd,MAAM;YAACyF,OAAO,EAAG,CAAG;YAACM,OAAO,EAAC,KAAK;YAAAP,QAAA,gBAClC5E,IAAA,CAACf,MAAM;cACNmG,OAAO,EAAC,UAAU;cAClBC,OAAO,EAAGxB,UAAY;cACtBkB,qBAAqB;cAAAH,QAAA,EAEnBvG,EAAE,CAAE,QAAS;YAAC,CACT,CAAC,eACT2B,IAAA,CAACf,MAAM;cACNmG,OAAO,EAAC,SAAS;cACjB7E,IAAI,EAAC,QAAQ;cACbkI,MAAM,EAAG5B,cAAgB;cACzB,iBAAgBA,cAAgB;cAChC9B,qBAAqB;cAAAH,QAAA,EAEnBrG,EAAE,CAAE,WAAW,EAAE,cAAe;YAAC,CAC5B,CAAC;UAAA,CACF,CAAC;QAAA,CACF;MAAC,CACJ,CAAC;IAET;EACD,CAAC,EACF,CAAEkI,iBAAiB,CACpB,CAAC;AACF,CAAC;AAED,OAAO,MAAMiC,sBAAsB,GAAG;EACrClI,EAAE,EAAE,mBAAmB;EACvBC,KAAK,EAAElC,EAAE,CAAE,WAAW,EAAE,cAAe,CAAC;EACxCkD,UAAU,EAAIb,IAAI,IAAMA,IAAI,CAACL,IAAI,KAAKf,uBAAuB;EAC7DmJ,WAAW,EAAEpK,EAAE,CAAE,mBAAmB,EAAE,cAAe,CAAC;EACtDqF,WAAW,EAAEA,CAAE;IAAExB,KAAK;IAAEyB;EAAW,CAAC,KAAM;IACzC,MAAM,CAAEjD,IAAI,CAAE,GAAGwB,KAAK;IACtB,MAAMwG,eAAe,GAAGvI,wBAAwB,CAAE;MACjDwI,OAAO,EAAEjI,IAAI;MACbkI,SAAS,EAAEA,CAAA,KAAMjF,UAAU,CAAC;IAC7B,CAAE,CAAC;IACH,oBACC7D,IAAA,CAACI,0BAA0B;MAC1B2I,OAAO,EAAGlF,UAAY;MACtBmF,YAAY,EAAGzK,EAAE,CAAE,WAAW,EAAE,cAAe,CAAG;MAAA,GAC7CqK;IAAe,CACpB,CAAC;EAEJ;AACD,CAAC;AAED,OAAO,MAAMK,2BAA2B,GAAG;EAC1CzI,EAAE,EAAE,yBAAyB;EAC7BC,KAAK,EAAElC,EAAE,CAAE,WAAW,EAAE,cAAe,CAAC;EACxCkD,UAAU,EAAIb,IAAI,IAAMA,IAAI,CAACL,IAAI,KAAKf,uBAAuB;EAC7DmJ,WAAW,EAAEpK,EAAE,CAAE,yBAAyB,EAAE,cAAe,CAAC;EAC5DqF,WAAW,EAAEA,CAAE;IAAExB,KAAK;IAAEyB;EAAW,CAAC,KAAM;IACzC,MAAM,CAAEjD,IAAI,CAAE,GAAGwB,KAAK;IACtB,MAAM8G,MAAM,GAAGzK,OAAO,CAAE,MAAM;MAAA,IAAA0K,YAAA;MAC7B,QAAAA,YAAA,GACCvI,IAAI,CAACsI,MAAM,cAAAC,YAAA,cAAAA,YAAA,GACXrK,KAAK,CACJ,OAAO8B,IAAI,CAACwG,OAAO,KAAK,QAAQ,GAC7BxG,IAAI,CAACwG,OAAO,GACZxG,IAAI,CAACwG,OAAO,CAACC,GAAG,EACnB;QACC+B,2BAA2B,EAAE;MAC9B,CACD,CAAC;IAEH,CAAC,EAAE,CAAExI,IAAI,CAACwG,OAAO,EAAExG,IAAI,CAACsI,MAAM,CAAG,CAAC;IAClC,MAAM;MAAEjF;IAAoB,CAAC,GAAGjG,WAAW,CAAEQ,YAAa,CAAC;IAC3D,SAAS6K,qBAAqBA,CAAA,EAAG;MAChCpF,mBAAmB,CAClB3F,OAAO;MACN;MACAD,EAAE,CAAE,kBAAmB,CAAC,EACxByB,YAAY,CAAEc,IAAK,CACpB,CAAC,EACD;QAAEL,IAAI,EAAE,UAAU;QAAEC,EAAE,EAAE;MAA6B,CACtD,CAAC;MACDqD,UAAU,CAAC,CAAC;IACb;IACA,oBACC7D,IAAA,CAACH,+BAA+B;MAC/BqJ,MAAM,EAAGA,MAAQ;MACjBI,WAAW,EAAG1I,IAAI,CAAC2I,IAAM;MACzBC,YAAY,EAAGlL,OAAO,EACrB;MACAD,EAAE,CAAE,WAAY,CAAC,EACjByB,YAAY,CAAEc,IAAK,CACpB,CAAG;MACH6I,QAAQ,EAAGJ,qBAAuB;MAClCK,OAAO,EAAG7F,UAAY;MACtBmF,YAAY,EAAGzK,EAAE,CAAE,WAAW,EAAE,cAAe;IAAG,CAClD,CAAC;EAEJ;AACD,CAAC;AAED,OAAO,SAASoL,cAAcA,CAAE;EAAEzD,QAAQ;EAAEpE,iBAAiB;EAAEK;AAAQ,CAAC,EAAG;EAC1E,MAAM;IAAEyH,cAAc;IAAEtD,cAAc;IAAEuD;EAAsB,CAAC,GAAG5L,SAAS,CACxEmI,MAAM,IAAM;IACb,MAAM;MAAEC,WAAW;MAAEK;IAAQ,CAAC,GAAGN,MAAM,CAAEhI,SAAU,CAAC;IACpD,MAAM;MAAE0L;IAAiB,CAAC,GAAGlK,MAAM,CAAEwG,MAAM,CAAEzG,WAAY,CAAE,CAAC;IAC5D,OAAO;MACN2G,cAAc,EAAED,WAAW,CAAEH,QAAS,CAAC;MACvC0D,cAAc,EAAEE,gBAAgB,CAAE,UAAU,EAAE5D,QAAS,CAAC;MACxD2D,qBAAqB,EAAEnD,OAAO,CAAE,QAAQ,EAAE;QACzCC,IAAI,EAAE,UAAU;QAChBC,IAAI,EAAEV;MACP,CAAE;IACH,CAAC;EACF,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EACD,MAAM;IAAE6D;EAAwB,CAAC,GAAGnK,MAAM,CAAE5B,WAAW,CAAE2B,WAAY,CAAE,CAAC;EACxEhB,SAAS,CAAE,MAAM;IAChBoL,uBAAuB,CAAE7D,QAAS,CAAC;EACpC,CAAC,EAAE,CAAE6D,uBAAuB,EAAE7D,QAAQ,CAAG,CAAC;EAE1C,MAAM8D,mBAAmB,GAAGxD,sBAAsB,CAAEN,QAAS,CAAC;EAC9D,MAAM+D,kBAAkB,GAAGhE,qBAAqB,CAAEC,QAAS,CAAC;EAC5D,MAAMgE,wBAAwB,GAAG,CAChCzK,kBAAkB,EAClBD,uBAAuB,CACvB,CAAC2D,QAAQ,CAAE+C,QAAS,CAAC;EACtB,MAAMiE,SAAS,GAAGjE,QAAQ,KAAKxG,iBAAiB;EAChD,MAAM0K,QAAQ,GAAG,CAAC,CAAE9D,cAAc;EAClC,MAAM+D,iBAAiB,GAAG,CAAC,CAAE/D,cAAc,EAAEC,QAAQ,EAAE+D,SAAS;EAChE,MAAMC,aAAa,GAAG,CAAC,CAAEjE,cAAc,EAAEC,QAAQ,EAAE1F,KAAK;EACxD,OAAOpC,OAAO,CAAE,MAAM;IACrB,IAAK,CAAE2L,QAAQ,EAAG;MACjB,OAAO,EAAE;IACV;IAEA,IAAII,OAAO,GAAG,CACblE,cAAc,EAAEmE,QAAQ,IAAInJ,cAAc,EAC1C+I,iBAAiB,IAAInI,mBAAmB,EACxCwI,UAAU,CAACC,mBAAmB,GAC3B,CAAET,wBAAwB,IAC1B,CAAEC,SAAS,IACXH,mBAAmB,GACnB,KAAK,EACRE,wBAAwB,IACvBL,qBAAqB,IACrBZ,2BAA2B,EAC5BkB,SAAS,IAAIN,qBAAqB,IAAInB,sBAAsB,EAC5D6B,aAAa,IAAIvH,gBAAgB,EACjCiH,kBAAkB,EAClB,GAAGL,cAAc,CACjB,CAAC5B,MAAM,CAAE4C,OAAQ,CAAC;IACnB;IACA;IACA;IACA;IACA;IACA;IACAJ,OAAO,GAAGA,OAAO,CAACxC,MAAM,CAAI6C,MAAM,IAAM;MACvC,IAAK,CAAEA,MAAM,CAAC1I,OAAO,EAAG;QACvB,OAAO,IAAI;MACZ;MACA,OAAO0I,MAAM,CAAC1I,OAAO,KAAKA,OAAO;IAClC,CAAE,CAAC;IAEH,IAAKL,iBAAiB,EAAG;MACxB,KAAM,IAAIgJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,OAAO,CAACnC,MAAM,EAAE,EAAEyC,CAAC,EAAG;QAC1C,IAAKN,OAAO,CAAEM,CAAC,CAAE,CAAClJ,QAAQ,EAAG;UAC5B,MAAMmJ,gBAAgB,GAAGP,OAAO,CAAEM,CAAC,CAAE,CAAClJ,QAAQ;UAC9C4I,OAAO,CAAEM,CAAC,CAAE,GAAG;YACd,GAAGN,OAAO,CAAEM,CAAC,CAAE;YACflJ,QAAQ,EAAEA,CAAEQ,KAAK,EAAE4I,UAAU,KAAM;cAClCD,gBAAgB,CAAE3I,KAAK,EAAE;gBACxB,GAAG4I,UAAU;gBACblJ,iBAAiB,EAAImJ,MAAM,IAAM;kBAChC,IAAKD,UAAU,EAAElJ,iBAAiB,EAAG;oBACpCkJ,UAAU,CAAClJ,iBAAiB,CAAEmJ,MAAO,CAAC;kBACvC;kBACAnJ,iBAAiB,CAChB0I,OAAO,CAAEM,CAAC,CAAE,CAACtK,EAAE,EACfyK,MACD,CAAC;gBACF;cACD,CAAE,CAAC;YACJ;UACD,CAAC;QACF;QACA,IAAKT,OAAO,CAAEM,CAAC,CAAE,CAAClH,WAAW,EAAG;UAC/B,MAAMsH,mBAAmB,GAAGV,OAAO,CAAEM,CAAC,CAAE,CAAClH,WAAW;UACpD4G,OAAO,CAAEM,CAAC,CAAE,GAAG;YACd,GAAGN,OAAO,CAAEM,CAAC,CAAE;YACflH,WAAW,EAAIuH,KAAK,IAAM;cACzB,oBACCnL,IAAA,CAACkL,mBAAmB;gBAAA,GACdC,KAAK;gBACVrJ,iBAAiB,EAAKmJ,MAAM,IAAM;kBACjC,IAAKE,KAAK,CAACrJ,iBAAiB,EAAG;oBAC9BqJ,KAAK,CAACrJ,iBAAiB,CAAEmJ,MAAO,CAAC;kBAClC;kBACAnJ,iBAAiB,CAChB0I,OAAO,CAAEM,CAAC,CAAE,CAACtK,EAAE,EACfyK,MACD,CAAC;gBACF;cAAG,CACH,CAAC;YAEJ;UACD,CAAC;QACF;MACD;IACD;IAEA,OAAOT,OAAO;EACf,CAAC,EAAE,CACFZ,cAAc,EACdC,qBAAqB,EACrBK,wBAAwB,EACxBC,SAAS,EACT7D,cAAc,EAAEmE,QAAQ,EACxBT,mBAAmB,EACnBC,kBAAkB,EAClBnI,iBAAiB,EACjBsI,QAAQ,EACRC,iBAAiB,EACjBE,aAAa,EACbpI,OAAO,CACN,CAAC;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useDispatch","useSelect","useMemo","useEffect","store","editorStore","unlock","jsx","_jsx","usePostActions","postType","onActionPerformed","context","defaultActions","select","getEntityActions","registerPostTypeActions","actions","filter","action","i","length","callback","existingCallback","items","argsObject","_items","id","RenderModal","ExistingRenderModal","props"],"sources":["@wordpress/editor/src/components/post-actions/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport function usePostActions( { postType, onActionPerformed, context } ) {\n\tconst { defaultActions } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityActions } = unlock( select( editorStore ) );\n\t\t\treturn {\n\t\t\t\tdefaultActions: getEntityActions( 'postType', postType ),\n\t\t\t};\n\t\t},\n\t\t[ postType ]\n\t);\n\n\tconst { registerPostTypeActions } = unlock( useDispatch( editorStore ) );\n\tuseEffect( () => {\n\t\tregisterPostTypeActions( postType );\n\t}, [ registerPostTypeActions, postType ] );\n\n\treturn useMemo( () => {\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\tconst actions = defaultActions.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, argsObject ) => {\n\t\t\t\t\t\t\texistingCallback( items, {\n\t\t\t\t\t\t\t\t...argsObject,\n\t\t\t\t\t\t\t\tonActionPerformed: ( _items ) => {\n\t\t\t\t\t\t\t\t\tif ( argsObject?.onActionPerformed ) {\n\t\t\t\t\t\t\t\t\t\targsObject.onActionPerformed( _items );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonActionPerformed(\n\t\t\t\t\t\t\t\t\t\tactions[ i ].id,\n\t\t\t\t\t\t\t\t\t\t_items\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\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}, [ defaultActions, onActionPerformed, context ] );\n}\n"],"mappings":"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","ignoreList":[]}
|