@strapi/content-manager 0.0.0-experimental.c3e9d4b26f9fd3d9eb530b5c11f9baa1d09b13ad → 0.0.0-experimental.c5235059f5636c4549ea2118c75c43b92e2615c8
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/LICENSE +18 -3
- package/dist/_chunks/{ComponentConfigurationPage-y_7iLdmB.js → ComponentConfigurationPage-k6fnZytn.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-y_7iLdmB.js.map → ComponentConfigurationPage-k6fnZytn.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-BMajAl1u.mjs → ComponentConfigurationPage-o2HOTHL4.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-BMajAl1u.mjs.map → ComponentConfigurationPage-o2HOTHL4.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CPVB8Uqc.js → EditConfigurationPage-DKtok23W.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-CPVB8Uqc.js.map → EditConfigurationPage-DKtok23W.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CcOoD26O.mjs → EditConfigurationPage-HNi0pVX4.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-CcOoD26O.mjs.map → EditConfigurationPage-HNi0pVX4.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-CTTDHKkQ.js → EditViewPage-CrX5Iz3h.js} +45 -45
- package/dist/_chunks/EditViewPage-CrX5Iz3h.js.map +1 -0
- package/dist/_chunks/{EditViewPage-DWb0DE7R.mjs → EditViewPage-DGnFsrTV.mjs} +46 -46
- package/dist/_chunks/EditViewPage-DGnFsrTV.mjs.map +1 -0
- package/dist/_chunks/{Field-DnStdvQw.mjs → Field-DlWgNyun.mjs} +422 -142
- package/dist/_chunks/Field-DlWgNyun.mjs.map +1 -0
- package/dist/_chunks/{Field-C5Z1Ivdv.js → Field-DvDdA59J.js} +421 -141
- package/dist/_chunks/Field-DvDdA59J.js.map +1 -0
- package/dist/_chunks/{Form-DqGgE55Q.mjs → Form-B7VJjkXr.mjs} +27 -28
- package/dist/_chunks/Form-B7VJjkXr.mjs.map +1 -0
- package/dist/_chunks/{Form-B81OtW-k.js → Form-D9w2wzOa.js} +25 -26
- package/dist/_chunks/Form-D9w2wzOa.js.map +1 -0
- package/dist/_chunks/{History-DS6-HCYX.mjs → History-84QY4Lau.mjs} +52 -29
- package/dist/_chunks/History-84QY4Lau.mjs.map +1 -0
- package/dist/_chunks/{History-4NbOq2dX.js → History-GCscEVds.js} +51 -28
- package/dist/_chunks/History-GCscEVds.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DQJJltko.mjs → ListConfigurationPage-C_S6OFYL.mjs} +49 -49
- package/dist/_chunks/ListConfigurationPage-C_S6OFYL.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-CpfstlYY.js → ListConfigurationPage-Ck-lKA_g.js} +48 -47
- package/dist/_chunks/ListConfigurationPage-Ck-lKA_g.js.map +1 -0
- package/dist/_chunks/{ListViewPage-CA3I75m5.js → ListViewPage-D1vAbQW4.js} +65 -68
- package/dist/_chunks/ListViewPage-D1vAbQW4.js.map +1 -0
- package/dist/_chunks/{ListViewPage-nQrOQuVo.mjs → ListViewPage-DkQT6AN6.mjs} +67 -70
- package/dist/_chunks/ListViewPage-DkQT6AN6.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-DbnHE22g.mjs → NoContentTypePage-D5QYn9pN.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-DbnHE22g.mjs.map → NoContentTypePage-D5QYn9pN.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-Dldu-_Mx.js → NoContentTypePage-DnMToxdO.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-Dldu-_Mx.js.map → NoContentTypePage-DnMToxdO.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CO2MK200.js → NoPermissionsPage-COirbirm.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CO2MK200.js.map → NoPermissionsPage-COirbirm.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-fOIkQM0v.mjs → NoPermissionsPage-eV9XOUs6.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-fOIkQM0v.mjs.map → NoPermissionsPage-eV9XOUs6.mjs.map} +1 -1
- package/dist/_chunks/{Relations-BDRl99Ux.mjs → Relations-CMu33f0Q.mjs} +3 -3
- package/dist/_chunks/Relations-CMu33f0Q.mjs.map +1 -0
- package/dist/_chunks/{Relations-DG2jnOcr.js → Relations-CvSHeSTB.js} +3 -3
- package/dist/_chunks/Relations-CvSHeSTB.js.map +1 -0
- package/dist/_chunks/{en-Ux26r5pl.mjs → en-BrCTWlZv.mjs} +5 -4
- package/dist/_chunks/{en-Ux26r5pl.mjs.map → en-BrCTWlZv.mjs.map} +1 -1
- package/dist/_chunks/{en-fbKQxLGn.js → en-uOUIxfcQ.js} +5 -4
- package/dist/_chunks/{en-fbKQxLGn.js.map → en-uOUIxfcQ.js.map} +1 -1
- package/dist/_chunks/{index-BZoNZMXL.js → index-BU73akFF.js} +371 -388
- package/dist/_chunks/index-BU73akFF.js.map +1 -0
- package/dist/_chunks/{index-Drt2DN7v.mjs → index-DYjyBm-q.mjs} +386 -403
- package/dist/_chunks/index-DYjyBm-q.mjs.map +1 -0
- package/dist/_chunks/{layout-BzAbmoO6.mjs → layout-CK49ltFD.mjs} +22 -10
- package/dist/_chunks/layout-CK49ltFD.mjs.map +1 -0
- package/dist/_chunks/{layout-DEYBqgF1.js → layout-IJUR2XBA.js} +20 -8
- package/dist/_chunks/layout-IJUR2XBA.js.map +1 -0
- package/dist/_chunks/{relations-D26zVRdi.mjs → relations-Dl8Jk9_i.mjs} +2 -2
- package/dist/_chunks/{relations-D26zVRdi.mjs.map → relations-Dl8Jk9_i.mjs.map} +1 -1
- package/dist/_chunks/{relations-D0eZ4VWw.js → relations-T1zuutNL.js} +2 -2
- package/dist/_chunks/{relations-D0eZ4VWw.js.map → relations-T1zuutNL.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +4 -4
- package/dist/admin/src/history/index.d.ts +3 -0
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +8 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +4 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +20 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +2 -10
- package/dist/admin/src/pages/ListView/components/BulkActions/Actions.d.ts +3 -30
- package/dist/admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.d.ts +2 -2
- package/dist/server/index.js +137 -87
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +138 -88
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/uid.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/dimensions.d.ts +4 -2
- package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts +1 -1
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/_chunks/EditViewPage-CTTDHKkQ.js.map +0 -1
- package/dist/_chunks/EditViewPage-DWb0DE7R.mjs.map +0 -1
- package/dist/_chunks/Field-C5Z1Ivdv.js.map +0 -1
- package/dist/_chunks/Field-DnStdvQw.mjs.map +0 -1
- package/dist/_chunks/Form-B81OtW-k.js.map +0 -1
- package/dist/_chunks/Form-DqGgE55Q.mjs.map +0 -1
- package/dist/_chunks/History-4NbOq2dX.js.map +0 -1
- package/dist/_chunks/History-DS6-HCYX.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-CpfstlYY.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DQJJltko.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-CA3I75m5.js.map +0 -1
- package/dist/_chunks/ListViewPage-nQrOQuVo.mjs.map +0 -1
- package/dist/_chunks/Relations-BDRl99Ux.mjs.map +0 -1
- package/dist/_chunks/Relations-DG2jnOcr.js.map +0 -1
- package/dist/_chunks/index-BZoNZMXL.js.map +0 -1
- package/dist/_chunks/index-Drt2DN7v.mjs.map +0 -1
- package/dist/_chunks/layout-BzAbmoO6.mjs.map +0 -1
- package/dist/_chunks/layout-DEYBqgF1.js.map +0 -1
@@ -2,15 +2,15 @@
|
|
2
2
|
const Icons = require("@strapi/icons");
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
4
4
|
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
5
|
-
const qs = require("qs");
|
6
|
-
const reactIntl = require("react-intl");
|
7
|
-
const reactRouterDom = require("react-router-dom");
|
8
5
|
const React = require("react");
|
9
6
|
const designSystem = require("@strapi/design-system");
|
7
|
+
const reactIntl = require("react-intl");
|
8
|
+
const reactRouterDom = require("react-router-dom");
|
10
9
|
const styledComponents = require("styled-components");
|
11
10
|
const yup = require("yup");
|
12
11
|
const pipe = require("lodash/fp/pipe");
|
13
12
|
const dateFns = require("date-fns");
|
13
|
+
const qs = require("qs");
|
14
14
|
const toolkit = require("@reduxjs/toolkit");
|
15
15
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
16
16
|
function _interopNamespace(e) {
|
@@ -70,42 +70,6 @@ const useInjectionZone = (area) => {
|
|
70
70
|
const [page, position] = area.split(".");
|
71
71
|
return contentManagerPlugin.getInjectedComponents(page, position);
|
72
72
|
};
|
73
|
-
const HistoryAction = ({ model, document }) => {
|
74
|
-
const { formatMessage } = reactIntl.useIntl();
|
75
|
-
const [{ query }] = strapiAdmin.useQueryParams();
|
76
|
-
const navigate = reactRouterDom.useNavigate();
|
77
|
-
const pluginsQueryParams = qs.stringify({ plugins: query.plugins }, { encode: false });
|
78
|
-
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
79
|
-
return null;
|
80
|
-
}
|
81
|
-
return {
|
82
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ClockCounterClockwise, {}),
|
83
|
-
label: formatMessage({
|
84
|
-
id: "content-manager.history.document-action",
|
85
|
-
defaultMessage: "Content History"
|
86
|
-
}),
|
87
|
-
onClick: () => navigate({ pathname: "history", search: pluginsQueryParams }),
|
88
|
-
disabled: (
|
89
|
-
/**
|
90
|
-
* The user is creating a new document.
|
91
|
-
* It hasn't been saved yet, so there's no history to go to
|
92
|
-
*/
|
93
|
-
!document || /**
|
94
|
-
* The document has been created but the current dimension has never been saved.
|
95
|
-
* For example, the user is creating a new locale in an existing document,
|
96
|
-
* so there's no history for the document in that locale
|
97
|
-
*/
|
98
|
-
!document.id || /**
|
99
|
-
* History is only available for content types created by the user.
|
100
|
-
* These have the `api::` prefix, as opposed to the ones created by Strapi or plugins,
|
101
|
-
* which start with `admin::` or `plugin::`
|
102
|
-
*/
|
103
|
-
!model.startsWith("api::")
|
104
|
-
),
|
105
|
-
position: "header"
|
106
|
-
};
|
107
|
-
};
|
108
|
-
HistoryAction.type = "history";
|
109
73
|
const ID = "id";
|
110
74
|
const CREATED_BY_ATTRIBUTE_NAME = "createdBy";
|
111
75
|
const UPDATED_BY_ATTRIBUTE_NAME = "updatedBy";
|
@@ -219,6 +183,7 @@ const contentManagerApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
219
183
|
]
|
220
184
|
});
|
221
185
|
const documentApi = contentManagerApi.injectEndpoints({
|
186
|
+
overrideExisting: true,
|
222
187
|
endpoints: (builder) => ({
|
223
188
|
autoCloneDocument: builder.mutation({
|
224
189
|
query: ({ model, sourceId, query }) => ({
|
@@ -228,7 +193,12 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
228
193
|
params: query
|
229
194
|
}
|
230
195
|
}),
|
231
|
-
invalidatesTags: (_result,
|
196
|
+
invalidatesTags: (_result, error, { model }) => {
|
197
|
+
if (error) {
|
198
|
+
return [];
|
199
|
+
}
|
200
|
+
return [{ type: "Document", id: `${model}_LIST` }];
|
201
|
+
}
|
232
202
|
}),
|
233
203
|
cloneDocument: builder.mutation({
|
234
204
|
query: ({ model, sourceId, data, params }) => ({
|
@@ -315,6 +285,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
315
285
|
}),
|
316
286
|
providesTags: (result, _error, arg) => {
|
317
287
|
return [
|
288
|
+
{ type: "Document", id: `ALL_LIST` },
|
318
289
|
{ type: "Document", id: `${arg.model}_LIST` },
|
319
290
|
...result?.results.map(({ documentId }) => ({
|
320
291
|
type: "Document",
|
@@ -418,6 +389,18 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
418
389
|
},
|
419
390
|
"Relations"
|
420
391
|
];
|
392
|
+
},
|
393
|
+
async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {
|
394
|
+
const patchResult = dispatch(
|
395
|
+
documentApi.util.updateQueryData("getDocument", patch, (draft) => {
|
396
|
+
Object.assign(draft.data, data);
|
397
|
+
})
|
398
|
+
);
|
399
|
+
try {
|
400
|
+
await queryFulfilled;
|
401
|
+
} catch {
|
402
|
+
patchResult.undo();
|
403
|
+
}
|
421
404
|
}
|
422
405
|
}),
|
423
406
|
unpublishDocument: builder.mutation({
|
@@ -620,11 +603,11 @@ const createAttributeSchema = (attribute) => {
|
|
620
603
|
}
|
621
604
|
};
|
622
605
|
const addRequiredValidation = (attribute) => (schema) => {
|
623
|
-
if (attribute.required) {
|
624
|
-
return schema.required
|
625
|
-
|
626
|
-
|
627
|
-
|
606
|
+
if ((attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone") && attribute.required && "min" in schema) {
|
607
|
+
return schema.min(1, strapiAdmin.translatedErrors.required);
|
608
|
+
}
|
609
|
+
if (attribute.required && attribute.type !== "relation") {
|
610
|
+
return schema.required(strapiAdmin.translatedErrors.required);
|
628
611
|
}
|
629
612
|
return schema?.nullable ? schema.nullable() : (
|
630
613
|
// In some cases '.nullable' will not be available on the schema.
|
@@ -658,6 +641,28 @@ const addMaxLengthValidation = (attribute) => (schema) => {
|
|
658
641
|
const addMinValidation = (attribute) => (schema) => {
|
659
642
|
if ("min" in attribute) {
|
660
643
|
const min = toInteger(attribute.min);
|
644
|
+
if (attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone") {
|
645
|
+
if (!attribute.required && "test" in schema && min) {
|
646
|
+
return schema.test(
|
647
|
+
"custom-min",
|
648
|
+
{
|
649
|
+
...strapiAdmin.translatedErrors.min,
|
650
|
+
values: {
|
651
|
+
min: attribute.min
|
652
|
+
}
|
653
|
+
},
|
654
|
+
(value) => {
|
655
|
+
if (!value) {
|
656
|
+
return true;
|
657
|
+
}
|
658
|
+
if (Array.isArray(value) && value.length === 0) {
|
659
|
+
return true;
|
660
|
+
}
|
661
|
+
return value.length >= min;
|
662
|
+
}
|
663
|
+
);
|
664
|
+
}
|
665
|
+
}
|
661
666
|
if ("min" in schema && min) {
|
662
667
|
return schema.min(min, {
|
663
668
|
...strapiAdmin.translatedErrors.min,
|
@@ -784,7 +789,10 @@ const useDocument = (args, opts) => {
|
|
784
789
|
isLoading: isLoadingDocument,
|
785
790
|
isFetching: isFetchingDocument,
|
786
791
|
error
|
787
|
-
} = useGetDocumentQuery(args,
|
792
|
+
} = useGetDocumentQuery(args, {
|
793
|
+
...opts,
|
794
|
+
skip: !args.documentId && args.collectionType !== SINGLE_TYPES || opts?.skip
|
795
|
+
});
|
788
796
|
const { components, schema, isLoading: isLoadingSchema } = useContentTypeSchema(args.model);
|
789
797
|
React__namespace.useEffect(() => {
|
790
798
|
if (error) {
|
@@ -1205,7 +1213,6 @@ const useDocumentActions = () => {
|
|
1205
1213
|
sourceId
|
1206
1214
|
});
|
1207
1215
|
if ("error" in res) {
|
1208
|
-
toggleNotification({ type: "danger", message: formatAPIError(res.error) });
|
1209
1216
|
return { error: res.error };
|
1210
1217
|
}
|
1211
1218
|
toggleNotification({
|
@@ -1286,7 +1293,7 @@ const useDocumentActions = () => {
|
|
1286
1293
|
};
|
1287
1294
|
};
|
1288
1295
|
const ProtectedHistoryPage = React.lazy(
|
1289
|
-
() => Promise.resolve().then(() => require("./History-
|
1296
|
+
() => Promise.resolve().then(() => require("./History-GCscEVds.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
|
1290
1297
|
);
|
1291
1298
|
const routes$1 = [
|
1292
1299
|
{
|
@@ -1299,31 +1306,31 @@ const routes$1 = [
|
|
1299
1306
|
}
|
1300
1307
|
];
|
1301
1308
|
const ProtectedEditViewPage = React.lazy(
|
1302
|
-
() => Promise.resolve().then(() => require("./EditViewPage-
|
1309
|
+
() => Promise.resolve().then(() => require("./EditViewPage-CrX5Iz3h.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
|
1303
1310
|
);
|
1304
1311
|
const ProtectedListViewPage = React.lazy(
|
1305
|
-
() => Promise.resolve().then(() => require("./ListViewPage-
|
1312
|
+
() => Promise.resolve().then(() => require("./ListViewPage-D1vAbQW4.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
|
1306
1313
|
);
|
1307
1314
|
const ProtectedListConfiguration = React.lazy(
|
1308
|
-
() => Promise.resolve().then(() => require("./ListConfigurationPage-
|
1315
|
+
() => Promise.resolve().then(() => require("./ListConfigurationPage-Ck-lKA_g.js")).then((mod) => ({
|
1309
1316
|
default: mod.ProtectedListConfiguration
|
1310
1317
|
}))
|
1311
1318
|
);
|
1312
1319
|
const ProtectedEditConfigurationPage = React.lazy(
|
1313
|
-
() => Promise.resolve().then(() => require("./EditConfigurationPage-
|
1320
|
+
() => Promise.resolve().then(() => require("./EditConfigurationPage-DKtok23W.js")).then((mod) => ({
|
1314
1321
|
default: mod.ProtectedEditConfigurationPage
|
1315
1322
|
}))
|
1316
1323
|
);
|
1317
1324
|
const ProtectedComponentConfigurationPage = React.lazy(
|
1318
|
-
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-
|
1325
|
+
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-k6fnZytn.js")).then((mod) => ({
|
1319
1326
|
default: mod.ProtectedComponentConfigurationPage
|
1320
1327
|
}))
|
1321
1328
|
);
|
1322
1329
|
const NoPermissions = React.lazy(
|
1323
|
-
() => Promise.resolve().then(() => require("./NoPermissionsPage-
|
1330
|
+
() => Promise.resolve().then(() => require("./NoPermissionsPage-COirbirm.js")).then((mod) => ({ default: mod.NoPermissions }))
|
1324
1331
|
);
|
1325
1332
|
const NoContentType = React.lazy(
|
1326
|
-
() => Promise.resolve().then(() => require("./NoContentTypePage-
|
1333
|
+
() => Promise.resolve().then(() => require("./NoContentTypePage-DnMToxdO.js")).then((mod) => ({ default: mod.NoContentType }))
|
1327
1334
|
);
|
1328
1335
|
const CollectionTypePages = () => {
|
1329
1336
|
const { collectionType } = reactRouterDom.useParams();
|
@@ -1437,7 +1444,7 @@ const DocumentActionButton = (action) => {
|
|
1437
1444
|
/* @__PURE__ */ jsxRuntime.jsx(
|
1438
1445
|
designSystem.Button,
|
1439
1446
|
{
|
1440
|
-
flex:
|
1447
|
+
flex: "auto",
|
1441
1448
|
startIcon: action.icon,
|
1442
1449
|
disabled: action.disabled,
|
1443
1450
|
onClick: handleClick(action),
|
@@ -1450,7 +1457,7 @@ const DocumentActionButton = (action) => {
|
|
1450
1457
|
DocumentActionConfirmDialog,
|
1451
1458
|
{
|
1452
1459
|
...action.dialog,
|
1453
|
-
variant: action.variant,
|
1460
|
+
variant: action.dialog?.variant ?? action.variant,
|
1454
1461
|
isOpen: dialogId === action.id,
|
1455
1462
|
onClose: handleClose
|
1456
1463
|
}
|
@@ -1507,9 +1514,9 @@ const DocumentActionsMenu = ({
|
|
1507
1514
|
disabled: isDisabled,
|
1508
1515
|
size: "S",
|
1509
1516
|
endIcon: null,
|
1510
|
-
paddingTop: "
|
1511
|
-
paddingLeft: "
|
1512
|
-
paddingRight: "
|
1517
|
+
paddingTop: "4px",
|
1518
|
+
paddingLeft: "7px",
|
1519
|
+
paddingRight: "7px",
|
1513
1520
|
variant,
|
1514
1521
|
children: [
|
1515
1522
|
/* @__PURE__ */ jsxRuntime.jsx(Icons.More, { "aria-hidden": true, focusable: false }),
|
@@ -1529,10 +1536,18 @@ const DocumentActionsMenu = ({
|
|
1529
1536
|
onSelect: handleClick(action),
|
1530
1537
|
display: "block",
|
1531
1538
|
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: [
|
1532
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
1533
|
-
|
1534
|
-
|
1535
|
-
|
1539
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
1540
|
+
designSystem.Flex,
|
1541
|
+
{
|
1542
|
+
color: !action.disabled ? convertActionVariantToColor(action.variant) : "inherit",
|
1543
|
+
gap: 2,
|
1544
|
+
tag: "span",
|
1545
|
+
children: [
|
1546
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: action.icon }),
|
1547
|
+
action.label
|
1548
|
+
]
|
1549
|
+
}
|
1550
|
+
),
|
1536
1551
|
action.id.startsWith("HistoryAction") && /* @__PURE__ */ jsxRuntime.jsx(
|
1537
1552
|
designSystem.Flex,
|
1538
1553
|
{
|
@@ -1613,22 +1628,20 @@ const DocumentActionConfirmDialog = ({
|
|
1613
1628
|
}
|
1614
1629
|
onClose();
|
1615
1630
|
};
|
1616
|
-
return /* @__PURE__ */ jsxRuntime.
|
1617
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
1618
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
1619
|
-
|
1620
|
-
{
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
)
|
1631
|
-
] });
|
1631
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Root, { open: isOpen, onOpenChange: handleClose, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Content, { children: [
|
1632
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Header, { children: title }),
|
1633
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Body, { children: content }),
|
1634
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Footer, { children: [
|
1635
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Cancel, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", children: formatMessage({
|
1636
|
+
id: "app.components.Button.cancel",
|
1637
|
+
defaultMessage: "Cancel"
|
1638
|
+
}) }) }),
|
1639
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: handleConfirm, variant, children: formatMessage({
|
1640
|
+
id: "app.components.Button.confirm",
|
1641
|
+
defaultMessage: "Confirm"
|
1642
|
+
}) })
|
1643
|
+
] })
|
1644
|
+
] }) });
|
1632
1645
|
};
|
1633
1646
|
const DocumentActionModal = ({
|
1634
1647
|
isOpen,
|
@@ -1638,34 +1651,17 @@ const DocumentActionModal = ({
|
|
1638
1651
|
content: Content,
|
1639
1652
|
onModalClose
|
1640
1653
|
}) => {
|
1641
|
-
const id = React__namespace.useId();
|
1642
|
-
if (!isOpen) {
|
1643
|
-
return null;
|
1644
|
-
}
|
1645
1654
|
const handleClose = () => {
|
1646
1655
|
if (onClose) {
|
1647
1656
|
onClose();
|
1648
1657
|
}
|
1649
1658
|
onModalClose();
|
1650
1659
|
};
|
1651
|
-
return /* @__PURE__ */ jsxRuntime.
|
1652
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
1653
|
-
|
1654
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
1655
|
-
|
1656
|
-
{
|
1657
|
-
paddingTop: 4,
|
1658
|
-
paddingBottom: 4,
|
1659
|
-
paddingLeft: 5,
|
1660
|
-
paddingRight: 5,
|
1661
|
-
borderWidth: "1px 0 0 0",
|
1662
|
-
borderStyle: "solid",
|
1663
|
-
borderColor: "neutral150",
|
1664
|
-
background: "neutral100",
|
1665
|
-
children: typeof Footer === "function" ? /* @__PURE__ */ jsxRuntime.jsx(Footer, { onClose: handleClose }) : Footer
|
1666
|
-
}
|
1667
|
-
)
|
1668
|
-
] });
|
1660
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Root, { open: isOpen, onOpenChange: handleClose, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Content, { children: [
|
1661
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Title, { children: title }) }),
|
1662
|
+
typeof Content === "function" ? /* @__PURE__ */ jsxRuntime.jsx(Content, { onClose: handleClose }) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: Content }),
|
1663
|
+
typeof Footer === "function" ? /* @__PURE__ */ jsxRuntime.jsx(Footer, { onClose: handleClose }) : Footer
|
1664
|
+
] }) });
|
1669
1665
|
};
|
1670
1666
|
const PublishAction$1 = ({
|
1671
1667
|
activeTab,
|
@@ -1686,6 +1682,12 @@ const PublishAction$1 = ({
|
|
1686
1682
|
({ canPublish: canPublish2, canCreate: canCreate2, canUpdate: canUpdate2 }) => ({ canPublish: canPublish2, canCreate: canCreate2, canUpdate: canUpdate2 })
|
1687
1683
|
);
|
1688
1684
|
const { publish } = useDocumentActions();
|
1685
|
+
const [
|
1686
|
+
countDraftRelations,
|
1687
|
+
{ isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }
|
1688
|
+
] = useLazyGetDraftRelationCountQuery();
|
1689
|
+
const [localCountOfDraftRelations, setLocalCountOfDraftRelations] = React__namespace.useState(0);
|
1690
|
+
const [serverCountOfDraftRelations, setServerCountOfDraftRelations] = React__namespace.useState(0);
|
1689
1691
|
const [{ query, rawQuery }] = strapiAdmin.useQueryParams();
|
1690
1692
|
const params = React__namespace.useMemo(() => buildValidParams(query), [query]);
|
1691
1693
|
const modified = strapiAdmin.useForm("PublishAction", ({ modified: modified2 }) => modified2);
|
@@ -1694,10 +1696,101 @@ const PublishAction$1 = ({
|
|
1694
1696
|
const validate = strapiAdmin.useForm("PublishAction", (state) => state.validate);
|
1695
1697
|
const setErrors = strapiAdmin.useForm("PublishAction", (state) => state.setErrors);
|
1696
1698
|
const formValues = strapiAdmin.useForm("PublishAction", ({ values }) => values);
|
1699
|
+
React__namespace.useEffect(() => {
|
1700
|
+
if (isErrorDraftRelations) {
|
1701
|
+
toggleNotification({
|
1702
|
+
type: "danger",
|
1703
|
+
message: formatMessage({
|
1704
|
+
id: getTranslation("error.records.fetch-draft-relatons"),
|
1705
|
+
defaultMessage: "An error occurred while fetching draft relations on this document."
|
1706
|
+
})
|
1707
|
+
});
|
1708
|
+
}
|
1709
|
+
}, [isErrorDraftRelations, toggleNotification, formatMessage]);
|
1710
|
+
React__namespace.useEffect(() => {
|
1711
|
+
const localDraftRelations = /* @__PURE__ */ new Set();
|
1712
|
+
const extractDraftRelations = (data) => {
|
1713
|
+
const relations = data.connect || [];
|
1714
|
+
relations.forEach((relation) => {
|
1715
|
+
if (relation.status === "draft") {
|
1716
|
+
localDraftRelations.add(relation.id);
|
1717
|
+
}
|
1718
|
+
});
|
1719
|
+
};
|
1720
|
+
const traverseAndExtract = (data) => {
|
1721
|
+
Object.entries(data).forEach(([key, value]) => {
|
1722
|
+
if (key === "connect" && Array.isArray(value)) {
|
1723
|
+
extractDraftRelations({ connect: value });
|
1724
|
+
} else if (typeof value === "object" && value !== null) {
|
1725
|
+
traverseAndExtract(value);
|
1726
|
+
}
|
1727
|
+
});
|
1728
|
+
};
|
1729
|
+
if (!documentId || modified) {
|
1730
|
+
traverseAndExtract(formValues);
|
1731
|
+
setLocalCountOfDraftRelations(localDraftRelations.size);
|
1732
|
+
}
|
1733
|
+
}, [documentId, modified, formValues, setLocalCountOfDraftRelations]);
|
1734
|
+
React__namespace.useEffect(() => {
|
1735
|
+
if (documentId) {
|
1736
|
+
const fetchDraftRelationsCount = async () => {
|
1737
|
+
const { data, error } = await countDraftRelations({
|
1738
|
+
collectionType,
|
1739
|
+
model,
|
1740
|
+
documentId,
|
1741
|
+
params
|
1742
|
+
});
|
1743
|
+
if (error) {
|
1744
|
+
throw error;
|
1745
|
+
}
|
1746
|
+
if (data) {
|
1747
|
+
setServerCountOfDraftRelations(data.data);
|
1748
|
+
}
|
1749
|
+
};
|
1750
|
+
fetchDraftRelationsCount();
|
1751
|
+
}
|
1752
|
+
}, [documentId, countDraftRelations, collectionType, model, params]);
|
1697
1753
|
const isDocumentPublished = (document?.[PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc) => doc[PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== "modified";
|
1698
1754
|
if (!schema?.options?.draftAndPublish) {
|
1699
1755
|
return null;
|
1700
1756
|
}
|
1757
|
+
const performPublish = async () => {
|
1758
|
+
setSubmitting(true);
|
1759
|
+
try {
|
1760
|
+
const { errors } = await validate();
|
1761
|
+
if (errors) {
|
1762
|
+
toggleNotification({
|
1763
|
+
type: "danger",
|
1764
|
+
message: formatMessage({
|
1765
|
+
id: "content-manager.validation.error",
|
1766
|
+
defaultMessage: "There are validation errors in your document. Please fix them before saving."
|
1767
|
+
})
|
1768
|
+
});
|
1769
|
+
return;
|
1770
|
+
}
|
1771
|
+
const res = await publish(
|
1772
|
+
{
|
1773
|
+
collectionType,
|
1774
|
+
model,
|
1775
|
+
documentId,
|
1776
|
+
params
|
1777
|
+
},
|
1778
|
+
formValues
|
1779
|
+
);
|
1780
|
+
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
1781
|
+
navigate({
|
1782
|
+
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
1783
|
+
search: rawQuery
|
1784
|
+
});
|
1785
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
1786
|
+
setErrors(formatValidationErrors(res.error));
|
1787
|
+
}
|
1788
|
+
} finally {
|
1789
|
+
setSubmitting(false);
|
1790
|
+
}
|
1791
|
+
};
|
1792
|
+
const totalDraftRelations = localCountOfDraftRelations + serverCountOfDraftRelations;
|
1793
|
+
const hasDraftRelations = totalDraftRelations > 0;
|
1701
1794
|
return {
|
1702
1795
|
/**
|
1703
1796
|
* Disabled when:
|
@@ -1707,49 +1800,39 @@ const PublishAction$1 = ({
|
|
1707
1800
|
* - the document is already published & not modified
|
1708
1801
|
* - the document is being created & not modified
|
1709
1802
|
* - the user doesn't have the permission to publish
|
1710
|
-
* - the user doesn't have the permission to create a new document
|
1711
|
-
* - the user doesn't have the permission to update the document
|
1712
1803
|
*/
|
1713
|
-
disabled: isCloning || isSubmitting || activeTab === "published" || !modified && isDocumentPublished || !modified && !document?.documentId || !canPublish
|
1804
|
+
disabled: isCloning || isSubmitting || isLoadingDraftRelations || activeTab === "published" || !modified && isDocumentPublished || !modified && !document?.documentId || !canPublish,
|
1714
1805
|
label: formatMessage({
|
1715
1806
|
id: "app.utils.publish",
|
1716
1807
|
defaultMessage: "Publish"
|
1717
1808
|
}),
|
1718
1809
|
onClick: async () => {
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
1736
|
-
|
1737
|
-
|
1738
|
-
|
1739
|
-
formValues
|
1740
|
-
);
|
1741
|
-
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
1742
|
-
navigate({
|
1743
|
-
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
1744
|
-
search: rawQuery
|
1745
|
-
});
|
1746
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
1747
|
-
setErrors(formatValidationErrors(res.error));
|
1810
|
+
if (hasDraftRelations) {
|
1811
|
+
return;
|
1812
|
+
}
|
1813
|
+
await performPublish();
|
1814
|
+
},
|
1815
|
+
dialog: hasDraftRelations ? {
|
1816
|
+
type: "dialog",
|
1817
|
+
variant: "danger",
|
1818
|
+
footer: null,
|
1819
|
+
title: formatMessage({
|
1820
|
+
id: getTranslation(`popUpwarning.warning.bulk-has-draft-relations.title`),
|
1821
|
+
defaultMessage: "Confirmation"
|
1822
|
+
}),
|
1823
|
+
content: formatMessage(
|
1824
|
+
{
|
1825
|
+
id: getTranslation(`popUpwarning.warning.bulk-has-draft-relations.message`),
|
1826
|
+
defaultMessage: "This entry is related to {count, plural, one {# draft entry} other {# draft entries}}. Publishing it could leave broken links in your app."
|
1827
|
+
},
|
1828
|
+
{
|
1829
|
+
count: totalDraftRelations
|
1748
1830
|
}
|
1749
|
-
|
1750
|
-
|
1831
|
+
),
|
1832
|
+
onConfirm: async () => {
|
1833
|
+
await performPublish();
|
1751
1834
|
}
|
1752
|
-
}
|
1835
|
+
} : void 0
|
1753
1836
|
};
|
1754
1837
|
};
|
1755
1838
|
PublishAction$1.type = "publish";
|
@@ -1765,7 +1848,7 @@ const UpdateAction = ({
|
|
1765
1848
|
const cloneMatch = reactRouterDom.useMatch(CLONE_PATH);
|
1766
1849
|
const isCloning = cloneMatch !== null;
|
1767
1850
|
const { formatMessage } = reactIntl.useIntl();
|
1768
|
-
|
1851
|
+
useDocumentRBAC("UpdateAction", ({ canCreate: canCreate2, canUpdate: canUpdate2 }) => ({
|
1769
1852
|
canCreate: canCreate2,
|
1770
1853
|
canUpdate: canUpdate2
|
1771
1854
|
}));
|
@@ -1785,10 +1868,8 @@ const UpdateAction = ({
|
|
1785
1868
|
* - the form is submitting
|
1786
1869
|
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
1787
1870
|
* - the active tab is the published tab
|
1788
|
-
* - the user doesn't have the permission to create a new document
|
1789
|
-
* - the user doesn't have the permission to update the document
|
1790
1871
|
*/
|
1791
|
-
disabled: isSubmitting || !modified && !isCloning || activeTab === "published"
|
1872
|
+
disabled: isSubmitting || !modified && !isCloning || activeTab === "published",
|
1792
1873
|
label: formatMessage({
|
1793
1874
|
id: "content-manager.containers.Edit.save",
|
1794
1875
|
defaultMessage: "Save"
|
@@ -1817,10 +1898,13 @@ const UpdateAction = ({
|
|
1817
1898
|
document
|
1818
1899
|
);
|
1819
1900
|
if ("data" in res) {
|
1820
|
-
navigate(
|
1821
|
-
|
1822
|
-
|
1823
|
-
|
1901
|
+
navigate(
|
1902
|
+
{
|
1903
|
+
pathname: `../${res.data.documentId}`,
|
1904
|
+
search: rawQuery
|
1905
|
+
},
|
1906
|
+
{ relative: "path" }
|
1907
|
+
);
|
1824
1908
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
1825
1909
|
setErrors(formatValidationErrors(res.error));
|
1826
1910
|
}
|
@@ -1848,10 +1932,13 @@ const UpdateAction = ({
|
|
1848
1932
|
document
|
1849
1933
|
);
|
1850
1934
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
1851
|
-
navigate(
|
1852
|
-
|
1853
|
-
|
1854
|
-
|
1935
|
+
navigate(
|
1936
|
+
{
|
1937
|
+
pathname: `../${res.data.documentId}`,
|
1938
|
+
search: rawQuery
|
1939
|
+
},
|
1940
|
+
{ replace: true, relative: "path" }
|
1941
|
+
);
|
1855
1942
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
1856
1943
|
setErrors(formatValidationErrors(res.error));
|
1857
1944
|
}
|
@@ -1883,10 +1970,8 @@ const UnpublishAction$1 = ({
|
|
1883
1970
|
const { toggleNotification } = strapiAdmin.useNotification();
|
1884
1971
|
const [shouldKeepDraft, setShouldKeepDraft] = React__namespace.useState(true);
|
1885
1972
|
const isDocumentModified = document?.status === "modified";
|
1886
|
-
const handleChange = (
|
1887
|
-
|
1888
|
-
setShouldKeepDraft(e.target.value === UNPUBLISH_DRAFT_OPTIONS.KEEP);
|
1889
|
-
}
|
1973
|
+
const handleChange = (value) => {
|
1974
|
+
setShouldKeepDraft(value === UNPUBLISH_DRAFT_OPTIONS.KEEP);
|
1890
1975
|
};
|
1891
1976
|
if (!schema?.options?.draftAndPublish) {
|
1892
1977
|
return null;
|
@@ -1936,40 +2021,24 @@ const UnpublishAction$1 = ({
|
|
1936
2021
|
}) })
|
1937
2022
|
] }),
|
1938
2023
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
1939
|
-
designSystem.
|
2024
|
+
designSystem.Radio.Group,
|
1940
2025
|
{
|
1941
|
-
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
2026
|
+
defaultValue: UNPUBLISH_DRAFT_OPTIONS.KEEP,
|
2027
|
+
name: "discard-options",
|
2028
|
+
"aria-label": formatMessage({
|
2029
|
+
id: "content-manager.actions.unpublish.dialog.radio-label",
|
2030
|
+
defaultMessage: "Choose an option to unpublish the document."
|
2031
|
+
}),
|
2032
|
+
onValueChange: handleChange,
|
1947
2033
|
children: [
|
1948
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
1949
|
-
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
1956
|
-
id: "content-manager.actions.unpublish.dialog.option.keep-draft",
|
1957
|
-
defaultMessage: "Keep draft"
|
1958
|
-
})
|
1959
|
-
}
|
1960
|
-
),
|
1961
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
1962
|
-
designSystem.Radio,
|
1963
|
-
{
|
1964
|
-
checked: !shouldKeepDraft,
|
1965
|
-
value: UNPUBLISH_DRAFT_OPTIONS.DISCARD,
|
1966
|
-
name: "discard-options",
|
1967
|
-
children: formatMessage({
|
1968
|
-
id: "content-manager.actions.unpublish.dialog.option.replace-draft",
|
1969
|
-
defaultMessage: "Replace draft"
|
1970
|
-
})
|
1971
|
-
}
|
1972
|
-
)
|
2034
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Radio.Item, { checked: shouldKeepDraft, value: UNPUBLISH_DRAFT_OPTIONS.KEEP, children: formatMessage({
|
2035
|
+
id: "content-manager.actions.unpublish.dialog.option.keep-draft",
|
2036
|
+
defaultMessage: "Keep draft"
|
2037
|
+
}) }),
|
2038
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Radio.Item, { checked: !shouldKeepDraft, value: UNPUBLISH_DRAFT_OPTIONS.DISCARD, children: formatMessage({
|
2039
|
+
id: "content-manager.actions.unpublish.dialog.option.replace-draft",
|
2040
|
+
defaultMessage: "Replace draft"
|
2041
|
+
}) })
|
1973
2042
|
]
|
1974
2043
|
}
|
1975
2044
|
)
|
@@ -2115,23 +2184,13 @@ const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
|
|
2115
2184
|
id: "content-manager.containers.edit.title.new",
|
2116
2185
|
defaultMessage: "Create an entry"
|
2117
2186
|
}) : documentTitle;
|
2118
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "flex-start", paddingTop:
|
2187
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "flex-start", paddingTop: 6, paddingBottom: 4, gap: 2, children: [
|
2119
2188
|
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.BackButton, {}),
|
2120
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
2121
|
-
designSystem.
|
2122
|
-
{
|
2123
|
-
|
2124
|
-
|
2125
|
-
paddingTop: 1,
|
2126
|
-
gap: "80px",
|
2127
|
-
alignItems: "flex-start",
|
2128
|
-
children: [
|
2129
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: title }),
|
2130
|
-
/* @__PURE__ */ jsxRuntime.jsx(HeaderToolbar, {})
|
2131
|
-
]
|
2132
|
-
}
|
2133
|
-
),
|
2134
|
-
status ? /* @__PURE__ */ jsxRuntime.jsx(DocumentStatus, { status: isCloning ? "draft" : status }) : null
|
2189
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { width: "100%", justifyContent: "space-between", gap: "80px", alignItems: "flex-start", children: [
|
2190
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: title }),
|
2191
|
+
/* @__PURE__ */ jsxRuntime.jsx(HeaderToolbar, {})
|
2192
|
+
] }),
|
2193
|
+
status ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginTop: 1, children: /* @__PURE__ */ jsxRuntime.jsx(DocumentStatus, { status: isCloning ? "draft" : status }) }) : null
|
2135
2194
|
] });
|
2136
2195
|
};
|
2137
2196
|
const HeaderToolbar = () => {
|
@@ -2822,30 +2881,23 @@ const ConfirmBulkActionDialog = ({
|
|
2822
2881
|
endAction
|
2823
2882
|
}) => {
|
2824
2883
|
const { formatMessage } = reactIntl.useIntl();
|
2825
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
2826
|
-
designSystem.Dialog,
|
2827
|
-
|
2828
|
-
|
2829
|
-
|
2830
|
-
|
2831
|
-
|
2832
|
-
|
2833
|
-
|
2834
|
-
|
2835
|
-
|
2836
|
-
|
2837
|
-
|
2838
|
-
|
2839
|
-
|
2840
|
-
|
2841
|
-
|
2842
|
-
}) }),
|
2843
|
-
endAction
|
2844
|
-
}
|
2845
|
-
)
|
2846
|
-
]
|
2847
|
-
}
|
2848
|
-
);
|
2884
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Root, { open: isOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Content, { children: [
|
2885
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Header, { children: formatMessage({
|
2886
|
+
id: "app.components.ConfirmDialog.title",
|
2887
|
+
defaultMessage: "Confirmation"
|
2888
|
+
}) }),
|
2889
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
|
2890
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.WarningCircle, { width: "24px", height: "24px", fill: "danger600" }) }),
|
2891
|
+
dialogBody
|
2892
|
+
] }) }),
|
2893
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Footer, { children: [
|
2894
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Cancel, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { fullWidth: true, onClick: onToggleDialog, variant: "tertiary", children: formatMessage({
|
2895
|
+
id: "app.components.Button.cancel",
|
2896
|
+
defaultMessage: "Cancel"
|
2897
|
+
}) }) }),
|
2898
|
+
endAction
|
2899
|
+
] })
|
2900
|
+
] }) });
|
2849
2901
|
};
|
2850
2902
|
const BoldChunk$1 = (chunks) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", children: chunks });
|
2851
2903
|
const ConfirmDialogPublishAll = ({
|
@@ -2950,7 +3002,14 @@ const formatErrorMessages = (errors, parentKey, formatMessage) => {
|
|
2950
3002
|
)
|
2951
3003
|
);
|
2952
3004
|
} else {
|
2953
|
-
messages.push(
|
3005
|
+
messages.push(
|
3006
|
+
...formatErrorMessages(
|
3007
|
+
// @ts-expect-error TODO: check why value is not compatible with FormErrors
|
3008
|
+
value,
|
3009
|
+
currentKey,
|
3010
|
+
formatMessage
|
3011
|
+
)
|
3012
|
+
);
|
2954
3013
|
}
|
2955
3014
|
} else {
|
2956
3015
|
messages.push(
|
@@ -3187,7 +3246,7 @@ const SelectedEntriesModalContent = ({
|
|
3187
3246
|
);
|
3188
3247
|
};
|
3189
3248
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
3190
|
-
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.
|
3249
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Body, { children: [
|
3191
3250
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: getFormattedCountMessage() }),
|
3192
3251
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { marginTop: 5, children: /* @__PURE__ */ jsxRuntime.jsx(
|
3193
3252
|
SelectedEntriesTableContent,
|
@@ -3199,27 +3258,24 @@ const SelectedEntriesModalContent = ({
|
|
3199
3258
|
}
|
3200
3259
|
) })
|
3201
3260
|
] }),
|
3202
|
-
/* @__PURE__ */ jsxRuntime.
|
3203
|
-
designSystem.
|
3204
|
-
|
3205
|
-
|
3206
|
-
|
3207
|
-
|
3208
|
-
}) }),
|
3209
|
-
|
3210
|
-
|
3211
|
-
|
3212
|
-
|
3213
|
-
|
3214
|
-
|
3215
|
-
|
3216
|
-
|
3217
|
-
|
3218
|
-
|
3219
|
-
|
3220
|
-
] })
|
3221
|
-
}
|
3222
|
-
),
|
3261
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
|
3262
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: toggleModal, variant: "tertiary", children: formatMessage({
|
3263
|
+
id: "app.components.Button.cancel",
|
3264
|
+
defaultMessage: "Cancel"
|
3265
|
+
}) }),
|
3266
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
3267
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: refetch, variant: "tertiary", loading: isFetching, children: formatMessage({ id: "app.utils.refresh", defaultMessage: "Refresh" }) }),
|
3268
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
3269
|
+
designSystem.Button,
|
3270
|
+
{
|
3271
|
+
onClick: toggleDialog,
|
3272
|
+
disabled: selectedEntries.length === 0 || selectedEntries.length === selectedEntriesWithErrorsCount || selectedEntriesPublished === selectedEntries.length || isLoading,
|
3273
|
+
loading: isSubmittingForm,
|
3274
|
+
children: formatMessage({ id: "app.utils.publish", defaultMessage: "Publish" })
|
3275
|
+
}
|
3276
|
+
)
|
3277
|
+
] })
|
3278
|
+
] }),
|
3223
3279
|
/* @__PURE__ */ jsxRuntime.jsx(
|
3224
3280
|
ConfirmDialogPublishAll,
|
3225
3281
|
{
|
@@ -3284,143 +3340,10 @@ const BulkActionsRenderer = () => {
|
|
3284
3340
|
documents: selectedRows
|
3285
3341
|
},
|
3286
3342
|
descriptions: plugins["content-manager"].apis.getBulkActions(),
|
3287
|
-
children: (actions2) => actions2.map((action) => /* @__PURE__ */ jsxRuntime.jsx(
|
3343
|
+
children: (actions2) => actions2.map((action) => /* @__PURE__ */ jsxRuntime.jsx(DocumentActionButton, { ...action }, action.id))
|
3288
3344
|
}
|
3289
3345
|
) });
|
3290
3346
|
};
|
3291
|
-
const BulkActionAction = (action) => {
|
3292
|
-
const [dialogId, setDialogId] = React__namespace.useState(null);
|
3293
|
-
const { toggleNotification } = strapiAdmin.useNotification();
|
3294
|
-
const handleClick = (action2) => (e) => {
|
3295
|
-
const { onClick, dialog, id } = action2;
|
3296
|
-
if (onClick) {
|
3297
|
-
onClick(e);
|
3298
|
-
}
|
3299
|
-
if (dialog) {
|
3300
|
-
switch (dialog.type) {
|
3301
|
-
case "notification":
|
3302
|
-
toggleNotification({
|
3303
|
-
title: dialog.title,
|
3304
|
-
message: dialog.content,
|
3305
|
-
type: dialog.status,
|
3306
|
-
timeout: dialog.timeout,
|
3307
|
-
onClose: dialog.onClose
|
3308
|
-
});
|
3309
|
-
break;
|
3310
|
-
case "dialog":
|
3311
|
-
case "modal": {
|
3312
|
-
e.preventDefault();
|
3313
|
-
setDialogId(id);
|
3314
|
-
}
|
3315
|
-
}
|
3316
|
-
}
|
3317
|
-
};
|
3318
|
-
const handleClose = () => {
|
3319
|
-
setDialogId(null);
|
3320
|
-
if (action.dialog?.type === "modal" && action.dialog?.onClose) {
|
3321
|
-
action.dialog.onClose();
|
3322
|
-
}
|
3323
|
-
};
|
3324
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
3325
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
3326
|
-
designSystem.Button,
|
3327
|
-
{
|
3328
|
-
disabled: action.disabled,
|
3329
|
-
startIcon: action.icon,
|
3330
|
-
variant: action.variant,
|
3331
|
-
onClick: handleClick(action),
|
3332
|
-
children: action.label
|
3333
|
-
}
|
3334
|
-
),
|
3335
|
-
action.dialog?.type === "dialog" ? /* @__PURE__ */ jsxRuntime.jsx(
|
3336
|
-
BulkActionConfirmDialog,
|
3337
|
-
{
|
3338
|
-
...action.dialog,
|
3339
|
-
variant: action.variant,
|
3340
|
-
isOpen: dialogId === action.id,
|
3341
|
-
onClose: handleClose
|
3342
|
-
}
|
3343
|
-
) : null,
|
3344
|
-
action.dialog?.type === "modal" ? /* @__PURE__ */ jsxRuntime.jsx(
|
3345
|
-
BulkActionModal,
|
3346
|
-
{
|
3347
|
-
...action.dialog,
|
3348
|
-
onModalClose: handleClose,
|
3349
|
-
isOpen: dialogId === action.id
|
3350
|
-
}
|
3351
|
-
) : null
|
3352
|
-
] });
|
3353
|
-
};
|
3354
|
-
const BulkActionConfirmDialog = ({
|
3355
|
-
onClose,
|
3356
|
-
onCancel,
|
3357
|
-
onConfirm,
|
3358
|
-
title,
|
3359
|
-
content,
|
3360
|
-
confirmButton,
|
3361
|
-
isOpen,
|
3362
|
-
variant = "secondary"
|
3363
|
-
}) => {
|
3364
|
-
const { formatMessage } = reactIntl.useIntl();
|
3365
|
-
const handleClose = async () => {
|
3366
|
-
if (onCancel) {
|
3367
|
-
await onCancel();
|
3368
|
-
}
|
3369
|
-
onClose();
|
3370
|
-
};
|
3371
|
-
const handleConfirm = async () => {
|
3372
|
-
if (onConfirm) {
|
3373
|
-
await onConfirm();
|
3374
|
-
}
|
3375
|
-
onClose();
|
3376
|
-
};
|
3377
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog, { isOpen, title, onClose: handleClose, children: [
|
3378
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.DialogBody, { icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.WarningCircle, {}), children: content }),
|
3379
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
3380
|
-
designSystem.DialogFooter,
|
3381
|
-
{
|
3382
|
-
startAction: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: handleClose, variant: "tertiary", children: formatMessage({
|
3383
|
-
id: "app.components.Button.cancel",
|
3384
|
-
defaultMessage: "Cancel"
|
3385
|
-
}) }),
|
3386
|
-
endAction: /* @__PURE__ */ jsxRuntime.jsx(
|
3387
|
-
designSystem.Button,
|
3388
|
-
{
|
3389
|
-
onClick: handleConfirm,
|
3390
|
-
variant: variant === "danger-light" ? variant : "secondary",
|
3391
|
-
startIcon: variant === "danger-light" ? /* @__PURE__ */ jsxRuntime.jsx(Icons.Trash, {}) : /* @__PURE__ */ jsxRuntime.jsx(Icons.Check, {}),
|
3392
|
-
children: confirmButton ? confirmButton : formatMessage({
|
3393
|
-
id: "app.components.Button.confirm",
|
3394
|
-
defaultMessage: "Confirm"
|
3395
|
-
})
|
3396
|
-
}
|
3397
|
-
)
|
3398
|
-
}
|
3399
|
-
)
|
3400
|
-
] });
|
3401
|
-
};
|
3402
|
-
const BulkActionModal = ({
|
3403
|
-
isOpen,
|
3404
|
-
title,
|
3405
|
-
onClose,
|
3406
|
-
content: Content,
|
3407
|
-
onModalClose
|
3408
|
-
}) => {
|
3409
|
-
const id = React__namespace.useId();
|
3410
|
-
if (!isOpen) {
|
3411
|
-
return null;
|
3412
|
-
}
|
3413
|
-
const handleClose = () => {
|
3414
|
-
if (onClose) {
|
3415
|
-
onClose();
|
3416
|
-
}
|
3417
|
-
onModalClose();
|
3418
|
-
};
|
3419
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ModalLayout, { borderRadius: "4px", overflow: "hidden", onClose: handleClose, labelledBy: id, children: [
|
3420
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", textColor: "neutral800", tag: "h2", id, children: title }) }),
|
3421
|
-
/* @__PURE__ */ jsxRuntime.jsx(Content, { onClose: handleClose })
|
3422
|
-
] });
|
3423
|
-
};
|
3424
3347
|
const DeleteAction = ({ documents, model }) => {
|
3425
3348
|
const { formatMessage } = reactIntl.useIntl();
|
3426
3349
|
const { schema: contentType } = useDoc();
|
@@ -3453,6 +3376,7 @@ const DeleteAction = ({ documents, model }) => {
|
|
3453
3376
|
defaultMessage: "Confirmation"
|
3454
3377
|
}),
|
3455
3378
|
content: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
|
3379
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.WarningCircle, { width: "24px", height: "24px", fill: "danger600" }) }),
|
3456
3380
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { id: "confirm-description", textAlign: "center", children: formatMessage({
|
3457
3381
|
id: "popUpWarning.bodyMessage.contentType.delete.all",
|
3458
3382
|
defaultMessage: "Are you sure you want to delete these entries?"
|
@@ -3502,6 +3426,7 @@ const UnpublishAction = ({ documents, model }) => {
|
|
3502
3426
|
defaultMessage: "Confirmation"
|
3503
3427
|
}),
|
3504
3428
|
content: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
|
3429
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.WarningCircle, { width: "24px", height: "24px", fill: "danger600" }) }),
|
3505
3430
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { id: "confirm-description", textAlign: "center", children: formatMessage({
|
3506
3431
|
id: "popUpWarning.bodyMessage.contentType.unpublish.all",
|
3507
3432
|
defaultMessage: "Are you sure you want to unpublish these entries?"
|
@@ -3747,8 +3672,7 @@ class ContentManagerPlugin {
|
|
3747
3672
|
documentActions = [
|
3748
3673
|
...DEFAULT_ACTIONS,
|
3749
3674
|
...DEFAULT_TABLE_ROW_ACTIONS,
|
3750
|
-
...DEFAULT_HEADER_ACTIONS
|
3751
|
-
HistoryAction
|
3675
|
+
...DEFAULT_HEADER_ACTIONS
|
3752
3676
|
];
|
3753
3677
|
editViewSidePanels = [ActionsPanel];
|
3754
3678
|
headerActions = [];
|
@@ -3837,6 +3761,52 @@ const getPrintableType = (value) => {
|
|
3837
3761
|
}
|
3838
3762
|
return nativeType;
|
3839
3763
|
};
|
3764
|
+
const HistoryAction = ({ model, document }) => {
|
3765
|
+
const { formatMessage } = reactIntl.useIntl();
|
3766
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
3767
|
+
const navigate = reactRouterDom.useNavigate();
|
3768
|
+
const pluginsQueryParams = qs.stringify({ plugins: query.plugins }, { encode: false });
|
3769
|
+
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
3770
|
+
return null;
|
3771
|
+
}
|
3772
|
+
return {
|
3773
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ClockCounterClockwise, {}),
|
3774
|
+
label: formatMessage({
|
3775
|
+
id: "content-manager.history.document-action",
|
3776
|
+
defaultMessage: "Content History"
|
3777
|
+
}),
|
3778
|
+
onClick: () => navigate({ pathname: "history", search: pluginsQueryParams }),
|
3779
|
+
disabled: (
|
3780
|
+
/**
|
3781
|
+
* The user is creating a new document.
|
3782
|
+
* It hasn't been saved yet, so there's no history to go to
|
3783
|
+
*/
|
3784
|
+
!document || /**
|
3785
|
+
* The document has been created but the current dimension has never been saved.
|
3786
|
+
* For example, the user is creating a new locale in an existing document,
|
3787
|
+
* so there's no history for the document in that locale
|
3788
|
+
*/
|
3789
|
+
!document.id || /**
|
3790
|
+
* History is only available for content types created by the user.
|
3791
|
+
* These have the `api::` prefix, as opposed to the ones created by Strapi or plugins,
|
3792
|
+
* which start with `admin::` or `plugin::`
|
3793
|
+
*/
|
3794
|
+
!model.startsWith("api::")
|
3795
|
+
),
|
3796
|
+
position: "header"
|
3797
|
+
};
|
3798
|
+
};
|
3799
|
+
HistoryAction.type = "history";
|
3800
|
+
const historyAdmin = {
|
3801
|
+
bootstrap(app) {
|
3802
|
+
const { addDocumentAction } = app.getPlugin("content-manager").apis;
|
3803
|
+
addDocumentAction((actions2) => {
|
3804
|
+
const indexOfDeleteAction = actions2.findIndex((action) => action.type === "delete");
|
3805
|
+
actions2.splice(indexOfDeleteAction, 0, HistoryAction);
|
3806
|
+
return actions2;
|
3807
|
+
});
|
3808
|
+
}
|
3809
|
+
};
|
3840
3810
|
const initialState = {
|
3841
3811
|
collectionTypeLinks: [],
|
3842
3812
|
components: [],
|
@@ -3887,15 +3857,29 @@ const index = {
|
|
3887
3857
|
defaultMessage: "Content Manager"
|
3888
3858
|
},
|
3889
3859
|
permissions: [],
|
3890
|
-
Component: () => Promise.resolve().then(() => require("./layout-DEYBqgF1.js")).then((mod) => ({ default: mod.Layout })),
|
3891
3860
|
position: 1
|
3892
3861
|
});
|
3862
|
+
app.router.addRoute({
|
3863
|
+
path: "content-manager/*",
|
3864
|
+
lazy: async () => {
|
3865
|
+
const { Layout } = await Promise.resolve().then(() => require("./layout-IJUR2XBA.js"));
|
3866
|
+
return {
|
3867
|
+
Component: Layout
|
3868
|
+
};
|
3869
|
+
},
|
3870
|
+
children: routes
|
3871
|
+
});
|
3893
3872
|
app.registerPlugin(cm.config);
|
3894
3873
|
},
|
3874
|
+
bootstrap(app) {
|
3875
|
+
if (typeof historyAdmin.bootstrap === "function") {
|
3876
|
+
historyAdmin.bootstrap(app);
|
3877
|
+
}
|
3878
|
+
},
|
3895
3879
|
async registerTrads({ locales }) {
|
3896
3880
|
const importedTrads = await Promise.all(
|
3897
3881
|
locales.map((locale) => {
|
3898
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-
|
3882
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-uOUIxfcQ.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-EUonQTon.js")), "./translations/eu.json": () => Promise.resolve().then(() => require("./eu-VDH-3ovk.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-B7kGGg3E.js")), "./translations/gu.json": () => Promise.resolve().then(() => require("./gu-BRmF601H.js")), "./translations/hi.json": () => Promise.resolve().then(() => require("./hi-CCJBptSq.js")), "./translations/hu.json": () => Promise.resolve().then(() => require("./hu-sNV_yLYy.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-B5Ser98A.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-DkBIs7vD.js")), "./translations/ja.json": () => Promise.resolve().then(() => require("./ja-CcFe8diO.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-woFZPmLk.js")), "./translations/ml.json": () => Promise.resolve().then(() => require("./ml-C2W8N8k1.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-BuFotyP_.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-bbEOHChV.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-uzwG-hk7.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-BiOz37D9.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-CeXQuq50.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BT3ybNny.js")), "./translations/sa.json": () => Promise.resolve().then(() => require("./sa-CcvkYInH.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-CvY09Xjv.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-MYDuzgvT.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-D9_GfAjc.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-D9UH-O_R.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-C8EiqJY7.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-CJlYDheJ.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-9kOncHGw.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CQQfszqR.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
|
3899
3883
|
return {
|
3900
3884
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
3901
3885
|
locale
|
@@ -3939,7 +3923,6 @@ exports.getDisplayName = getDisplayName;
|
|
3939
3923
|
exports.getMainField = getMainField;
|
3940
3924
|
exports.getTranslation = getTranslation;
|
3941
3925
|
exports.index = index;
|
3942
|
-
exports.routes = routes;
|
3943
3926
|
exports.setInitialData = setInitialData;
|
3944
3927
|
exports.useContentTypeSchema = useContentTypeSchema;
|
3945
3928
|
exports.useDoc = useDoc;
|
@@ -3953,4 +3936,4 @@ exports.useGetAllDocumentsQuery = useGetAllDocumentsQuery;
|
|
3953
3936
|
exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuery;
|
3954
3937
|
exports.useGetInitialDataQuery = useGetInitialDataQuery;
|
3955
3938
|
exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
|
3956
|
-
//# sourceMappingURL=index-
|
3939
|
+
//# sourceMappingURL=index-BU73akFF.js.map
|