@strapi/content-manager 0.0.0-experimental.fed75ee8e64c57dbed0b670b25ef026b69baab10 → 0.0.0-next.146a31b564bc8232686331f6b28f7ff966817963
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/CardDragPreview-C0QyJgRA.js.map +1 -1
- package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-DNRPa10q.js → ComponentConfigurationPage-BSEZcJVB.js} +5 -6
- package/dist/_chunks/{ComponentConfigurationPage-DNRPa10q.js.map → ComponentConfigurationPage-BSEZcJVB.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-BVM7LScS.mjs → ComponentConfigurationPage-BiASGi7x.mjs} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-BVM7LScS.mjs.map → ComponentConfigurationPage-BiASGi7x.mjs.map} +1 -1
- package/dist/_chunks/{ComponentIcon-BXdiCGQp.js → ComponentIcon-CRbtQEUV.js} +2 -3
- package/dist/_chunks/{ComponentIcon-BXdiCGQp.js.map → ComponentIcon-CRbtQEUV.js.map} +1 -1
- package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -1
- package/dist/_chunks/{EditConfigurationPage-BrG0mEfF.js → EditConfigurationPage-D2rtvneE.js} +5 -6
- package/dist/_chunks/{EditConfigurationPage-BrG0mEfF.js.map → EditConfigurationPage-D2rtvneE.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-BWq-9Zhk.mjs → EditConfigurationPage-vN4zupij.mjs} +4 -4
- package/dist/_chunks/{EditConfigurationPage-BWq-9Zhk.mjs.map → EditConfigurationPage-vN4zupij.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-BbY0bNNE.js → EditViewPage-BwisF04Q.js} +38 -9
- package/dist/_chunks/EditViewPage-BwisF04Q.js.map +1 -0
- package/dist/_chunks/{EditViewPage-Dx0QnTxn.mjs → EditViewPage-_A31Cl4g.mjs} +38 -8
- package/dist/_chunks/EditViewPage-_A31Cl4g.mjs.map +1 -0
- package/dist/_chunks/{Field-DVZSGAon.mjs → Field-CvIunNOj.mjs} +170 -118
- package/dist/_chunks/Field-CvIunNOj.mjs.map +1 -0
- package/dist/_chunks/{Field-CglKum3X.js → Field-Dsu6-FrM.js} +172 -120
- package/dist/_chunks/Field-Dsu6-FrM.js.map +1 -0
- package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +1 -1
- package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +1 -1
- package/dist/_chunks/{Form-BQwxPqu3.mjs → Form-DK0fG0Gj.mjs} +3 -3
- package/dist/_chunks/{Form-BQwxPqu3.mjs.map → Form-DK0fG0Gj.mjs.map} +1 -1
- package/dist/_chunks/{Form-B7nYNIUm.js → Form-DUwWcCmA.js} +5 -6
- package/dist/_chunks/{Form-B7nYNIUm.js.map → Form-DUwWcCmA.js.map} +1 -1
- package/dist/_chunks/{History-3JN4BIS1.js → History-CeCDhoJG.js} +23 -94
- package/dist/_chunks/History-CeCDhoJG.js.map +1 -0
- package/dist/_chunks/{History-Bmu6tx6s.mjs → History-DP8gmXpm.mjs} +23 -93
- package/dist/_chunks/History-DP8gmXpm.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DwijcJ17.mjs → ListConfigurationPage-BCkO5iuN.mjs} +7 -6
- package/dist/_chunks/ListConfigurationPage-BCkO5iuN.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-BcC28SV0.js → ListConfigurationPage-C-bAd44a.js} +7 -7
- package/dist/_chunks/ListConfigurationPage-C-bAd44a.js.map +1 -0
- package/dist/_chunks/{ListViewPage-ZPNQ6jWC.js → ListViewPage-BKTZFhsM.js} +63 -41
- package/dist/_chunks/ListViewPage-BKTZFhsM.js.map +1 -0
- package/dist/_chunks/{ListViewPage-DzhuS3CW.mjs → ListViewPage-Cf_DgaFV.mjs} +62 -39
- package/dist/_chunks/ListViewPage-Cf_DgaFV.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-DzwJNXvn.js → NoContentTypePage-D3Cm3v3q.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-DzwJNXvn.js.map → NoContentTypePage-D3Cm3v3q.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-BKMgOyd3.mjs → NoContentTypePage-nHIyvJcB.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-BKMgOyd3.mjs.map → NoContentTypePage-nHIyvJcB.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-DBbGJqL9.mjs → NoPermissionsPage-BALVSJ7x.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-DBbGJqL9.mjs.map → NoPermissionsPage-BALVSJ7x.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-GaweP-NG.js → NoPermissionsPage-CChGWBj5.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-GaweP-NG.js.map → NoPermissionsPage-CChGWBj5.js.map} +1 -1
- package/dist/_chunks/Preview-C4NBzKUV.mjs +294 -0
- package/dist/_chunks/Preview-C4NBzKUV.mjs.map +1 -0
- package/dist/_chunks/Preview-CT28Ckpg.js +312 -0
- package/dist/_chunks/Preview-CT28Ckpg.js.map +1 -0
- package/dist/_chunks/{Relations-B7VtRA3g.mjs → Relations-C8uC89cT.mjs} +47 -23
- package/dist/_chunks/Relations-C8uC89cT.mjs.map +1 -0
- package/dist/_chunks/{Relations-BHXq_cKF.js → Relations-CvkPCng_.js} +47 -24
- package/dist/_chunks/Relations-CvkPCng_.js.map +1 -0
- package/dist/_chunks/{en-Bm0D0IWz.js → en-BK8Xyl5I.js} +16 -4
- package/dist/_chunks/{en-Bm0D0IWz.js.map → en-BK8Xyl5I.js.map} +1 -1
- package/dist/_chunks/{en-DKV44jRb.mjs → en-Dtk_ot79.mjs} +16 -4
- package/dist/_chunks/{en-DKV44jRb.mjs.map → en-Dtk_ot79.mjs.map} +1 -1
- package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
- package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
- package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
- package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
- package/dist/_chunks/{fr-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
- package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
- package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
- package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
- package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
- package/dist/_chunks/{index-DcA8_tJw.js → index-CnX_j5h-.js} +362 -213
- package/dist/_chunks/index-CnX_j5h-.js.map +1 -0
- package/dist/_chunks/{index-TaRzG09p.mjs → index-Dh2aGTGJ.mjs} +364 -215
- package/dist/_chunks/index-Dh2aGTGJ.mjs.map +1 -0
- package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
- package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
- package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
- package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
- package/dist/_chunks/{layout-aX-RJhd5.mjs → layout-B5qsPihj.mjs} +4 -4
- package/dist/_chunks/{layout-aX-RJhd5.mjs.map → layout-B5qsPihj.mjs.map} +1 -1
- package/dist/_chunks/{layout-CrgXpOxT.js → layout-B_qdWGny.js} +5 -6
- package/dist/_chunks/{layout-CrgXpOxT.js.map → layout-B_qdWGny.js.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-Z6RA1sBS.js → relations-ChcieiF5.js} +6 -7
- package/dist/_chunks/relations-ChcieiF5.js.map +1 -0
- package/dist/_chunks/{relations-D3Hlx6QX.mjs → relations-DMXpNY-e.mjs} +6 -7
- package/dist/_chunks/relations-DMXpNY-e.mjs.map +1 -0
- package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -1
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -1
- package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
- package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
- package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
- package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +4 -4
- package/dist/admin/src/content-manager.d.ts +3 -2
- package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
- package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
- package/dist/admin/src/preview/index.d.ts +4 -0
- package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
- package/dist/admin/src/preview/routes.d.ts +3 -0
- package/dist/admin/src/preview/services/preview.d.ts +3 -0
- package/dist/admin/src/router.d.ts +1 -1
- package/dist/admin/src/services/documents.d.ts +0 -3
- package/dist/server/index.js +482 -243
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +483 -243
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.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 +16 -1
- package/dist/server/src/controllers/utils/metadata.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 +7 -6
- package/dist/server/src/index.d.ts.map +1 -1
- 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 +16 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts +32 -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 +19 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -0
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.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 +12 -10
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +7 -6
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts +2 -2
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- 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 +13 -11
- package/dist/_chunks/EditViewPage-BbY0bNNE.js.map +0 -1
- package/dist/_chunks/EditViewPage-Dx0QnTxn.mjs.map +0 -1
- package/dist/_chunks/Field-CglKum3X.js.map +0 -1
- package/dist/_chunks/Field-DVZSGAon.mjs.map +0 -1
- package/dist/_chunks/History-3JN4BIS1.js.map +0 -1
- package/dist/_chunks/History-Bmu6tx6s.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-BcC28SV0.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DwijcJ17.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-DzhuS3CW.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-ZPNQ6jWC.js.map +0 -1
- package/dist/_chunks/Relations-B7VtRA3g.mjs.map +0 -1
- package/dist/_chunks/Relations-BHXq_cKF.js.map +0 -1
- package/dist/_chunks/index-DcA8_tJw.js.map +0 -1
- package/dist/_chunks/index-TaRzG09p.mjs.map +0 -1
- package/dist/_chunks/relations-D3Hlx6QX.mjs.map +0 -1
- package/dist/_chunks/relations-Z6RA1sBS.js.map +0 -1
@@ -4,18 +4,18 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
5
5
|
const React = require("react");
|
6
6
|
const designSystem = require("@strapi/design-system");
|
7
|
+
const mapValues = require("lodash/fp/mapValues");
|
7
8
|
const reactIntl = require("react-intl");
|
8
9
|
const reactRouterDom = require("react-router-dom");
|
10
|
+
const styledComponents = require("styled-components");
|
9
11
|
const yup = require("yup");
|
12
|
+
const qs = require("qs");
|
10
13
|
const pipe = require("lodash/fp/pipe");
|
11
14
|
const dateFns = require("date-fns");
|
12
|
-
const styledComponents = require("styled-components");
|
13
|
-
const qs = require("qs");
|
14
15
|
const toolkit = require("@reduxjs/toolkit");
|
15
16
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
16
17
|
function _interopNamespace(e) {
|
17
|
-
if (e && e.__esModule)
|
18
|
-
return e;
|
18
|
+
if (e && e.__esModule) return e;
|
19
19
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
20
20
|
if (e) {
|
21
21
|
for (const k in e) {
|
@@ -32,15 +32,23 @@ function _interopNamespace(e) {
|
|
32
32
|
return Object.freeze(n);
|
33
33
|
}
|
34
34
|
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
35
|
+
const mapValues__default = /* @__PURE__ */ _interopDefault(mapValues);
|
35
36
|
const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
36
37
|
const pipe__default = /* @__PURE__ */ _interopDefault(pipe);
|
37
|
-
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
38
|
+
const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
|
38
39
|
const v = glob[path];
|
39
40
|
if (v) {
|
40
41
|
return typeof v === "function" ? v() : Promise.resolve(v);
|
41
42
|
}
|
42
43
|
return new Promise((_, reject) => {
|
43
|
-
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
44
|
+
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
45
|
+
reject.bind(
|
46
|
+
null,
|
47
|
+
new Error(
|
48
|
+
"Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
|
49
|
+
)
|
50
|
+
)
|
51
|
+
);
|
44
52
|
});
|
45
53
|
};
|
46
54
|
const PLUGIN_ID = "content-manager";
|
@@ -240,7 +248,19 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
240
248
|
{ type: "Document", id: `${model}_LIST` },
|
241
249
|
"Relations",
|
242
250
|
{ type: "UidAvailability", id: model }
|
243
|
-
]
|
251
|
+
],
|
252
|
+
transformResponse: (response, meta, arg) => {
|
253
|
+
if (!("data" in response) && arg.model === "plugin::users-permissions.user") {
|
254
|
+
return {
|
255
|
+
data: response,
|
256
|
+
meta: {
|
257
|
+
availableStatus: [],
|
258
|
+
availableLocales: []
|
259
|
+
}
|
260
|
+
};
|
261
|
+
}
|
262
|
+
return response;
|
263
|
+
}
|
244
264
|
}),
|
245
265
|
deleteDocument: builder.mutation({
|
246
266
|
query: ({ collectionType, model, documentId, params }) => ({
|
@@ -294,7 +314,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
294
314
|
url: `/content-manager/collection-types/${model}`,
|
295
315
|
method: "GET",
|
296
316
|
config: {
|
297
|
-
params
|
317
|
+
params: qs.stringify(params, { encode: true })
|
298
318
|
}
|
299
319
|
}),
|
300
320
|
providesTags: (result, _error, arg) => {
|
@@ -473,8 +493,7 @@ const {
|
|
473
493
|
useUnpublishManyDocumentsMutation
|
474
494
|
} = documentApi;
|
475
495
|
const buildValidParams = (query) => {
|
476
|
-
if (!query)
|
477
|
-
return query;
|
496
|
+
if (!query) return query;
|
478
497
|
const { plugins: _, ...validQueryParams } = {
|
479
498
|
...query,
|
480
499
|
...Object.values(query?.plugins ?? {}).reduce(
|
@@ -482,9 +501,6 @@ const buildValidParams = (query) => {
|
|
482
501
|
{}
|
483
502
|
)
|
484
503
|
};
|
485
|
-
if ("_q" in validQueryParams) {
|
486
|
-
validQueryParams._q = encodeURIComponent(validQueryParams._q);
|
487
|
-
}
|
488
504
|
return validQueryParams;
|
489
505
|
};
|
490
506
|
const isBaseQueryError = (error) => {
|
@@ -989,9 +1005,10 @@ const formatEditLayout = (data, {
|
|
989
1005
|
currentPanelIndex += 2;
|
990
1006
|
} else {
|
991
1007
|
if (!panels[currentPanelIndex]) {
|
992
|
-
panels.push([]);
|
1008
|
+
panels.push([row]);
|
1009
|
+
} else {
|
1010
|
+
panels[currentPanelIndex].push(row);
|
993
1011
|
}
|
994
|
-
panels[currentPanelIndex].push(row);
|
995
1012
|
}
|
996
1013
|
return panels;
|
997
1014
|
}, []);
|
@@ -1249,9 +1266,6 @@ const useContentManagerContext = () => {
|
|
1249
1266
|
};
|
1250
1267
|
};
|
1251
1268
|
const prefixPluginTranslations = (trad, pluginId) => {
|
1252
|
-
if (!pluginId) {
|
1253
|
-
throw new TypeError("pluginId can't be empty");
|
1254
|
-
}
|
1255
1269
|
return Object.keys(trad).reduce((acc, current) => {
|
1256
1270
|
acc[`${pluginId}.${current}`] = trad[current];
|
1257
1271
|
return acc;
|
@@ -1685,10 +1699,10 @@ const useDocumentActions = () => {
|
|
1685
1699
|
update
|
1686
1700
|
};
|
1687
1701
|
};
|
1688
|
-
const ProtectedHistoryPage =
|
1689
|
-
() => Promise.resolve().then(() => require("./History-
|
1702
|
+
const ProtectedHistoryPage = React__namespace.lazy(
|
1703
|
+
() => Promise.resolve().then(() => require("./History-CeCDhoJG.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
|
1690
1704
|
);
|
1691
|
-
const routes$
|
1705
|
+
const routes$2 = [
|
1692
1706
|
{
|
1693
1707
|
path: ":collectionType/:slug/:id/history",
|
1694
1708
|
Component: ProtectedHistoryPage
|
@@ -1698,32 +1712,45 @@ const routes$1 = [
|
|
1698
1712
|
Component: ProtectedHistoryPage
|
1699
1713
|
}
|
1700
1714
|
];
|
1715
|
+
const ProtectedPreviewPage = React__namespace.lazy(
|
1716
|
+
() => Promise.resolve().then(() => require("./Preview-CT28Ckpg.js")).then((mod) => ({ default: mod.ProtectedPreviewPage }))
|
1717
|
+
);
|
1718
|
+
const routes$1 = [
|
1719
|
+
{
|
1720
|
+
path: ":collectionType/:slug/:id/preview",
|
1721
|
+
Component: ProtectedPreviewPage
|
1722
|
+
},
|
1723
|
+
{
|
1724
|
+
path: ":collectionType/:slug/preview",
|
1725
|
+
Component: ProtectedPreviewPage
|
1726
|
+
}
|
1727
|
+
];
|
1701
1728
|
const ProtectedEditViewPage = React.lazy(
|
1702
|
-
() => Promise.resolve().then(() => require("./EditViewPage-
|
1729
|
+
() => Promise.resolve().then(() => require("./EditViewPage-BwisF04Q.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
|
1703
1730
|
);
|
1704
1731
|
const ProtectedListViewPage = React.lazy(
|
1705
|
-
() => Promise.resolve().then(() => require("./ListViewPage-
|
1732
|
+
() => Promise.resolve().then(() => require("./ListViewPage-BKTZFhsM.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
|
1706
1733
|
);
|
1707
1734
|
const ProtectedListConfiguration = React.lazy(
|
1708
|
-
() => Promise.resolve().then(() => require("./ListConfigurationPage-
|
1735
|
+
() => Promise.resolve().then(() => require("./ListConfigurationPage-C-bAd44a.js")).then((mod) => ({
|
1709
1736
|
default: mod.ProtectedListConfiguration
|
1710
1737
|
}))
|
1711
1738
|
);
|
1712
1739
|
const ProtectedEditConfigurationPage = React.lazy(
|
1713
|
-
() => Promise.resolve().then(() => require("./EditConfigurationPage-
|
1740
|
+
() => Promise.resolve().then(() => require("./EditConfigurationPage-D2rtvneE.js")).then((mod) => ({
|
1714
1741
|
default: mod.ProtectedEditConfigurationPage
|
1715
1742
|
}))
|
1716
1743
|
);
|
1717
1744
|
const ProtectedComponentConfigurationPage = React.lazy(
|
1718
|
-
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-
|
1745
|
+
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-BSEZcJVB.js")).then((mod) => ({
|
1719
1746
|
default: mod.ProtectedComponentConfigurationPage
|
1720
1747
|
}))
|
1721
1748
|
);
|
1722
1749
|
const NoPermissions = React.lazy(
|
1723
|
-
() => Promise.resolve().then(() => require("./NoPermissionsPage-
|
1750
|
+
() => Promise.resolve().then(() => require("./NoPermissionsPage-CChGWBj5.js")).then((mod) => ({ default: mod.NoPermissions }))
|
1724
1751
|
);
|
1725
1752
|
const NoContentType = React.lazy(
|
1726
|
-
() => Promise.resolve().then(() => require("./NoContentTypePage-
|
1753
|
+
() => Promise.resolve().then(() => require("./NoContentTypePage-D3Cm3v3q.js")).then((mod) => ({ default: mod.NoContentType }))
|
1727
1754
|
);
|
1728
1755
|
const CollectionTypePages = () => {
|
1729
1756
|
const { collectionType } = reactRouterDom.useParams();
|
@@ -1735,7 +1762,7 @@ const CollectionTypePages = () => {
|
|
1735
1762
|
const CLONE_RELATIVE_PATH = ":collectionType/:slug/clone/:origin";
|
1736
1763
|
const CLONE_PATH = `/content-manager/${CLONE_RELATIVE_PATH}`;
|
1737
1764
|
const LIST_RELATIVE_PATH = ":collectionType/:slug";
|
1738
|
-
const LIST_PATH = `/content-manager
|
1765
|
+
const LIST_PATH = `/content-manager/collection-types/:slug`;
|
1739
1766
|
const routes = [
|
1740
1767
|
{
|
1741
1768
|
path: LIST_RELATIVE_PATH,
|
@@ -1769,6 +1796,7 @@ const routes = [
|
|
1769
1796
|
path: "no-content-types",
|
1770
1797
|
Component: NoContentType
|
1771
1798
|
},
|
1799
|
+
...routes$2,
|
1772
1800
|
...routes$1
|
1773
1801
|
];
|
1774
1802
|
const DocumentActions = ({ actions: actions2 }) => {
|
@@ -1867,6 +1895,11 @@ const DocumentActionButton = (action) => {
|
|
1867
1895
|
) : null
|
1868
1896
|
] });
|
1869
1897
|
};
|
1898
|
+
const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
|
1899
|
+
&:hover {
|
1900
|
+
background: ${({ theme, isVariantDanger, isDisabled }) => isVariantDanger && !isDisabled ? theme.colors.danger100 : "neutral"};
|
1901
|
+
}
|
1902
|
+
`;
|
1870
1903
|
const DocumentActionsMenu = ({
|
1871
1904
|
actions: actions2,
|
1872
1905
|
children,
|
@@ -1925,48 +1958,32 @@ const DocumentActionsMenu = ({
|
|
1925
1958
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Content, { maxHeight: void 0, popoverPlacement: "bottom-end", children: [
|
1926
1959
|
actions2.map((action) => {
|
1927
1960
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
1928
|
-
|
1961
|
+
MenuItem,
|
1929
1962
|
{
|
1930
1963
|
disabled: action.disabled,
|
1931
1964
|
onSelect: handleClick(action),
|
1932
1965
|
display: "block",
|
1933
|
-
|
1934
|
-
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
designSystem.Flex,
|
1955
|
-
{
|
1956
|
-
alignItems: "center",
|
1957
|
-
background: "alternative100",
|
1958
|
-
borderStyle: "solid",
|
1959
|
-
borderColor: "alternative200",
|
1960
|
-
borderWidth: "1px",
|
1961
|
-
height: 5,
|
1962
|
-
paddingLeft: 2,
|
1963
|
-
paddingRight: 2,
|
1964
|
-
hasRadius: true,
|
1965
|
-
color: "alternative600",
|
1966
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", fontWeight: "bold", lineHeight: 1, children: formatMessage({ id: "global.new", defaultMessage: "New" }) })
|
1967
|
-
}
|
1968
|
-
)
|
1969
|
-
] })
|
1966
|
+
isVariantDanger: action.variant === "danger",
|
1967
|
+
isDisabled: action.disabled,
|
1968
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
1969
|
+
designSystem.Flex,
|
1970
|
+
{
|
1971
|
+
color: !action.disabled ? convertActionVariantToColor(action.variant) : "inherit",
|
1972
|
+
gap: 2,
|
1973
|
+
tag: "span",
|
1974
|
+
children: [
|
1975
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
1976
|
+
designSystem.Flex,
|
1977
|
+
{
|
1978
|
+
tag: "span",
|
1979
|
+
color: !action.disabled ? convertActionVariantToIconColor(action.variant) : "inherit",
|
1980
|
+
children: action.icon
|
1981
|
+
}
|
1982
|
+
),
|
1983
|
+
action.label
|
1984
|
+
]
|
1985
|
+
}
|
1986
|
+
) })
|
1970
1987
|
},
|
1971
1988
|
action.id
|
1972
1989
|
);
|
@@ -2077,6 +2094,18 @@ const DocumentActionModal = ({
|
|
2077
2094
|
typeof Footer === "function" ? /* @__PURE__ */ jsxRuntime.jsx(Footer, { onClose: handleClose }) : Footer
|
2078
2095
|
] }) });
|
2079
2096
|
};
|
2097
|
+
const transformData = (data) => {
|
2098
|
+
if (Array.isArray(data)) {
|
2099
|
+
return data.map(transformData);
|
2100
|
+
}
|
2101
|
+
if (typeof data === "object" && data !== null) {
|
2102
|
+
if ("apiData" in data) {
|
2103
|
+
return data.apiData;
|
2104
|
+
}
|
2105
|
+
return mapValues__default.default(transformData)(data);
|
2106
|
+
}
|
2107
|
+
return data;
|
2108
|
+
};
|
2080
2109
|
const PublishAction$1 = ({
|
2081
2110
|
activeTab,
|
2082
2111
|
documentId,
|
@@ -2091,6 +2120,7 @@ const PublishAction$1 = ({
|
|
2091
2120
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
2092
2121
|
const isListView = reactRouterDom.useMatch(LIST_PATH) !== null;
|
2093
2122
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2123
|
+
const { id } = reactRouterDom.useParams();
|
2094
2124
|
const { formatMessage } = reactIntl.useIntl();
|
2095
2125
|
const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
|
2096
2126
|
const { publish } = useDocumentActions();
|
@@ -2190,13 +2220,15 @@ const PublishAction$1 = ({
|
|
2190
2220
|
documentId,
|
2191
2221
|
params
|
2192
2222
|
},
|
2193
|
-
|
2223
|
+
transformData(formValues)
|
2194
2224
|
);
|
2195
2225
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2196
|
-
|
2197
|
-
|
2198
|
-
|
2199
|
-
|
2226
|
+
if (id === "create") {
|
2227
|
+
navigate({
|
2228
|
+
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
2229
|
+
search: rawQuery
|
2230
|
+
});
|
2231
|
+
}
|
2200
2232
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2201
2233
|
setErrors(formatValidationErrors(res.error));
|
2202
2234
|
}
|
@@ -2249,36 +2281,7 @@ const PublishAction$1 = ({
|
|
2249
2281
|
};
|
2250
2282
|
};
|
2251
2283
|
PublishAction$1.type = "publish";
|
2252
|
-
|
2253
|
-
return Object.keys(document).reduce((acc, key) => {
|
2254
|
-
if (document[key] !== void 0) {
|
2255
|
-
acc[key] = document[key];
|
2256
|
-
}
|
2257
|
-
if (typeof document[key] === "object" && document[key] !== null) {
|
2258
|
-
if ("connect" in document[key] && document[key].connect !== null) {
|
2259
|
-
acc[key] = {
|
2260
|
-
...acc[key],
|
2261
|
-
connect: document[key].connect.map((item) => {
|
2262
|
-
return {
|
2263
|
-
documentId: item.documentId
|
2264
|
-
};
|
2265
|
-
})
|
2266
|
-
};
|
2267
|
-
}
|
2268
|
-
if ("disconnect" in document[key] && document[key].disconnect !== null) {
|
2269
|
-
acc[key] = {
|
2270
|
-
...acc[key],
|
2271
|
-
disconnect: document[key].disconnect.map((item) => {
|
2272
|
-
return {
|
2273
|
-
documentId: item.documentId
|
2274
|
-
};
|
2275
|
-
})
|
2276
|
-
};
|
2277
|
-
}
|
2278
|
-
}
|
2279
|
-
return acc;
|
2280
|
-
}, {});
|
2281
|
-
};
|
2284
|
+
PublishAction$1.position = "panel";
|
2282
2285
|
const UpdateAction = ({
|
2283
2286
|
activeTab,
|
2284
2287
|
documentId,
|
@@ -2301,96 +2304,134 @@ const UpdateAction = ({
|
|
2301
2304
|
const validate = strapiAdmin.useForm("UpdateAction", (state) => state.validate);
|
2302
2305
|
const setErrors = strapiAdmin.useForm("UpdateAction", (state) => state.setErrors);
|
2303
2306
|
const resetForm = strapiAdmin.useForm("PublishAction", ({ resetForm: resetForm2 }) => resetForm2);
|
2304
|
-
|
2305
|
-
|
2306
|
-
|
2307
|
-
|
2308
|
-
|
2309
|
-
|
2310
|
-
|
2311
|
-
|
2312
|
-
|
2313
|
-
|
2314
|
-
|
2315
|
-
|
2316
|
-
|
2317
|
-
|
2318
|
-
|
2319
|
-
|
2320
|
-
status: "draft"
|
2307
|
+
const handleUpdate = React__namespace.useCallback(async () => {
|
2308
|
+
setSubmitting(true);
|
2309
|
+
try {
|
2310
|
+
if (!modified) {
|
2311
|
+
return;
|
2312
|
+
}
|
2313
|
+
const { errors } = await validate(true, {
|
2314
|
+
status: "draft"
|
2315
|
+
});
|
2316
|
+
if (errors) {
|
2317
|
+
toggleNotification({
|
2318
|
+
type: "danger",
|
2319
|
+
message: formatMessage({
|
2320
|
+
id: "content-manager.validation.error",
|
2321
|
+
defaultMessage: "There are validation errors in your document. Please fix them before saving."
|
2322
|
+
})
|
2321
2323
|
});
|
2322
|
-
|
2323
|
-
|
2324
|
-
|
2325
|
-
|
2326
|
-
|
2327
|
-
|
2328
|
-
|
2329
|
-
|
2330
|
-
|
2331
|
-
|
2332
|
-
|
2333
|
-
|
2334
|
-
|
2335
|
-
model,
|
2336
|
-
documentId: cloneMatch.params.origin,
|
2337
|
-
params
|
2338
|
-
},
|
2339
|
-
formDocumentToData(document)
|
2340
|
-
);
|
2341
|
-
if ("data" in res) {
|
2342
|
-
navigate(
|
2343
|
-
{
|
2344
|
-
pathname: `../${res.data.documentId}`,
|
2345
|
-
search: rawQuery
|
2346
|
-
},
|
2347
|
-
{ relative: "path" }
|
2348
|
-
);
|
2349
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2350
|
-
setErrors(formatValidationErrors(res.error));
|
2351
|
-
}
|
2352
|
-
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2353
|
-
const res = await update(
|
2324
|
+
return;
|
2325
|
+
}
|
2326
|
+
if (isCloning) {
|
2327
|
+
const res = await clone(
|
2328
|
+
{
|
2329
|
+
model,
|
2330
|
+
documentId: cloneMatch.params.origin,
|
2331
|
+
params
|
2332
|
+
},
|
2333
|
+
transformData(document)
|
2334
|
+
);
|
2335
|
+
if ("data" in res) {
|
2336
|
+
navigate(
|
2354
2337
|
{
|
2355
|
-
|
2356
|
-
|
2357
|
-
documentId,
|
2358
|
-
params
|
2338
|
+
pathname: `../${res.data.documentId}`,
|
2339
|
+
search: rawQuery
|
2359
2340
|
},
|
2360
|
-
|
2341
|
+
{ relative: "path" }
|
2361
2342
|
);
|
2362
|
-
|
2363
|
-
|
2364
|
-
|
2365
|
-
|
2366
|
-
|
2343
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2344
|
+
setErrors(formatValidationErrors(res.error));
|
2345
|
+
}
|
2346
|
+
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2347
|
+
const res = await update(
|
2348
|
+
{
|
2349
|
+
collectionType,
|
2350
|
+
model,
|
2351
|
+
documentId,
|
2352
|
+
params
|
2353
|
+
},
|
2354
|
+
transformData(document)
|
2355
|
+
);
|
2356
|
+
if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2357
|
+
setErrors(formatValidationErrors(res.error));
|
2367
2358
|
} else {
|
2368
|
-
|
2359
|
+
resetForm();
|
2360
|
+
}
|
2361
|
+
} else {
|
2362
|
+
const res = await create(
|
2363
|
+
{
|
2364
|
+
model,
|
2365
|
+
params
|
2366
|
+
},
|
2367
|
+
transformData(document)
|
2368
|
+
);
|
2369
|
+
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2370
|
+
navigate(
|
2369
2371
|
{
|
2370
|
-
|
2371
|
-
|
2372
|
+
pathname: `../${res.data.documentId}`,
|
2373
|
+
search: rawQuery
|
2372
2374
|
},
|
2373
|
-
|
2375
|
+
{ replace: true, relative: "path" }
|
2374
2376
|
);
|
2375
|
-
|
2376
|
-
|
2377
|
-
{
|
2378
|
-
pathname: `../${res.data.documentId}`,
|
2379
|
-
search: rawQuery
|
2380
|
-
},
|
2381
|
-
{ replace: true, relative: "path" }
|
2382
|
-
);
|
2383
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2384
|
-
setErrors(formatValidationErrors(res.error));
|
2385
|
-
}
|
2377
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2378
|
+
setErrors(formatValidationErrors(res.error));
|
2386
2379
|
}
|
2387
|
-
} finally {
|
2388
|
-
setSubmitting(false);
|
2389
2380
|
}
|
2381
|
+
} finally {
|
2382
|
+
setSubmitting(false);
|
2390
2383
|
}
|
2384
|
+
}, [
|
2385
|
+
clone,
|
2386
|
+
cloneMatch?.params.origin,
|
2387
|
+
collectionType,
|
2388
|
+
create,
|
2389
|
+
document,
|
2390
|
+
documentId,
|
2391
|
+
formatMessage,
|
2392
|
+
formatValidationErrors,
|
2393
|
+
isCloning,
|
2394
|
+
model,
|
2395
|
+
modified,
|
2396
|
+
navigate,
|
2397
|
+
params,
|
2398
|
+
rawQuery,
|
2399
|
+
resetForm,
|
2400
|
+
setErrors,
|
2401
|
+
setSubmitting,
|
2402
|
+
toggleNotification,
|
2403
|
+
update,
|
2404
|
+
validate
|
2405
|
+
]);
|
2406
|
+
React__namespace.useEffect(() => {
|
2407
|
+
const handleKeyDown = (e) => {
|
2408
|
+
if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
|
2409
|
+
e.preventDefault();
|
2410
|
+
handleUpdate();
|
2411
|
+
}
|
2412
|
+
};
|
2413
|
+
window.addEventListener("keydown", handleKeyDown);
|
2414
|
+
return () => {
|
2415
|
+
window.removeEventListener("keydown", handleKeyDown);
|
2416
|
+
};
|
2417
|
+
}, [handleUpdate]);
|
2418
|
+
return {
|
2419
|
+
/**
|
2420
|
+
* Disabled when:
|
2421
|
+
* - the form is submitting
|
2422
|
+
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
2423
|
+
* - the active tab is the published tab
|
2424
|
+
*/
|
2425
|
+
disabled: isSubmitting || !modified && !isCloning || activeTab === "published",
|
2426
|
+
label: formatMessage({
|
2427
|
+
id: "global.save",
|
2428
|
+
defaultMessage: "Save"
|
2429
|
+
}),
|
2430
|
+
onClick: handleUpdate
|
2391
2431
|
};
|
2392
2432
|
};
|
2393
2433
|
UpdateAction.type = "update";
|
2434
|
+
UpdateAction.position = "panel";
|
2394
2435
|
const UNPUBLISH_DRAFT_OPTIONS = {
|
2395
2436
|
KEEP: "keep",
|
2396
2437
|
DISCARD: "discard"
|
@@ -2513,6 +2554,7 @@ const UnpublishAction$1 = ({
|
|
2513
2554
|
};
|
2514
2555
|
};
|
2515
2556
|
UnpublishAction$1.type = "unpublish";
|
2557
|
+
UnpublishAction$1.position = "panel";
|
2516
2558
|
const DiscardAction = ({
|
2517
2559
|
activeTab,
|
2518
2560
|
documentId,
|
@@ -2563,6 +2605,7 @@ const DiscardAction = ({
|
|
2563
2605
|
};
|
2564
2606
|
};
|
2565
2607
|
DiscardAction.type = "discard";
|
2608
|
+
DiscardAction.position = "panel";
|
2566
2609
|
const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
|
2567
2610
|
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
2568
2611
|
const RelativeTime = React__namespace.forwardRef(
|
@@ -2575,7 +2618,7 @@ const RelativeTime = React__namespace.forwardRef(
|
|
2575
2618
|
});
|
2576
2619
|
const unit = intervals.find((intervalUnit) => {
|
2577
2620
|
return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);
|
2578
|
-
});
|
2621
|
+
}) ?? "seconds";
|
2579
2622
|
const relativeTime = dateFns.isPast(timestamp) ? -interval[unit] : interval[unit];
|
2580
2623
|
const customInterval = customIntervals.find(
|
2581
2624
|
(custom) => interval[custom.unit] < custom.threshold
|
@@ -2609,19 +2652,29 @@ const getDisplayName = ({
|
|
2609
2652
|
return email ?? "";
|
2610
2653
|
};
|
2611
2654
|
const capitalise = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
2612
|
-
const DocumentStatus = ({ status = "draft", ...restProps }) => {
|
2655
|
+
const DocumentStatus = ({ status = "draft", size = "S", ...restProps }) => {
|
2613
2656
|
const statusVariant = status === "draft" ? "secondary" : status === "published" ? "success" : "alternative";
|
2614
|
-
|
2657
|
+
const { formatMessage } = reactIntl.useIntl();
|
2658
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps, size, variant: statusVariant, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: formatMessage({
|
2659
|
+
id: `content-manager.containers.List.${status}`,
|
2660
|
+
defaultMessage: capitalise(status)
|
2661
|
+
}) }) });
|
2615
2662
|
};
|
2616
2663
|
const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
|
2617
2664
|
const { formatMessage } = reactIntl.useIntl();
|
2618
2665
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2666
|
+
const params = reactRouterDom.useParams();
|
2619
2667
|
const title = isCreating ? formatMessage({
|
2620
2668
|
id: "content-manager.containers.edit.title.new",
|
2621
2669
|
defaultMessage: "Create an entry"
|
2622
2670
|
}) : documentTitle;
|
2623
2671
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "flex-start", paddingTop: 6, paddingBottom: 4, gap: 2, children: [
|
2624
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
2672
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
2673
|
+
strapiAdmin.BackButton,
|
2674
|
+
{
|
2675
|
+
fallback: params.collectionType === SINGLE_TYPES ? void 0 : `../${COLLECTION_TYPES}/${params.slug}`
|
2676
|
+
}
|
2677
|
+
),
|
2625
2678
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { width: "100%", justifyContent: "space-between", gap: "80px", alignItems: "flex-start", children: [
|
2626
2679
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: title }),
|
2627
2680
|
/* @__PURE__ */ jsxRuntime.jsx(HeaderToolbar, {})
|
@@ -2672,7 +2725,7 @@ const HeaderToolbar = () => {
|
|
2672
2725
|
meta: isCloning ? void 0 : meta,
|
2673
2726
|
collectionType
|
2674
2727
|
},
|
2675
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
2728
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("header"),
|
2676
2729
|
children: (actions2) => {
|
2677
2730
|
const headerActions = actions2.filter((action) => {
|
2678
2731
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -2880,6 +2933,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
|
|
2880
2933
|
};
|
2881
2934
|
};
|
2882
2935
|
ConfigureTheViewAction.type = "configure-the-view";
|
2936
|
+
ConfigureTheViewAction.position = "header";
|
2883
2937
|
const EditTheModelAction = ({ model }) => {
|
2884
2938
|
const navigate = reactRouterDom.useNavigate();
|
2885
2939
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2896,6 +2950,7 @@ const EditTheModelAction = ({ model }) => {
|
|
2896
2950
|
};
|
2897
2951
|
};
|
2898
2952
|
EditTheModelAction.type = "edit-the-model";
|
2953
|
+
EditTheModelAction.position = "header";
|
2899
2954
|
const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
2900
2955
|
const navigate = reactRouterDom.useNavigate();
|
2901
2956
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2969,6 +3024,7 @@ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
|
2969
3024
|
};
|
2970
3025
|
};
|
2971
3026
|
DeleteAction$1.type = "delete";
|
3027
|
+
DeleteAction$1.position = ["header", "table-row"];
|
2972
3028
|
const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
|
2973
3029
|
const Panels = () => {
|
2974
3030
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
@@ -3031,7 +3087,7 @@ const ActionsPanelContent = () => {
|
|
3031
3087
|
strapiAdmin.DescriptionComponentRenderer,
|
3032
3088
|
{
|
3033
3089
|
props,
|
3034
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
3090
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("panel"),
|
3035
3091
|
children: (actions2) => /* @__PURE__ */ jsxRuntime.jsx(DocumentActions, { actions: actions2 })
|
3036
3092
|
}
|
3037
3093
|
),
|
@@ -3058,7 +3114,7 @@ const Panel = React__namespace.forwardRef(({ children, title }, ref) => {
|
|
3058
3114
|
justifyContent: "stretch",
|
3059
3115
|
alignItems: "flex-start",
|
3060
3116
|
children: [
|
3061
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", children: title }),
|
3117
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", textColor: "neutral600", children: title }),
|
3062
3118
|
children
|
3063
3119
|
]
|
3064
3120
|
}
|
@@ -3308,18 +3364,10 @@ const SelectedEntriesTableContent = ({
|
|
3308
3364
|
search: row.locale && `?plugins[i18n][locale]=${row.locale}`
|
3309
3365
|
},
|
3310
3366
|
state: { from: pathname },
|
3311
|
-
label: formatMessage(
|
3312
|
-
|
3313
|
-
|
3314
|
-
|
3315
|
-
{
|
3316
|
-
id: "content-manager.components.ListViewHelperPluginTable.row-line",
|
3317
|
-
defaultMessage: "item line {number}"
|
3318
|
-
},
|
3319
|
-
{ number: index2 + 1 }
|
3320
|
-
)
|
3321
|
-
}
|
3322
|
-
),
|
3367
|
+
label: formatMessage({
|
3368
|
+
id: "content-manager.bulk-publish.edit",
|
3369
|
+
defaultMessage: "Edit"
|
3370
|
+
}),
|
3323
3371
|
target: "_blank",
|
3324
3372
|
marginLeft: "auto",
|
3325
3373
|
variant: "ghost",
|
@@ -3493,8 +3541,7 @@ const PublishAction = ({ documents, model }) => {
|
|
3493
3541
|
const refetchList = () => {
|
3494
3542
|
contentManagerApi.util.invalidateTags([{ type: "Document", id: `${model}_LIST` }]);
|
3495
3543
|
};
|
3496
|
-
if (!showPublishButton)
|
3497
|
-
return null;
|
3544
|
+
if (!showPublishButton) return null;
|
3498
3545
|
return {
|
3499
3546
|
actionType: "publish",
|
3500
3547
|
variant: "tertiary",
|
@@ -3562,8 +3609,7 @@ const DeleteAction = ({ documents, model }) => {
|
|
3562
3609
|
selectRow([]);
|
3563
3610
|
}
|
3564
3611
|
};
|
3565
|
-
if (!hasDeletePermission)
|
3566
|
-
return null;
|
3612
|
+
if (!hasDeletePermission) return null;
|
3567
3613
|
return {
|
3568
3614
|
variant: "danger-light",
|
3569
3615
|
label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
|
@@ -3612,8 +3658,7 @@ const UnpublishAction = ({ documents, model }) => {
|
|
3612
3658
|
}
|
3613
3659
|
};
|
3614
3660
|
const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published" || entry.status === "modified");
|
3615
|
-
if (!showUnpublishButton)
|
3616
|
-
return null;
|
3661
|
+
if (!showUnpublishButton) return null;
|
3617
3662
|
return {
|
3618
3663
|
variant: "tertiary",
|
3619
3664
|
label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
|
@@ -3718,7 +3763,7 @@ const TableActions = ({ document }) => {
|
|
3718
3763
|
strapiAdmin.DescriptionComponentRenderer,
|
3719
3764
|
{
|
3720
3765
|
props,
|
3721
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions().filter((action) => action.name !== "PublishAction"),
|
3766
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("table-row").filter((action) => action.name !== "PublishAction"),
|
3722
3767
|
children: (actions2) => {
|
3723
3768
|
const tableRowActions = actions2.filter((action) => {
|
3724
3769
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -3777,6 +3822,7 @@ const EditAction = ({ documentId }) => {
|
|
3777
3822
|
};
|
3778
3823
|
};
|
3779
3824
|
EditAction.type = "edit";
|
3825
|
+
EditAction.position = "table-row";
|
3780
3826
|
const StyledPencil = styledComponents.styled(Icons.Pencil)`
|
3781
3827
|
path {
|
3782
3828
|
fill: currentColor;
|
@@ -3853,6 +3899,7 @@ const CloneAction = ({ model, documentId }) => {
|
|
3853
3899
|
};
|
3854
3900
|
};
|
3855
3901
|
CloneAction.type = "clone";
|
3902
|
+
CloneAction.position = "table-row";
|
3856
3903
|
const StyledDuplicate = styledComponents.styled(Icons.Duplicate)`
|
3857
3904
|
path {
|
3858
3905
|
fill: currentColor;
|
@@ -3939,7 +3986,14 @@ class ContentManagerPlugin {
|
|
3939
3986
|
addDocumentHeaderAction: this.addDocumentHeaderAction.bind(this),
|
3940
3987
|
addEditViewSidePanel: this.addEditViewSidePanel.bind(this),
|
3941
3988
|
getBulkActions: () => this.bulkActions,
|
3942
|
-
getDocumentActions: () =>
|
3989
|
+
getDocumentActions: (position) => {
|
3990
|
+
if (position) {
|
3991
|
+
return this.documentActions.filter(
|
3992
|
+
(action) => action.position == void 0 || [action.position].flat().includes(position)
|
3993
|
+
);
|
3994
|
+
}
|
3995
|
+
return this.documentActions;
|
3996
|
+
},
|
3943
3997
|
getEditViewSidePanels: () => this.editViewSidePanels,
|
3944
3998
|
getHeaderActions: () => this.headerActions
|
3945
3999
|
}
|
@@ -3949,10 +4003,8 @@ class ContentManagerPlugin {
|
|
3949
4003
|
const getPrintableType = (value) => {
|
3950
4004
|
const nativeType = typeof value;
|
3951
4005
|
if (nativeType === "object") {
|
3952
|
-
if (value === null)
|
3953
|
-
|
3954
|
-
if (Array.isArray(value))
|
3955
|
-
return "array";
|
4006
|
+
if (value === null) return "null";
|
4007
|
+
if (Array.isArray(value)) return "array";
|
3956
4008
|
if (value instanceof Object && value.constructor.name !== "Object") {
|
3957
4009
|
return value.constructor.name;
|
3958
4010
|
}
|
@@ -3963,17 +4015,27 @@ const HistoryAction = ({ model, document }) => {
|
|
3963
4015
|
const { formatMessage } = reactIntl.useIntl();
|
3964
4016
|
const [{ query }] = strapiAdmin.useQueryParams();
|
3965
4017
|
const navigate = reactRouterDom.useNavigate();
|
4018
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
4019
|
+
const { pathname } = reactRouterDom.useLocation();
|
3966
4020
|
const pluginsQueryParams = qs.stringify({ plugins: query.plugins }, { encode: false });
|
3967
4021
|
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
3968
4022
|
return null;
|
3969
4023
|
}
|
4024
|
+
const handleOnClick = () => {
|
4025
|
+
const destination = { pathname: "history", search: pluginsQueryParams };
|
4026
|
+
trackUsage("willNavigate", {
|
4027
|
+
from: pathname,
|
4028
|
+
to: `${pathname}/${destination.pathname}`
|
4029
|
+
});
|
4030
|
+
navigate(destination);
|
4031
|
+
};
|
3970
4032
|
return {
|
3971
4033
|
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ClockCounterClockwise, {}),
|
3972
4034
|
label: formatMessage({
|
3973
4035
|
id: "content-manager.history.document-action",
|
3974
4036
|
defaultMessage: "Content History"
|
3975
4037
|
}),
|
3976
|
-
onClick:
|
4038
|
+
onClick: handleOnClick,
|
3977
4039
|
disabled: (
|
3978
4040
|
/**
|
3979
4041
|
* The user is creating a new document.
|
@@ -3995,6 +4057,7 @@ const HistoryAction = ({ model, document }) => {
|
|
3995
4057
|
};
|
3996
4058
|
};
|
3997
4059
|
HistoryAction.type = "history";
|
4060
|
+
HistoryAction.position = "header";
|
3998
4061
|
const historyAdmin = {
|
3999
4062
|
bootstrap(app) {
|
4000
4063
|
const { addDocumentAction } = app.getPlugin("content-manager").apis;
|
@@ -4041,6 +4104,88 @@ const { setInitialData } = actions;
|
|
4041
4104
|
const reducer = toolkit.combineReducers({
|
4042
4105
|
app: reducer$1
|
4043
4106
|
});
|
4107
|
+
const previewApi = contentManagerApi.injectEndpoints({
|
4108
|
+
endpoints: (builder) => ({
|
4109
|
+
getPreviewUrl: builder.query({
|
4110
|
+
query({ query, params }) {
|
4111
|
+
return {
|
4112
|
+
url: `/content-manager/preview/url/${params.contentType}`,
|
4113
|
+
method: "GET",
|
4114
|
+
config: {
|
4115
|
+
params: query
|
4116
|
+
}
|
4117
|
+
};
|
4118
|
+
}
|
4119
|
+
})
|
4120
|
+
})
|
4121
|
+
});
|
4122
|
+
const { useGetPreviewUrlQuery } = previewApi;
|
4123
|
+
const ConditionalTooltip = ({ isShown, label, children }) => {
|
4124
|
+
if (isShown) {
|
4125
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { label, children });
|
4126
|
+
}
|
4127
|
+
return children;
|
4128
|
+
};
|
4129
|
+
const PreviewSidePanel = ({ model, documentId, document }) => {
|
4130
|
+
const { formatMessage } = reactIntl.useIntl();
|
4131
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
4132
|
+
const { pathname } = reactRouterDom.useLocation();
|
4133
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
4134
|
+
const isModified = strapiAdmin.useForm("PreviewSidePanel", (state) => state.modified);
|
4135
|
+
const { data, error } = useGetPreviewUrlQuery({
|
4136
|
+
params: {
|
4137
|
+
contentType: model
|
4138
|
+
},
|
4139
|
+
query: {
|
4140
|
+
documentId,
|
4141
|
+
locale: document?.locale,
|
4142
|
+
status: document?.status
|
4143
|
+
}
|
4144
|
+
});
|
4145
|
+
if (!data?.data?.url || error) {
|
4146
|
+
return null;
|
4147
|
+
}
|
4148
|
+
const trackNavigation = () => {
|
4149
|
+
const destinationPathname = pathname.replace(/\/$/, "") + "/preview";
|
4150
|
+
trackUsage("willNavigate", { from: pathname, to: destinationPathname });
|
4151
|
+
};
|
4152
|
+
return {
|
4153
|
+
title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
|
4154
|
+
content: /* @__PURE__ */ jsxRuntime.jsx(
|
4155
|
+
ConditionalTooltip,
|
4156
|
+
{
|
4157
|
+
label: formatMessage({
|
4158
|
+
id: "content-manager.preview.panel.button-disabled-tooltip",
|
4159
|
+
defaultMessage: "Please save to open the preview"
|
4160
|
+
}),
|
4161
|
+
isShown: isModified,
|
4162
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { cursor: "not-allowed", width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
|
4163
|
+
designSystem.Button,
|
4164
|
+
{
|
4165
|
+
variant: "tertiary",
|
4166
|
+
tag: reactRouterDom.Link,
|
4167
|
+
to: { pathname: "preview", search: qs.stringify(query, { encode: false }) },
|
4168
|
+
onClick: trackNavigation,
|
4169
|
+
width: "100%",
|
4170
|
+
disabled: isModified,
|
4171
|
+
pointerEvents: isModified ? "none" : void 0,
|
4172
|
+
tabIndex: isModified ? -1 : void 0,
|
4173
|
+
children: formatMessage({
|
4174
|
+
id: "content-manager.preview.panel.button",
|
4175
|
+
defaultMessage: "Open preview"
|
4176
|
+
})
|
4177
|
+
}
|
4178
|
+
) })
|
4179
|
+
}
|
4180
|
+
)
|
4181
|
+
};
|
4182
|
+
};
|
4183
|
+
const previewAdmin = {
|
4184
|
+
bootstrap(app) {
|
4185
|
+
const contentManagerPluginApis = app.getPlugin("content-manager").apis;
|
4186
|
+
contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
|
4187
|
+
}
|
4188
|
+
};
|
4044
4189
|
const index = {
|
4045
4190
|
register(app) {
|
4046
4191
|
const cm = new ContentManagerPlugin();
|
@@ -4060,7 +4205,7 @@ const index = {
|
|
4060
4205
|
app.router.addRoute({
|
4061
4206
|
path: "content-manager/*",
|
4062
4207
|
lazy: async () => {
|
4063
|
-
const { Layout } = await Promise.resolve().then(() => require("./layout-
|
4208
|
+
const { Layout } = await Promise.resolve().then(() => require("./layout-B_qdWGny.js"));
|
4064
4209
|
return {
|
4065
4210
|
Component: Layout
|
4066
4211
|
};
|
@@ -4073,11 +4218,14 @@ const index = {
|
|
4073
4218
|
if (typeof historyAdmin.bootstrap === "function") {
|
4074
4219
|
historyAdmin.bootstrap(app);
|
4075
4220
|
}
|
4221
|
+
if (typeof previewAdmin.bootstrap === "function") {
|
4222
|
+
previewAdmin.bootstrap(app);
|
4223
|
+
}
|
4076
4224
|
},
|
4077
4225
|
async registerTrads({ locales }) {
|
4078
4226
|
const importedTrads = await Promise.all(
|
4079
4227
|
locales.map((locale) => {
|
4080
|
-
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-
|
4228
|
+
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-BK8Xyl5I.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-9K52xZIr.js")), "./translations/eu.json": () => Promise.resolve().then(() => require("./eu-VDH-3ovk.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-B2Kyv8Z9.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-7sfIbjxE.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`, 3).then(({ default: data }) => {
|
4081
4229
|
return {
|
4082
4230
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
4083
4231
|
locale
|
@@ -4135,5 +4283,6 @@ exports.useGetAllContentTypeSettingsQuery = useGetAllContentTypeSettingsQuery;
|
|
4135
4283
|
exports.useGetAllDocumentsQuery = useGetAllDocumentsQuery;
|
4136
4284
|
exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuery;
|
4137
4285
|
exports.useGetInitialDataQuery = useGetInitialDataQuery;
|
4286
|
+
exports.useGetPreviewUrlQuery = useGetPreviewUrlQuery;
|
4138
4287
|
exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
|
4139
|
-
//# sourceMappingURL=index-
|
4288
|
+
//# sourceMappingURL=index-CnX_j5h-.js.map
|