@strapi/content-manager 0.0.0-experimental.71ed910bd859c7e558bd1c1042eaadb7d26fd22a → 0.0.0-experimental.7273fc63f5c2c8aa9e100655b1776f3e0621e61a
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/_chunks/{ComponentConfigurationPage-DP7AC0UU.js → ComponentConfigurationPage-D2_cVxXK.js} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-DP7AC0UU.js.map → ComponentConfigurationPage-D2_cVxXK.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-7-qB29e7.mjs → ComponentConfigurationPage-suSMW3KC.mjs} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-7-qB29e7.mjs.map → ComponentConfigurationPage-suSMW3KC.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CI4XoymK.mjs → EditConfigurationPage-CBscKbxt.mjs} +4 -4
- package/dist/_chunks/{EditConfigurationPage-CI4XoymK.mjs.map → EditConfigurationPage-CBscKbxt.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-DITVliEI.js → EditConfigurationPage-Z_VzHVH4.js} +4 -4
- package/dist/_chunks/{EditConfigurationPage-DITVliEI.js.map → EditConfigurationPage-Z_VzHVH4.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-Dzpno8xI.mjs → EditViewPage-D5Zhyw_q.mjs} +10 -4
- package/dist/_chunks/EditViewPage-D5Zhyw_q.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-CUS2EAhB.js → EditViewPage-DzDDKiF5.js} +10 -4
- package/dist/_chunks/EditViewPage-DzDDKiF5.js.map +1 -0
- package/dist/_chunks/{Field-CtUU1Fg8.js → Field-CZHNLm_m.js} +42 -10
- package/dist/_chunks/Field-CZHNLm_m.js.map +1 -0
- package/dist/_chunks/{Field-B_jG_EV9.mjs → Field-FNlyAbcI.mjs} +42 -10
- package/dist/_chunks/Field-FNlyAbcI.mjs.map +1 -0
- package/dist/_chunks/{Form-DTqO0ymI.js → Form-DqPHDLuK.js} +3 -3
- package/dist/_chunks/Form-DqPHDLuK.js.map +1 -0
- package/dist/_chunks/{Form-BXHao2mZ.mjs → Form-Sq_OVNv-.mjs} +3 -3
- package/dist/_chunks/Form-Sq_OVNv-.mjs.map +1 -0
- package/dist/_chunks/{History-C_uSGzO5.js → History-B-ZiOAEg.js} +37 -40
- package/dist/_chunks/History-B-ZiOAEg.js.map +1 -0
- package/dist/_chunks/{History-2Ah2CQ4T.mjs → History-DlL3k_OW.mjs} +38 -41
- package/dist/_chunks/History-DlL3k_OW.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-nyuP7OSy.js → ListConfigurationPage-Cc0hLAoS.js} +3 -3
- package/dist/_chunks/{ListConfigurationPage-nyuP7OSy.js.map → ListConfigurationPage-Cc0hLAoS.js.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-BjSJlaoC.mjs → ListConfigurationPage-xj3cSF5M.mjs} +3 -3
- package/dist/_chunks/{ListConfigurationPage-BjSJlaoC.mjs.map → ListConfigurationPage-xj3cSF5M.mjs.map} +1 -1
- package/dist/_chunks/{ListViewPage-B75x3nz2.mjs → ListViewPage-C9STpcYd.mjs} +15 -4
- package/dist/_chunks/{ListViewPage-B75x3nz2.mjs.map → ListViewPage-C9STpcYd.mjs.map} +1 -1
- package/dist/_chunks/{ListViewPage-DHgHD8Xg.js → ListViewPage-D48T84aT.js} +15 -4
- package/dist/_chunks/ListViewPage-D48T84aT.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-CDUKdZ7d.js → NoContentTypePage-BnUmUnXQ.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-CDUKdZ7d.js.map → NoContentTypePage-BnUmUnXQ.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-DUacQSyF.mjs → NoContentTypePage-DpV_ouD6.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-DUacQSyF.mjs.map → NoContentTypePage-DpV_ouD6.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-SFllMekk.mjs → NoPermissionsPage-BeDixsE9.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-SFllMekk.mjs.map → NoPermissionsPage-BeDixsE9.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-zwIZydDI.js → NoPermissionsPage-z-CpOFfh.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-zwIZydDI.js.map → NoPermissionsPage-z-CpOFfh.js.map} +1 -1
- package/dist/_chunks/{Relations-D2NRW8fC.mjs → Relations-CTiimSAg.mjs} +65 -33
- package/dist/_chunks/Relations-CTiimSAg.mjs.map +1 -0
- package/dist/_chunks/{Relations-NFLaRNPr.js → Relations-Cs5vJLAp.js} +64 -32
- package/dist/_chunks/Relations-Cs5vJLAp.js.map +1 -0
- package/dist/_chunks/{en-BlhnxQfj.js → en-Bm0D0IWz.js} +7 -7
- package/dist/_chunks/{en-BlhnxQfj.js.map → en-Bm0D0IWz.js.map} +1 -1
- package/dist/_chunks/{en-C8YBvRrK.mjs → en-DKV44jRb.mjs} +7 -7
- package/dist/_chunks/{en-C8YBvRrK.mjs.map → en-DKV44jRb.mjs.map} +1 -1
- package/dist/_chunks/{fr-B7kGGg3E.js → fr-C6t7ywEg.js} +12 -2
- package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-C6t7ywEg.js.map} +1 -1
- package/dist/_chunks/{fr-CD9VFbPM.mjs → fr-DxrTDLl6.mjs} +12 -2
- package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr-DxrTDLl6.mjs.map} +1 -1
- package/dist/_chunks/{index-C9HxCo5R.mjs → index-DUZzV11o.mjs} +119 -84
- package/dist/_chunks/index-DUZzV11o.mjs.map +1 -0
- package/dist/_chunks/{index-ovJRE1FM.js → index-dFQ_8EM3.js} +119 -83
- package/dist/_chunks/index-dFQ_8EM3.js.map +1 -0
- package/dist/_chunks/{layout-UNWstw_s.js → layout-Bu-ET7w6.js} +3 -3
- package/dist/_chunks/{layout-UNWstw_s.js.map → layout-Bu-ET7w6.js.map} +1 -1
- package/dist/_chunks/{layout-DaUjDiWQ.mjs → layout-C-eg7m9Y.mjs} +3 -3
- package/dist/_chunks/{layout-DaUjDiWQ.mjs.map → layout-C-eg7m9Y.mjs.map} +1 -1
- package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
- package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
- package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
- package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
- package/dist/_chunks/{relations-D8iFAeRu.mjs → relations-Cj61Oyt2.mjs} +3 -7
- package/dist/_chunks/relations-Cj61Oyt2.mjs.map +1 -0
- package/dist/_chunks/{relations-NN3coOG5.js → relations-isLeDaA0.js} +3 -7
- package/dist/_chunks/relations-isLeDaA0.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/preview/constants.d.ts +1 -0
- package/dist/admin/src/preview/index.d.ts +4 -0
- package/dist/server/index.js +351 -146
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +351 -146
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +15 -1
- package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
- package/dist/server/src/history/services/history.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 +2 -3
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +4 -4
- package/dist/server/src/preview/constants.d.ts +2 -0
- package/dist/server/src/preview/constants.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/index.d.ts +2 -0
- package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/preview.d.ts +13 -0
- package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
- package/dist/server/src/preview/index.d.ts +4 -0
- package/dist/server/src/preview/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/index.d.ts +8 -0
- package/dist/server/src/preview/routes/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/preview.d.ts +4 -0
- package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
- package/dist/server/src/preview/services/index.d.ts +15 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts +30 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview.d.ts +12 -0
- package/dist/server/src/preview/services/preview.d.ts.map +1 -0
- package/dist/server/src/preview/utils.d.ts +18 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts +8 -8
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +4 -4
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
- package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/shared/contracts/index.d.ts +1 -0
- package/dist/shared/contracts/index.d.ts.map +1 -1
- package/dist/shared/contracts/preview.d.ts +27 -0
- package/dist/shared/contracts/preview.d.ts.map +1 -0
- package/dist/shared/index.js +4 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +4 -0
- package/dist/shared/index.mjs.map +1 -1
- package/package.json +8 -8
- package/dist/_chunks/EditViewPage-CUS2EAhB.js.map +0 -1
- package/dist/_chunks/EditViewPage-Dzpno8xI.mjs.map +0 -1
- package/dist/_chunks/Field-B_jG_EV9.mjs.map +0 -1
- package/dist/_chunks/Field-CtUU1Fg8.js.map +0 -1
- package/dist/_chunks/Form-BXHao2mZ.mjs.map +0 -1
- package/dist/_chunks/Form-DTqO0ymI.js.map +0 -1
- package/dist/_chunks/History-2Ah2CQ4T.mjs.map +0 -1
- package/dist/_chunks/History-C_uSGzO5.js.map +0 -1
- package/dist/_chunks/ListViewPage-DHgHD8Xg.js.map +0 -1
- package/dist/_chunks/Relations-D2NRW8fC.mjs.map +0 -1
- package/dist/_chunks/Relations-NFLaRNPr.js.map +0 -1
- package/dist/_chunks/index-C9HxCo5R.mjs.map +0 -1
- package/dist/_chunks/index-ovJRE1FM.js.map +0 -1
- package/dist/_chunks/relations-D8iFAeRu.mjs.map +0 -1
- package/dist/_chunks/relations-NN3coOG5.js.map +0 -1
@@ -1,9 +1,10 @@
|
|
1
1
|
import { More, Cross, WarningCircle, ListPlus, Pencil, Trash, Check, CrossCircle, CheckCircle, ArrowsCounterClockwise, ChevronRight, Duplicate, ClockCounterClockwise, Feather } from "@strapi/icons";
|
2
2
|
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
3
|
-
import { useStrapiApp, createContext, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler,
|
3
|
+
import { useStrapiApp, createContext, useQueryParams, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler, getYupValidationErrors, useForm, useTracking, useGuidedTour, BackButton, DescriptionComponentRenderer, useTable, Table } from "@strapi/admin/strapi-admin";
|
4
4
|
import * as React from "react";
|
5
5
|
import { lazy } from "react";
|
6
6
|
import { Button, Menu, VisuallyHidden, Flex, Typography, Dialog, Modal, Radio, Status, Box, SingleSelect, SingleSelectOption, IconButton, Loader, Tooltip, LinkButton } from "@strapi/design-system";
|
7
|
+
import mapValues from "lodash/fp/mapValues";
|
7
8
|
import { useIntl } from "react-intl";
|
8
9
|
import { useParams, useNavigate, Navigate, useMatch, useLocation, Link, NavLink } from "react-router-dom";
|
9
10
|
import * as yup from "yup";
|
@@ -100,6 +101,7 @@ const DocumentRBAC = ({ children, permissions }) => {
|
|
100
101
|
if (!slug) {
|
101
102
|
throw new Error("Cannot find the slug param in the URL");
|
102
103
|
}
|
104
|
+
const [{ rawQuery }] = useQueryParams();
|
103
105
|
const userPermissions = useAuth("DocumentRBAC", (state) => state.permissions);
|
104
106
|
const contentTypePermissions = React.useMemo(() => {
|
105
107
|
const contentTypePermissions2 = userPermissions.filter(
|
@@ -110,7 +112,14 @@ const DocumentRBAC = ({ children, permissions }) => {
|
|
110
112
|
return { ...acc, [action]: [permission] };
|
111
113
|
}, {});
|
112
114
|
}, [slug, userPermissions]);
|
113
|
-
const { isLoading, allowedActions } = useRBAC(
|
115
|
+
const { isLoading, allowedActions } = useRBAC(
|
116
|
+
contentTypePermissions,
|
117
|
+
permissions ?? void 0,
|
118
|
+
// TODO: useRBAC context should be typed and built differently
|
119
|
+
// We are passing raw query as context to the hook so that it can
|
120
|
+
// rely on the locale provided from DocumentRBAC for its permission calculations.
|
121
|
+
rawQuery
|
122
|
+
);
|
114
123
|
const canCreateFields = !isLoading && allowedActions.canCreate ? extractAndDedupeFields(contentTypePermissions.create) : [];
|
115
124
|
const canReadFields = !isLoading && allowedActions.canRead ? extractAndDedupeFields(contentTypePermissions.read) : [];
|
116
125
|
const canUpdateFields = !isLoading && allowedActions.canUpdate ? extractAndDedupeFields(contentTypePermissions.update) : [];
|
@@ -262,7 +271,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
262
271
|
*/
|
263
272
|
getAllDocuments: builder.query({
|
264
273
|
query: ({ model, params }) => ({
|
265
|
-
url: `/content-manager/collection-types/${model}`,
|
274
|
+
url: `/content-manager/collection-types/${model}${params ? `?${params}` : ""}`,
|
266
275
|
method: "GET",
|
267
276
|
config: {
|
268
277
|
params
|
@@ -461,6 +470,24 @@ const buildValidParams = (query) => {
|
|
461
470
|
const isBaseQueryError = (error) => {
|
462
471
|
return error.name !== void 0;
|
463
472
|
};
|
473
|
+
const arrayValidator = (attribute, options) => ({
|
474
|
+
message: translatedErrors.required,
|
475
|
+
test(value) {
|
476
|
+
if (options.status === "draft") {
|
477
|
+
return true;
|
478
|
+
}
|
479
|
+
if (!attribute.required) {
|
480
|
+
return true;
|
481
|
+
}
|
482
|
+
if (!value) {
|
483
|
+
return false;
|
484
|
+
}
|
485
|
+
if (Array.isArray(value) && value.length === 0) {
|
486
|
+
return false;
|
487
|
+
}
|
488
|
+
return true;
|
489
|
+
}
|
490
|
+
});
|
464
491
|
const createYupSchema = (attributes = {}, components = {}, options = { status: null }) => {
|
465
492
|
const createModelSchema = (attributes2) => yup.object().shape(
|
466
493
|
Object.entries(attributes2).reduce((acc, [name, attribute]) => {
|
@@ -468,6 +495,7 @@ const createYupSchema = (attributes = {}, components = {}, options = { status: n
|
|
468
495
|
return acc;
|
469
496
|
}
|
470
497
|
const validations = [
|
498
|
+
addNullableValidation,
|
471
499
|
addRequiredValidation,
|
472
500
|
addMinLengthValidation,
|
473
501
|
addMaxLengthValidation,
|
@@ -484,12 +512,12 @@ const createYupSchema = (attributes = {}, components = {}, options = { status: n
|
|
484
512
|
...acc,
|
485
513
|
[name]: transformSchema(
|
486
514
|
yup.array().of(createModelSchema(attributes3).nullable(false))
|
487
|
-
)
|
515
|
+
).test(arrayValidator(attribute, options))
|
488
516
|
};
|
489
517
|
} else {
|
490
518
|
return {
|
491
519
|
...acc,
|
492
|
-
[name]: transformSchema(createModelSchema(attributes3))
|
520
|
+
[name]: transformSchema(createModelSchema(attributes3).nullable())
|
493
521
|
};
|
494
522
|
}
|
495
523
|
}
|
@@ -511,7 +539,7 @@ const createYupSchema = (attributes = {}, components = {}, options = { status: n
|
|
511
539
|
}
|
512
540
|
)
|
513
541
|
)
|
514
|
-
)
|
542
|
+
).test(arrayValidator(attribute, options))
|
515
543
|
};
|
516
544
|
case "relation":
|
517
545
|
return {
|
@@ -609,17 +637,17 @@ const nullableSchema = (schema) => {
|
|
609
637
|
schema
|
610
638
|
);
|
611
639
|
};
|
640
|
+
const addNullableValidation = () => (schema) => {
|
641
|
+
return nullableSchema(schema);
|
642
|
+
};
|
612
643
|
const addRequiredValidation = (attribute, options) => (schema) => {
|
613
|
-
if (options.status === "draft") {
|
614
|
-
return
|
615
|
-
}
|
616
|
-
if ((attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone") && attribute.required && "min" in schema) {
|
617
|
-
return schema.min(1, translatedErrors.required);
|
644
|
+
if (options.status === "draft" || !attribute.required) {
|
645
|
+
return schema;
|
618
646
|
}
|
619
|
-
if (attribute.required &&
|
647
|
+
if (attribute.required && "required" in schema) {
|
620
648
|
return schema.required(translatedErrors.required);
|
621
649
|
}
|
622
|
-
return
|
650
|
+
return schema;
|
623
651
|
};
|
624
652
|
const addMinLengthValidation = (attribute, options) => (schema) => {
|
625
653
|
if (options.status === "draft") {
|
@@ -647,31 +675,12 @@ const addMaxLengthValidation = (attribute) => (schema) => {
|
|
647
675
|
return schema;
|
648
676
|
};
|
649
677
|
const addMinValidation = (attribute, options) => (schema) => {
|
650
|
-
if ("
|
678
|
+
if (options.status === "draft") {
|
679
|
+
return schema;
|
680
|
+
}
|
681
|
+
if ("min" in attribute && "min" in schema) {
|
651
682
|
const min = toInteger(attribute.min);
|
652
|
-
if (
|
653
|
-
if (options.status !== "draft" && !attribute.required && "test" in schema && min) {
|
654
|
-
return schema.test(
|
655
|
-
"custom-min",
|
656
|
-
{
|
657
|
-
...translatedErrors.min,
|
658
|
-
values: {
|
659
|
-
min: attribute.min
|
660
|
-
}
|
661
|
-
},
|
662
|
-
(value) => {
|
663
|
-
if (!value) {
|
664
|
-
return true;
|
665
|
-
}
|
666
|
-
if (Array.isArray(value) && value.length === 0) {
|
667
|
-
return true;
|
668
|
-
}
|
669
|
-
return value.length >= min;
|
670
|
-
}
|
671
|
-
);
|
672
|
-
}
|
673
|
-
}
|
674
|
-
if ("min" in schema && min) {
|
683
|
+
if (min) {
|
675
684
|
return schema.min(min, {
|
676
685
|
...translatedErrors.min,
|
677
686
|
values: {
|
@@ -960,9 +969,10 @@ const formatEditLayout = (data, {
|
|
960
969
|
currentPanelIndex += 2;
|
961
970
|
} else {
|
962
971
|
if (!panels[currentPanelIndex]) {
|
963
|
-
panels.push([]);
|
972
|
+
panels.push([row]);
|
973
|
+
} else {
|
974
|
+
panels[currentPanelIndex].push(row);
|
964
975
|
}
|
965
|
-
panels[currentPanelIndex].push(row);
|
966
976
|
}
|
967
977
|
return panels;
|
968
978
|
}, []);
|
@@ -1166,16 +1176,18 @@ const useDoc = () => {
|
|
1166
1176
|
if (!slug) {
|
1167
1177
|
throw new Error("Could not find model in url params");
|
1168
1178
|
}
|
1179
|
+
const document = useDocument(
|
1180
|
+
{ documentId: origin || id, model: slug, collectionType, params },
|
1181
|
+
{
|
1182
|
+
skip: id === "create" || !origin && !id && collectionType !== SINGLE_TYPES
|
1183
|
+
}
|
1184
|
+
);
|
1185
|
+
const returnId = origin || id === "create" ? void 0 : id;
|
1169
1186
|
return {
|
1170
1187
|
collectionType,
|
1171
1188
|
model: slug,
|
1172
|
-
id:
|
1173
|
-
...
|
1174
|
-
{ documentId: origin || id, model: slug, collectionType, params },
|
1175
|
-
{
|
1176
|
-
skip: id === "create" || !origin && !id && collectionType !== SINGLE_TYPES
|
1177
|
-
}
|
1178
|
-
)
|
1189
|
+
id: returnId,
|
1190
|
+
...document
|
1179
1191
|
};
|
1180
1192
|
};
|
1181
1193
|
const useContentManagerContext = () => {
|
@@ -1218,9 +1230,6 @@ const useContentManagerContext = () => {
|
|
1218
1230
|
};
|
1219
1231
|
};
|
1220
1232
|
const prefixPluginTranslations = (trad, pluginId) => {
|
1221
|
-
if (!pluginId) {
|
1222
|
-
throw new TypeError("pluginId can't be empty");
|
1223
|
-
}
|
1224
1233
|
return Object.keys(trad).reduce((acc, current) => {
|
1225
1234
|
acc[`${pluginId}.${current}`] = trad[current];
|
1226
1235
|
return acc;
|
@@ -1655,7 +1664,7 @@ const useDocumentActions = () => {
|
|
1655
1664
|
};
|
1656
1665
|
};
|
1657
1666
|
const ProtectedHistoryPage = lazy(
|
1658
|
-
() => import("./History-
|
1667
|
+
() => import("./History-DlL3k_OW.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
|
1659
1668
|
);
|
1660
1669
|
const routes$1 = [
|
1661
1670
|
{
|
@@ -1668,31 +1677,31 @@ const routes$1 = [
|
|
1668
1677
|
}
|
1669
1678
|
];
|
1670
1679
|
const ProtectedEditViewPage = lazy(
|
1671
|
-
() => import("./EditViewPage-
|
1680
|
+
() => import("./EditViewPage-D5Zhyw_q.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
|
1672
1681
|
);
|
1673
1682
|
const ProtectedListViewPage = lazy(
|
1674
|
-
() => import("./ListViewPage-
|
1683
|
+
() => import("./ListViewPage-C9STpcYd.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
|
1675
1684
|
);
|
1676
1685
|
const ProtectedListConfiguration = lazy(
|
1677
|
-
() => import("./ListConfigurationPage-
|
1686
|
+
() => import("./ListConfigurationPage-xj3cSF5M.mjs").then((mod) => ({
|
1678
1687
|
default: mod.ProtectedListConfiguration
|
1679
1688
|
}))
|
1680
1689
|
);
|
1681
1690
|
const ProtectedEditConfigurationPage = lazy(
|
1682
|
-
() => import("./EditConfigurationPage-
|
1691
|
+
() => import("./EditConfigurationPage-CBscKbxt.mjs").then((mod) => ({
|
1683
1692
|
default: mod.ProtectedEditConfigurationPage
|
1684
1693
|
}))
|
1685
1694
|
);
|
1686
1695
|
const ProtectedComponentConfigurationPage = lazy(
|
1687
|
-
() => import("./ComponentConfigurationPage-
|
1696
|
+
() => import("./ComponentConfigurationPage-suSMW3KC.mjs").then((mod) => ({
|
1688
1697
|
default: mod.ProtectedComponentConfigurationPage
|
1689
1698
|
}))
|
1690
1699
|
);
|
1691
1700
|
const NoPermissions = lazy(
|
1692
|
-
() => import("./NoPermissionsPage-
|
1701
|
+
() => import("./NoPermissionsPage-BeDixsE9.mjs").then((mod) => ({ default: mod.NoPermissions }))
|
1693
1702
|
);
|
1694
1703
|
const NoContentType = lazy(
|
1695
|
-
() => import("./NoContentTypePage-
|
1704
|
+
() => import("./NoContentTypePage-DpV_ouD6.mjs").then((mod) => ({ default: mod.NoContentType }))
|
1696
1705
|
);
|
1697
1706
|
const CollectionTypePages = () => {
|
1698
1707
|
const { collectionType } = useParams();
|
@@ -2046,6 +2055,18 @@ const DocumentActionModal = ({
|
|
2046
2055
|
typeof Footer === "function" ? /* @__PURE__ */ jsx(Footer, { onClose: handleClose }) : Footer
|
2047
2056
|
] }) });
|
2048
2057
|
};
|
2058
|
+
const transformData = (data) => {
|
2059
|
+
if (Array.isArray(data)) {
|
2060
|
+
return data.map(transformData);
|
2061
|
+
}
|
2062
|
+
if (typeof data === "object" && data !== null) {
|
2063
|
+
if ("apiData" in data) {
|
2064
|
+
return data.apiData;
|
2065
|
+
}
|
2066
|
+
return mapValues(transformData)(data);
|
2067
|
+
}
|
2068
|
+
return data;
|
2069
|
+
};
|
2049
2070
|
const PublishAction$1 = ({
|
2050
2071
|
activeTab,
|
2051
2072
|
documentId,
|
@@ -2139,7 +2160,9 @@ const PublishAction$1 = ({
|
|
2139
2160
|
const performPublish = async () => {
|
2140
2161
|
setSubmitting(true);
|
2141
2162
|
try {
|
2142
|
-
const { errors } = await validate(
|
2163
|
+
const { errors } = await validate(true, {
|
2164
|
+
status: "published"
|
2165
|
+
});
|
2143
2166
|
if (errors) {
|
2144
2167
|
toggleNotification({
|
2145
2168
|
type: "danger",
|
@@ -2157,7 +2180,7 @@ const PublishAction$1 = ({
|
|
2157
2180
|
documentId,
|
2158
2181
|
params
|
2159
2182
|
},
|
2160
|
-
formValues
|
2183
|
+
transformData(formValues)
|
2161
2184
|
);
|
2162
2185
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2163
2186
|
navigate({
|
@@ -2253,18 +2276,18 @@ const UpdateAction = ({
|
|
2253
2276
|
onClick: async () => {
|
2254
2277
|
setSubmitting(true);
|
2255
2278
|
try {
|
2256
|
-
|
2257
|
-
|
2258
|
-
|
2259
|
-
|
2260
|
-
|
2261
|
-
|
2262
|
-
|
2263
|
-
|
2264
|
-
|
2265
|
-
})
|
2266
|
-
|
2267
|
-
|
2279
|
+
const { errors } = await validate(true, {
|
2280
|
+
status: "draft"
|
2281
|
+
});
|
2282
|
+
if (errors) {
|
2283
|
+
toggleNotification({
|
2284
|
+
type: "danger",
|
2285
|
+
message: formatMessage({
|
2286
|
+
id: "content-manager.validation.error",
|
2287
|
+
defaultMessage: "There are validation errors in your document. Please fix them before saving."
|
2288
|
+
})
|
2289
|
+
});
|
2290
|
+
return;
|
2268
2291
|
}
|
2269
2292
|
if (isCloning) {
|
2270
2293
|
const res = await clone(
|
@@ -2273,7 +2296,7 @@ const UpdateAction = ({
|
|
2273
2296
|
documentId: cloneMatch.params.origin,
|
2274
2297
|
params
|
2275
2298
|
},
|
2276
|
-
document
|
2299
|
+
transformData(document)
|
2277
2300
|
);
|
2278
2301
|
if ("data" in res) {
|
2279
2302
|
navigate(
|
@@ -2294,7 +2317,7 @@ const UpdateAction = ({
|
|
2294
2317
|
documentId,
|
2295
2318
|
params
|
2296
2319
|
},
|
2297
|
-
document
|
2320
|
+
transformData(document)
|
2298
2321
|
);
|
2299
2322
|
if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2300
2323
|
setErrors(formatValidationErrors(res.error));
|
@@ -2307,7 +2330,7 @@ const UpdateAction = ({
|
|
2307
2330
|
model,
|
2308
2331
|
params
|
2309
2332
|
},
|
2310
|
-
document
|
2333
|
+
transformData(document)
|
2311
2334
|
);
|
2312
2335
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2313
2336
|
navigate(
|
@@ -2646,12 +2669,12 @@ const Information = ({ activeTab }) => {
|
|
2646
2669
|
isDisplayed: !!publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME],
|
2647
2670
|
label: formatMessage({
|
2648
2671
|
id: "content-manager.containers.edit.information.last-published.label",
|
2649
|
-
defaultMessage: "
|
2672
|
+
defaultMessage: "Published"
|
2650
2673
|
}),
|
2651
2674
|
value: formatMessage(
|
2652
2675
|
{
|
2653
2676
|
id: "content-manager.containers.edit.information.last-published.value",
|
2654
|
-
defaultMessage: `
|
2677
|
+
defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`
|
2655
2678
|
},
|
2656
2679
|
{
|
2657
2680
|
time: /* @__PURE__ */ jsx(RelativeTime, { timestamp: new Date(publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME]) }),
|
@@ -2664,12 +2687,12 @@ const Information = ({ activeTab }) => {
|
|
2664
2687
|
isDisplayed: !!createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME],
|
2665
2688
|
label: formatMessage({
|
2666
2689
|
id: "content-manager.containers.edit.information.last-draft.label",
|
2667
|
-
defaultMessage: "
|
2690
|
+
defaultMessage: "Updated"
|
2668
2691
|
}),
|
2669
2692
|
value: formatMessage(
|
2670
2693
|
{
|
2671
2694
|
id: "content-manager.containers.edit.information.last-draft.value",
|
2672
|
-
defaultMessage: `
|
2695
|
+
defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`
|
2673
2696
|
},
|
2674
2697
|
{
|
2675
2698
|
time: /* @__PURE__ */ jsx(
|
@@ -2687,12 +2710,12 @@ const Information = ({ activeTab }) => {
|
|
2687
2710
|
isDisplayed: !!createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME],
|
2688
2711
|
label: formatMessage({
|
2689
2712
|
id: "content-manager.containers.edit.information.document.label",
|
2690
|
-
defaultMessage: "
|
2713
|
+
defaultMessage: "Created"
|
2691
2714
|
}),
|
2692
2715
|
value: formatMessage(
|
2693
2716
|
{
|
2694
2717
|
id: "content-manager.containers.edit.information.document.value",
|
2695
|
-
defaultMessage: `
|
2718
|
+
defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`
|
2696
2719
|
},
|
2697
2720
|
{
|
2698
2721
|
time: /* @__PURE__ */ jsx(
|
@@ -2995,7 +3018,7 @@ const Panel = React.forwardRef(({ children, title }, ref) => {
|
|
2995
3018
|
justifyContent: "stretch",
|
2996
3019
|
alignItems: "flex-start",
|
2997
3020
|
children: [
|
2998
|
-
/* @__PURE__ */ jsx(Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", children: title }),
|
3021
|
+
/* @__PURE__ */ jsx(Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", textColor: "neutral600", children: title }),
|
2999
3022
|
children
|
3000
3023
|
]
|
3001
3024
|
}
|
@@ -3978,6 +4001,15 @@ const { setInitialData } = actions;
|
|
3978
4001
|
const reducer = combineReducers({
|
3979
4002
|
app: reducer$1
|
3980
4003
|
});
|
4004
|
+
const FEATURE_ID = "preview";
|
4005
|
+
const previewAdmin = {
|
4006
|
+
bootstrap(app) {
|
4007
|
+
if (!window.strapi.future.isEnabled(FEATURE_ID)) {
|
4008
|
+
return {};
|
4009
|
+
}
|
4010
|
+
console.log("Bootstrapping preview admin");
|
4011
|
+
}
|
4012
|
+
};
|
3981
4013
|
const index = {
|
3982
4014
|
register(app) {
|
3983
4015
|
const cm = new ContentManagerPlugin();
|
@@ -3997,7 +4029,7 @@ const index = {
|
|
3997
4029
|
app.router.addRoute({
|
3998
4030
|
path: "content-manager/*",
|
3999
4031
|
lazy: async () => {
|
4000
|
-
const { Layout } = await import("./layout-
|
4032
|
+
const { Layout } = await import("./layout-C-eg7m9Y.mjs");
|
4001
4033
|
return {
|
4002
4034
|
Component: Layout
|
4003
4035
|
};
|
@@ -4010,11 +4042,14 @@ const index = {
|
|
4010
4042
|
if (typeof historyAdmin.bootstrap === "function") {
|
4011
4043
|
historyAdmin.bootstrap(app);
|
4012
4044
|
}
|
4045
|
+
if (typeof previewAdmin.bootstrap === "function") {
|
4046
|
+
previewAdmin.bootstrap(app);
|
4047
|
+
}
|
4013
4048
|
},
|
4014
4049
|
async registerTrads({ locales }) {
|
4015
4050
|
const importedTrads = await Promise.all(
|
4016
4051
|
locales.map((locale) => {
|
4017
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-
|
4052
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-DKV44jRb.mjs"), "./translations/es.json": () => import("./es-CeXiYflN.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr-DxrTDLl6.mjs"), "./translations/gu.json": () => import("./gu-CNpaMDpH.mjs"), "./translations/hi.json": () => import("./hi-Dwvd04m3.mjs"), "./translations/hu.json": () => import("./hu-CeYvaaO0.mjs"), "./translations/id.json": () => import("./id-BtwA9WJT.mjs"), "./translations/it.json": () => import("./it-BrVPqaf1.mjs"), "./translations/ja.json": () => import("./ja-CtsUxOvk.mjs"), "./translations/ko.json": () => import("./ko-HVQRlfUI.mjs"), "./translations/ml.json": () => import("./ml-BihZwQit.mjs"), "./translations/ms.json": () => import("./ms-m_WjyWx7.mjs"), "./translations/nl.json": () => import("./nl-D4R9gHx5.mjs"), "./translations/pl.json": () => import("./pl-sbx9mSt_.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-C71iDxnh.mjs"), "./translations/pt.json": () => import("./pt-BsaFvS8-.mjs"), "./translations/ru.json": () => import("./ru-BE6A4Exp.mjs"), "./translations/sa.json": () => import("./sa-Dag0k-Z8.mjs"), "./translations/sk.json": () => import("./sk-BFg-R8qJ.mjs"), "./translations/sv.json": () => import("./sv-CUnfWGsh.mjs"), "./translations/th.json": () => import("./th-BqbI8lIT.mjs"), "./translations/tr.json": () => import("./tr-CgeK3wJM.mjs"), "./translations/uk.json": () => import("./uk-CR-zDhAY.mjs"), "./translations/vi.json": () => import("./vi-DUXIk_fw.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BPQcRIyH.mjs"), "./translations/zh.json": () => import("./zh-BWZspA60.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
|
4018
4053
|
return {
|
4019
4054
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
4020
4055
|
locale
|
@@ -4075,4 +4110,4 @@ export {
|
|
4075
4110
|
capitalise as y,
|
4076
4111
|
useUpdateContentTypeConfigurationMutation as z
|
4077
4112
|
};
|
4078
|
-
//# sourceMappingURL=index-
|
4113
|
+
//# sourceMappingURL=index-DUZzV11o.mjs.map
|