@strapi/content-manager 0.0.0-experimental.fdacf4285d1cada9d94ab4dcd756c5362cba1b54 → 0.0.0-next.03640aa70ec25f95e1f09348e1baadbf150bf0c5
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-CI7K072v.js → ComponentConfigurationPage-4TPewfw0.js} +5 -6
- package/dist/_chunks/{ComponentConfigurationPage-CI7K072v.js.map → ComponentConfigurationPage-4TPewfw0.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-CVfoYQ9p.mjs → ComponentConfigurationPage-Cw9zmV1T.mjs} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-CVfoYQ9p.mjs.map → ComponentConfigurationPage-Cw9zmV1T.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-Cg1Esg_N.mjs → EditConfigurationPage-B98IU2Ul.mjs} +4 -4
- package/dist/_chunks/{EditConfigurationPage-Cg1Esg_N.mjs.map → EditConfigurationPage-B98IU2Ul.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CtnhGgIx.js → EditConfigurationPage-BfXCCaoj.js} +5 -6
- package/dist/_chunks/{EditConfigurationPage-CtnhGgIx.js.map → EditConfigurationPage-BfXCCaoj.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-C_iuCG0Z.mjs → EditViewPage-D5NJMgTB.mjs} +30 -8
- package/dist/_chunks/EditViewPage-D5NJMgTB.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-MURPhGdY.js → EditViewPage-z4N1z6hE.js} +30 -9
- package/dist/_chunks/EditViewPage-z4N1z6hE.js.map +1 -0
- package/dist/_chunks/{Field-D1c7z74Q.js → Field-B35qWmBP.js} +65 -66
- package/dist/_chunks/Field-B35qWmBP.js.map +1 -0
- package/dist/_chunks/{Field-55cGR9kd.mjs → Field-CuvC32FT.mjs} +64 -64
- package/dist/_chunks/Field-CuvC32FT.mjs.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-oLrvgmvM.mjs → Form-B1DVIq72.mjs} +3 -3
- package/dist/_chunks/{Form-oLrvgmvM.mjs.map → Form-B1DVIq72.mjs.map} +1 -1
- package/dist/_chunks/{Form-D1cecnu3.js → Form-DM3cOoGs.js} +5 -6
- package/dist/_chunks/{Form-D1cecnu3.js.map → Form-DM3cOoGs.js.map} +1 -1
- package/dist/_chunks/{History-5VbTZWYl.mjs → History-Bbxb1MFm.mjs} +23 -93
- package/dist/_chunks/History-Bbxb1MFm.mjs.map +1 -0
- package/dist/_chunks/{History-DJpjbGJZ.js → History-DpsAiewY.js} +23 -94
- package/dist/_chunks/History-DpsAiewY.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-BNs0g27c.mjs → ListConfigurationPage-Bg3gL7PO.mjs} +7 -6
- package/dist/_chunks/ListConfigurationPage-Bg3gL7PO.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DylRESaU.js → ListConfigurationPage-QgEe3A5Q.js} +7 -7
- package/dist/_chunks/ListConfigurationPage-QgEe3A5Q.js.map +1 -0
- package/dist/_chunks/{ListViewPage-MbdmfkXa.js → ListViewPage-CCiBxdYh.js} +63 -41
- package/dist/_chunks/ListViewPage-CCiBxdYh.js.map +1 -0
- package/dist/_chunks/{ListViewPage-DelIyZ5D.mjs → ListViewPage-CkEvkdm7.mjs} +62 -39
- package/dist/_chunks/ListViewPage-CkEvkdm7.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-CoXa1X8-.mjs → NoContentTypePage-BHlUUnaH.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-CoXa1X8-.mjs.map → NoContentTypePage-BHlUUnaH.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-BDQ1MdsC.js → NoContentTypePage-DMqJwbCS.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-BDQ1MdsC.js.map → NoContentTypePage-DMqJwbCS.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CnnuMd2Y.js → NoPermissionsPage-CGThcHIp.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CnnuMd2Y.js.map → NoPermissionsPage-CGThcHIp.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-GgkDXRq3.mjs → NoPermissionsPage-lfWiEoK1.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-GgkDXRq3.mjs.map → NoPermissionsPage-lfWiEoK1.mjs.map} +1 -1
- package/dist/_chunks/Preview-BUiUISol.mjs +272 -0
- package/dist/_chunks/Preview-BUiUISol.mjs.map +1 -0
- package/dist/_chunks/Preview-DOdb2qG8.js +290 -0
- package/dist/_chunks/Preview-DOdb2qG8.js.map +1 -0
- package/dist/_chunks/{Relations-DVeWgAT4.js → Relations-Bhki9PTq.js} +47 -23
- package/dist/_chunks/Relations-Bhki9PTq.js.map +1 -0
- package/dist/_chunks/{Relations-BKnC9peY.mjs → Relations-DXV77Rwu.mjs} +47 -22
- package/dist/_chunks/Relations-DXV77Rwu.mjs.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-jwACjpe1.mjs → index-D5Kyqqml.mjs} +353 -184
- package/dist/_chunks/index-D5Kyqqml.mjs.map +1 -0
- package/dist/_chunks/{index-B9u01WiI.js → index-hR3DeJ4w.js} +351 -182
- package/dist/_chunks/index-hR3DeJ4w.js.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-D51YDRJV.mjs → layout-DaHFw5kD.mjs} +4 -4
- package/dist/_chunks/{layout-D51YDRJV.mjs.map → layout-DaHFw5kD.mjs.map} +1 -1
- package/dist/_chunks/{layout-DDtbDqUd.js → layout-aYm7fih0.js} +5 -6
- package/dist/_chunks/{layout-DDtbDqUd.js.map → layout-aYm7fih0.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-Bgc8jKKt.mjs → relations-BaJei9O4.mjs} +6 -7
- package/dist/_chunks/relations-BaJei9O4.mjs.map +1 -0
- package/dist/_chunks/{relations-DtsF4GJw.js → relations-CgGEzgRk.js} +6 -7
- package/dist/_chunks/relations-CgGEzgRk.js.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/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/constants.d.ts +1 -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 +409 -180
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +409 -179
- 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 +15 -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 +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 +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 +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 +11 -11
- package/dist/_chunks/EditViewPage-C_iuCG0Z.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-MURPhGdY.js.map +0 -1
- package/dist/_chunks/Field-55cGR9kd.mjs.map +0 -1
- package/dist/_chunks/Field-D1c7z74Q.js.map +0 -1
- package/dist/_chunks/History-5VbTZWYl.mjs.map +0 -1
- package/dist/_chunks/History-DJpjbGJZ.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-BNs0g27c.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DylRESaU.js.map +0 -1
- package/dist/_chunks/ListViewPage-DelIyZ5D.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-MbdmfkXa.js.map +0 -1
- package/dist/_chunks/Relations-BKnC9peY.mjs.map +0 -1
- package/dist/_chunks/Relations-DVeWgAT4.js.map +0 -1
- package/dist/_chunks/index-B9u01WiI.js.map +0 -1
- package/dist/_chunks/index-jwACjpe1.mjs.map +0 -1
- package/dist/_chunks/relations-Bgc8jKKt.mjs.map +0 -1
- package/dist/_chunks/relations-DtsF4GJw.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";
|
@@ -294,7 +302,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
294
302
|
url: `/content-manager/collection-types/${model}`,
|
295
303
|
method: "GET",
|
296
304
|
config: {
|
297
|
-
params
|
305
|
+
params: qs.stringify(params, { encode: true })
|
298
306
|
}
|
299
307
|
}),
|
300
308
|
providesTags: (result, _error, arg) => {
|
@@ -473,8 +481,7 @@ const {
|
|
473
481
|
useUnpublishManyDocumentsMutation
|
474
482
|
} = documentApi;
|
475
483
|
const buildValidParams = (query) => {
|
476
|
-
if (!query)
|
477
|
-
return query;
|
484
|
+
if (!query) return query;
|
478
485
|
const { plugins: _, ...validQueryParams } = {
|
479
486
|
...query,
|
480
487
|
...Object.values(query?.plugins ?? {}).reduce(
|
@@ -482,9 +489,6 @@ const buildValidParams = (query) => {
|
|
482
489
|
{}
|
483
490
|
)
|
484
491
|
};
|
485
|
-
if ("_q" in validQueryParams) {
|
486
|
-
validQueryParams._q = encodeURIComponent(validQueryParams._q);
|
487
|
-
}
|
488
492
|
return validQueryParams;
|
489
493
|
};
|
490
494
|
const isBaseQueryError = (error) => {
|
@@ -989,9 +993,10 @@ const formatEditLayout = (data, {
|
|
989
993
|
currentPanelIndex += 2;
|
990
994
|
} else {
|
991
995
|
if (!panels[currentPanelIndex]) {
|
992
|
-
panels.push([]);
|
996
|
+
panels.push([row]);
|
997
|
+
} else {
|
998
|
+
panels[currentPanelIndex].push(row);
|
993
999
|
}
|
994
|
-
panels[currentPanelIndex].push(row);
|
995
1000
|
}
|
996
1001
|
return panels;
|
997
1002
|
}, []);
|
@@ -1249,9 +1254,6 @@ const useContentManagerContext = () => {
|
|
1249
1254
|
};
|
1250
1255
|
};
|
1251
1256
|
const prefixPluginTranslations = (trad, pluginId) => {
|
1252
|
-
if (!pluginId) {
|
1253
|
-
throw new TypeError("pluginId can't be empty");
|
1254
|
-
}
|
1255
1257
|
return Object.keys(trad).reduce((acc, current) => {
|
1256
1258
|
acc[`${pluginId}.${current}`] = trad[current];
|
1257
1259
|
return acc;
|
@@ -1685,10 +1687,10 @@ const useDocumentActions = () => {
|
|
1685
1687
|
update
|
1686
1688
|
};
|
1687
1689
|
};
|
1688
|
-
const ProtectedHistoryPage =
|
1689
|
-
() => Promise.resolve().then(() => require("./History-
|
1690
|
+
const ProtectedHistoryPage = React__namespace.lazy(
|
1691
|
+
() => Promise.resolve().then(() => require("./History-DpsAiewY.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
|
1690
1692
|
);
|
1691
|
-
const routes$
|
1693
|
+
const routes$2 = [
|
1692
1694
|
{
|
1693
1695
|
path: ":collectionType/:slug/:id/history",
|
1694
1696
|
Component: ProtectedHistoryPage
|
@@ -1698,32 +1700,45 @@ const routes$1 = [
|
|
1698
1700
|
Component: ProtectedHistoryPage
|
1699
1701
|
}
|
1700
1702
|
];
|
1703
|
+
const ProtectedPreviewPage = React__namespace.lazy(
|
1704
|
+
() => Promise.resolve().then(() => require("./Preview-DOdb2qG8.js")).then((mod) => ({ default: mod.ProtectedPreviewPage }))
|
1705
|
+
);
|
1706
|
+
const routes$1 = [
|
1707
|
+
{
|
1708
|
+
path: ":collectionType/:slug/:id/preview",
|
1709
|
+
Component: ProtectedPreviewPage
|
1710
|
+
},
|
1711
|
+
{
|
1712
|
+
path: ":collectionType/:slug/preview",
|
1713
|
+
Component: ProtectedPreviewPage
|
1714
|
+
}
|
1715
|
+
];
|
1701
1716
|
const ProtectedEditViewPage = React.lazy(
|
1702
|
-
() => Promise.resolve().then(() => require("./EditViewPage-
|
1717
|
+
() => Promise.resolve().then(() => require("./EditViewPage-z4N1z6hE.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
|
1703
1718
|
);
|
1704
1719
|
const ProtectedListViewPage = React.lazy(
|
1705
|
-
() => Promise.resolve().then(() => require("./ListViewPage-
|
1720
|
+
() => Promise.resolve().then(() => require("./ListViewPage-CCiBxdYh.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
|
1706
1721
|
);
|
1707
1722
|
const ProtectedListConfiguration = React.lazy(
|
1708
|
-
() => Promise.resolve().then(() => require("./ListConfigurationPage-
|
1723
|
+
() => Promise.resolve().then(() => require("./ListConfigurationPage-QgEe3A5Q.js")).then((mod) => ({
|
1709
1724
|
default: mod.ProtectedListConfiguration
|
1710
1725
|
}))
|
1711
1726
|
);
|
1712
1727
|
const ProtectedEditConfigurationPage = React.lazy(
|
1713
|
-
() => Promise.resolve().then(() => require("./EditConfigurationPage-
|
1728
|
+
() => Promise.resolve().then(() => require("./EditConfigurationPage-BfXCCaoj.js")).then((mod) => ({
|
1714
1729
|
default: mod.ProtectedEditConfigurationPage
|
1715
1730
|
}))
|
1716
1731
|
);
|
1717
1732
|
const ProtectedComponentConfigurationPage = React.lazy(
|
1718
|
-
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-
|
1733
|
+
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-4TPewfw0.js")).then((mod) => ({
|
1719
1734
|
default: mod.ProtectedComponentConfigurationPage
|
1720
1735
|
}))
|
1721
1736
|
);
|
1722
1737
|
const NoPermissions = React.lazy(
|
1723
|
-
() => Promise.resolve().then(() => require("./NoPermissionsPage-
|
1738
|
+
() => Promise.resolve().then(() => require("./NoPermissionsPage-CGThcHIp.js")).then((mod) => ({ default: mod.NoPermissions }))
|
1724
1739
|
);
|
1725
1740
|
const NoContentType = React.lazy(
|
1726
|
-
() => Promise.resolve().then(() => require("./NoContentTypePage-
|
1741
|
+
() => Promise.resolve().then(() => require("./NoContentTypePage-DMqJwbCS.js")).then((mod) => ({ default: mod.NoContentType }))
|
1727
1742
|
);
|
1728
1743
|
const CollectionTypePages = () => {
|
1729
1744
|
const { collectionType } = reactRouterDom.useParams();
|
@@ -1735,7 +1750,7 @@ const CollectionTypePages = () => {
|
|
1735
1750
|
const CLONE_RELATIVE_PATH = ":collectionType/:slug/clone/:origin";
|
1736
1751
|
const CLONE_PATH = `/content-manager/${CLONE_RELATIVE_PATH}`;
|
1737
1752
|
const LIST_RELATIVE_PATH = ":collectionType/:slug";
|
1738
|
-
const LIST_PATH = `/content-manager
|
1753
|
+
const LIST_PATH = `/content-manager/collection-types/:slug`;
|
1739
1754
|
const routes = [
|
1740
1755
|
{
|
1741
1756
|
path: LIST_RELATIVE_PATH,
|
@@ -1769,6 +1784,7 @@ const routes = [
|
|
1769
1784
|
path: "no-content-types",
|
1770
1785
|
Component: NoContentType
|
1771
1786
|
},
|
1787
|
+
...routes$2,
|
1772
1788
|
...routes$1
|
1773
1789
|
];
|
1774
1790
|
const DocumentActions = ({ actions: actions2 }) => {
|
@@ -1867,6 +1883,11 @@ const DocumentActionButton = (action) => {
|
|
1867
1883
|
) : null
|
1868
1884
|
] });
|
1869
1885
|
};
|
1886
|
+
const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
|
1887
|
+
&:hover {
|
1888
|
+
background: ${({ theme, isVariantDanger, isDisabled }) => isVariantDanger && !isDisabled ? theme.colors.danger100 : "neutral"};
|
1889
|
+
}
|
1890
|
+
`;
|
1870
1891
|
const DocumentActionsMenu = ({
|
1871
1892
|
actions: actions2,
|
1872
1893
|
children,
|
@@ -1925,48 +1946,32 @@ const DocumentActionsMenu = ({
|
|
1925
1946
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Content, { maxHeight: void 0, popoverPlacement: "bottom-end", children: [
|
1926
1947
|
actions2.map((action) => {
|
1927
1948
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
1928
|
-
|
1949
|
+
MenuItem,
|
1929
1950
|
{
|
1930
1951
|
disabled: action.disabled,
|
1931
1952
|
onSelect: handleClick(action),
|
1932
1953
|
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
|
-
] })
|
1954
|
+
isVariantDanger: action.variant === "danger",
|
1955
|
+
isDisabled: action.disabled,
|
1956
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
1957
|
+
designSystem.Flex,
|
1958
|
+
{
|
1959
|
+
color: !action.disabled ? convertActionVariantToColor(action.variant) : "inherit",
|
1960
|
+
gap: 2,
|
1961
|
+
tag: "span",
|
1962
|
+
children: [
|
1963
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
1964
|
+
designSystem.Flex,
|
1965
|
+
{
|
1966
|
+
tag: "span",
|
1967
|
+
color: !action.disabled ? convertActionVariantToIconColor(action.variant) : "inherit",
|
1968
|
+
children: action.icon
|
1969
|
+
}
|
1970
|
+
),
|
1971
|
+
action.label
|
1972
|
+
]
|
1973
|
+
}
|
1974
|
+
) })
|
1970
1975
|
},
|
1971
1976
|
action.id
|
1972
1977
|
);
|
@@ -2077,6 +2082,18 @@ const DocumentActionModal = ({
|
|
2077
2082
|
typeof Footer === "function" ? /* @__PURE__ */ jsxRuntime.jsx(Footer, { onClose: handleClose }) : Footer
|
2078
2083
|
] }) });
|
2079
2084
|
};
|
2085
|
+
const transformData = (data) => {
|
2086
|
+
if (Array.isArray(data)) {
|
2087
|
+
return data.map(transformData);
|
2088
|
+
}
|
2089
|
+
if (typeof data === "object" && data !== null) {
|
2090
|
+
if ("apiData" in data) {
|
2091
|
+
return data.apiData;
|
2092
|
+
}
|
2093
|
+
return mapValues__default.default(transformData)(data);
|
2094
|
+
}
|
2095
|
+
return data;
|
2096
|
+
};
|
2080
2097
|
const PublishAction$1 = ({
|
2081
2098
|
activeTab,
|
2082
2099
|
documentId,
|
@@ -2091,6 +2108,7 @@ const PublishAction$1 = ({
|
|
2091
2108
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
2092
2109
|
const isListView = reactRouterDom.useMatch(LIST_PATH) !== null;
|
2093
2110
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2111
|
+
const { id } = reactRouterDom.useParams();
|
2094
2112
|
const { formatMessage } = reactIntl.useIntl();
|
2095
2113
|
const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
|
2096
2114
|
const { publish } = useDocumentActions();
|
@@ -2190,13 +2208,15 @@ const PublishAction$1 = ({
|
|
2190
2208
|
documentId,
|
2191
2209
|
params
|
2192
2210
|
},
|
2193
|
-
formValues
|
2211
|
+
transformData(formValues)
|
2194
2212
|
);
|
2195
2213
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2196
|
-
|
2197
|
-
|
2198
|
-
|
2199
|
-
|
2214
|
+
if (id === "create") {
|
2215
|
+
navigate({
|
2216
|
+
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
2217
|
+
search: rawQuery
|
2218
|
+
});
|
2219
|
+
}
|
2200
2220
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2201
2221
|
setErrors(formatValidationErrors(res.error));
|
2202
2222
|
}
|
@@ -2249,6 +2269,7 @@ const PublishAction$1 = ({
|
|
2249
2269
|
};
|
2250
2270
|
};
|
2251
2271
|
PublishAction$1.type = "publish";
|
2272
|
+
PublishAction$1.position = "panel";
|
2252
2273
|
const UpdateAction = ({
|
2253
2274
|
activeTab,
|
2254
2275
|
documentId,
|
@@ -2271,96 +2292,134 @@ const UpdateAction = ({
|
|
2271
2292
|
const validate = strapiAdmin.useForm("UpdateAction", (state) => state.validate);
|
2272
2293
|
const setErrors = strapiAdmin.useForm("UpdateAction", (state) => state.setErrors);
|
2273
2294
|
const resetForm = strapiAdmin.useForm("PublishAction", ({ resetForm: resetForm2 }) => resetForm2);
|
2274
|
-
|
2275
|
-
|
2276
|
-
|
2277
|
-
|
2278
|
-
|
2279
|
-
|
2280
|
-
|
2281
|
-
|
2282
|
-
|
2283
|
-
|
2284
|
-
|
2285
|
-
|
2286
|
-
|
2287
|
-
|
2288
|
-
|
2289
|
-
|
2290
|
-
status: "draft"
|
2295
|
+
const handleUpdate = React__namespace.useCallback(async () => {
|
2296
|
+
setSubmitting(true);
|
2297
|
+
try {
|
2298
|
+
if (!modified) {
|
2299
|
+
return;
|
2300
|
+
}
|
2301
|
+
const { errors } = await validate(true, {
|
2302
|
+
status: "draft"
|
2303
|
+
});
|
2304
|
+
if (errors) {
|
2305
|
+
toggleNotification({
|
2306
|
+
type: "danger",
|
2307
|
+
message: formatMessage({
|
2308
|
+
id: "content-manager.validation.error",
|
2309
|
+
defaultMessage: "There are validation errors in your document. Please fix them before saving."
|
2310
|
+
})
|
2291
2311
|
});
|
2292
|
-
|
2293
|
-
|
2294
|
-
|
2295
|
-
|
2296
|
-
|
2297
|
-
|
2298
|
-
|
2299
|
-
|
2300
|
-
|
2301
|
-
|
2302
|
-
|
2303
|
-
|
2304
|
-
|
2305
|
-
model,
|
2306
|
-
documentId: cloneMatch.params.origin,
|
2307
|
-
params
|
2308
|
-
},
|
2309
|
-
document
|
2310
|
-
);
|
2311
|
-
if ("data" in res) {
|
2312
|
-
navigate(
|
2313
|
-
{
|
2314
|
-
pathname: `../${res.data.documentId}`,
|
2315
|
-
search: rawQuery
|
2316
|
-
},
|
2317
|
-
{ relative: "path" }
|
2318
|
-
);
|
2319
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2320
|
-
setErrors(formatValidationErrors(res.error));
|
2321
|
-
}
|
2322
|
-
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2323
|
-
const res = await update(
|
2312
|
+
return;
|
2313
|
+
}
|
2314
|
+
if (isCloning) {
|
2315
|
+
const res = await clone(
|
2316
|
+
{
|
2317
|
+
model,
|
2318
|
+
documentId: cloneMatch.params.origin,
|
2319
|
+
params
|
2320
|
+
},
|
2321
|
+
transformData(document)
|
2322
|
+
);
|
2323
|
+
if ("data" in res) {
|
2324
|
+
navigate(
|
2324
2325
|
{
|
2325
|
-
|
2326
|
-
|
2327
|
-
documentId,
|
2328
|
-
params
|
2326
|
+
pathname: `../${res.data.documentId}`,
|
2327
|
+
search: rawQuery
|
2329
2328
|
},
|
2330
|
-
|
2329
|
+
{ relative: "path" }
|
2331
2330
|
);
|
2332
|
-
|
2333
|
-
|
2334
|
-
|
2335
|
-
|
2336
|
-
|
2331
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2332
|
+
setErrors(formatValidationErrors(res.error));
|
2333
|
+
}
|
2334
|
+
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2335
|
+
const res = await update(
|
2336
|
+
{
|
2337
|
+
collectionType,
|
2338
|
+
model,
|
2339
|
+
documentId,
|
2340
|
+
params
|
2341
|
+
},
|
2342
|
+
transformData(document)
|
2343
|
+
);
|
2344
|
+
if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2345
|
+
setErrors(formatValidationErrors(res.error));
|
2337
2346
|
} else {
|
2338
|
-
|
2347
|
+
resetForm();
|
2348
|
+
}
|
2349
|
+
} else {
|
2350
|
+
const res = await create(
|
2351
|
+
{
|
2352
|
+
model,
|
2353
|
+
params
|
2354
|
+
},
|
2355
|
+
transformData(document)
|
2356
|
+
);
|
2357
|
+
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2358
|
+
navigate(
|
2339
2359
|
{
|
2340
|
-
|
2341
|
-
|
2360
|
+
pathname: `../${res.data.documentId}`,
|
2361
|
+
search: rawQuery
|
2342
2362
|
},
|
2343
|
-
|
2363
|
+
{ replace: true, relative: "path" }
|
2344
2364
|
);
|
2345
|
-
|
2346
|
-
|
2347
|
-
{
|
2348
|
-
pathname: `../${res.data.documentId}`,
|
2349
|
-
search: rawQuery
|
2350
|
-
},
|
2351
|
-
{ replace: true, relative: "path" }
|
2352
|
-
);
|
2353
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2354
|
-
setErrors(formatValidationErrors(res.error));
|
2355
|
-
}
|
2365
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2366
|
+
setErrors(formatValidationErrors(res.error));
|
2356
2367
|
}
|
2357
|
-
} finally {
|
2358
|
-
setSubmitting(false);
|
2359
2368
|
}
|
2369
|
+
} finally {
|
2370
|
+
setSubmitting(false);
|
2360
2371
|
}
|
2372
|
+
}, [
|
2373
|
+
clone,
|
2374
|
+
cloneMatch?.params.origin,
|
2375
|
+
collectionType,
|
2376
|
+
create,
|
2377
|
+
document,
|
2378
|
+
documentId,
|
2379
|
+
formatMessage,
|
2380
|
+
formatValidationErrors,
|
2381
|
+
isCloning,
|
2382
|
+
model,
|
2383
|
+
modified,
|
2384
|
+
navigate,
|
2385
|
+
params,
|
2386
|
+
rawQuery,
|
2387
|
+
resetForm,
|
2388
|
+
setErrors,
|
2389
|
+
setSubmitting,
|
2390
|
+
toggleNotification,
|
2391
|
+
update,
|
2392
|
+
validate
|
2393
|
+
]);
|
2394
|
+
React__namespace.useEffect(() => {
|
2395
|
+
const handleKeyDown = (e) => {
|
2396
|
+
if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
|
2397
|
+
e.preventDefault();
|
2398
|
+
handleUpdate();
|
2399
|
+
}
|
2400
|
+
};
|
2401
|
+
window.addEventListener("keydown", handleKeyDown);
|
2402
|
+
return () => {
|
2403
|
+
window.removeEventListener("keydown", handleKeyDown);
|
2404
|
+
};
|
2405
|
+
}, [handleUpdate]);
|
2406
|
+
return {
|
2407
|
+
/**
|
2408
|
+
* Disabled when:
|
2409
|
+
* - the form is submitting
|
2410
|
+
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
2411
|
+
* - the active tab is the published tab
|
2412
|
+
*/
|
2413
|
+
disabled: isSubmitting || !modified && !isCloning || activeTab === "published",
|
2414
|
+
label: formatMessage({
|
2415
|
+
id: "global.save",
|
2416
|
+
defaultMessage: "Save"
|
2417
|
+
}),
|
2418
|
+
onClick: handleUpdate
|
2361
2419
|
};
|
2362
2420
|
};
|
2363
2421
|
UpdateAction.type = "update";
|
2422
|
+
UpdateAction.position = "panel";
|
2364
2423
|
const UNPUBLISH_DRAFT_OPTIONS = {
|
2365
2424
|
KEEP: "keep",
|
2366
2425
|
DISCARD: "discard"
|
@@ -2483,6 +2542,7 @@ const UnpublishAction$1 = ({
|
|
2483
2542
|
};
|
2484
2543
|
};
|
2485
2544
|
UnpublishAction$1.type = "unpublish";
|
2545
|
+
UnpublishAction$1.position = "panel";
|
2486
2546
|
const DiscardAction = ({
|
2487
2547
|
activeTab,
|
2488
2548
|
documentId,
|
@@ -2533,6 +2593,7 @@ const DiscardAction = ({
|
|
2533
2593
|
};
|
2534
2594
|
};
|
2535
2595
|
DiscardAction.type = "discard";
|
2596
|
+
DiscardAction.position = "panel";
|
2536
2597
|
const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
|
2537
2598
|
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
2538
2599
|
const RelativeTime = React__namespace.forwardRef(
|
@@ -2545,7 +2606,7 @@ const RelativeTime = React__namespace.forwardRef(
|
|
2545
2606
|
});
|
2546
2607
|
const unit = intervals.find((intervalUnit) => {
|
2547
2608
|
return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);
|
2548
|
-
});
|
2609
|
+
}) ?? "seconds";
|
2549
2610
|
const relativeTime = dateFns.isPast(timestamp) ? -interval[unit] : interval[unit];
|
2550
2611
|
const customInterval = customIntervals.find(
|
2551
2612
|
(custom) => interval[custom.unit] < custom.threshold
|
@@ -2579,19 +2640,29 @@ const getDisplayName = ({
|
|
2579
2640
|
return email ?? "";
|
2580
2641
|
};
|
2581
2642
|
const capitalise = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
2582
|
-
const DocumentStatus = ({ status = "draft", ...restProps }) => {
|
2643
|
+
const DocumentStatus = ({ status = "draft", size = "S", ...restProps }) => {
|
2583
2644
|
const statusVariant = status === "draft" ? "secondary" : status === "published" ? "success" : "alternative";
|
2584
|
-
|
2645
|
+
const { formatMessage } = reactIntl.useIntl();
|
2646
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps, size, variant: statusVariant, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: formatMessage({
|
2647
|
+
id: `content-manager.containers.List.${status}`,
|
2648
|
+
defaultMessage: capitalise(status)
|
2649
|
+
}) }) });
|
2585
2650
|
};
|
2586
2651
|
const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
|
2587
2652
|
const { formatMessage } = reactIntl.useIntl();
|
2588
2653
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2654
|
+
const params = reactRouterDom.useParams();
|
2589
2655
|
const title = isCreating ? formatMessage({
|
2590
2656
|
id: "content-manager.containers.edit.title.new",
|
2591
2657
|
defaultMessage: "Create an entry"
|
2592
2658
|
}) : documentTitle;
|
2593
2659
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "flex-start", paddingTop: 6, paddingBottom: 4, gap: 2, children: [
|
2594
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
2660
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
2661
|
+
strapiAdmin.BackButton,
|
2662
|
+
{
|
2663
|
+
fallback: params.collectionType === SINGLE_TYPES ? void 0 : `../${COLLECTION_TYPES}/${params.slug}`
|
2664
|
+
}
|
2665
|
+
),
|
2595
2666
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { width: "100%", justifyContent: "space-between", gap: "80px", alignItems: "flex-start", children: [
|
2596
2667
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: title }),
|
2597
2668
|
/* @__PURE__ */ jsxRuntime.jsx(HeaderToolbar, {})
|
@@ -2642,7 +2713,7 @@ const HeaderToolbar = () => {
|
|
2642
2713
|
meta: isCloning ? void 0 : meta,
|
2643
2714
|
collectionType
|
2644
2715
|
},
|
2645
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
2716
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("header"),
|
2646
2717
|
children: (actions2) => {
|
2647
2718
|
const headerActions = actions2.filter((action) => {
|
2648
2719
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -2850,6 +2921,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
|
|
2850
2921
|
};
|
2851
2922
|
};
|
2852
2923
|
ConfigureTheViewAction.type = "configure-the-view";
|
2924
|
+
ConfigureTheViewAction.position = "header";
|
2853
2925
|
const EditTheModelAction = ({ model }) => {
|
2854
2926
|
const navigate = reactRouterDom.useNavigate();
|
2855
2927
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2866,6 +2938,7 @@ const EditTheModelAction = ({ model }) => {
|
|
2866
2938
|
};
|
2867
2939
|
};
|
2868
2940
|
EditTheModelAction.type = "edit-the-model";
|
2941
|
+
EditTheModelAction.position = "header";
|
2869
2942
|
const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
2870
2943
|
const navigate = reactRouterDom.useNavigate();
|
2871
2944
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2939,6 +3012,7 @@ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
|
2939
3012
|
};
|
2940
3013
|
};
|
2941
3014
|
DeleteAction$1.type = "delete";
|
3015
|
+
DeleteAction$1.position = ["header", "table-row"];
|
2942
3016
|
const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
|
2943
3017
|
const Panels = () => {
|
2944
3018
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
@@ -3001,7 +3075,7 @@ const ActionsPanelContent = () => {
|
|
3001
3075
|
strapiAdmin.DescriptionComponentRenderer,
|
3002
3076
|
{
|
3003
3077
|
props,
|
3004
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
3078
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("panel"),
|
3005
3079
|
children: (actions2) => /* @__PURE__ */ jsxRuntime.jsx(DocumentActions, { actions: actions2 })
|
3006
3080
|
}
|
3007
3081
|
),
|
@@ -3028,7 +3102,7 @@ const Panel = React__namespace.forwardRef(({ children, title }, ref) => {
|
|
3028
3102
|
justifyContent: "stretch",
|
3029
3103
|
alignItems: "flex-start",
|
3030
3104
|
children: [
|
3031
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", children: title }),
|
3105
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", textColor: "neutral600", children: title }),
|
3032
3106
|
children
|
3033
3107
|
]
|
3034
3108
|
}
|
@@ -3278,18 +3352,10 @@ const SelectedEntriesTableContent = ({
|
|
3278
3352
|
search: row.locale && `?plugins[i18n][locale]=${row.locale}`
|
3279
3353
|
},
|
3280
3354
|
state: { from: pathname },
|
3281
|
-
label: formatMessage(
|
3282
|
-
|
3283
|
-
|
3284
|
-
|
3285
|
-
{
|
3286
|
-
id: "content-manager.components.ListViewHelperPluginTable.row-line",
|
3287
|
-
defaultMessage: "item line {number}"
|
3288
|
-
},
|
3289
|
-
{ number: index2 + 1 }
|
3290
|
-
)
|
3291
|
-
}
|
3292
|
-
),
|
3355
|
+
label: formatMessage({
|
3356
|
+
id: "content-manager.bulk-publish.edit",
|
3357
|
+
defaultMessage: "Edit"
|
3358
|
+
}),
|
3293
3359
|
target: "_blank",
|
3294
3360
|
marginLeft: "auto",
|
3295
3361
|
variant: "ghost",
|
@@ -3463,8 +3529,7 @@ const PublishAction = ({ documents, model }) => {
|
|
3463
3529
|
const refetchList = () => {
|
3464
3530
|
contentManagerApi.util.invalidateTags([{ type: "Document", id: `${model}_LIST` }]);
|
3465
3531
|
};
|
3466
|
-
if (!showPublishButton)
|
3467
|
-
return null;
|
3532
|
+
if (!showPublishButton) return null;
|
3468
3533
|
return {
|
3469
3534
|
actionType: "publish",
|
3470
3535
|
variant: "tertiary",
|
@@ -3532,8 +3597,7 @@ const DeleteAction = ({ documents, model }) => {
|
|
3532
3597
|
selectRow([]);
|
3533
3598
|
}
|
3534
3599
|
};
|
3535
|
-
if (!hasDeletePermission)
|
3536
|
-
return null;
|
3600
|
+
if (!hasDeletePermission) return null;
|
3537
3601
|
return {
|
3538
3602
|
variant: "danger-light",
|
3539
3603
|
label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
|
@@ -3582,8 +3646,7 @@ const UnpublishAction = ({ documents, model }) => {
|
|
3582
3646
|
}
|
3583
3647
|
};
|
3584
3648
|
const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published" || entry.status === "modified");
|
3585
|
-
if (!showUnpublishButton)
|
3586
|
-
return null;
|
3649
|
+
if (!showUnpublishButton) return null;
|
3587
3650
|
return {
|
3588
3651
|
variant: "tertiary",
|
3589
3652
|
label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
|
@@ -3688,7 +3751,7 @@ const TableActions = ({ document }) => {
|
|
3688
3751
|
strapiAdmin.DescriptionComponentRenderer,
|
3689
3752
|
{
|
3690
3753
|
props,
|
3691
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions().filter((action) => action.name !== "PublishAction"),
|
3754
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("table-row").filter((action) => action.name !== "PublishAction"),
|
3692
3755
|
children: (actions2) => {
|
3693
3756
|
const tableRowActions = actions2.filter((action) => {
|
3694
3757
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -3747,6 +3810,7 @@ const EditAction = ({ documentId }) => {
|
|
3747
3810
|
};
|
3748
3811
|
};
|
3749
3812
|
EditAction.type = "edit";
|
3813
|
+
EditAction.position = "table-row";
|
3750
3814
|
const StyledPencil = styledComponents.styled(Icons.Pencil)`
|
3751
3815
|
path {
|
3752
3816
|
fill: currentColor;
|
@@ -3823,6 +3887,7 @@ const CloneAction = ({ model, documentId }) => {
|
|
3823
3887
|
};
|
3824
3888
|
};
|
3825
3889
|
CloneAction.type = "clone";
|
3890
|
+
CloneAction.position = "table-row";
|
3826
3891
|
const StyledDuplicate = styledComponents.styled(Icons.Duplicate)`
|
3827
3892
|
path {
|
3828
3893
|
fill: currentColor;
|
@@ -3909,7 +3974,14 @@ class ContentManagerPlugin {
|
|
3909
3974
|
addDocumentHeaderAction: this.addDocumentHeaderAction.bind(this),
|
3910
3975
|
addEditViewSidePanel: this.addEditViewSidePanel.bind(this),
|
3911
3976
|
getBulkActions: () => this.bulkActions,
|
3912
|
-
getDocumentActions: () =>
|
3977
|
+
getDocumentActions: (position) => {
|
3978
|
+
if (position) {
|
3979
|
+
return this.documentActions.filter(
|
3980
|
+
(action) => action.position == void 0 || [action.position].flat().includes(position)
|
3981
|
+
);
|
3982
|
+
}
|
3983
|
+
return this.documentActions;
|
3984
|
+
},
|
3913
3985
|
getEditViewSidePanels: () => this.editViewSidePanels,
|
3914
3986
|
getHeaderActions: () => this.headerActions
|
3915
3987
|
}
|
@@ -3919,10 +3991,8 @@ class ContentManagerPlugin {
|
|
3919
3991
|
const getPrintableType = (value) => {
|
3920
3992
|
const nativeType = typeof value;
|
3921
3993
|
if (nativeType === "object") {
|
3922
|
-
if (value === null)
|
3923
|
-
|
3924
|
-
if (Array.isArray(value))
|
3925
|
-
return "array";
|
3994
|
+
if (value === null) return "null";
|
3995
|
+
if (Array.isArray(value)) return "array";
|
3926
3996
|
if (value instanceof Object && value.constructor.name !== "Object") {
|
3927
3997
|
return value.constructor.name;
|
3928
3998
|
}
|
@@ -3933,17 +4003,27 @@ const HistoryAction = ({ model, document }) => {
|
|
3933
4003
|
const { formatMessage } = reactIntl.useIntl();
|
3934
4004
|
const [{ query }] = strapiAdmin.useQueryParams();
|
3935
4005
|
const navigate = reactRouterDom.useNavigate();
|
4006
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
4007
|
+
const { pathname } = reactRouterDom.useLocation();
|
3936
4008
|
const pluginsQueryParams = qs.stringify({ plugins: query.plugins }, { encode: false });
|
3937
4009
|
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
3938
4010
|
return null;
|
3939
4011
|
}
|
4012
|
+
const handleOnClick = () => {
|
4013
|
+
const destination = { pathname: "history", search: pluginsQueryParams };
|
4014
|
+
trackUsage("willNavigate", {
|
4015
|
+
from: pathname,
|
4016
|
+
to: `${pathname}/${destination.pathname}`
|
4017
|
+
});
|
4018
|
+
navigate(destination);
|
4019
|
+
};
|
3940
4020
|
return {
|
3941
4021
|
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ClockCounterClockwise, {}),
|
3942
4022
|
label: formatMessage({
|
3943
4023
|
id: "content-manager.history.document-action",
|
3944
4024
|
defaultMessage: "Content History"
|
3945
4025
|
}),
|
3946
|
-
onClick:
|
4026
|
+
onClick: handleOnClick,
|
3947
4027
|
disabled: (
|
3948
4028
|
/**
|
3949
4029
|
* The user is creating a new document.
|
@@ -3965,6 +4045,7 @@ const HistoryAction = ({ model, document }) => {
|
|
3965
4045
|
};
|
3966
4046
|
};
|
3967
4047
|
HistoryAction.type = "history";
|
4048
|
+
HistoryAction.position = "header";
|
3968
4049
|
const historyAdmin = {
|
3969
4050
|
bootstrap(app) {
|
3970
4051
|
const { addDocumentAction } = app.getPlugin("content-manager").apis;
|
@@ -4011,6 +4092,90 @@ const { setInitialData } = actions;
|
|
4011
4092
|
const reducer = toolkit.combineReducers({
|
4012
4093
|
app: reducer$1
|
4013
4094
|
});
|
4095
|
+
const previewApi = contentManagerApi.injectEndpoints({
|
4096
|
+
endpoints: (builder) => ({
|
4097
|
+
getPreviewUrl: builder.query({
|
4098
|
+
query({ query, params }) {
|
4099
|
+
return {
|
4100
|
+
url: `/content-manager/preview/url/${params.contentType}`,
|
4101
|
+
method: "GET",
|
4102
|
+
config: {
|
4103
|
+
params: query
|
4104
|
+
}
|
4105
|
+
};
|
4106
|
+
}
|
4107
|
+
})
|
4108
|
+
})
|
4109
|
+
});
|
4110
|
+
const { useGetPreviewUrlQuery } = previewApi;
|
4111
|
+
const ConditionalTooltip = ({ isShown, label, children }) => {
|
4112
|
+
if (isShown) {
|
4113
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { label, children });
|
4114
|
+
}
|
4115
|
+
return children;
|
4116
|
+
};
|
4117
|
+
const PreviewSidePanel = ({ model, documentId, document }) => {
|
4118
|
+
const { formatMessage } = reactIntl.useIntl();
|
4119
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
4120
|
+
const { pathname } = reactRouterDom.useLocation();
|
4121
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
4122
|
+
const isModified = strapiAdmin.useForm("PreviewSidePanel", (state) => state.modified);
|
4123
|
+
const { data, error } = useGetPreviewUrlQuery({
|
4124
|
+
params: {
|
4125
|
+
contentType: model
|
4126
|
+
},
|
4127
|
+
query: {
|
4128
|
+
documentId,
|
4129
|
+
locale: document?.locale,
|
4130
|
+
status: document?.status
|
4131
|
+
}
|
4132
|
+
});
|
4133
|
+
if (!data?.data?.url || error) {
|
4134
|
+
return null;
|
4135
|
+
}
|
4136
|
+
const trackNavigation = () => {
|
4137
|
+
const destinationPathname = pathname.replace(/\/$/, "") + "/preview";
|
4138
|
+
trackUsage("willNavigate", { from: pathname, to: destinationPathname });
|
4139
|
+
};
|
4140
|
+
return {
|
4141
|
+
title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
|
4142
|
+
content: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { gap: 2, width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
|
4143
|
+
ConditionalTooltip,
|
4144
|
+
{
|
4145
|
+
label: formatMessage({
|
4146
|
+
id: "content-manager.preview.panel.button-disabled-tooltip",
|
4147
|
+
defaultMessage: "Please save to open the preview"
|
4148
|
+
}),
|
4149
|
+
isShown: isModified,
|
4150
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
4151
|
+
designSystem.Button,
|
4152
|
+
{
|
4153
|
+
variant: "tertiary",
|
4154
|
+
tag: reactRouterDom.Link,
|
4155
|
+
to: { pathname: "preview", search: qs.stringify(query, { encode: false }) },
|
4156
|
+
onClick: trackNavigation,
|
4157
|
+
flex: "auto",
|
4158
|
+
disabled: isModified,
|
4159
|
+
children: formatMessage({
|
4160
|
+
id: "content-manager.preview.panel.button",
|
4161
|
+
defaultMessage: "Open preview"
|
4162
|
+
})
|
4163
|
+
}
|
4164
|
+
)
|
4165
|
+
}
|
4166
|
+
) })
|
4167
|
+
};
|
4168
|
+
};
|
4169
|
+
const FEATURE_ID = "preview";
|
4170
|
+
const previewAdmin = {
|
4171
|
+
bootstrap(app) {
|
4172
|
+
if (!window.strapi.future.isEnabled(FEATURE_ID)) {
|
4173
|
+
return;
|
4174
|
+
}
|
4175
|
+
const contentManagerPluginApis = app.getPlugin("content-manager").apis;
|
4176
|
+
contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
|
4177
|
+
}
|
4178
|
+
};
|
4014
4179
|
const index = {
|
4015
4180
|
register(app) {
|
4016
4181
|
const cm = new ContentManagerPlugin();
|
@@ -4030,7 +4195,7 @@ const index = {
|
|
4030
4195
|
app.router.addRoute({
|
4031
4196
|
path: "content-manager/*",
|
4032
4197
|
lazy: async () => {
|
4033
|
-
const { Layout } = await Promise.resolve().then(() => require("./layout-
|
4198
|
+
const { Layout } = await Promise.resolve().then(() => require("./layout-aYm7fih0.js"));
|
4034
4199
|
return {
|
4035
4200
|
Component: Layout
|
4036
4201
|
};
|
@@ -4043,11 +4208,14 @@ const index = {
|
|
4043
4208
|
if (typeof historyAdmin.bootstrap === "function") {
|
4044
4209
|
historyAdmin.bootstrap(app);
|
4045
4210
|
}
|
4211
|
+
if (typeof previewAdmin.bootstrap === "function") {
|
4212
|
+
previewAdmin.bootstrap(app);
|
4213
|
+
}
|
4046
4214
|
},
|
4047
4215
|
async registerTrads({ locales }) {
|
4048
4216
|
const importedTrads = await Promise.all(
|
4049
4217
|
locales.map((locale) => {
|
4050
|
-
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-
|
4218
|
+
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 }) => {
|
4051
4219
|
return {
|
4052
4220
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
4053
4221
|
locale
|
@@ -4105,5 +4273,6 @@ exports.useGetAllContentTypeSettingsQuery = useGetAllContentTypeSettingsQuery;
|
|
4105
4273
|
exports.useGetAllDocumentsQuery = useGetAllDocumentsQuery;
|
4106
4274
|
exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuery;
|
4107
4275
|
exports.useGetInitialDataQuery = useGetInitialDataQuery;
|
4276
|
+
exports.useGetPreviewUrlQuery = useGetPreviewUrlQuery;
|
4108
4277
|
exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
|
4109
|
-
//# sourceMappingURL=index-
|
4278
|
+
//# sourceMappingURL=index-hR3DeJ4w.js.map
|