@wordpress/fields 0.24.0 → 0.24.1-next.ff1cebbba.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/README.md +1 -1
- package/build/actions/delete-post.js +168 -117
- package/build/actions/delete-post.js.map +7 -1
- package/build/actions/duplicate-pattern.js +42 -43
- package/build/actions/duplicate-pattern.js.map +7 -1
- package/build/actions/duplicate-post.js +104 -93
- package/build/actions/duplicate-post.js.map +7 -1
- package/build/actions/duplicate-template-part.js +71 -63
- package/build/actions/duplicate-template-part.js.map +7 -1
- package/build/actions/export-pattern.js +60 -45
- package/build/actions/export-pattern.js.map +7 -1
- package/build/actions/index.js +71 -94
- package/build/actions/index.js.map +7 -1
- package/build/actions/permanently-delete-post.js +161 -132
- package/build/actions/permanently-delete-post.js.map +7 -1
- package/build/actions/rename-post.js +77 -83
- package/build/actions/rename-post.js.map +7 -1
- package/build/actions/reorder-page.js +76 -73
- package/build/actions/reorder-page.js.map +7 -1
- package/build/actions/reset-post.js +214 -165
- package/build/actions/reset-post.js.map +7 -1
- package/build/actions/restore-post.js +91 -75
- package/build/actions/restore-post.js.map +7 -1
- package/build/actions/trash-post.js +167 -127
- package/build/actions/trash-post.js.map +7 -1
- package/build/actions/utils.js +48 -41
- package/build/actions/utils.js.map +7 -1
- package/build/actions/view-post-revisions.js +39 -35
- package/build/actions/view-post-revisions.js.map +7 -1
- package/build/actions/view-post.js +31 -28
- package/build/actions/view-post.js.map +7 -1
- package/build/components/create-template-part-modal/index.js +213 -169
- package/build/components/create-template-part-modal/index.js.map +7 -1
- package/build/components/create-template-part-modal/utils.js +48 -48
- package/build/components/create-template-part-modal/utils.js.map +7 -1
- package/build/fields/author/author-view.js +63 -69
- package/build/fields/author/author-view.js.map +7 -1
- package/build/fields/author/index.js +43 -29
- package/build/fields/author/index.js.map +7 -1
- package/build/fields/comment-status/index.js +42 -32
- package/build/fields/comment-status/index.js.map +7 -1
- package/build/fields/date/date-view.js +84 -58
- package/build/fields/date/date-view.js.map +7 -1
- package/build/fields/date/index.js +39 -25
- package/build/fields/date/index.js.map +7 -1
- package/build/fields/discussion/index.js +36 -32
- package/build/fields/discussion/index.js.map +7 -1
- package/build/fields/featured-image/featured-image-edit.js +115 -97
- package/build/fields/featured-image/featured-image-edit.js.map +7 -1
- package/build/fields/featured-image/featured-image-view.js +41 -34
- package/build/fields/featured-image/featured-image-view.js.map +7 -1
- package/build/fields/featured-image/index.js +31 -26
- package/build/fields/featured-image/index.js.map +7 -1
- package/build/fields/index.js +83 -118
- package/build/fields/index.js.map +7 -1
- package/build/fields/order/index.js +28 -23
- package/build/fields/order/index.js.map +7 -1
- package/build/fields/page-title/index.js +42 -30
- package/build/fields/page-title/index.js.map +7 -1
- package/build/fields/page-title/view.js +38 -41
- package/build/fields/page-title/view.js.map +7 -1
- package/build/fields/parent/index.js +31 -26
- package/build/fields/parent/index.js.map +7 -1
- package/build/fields/parent/parent-edit.js +200 -168
- package/build/fields/parent/parent-edit.js.map +7 -1
- package/build/fields/parent/parent-view.js +40 -31
- package/build/fields/parent/parent-view.js.map +7 -1
- package/build/fields/parent/utils.js +29 -16
- package/build/fields/parent/utils.js.map +7 -1
- package/build/fields/password/edit.js +67 -53
- package/build/fields/password/edit.js.map +7 -1
- package/build/fields/password/index.js +40 -26
- package/build/fields/password/index.js.map +7 -1
- package/build/fields/pattern-title/index.js +42 -30
- package/build/fields/pattern-title/index.js.map +7 -1
- package/build/fields/pattern-title/view.js +43 -41
- package/build/fields/pattern-title/view.js.map +7 -1
- package/build/fields/ping-status/index.js +66 -47
- package/build/fields/ping-status/index.js.map +7 -1
- package/build/fields/slug/index.js +41 -27
- package/build/fields/slug/index.js.map +7 -1
- package/build/fields/slug/slug-edit.js +116 -107
- package/build/fields/slug/slug-edit.js.map +7 -1
- package/build/fields/slug/slug-view.js +30 -23
- package/build/fields/slug/slug-view.js.map +7 -1
- package/build/fields/slug/utils.js +32 -20
- package/build/fields/slug/utils.js.map +7 -1
- package/build/fields/status/index.js +43 -29
- package/build/fields/status/index.js.map +7 -1
- package/build/fields/status/status-elements.js +58 -44
- package/build/fields/status/status-elements.js.map +7 -1
- package/build/fields/status/status-view.js +42 -36
- package/build/fields/status/status-view.js.map +7 -1
- package/build/fields/template/index.js +29 -24
- package/build/fields/template/index.js.map +7 -1
- package/build/fields/template/template-edit.js +167 -142
- package/build/fields/template/template-edit.js.map +7 -1
- package/build/fields/template-title/index.js +42 -30
- package/build/fields/template-title/index.js.map +7 -1
- package/build/fields/title/index.js +42 -32
- package/build/fields/title/index.js.map +7 -1
- package/build/fields/title/view.js +57 -39
- package/build/fields/title/view.js.map +7 -1
- package/build/index.js +39 -36
- package/build/index.js.map +7 -1
- package/build/lock-unlock.js +31 -14
- package/build/lock-unlock.js.map +7 -1
- package/build/mutation/index.js +91 -76
- package/build/mutation/index.js.map +7 -1
- package/build/types.js +16 -5
- package/build/types.js.map +7 -1
- package/build-module/actions/delete-post.js +155 -107
- package/build-module/actions/delete-post.js.map +7 -1
- package/build-module/actions/duplicate-pattern.js +24 -36
- package/build-module/actions/duplicate-pattern.js.map +7 -1
- package/build-module/actions/duplicate-post.js +87 -84
- package/build-module/actions/duplicate-post.js.map +7 -1
- package/build-module/actions/duplicate-template-part.js +51 -58
- package/build-module/actions/duplicate-template-part.js.map +7 -1
- package/build-module/actions/export-pattern.js +40 -39
- package/build-module/actions/export-pattern.js.map +7 -1
- package/build-module/actions/index.js +29 -14
- package/build-module/actions/index.js.map +7 -1
- package/build-module/actions/permanently-delete-post.js +146 -125
- package/build-module/actions/permanently-delete-post.js.map +7 -1
- package/build-module/actions/rename-post.js +63 -77
- package/build-module/actions/rename-post.js.map +7 -1
- package/build-module/actions/reorder-page.js +58 -65
- package/build-module/actions/reorder-page.js.map +7 -1
- package/build-module/actions/reset-post.js +185 -152
- package/build-module/actions/reset-post.js.map +7 -1
- package/build-module/actions/restore-post.js +72 -68
- package/build-module/actions/restore-post.js.map +7 -1
- package/build-module/actions/trash-post.js +152 -119
- package/build-module/actions/trash-post.js.map +7 -1
- package/build-module/actions/utils.js +23 -34
- package/build-module/actions/utils.js.map +7 -1
- package/build-module/actions/view-post-revisions.js +21 -31
- package/build-module/actions/view-post-revisions.js.map +7 -1
- package/build-module/actions/view-post.js +12 -23
- package/build-module/actions/view-post.js.map +7 -1
- package/build-module/components/create-template-part-modal/index.js +201 -154
- package/build-module/components/create-template-part-modal/index.js.map +7 -1
- package/build-module/components/create-template-part-modal/utils.js +26 -43
- package/build-module/components/create-template-part-modal/utils.js.map +7 -1
- package/build-module/fields/author/author-view.js +34 -62
- package/build-module/fields/author/author-view.js.map +7 -1
- package/build-module/fields/author/index.js +14 -24
- package/build-module/fields/author/index.js.map +7 -1
- package/build-module/fields/comment-status/index.js +24 -29
- package/build-module/fields/comment-status/index.js.map +7 -1
- package/build-module/fields/date/date-view.js +66 -53
- package/build-module/fields/date/date-view.js.map +7 -1
- package/build-module/fields/date/index.js +10 -20
- package/build-module/fields/date/index.js.map +7 -1
- package/build-module/fields/discussion/index.js +18 -29
- package/build-module/fields/discussion/index.js.map +7 -1
- package/build-module/fields/featured-image/featured-image-edit.js +93 -90
- package/build-module/fields/featured-image/featured-image-edit.js.map +7 -1
- package/build-module/fields/featured-image/featured-image-view.js +20 -29
- package/build-module/fields/featured-image/featured-image-view.js.map +7 -1
- package/build-module/fields/featured-image/index.js +11 -21
- package/build-module/fields/featured-image/index.js.map +7 -1
- package/build-module/fields/index.js +35 -17
- package/build-module/fields/index.js.map +7 -1
- package/build-module/fields/order/index.js +10 -20
- package/build-module/fields/order/index.js.map +7 -1
- package/build-module/fields/page-title/index.js +13 -25
- package/build-module/fields/page-title/index.js.map +7 -1
- package/build-module/fields/page-title/view.js +20 -37
- package/build-module/fields/page-title/view.js.map +7 -1
- package/build-module/fields/parent/index.js +11 -21
- package/build-module/fields/parent/index.js.map +7 -1
- package/build-module/fields/parent/parent-edit.js +172 -160
- package/build-module/fields/parent/parent-edit.js.map +7 -1
- package/build-module/fields/parent/parent-view.js +19 -27
- package/build-module/fields/parent/parent-view.js.map +7 -1
- package/build-module/fields/parent/utils.js +8 -13
- package/build-module/fields/parent/utils.js.map +7 -1
- package/build-module/fields/password/edit.js +53 -48
- package/build-module/fields/password/edit.js.map +7 -1
- package/build-module/fields/password/index.js +11 -21
- package/build-module/fields/password/index.js.map +7 -1
- package/build-module/fields/pattern-title/index.js +13 -25
- package/build-module/fields/pattern-title/index.js.map +7 -1
- package/build-module/fields/pattern-title/view.js +21 -34
- package/build-module/fields/pattern-title/view.js.map +7 -1
- package/build-module/fields/ping-status/index.js +48 -43
- package/build-module/fields/ping-status/index.js.map +7 -1
- package/build-module/fields/slug/index.js +11 -21
- package/build-module/fields/slug/index.js.map +7 -1
- package/build-module/fields/slug/slug-edit.js +101 -100
- package/build-module/fields/slug/slug-edit.js.map +7 -1
- package/build-module/fields/slug/slug-view.js +9 -16
- package/build-module/fields/slug/slug-view.js.map +7 -1
- package/build-module/fields/slug/utils.js +9 -13
- package/build-module/fields/slug/utils.js.map +7 -1
- package/build-module/fields/status/index.js +13 -23
- package/build-module/fields/status/index.js.map +7 -1
- package/build-module/fields/status/status-elements.js +47 -40
- package/build-module/fields/status/status-elements.js.map +7 -1
- package/build-module/fields/status/status-view.js +14 -31
- package/build-module/fields/status/status-view.js.map +7 -1
- package/build-module/fields/template/index.js +10 -18
- package/build-module/fields/template/index.js.map +7 -1
- package/build-module/fields/template/template-edit.js +147 -130
- package/build-module/fields/template/template-edit.js.map +7 -1
- package/build-module/fields/template-title/index.js +13 -25
- package/build-module/fields/template-title/index.js.map +7 -1
- package/build-module/fields/title/index.js +13 -27
- package/build-module/fields/title/index.js.map +7 -1
- package/build-module/fields/title/view.js +25 -32
- package/build-module/fields/title/view.js.map +7 -1
- package/build-module/index.js +7 -4
- package/build-module/index.js.map +7 -1
- package/build-module/lock-unlock.js +8 -7
- package/build-module/lock-unlock.js.map +7 -1
- package/build-module/mutation/index.js +70 -72
- package/build-module/mutation/index.js.map +7 -1
- package/build-module/types.js +1 -2
- package/build-module/types.js.map +7 -1
- package/build-style/style-rtl.css +4 -139
- package/build-style/style.css +4 -139
- package/build-types/fields/author/author-view.d.ts.map +1 -1
- package/build-types/fields/discussion/index.d.ts.map +1 -1
- package/build-types/fields/featured-image/featured-image-edit.d.ts +2 -2
- package/build-types/fields/featured-image/featured-image-edit.d.ts.map +1 -1
- package/build-types/fields/featured-image/featured-image-view.d.ts +5 -2
- package/build-types/fields/featured-image/featured-image-view.d.ts.map +1 -1
- package/build-types/fields/featured-image/index.d.ts +3 -3
- package/build-types/fields/featured-image/index.d.ts.map +1 -1
- package/build-types/types.d.ts +18 -0
- package/build-types/types.d.ts.map +1 -1
- package/package.json +34 -27
- package/src/components/create-template-part-modal/style.scss +4 -0
- package/src/fields/author/author-view.tsx +3 -17
- package/src/fields/discussion/index.tsx +1 -0
- package/src/fields/featured-image/featured-image-edit.tsx +2 -2
- package/src/fields/featured-image/featured-image-view.tsx +3 -15
- package/src/fields/featured-image/index.ts +3 -3
- package/src/fields/featured-image/style.scss +3 -0
- package/src/fields/template/style.scss +4 -0
- package/src/fields/title/style.scss +1 -1
- package/src/style.scss +9 -8
- package/src/types.ts +18 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/index.native.js +0 -2
- package/build/index.native.js.map +0 -1
- package/build-module/index.native.js +0 -2
- package/build-module/index.native.js.map +0 -1
|
@@ -1,63 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import { store as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import {
|
|
15
|
-
import { getItemTitle } from './utils';
|
|
16
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useDispatch } from "@wordpress/data";
|
|
3
|
+
import { store as coreStore } from "@wordpress/core-data";
|
|
4
|
+
import { __, sprintf, _x } from "@wordpress/i18n";
|
|
5
|
+
import { store as noticesStore } from "@wordpress/notices";
|
|
6
|
+
import { useState } from "@wordpress/element";
|
|
7
|
+
import { DataForm } from "@wordpress/dataviews";
|
|
8
|
+
import {
|
|
9
|
+
Button,
|
|
10
|
+
__experimentalHStack as HStack,
|
|
11
|
+
__experimentalVStack as VStack
|
|
12
|
+
} from "@wordpress/components";
|
|
13
|
+
import { titleField } from "../fields";
|
|
14
|
+
import { getItemTitle } from "./utils";
|
|
17
15
|
const fields = [titleField];
|
|
18
16
|
const formDuplicateAction = {
|
|
19
|
-
fields: [
|
|
17
|
+
fields: ["title"]
|
|
20
18
|
};
|
|
21
19
|
const duplicatePost = {
|
|
22
|
-
id:
|
|
23
|
-
label: _x(
|
|
24
|
-
isEligible({
|
|
25
|
-
status
|
|
26
|
-
}) {
|
|
27
|
-
return status !== 'trash';
|
|
20
|
+
id: "duplicate-post",
|
|
21
|
+
label: _x("Duplicate", "action label"),
|
|
22
|
+
isEligible({ status }) {
|
|
23
|
+
return status !== "trash";
|
|
28
24
|
},
|
|
29
|
-
modalFocusOnMount:
|
|
30
|
-
RenderModal: ({
|
|
31
|
-
items,
|
|
32
|
-
closeModal,
|
|
33
|
-
onActionPerformed
|
|
34
|
-
}) => {
|
|
25
|
+
modalFocusOnMount: "firstContentElement",
|
|
26
|
+
RenderModal: ({ items, closeModal, onActionPerformed }) => {
|
|
35
27
|
const [item, setItem] = useState({
|
|
36
28
|
...items[0],
|
|
37
|
-
title: sprintf(
|
|
38
|
-
|
|
29
|
+
title: sprintf(
|
|
30
|
+
/* translators: %s: Existing post title */
|
|
31
|
+
_x("%s (Copy)", "post"),
|
|
32
|
+
getItemTitle(items[0])
|
|
33
|
+
)
|
|
39
34
|
});
|
|
40
35
|
const [isCreatingPage, setIsCreatingPage] = useState(false);
|
|
41
|
-
const {
|
|
42
|
-
|
|
43
|
-
} = useDispatch(coreStore);
|
|
44
|
-
const {
|
|
45
|
-
createSuccessNotice,
|
|
46
|
-
createErrorNotice
|
|
47
|
-
} = useDispatch(noticesStore);
|
|
36
|
+
const { saveEntityRecord } = useDispatch(coreStore);
|
|
37
|
+
const { createSuccessNotice, createErrorNotice } = useDispatch(noticesStore);
|
|
48
38
|
async function createPage(event) {
|
|
49
39
|
event.preventDefault();
|
|
50
40
|
if (isCreatingPage) {
|
|
51
41
|
return;
|
|
52
42
|
}
|
|
53
|
-
const isTemplate = item.type ===
|
|
43
|
+
const isTemplate = item.type === "wp_template" || item.type === "wp_registered_template";
|
|
54
44
|
const newItemObject = {
|
|
55
|
-
status: isTemplate ?
|
|
45
|
+
status: isTemplate ? "publish" : "draft",
|
|
56
46
|
title: item.title,
|
|
57
|
-
slug: isTemplate ? item.slug : item.title || __(
|
|
47
|
+
slug: isTemplate ? item.slug : item.title || __("No title"),
|
|
58
48
|
comment_status: item.comment_status,
|
|
59
|
-
content: typeof item.content ===
|
|
60
|
-
excerpt: typeof item.excerpt ===
|
|
49
|
+
content: typeof item.content === "string" ? item.content : item.content.raw,
|
|
50
|
+
excerpt: typeof item.excerpt === "string" ? item.excerpt : item.excerpt?.raw,
|
|
61
51
|
meta: item.meta,
|
|
62
52
|
parent: item.parent,
|
|
63
53
|
password: item.password,
|
|
@@ -67,77 +57,90 @@ const duplicatePost = {
|
|
|
67
57
|
menu_order: item.menu_order,
|
|
68
58
|
ping_status: item.ping_status
|
|
69
59
|
};
|
|
70
|
-
const assignablePropertiesPrefix =
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
60
|
+
const assignablePropertiesPrefix = "wp:action-assign-";
|
|
61
|
+
const assignableProperties = Object.keys(item?._links || {}).filter(
|
|
62
|
+
(property) => property.startsWith(assignablePropertiesPrefix)
|
|
63
|
+
).map(
|
|
64
|
+
(property) => property.slice(assignablePropertiesPrefix.length)
|
|
65
|
+
);
|
|
66
|
+
assignableProperties.forEach((property) => {
|
|
75
67
|
if (item.hasOwnProperty(property)) {
|
|
76
|
-
// @ts-ignore
|
|
77
68
|
newItemObject[property] = item[property];
|
|
78
69
|
}
|
|
79
70
|
});
|
|
80
71
|
setIsCreatingPage(true);
|
|
81
72
|
try {
|
|
82
|
-
const newItem = await saveEntityRecord(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
73
|
+
const newItem = await saveEntityRecord(
|
|
74
|
+
"postType",
|
|
75
|
+
item.type === "wp_registered_template" ? "wp_template" : item.type,
|
|
76
|
+
newItemObject,
|
|
77
|
+
{ throwOnError: true }
|
|
78
|
+
);
|
|
79
|
+
createSuccessNotice(
|
|
80
|
+
sprintf(
|
|
81
|
+
// translators: %s: Title of the created post, e.g: "Hello world".
|
|
82
|
+
__('"%s" successfully created.'),
|
|
83
|
+
getItemTitle(newItem)
|
|
84
|
+
),
|
|
85
|
+
{
|
|
86
|
+
id: "duplicate-post-action",
|
|
87
|
+
type: "snackbar"
|
|
88
|
+
}
|
|
89
|
+
);
|
|
91
90
|
if (onActionPerformed) {
|
|
92
91
|
onActionPerformed([newItem]);
|
|
93
92
|
}
|
|
94
93
|
} catch (error) {
|
|
95
94
|
const typedError = error;
|
|
96
|
-
const errorMessage = typedError.message && typedError.code !==
|
|
95
|
+
const errorMessage = typedError.message && typedError.code !== "unknown_error" ? typedError.message : __("An error occurred while duplicating the page.");
|
|
97
96
|
createErrorNotice(errorMessage, {
|
|
98
|
-
type:
|
|
97
|
+
type: "snackbar"
|
|
99
98
|
});
|
|
100
99
|
} finally {
|
|
101
100
|
setIsCreatingPage(false);
|
|
102
101
|
closeModal?.();
|
|
103
102
|
}
|
|
104
103
|
}
|
|
105
|
-
return
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
children: [/*#__PURE__*/_jsx(DataForm, {
|
|
104
|
+
return /* @__PURE__ */ jsx("form", { onSubmit: createPage, children: /* @__PURE__ */ jsxs(VStack, { spacing: 3, children: [
|
|
105
|
+
/* @__PURE__ */ jsx(
|
|
106
|
+
DataForm,
|
|
107
|
+
{
|
|
110
108
|
data: item,
|
|
111
|
-
fields
|
|
109
|
+
fields,
|
|
112
110
|
form: formDuplicateAction,
|
|
113
|
-
onChange: changes => setItem(prev => ({
|
|
111
|
+
onChange: (changes) => setItem((prev) => ({
|
|
114
112
|
...prev,
|
|
115
113
|
...changes
|
|
116
114
|
}))
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
115
|
+
}
|
|
116
|
+
),
|
|
117
|
+
/* @__PURE__ */ jsxs(HStack, { spacing: 2, justify: "end", children: [
|
|
118
|
+
/* @__PURE__ */ jsx(
|
|
119
|
+
Button,
|
|
120
|
+
{
|
|
121
121
|
variant: "tertiary",
|
|
122
122
|
onClick: closeModal,
|
|
123
123
|
__next40pxDefaultSize: true,
|
|
124
|
-
children: __(
|
|
125
|
-
}
|
|
124
|
+
children: __("Cancel")
|
|
125
|
+
}
|
|
126
|
+
),
|
|
127
|
+
/* @__PURE__ */ jsx(
|
|
128
|
+
Button,
|
|
129
|
+
{
|
|
126
130
|
variant: "primary",
|
|
127
131
|
type: "submit",
|
|
128
132
|
isBusy: isCreatingPage,
|
|
129
133
|
"aria-disabled": isCreatingPage,
|
|
130
134
|
__next40pxDefaultSize: true,
|
|
131
|
-
children: _x(
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
})
|
|
135
|
-
});
|
|
135
|
+
children: _x("Duplicate", "action label")
|
|
136
|
+
}
|
|
137
|
+
)
|
|
138
|
+
] })
|
|
139
|
+
] }) });
|
|
136
140
|
}
|
|
137
141
|
};
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
//# sourceMappingURL=duplicate-post.js.map
|
|
142
|
+
var duplicate_post_default = duplicatePost;
|
|
143
|
+
export {
|
|
144
|
+
duplicate_post_default as default
|
|
145
|
+
};
|
|
146
|
+
//# sourceMappingURL=duplicate-post.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"names":["useDispatch","store","coreStore","__","sprintf","_x","noticesStore","useState","DataForm","Button","__experimentalHStack","HStack","__experimentalVStack","VStack","titleField","getItemTitle","jsx","_jsx","jsxs","_jsxs","fields","formDuplicateAction","duplicatePost","id","label","isEligible","status","modalFocusOnMount","RenderModal","items","closeModal","onActionPerformed","item","setItem","title","isCreatingPage","setIsCreatingPage","saveEntityRecord","createSuccessNotice","createErrorNotice","createPage","event","preventDefault","isTemplate","type","newItemObject","slug","comment_status","content","raw","excerpt","meta","parent","password","template","format","featured_media","menu_order","ping_status","assignablePropertiesPrefix","assignableProperties","Object","keys","_links","filter","property","startsWith","map","slice","length","forEach","hasOwnProperty","newItem","throwOnError","error","typedError","errorMessage","message","code","onSubmit","children","spacing","data","form","onChange","changes","prev","justify","variant","onClick","__next40pxDefaultSize","isBusy"],"sources":["@wordpress/fields/src/actions/duplicate-post.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useState } from '@wordpress/element';\nimport { DataForm } from '@wordpress/dataviews';\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport { titleField } from '../fields';\nimport type { BasePost, CoreDataError } from '../types';\nimport { getItemTitle } from './utils';\n\nconst fields = [ titleField ];\nconst formDuplicateAction = {\n\tfields: [ 'title' ],\n};\n\nconst duplicatePost: Action< BasePost > = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tmodalFocusOnMount: 'firstContentElement',\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item, setItem ] = useState< BasePost >( {\n\t\t\t...items[ 0 ],\n\t\t\ttitle: sprintf(\n\t\t\t\t/* translators: %s: Existing post title */\n\t\t\t\t_x( '%s (Copy)', 'post' ),\n\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t),\n\t\t} );\n\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event: React.FormEvent ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isTemplate =\n\t\t\t\titem.type === 'wp_template' ||\n\t\t\t\titem.type === 'wp_registered_template';\n\n\t\t\tconst newItemObject = {\n\t\t\t\tstatus: isTemplate ? 'publish' : 'draft',\n\t\t\t\ttitle: item.title,\n\t\t\t\tslug: isTemplate ? item.slug : item.title || __( 'No title' ),\n\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\tcontent:\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\texcerpt:\n\t\t\t\t\ttypeof item.excerpt === 'string'\n\t\t\t\t\t\t? item.excerpt\n\t\t\t\t\t\t: item.excerpt?.raw,\n\t\t\t\tmeta: item.meta,\n\t\t\t\tparent: item.parent,\n\t\t\t\tpassword: item.password,\n\t\t\t\ttemplate: item.template,\n\t\t\t\tformat: item.format,\n\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\tping_status: item.ping_status,\n\t\t\t};\n\t\t\tconst assignablePropertiesPrefix = 'wp:action-assign-';\n\t\t\t// Get all the properties that the current user is able to assign normally author, categories, tags,\n\t\t\t// and custom taxonomies.\n\t\t\tconst assignableProperties = Object.keys( item?._links || {} )\n\t\t\t\t.filter( ( property ) =>\n\t\t\t\t\tproperty.startsWith( assignablePropertiesPrefix )\n\t\t\t\t)\n\t\t\t\t.map( ( property ) =>\n\t\t\t\t\tproperty.slice( assignablePropertiesPrefix.length )\n\t\t\t\t);\n\t\t\tassignableProperties.forEach( ( property ) => {\n\t\t\t\tif ( item.hasOwnProperty( property ) ) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tnewItemObject[ property ] = item[ property ];\n\t\t\t\t}\n\t\t\t} );\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type === 'wp_registered_template'\n\t\t\t\t\t\t? 'wp_template'\n\t\t\t\t\t\t: item.type,\n\t\t\t\t\tnewItemObject,\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created post, e.g: \"Hello world\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tgetItemTitle( newItem )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst typedError = error as CoreDataError;\n\t\t\t\tconst errorMessage =\n\t\t\t\t\ttypedError.message && typedError.code !== 'unknown_error'\n\t\t\t\t\t\t? typedError.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal?.();\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<DataForm\n\t\t\t\t\t\tdata={ item }\n\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\tform={ formDuplicateAction }\n\t\t\t\t\t\tonChange={ ( changes ) =>\n\t\t\t\t\t\t\tsetItem( ( prev ) => ( {\n\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t...changes,\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\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\t\t__next40pxDefaultSize\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\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\n/**\n * Duplicate action for BasePost.\n */\nexport default duplicatePost;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/actions/duplicate-post.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useState } from '@wordpress/element';\nimport { DataForm } from '@wordpress/dataviews';\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport { titleField } from '../fields';\nimport type { BasePost, CoreDataError } from '../types';\nimport { getItemTitle } from './utils';\n\nconst fields = [ titleField ];\nconst formDuplicateAction = {\n\tfields: [ 'title' ],\n};\n\nconst duplicatePost: Action< BasePost > = {\n\tid: 'duplicate-post',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tmodalFocusOnMount: 'firstContentElement',\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ item, setItem ] = useState< BasePost >( {\n\t\t\t...items[ 0 ],\n\t\t\ttitle: sprintf(\n\t\t\t\t/* translators: %s: Existing post title */\n\t\t\t\t_x( '%s (Copy)', 'post' ),\n\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t),\n\t\t} );\n\n\t\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\t\tconst { saveEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tasync function createPage( event: React.FormEvent ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( isCreatingPage ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isTemplate =\n\t\t\t\titem.type === 'wp_template' ||\n\t\t\t\titem.type === 'wp_registered_template';\n\n\t\t\tconst newItemObject = {\n\t\t\t\tstatus: isTemplate ? 'publish' : 'draft',\n\t\t\t\ttitle: item.title,\n\t\t\t\tslug: isTemplate ? item.slug : item.title || __( 'No title' ),\n\t\t\t\tcomment_status: item.comment_status,\n\t\t\t\tcontent:\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\texcerpt:\n\t\t\t\t\ttypeof item.excerpt === 'string'\n\t\t\t\t\t\t? item.excerpt\n\t\t\t\t\t\t: item.excerpt?.raw,\n\t\t\t\tmeta: item.meta,\n\t\t\t\tparent: item.parent,\n\t\t\t\tpassword: item.password,\n\t\t\t\ttemplate: item.template,\n\t\t\t\tformat: item.format,\n\t\t\t\tfeatured_media: item.featured_media,\n\t\t\t\tmenu_order: item.menu_order,\n\t\t\t\tping_status: item.ping_status,\n\t\t\t};\n\t\t\tconst assignablePropertiesPrefix = 'wp:action-assign-';\n\t\t\t// Get all the properties that the current user is able to assign normally author, categories, tags,\n\t\t\t// and custom taxonomies.\n\t\t\tconst assignableProperties = Object.keys( item?._links || {} )\n\t\t\t\t.filter( ( property ) =>\n\t\t\t\t\tproperty.startsWith( assignablePropertiesPrefix )\n\t\t\t\t)\n\t\t\t\t.map( ( property ) =>\n\t\t\t\t\tproperty.slice( assignablePropertiesPrefix.length )\n\t\t\t\t);\n\t\t\tassignableProperties.forEach( ( property ) => {\n\t\t\t\tif ( item.hasOwnProperty( property ) ) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tnewItemObject[ property ] = item[ property ];\n\t\t\t\t}\n\t\t\t} );\n\t\t\tsetIsCreatingPage( true );\n\t\t\ttry {\n\t\t\t\tconst newItem = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\titem.type === 'wp_registered_template'\n\t\t\t\t\t\t? 'wp_template'\n\t\t\t\t\t\t: item.type,\n\t\t\t\t\tnewItemObject,\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Title of the created post, e.g: \"Hello world\".\n\t\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\t\tgetItemTitle( newItem )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'duplicate-post-action',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\tonActionPerformed( [ newItem ] );\n\t\t\t\t}\n\t\t\t} catch ( error ) {\n\t\t\t\tconst typedError = error as CoreDataError;\n\t\t\t\tconst errorMessage =\n\t\t\t\t\ttypedError.message && typedError.code !== 'unknown_error'\n\t\t\t\t\t\t? typedError.message\n\t\t\t\t\t\t: __( 'An error occurred while duplicating the page.' );\n\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPage( false );\n\t\t\t\tcloseModal?.();\n\t\t\t}\n\t\t}\n\n\t\treturn (\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<DataForm\n\t\t\t\t\t\tdata={ item }\n\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\tform={ formDuplicateAction }\n\t\t\t\t\t\tonChange={ ( changes ) =>\n\t\t\t\t\t\t\tsetItem( ( prev ) => ( {\n\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t...changes,\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\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\t\t__next40pxDefaultSize\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\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\n/**\n * Duplicate action for BasePost.\n */\nexport default duplicatePost;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,67 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
import { parse } from '@wordpress/blocks';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Internal dependencies
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import { CreateTemplatePartModalContents } from '../components/create-template-part-modal';
|
|
16
|
-
import { getItemTitle } from './utils';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* This action is used to duplicate a template part.
|
|
20
|
-
*/
|
|
21
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useDispatch } from "@wordpress/data";
|
|
3
|
+
import { _x, sprintf } from "@wordpress/i18n";
|
|
4
|
+
import { store as noticesStore } from "@wordpress/notices";
|
|
5
|
+
import { useMemo } from "@wordpress/element";
|
|
6
|
+
import { parse } from "@wordpress/blocks";
|
|
7
|
+
import { CreateTemplatePartModalContents } from "../components/create-template-part-modal";
|
|
8
|
+
import { getItemTitle } from "./utils";
|
|
22
9
|
const duplicateTemplatePart = {
|
|
23
|
-
id:
|
|
24
|
-
label: _x(
|
|
25
|
-
isEligible: item => item.type ===
|
|
26
|
-
modalHeader: _x(
|
|
27
|
-
modalFocusOnMount:
|
|
28
|
-
RenderModal: ({
|
|
29
|
-
items,
|
|
30
|
-
closeModal
|
|
31
|
-
}) => {
|
|
10
|
+
id: "duplicate-template-part",
|
|
11
|
+
label: _x("Duplicate", "action label"),
|
|
12
|
+
isEligible: (item) => item.type === "wp_template_part",
|
|
13
|
+
modalHeader: _x("Duplicate template part", "action label"),
|
|
14
|
+
modalFocusOnMount: "firstContentElement",
|
|
15
|
+
RenderModal: ({ items, closeModal }) => {
|
|
32
16
|
const [item] = items;
|
|
33
17
|
const blocks = useMemo(() => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
18
|
+
return item.blocks ?? parse(
|
|
19
|
+
typeof item.content === "string" ? item.content : item.content.raw,
|
|
20
|
+
{
|
|
21
|
+
__unstableSkipMigrationLogs: true
|
|
22
|
+
}
|
|
23
|
+
);
|
|
38
24
|
}, [item.content, item.blocks]);
|
|
39
|
-
const {
|
|
40
|
-
createSuccessNotice
|
|
41
|
-
} = useDispatch(noticesStore);
|
|
25
|
+
const { createSuccessNotice } = useDispatch(noticesStore);
|
|
42
26
|
function onTemplatePartSuccess(templatePart) {
|
|
43
|
-
createSuccessNotice(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
27
|
+
createSuccessNotice(
|
|
28
|
+
sprintf(
|
|
29
|
+
// translators: %s: The new template part's title e.g. 'Call to action (copy)'.
|
|
30
|
+
_x('"%s" duplicated.', "template part"),
|
|
31
|
+
getItemTitle(templatePart)
|
|
32
|
+
),
|
|
33
|
+
{ type: "snackbar", id: "edit-site-patterns-success" }
|
|
34
|
+
);
|
|
49
35
|
closeModal?.();
|
|
50
36
|
}
|
|
51
|
-
return
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
CreateTemplatePartModalContents,
|
|
39
|
+
{
|
|
40
|
+
blocks,
|
|
41
|
+
defaultArea: item.area,
|
|
42
|
+
defaultTitle: sprintf(
|
|
43
|
+
/* translators: %s: Existing template part title */
|
|
44
|
+
_x("%s (Copy)", "template part"),
|
|
45
|
+
getItemTitle(item)
|
|
46
|
+
),
|
|
47
|
+
onCreate: onTemplatePartSuccess,
|
|
48
|
+
onError: closeModal,
|
|
49
|
+
confirmLabel: _x("Duplicate", "action label"),
|
|
50
|
+
closeModal: closeModal ?? (() => {
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
);
|
|
61
54
|
}
|
|
62
55
|
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=duplicate-template-part.js.map
|
|
56
|
+
var duplicate_template_part_default = duplicateTemplatePart;
|
|
57
|
+
export {
|
|
58
|
+
duplicate_template_part_default as default
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=duplicate-template-part.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/actions/duplicate-template-part.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo } from '@wordpress/element';\n// @ts-ignore\nimport { parse } from '@wordpress/blocks';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport type { Post, TemplatePart } from '../types';\nimport { CreateTemplatePartModalContents } from '../components/create-template-part-modal';\nimport { getItemTitle } from './utils';\n\n/**\n * This action is used to duplicate a template part.\n */\nconst duplicateTemplatePart: Action< TemplatePart > = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === 'wp_template_part',\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tmodalFocusOnMount: 'firstContentElement',\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( templatePart: Post ) {\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_x( '\"%s\" duplicated.', 'template part' ),\n\t\t\t\t\tgetItemTitle( templatePart )\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_x( '%s (Copy)', 'template part' ),\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\tcloseModal={ closeModal ?? ( () => {} ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n/**\n * Duplicate action for TemplatePart.\n */\nexport default duplicateTemplatePart;\n"],
|
|
5
|
+
"mappings": "AAuDG;AApDH,SAAS,mBAAmB;AAC5B,SAAS,IAAI,eAAe;AAC5B,SAAS,SAAS,oBAAoB;AACtC,SAAS,eAAe;AAExB,SAAS,aAAa;AAOtB,SAAS,uCAAuC;AAChD,SAAS,oBAAoB;AAK7B,MAAM,wBAAgD;AAAA,EACrD,IAAI;AAAA,EACJ,OAAO,GAAI,aAAa,cAAe;AAAA,EACvC,YAAY,CAAE,SAAU,KAAK,SAAS;AAAA,EACtC,aAAa,GAAI,2BAA2B,cAAe;AAAA,EAC3D,mBAAmB;AAAA,EACnB,aAAa,CAAE,EAAE,OAAO,WAAW,MAAO;AACzC,UAAM,CAAE,IAAK,IAAI;AACjB,UAAM,SAAS,QAAS,MAAM;AAC7B,aACC,KAAK,UACL;AAAA,QACC,OAAO,KAAK,YAAY,WACrB,KAAK,UACL,KAAK,QAAQ;AAAA,QAChB;AAAA,UACC,6BAA6B;AAAA,QAC9B;AAAA,MACD;AAAA,IAEF,GAAG,CAAE,KAAK,SAAS,KAAK,MAAO,CAAE;AACjC,UAAM,EAAE,oBAAoB,IAAI,YAAa,YAAa;AAC1D,aAAS,sBAAuB,cAAqB;AACpD;AAAA,QACC;AAAA;AAAA,UAEC,GAAI,oBAAoB,eAAgB;AAAA,UACxC,aAAc,YAAa;AAAA,QAC5B;AAAA,QACA,EAAE,MAAM,YAAY,IAAI,6BAA6B;AAAA,MACtD;AACA,mBAAa;AAAA,IACd;AACA,WACC;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,aAAc,KAAK;AAAA,QACnB,cAAe;AAAA;AAAA,UAEd,GAAI,aAAa,eAAgB;AAAA,UACjC,aAAc,IAAK;AAAA,QACpB;AAAA,QACA,UAAW;AAAA,QACX,SAAU;AAAA,QACV,cAAe,GAAI,aAAa,cAAe;AAAA,QAC/C,YAAa,eAAgB,MAAM;AAAA,QAAC;AAAA;AAAA,IACrC;AAAA,EAEF;AACD;AAIA,IAAO,kCAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,55 +1,56 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* WordPress dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { downloadBlob } from '@wordpress/blob';
|
|
11
|
-
import { __ } from '@wordpress/i18n';
|
|
12
|
-
import { download } from '@wordpress/icons';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Internal dependencies
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import { getItemTitle } from './utils';
|
|
1
|
+
import { paramCase as kebabCase } from "change-case";
|
|
2
|
+
import { downloadZip } from "client-zip";
|
|
3
|
+
import { downloadBlob } from "@wordpress/blob";
|
|
4
|
+
import { __ } from "@wordpress/i18n";
|
|
5
|
+
import { download } from "@wordpress/icons";
|
|
6
|
+
import { getItemTitle } from "./utils";
|
|
19
7
|
function getJsonFromItem(item) {
|
|
20
|
-
return JSON.stringify(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
8
|
+
return JSON.stringify(
|
|
9
|
+
{
|
|
10
|
+
__file: item.type,
|
|
11
|
+
title: getItemTitle(item),
|
|
12
|
+
content: typeof item.content === "string" ? item.content : item.content?.raw,
|
|
13
|
+
syncStatus: item.wp_pattern_sync_status
|
|
14
|
+
},
|
|
15
|
+
null,
|
|
16
|
+
2
|
|
17
|
+
);
|
|
26
18
|
}
|
|
27
19
|
const exportPattern = {
|
|
28
|
-
id:
|
|
29
|
-
label: __(
|
|
20
|
+
id: "export-pattern",
|
|
21
|
+
label: __("Export as JSON"),
|
|
30
22
|
icon: download,
|
|
31
23
|
supportsBulk: true,
|
|
32
|
-
isEligible: item => item.type ===
|
|
33
|
-
callback: async items => {
|
|
24
|
+
isEligible: (item) => item.type === "wp_block",
|
|
25
|
+
callback: async (items) => {
|
|
34
26
|
if (items.length === 1) {
|
|
35
|
-
return downloadBlob(
|
|
27
|
+
return downloadBlob(
|
|
28
|
+
`${kebabCase(
|
|
29
|
+
getItemTitle(items[0]) || items[0].slug
|
|
30
|
+
)}.json`,
|
|
31
|
+
getJsonFromItem(items[0]),
|
|
32
|
+
"application/json"
|
|
33
|
+
);
|
|
36
34
|
}
|
|
37
35
|
const nameCount = {};
|
|
38
|
-
const filesToZip = items.map(item => {
|
|
36
|
+
const filesToZip = items.map((item) => {
|
|
39
37
|
const name = kebabCase(getItemTitle(item) || item.slug);
|
|
40
38
|
nameCount[name] = (nameCount[name] || 0) + 1;
|
|
41
39
|
return {
|
|
42
|
-
name: `${name + (nameCount[name] > 1 ?
|
|
43
|
-
lastModified: new Date(),
|
|
40
|
+
name: `${name + (nameCount[name] > 1 ? "-" + (nameCount[name] - 1) : "")}.json`,
|
|
41
|
+
lastModified: /* @__PURE__ */ new Date(),
|
|
44
42
|
input: getJsonFromItem(item)
|
|
45
43
|
};
|
|
46
44
|
});
|
|
47
|
-
return downloadBlob(
|
|
45
|
+
return downloadBlob(
|
|
46
|
+
__("patterns-export") + ".zip",
|
|
47
|
+
await downloadZip(filesToZip).blob(),
|
|
48
|
+
"application/zip"
|
|
49
|
+
);
|
|
48
50
|
}
|
|
49
51
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
export
|
|
55
|
-
//# sourceMappingURL=export-pattern.js.map
|
|
52
|
+
var export_pattern_default = exportPattern;
|
|
53
|
+
export {
|
|
54
|
+
export_pattern_default as default
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=export-pattern.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/actions/export-pattern.tsx"],
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\nimport { downloadZip } from 'client-zip';\n\n/**\n * WordPress dependencies\n */\nimport { downloadBlob } from '@wordpress/blob';\nimport { __ } from '@wordpress/i18n';\nimport { download } from '@wordpress/icons';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport type { Pattern } from '../types';\nimport { getItemTitle } from './utils';\n\nfunction getJsonFromItem( item: Pattern ) {\n\treturn JSON.stringify(\n\t\t{\n\t\t\t__file: item.type,\n\t\t\ttitle: getItemTitle( item ),\n\t\t\tcontent:\n\t\t\t\ttypeof item.content === 'string'\n\t\t\t\t\t? item.content\n\t\t\t\t\t: item.content?.raw,\n\t\t\tsyncStatus: item.wp_pattern_sync_status,\n\t\t},\n\t\tnull,\n\t\t2\n\t);\n}\n\nconst exportPattern: Action< Pattern > = {\n\tid: 'export-pattern',\n\tlabel: __( 'Export as JSON' ),\n\ticon: download,\n\tsupportsBulk: true,\n\tisEligible: ( item ) => item.type === 'wp_block',\n\tcallback: async ( items ) => {\n\t\tif ( items.length === 1 ) {\n\t\t\treturn downloadBlob(\n\t\t\t\t`${ kebabCase(\n\t\t\t\t\tgetItemTitle( items[ 0 ] ) || items[ 0 ].slug\n\t\t\t\t) }.json`,\n\t\t\t\tgetJsonFromItem( items[ 0 ] ),\n\t\t\t\t'application/json'\n\t\t\t);\n\t\t}\n\t\tconst nameCount: Record< string, number > = {};\n\t\tconst filesToZip = items.map( ( item ) => {\n\t\t\tconst name = kebabCase( getItemTitle( item ) || item.slug );\n\t\t\tnameCount[ name ] = ( nameCount[ name ] || 0 ) + 1;\n\t\t\treturn {\n\t\t\t\tname: `${\n\t\t\t\t\tname +\n\t\t\t\t\t( nameCount[ name ] > 1\n\t\t\t\t\t\t? '-' + ( nameCount[ name ] - 1 )\n\t\t\t\t\t\t: '' )\n\t\t\t\t}.json`,\n\t\t\t\tlastModified: new Date(),\n\t\t\t\tinput: getJsonFromItem( item ),\n\t\t\t};\n\t\t} );\n\t\treturn downloadBlob(\n\t\t\t__( 'patterns-export' ) + '.zip',\n\t\t\tawait downloadZip( filesToZip ).blob(),\n\t\t\t'application/zip'\n\t\t);\n\t},\n};\n\n/**\n * Export action as JSON for Pattern.\n */\nexport default exportPattern;\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,aAAa,iBAAiB;AACvC,SAAS,mBAAmB;AAK5B,SAAS,oBAAoB;AAC7B,SAAS,UAAU;AACnB,SAAS,gBAAgB;AAOzB,SAAS,oBAAoB;AAE7B,SAAS,gBAAiB,MAAgB;AACzC,SAAO,KAAK;AAAA,IACX;AAAA,MACC,QAAQ,KAAK;AAAA,MACb,OAAO,aAAc,IAAK;AAAA,MAC1B,SACC,OAAO,KAAK,YAAY,WACrB,KAAK,UACL,KAAK,SAAS;AAAA,MAClB,YAAY,KAAK;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEA,MAAM,gBAAmC;AAAA,EACxC,IAAI;AAAA,EACJ,OAAO,GAAI,gBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,YAAY,CAAE,SAAU,KAAK,SAAS;AAAA,EACtC,UAAU,OAAQ,UAAW;AAC5B,QAAK,MAAM,WAAW,GAAI;AACzB,aAAO;AAAA,QACN,GAAI;AAAA,UACH,aAAc,MAAO,CAAE,CAAE,KAAK,MAAO,CAAE,EAAE;AAAA,QAC1C,CAAE;AAAA,QACF,gBAAiB,MAAO,CAAE,CAAE;AAAA,QAC5B;AAAA,MACD;AAAA,IACD;AACA,UAAM,YAAsC,CAAC;AAC7C,UAAM,aAAa,MAAM,IAAK,CAAE,SAAU;AACzC,YAAM,OAAO,UAAW,aAAc,IAAK,KAAK,KAAK,IAAK;AAC1D,gBAAW,IAAK,KAAM,UAAW,IAAK,KAAK,KAAM;AACjD,aAAO;AAAA,QACN,MAAM,GACL,QACE,UAAW,IAAK,IAAI,IACnB,OAAQ,UAAW,IAAK,IAAI,KAC5B,GACJ;AAAA,QACA,cAAc,oBAAI,KAAK;AAAA,QACvB,OAAO,gBAAiB,IAAK;AAAA,MAC9B;AAAA,IACD,CAAE;AACF,WAAO;AAAA,MACN,GAAI,iBAAkB,IAAI;AAAA,MAC1B,MAAM,YAAa,UAAW,EAAE,KAAK;AAAA,MACrC;AAAA,IACD;AAAA,EACD;AACD;AAKA,IAAO,yBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,14 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { default as default2 } from "./view-post";
|
|
2
|
+
import { default as default3 } from "./reorder-page";
|
|
3
|
+
import { default as default4 } from "./duplicate-post";
|
|
4
|
+
import { default as default5 } from "./rename-post";
|
|
5
|
+
import { default as default6 } from "./reset-post";
|
|
6
|
+
import { default as default7 } from "./duplicate-pattern";
|
|
7
|
+
import { default as default8 } from "./export-pattern";
|
|
8
|
+
import { default as default9 } from "./view-post-revisions";
|
|
9
|
+
import { default as default10 } from "./permanently-delete-post";
|
|
10
|
+
import { default as default11 } from "./restore-post";
|
|
11
|
+
import { default as default12 } from "./trash-post";
|
|
12
|
+
import { default as default13 } from "./delete-post";
|
|
13
|
+
import { default as default14 } from "./duplicate-template-part";
|
|
14
|
+
export {
|
|
15
|
+
default13 as deletePost,
|
|
16
|
+
default7 as duplicatePattern,
|
|
17
|
+
default4 as duplicatePost,
|
|
18
|
+
default14 as duplicateTemplatePart,
|
|
19
|
+
default8 as exportPattern,
|
|
20
|
+
default10 as permanentlyDeletePost,
|
|
21
|
+
default5 as renamePost,
|
|
22
|
+
default3 as reorderPage,
|
|
23
|
+
default6 as resetPost,
|
|
24
|
+
default11 as restorePost,
|
|
25
|
+
default12 as trashPost,
|
|
26
|
+
default2 as viewPost,
|
|
27
|
+
default9 as viewPostRevisions
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/actions/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { default as viewPost } from './view-post';\nexport { default as reorderPage } from './reorder-page';\nexport { default as duplicatePost } from './duplicate-post';\nexport { default as renamePost } from './rename-post';\nexport { default as resetPost } from './reset-post';\nexport { default as duplicatePattern } from './duplicate-pattern';\nexport { default as exportPattern } from './export-pattern';\nexport { default as viewPostRevisions } from './view-post-revisions';\nexport { default as permanentlyDeletePost } from './permanently-delete-post';\nexport { default as restorePost } from './restore-post';\nexport { default as trashPost } from './trash-post';\nexport { default as deletePost } from './delete-post';\nexport { default as duplicateTemplatePart } from './duplicate-template-part';\n"],
|
|
5
|
+
"mappings": "AAAA,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAA8B;AACvC,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAA4B;AACrC,SAAoB,WAAXA,gBAAmC;AAC5C,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,iBAAwC;AACjD,SAAoB,WAAXA,iBAA8B;AACvC,SAAoB,WAAXA,iBAA4B;AACrC,SAAoB,WAAXA,iBAA6B;AACtC,SAAoB,WAAXA,iBAAwC;",
|
|
6
|
+
"names": ["default"]
|
|
7
|
+
}
|