@strapi/content-manager 0.0.0-next.0791cd2736057a8f66ee1682f02c46307a4d6e4a → 0.0.0-next.0fc44faf3ab6f94c481a4d426988705776878bb3
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/dist/admin/components/LeftMenu.js +34 -30
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/LeftMenu.mjs +36 -32
- package/dist/admin/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/components/Widgets.js +161 -0
- package/dist/admin/components/Widgets.js.map +1 -0
- package/dist/admin/components/Widgets.mjs +158 -0
- package/dist/admin/components/Widgets.mjs.map +1 -0
- package/dist/admin/hooks/useDocumentActions.js +5 -1
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +5 -1
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentContext.js.map +1 -1
- package/dist/admin/hooks/useDocumentContext.mjs.map +1 -1
- package/dist/admin/index.js +42 -5
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +42 -3
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +230 -28
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +232 -30
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +7 -12
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +8 -13
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +19 -33
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +19 -33
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +2 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +2 -0
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +128 -55
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +128 -55
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +89 -50
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +91 -52
- package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +3 -3
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +3 -3
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +77 -0
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +78 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/preview/components/PreviewHeader.js +1 -1
- package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
- package/dist/admin/preview/components/PreviewHeader.mjs +1 -1
- package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
- package/dist/admin/services/homepage.js +30 -0
- package/dist/admin/services/homepage.js.map +1 -0
- package/dist/admin/services/homepage.mjs +28 -0
- package/dist/admin/services/homepage.mjs.map +1 -0
- package/dist/admin/src/components/Widgets.d.ts +3 -0
- package/dist/admin/src/hooks/useDocumentContext.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +26 -5
- package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +0 -1
- package/dist/admin/src/services/homepage.d.ts +5 -0
- package/dist/admin/translations/en.json.js +3 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +3 -1
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/ru.json.js +235 -226
- package/dist/admin/translations/ru.json.js.map +1 -1
- package/dist/admin/translations/ru.json.mjs +230 -226
- package/dist/admin/translations/ru.json.mjs.map +1 -1
- package/dist/server/controllers/index.js +3 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs +3 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/history/services/lifecycles.js +3 -0
- package/dist/server/history/services/lifecycles.js.map +1 -1
- package/dist/server/history/services/lifecycles.mjs +3 -0
- package/dist/server/history/services/lifecycles.mjs.map +1 -1
- package/dist/server/homepage/controllers/homepage.js +57 -0
- package/dist/server/homepage/controllers/homepage.js.map +1 -0
- package/dist/server/homepage/controllers/homepage.mjs +36 -0
- package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
- package/dist/server/homepage/controllers/index.js +10 -0
- package/dist/server/homepage/controllers/index.js.map +1 -0
- package/dist/server/homepage/controllers/index.mjs +8 -0
- package/dist/server/homepage/controllers/index.mjs.map +1 -0
- package/dist/server/homepage/index.js +14 -0
- package/dist/server/homepage/index.js.map +1 -0
- package/dist/server/homepage/index.mjs +12 -0
- package/dist/server/homepage/index.mjs.map +1 -0
- package/dist/server/homepage/routes/homepage.js +25 -0
- package/dist/server/homepage/routes/homepage.js.map +1 -0
- package/dist/server/homepage/routes/homepage.mjs +23 -0
- package/dist/server/homepage/routes/homepage.mjs.map +1 -0
- package/dist/server/homepage/routes/index.js +13 -0
- package/dist/server/homepage/routes/index.js.map +1 -0
- package/dist/server/homepage/routes/index.mjs +11 -0
- package/dist/server/homepage/routes/index.mjs.map +1 -0
- package/dist/server/homepage/services/homepage.js +157 -0
- package/dist/server/homepage/services/homepage.js.map +1 -0
- package/dist/server/homepage/services/homepage.mjs +155 -0
- package/dist/server/homepage/services/homepage.mjs.map +1 -0
- package/dist/server/homepage/services/index.js +10 -0
- package/dist/server/homepage/services/index.js.map +1 -0
- package/dist/server/homepage/services/index.mjs +8 -0
- package/dist/server/homepage/services/index.mjs.map +1 -0
- package/dist/server/preview/services/preview.js +0 -1
- package/dist/server/preview/services/preview.js.map +1 -1
- package/dist/server/preview/services/preview.mjs +0 -1
- package/dist/server/preview/services/preview.mjs.map +1 -1
- package/dist/server/routes/index.js +3 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs +3 -1
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/index.js +3 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +3 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/homepage/controllers/homepage.d.ts +7 -0
- package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/controllers/index.d.ts +2 -0
- package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
- package/dist/server/src/homepage/index.d.ts +16 -0
- package/dist/server/src/homepage/index.d.ts.map +1 -0
- package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
- package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/routes/index.d.ts +8 -0
- package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
- package/dist/server/src/homepage/services/homepage.d.ts +11 -0
- package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
- package/dist/server/src/homepage/services/index.d.ts +9 -0
- package/dist/server/src/homepage/services/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +8 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/data-mapper.d.ts +1 -0
- package/dist/server/src/services/data-mapper.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +7 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +25 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -0
- package/package.json +7 -7
@@ -0,0 +1,158 @@
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
2
|
+
import { Widget, useTracking } from '@strapi/admin/strapi-admin';
|
3
|
+
import { Typography, Table, Tbody, Tr, Td, Box, IconButton } from '@strapi/design-system';
|
4
|
+
import { Pencil } from '@strapi/icons';
|
5
|
+
import { useIntl } from 'react-intl';
|
6
|
+
import { useNavigate, Link } from 'react-router-dom';
|
7
|
+
import { styled } from 'styled-components';
|
8
|
+
import { DocumentStatus } from '../pages/EditView/components/DocumentStatus.mjs';
|
9
|
+
import { useGetRecentDocumentsQuery } from '../services/homepage.mjs';
|
10
|
+
import { RelativeTime } from './RelativeTime.mjs';
|
11
|
+
|
12
|
+
const CellTypography = styled(Typography).attrs({
|
13
|
+
maxWidth: '14.4rem',
|
14
|
+
display: 'block'
|
15
|
+
})`
|
16
|
+
overflow: hidden;
|
17
|
+
text-overflow: ellipsis;
|
18
|
+
white-space: nowrap;
|
19
|
+
`;
|
20
|
+
const RecentDocumentsTable = ({ documents })=>{
|
21
|
+
const { formatMessage } = useIntl();
|
22
|
+
const { trackUsage } = useTracking();
|
23
|
+
const navigate = useNavigate();
|
24
|
+
const getEditViewLink = (document)=>{
|
25
|
+
const isSingleType = document.kind === 'singleType';
|
26
|
+
const kindPath = isSingleType ? 'single-types' : 'collection-types';
|
27
|
+
const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';
|
28
|
+
return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;
|
29
|
+
};
|
30
|
+
const handleRowClick = (document)=>()=>{
|
31
|
+
trackUsage('willEditEntryFromHome');
|
32
|
+
const link = getEditViewLink(document);
|
33
|
+
navigate(link);
|
34
|
+
};
|
35
|
+
return /*#__PURE__*/ jsx(Table, {
|
36
|
+
colCount: 5,
|
37
|
+
rowCount: documents?.length ?? 0,
|
38
|
+
children: /*#__PURE__*/ jsx(Tbody, {
|
39
|
+
children: documents?.map((document)=>/*#__PURE__*/ jsxs(Tr, {
|
40
|
+
onClick: handleRowClick(document),
|
41
|
+
cursor: "pointer",
|
42
|
+
children: [
|
43
|
+
/*#__PURE__*/ jsx(Td, {
|
44
|
+
children: /*#__PURE__*/ jsx(CellTypography, {
|
45
|
+
title: document.title,
|
46
|
+
variant: "omega",
|
47
|
+
textColor: "neutral800",
|
48
|
+
children: document.title
|
49
|
+
})
|
50
|
+
}),
|
51
|
+
/*#__PURE__*/ jsx(Td, {
|
52
|
+
children: /*#__PURE__*/ jsx(CellTypography, {
|
53
|
+
variant: "omega",
|
54
|
+
textColor: "neutral600",
|
55
|
+
children: document.kind === 'singleType' ? formatMessage({
|
56
|
+
id: 'content-manager.widget.last-edited.single-type',
|
57
|
+
defaultMessage: 'Single-Type'
|
58
|
+
}) : formatMessage({
|
59
|
+
id: document.contentTypeDisplayName,
|
60
|
+
defaultMessage: document.contentTypeDisplayName
|
61
|
+
})
|
62
|
+
})
|
63
|
+
}),
|
64
|
+
/*#__PURE__*/ jsx(Td, {
|
65
|
+
children: /*#__PURE__*/ jsx(Box, {
|
66
|
+
display: "inline-block",
|
67
|
+
children: document.status ? /*#__PURE__*/ jsx(DocumentStatus, {
|
68
|
+
status: document.status
|
69
|
+
}) : /*#__PURE__*/ jsx(Typography, {
|
70
|
+
textColor: "neutral600",
|
71
|
+
"aria-hidden": true,
|
72
|
+
children: "-"
|
73
|
+
})
|
74
|
+
})
|
75
|
+
}),
|
76
|
+
/*#__PURE__*/ jsx(Td, {
|
77
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
78
|
+
textColor: "neutral600",
|
79
|
+
children: /*#__PURE__*/ jsx(RelativeTime, {
|
80
|
+
timestamp: new Date(document.updatedAt)
|
81
|
+
})
|
82
|
+
})
|
83
|
+
}),
|
84
|
+
/*#__PURE__*/ jsx(Td, {
|
85
|
+
onClick: (e)=>e.stopPropagation(),
|
86
|
+
children: /*#__PURE__*/ jsx(Box, {
|
87
|
+
display: "inline-block",
|
88
|
+
children: /*#__PURE__*/ jsx(IconButton, {
|
89
|
+
tag: Link,
|
90
|
+
to: getEditViewLink(document),
|
91
|
+
onClick: ()=>trackUsage('willEditEntryFromHome'),
|
92
|
+
label: formatMessage({
|
93
|
+
id: 'content-manager.actions.edit.label',
|
94
|
+
defaultMessage: 'Edit'
|
95
|
+
}),
|
96
|
+
variant: "ghost",
|
97
|
+
children: /*#__PURE__*/ jsx(Pencil, {})
|
98
|
+
})
|
99
|
+
})
|
100
|
+
})
|
101
|
+
]
|
102
|
+
}, document.documentId))
|
103
|
+
})
|
104
|
+
});
|
105
|
+
};
|
106
|
+
/* -------------------------------------------------------------------------------------------------
|
107
|
+
* LastEditedWidget
|
108
|
+
* -----------------------------------------------------------------------------------------------*/ const LastEditedWidget = ()=>{
|
109
|
+
const { formatMessage } = useIntl();
|
110
|
+
const { data, isLoading, error } = useGetRecentDocumentsQuery({
|
111
|
+
action: 'update'
|
112
|
+
});
|
113
|
+
if (isLoading) {
|
114
|
+
return /*#__PURE__*/ jsx(Widget.Loading, {});
|
115
|
+
}
|
116
|
+
if (error || !data) {
|
117
|
+
return /*#__PURE__*/ jsx(Widget.Error, {});
|
118
|
+
}
|
119
|
+
if (data.length === 0) {
|
120
|
+
return /*#__PURE__*/ jsx(Widget.NoData, {
|
121
|
+
children: formatMessage({
|
122
|
+
id: 'content-manager.widget.last-edited.no-data',
|
123
|
+
defaultMessage: 'No edited entries'
|
124
|
+
})
|
125
|
+
});
|
126
|
+
}
|
127
|
+
return /*#__PURE__*/ jsx(RecentDocumentsTable, {
|
128
|
+
documents: data
|
129
|
+
});
|
130
|
+
};
|
131
|
+
/* -------------------------------------------------------------------------------------------------
|
132
|
+
* LastPublishedWidget
|
133
|
+
* -----------------------------------------------------------------------------------------------*/ const LastPublishedWidget = ()=>{
|
134
|
+
const { formatMessage } = useIntl();
|
135
|
+
const { data, isLoading, error } = useGetRecentDocumentsQuery({
|
136
|
+
action: 'publish'
|
137
|
+
});
|
138
|
+
if (isLoading) {
|
139
|
+
return /*#__PURE__*/ jsx(Widget.Loading, {});
|
140
|
+
}
|
141
|
+
if (error || !data) {
|
142
|
+
return /*#__PURE__*/ jsx(Widget.Error, {});
|
143
|
+
}
|
144
|
+
if (data.length === 0) {
|
145
|
+
return /*#__PURE__*/ jsx(Widget.NoData, {
|
146
|
+
children: formatMessage({
|
147
|
+
id: 'content-manager.widget.last-published.no-data',
|
148
|
+
defaultMessage: 'No published entries'
|
149
|
+
})
|
150
|
+
});
|
151
|
+
}
|
152
|
+
return /*#__PURE__*/ jsx(RecentDocumentsTable, {
|
153
|
+
documents: data
|
154
|
+
});
|
155
|
+
};
|
156
|
+
|
157
|
+
export { LastEditedWidget, LastPublishedWidget };
|
158
|
+
//# sourceMappingURL=Widgets.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { Widget, useTracking } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography).attrs({ maxWidth: '14.4rem', display: 'block' })`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({ documents }: { documents: RecentDocument[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome');\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\nexport { LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","attrs","maxWidth","display","RecentDocumentsTable","documents","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget"],"mappings":"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"}
|
@@ -454,7 +454,9 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
454
454
|
}
|
455
455
|
trackUsage('didCreateEntry', {
|
456
456
|
...trackerProperty,
|
457
|
-
documentId: res.data.data.documentId
|
457
|
+
documentId: res.data.data.documentId,
|
458
|
+
fromPreview,
|
459
|
+
fromRelationModal
|
458
460
|
});
|
459
461
|
toggleNotification({
|
460
462
|
type: 'success',
|
@@ -480,6 +482,8 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
480
482
|
createDocument,
|
481
483
|
formatAPIError,
|
482
484
|
formatMessage,
|
485
|
+
fromPreview,
|
486
|
+
fromRelationModal,
|
483
487
|
setCurrentStep,
|
484
488
|
toggleNotification,
|
485
489
|
trackUsage
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useDocumentActions.js","sources":["../../../admin/src/hooks/useDocumentActions.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\nimport {\n useNotification,\n useTracking,\n type TrackingEvent,\n useAPIErrorHandler,\n useGuidedTour,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal';\nimport { usePreviewContext } from '../preview/pages/Preview';\nimport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useLazyGetDocumentQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n} from '../services/documents';\nimport { BaseQueryError } from '../utils/api';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Document } from './useDocument';\nimport type {\n AutoClone,\n Clone,\n Create,\n Delete,\n BulkDelete,\n Discard,\n FindOne,\n Publish,\n BulkPublish,\n Update,\n Unpublish,\n BulkUnpublish,\n} from '../../../shared/contracts/collection-types';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype OperationResponse<TResponse extends { data: any; meta?: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | Pick<TResponse, 'data' | 'meta'>\n | { error: BaseQueryError | SerializedError };\n\ntype BulkOperationResponse<TResponse extends { data: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | { error: BaseQueryError | SerializedError };\n\ntype UseDocumentActions = (\n fromPreview?: boolean,\n fromRelationModal?: boolean\n) => {\n /**\n * @description Attempts to clone a document based on the provided sourceId.\n * This will return a list of the fields as an error if it's unable to clone.\n * You most likely want to use the `clone` action instead.\n */\n isLoading: boolean;\n autoClone: (args: {\n model: string;\n sourceId: string;\n }) => Promise<OperationResponse<AutoClone.Response>>;\n clone: (\n args: {\n model: string;\n documentId: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Clone.Response>>;\n create: (\n args: {\n model: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Create.Response>>;\n delete: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry' }\n >['properties']\n ) => Promise<OperationResponse<Delete.Response>>;\n deleteMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkDelete.Response>>;\n discard: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<OperationResponse<Discard.Response>>;\n getDocument: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<FindOne.Response | undefined>;\n publish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>\n ) => Promise<OperationResponse<Publish.Response>>;\n publishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkPublish.Response>>;\n update: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry' }\n >['properties']\n ) => Promise<OperationResponse<Update.Response>>;\n unpublish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n discardDraft?: boolean\n ) => Promise<OperationResponse<Unpublish.Response>>;\n unpublishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkUnpublish.Response>>;\n};\n\ntype IUseDocumentActs = ReturnType<UseDocumentActions>;\n\n/**\n * @alpha\n * @public\n * @description Contains all the operations that can be performed on a single document.\n * Designed to be able to be used anywhere within a Strapi app. The hooks will handle\n * notifications should the operation fail, however the response is always returned incase\n * the user needs to handle side-effects.\n * @example\n * ```tsx\n * import { Form } from '@strapi/admin/admin';\n *\n * const { id, model, collectionType } = useParams<{ id: string; model: string; collectionType: string }>();\n * const { update } = useDocumentActions();\n *\n * const handleSubmit = async (data) => {\n * await update({ collectionType, model, documentId: id }, data);\n * }\n *\n * return <Form method=\"PUT\" onSubmit={handleSubmit} />\n * ```\n *\n * @see {@link https://contributor.strapi.io/docs/core/content-manager/hooks/use-document-operations} for more information\n */\nconst useDocumentActions: UseDocumentActions = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const navigate = useNavigate();\n const setCurrentStep = useGuidedTour('useDocumentActions', (state) => state.setCurrentStep);\n\n // Get metadata from context providers for tracking purposes\n const previewContext = usePreviewContext('useDocumentActions', () => true, false);\n const relationContext = useRelationModal('useDocumentActions', () => true, false);\n const fromPreview = previewContext != undefined;\n const fromRelationModal = relationContext != undefined;\n\n const [deleteDocument, { isLoading: isDeleting }] = useDeleteDocumentMutation();\n const _delete: IUseDocumentActs['delete'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, trackerProperty) => {\n try {\n trackUsage('willDeleteEntry', trackerProperty);\n\n const res = await deleteDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.delete'),\n defaultMessage: 'Deleted document',\n }),\n });\n\n trackUsage('didDeleteEntry', trackerProperty);\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotDeleteEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [deleteManyDocuments, { isLoading: isDeletingMany }] = useDeleteManyDocumentsMutation();\n\n const deleteMany: IUseDocumentActs['deleteMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkDeleteEntries');\n\n const res = await deleteManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.delete'),\n defaultMessage: 'Successfully deleted.',\n }),\n message: '',\n });\n\n trackUsage('didBulkDeleteEntries');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkDeleteEntries');\n\n throw err;\n }\n },\n [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [discardDocument, { isLoading: isDiscardingDocument }] = useDiscardDocumentMutation();\n const discard: IUseDocumentActs['discard'] = React.useCallback(\n async ({ collectionType, model, documentId, params }) => {\n try {\n const res = await discardDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.success.record.discard',\n defaultMessage: 'Changes discarded',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [discardDocument, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();\n const publish: IUseDocumentActs['publish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data) => {\n try {\n trackUsage('willPublishEntry', { documentId });\n\n const res = await publishDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n trackUsage('didPublishEntry', { documentId, fromPreview, fromRelationModal });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n publishDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [publishManyDocuments, { isLoading: isPublishingMany }] = usePublishManyDocumentsMutation();\n const publishMany: IUseDocumentActs['publishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n // TODO Confirm tracking events for bulk publish?\n\n const res = await publishManyDocuments({\n model,\n documentIds,\n params,\n });\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n throw err;\n }\n },\n [\n // trackUsage,\n publishManyDocuments,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [updateDocument, { isLoading: isUpdating }] = useUpdateDocumentMutation();\n const update: IUseDocumentActs['update'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data, trackerProperty) => {\n try {\n trackUsage('willEditEntry', trackerProperty);\n\n const res = await updateDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotEditEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didEditEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n trackUsage('didNotEditEntry', { error: err, ...trackerProperty });\n\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n updateDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [unpublishDocument] = useUnpublishDocumentMutation();\n const unpublish: IUseDocumentActs['unpublish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, discardDraft = false) => {\n try {\n trackUsage('willUnpublishEntry');\n\n const res = await unpublishDocument({\n collectionType,\n model,\n documentId,\n params,\n data: {\n discardDraft,\n },\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didUnpublishEntry');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.unpublish'),\n defaultMessage: 'Unpublished document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [unpublishManyDocuments, { isLoading: isUnpublishingMany }] =\n useUnpublishManyDocumentsMutation();\n const unpublishMany: IUseDocumentActs['unpublishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkUnpublishEntries');\n\n const res = await unpublishManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didBulkUnpublishEntries');\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.unpublish'),\n defaultMessage: 'Successfully unpublished.',\n }),\n message: '',\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkUnpublishEntries');\n\n throw err;\n }\n },\n [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [createDocument] = useCreateDocumentMutation();\n const create: IUseDocumentActs['create'] = React.useCallback(\n async ({ model, params }, data, trackerProperty) => {\n try {\n const res = await createDocument({\n model,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', { ...trackerProperty, documentId: res.data.data.documentId });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n setCurrentStep('contentManager.success');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [createDocument, formatAPIError, formatMessage, setCurrentStep, toggleNotification, trackUsage]\n );\n\n const [autoCloneDocument] = useAutoCloneDocumentMutation();\n const autoClone: IUseDocumentActs['autoClone'] = React.useCallback(\n async ({ model, sourceId }) => {\n try {\n const res = await autoCloneDocument({\n model,\n sourceId,\n });\n\n if ('error' in res) {\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [autoCloneDocument, formatMessage, toggleNotification]\n );\n\n const [cloneDocument] = useCloneDocumentMutation();\n const clone: IUseDocumentActs['clone'] = React.useCallback(\n async ({ model, documentId, params }, body, trackerProperty) => {\n try {\n const { id: _id, ...restBody } = body;\n\n /**\n * If we're cloning we want to post directly to this endpoint\n * so that the relations even if they're not listed in the EditView\n * are correctly attached to the entry.\n */\n const res = await cloneDocument({\n model,\n sourceId: documentId,\n data: restBody,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', trackerProperty);\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n // Redirect to normal edit view\n navigate(`../../${res.data.data.documentId}`, { relative: 'path' });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]\n );\n\n const [getDoc] = useLazyGetDocumentQuery();\n const getDocument: IUseDocumentActs['getDocument'] = React.useCallback(\n async (args) => {\n const { data } = await getDoc(args);\n\n return data;\n },\n [getDoc]\n );\n\n return {\n isLoading:\n isPublishing ||\n isUpdating ||\n isDiscardingDocument ||\n isDeleting ||\n isDeletingMany ||\n isUnpublishingMany ||\n isPublishingMany,\n autoClone,\n clone,\n create,\n delete: _delete,\n deleteMany,\n discard,\n getDocument,\n publish,\n publishMany,\n unpublish,\n unpublishMany,\n update,\n } satisfies IUseDocumentActs;\n};\n\nexport { useDocumentActions };\nexport type { UseDocumentActions, OperationResponse };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useDocumentActions","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","navigate","useNavigate","setCurrentStep","useGuidedTour","state","previewContext","usePreviewContext","relationContext","useRelationModal","fromPreview","undefined","fromRelationModal","deleteDocument","isLoading","isDeleting","useDeleteDocumentMutation","_delete","React","useCallback","collectionType","model","documentId","params","trackerProperty","res","type","message","error","getTranslation","data","err","deleteManyDocuments","isDeletingMany","useDeleteManyDocumentsMutation","deleteMany","documentIds","title","discardDocument","isDiscardingDocument","useDiscardDocumentMutation","discard","publishDocument","isPublishing","usePublishDocumentMutation","publish","publishManyDocuments","isPublishingMany","usePublishManyDocumentsMutation","publishMany","updateDocument","isUpdating","useUpdateDocumentMutation","update","unpublishDocument","useUnpublishDocumentMutation","unpublish","discardDraft","unpublishManyDocuments","isUnpublishingMany","useUnpublishManyDocumentsMutation","unpublishMany","createDocument","useCreateDocumentMutation","create","autoCloneDocument","useAutoCloneDocumentMutation","autoClone","sourceId","cloneDocument","useCloneDocumentMutation","clone","body","_id","restBody","relative","getDoc","useLazyGetDocumentQuery","getDocument","args","delete"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,MAAMA,4BAA+B,GAAA;IACnCC,EAAI,EAAA,oBAAA;IACJC,cAAgB,EAAA;AAClB,CAAA;AA0HA;;;;;;;;;;;;;;;;;;;;;;AAsBC,UACKC,kBAAyC,GAAA,IAAA;IAC7C,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;AACvB,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,8BAAAA,EAAAA;AACpD,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;AACjB,IAAA,MAAMC,iBAAiBC,yBAAc,CAAA,oBAAA,EAAsB,CAACC,KAAAA,GAAUA,MAAMF,cAAc,CAAA;;AAG1F,IAAA,MAAMG,cAAiBC,GAAAA,yBAAAA,CAAkB,oBAAsB,EAAA,IAAM,IAAM,EAAA,KAAA,CAAA;AAC3E,IAAA,MAAMC,eAAkBC,GAAAA,8BAAAA,CAAiB,oBAAsB,EAAA,IAAM,IAAM,EAAA,KAAA,CAAA;AAC3E,IAAA,MAAMC,cAAcJ,cAAkBK,IAAAA,SAAAA;AACtC,IAAA,MAAMC,oBAAoBJ,eAAmBG,IAAAA,SAAAA;AAE7C,IAAA,MAAM,CAACE,cAAgB,EAAA,EAAEC,WAAWC,UAAU,EAAE,CAAC,GAAGC,mCAAAA,EAAAA;AACpD,IAAA,MAAMC,OAAsCC,GAAAA,gBAAAA,CAAMC,WAAW,CAC3D,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEC,eAAAA,GAAAA;QACpD,IAAI;AACF5B,YAAAA,UAAAA,CAAW,iBAAmB4B,EAAAA,eAAAA,CAAAA;YAE9B,MAAMC,GAAAA,GAAM,MAAMZ,cAAe,CAAA;AAC/BO,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACAC,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBACjBkC,IAAM,EAAA,QAAA;oBACNC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AACnC,iBAAA,CAAA;gBAEA,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;YAEApC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;AACrBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,uBAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEAM,YAAAA,UAAAA,CAAW,gBAAkB4B,EAAAA,eAAAA,CAAAA;AAE7B,YAAA,OAAOC,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;AAEAQ,YAAAA,UAAAA,CAAW,mBAAqB,EAAA;gBAAEgC,KAAOG,EAAAA,GAAAA;AAAK,gBAAA,GAAGP;AAAgB,aAAA,CAAA;YAEjE,MAAMO,GAAAA;AACR;KAEF,EAAA;AAACnC,QAAAA,UAAAA;AAAYiB,QAAAA,cAAAA;AAAgBrB,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA;AAAe,KAAA,CAAA;AAGjF,IAAA,MAAM,CAACiC,mBAAqB,EAAA,EAAElB,WAAWmB,cAAc,EAAE,CAAC,GAAGC,wCAAAA,EAAAA;IAE7D,MAAMC,UAAAA,GAA6CjB,gBAAMC,CAAAA,WAAW,CAClE,OAAO,EAAEE,KAAK,EAAEe,WAAW,EAAEb,MAAM,EAAE,GAAA;QACnC,IAAI;YACF3B,UAAW,CAAA,uBAAA,CAAA;YAEX,MAAM6B,GAAAA,GAAM,MAAMO,mBAAoB,CAAA;AACpCX,gBAAAA,KAAAA;AACAe,gBAAAA,WAAAA;AACAb,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBACjBkC,IAAM,EAAA,QAAA;oBACNC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AACnC,iBAAA,CAAA;gBAEA,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;YAEApC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNW,gBAAAA,KAAAA,EAAO3C,aAAc,CAAA;AACnBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,wBAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA,CAAA;gBACAqC,OAAS,EAAA;AACX,aAAA,CAAA;YAEA/B,UAAW,CAAA,sBAAA,CAAA;AAEX,YAAA,OAAO6B,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;YAEAQ,UAAW,CAAA,yBAAA,CAAA;YAEX,MAAMmC,GAAAA;AACR;KAEF,EAAA;AAACnC,QAAAA,UAAAA;AAAYoC,QAAAA,mBAAAA;AAAqBxC,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA;AAAe,KAAA,CAAA;AAGtF,IAAA,MAAM,CAACuC,eAAiB,EAAA,EAAExB,WAAWyB,oBAAoB,EAAE,CAAC,GAAGC,oCAAAA,EAAAA;AAC/D,IAAA,MAAMC,OAAuCvB,GAAAA,gBAAAA,CAAMC,WAAW,CAC5D,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,GAAA;QAClD,IAAI;YACF,MAAME,GAAAA,GAAM,MAAMa,eAAgB,CAAA;AAChClB,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACAC,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBACjBkC,IAAM,EAAA,QAAA;oBACNC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AACnC,iBAAA,CAAA;gBAEA,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;YAEApC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;oBACrBL,EAAI,EAAA,wCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOmC,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM2C,GAAAA;AACR;KAEF,EAAA;AAACO,QAAAA,eAAAA;AAAiBvC,QAAAA,cAAAA;AAAgBL,QAAAA,aAAAA;AAAeF,QAAAA;AAAmB,KAAA,CAAA;AAGtE,IAAA,MAAM,CAACkD,eAAiB,EAAA,EAAE5B,WAAW6B,YAAY,EAAE,CAAC,GAAGC,oCAAAA,EAAAA;AACvD,IAAA,MAAMC,OAAuC3B,GAAAA,gBAAAA,CAAMC,WAAW,CAC5D,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEO,IAAAA,GAAAA;QACpD,IAAI;AACFlC,YAAAA,UAAAA,CAAW,kBAAoB,EAAA;AAAE0B,gBAAAA;AAAW,aAAA,CAAA;YAE5C,MAAMG,GAAAA,GAAM,MAAMiB,eAAgB,CAAA;AAChCtB,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACAQ,gBAAAA,IAAAA;AACAP,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBAAEkC,IAAM,EAAA,QAAA;oBAAUC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AAAE,iBAAA,CAAA;gBACxE,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;AAEAhC,YAAAA,UAAAA,CAAW,iBAAmB,EAAA;AAAE0B,gBAAAA,UAAAA;AAAYZ,gBAAAA,WAAAA;AAAaE,gBAAAA;AAAkB,aAAA,CAAA;YAE3EpB,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;AACrBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,wBAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOmC,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM2C,GAAAA;AACR;KAEF,EAAA;AACEnC,QAAAA,UAAAA;AACA8C,QAAAA,eAAAA;AACAhC,QAAAA,WAAAA;AACAE,QAAAA,iBAAAA;AACApB,QAAAA,kBAAAA;AACAE,QAAAA,aAAAA;AACAK,QAAAA;AACD,KAAA,CAAA;AAGH,IAAA,MAAM,CAAC+C,oBAAsB,EAAA,EAAEhC,WAAWiC,gBAAgB,EAAE,CAAC,GAAGC,yCAAAA,EAAAA;IAChE,MAAMC,WAAAA,GAA+C/B,gBAAMC,CAAAA,WAAW,CACpE,OAAO,EAAEE,KAAK,EAAEe,WAAW,EAAEb,MAAM,EAAE,GAAA;QACnC,IAAI;;YAGF,MAAME,GAAAA,GAAM,MAAMqB,oBAAqB,CAAA;AACrCzB,gBAAAA,KAAAA;AACAe,gBAAAA,WAAAA;AACAb,gBAAAA;AACF,aAAA,CAAA;AACA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBAAEkC,IAAM,EAAA,QAAA;oBAAUC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AAAE,iBAAA,CAAA;gBACxE,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;YAEApC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;AACrBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,wBAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOmC,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;YACA,MAAM2C,GAAAA;AACR;KAEF,EAAA;;AAEEe,QAAAA,oBAAAA;AACAtD,QAAAA,kBAAAA;AACAE,QAAAA,aAAAA;AACAK,QAAAA;AACD,KAAA,CAAA;AAGH,IAAA,MAAM,CAACmD,cAAgB,EAAA,EAAEpC,WAAWqC,UAAU,EAAE,CAAC,GAAGC,mCAAAA,EAAAA;AACpD,IAAA,MAAMC,MAAqCnC,GAAAA,gBAAAA,CAAMC,WAAW,CAC1D,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEO,IAAMN,EAAAA,eAAAA,GAAAA;QAC1D,IAAI;AACF5B,YAAAA,UAAAA,CAAW,eAAiB4B,EAAAA,eAAAA,CAAAA;YAE5B,MAAMC,GAAAA,GAAM,MAAMyB,cAAe,CAAA;AAC/B9B,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACAQ,gBAAAA,IAAAA;AACAP,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBAAEkC,IAAM,EAAA,QAAA;oBAAUC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AAAE,iBAAA,CAAA;AAExEhC,gBAAAA,UAAAA,CAAW,iBAAmB,EAAA;AAAEgC,oBAAAA,KAAAA,EAAOH,IAAIG,KAAK;AAAE,oBAAA,GAAGJ;AAAgB,iBAAA,CAAA;gBAErE,OAAO;AAAEI,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;AAEAhC,YAAAA,UAAAA,CAAW,cAAgB,EAAA;AACzB,gBAAA,GAAG4B,eAAe;AAClBF,gBAAAA,UAAAA,EAAYG,GAAIK,CAAAA,IAAI,CAACA,IAAI,CAACR,UAAU;AACpCZ,gBAAAA,WAAAA;AACAE,gBAAAA;AACF,aAAA,CAAA;YACApB,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;AACrBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,qBAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOmC,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;AACZnC,YAAAA,UAAAA,CAAW,iBAAmB,EAAA;gBAAEgC,KAAOG,EAAAA,GAAAA;AAAK,gBAAA,GAAGP;AAAgB,aAAA,CAAA;YAE/DhC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM2C,GAAAA;AACR;KAEF,EAAA;AACEnC,QAAAA,UAAAA;AACAsD,QAAAA,cAAAA;AACAxC,QAAAA,WAAAA;AACAE,QAAAA,iBAAAA;AACApB,QAAAA,kBAAAA;AACAE,QAAAA,aAAAA;AACAK,QAAAA;AACD,KAAA,CAAA;IAGH,MAAM,CAACuD,kBAAkB,GAAGC,sCAAAA,EAAAA;AAC5B,IAAA,MAAMC,YAA2CtC,gBAAMC,CAAAA,WAAW,CAChE,OAAO,EAAEC,cAAc,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEkC,eAAe,KAAK,GAAA;QACxE,IAAI;YACF7D,UAAW,CAAA,oBAAA,CAAA;YAEX,MAAM6B,GAAAA,GAAM,MAAM6B,iBAAkB,CAAA;AAClClC,gBAAAA,cAAAA;AACAC,gBAAAA,KAAAA;AACAC,gBAAAA,UAAAA;AACAC,gBAAAA,MAAAA;gBACAO,IAAM,EAAA;AACJ2B,oBAAAA;AACF;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWhC,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBAAEkC,IAAM,EAAA,QAAA;oBAAUC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AAAE,iBAAA,CAAA;gBAExE,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;YAEAhC,UAAW,CAAA,mBAAA,CAAA;YAEXJ,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;AACrBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,0BAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOmC,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM2C,GAAAA;AACR;KAEF,EAAA;AAACnC,QAAAA,UAAAA;AAAY0D,QAAAA,iBAAAA;AAAmB9D,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA;AAAe,KAAA,CAAA;AAGpF,IAAA,MAAM,CAAC2D,sBAAwB,EAAA,EAAE5C,WAAW6C,kBAAkB,EAAE,CAAC,GAC/DC,2CAAAA,EAAAA;IACF,MAAMC,aAAAA,GAAmD3C,gBAAMC,CAAAA,WAAW,CACxE,OAAO,EAAEE,KAAK,EAAEe,WAAW,EAAEb,MAAM,EAAE,GAAA;QACnC,IAAI;YACF3B,UAAW,CAAA,0BAAA,CAAA;YAEX,MAAM6B,GAAAA,GAAM,MAAMiC,sBAAuB,CAAA;AACvCrC,gBAAAA,KAAAA;AACAe,gBAAAA,WAAAA;AACAb,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBAAEkC,IAAM,EAAA,QAAA;oBAAUC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AAAE,iBAAA,CAAA;gBAExE,OAAO;AAAEA,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;YAEAhC,UAAW,CAAA,yBAAA,CAAA;YAEXJ,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNW,gBAAAA,KAAAA,EAAO3C,aAAc,CAAA;AACnBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,2BAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA,CAAA;gBACAqC,OAAS,EAAA;AACX,aAAA,CAAA;AAEA,YAAA,OAAOF,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;YAEAQ,UAAW,CAAA,4BAAA,CAAA;YAEX,MAAMmC,GAAAA;AACR;KAEF,EAAA;AAACnC,QAAAA,UAAAA;AAAY8D,QAAAA,sBAAAA;AAAwBlE,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA;AAAe,KAAA,CAAA;IAGzF,MAAM,CAAC+D,eAAe,GAAGC,mCAAAA,EAAAA;IACzB,MAAMC,MAAAA,GAAqC9C,gBAAMC,CAAAA,WAAW,CAC1D,OAAO,EAAEE,KAAK,EAAEE,MAAM,EAAE,EAAEO,IAAMN,EAAAA,eAAAA,GAAAA;QAC9B,IAAI;YACF,MAAMC,GAAAA,GAAM,MAAMqC,cAAe,CAAA;AAC/BzC,gBAAAA,KAAAA;AACAS,gBAAAA,IAAAA;AACAP,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBAAEkC,IAAM,EAAA,QAAA;oBAAUC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AAAE,iBAAA,CAAA;AAExEhC,gBAAAA,UAAAA,CAAW,mBAAqB,EAAA;AAAEgC,oBAAAA,KAAAA,EAAOH,IAAIG,KAAK;AAAE,oBAAA,GAAGJ;AAAgB,iBAAA,CAAA;gBAEvE,OAAO;AAAEI,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;AAEAhC,YAAAA,UAAAA,CAAW,gBAAkB,EAAA;AAAE,gBAAA,GAAG4B,eAAe;AAAEF,gBAAAA,UAAAA,EAAYG,GAAIK,CAAAA,IAAI,CAACA,IAAI,CAACR;AAAW,aAAA,CAAA;YAExF9B,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;AACrBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,qBAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;YAEAa,cAAe,CAAA,wBAAA,CAAA;AAEf,YAAA,OAAOsB,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;AAEAQ,YAAAA,UAAAA,CAAW,mBAAqB,EAAA;gBAAEgC,KAAOG,EAAAA,GAAAA;AAAK,gBAAA,GAAGP;AAAgB,aAAA,CAAA;YAEjE,MAAMO,GAAAA;AACR;KAEF,EAAA;AAAC+B,QAAAA,cAAAA;AAAgB/D,QAAAA,cAAAA;AAAgBL,QAAAA,aAAAA;AAAeS,QAAAA,cAAAA;AAAgBX,QAAAA,kBAAAA;AAAoBI,QAAAA;AAAW,KAAA,CAAA;IAGjG,MAAM,CAACqE,kBAAkB,GAAGC,sCAAAA,EAAAA;IAC5B,MAAMC,SAAAA,GAA2CjD,iBAAMC,WAAW,CAChE,OAAO,EAAEE,KAAK,EAAE+C,QAAQ,EAAE,GAAA;QACxB,IAAI;YACF,MAAM3C,GAAAA,GAAM,MAAMwC,iBAAkB,CAAA;AAClC5C,gBAAAA,KAAAA;AACA+C,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAW3C,GAAK,EAAA;gBAClB,OAAO;AAAEG,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;YAEApC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;AACrBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,sBAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA,YAAA,OAAOmC,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;YAEA,MAAM2C,GAAAA;AACR;KAEF,EAAA;AAACkC,QAAAA,iBAAAA;AAAmBvE,QAAAA,aAAAA;AAAeF,QAAAA;AAAmB,KAAA,CAAA;IAGxD,MAAM,CAAC6E,cAAc,GAAGC,kCAAAA,EAAAA;AACxB,IAAA,MAAMC,KAAmCrD,GAAAA,gBAAAA,CAAMC,WAAW,CACxD,OAAO,EAAEE,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAE,EAAEiD,IAAMhD,EAAAA,eAAAA,GAAAA;QAC1C,IAAI;AACF,YAAA,MAAM,EAAEnC,EAAIoF,EAAAA,GAAG,EAAE,GAAGC,UAAU,GAAGF,IAAAA;AAEjC;;;;YAKA,MAAM/C,GAAM,GAAA,MAAM4C,aAAc,CAAA;AAC9BhD,gBAAAA,KAAAA;gBACA+C,QAAU9C,EAAAA,UAAAA;gBACVQ,IAAM4C,EAAAA,QAAAA;AACNnD,gBAAAA;AACF,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClBjC,kBAAmB,CAAA;oBAAEkC,IAAM,EAAA,QAAA;oBAAUC,OAAS5B,EAAAA,cAAAA,CAAe0B,IAAIG,KAAK;AAAE,iBAAA,CAAA;AAExEhC,gBAAAA,UAAAA,CAAW,mBAAqB,EAAA;AAAEgC,oBAAAA,KAAAA,EAAOH,IAAIG,KAAK;AAAE,oBAAA,GAAGJ;AAAgB,iBAAA,CAAA;gBAEvE,OAAO;AAAEI,oBAAAA,KAAAA,EAAOH,IAAIG;AAAM,iBAAA;AAC5B;AAEAhC,YAAAA,UAAAA,CAAW,gBAAkB4B,EAAAA,eAAAA,CAAAA;YAC7BhC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAc,CAAA;AACrBL,oBAAAA,EAAAA,EAAIwC,2BAAe,CAAA,sBAAA,CAAA;oBACnBvC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;;YAGAW,QAAS,CAAA,CAAC,MAAM,EAAEwB,GAAIK,CAAAA,IAAI,CAACA,IAAI,CAACR,UAAU,CAAC,CAAC,EAAE;gBAAEqD,QAAU,EAAA;AAAO,aAAA,CAAA;AAEjE,YAAA,OAAOlD,IAAIK,IAAI;AACjB,SAAA,CAAE,OAAOC,GAAK,EAAA;YACZvC,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjC,aAAcN,CAAAA,4BAAAA;AACzB,aAAA,CAAA;AAEAQ,YAAAA,UAAAA,CAAW,mBAAqB,EAAA;gBAAEgC,KAAOG,EAAAA,GAAAA;AAAK,gBAAA,GAAGP;AAAgB,aAAA,CAAA;YAEjE,MAAMO,GAAAA;AACR;KAEF,EAAA;AAACsC,QAAAA,aAAAA;AAAezE,QAAAA,UAAAA;AAAYJ,QAAAA,kBAAAA;AAAoBE,QAAAA,aAAAA;AAAeK,QAAAA,cAAAA;AAAgBE,QAAAA;AAAS,KAAA,CAAA;IAG1F,MAAM,CAAC2E,OAAO,GAAGC,iCAAAA,EAAAA;AACjB,IAAA,MAAMC,WAA+C5D,GAAAA,gBAAAA,CAAMC,WAAW,CACpE,OAAO4D,IAAAA,GAAAA;AACL,QAAA,MAAM,EAAEjD,IAAI,EAAE,GAAG,MAAM8C,MAAOG,CAAAA,IAAAA,CAAAA;QAE9B,OAAOjD,IAAAA;KAET,EAAA;AAAC8C,QAAAA;AAAO,KAAA,CAAA;IAGV,OAAO;AACL9D,QAAAA,SAAAA,EACE6B,YACAQ,IAAAA,UAAAA,IACAZ,oBACAxB,IAAAA,UAAAA,IACAkB,kBACA0B,kBACAZ,IAAAA,gBAAAA;AACFoB,QAAAA,SAAAA;AACAI,QAAAA,KAAAA;AACAP,QAAAA,MAAAA;QACAgB,MAAQ/D,EAAAA,OAAAA;AACRkB,QAAAA,UAAAA;AACAM,QAAAA,OAAAA;AACAqC,QAAAA,WAAAA;AACAjC,QAAAA,OAAAA;AACAI,QAAAA,WAAAA;AACAO,QAAAA,SAAAA;AACAK,QAAAA,aAAAA;AACAR,QAAAA;AACF,KAAA;AACF;;;;"}
|
1
|
+
{"version":3,"file":"useDocumentActions.js","sources":["../../../admin/src/hooks/useDocumentActions.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\nimport {\n useNotification,\n useTracking,\n type TrackingEvent,\n useAPIErrorHandler,\n useGuidedTour,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal';\nimport { usePreviewContext } from '../preview/pages/Preview';\nimport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useLazyGetDocumentQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n} from '../services/documents';\nimport { BaseQueryError } from '../utils/api';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Document } from './useDocument';\nimport type {\n AutoClone,\n Clone,\n Create,\n Delete,\n BulkDelete,\n Discard,\n FindOne,\n Publish,\n BulkPublish,\n Update,\n Unpublish,\n BulkUnpublish,\n} from '../../../shared/contracts/collection-types';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype OperationResponse<TResponse extends { data: any; meta?: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | Pick<TResponse, 'data' | 'meta'>\n | { error: BaseQueryError | SerializedError };\n\ntype BulkOperationResponse<TResponse extends { data: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | { error: BaseQueryError | SerializedError };\n\ntype UseDocumentActions = (\n fromPreview?: boolean,\n fromRelationModal?: boolean\n) => {\n /**\n * @description Attempts to clone a document based on the provided sourceId.\n * This will return a list of the fields as an error if it's unable to clone.\n * You most likely want to use the `clone` action instead.\n */\n isLoading: boolean;\n autoClone: (args: {\n model: string;\n sourceId: string;\n }) => Promise<OperationResponse<AutoClone.Response>>;\n clone: (\n args: {\n model: string;\n documentId: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Clone.Response>>;\n create: (\n args: {\n model: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Create.Response>>;\n delete: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry' }\n >['properties']\n ) => Promise<OperationResponse<Delete.Response>>;\n deleteMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkDelete.Response>>;\n discard: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<OperationResponse<Discard.Response>>;\n getDocument: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<FindOne.Response | undefined>;\n publish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>\n ) => Promise<OperationResponse<Publish.Response>>;\n publishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkPublish.Response>>;\n update: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry' }\n >['properties']\n ) => Promise<OperationResponse<Update.Response>>;\n unpublish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n discardDraft?: boolean\n ) => Promise<OperationResponse<Unpublish.Response>>;\n unpublishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkUnpublish.Response>>;\n};\n\ntype IUseDocumentActs = ReturnType<UseDocumentActions>;\n\n/**\n * @alpha\n * @public\n * @description Contains all the operations that can be performed on a single document.\n * Designed to be able to be used anywhere within a Strapi app. The hooks will handle\n * notifications should the operation fail, however the response is always returned incase\n * the user needs to handle side-effects.\n * @example\n * ```tsx\n * import { Form } from '@strapi/admin/admin';\n *\n * const { id, model, collectionType } = useParams<{ id: string; model: string; collectionType: string }>();\n * const { update } = useDocumentActions();\n *\n * const handleSubmit = async (data) => {\n * await update({ collectionType, model, documentId: id }, data);\n * }\n *\n * return <Form method=\"PUT\" onSubmit={handleSubmit} />\n * ```\n *\n * @see {@link https://contributor.strapi.io/docs/core/content-manager/hooks/use-document-operations} for more information\n */\nconst useDocumentActions: UseDocumentActions = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const navigate = useNavigate();\n const setCurrentStep = useGuidedTour('useDocumentActions', (state) => state.setCurrentStep);\n\n // Get metadata from context providers for tracking purposes\n const previewContext = usePreviewContext('useDocumentActions', () => true, false);\n const relationContext = useRelationModal('useDocumentActions', () => true, false);\n const fromPreview = previewContext != undefined;\n const fromRelationModal = relationContext != undefined;\n\n const [deleteDocument, { isLoading: isDeleting }] = useDeleteDocumentMutation();\n const _delete: IUseDocumentActs['delete'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, trackerProperty) => {\n try {\n trackUsage('willDeleteEntry', trackerProperty);\n\n const res = await deleteDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.delete'),\n defaultMessage: 'Deleted document',\n }),\n });\n\n trackUsage('didDeleteEntry', trackerProperty);\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotDeleteEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [deleteManyDocuments, { isLoading: isDeletingMany }] = useDeleteManyDocumentsMutation();\n\n const deleteMany: IUseDocumentActs['deleteMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkDeleteEntries');\n\n const res = await deleteManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.delete'),\n defaultMessage: 'Successfully deleted.',\n }),\n message: '',\n });\n\n trackUsage('didBulkDeleteEntries');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkDeleteEntries');\n\n throw err;\n }\n },\n [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [discardDocument, { isLoading: isDiscardingDocument }] = useDiscardDocumentMutation();\n const discard: IUseDocumentActs['discard'] = React.useCallback(\n async ({ collectionType, model, documentId, params }) => {\n try {\n const res = await discardDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.success.record.discard',\n defaultMessage: 'Changes discarded',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [discardDocument, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();\n const publish: IUseDocumentActs['publish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data) => {\n try {\n trackUsage('willPublishEntry', { documentId });\n\n const res = await publishDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n trackUsage('didPublishEntry', { documentId, fromPreview, fromRelationModal });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n publishDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [publishManyDocuments, { isLoading: isPublishingMany }] = usePublishManyDocumentsMutation();\n const publishMany: IUseDocumentActs['publishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n // TODO Confirm tracking events for bulk publish?\n\n const res = await publishManyDocuments({\n model,\n documentIds,\n params,\n });\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n throw err;\n }\n },\n [\n // trackUsage,\n publishManyDocuments,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [updateDocument, { isLoading: isUpdating }] = useUpdateDocumentMutation();\n const update: IUseDocumentActs['update'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data, trackerProperty) => {\n try {\n trackUsage('willEditEntry', trackerProperty);\n\n const res = await updateDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotEditEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didEditEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n trackUsage('didNotEditEntry', { error: err, ...trackerProperty });\n\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n updateDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [unpublishDocument] = useUnpublishDocumentMutation();\n const unpublish: IUseDocumentActs['unpublish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, discardDraft = false) => {\n try {\n trackUsage('willUnpublishEntry');\n\n const res = await unpublishDocument({\n collectionType,\n model,\n documentId,\n params,\n data: {\n discardDraft,\n },\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didUnpublishEntry');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.unpublish'),\n defaultMessage: 'Unpublished document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [unpublishManyDocuments, { isLoading: isUnpublishingMany }] =\n useUnpublishManyDocumentsMutation();\n const unpublishMany: IUseDocumentActs['unpublishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkUnpublishEntries');\n\n const res = await unpublishManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didBulkUnpublishEntries');\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.unpublish'),\n defaultMessage: 'Successfully unpublished.',\n }),\n message: '',\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkUnpublishEntries');\n\n throw err;\n }\n },\n [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [createDocument] = useCreateDocumentMutation();\n const create: IUseDocumentActs['create'] = React.useCallback(\n async ({ model, params }, data, trackerProperty) => {\n try {\n const res = await createDocument({\n model,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n setCurrentStep('contentManager.success');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [\n createDocument,\n formatAPIError,\n formatMessage,\n fromPreview,\n fromRelationModal,\n setCurrentStep,\n toggleNotification,\n trackUsage,\n ]\n );\n\n const [autoCloneDocument] = useAutoCloneDocumentMutation();\n const autoClone: IUseDocumentActs['autoClone'] = React.useCallback(\n async ({ model, sourceId }) => {\n try {\n const res = await autoCloneDocument({\n model,\n sourceId,\n });\n\n if ('error' in res) {\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [autoCloneDocument, formatMessage, toggleNotification]\n );\n\n const [cloneDocument] = useCloneDocumentMutation();\n const clone: IUseDocumentActs['clone'] = React.useCallback(\n async ({ model, documentId, params }, body, trackerProperty) => {\n try {\n const { id: _id, ...restBody } = body;\n\n /**\n * If we're cloning we want to post directly to this endpoint\n * so that the relations even if they're not listed in the EditView\n * are correctly attached to the entry.\n */\n const res = await cloneDocument({\n model,\n sourceId: documentId,\n data: restBody,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', trackerProperty);\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n // Redirect to normal edit view\n navigate(`../../${res.data.data.documentId}`, { relative: 'path' });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]\n );\n\n const [getDoc] = useLazyGetDocumentQuery();\n const getDocument: IUseDocumentActs['getDocument'] = React.useCallback(\n async (args) => {\n const { data } = await getDoc(args);\n\n return data;\n },\n [getDoc]\n );\n\n return {\n isLoading:\n isPublishing ||\n isUpdating ||\n isDiscardingDocument ||\n isDeleting ||\n isDeletingMany ||\n isUnpublishingMany ||\n isPublishingMany,\n autoClone,\n clone,\n create,\n delete: _delete,\n deleteMany,\n discard,\n getDocument,\n publish,\n publishMany,\n unpublish,\n unpublishMany,\n update,\n } satisfies IUseDocumentActs;\n};\n\nexport { useDocumentActions };\nexport type { UseDocumentActions, OperationResponse };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useDocumentActions","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","navigate","useNavigate","setCurrentStep","useGuidedTour","state","previewContext","usePreviewContext","relationContext","useRelationModal","fromPreview","undefined","fromRelationModal","deleteDocument","isLoading","isDeleting","useDeleteDocumentMutation","_delete","React","useCallback","collectionType","model","documentId","params","trackerProperty","res","type","message","error","getTranslation","data","err","deleteManyDocuments","isDeletingMany","useDeleteManyDocumentsMutation","deleteMany","documentIds","title","discardDocument","isDiscardingDocument","useDiscardDocumentMutation","discard","publishDocument","isPublishing","usePublishDocumentMutation","publish","publishManyDocuments","isPublishingMany","usePublishManyDocumentsMutation","publishMany","updateDocument","isUpdating","useUpdateDocumentMutation","update","unpublishDocument","useUnpublishDocumentMutation","unpublish","discardDraft","unpublishManyDocuments","isUnpublishingMany","useUnpublishManyDocumentsMutation","unpublishMany","createDocument","useCreateDocumentMutation","create","autoCloneDocument","useAutoCloneDocumentMutation","autoClone","sourceId","cloneDocument","useCloneDocumentMutation","clone","body","_id","restBody","relative","getDoc","useLazyGetDocumentQuery","getDocument","args","delete"],"mappings":"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"}
|
@@ -433,7 +433,9 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
433
433
|
}
|
434
434
|
trackUsage('didCreateEntry', {
|
435
435
|
...trackerProperty,
|
436
|
-
documentId: res.data.data.documentId
|
436
|
+
documentId: res.data.data.documentId,
|
437
|
+
fromPreview,
|
438
|
+
fromRelationModal
|
437
439
|
});
|
438
440
|
toggleNotification({
|
439
441
|
type: 'success',
|
@@ -459,6 +461,8 @@ const DEFAULT_UNEXPECTED_ERROR_MSG = {
|
|
459
461
|
createDocument,
|
460
462
|
formatAPIError,
|
461
463
|
formatMessage,
|
464
|
+
fromPreview,
|
465
|
+
fromRelationModal,
|
462
466
|
setCurrentStep,
|
463
467
|
toggleNotification,
|
464
468
|
trackUsage
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useDocumentActions.mjs","sources":["../../../admin/src/hooks/useDocumentActions.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\nimport {\n useNotification,\n useTracking,\n type TrackingEvent,\n useAPIErrorHandler,\n useGuidedTour,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal';\nimport { usePreviewContext } from '../preview/pages/Preview';\nimport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useLazyGetDocumentQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n} from '../services/documents';\nimport { BaseQueryError } from '../utils/api';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Document } from './useDocument';\nimport type {\n AutoClone,\n Clone,\n Create,\n Delete,\n BulkDelete,\n Discard,\n FindOne,\n Publish,\n BulkPublish,\n Update,\n Unpublish,\n BulkUnpublish,\n} from '../../../shared/contracts/collection-types';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype OperationResponse<TResponse extends { data: any; meta?: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | Pick<TResponse, 'data' | 'meta'>\n | { error: BaseQueryError | SerializedError };\n\ntype BulkOperationResponse<TResponse extends { data: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | { error: BaseQueryError | SerializedError };\n\ntype UseDocumentActions = (\n fromPreview?: boolean,\n fromRelationModal?: boolean\n) => {\n /**\n * @description Attempts to clone a document based on the provided sourceId.\n * This will return a list of the fields as an error if it's unable to clone.\n * You most likely want to use the `clone` action instead.\n */\n isLoading: boolean;\n autoClone: (args: {\n model: string;\n sourceId: string;\n }) => Promise<OperationResponse<AutoClone.Response>>;\n clone: (\n args: {\n model: string;\n documentId: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Clone.Response>>;\n create: (\n args: {\n model: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Create.Response>>;\n delete: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry' }\n >['properties']\n ) => Promise<OperationResponse<Delete.Response>>;\n deleteMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkDelete.Response>>;\n discard: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<OperationResponse<Discard.Response>>;\n getDocument: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<FindOne.Response | undefined>;\n publish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>\n ) => Promise<OperationResponse<Publish.Response>>;\n publishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkPublish.Response>>;\n update: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry' }\n >['properties']\n ) => Promise<OperationResponse<Update.Response>>;\n unpublish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n discardDraft?: boolean\n ) => Promise<OperationResponse<Unpublish.Response>>;\n unpublishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkUnpublish.Response>>;\n};\n\ntype IUseDocumentActs = ReturnType<UseDocumentActions>;\n\n/**\n * @alpha\n * @public\n * @description Contains all the operations that can be performed on a single document.\n * Designed to be able to be used anywhere within a Strapi app. The hooks will handle\n * notifications should the operation fail, however the response is always returned incase\n * the user needs to handle side-effects.\n * @example\n * ```tsx\n * import { Form } from '@strapi/admin/admin';\n *\n * const { id, model, collectionType } = useParams<{ id: string; model: string; collectionType: string }>();\n * const { update } = useDocumentActions();\n *\n * const handleSubmit = async (data) => {\n * await update({ collectionType, model, documentId: id }, data);\n * }\n *\n * return <Form method=\"PUT\" onSubmit={handleSubmit} />\n * ```\n *\n * @see {@link https://contributor.strapi.io/docs/core/content-manager/hooks/use-document-operations} for more information\n */\nconst useDocumentActions: UseDocumentActions = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const navigate = useNavigate();\n const setCurrentStep = useGuidedTour('useDocumentActions', (state) => state.setCurrentStep);\n\n // Get metadata from context providers for tracking purposes\n const previewContext = usePreviewContext('useDocumentActions', () => true, false);\n const relationContext = useRelationModal('useDocumentActions', () => true, false);\n const fromPreview = previewContext != undefined;\n const fromRelationModal = relationContext != undefined;\n\n const [deleteDocument, { isLoading: isDeleting }] = useDeleteDocumentMutation();\n const _delete: IUseDocumentActs['delete'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, trackerProperty) => {\n try {\n trackUsage('willDeleteEntry', trackerProperty);\n\n const res = await deleteDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.delete'),\n defaultMessage: 'Deleted document',\n }),\n });\n\n trackUsage('didDeleteEntry', trackerProperty);\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotDeleteEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [deleteManyDocuments, { isLoading: isDeletingMany }] = useDeleteManyDocumentsMutation();\n\n const deleteMany: IUseDocumentActs['deleteMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkDeleteEntries');\n\n const res = await deleteManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.delete'),\n defaultMessage: 'Successfully deleted.',\n }),\n message: '',\n });\n\n trackUsage('didBulkDeleteEntries');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkDeleteEntries');\n\n throw err;\n }\n },\n [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [discardDocument, { isLoading: isDiscardingDocument }] = useDiscardDocumentMutation();\n const discard: IUseDocumentActs['discard'] = React.useCallback(\n async ({ collectionType, model, documentId, params }) => {\n try {\n const res = await discardDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.success.record.discard',\n defaultMessage: 'Changes discarded',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [discardDocument, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();\n const publish: IUseDocumentActs['publish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data) => {\n try {\n trackUsage('willPublishEntry', { documentId });\n\n const res = await publishDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n trackUsage('didPublishEntry', { documentId, fromPreview, fromRelationModal });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n publishDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [publishManyDocuments, { isLoading: isPublishingMany }] = usePublishManyDocumentsMutation();\n const publishMany: IUseDocumentActs['publishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n // TODO Confirm tracking events for bulk publish?\n\n const res = await publishManyDocuments({\n model,\n documentIds,\n params,\n });\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n throw err;\n }\n },\n [\n // trackUsage,\n publishManyDocuments,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [updateDocument, { isLoading: isUpdating }] = useUpdateDocumentMutation();\n const update: IUseDocumentActs['update'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data, trackerProperty) => {\n try {\n trackUsage('willEditEntry', trackerProperty);\n\n const res = await updateDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotEditEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didEditEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n trackUsage('didNotEditEntry', { error: err, ...trackerProperty });\n\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n updateDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [unpublishDocument] = useUnpublishDocumentMutation();\n const unpublish: IUseDocumentActs['unpublish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, discardDraft = false) => {\n try {\n trackUsage('willUnpublishEntry');\n\n const res = await unpublishDocument({\n collectionType,\n model,\n documentId,\n params,\n data: {\n discardDraft,\n },\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didUnpublishEntry');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.unpublish'),\n defaultMessage: 'Unpublished document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [unpublishManyDocuments, { isLoading: isUnpublishingMany }] =\n useUnpublishManyDocumentsMutation();\n const unpublishMany: IUseDocumentActs['unpublishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkUnpublishEntries');\n\n const res = await unpublishManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didBulkUnpublishEntries');\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.unpublish'),\n defaultMessage: 'Successfully unpublished.',\n }),\n message: '',\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkUnpublishEntries');\n\n throw err;\n }\n },\n [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [createDocument] = useCreateDocumentMutation();\n const create: IUseDocumentActs['create'] = React.useCallback(\n async ({ model, params }, data, trackerProperty) => {\n try {\n const res = await createDocument({\n model,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', { ...trackerProperty, documentId: res.data.data.documentId });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n setCurrentStep('contentManager.success');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [createDocument, formatAPIError, formatMessage, setCurrentStep, toggleNotification, trackUsage]\n );\n\n const [autoCloneDocument] = useAutoCloneDocumentMutation();\n const autoClone: IUseDocumentActs['autoClone'] = React.useCallback(\n async ({ model, sourceId }) => {\n try {\n const res = await autoCloneDocument({\n model,\n sourceId,\n });\n\n if ('error' in res) {\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [autoCloneDocument, formatMessage, toggleNotification]\n );\n\n const [cloneDocument] = useCloneDocumentMutation();\n const clone: IUseDocumentActs['clone'] = React.useCallback(\n async ({ model, documentId, params }, body, trackerProperty) => {\n try {\n const { id: _id, ...restBody } = body;\n\n /**\n * If we're cloning we want to post directly to this endpoint\n * so that the relations even if they're not listed in the EditView\n * are correctly attached to the entry.\n */\n const res = await cloneDocument({\n model,\n sourceId: documentId,\n data: restBody,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', trackerProperty);\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n // Redirect to normal edit view\n navigate(`../../${res.data.data.documentId}`, { relative: 'path' });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]\n );\n\n const [getDoc] = useLazyGetDocumentQuery();\n const getDocument: IUseDocumentActs['getDocument'] = React.useCallback(\n async (args) => {\n const { data } = await getDoc(args);\n\n return data;\n },\n [getDoc]\n );\n\n return {\n isLoading:\n isPublishing ||\n isUpdating ||\n isDiscardingDocument ||\n isDeleting ||\n isDeletingMany ||\n isUnpublishingMany ||\n isPublishingMany,\n autoClone,\n clone,\n create,\n delete: _delete,\n deleteMany,\n discard,\n getDocument,\n publish,\n publishMany,\n unpublish,\n unpublishMany,\n update,\n } satisfies IUseDocumentActs;\n};\n\nexport { useDocumentActions };\nexport type { UseDocumentActions, OperationResponse };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useDocumentActions","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","navigate","useNavigate","setCurrentStep","useGuidedTour","state","previewContext","usePreviewContext","relationContext","useRelationModal","fromPreview","undefined","fromRelationModal","deleteDocument","isLoading","isDeleting","useDeleteDocumentMutation","_delete","React","useCallback","collectionType","model","documentId","params","trackerProperty","res","type","message","error","getTranslation","data","err","deleteManyDocuments","isDeletingMany","useDeleteManyDocumentsMutation","deleteMany","documentIds","title","discardDocument","isDiscardingDocument","useDiscardDocumentMutation","discard","publishDocument","isPublishing","usePublishDocumentMutation","publish","publishManyDocuments","isPublishingMany","usePublishManyDocumentsMutation","publishMany","updateDocument","isUpdating","useUpdateDocumentMutation","update","unpublishDocument","useUnpublishDocumentMutation","unpublish","discardDraft","unpublishManyDocuments","isUnpublishingMany","useUnpublishManyDocumentsMutation","unpublishMany","createDocument","useCreateDocumentMutation","create","autoCloneDocument","useAutoCloneDocumentMutation","autoClone","sourceId","cloneDocument","useCloneDocumentMutation","clone","body","_id","restBody","relative","getDoc","useLazyGetDocumentQuery","getDocument","args","delete"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useDocumentActions.mjs","sources":["../../../admin/src/hooks/useDocumentActions.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { SerializedError } from '@reduxjs/toolkit';\nimport {\n useNotification,\n useTracking,\n type TrackingEvent,\n useAPIErrorHandler,\n useGuidedTour,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { useRelationModal } from '../pages/EditView/components/FormInputs/Relations/RelationModal';\nimport { usePreviewContext } from '../preview/pages/Preview';\nimport {\n useAutoCloneDocumentMutation,\n useCloneDocumentMutation,\n useCreateDocumentMutation,\n useDeleteDocumentMutation,\n useDeleteManyDocumentsMutation,\n useDiscardDocumentMutation,\n useLazyGetDocumentQuery,\n usePublishDocumentMutation,\n usePublishManyDocumentsMutation,\n useUnpublishDocumentMutation,\n useUnpublishManyDocumentsMutation,\n useUpdateDocumentMutation,\n} from '../services/documents';\nimport { BaseQueryError } from '../utils/api';\nimport { getTranslation } from '../utils/translations';\n\nimport type { Document } from './useDocument';\nimport type {\n AutoClone,\n Clone,\n Create,\n Delete,\n BulkDelete,\n Discard,\n FindOne,\n Publish,\n BulkPublish,\n Update,\n Unpublish,\n BulkUnpublish,\n} from '../../../shared/contracts/collection-types';\n\nconst DEFAULT_UNEXPECTED_ERROR_MSG = {\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n} satisfies MessageDescriptor;\n\ntype OperationResponse<TResponse extends { data: any; meta?: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | Pick<TResponse, 'data' | 'meta'>\n | { error: BaseQueryError | SerializedError };\n\ntype BulkOperationResponse<TResponse extends { data: any; error?: any }> =\n | Pick<TResponse, 'data'>\n | { error: BaseQueryError | SerializedError };\n\ntype UseDocumentActions = (\n fromPreview?: boolean,\n fromRelationModal?: boolean\n) => {\n /**\n * @description Attempts to clone a document based on the provided sourceId.\n * This will return a list of the fields as an error if it's unable to clone.\n * You most likely want to use the `clone` action instead.\n */\n isLoading: boolean;\n autoClone: (args: {\n model: string;\n sourceId: string;\n }) => Promise<OperationResponse<AutoClone.Response>>;\n clone: (\n args: {\n model: string;\n documentId: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Clone.Response>>;\n create: (\n args: {\n model: string;\n params?: object;\n },\n document: Omit<Document, 'id'>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willCreateEntry' | 'didCreateEntry' | 'didNotCreateEntry' }\n >['properties']\n ) => Promise<OperationResponse<Create.Response>>;\n delete: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willDeleteEntry' | 'didDeleteEntry' | 'didNotDeleteEntry' }\n >['properties']\n ) => Promise<OperationResponse<Delete.Response>>;\n deleteMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkDelete.Response>>;\n discard: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<OperationResponse<Discard.Response>>;\n getDocument: (args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n }) => Promise<FindOne.Response | undefined>;\n publish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>\n ) => Promise<OperationResponse<Publish.Response>>;\n publishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkPublish.Response>>;\n update: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n document: Partial<Document>,\n trackerProperty?: Extract<\n TrackingEvent,\n { name: 'willEditEntry' | 'didEditEntry' | 'didNotEditEntry' }\n >['properties']\n ) => Promise<OperationResponse<Update.Response>>;\n unpublish: (\n args: {\n collectionType: string;\n model: string;\n documentId?: string;\n params?: object;\n },\n discardDraft?: boolean\n ) => Promise<OperationResponse<Unpublish.Response>>;\n unpublishMany: (args: {\n model: string;\n documentIds: string[];\n params?: object;\n }) => Promise<BulkOperationResponse<BulkUnpublish.Response>>;\n};\n\ntype IUseDocumentActs = ReturnType<UseDocumentActions>;\n\n/**\n * @alpha\n * @public\n * @description Contains all the operations that can be performed on a single document.\n * Designed to be able to be used anywhere within a Strapi app. The hooks will handle\n * notifications should the operation fail, however the response is always returned incase\n * the user needs to handle side-effects.\n * @example\n * ```tsx\n * import { Form } from '@strapi/admin/admin';\n *\n * const { id, model, collectionType } = useParams<{ id: string; model: string; collectionType: string }>();\n * const { update } = useDocumentActions();\n *\n * const handleSubmit = async (data) => {\n * await update({ collectionType, model, documentId: id }, data);\n * }\n *\n * return <Form method=\"PUT\" onSubmit={handleSubmit} />\n * ```\n *\n * @see {@link https://contributor.strapi.io/docs/core/content-manager/hooks/use-document-operations} for more information\n */\nconst useDocumentActions: UseDocumentActions = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const navigate = useNavigate();\n const setCurrentStep = useGuidedTour('useDocumentActions', (state) => state.setCurrentStep);\n\n // Get metadata from context providers for tracking purposes\n const previewContext = usePreviewContext('useDocumentActions', () => true, false);\n const relationContext = useRelationModal('useDocumentActions', () => true, false);\n const fromPreview = previewContext != undefined;\n const fromRelationModal = relationContext != undefined;\n\n const [deleteDocument, { isLoading: isDeleting }] = useDeleteDocumentMutation();\n const _delete: IUseDocumentActs['delete'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, trackerProperty) => {\n try {\n trackUsage('willDeleteEntry', trackerProperty);\n\n const res = await deleteDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.delete'),\n defaultMessage: 'Deleted document',\n }),\n });\n\n trackUsage('didDeleteEntry', trackerProperty);\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotDeleteEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [deleteManyDocuments, { isLoading: isDeletingMany }] = useDeleteManyDocumentsMutation();\n\n const deleteMany: IUseDocumentActs['deleteMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkDeleteEntries');\n\n const res = await deleteManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.delete'),\n defaultMessage: 'Successfully deleted.',\n }),\n message: '',\n });\n\n trackUsage('didBulkDeleteEntries');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkDeleteEntries');\n\n throw err;\n }\n },\n [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [discardDocument, { isLoading: isDiscardingDocument }] = useDiscardDocumentMutation();\n const discard: IUseDocumentActs['discard'] = React.useCallback(\n async ({ collectionType, model, documentId, params }) => {\n try {\n const res = await discardDocument({\n collectionType,\n model,\n documentId,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.success.record.discard',\n defaultMessage: 'Changes discarded',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [discardDocument, formatAPIError, formatMessage, toggleNotification]\n );\n\n const [publishDocument, { isLoading: isPublishing }] = usePublishDocumentMutation();\n const publish: IUseDocumentActs['publish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data) => {\n try {\n trackUsage('willPublishEntry', { documentId });\n\n const res = await publishDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n trackUsage('didPublishEntry', { documentId, fromPreview, fromRelationModal });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n publishDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [publishManyDocuments, { isLoading: isPublishingMany }] = usePublishManyDocumentsMutation();\n const publishMany: IUseDocumentActs['publishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n // TODO Confirm tracking events for bulk publish?\n\n const res = await publishManyDocuments({\n model,\n documentIds,\n params,\n });\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.publish'),\n defaultMessage: 'Published document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n throw err;\n }\n },\n [\n // trackUsage,\n publishManyDocuments,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [updateDocument, { isLoading: isUpdating }] = useUpdateDocumentMutation();\n const update: IUseDocumentActs['update'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, data, trackerProperty) => {\n try {\n trackUsage('willEditEntry', trackerProperty);\n\n const res = await updateDocument({\n collectionType,\n model,\n documentId,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotEditEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didEditEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n return res.data;\n } catch (err) {\n trackUsage('didNotEditEntry', { error: err, ...trackerProperty });\n\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [\n trackUsage,\n updateDocument,\n fromPreview,\n fromRelationModal,\n toggleNotification,\n formatMessage,\n formatAPIError,\n ]\n );\n\n const [unpublishDocument] = useUnpublishDocumentMutation();\n const unpublish: IUseDocumentActs['unpublish'] = React.useCallback(\n async ({ collectionType, model, documentId, params }, discardDraft = false) => {\n try {\n trackUsage('willUnpublishEntry');\n\n const res = await unpublishDocument({\n collectionType,\n model,\n documentId,\n params,\n data: {\n discardDraft,\n },\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didUnpublishEntry');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.unpublish'),\n defaultMessage: 'Unpublished document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [unpublishManyDocuments, { isLoading: isUnpublishingMany }] =\n useUnpublishManyDocumentsMutation();\n const unpublishMany: IUseDocumentActs['unpublishMany'] = React.useCallback(\n async ({ model, documentIds, params }) => {\n try {\n trackUsage('willBulkUnpublishEntries');\n\n const res = await unpublishManyDocuments({\n model,\n documentIds,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return { error: res.error };\n }\n\n trackUsage('didBulkUnpublishEntries');\n\n toggleNotification({\n type: 'success',\n title: formatMessage({\n id: getTranslation('success.records.unpublish'),\n defaultMessage: 'Successfully unpublished.',\n }),\n message: '',\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotBulkUnpublishEntries');\n\n throw err;\n }\n },\n [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]\n );\n\n const [createDocument] = useCreateDocumentMutation();\n const create: IUseDocumentActs['create'] = React.useCallback(\n async ({ model, params }, data, trackerProperty) => {\n try {\n const res = await createDocument({\n model,\n data,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n trackUsage('didCreateEntry', {\n ...trackerProperty,\n documentId: res.data.data.documentId,\n fromPreview,\n fromRelationModal,\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.save'),\n defaultMessage: 'Saved document',\n }),\n });\n\n setCurrentStep('contentManager.success');\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [\n createDocument,\n formatAPIError,\n formatMessage,\n fromPreview,\n fromRelationModal,\n setCurrentStep,\n toggleNotification,\n trackUsage,\n ]\n );\n\n const [autoCloneDocument] = useAutoCloneDocumentMutation();\n const autoClone: IUseDocumentActs['autoClone'] = React.useCallback(\n async ({ model, sourceId }) => {\n try {\n const res = await autoCloneDocument({\n model,\n sourceId,\n });\n\n if ('error' in res) {\n return { error: res.error };\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n throw err;\n }\n },\n [autoCloneDocument, formatMessage, toggleNotification]\n );\n\n const [cloneDocument] = useCloneDocumentMutation();\n const clone: IUseDocumentActs['clone'] = React.useCallback(\n async ({ model, documentId, params }, body, trackerProperty) => {\n try {\n const { id: _id, ...restBody } = body;\n\n /**\n * If we're cloning we want to post directly to this endpoint\n * so that the relations even if they're not listed in the EditView\n * are correctly attached to the entry.\n */\n const res = await cloneDocument({\n model,\n sourceId: documentId,\n data: restBody,\n params,\n });\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n trackUsage('didNotCreateEntry', { error: res.error, ...trackerProperty });\n\n return { error: res.error };\n }\n\n trackUsage('didCreateEntry', trackerProperty);\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('success.record.clone'),\n defaultMessage: 'Cloned document',\n }),\n });\n\n // Redirect to normal edit view\n navigate(`../../${res.data.data.documentId}`, { relative: 'path' });\n\n return res.data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG),\n });\n\n trackUsage('didNotCreateEntry', { error: err, ...trackerProperty });\n\n throw err;\n }\n },\n [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]\n );\n\n const [getDoc] = useLazyGetDocumentQuery();\n const getDocument: IUseDocumentActs['getDocument'] = React.useCallback(\n async (args) => {\n const { data } = await getDoc(args);\n\n return data;\n },\n [getDoc]\n );\n\n return {\n isLoading:\n isPublishing ||\n isUpdating ||\n isDiscardingDocument ||\n isDeleting ||\n isDeletingMany ||\n isUnpublishingMany ||\n isPublishingMany,\n autoClone,\n clone,\n create,\n delete: _delete,\n deleteMany,\n discard,\n getDocument,\n publish,\n publishMany,\n unpublish,\n unpublishMany,\n update,\n } satisfies IUseDocumentActs;\n};\n\nexport { useDocumentActions };\nexport type { UseDocumentActions, OperationResponse };\n"],"names":["DEFAULT_UNEXPECTED_ERROR_MSG","id","defaultMessage","useDocumentActions","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","navigate","useNavigate","setCurrentStep","useGuidedTour","state","previewContext","usePreviewContext","relationContext","useRelationModal","fromPreview","undefined","fromRelationModal","deleteDocument","isLoading","isDeleting","useDeleteDocumentMutation","_delete","React","useCallback","collectionType","model","documentId","params","trackerProperty","res","type","message","error","getTranslation","data","err","deleteManyDocuments","isDeletingMany","useDeleteManyDocumentsMutation","deleteMany","documentIds","title","discardDocument","isDiscardingDocument","useDiscardDocumentMutation","discard","publishDocument","isPublishing","usePublishDocumentMutation","publish","publishManyDocuments","isPublishingMany","usePublishManyDocumentsMutation","publishMany","updateDocument","isUpdating","useUpdateDocumentMutation","update","unpublishDocument","useUnpublishDocumentMutation","unpublish","discardDraft","unpublishManyDocuments","isUnpublishingMany","useUnpublishManyDocumentsMutation","unpublishMany","createDocument","useCreateDocumentMutation","create","autoCloneDocument","useAutoCloneDocumentMutation","autoClone","sourceId","cloneDocument","useCloneDocumentMutation","clone","body","_id","restBody","relative","getDoc","useLazyGetDocumentQuery","getDocument","args","delete"],"mappings":"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"}
|