@strapi/content-manager 0.0.0-next.b558642be856459a3e6c076f5d76fffbfc5fc5a1 → 0.0.0-next.b6435ada233136a0d0b14fba67961ff8f16cdac2
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-gsCd80MU.js → ComponentConfigurationPage-BlzvDpbX.js} +4 -5
- package/dist/_chunks/{ComponentConfigurationPage-gsCd80MU.js.map → ComponentConfigurationPage-BlzvDpbX.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs → ComponentConfigurationPage-DaPOlQaD.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-CIjXcRAB.mjs.map → ComponentConfigurationPage-DaPOlQaD.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-BglmD_BF.mjs → EditConfigurationPage-BZPXItXo.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-BglmD_BF.mjs.map → EditConfigurationPage-BZPXItXo.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js → EditConfigurationPage-uy-v43AR.js} +4 -5
- package/dist/_chunks/{EditConfigurationPage-DHDQKBzw.js.map → EditConfigurationPage-uy-v43AR.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-C4iTxUPU.js → EditViewPage-DT6A4ayX.js} +38 -9
- package/dist/_chunks/EditViewPage-DT6A4ayX.js.map +1 -0
- package/dist/_chunks/{EditViewPage-CiwVPMaK.mjs → EditViewPage-oOLeTySr.mjs} +38 -8
- package/dist/_chunks/EditViewPage-oOLeTySr.mjs.map +1 -0
- package/dist/_chunks/{Field-DIjL1b5d.mjs → Field-D7dv2aUX.mjs} +169 -117
- package/dist/_chunks/Field-D7dv2aUX.mjs.map +1 -0
- package/dist/_chunks/{Field-DhXEK8y1.js → Field-kYFVIGiP.js} +171 -119
- package/dist/_chunks/Field-kYFVIGiP.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-CmNesrvR.mjs → Form-BxR6sc29.mjs} +3 -3
- package/dist/_chunks/{Form-CmNesrvR.mjs.map → Form-BxR6sc29.mjs.map} +1 -1
- package/dist/_chunks/{Form-CwmJ4sWe.js → Form-CCijSg3V.js} +5 -6
- package/dist/_chunks/{Form-CwmJ4sWe.js.map → Form-CCijSg3V.js.map} +1 -1
- package/dist/_chunks/{History-BLCCNgCt.js → History-BMndx49M.js} +22 -93
- package/dist/_chunks/History-BMndx49M.js.map +1 -0
- package/dist/_chunks/{History-D-99Wh30.mjs → History-D8F7aYQU.mjs} +22 -92
- package/dist/_chunks/History-D8F7aYQU.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DxWpeZrO.js → ListConfigurationPage-DouY1EWM.js} +6 -6
- package/dist/_chunks/ListConfigurationPage-DouY1EWM.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-JPWZz7Kg.mjs → ListConfigurationPage-DqAdSPwC.mjs} +6 -5
- package/dist/_chunks/ListConfigurationPage-DqAdSPwC.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-CIQekSFz.js → ListViewPage-BPVmh9pq.js} +64 -53
- package/dist/_chunks/ListViewPage-BPVmh9pq.js.map +1 -0
- package/dist/_chunks/{ListViewPage-DSK3f0ST.mjs → ListViewPage-C73F0jPh.mjs} +63 -51
- package/dist/_chunks/ListViewPage-C73F0jPh.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs → NoContentTypePage-B5w7iJOF.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-D99LU1YP.mjs.map → NoContentTypePage-B5w7iJOF.mjs.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js → NoContentTypePage-BwcL--4H.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-C5cxKvC2.js.map → NoContentTypePage-BwcL--4H.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js → NoPermissionsPage-BMFKVcwJ.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-Oy4tmUrW.js.map → NoPermissionsPage-BMFKVcwJ.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs → NoPermissionsPage-UnEgMGK4.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-DBrBw-0y.mjs.map → NoPermissionsPage-UnEgMGK4.mjs.map} +1 -1
- package/dist/_chunks/Preview-B7PR3Ok_.js +312 -0
- package/dist/_chunks/Preview-B7PR3Ok_.js.map +1 -0
- package/dist/_chunks/Preview-DECOhK0D.mjs +294 -0
- package/dist/_chunks/Preview-DECOhK0D.mjs.map +1 -0
- package/dist/_chunks/{Relations-BBmhcWFV.mjs → Relations-DinMQJ4B.mjs} +9 -8
- package/dist/_chunks/Relations-DinMQJ4B.mjs.map +1 -0
- package/dist/_chunks/{Relations-eG-9p_qS.js → Relations-lndx3aQk.js} +10 -10
- package/dist/_chunks/Relations-lndx3aQk.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-BrUzbQ30.mjs → index-C2SagWVW.mjs} +327 -183
- package/dist/_chunks/index-C2SagWVW.mjs.map +1 -0
- package/dist/_chunks/{index-BIWDoFLK.js → index-Cnw4gqee.js} +324 -181
- package/dist/_chunks/index-Cnw4gqee.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-_5-cXs34.mjs → layout-DY_D9MGA.mjs} +4 -4
- package/dist/_chunks/{layout-_5-cXs34.mjs.map → layout-DY_D9MGA.mjs.map} +1 -1
- package/dist/_chunks/{layout-lMc9i1-Z.js → layout-ivwIVPnV.js} +5 -6
- package/dist/_chunks/{layout-lMc9i1-Z.js.map → layout-ivwIVPnV.js.map} +1 -1
- package/dist/_chunks/objects-BcXOv6_9.js.map +1 -1
- package/dist/_chunks/objects-D6yBsdmx.mjs.map +1 -1
- package/dist/_chunks/{relations-BRHithi8.js → relations-B7C7O_Pv.js} +6 -3
- package/dist/_chunks/relations-B7C7O_Pv.js.map +1 -0
- package/dist/_chunks/{relations-B_VLk-DD.mjs → relations-Boc5Y9kX.mjs} +6 -3
- package/dist/_chunks/relations-Boc5Y9kX.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 +1 -1
- 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 +384 -233
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +385 -233
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +1 -0
- 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.map +1 -1
- package/dist/server/src/index.d.ts +3 -2
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/preview/controllers/preview.d.ts +6 -2
- package/dist/server/src/preview/controllers/preview.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/server/src/preview/services/index.d.ts +13 -1
- package/dist/server/src/preview/services/index.d.ts.map +1 -1
- 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 +7 -1
- package/dist/server/src/preview/services/preview.d.ts.map +1 -1
- package/dist/server/src/preview/utils.d.ts +13 -1
- package/dist/server/src/preview/utils.d.ts.map +1 -1
- package/dist/server/src/register.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 +4 -2
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +3 -2
- 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/services/utils/populate.d.ts +2 -2
- package/dist/server/src/services/utils/populate.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-C4iTxUPU.js.map +0 -1
- package/dist/_chunks/EditViewPage-CiwVPMaK.mjs.map +0 -1
- package/dist/_chunks/Field-DIjL1b5d.mjs.map +0 -1
- package/dist/_chunks/Field-DhXEK8y1.js.map +0 -1
- package/dist/_chunks/History-BLCCNgCt.js.map +0 -1
- package/dist/_chunks/History-D-99Wh30.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DxWpeZrO.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-JPWZz7Kg.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-CIQekSFz.js.map +0 -1
- package/dist/_chunks/ListViewPage-DSK3f0ST.mjs.map +0 -1
- package/dist/_chunks/Relations-BBmhcWFV.mjs.map +0 -1
- package/dist/_chunks/Relations-eG-9p_qS.js.map +0 -1
- package/dist/_chunks/index-BIWDoFLK.js.map +0 -1
- package/dist/_chunks/index-BrUzbQ30.mjs.map +0 -1
- package/dist/_chunks/relations-BRHithi8.js.map +0 -1
- package/dist/_chunks/relations-B_VLk-DD.mjs.map +0 -1
- package/dist/admin/src/preview/constants.d.ts +0 -1
- package/dist/server/src/preview/constants.d.ts +0 -2
- package/dist/server/src/preview/constants.d.ts.map +0 -1
@@ -3,24 +3,31 @@ import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useStrapiApp, createContext, useQueryParams, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler, getYupValidationErrors, useForm, useTracking, useGuidedTour, BackButton, DescriptionComponentRenderer, useTable, Table } from "@strapi/admin/strapi-admin";
|
4
4
|
import * as React from "react";
|
5
5
|
import { lazy } from "react";
|
6
|
-
import {
|
6
|
+
import { Menu, Button, VisuallyHidden, Flex, Dialog, Modal, Typography, Radio, Status, Box, SingleSelect, SingleSelectOption, IconButton, Loader, Tooltip, LinkButton } from "@strapi/design-system";
|
7
7
|
import mapValues from "lodash/fp/mapValues";
|
8
8
|
import { useIntl } from "react-intl";
|
9
9
|
import { useParams, useNavigate, Navigate, useMatch, useLocation, Link, NavLink } from "react-router-dom";
|
10
|
+
import { styled } from "styled-components";
|
10
11
|
import * as yup from "yup";
|
11
12
|
import { ValidationError } from "yup";
|
13
|
+
import { stringify } from "qs";
|
12
14
|
import pipe from "lodash/fp/pipe";
|
13
15
|
import { intervalToDuration, isPast } from "date-fns";
|
14
|
-
import { styled } from "styled-components";
|
15
|
-
import { stringify } from "qs";
|
16
16
|
import { createSlice, combineReducers } from "@reduxjs/toolkit";
|
17
|
-
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
17
|
+
const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
|
18
18
|
const v = glob[path];
|
19
19
|
if (v) {
|
20
20
|
return typeof v === "function" ? v() : Promise.resolve(v);
|
21
21
|
}
|
22
22
|
return new Promise((_, reject) => {
|
23
|
-
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
23
|
+
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
24
|
+
reject.bind(
|
25
|
+
null,
|
26
|
+
new Error(
|
27
|
+
"Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
|
28
|
+
)
|
29
|
+
)
|
30
|
+
);
|
24
31
|
});
|
25
32
|
};
|
26
33
|
const PLUGIN_ID = "content-manager";
|
@@ -271,10 +278,10 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
271
278
|
*/
|
272
279
|
getAllDocuments: builder.query({
|
273
280
|
query: ({ model, params }) => ({
|
274
|
-
url: `/content-manager/collection-types/${model}
|
281
|
+
url: `/content-manager/collection-types/${model}`,
|
275
282
|
method: "GET",
|
276
283
|
config: {
|
277
|
-
params
|
284
|
+
params: stringify(params, { encode: true })
|
278
285
|
}
|
279
286
|
}),
|
280
287
|
providesTags: (result, _error, arg) => {
|
@@ -453,8 +460,7 @@ const {
|
|
453
460
|
useUnpublishManyDocumentsMutation
|
454
461
|
} = documentApi;
|
455
462
|
const buildValidParams = (query) => {
|
456
|
-
if (!query)
|
457
|
-
return query;
|
463
|
+
if (!query) return query;
|
458
464
|
const { plugins: _, ...validQueryParams } = {
|
459
465
|
...query,
|
460
466
|
...Object.values(query?.plugins ?? {}).reduce(
|
@@ -462,9 +468,6 @@ const buildValidParams = (query) => {
|
|
462
468
|
{}
|
463
469
|
)
|
464
470
|
};
|
465
|
-
if ("_q" in validQueryParams) {
|
466
|
-
validQueryParams._q = encodeURIComponent(validQueryParams._q);
|
467
|
-
}
|
468
471
|
return validQueryParams;
|
469
472
|
};
|
470
473
|
const isBaseQueryError = (error) => {
|
@@ -1663,10 +1666,10 @@ const useDocumentActions = () => {
|
|
1663
1666
|
update
|
1664
1667
|
};
|
1665
1668
|
};
|
1666
|
-
const ProtectedHistoryPage = lazy(
|
1667
|
-
() => import("./History-
|
1669
|
+
const ProtectedHistoryPage = React.lazy(
|
1670
|
+
() => import("./History-D8F7aYQU.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
|
1668
1671
|
);
|
1669
|
-
const routes$
|
1672
|
+
const routes$2 = [
|
1670
1673
|
{
|
1671
1674
|
path: ":collectionType/:slug/:id/history",
|
1672
1675
|
Component: ProtectedHistoryPage
|
@@ -1676,32 +1679,45 @@ const routes$1 = [
|
|
1676
1679
|
Component: ProtectedHistoryPage
|
1677
1680
|
}
|
1678
1681
|
];
|
1682
|
+
const ProtectedPreviewPage = React.lazy(
|
1683
|
+
() => import("./Preview-DECOhK0D.mjs").then((mod) => ({ default: mod.ProtectedPreviewPage }))
|
1684
|
+
);
|
1685
|
+
const routes$1 = [
|
1686
|
+
{
|
1687
|
+
path: ":collectionType/:slug/:id/preview",
|
1688
|
+
Component: ProtectedPreviewPage
|
1689
|
+
},
|
1690
|
+
{
|
1691
|
+
path: ":collectionType/:slug/preview",
|
1692
|
+
Component: ProtectedPreviewPage
|
1693
|
+
}
|
1694
|
+
];
|
1679
1695
|
const ProtectedEditViewPage = lazy(
|
1680
|
-
() => import("./EditViewPage-
|
1696
|
+
() => import("./EditViewPage-oOLeTySr.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
|
1681
1697
|
);
|
1682
1698
|
const ProtectedListViewPage = lazy(
|
1683
|
-
() => import("./ListViewPage-
|
1699
|
+
() => import("./ListViewPage-C73F0jPh.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
|
1684
1700
|
);
|
1685
1701
|
const ProtectedListConfiguration = lazy(
|
1686
|
-
() => import("./ListConfigurationPage-
|
1702
|
+
() => import("./ListConfigurationPage-DqAdSPwC.mjs").then((mod) => ({
|
1687
1703
|
default: mod.ProtectedListConfiguration
|
1688
1704
|
}))
|
1689
1705
|
);
|
1690
1706
|
const ProtectedEditConfigurationPage = lazy(
|
1691
|
-
() => import("./EditConfigurationPage-
|
1707
|
+
() => import("./EditConfigurationPage-BZPXItXo.mjs").then((mod) => ({
|
1692
1708
|
default: mod.ProtectedEditConfigurationPage
|
1693
1709
|
}))
|
1694
1710
|
);
|
1695
1711
|
const ProtectedComponentConfigurationPage = lazy(
|
1696
|
-
() => import("./ComponentConfigurationPage-
|
1712
|
+
() => import("./ComponentConfigurationPage-DaPOlQaD.mjs").then((mod) => ({
|
1697
1713
|
default: mod.ProtectedComponentConfigurationPage
|
1698
1714
|
}))
|
1699
1715
|
);
|
1700
1716
|
const NoPermissions = lazy(
|
1701
|
-
() => import("./NoPermissionsPage-
|
1717
|
+
() => import("./NoPermissionsPage-UnEgMGK4.mjs").then((mod) => ({ default: mod.NoPermissions }))
|
1702
1718
|
);
|
1703
1719
|
const NoContentType = lazy(
|
1704
|
-
() => import("./NoContentTypePage-
|
1720
|
+
() => import("./NoContentTypePage-B5w7iJOF.mjs").then((mod) => ({ default: mod.NoContentType }))
|
1705
1721
|
);
|
1706
1722
|
const CollectionTypePages = () => {
|
1707
1723
|
const { collectionType } = useParams();
|
@@ -1713,7 +1729,7 @@ const CollectionTypePages = () => {
|
|
1713
1729
|
const CLONE_RELATIVE_PATH = ":collectionType/:slug/clone/:origin";
|
1714
1730
|
const CLONE_PATH = `/content-manager/${CLONE_RELATIVE_PATH}`;
|
1715
1731
|
const LIST_RELATIVE_PATH = ":collectionType/:slug";
|
1716
|
-
const LIST_PATH = `/content-manager
|
1732
|
+
const LIST_PATH = `/content-manager/collection-types/:slug`;
|
1717
1733
|
const routes = [
|
1718
1734
|
{
|
1719
1735
|
path: LIST_RELATIVE_PATH,
|
@@ -1747,6 +1763,7 @@ const routes = [
|
|
1747
1763
|
path: "no-content-types",
|
1748
1764
|
Component: NoContentType
|
1749
1765
|
},
|
1766
|
+
...routes$2,
|
1750
1767
|
...routes$1
|
1751
1768
|
];
|
1752
1769
|
const DocumentActions = ({ actions: actions2 }) => {
|
@@ -1845,6 +1862,11 @@ const DocumentActionButton = (action) => {
|
|
1845
1862
|
) : null
|
1846
1863
|
] });
|
1847
1864
|
};
|
1865
|
+
const MenuItem = styled(Menu.Item)`
|
1866
|
+
&:hover {
|
1867
|
+
background: ${({ theme, isVariantDanger, isDisabled }) => isVariantDanger && !isDisabled ? theme.colors.danger100 : "neutral"};
|
1868
|
+
}
|
1869
|
+
`;
|
1848
1870
|
const DocumentActionsMenu = ({
|
1849
1871
|
actions: actions2,
|
1850
1872
|
children,
|
@@ -1903,48 +1925,32 @@ const DocumentActionsMenu = ({
|
|
1903
1925
|
/* @__PURE__ */ jsxs(Menu.Content, { maxHeight: void 0, popoverPlacement: "bottom-end", children: [
|
1904
1926
|
actions2.map((action) => {
|
1905
1927
|
return /* @__PURE__ */ jsx(
|
1906
|
-
|
1928
|
+
MenuItem,
|
1907
1929
|
{
|
1908
1930
|
disabled: action.disabled,
|
1909
1931
|
onSelect: handleClick(action),
|
1910
1932
|
display: "block",
|
1911
|
-
|
1912
|
-
|
1913
|
-
|
1914
|
-
|
1915
|
-
|
1916
|
-
|
1917
|
-
|
1918
|
-
|
1919
|
-
|
1920
|
-
|
1921
|
-
|
1922
|
-
|
1923
|
-
|
1924
|
-
|
1925
|
-
|
1926
|
-
|
1927
|
-
|
1928
|
-
|
1929
|
-
|
1930
|
-
|
1931
|
-
|
1932
|
-
Flex,
|
1933
|
-
{
|
1934
|
-
alignItems: "center",
|
1935
|
-
background: "alternative100",
|
1936
|
-
borderStyle: "solid",
|
1937
|
-
borderColor: "alternative200",
|
1938
|
-
borderWidth: "1px",
|
1939
|
-
height: 5,
|
1940
|
-
paddingLeft: 2,
|
1941
|
-
paddingRight: 2,
|
1942
|
-
hasRadius: true,
|
1943
|
-
color: "alternative600",
|
1944
|
-
children: /* @__PURE__ */ jsx(Typography, { variant: "sigma", fontWeight: "bold", lineHeight: 1, children: formatMessage({ id: "global.new", defaultMessage: "New" }) })
|
1945
|
-
}
|
1946
|
-
)
|
1947
|
-
] })
|
1933
|
+
isVariantDanger: action.variant === "danger",
|
1934
|
+
isDisabled: action.disabled,
|
1935
|
+
children: /* @__PURE__ */ jsx(Flex, { justifyContent: "space-between", gap: 4, children: /* @__PURE__ */ jsxs(
|
1936
|
+
Flex,
|
1937
|
+
{
|
1938
|
+
color: !action.disabled ? convertActionVariantToColor(action.variant) : "inherit",
|
1939
|
+
gap: 2,
|
1940
|
+
tag: "span",
|
1941
|
+
children: [
|
1942
|
+
/* @__PURE__ */ jsx(
|
1943
|
+
Flex,
|
1944
|
+
{
|
1945
|
+
tag: "span",
|
1946
|
+
color: !action.disabled ? convertActionVariantToIconColor(action.variant) : "inherit",
|
1947
|
+
children: action.icon
|
1948
|
+
}
|
1949
|
+
),
|
1950
|
+
action.label
|
1951
|
+
]
|
1952
|
+
}
|
1953
|
+
) })
|
1948
1954
|
},
|
1949
1955
|
action.id
|
1950
1956
|
);
|
@@ -2081,6 +2087,7 @@ const PublishAction$1 = ({
|
|
2081
2087
|
const { _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler();
|
2082
2088
|
const isListView = useMatch(LIST_PATH) !== null;
|
2083
2089
|
const isCloning = useMatch(CLONE_PATH) !== null;
|
2090
|
+
const { id } = useParams();
|
2084
2091
|
const { formatMessage } = useIntl();
|
2085
2092
|
const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
|
2086
2093
|
const { publish } = useDocumentActions();
|
@@ -2183,10 +2190,12 @@ const PublishAction$1 = ({
|
|
2183
2190
|
transformData(formValues)
|
2184
2191
|
);
|
2185
2192
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2186
|
-
|
2187
|
-
|
2188
|
-
|
2189
|
-
|
2193
|
+
if (id === "create") {
|
2194
|
+
navigate({
|
2195
|
+
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
2196
|
+
search: rawQuery
|
2197
|
+
});
|
2198
|
+
}
|
2190
2199
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2191
2200
|
setErrors(formatValidationErrors(res.error));
|
2192
2201
|
}
|
@@ -2239,6 +2248,7 @@ const PublishAction$1 = ({
|
|
2239
2248
|
};
|
2240
2249
|
};
|
2241
2250
|
PublishAction$1.type = "publish";
|
2251
|
+
PublishAction$1.position = "panel";
|
2242
2252
|
const UpdateAction = ({
|
2243
2253
|
activeTab,
|
2244
2254
|
documentId,
|
@@ -2261,96 +2271,134 @@ const UpdateAction = ({
|
|
2261
2271
|
const validate = useForm("UpdateAction", (state) => state.validate);
|
2262
2272
|
const setErrors = useForm("UpdateAction", (state) => state.setErrors);
|
2263
2273
|
const resetForm = useForm("PublishAction", ({ resetForm: resetForm2 }) => resetForm2);
|
2264
|
-
|
2265
|
-
|
2266
|
-
|
2267
|
-
|
2268
|
-
|
2269
|
-
|
2270
|
-
|
2271
|
-
|
2272
|
-
|
2273
|
-
|
2274
|
-
|
2275
|
-
|
2276
|
-
|
2277
|
-
|
2278
|
-
|
2279
|
-
|
2280
|
-
status: "draft"
|
2274
|
+
const handleUpdate = React.useCallback(async () => {
|
2275
|
+
setSubmitting(true);
|
2276
|
+
try {
|
2277
|
+
if (!modified) {
|
2278
|
+
return;
|
2279
|
+
}
|
2280
|
+
const { errors } = await validate(true, {
|
2281
|
+
status: "draft"
|
2282
|
+
});
|
2283
|
+
if (errors) {
|
2284
|
+
toggleNotification({
|
2285
|
+
type: "danger",
|
2286
|
+
message: formatMessage({
|
2287
|
+
id: "content-manager.validation.error",
|
2288
|
+
defaultMessage: "There are validation errors in your document. Please fix them before saving."
|
2289
|
+
})
|
2281
2290
|
});
|
2282
|
-
|
2283
|
-
|
2284
|
-
|
2285
|
-
|
2286
|
-
|
2287
|
-
|
2288
|
-
|
2289
|
-
|
2290
|
-
|
2291
|
-
|
2292
|
-
|
2293
|
-
|
2294
|
-
|
2295
|
-
model,
|
2296
|
-
documentId: cloneMatch.params.origin,
|
2297
|
-
params
|
2298
|
-
},
|
2299
|
-
transformData(document)
|
2300
|
-
);
|
2301
|
-
if ("data" in res) {
|
2302
|
-
navigate(
|
2303
|
-
{
|
2304
|
-
pathname: `../${res.data.documentId}`,
|
2305
|
-
search: rawQuery
|
2306
|
-
},
|
2307
|
-
{ relative: "path" }
|
2308
|
-
);
|
2309
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2310
|
-
setErrors(formatValidationErrors(res.error));
|
2311
|
-
}
|
2312
|
-
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2313
|
-
const res = await update(
|
2291
|
+
return;
|
2292
|
+
}
|
2293
|
+
if (isCloning) {
|
2294
|
+
const res = await clone(
|
2295
|
+
{
|
2296
|
+
model,
|
2297
|
+
documentId: cloneMatch.params.origin,
|
2298
|
+
params
|
2299
|
+
},
|
2300
|
+
transformData(document)
|
2301
|
+
);
|
2302
|
+
if ("data" in res) {
|
2303
|
+
navigate(
|
2314
2304
|
{
|
2315
|
-
|
2316
|
-
|
2317
|
-
documentId,
|
2318
|
-
params
|
2305
|
+
pathname: `../${res.data.documentId}`,
|
2306
|
+
search: rawQuery
|
2319
2307
|
},
|
2320
|
-
|
2308
|
+
{ relative: "path" }
|
2321
2309
|
);
|
2322
|
-
|
2323
|
-
|
2324
|
-
|
2325
|
-
|
2326
|
-
|
2310
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2311
|
+
setErrors(formatValidationErrors(res.error));
|
2312
|
+
}
|
2313
|
+
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2314
|
+
const res = await update(
|
2315
|
+
{
|
2316
|
+
collectionType,
|
2317
|
+
model,
|
2318
|
+
documentId,
|
2319
|
+
params
|
2320
|
+
},
|
2321
|
+
transformData(document)
|
2322
|
+
);
|
2323
|
+
if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2324
|
+
setErrors(formatValidationErrors(res.error));
|
2327
2325
|
} else {
|
2328
|
-
|
2326
|
+
resetForm();
|
2327
|
+
}
|
2328
|
+
} else {
|
2329
|
+
const res = await create(
|
2330
|
+
{
|
2331
|
+
model,
|
2332
|
+
params
|
2333
|
+
},
|
2334
|
+
transformData(document)
|
2335
|
+
);
|
2336
|
+
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2337
|
+
navigate(
|
2329
2338
|
{
|
2330
|
-
|
2331
|
-
|
2339
|
+
pathname: `../${res.data.documentId}`,
|
2340
|
+
search: rawQuery
|
2332
2341
|
},
|
2333
|
-
|
2342
|
+
{ replace: true, relative: "path" }
|
2334
2343
|
);
|
2335
|
-
|
2336
|
-
|
2337
|
-
{
|
2338
|
-
pathname: `../${res.data.documentId}`,
|
2339
|
-
search: rawQuery
|
2340
|
-
},
|
2341
|
-
{ replace: true, relative: "path" }
|
2342
|
-
);
|
2343
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2344
|
-
setErrors(formatValidationErrors(res.error));
|
2345
|
-
}
|
2344
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2345
|
+
setErrors(formatValidationErrors(res.error));
|
2346
2346
|
}
|
2347
|
-
} finally {
|
2348
|
-
setSubmitting(false);
|
2349
2347
|
}
|
2348
|
+
} finally {
|
2349
|
+
setSubmitting(false);
|
2350
2350
|
}
|
2351
|
+
}, [
|
2352
|
+
clone,
|
2353
|
+
cloneMatch?.params.origin,
|
2354
|
+
collectionType,
|
2355
|
+
create,
|
2356
|
+
document,
|
2357
|
+
documentId,
|
2358
|
+
formatMessage,
|
2359
|
+
formatValidationErrors,
|
2360
|
+
isCloning,
|
2361
|
+
model,
|
2362
|
+
modified,
|
2363
|
+
navigate,
|
2364
|
+
params,
|
2365
|
+
rawQuery,
|
2366
|
+
resetForm,
|
2367
|
+
setErrors,
|
2368
|
+
setSubmitting,
|
2369
|
+
toggleNotification,
|
2370
|
+
update,
|
2371
|
+
validate
|
2372
|
+
]);
|
2373
|
+
React.useEffect(() => {
|
2374
|
+
const handleKeyDown = (e) => {
|
2375
|
+
if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
|
2376
|
+
e.preventDefault();
|
2377
|
+
handleUpdate();
|
2378
|
+
}
|
2379
|
+
};
|
2380
|
+
window.addEventListener("keydown", handleKeyDown);
|
2381
|
+
return () => {
|
2382
|
+
window.removeEventListener("keydown", handleKeyDown);
|
2383
|
+
};
|
2384
|
+
}, [handleUpdate]);
|
2385
|
+
return {
|
2386
|
+
/**
|
2387
|
+
* Disabled when:
|
2388
|
+
* - the form is submitting
|
2389
|
+
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
2390
|
+
* - the active tab is the published tab
|
2391
|
+
*/
|
2392
|
+
disabled: isSubmitting || !modified && !isCloning || activeTab === "published",
|
2393
|
+
label: formatMessage({
|
2394
|
+
id: "global.save",
|
2395
|
+
defaultMessage: "Save"
|
2396
|
+
}),
|
2397
|
+
onClick: handleUpdate
|
2351
2398
|
};
|
2352
2399
|
};
|
2353
2400
|
UpdateAction.type = "update";
|
2401
|
+
UpdateAction.position = "panel";
|
2354
2402
|
const UNPUBLISH_DRAFT_OPTIONS = {
|
2355
2403
|
KEEP: "keep",
|
2356
2404
|
DISCARD: "discard"
|
@@ -2473,6 +2521,7 @@ const UnpublishAction$1 = ({
|
|
2473
2521
|
};
|
2474
2522
|
};
|
2475
2523
|
UnpublishAction$1.type = "unpublish";
|
2524
|
+
UnpublishAction$1.position = "panel";
|
2476
2525
|
const DiscardAction = ({
|
2477
2526
|
activeTab,
|
2478
2527
|
documentId,
|
@@ -2523,6 +2572,7 @@ const DiscardAction = ({
|
|
2523
2572
|
};
|
2524
2573
|
};
|
2525
2574
|
DiscardAction.type = "discard";
|
2575
|
+
DiscardAction.position = "panel";
|
2526
2576
|
const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
|
2527
2577
|
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
2528
2578
|
const RelativeTime = React.forwardRef(
|
@@ -2535,7 +2585,7 @@ const RelativeTime = React.forwardRef(
|
|
2535
2585
|
});
|
2536
2586
|
const unit = intervals.find((intervalUnit) => {
|
2537
2587
|
return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);
|
2538
|
-
});
|
2588
|
+
}) ?? "seconds";
|
2539
2589
|
const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];
|
2540
2590
|
const customInterval = customIntervals.find(
|
2541
2591
|
(custom) => interval[custom.unit] < custom.threshold
|
@@ -2569,19 +2619,29 @@ const getDisplayName = ({
|
|
2569
2619
|
return email ?? "";
|
2570
2620
|
};
|
2571
2621
|
const capitalise = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
2572
|
-
const DocumentStatus = ({ status = "draft", ...restProps }) => {
|
2622
|
+
const DocumentStatus = ({ status = "draft", size = "S", ...restProps }) => {
|
2573
2623
|
const statusVariant = status === "draft" ? "secondary" : status === "published" ? "success" : "alternative";
|
2574
|
-
|
2624
|
+
const { formatMessage } = useIntl();
|
2625
|
+
return /* @__PURE__ */ jsx(Status, { ...restProps, size, variant: statusVariant, children: /* @__PURE__ */ jsx(Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: formatMessage({
|
2626
|
+
id: `content-manager.containers.List.${status}`,
|
2627
|
+
defaultMessage: capitalise(status)
|
2628
|
+
}) }) });
|
2575
2629
|
};
|
2576
2630
|
const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
|
2577
2631
|
const { formatMessage } = useIntl();
|
2578
2632
|
const isCloning = useMatch(CLONE_PATH) !== null;
|
2633
|
+
const params = useParams();
|
2579
2634
|
const title = isCreating ? formatMessage({
|
2580
2635
|
id: "content-manager.containers.edit.title.new",
|
2581
2636
|
defaultMessage: "Create an entry"
|
2582
2637
|
}) : documentTitle;
|
2583
2638
|
return /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "flex-start", paddingTop: 6, paddingBottom: 4, gap: 2, children: [
|
2584
|
-
/* @__PURE__ */ jsx(
|
2639
|
+
/* @__PURE__ */ jsx(
|
2640
|
+
BackButton,
|
2641
|
+
{
|
2642
|
+
fallback: params.collectionType === SINGLE_TYPES ? void 0 : `../${COLLECTION_TYPES}/${params.slug}`
|
2643
|
+
}
|
2644
|
+
),
|
2585
2645
|
/* @__PURE__ */ jsxs(Flex, { width: "100%", justifyContent: "space-between", gap: "80px", alignItems: "flex-start", children: [
|
2586
2646
|
/* @__PURE__ */ jsx(Typography, { variant: "alpha", tag: "h1", children: title }),
|
2587
2647
|
/* @__PURE__ */ jsx(HeaderToolbar, {})
|
@@ -2632,7 +2692,7 @@ const HeaderToolbar = () => {
|
|
2632
2692
|
meta: isCloning ? void 0 : meta,
|
2633
2693
|
collectionType
|
2634
2694
|
},
|
2635
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
2695
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("header"),
|
2636
2696
|
children: (actions2) => {
|
2637
2697
|
const headerActions = actions2.filter((action) => {
|
2638
2698
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -2840,6 +2900,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
|
|
2840
2900
|
};
|
2841
2901
|
};
|
2842
2902
|
ConfigureTheViewAction.type = "configure-the-view";
|
2903
|
+
ConfigureTheViewAction.position = "header";
|
2843
2904
|
const EditTheModelAction = ({ model }) => {
|
2844
2905
|
const navigate = useNavigate();
|
2845
2906
|
const { formatMessage } = useIntl();
|
@@ -2856,6 +2917,7 @@ const EditTheModelAction = ({ model }) => {
|
|
2856
2917
|
};
|
2857
2918
|
};
|
2858
2919
|
EditTheModelAction.type = "edit-the-model";
|
2920
|
+
EditTheModelAction.position = "header";
|
2859
2921
|
const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
2860
2922
|
const navigate = useNavigate();
|
2861
2923
|
const { formatMessage } = useIntl();
|
@@ -2929,6 +2991,7 @@ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
|
2929
2991
|
};
|
2930
2992
|
};
|
2931
2993
|
DeleteAction$1.type = "delete";
|
2994
|
+
DeleteAction$1.position = ["header", "table-row"];
|
2932
2995
|
const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
|
2933
2996
|
const Panels = () => {
|
2934
2997
|
const isCloning = useMatch(CLONE_PATH) !== null;
|
@@ -2991,7 +3054,7 @@ const ActionsPanelContent = () => {
|
|
2991
3054
|
DescriptionComponentRenderer,
|
2992
3055
|
{
|
2993
3056
|
props,
|
2994
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
3057
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("panel"),
|
2995
3058
|
children: (actions2) => /* @__PURE__ */ jsx(DocumentActions, { actions: actions2 })
|
2996
3059
|
}
|
2997
3060
|
),
|
@@ -3268,18 +3331,10 @@ const SelectedEntriesTableContent = ({
|
|
3268
3331
|
search: row.locale && `?plugins[i18n][locale]=${row.locale}`
|
3269
3332
|
},
|
3270
3333
|
state: { from: pathname },
|
3271
|
-
label: formatMessage(
|
3272
|
-
|
3273
|
-
|
3274
|
-
|
3275
|
-
{
|
3276
|
-
id: "content-manager.components.ListViewHelperPluginTable.row-line",
|
3277
|
-
defaultMessage: "item line {number}"
|
3278
|
-
},
|
3279
|
-
{ number: index2 + 1 }
|
3280
|
-
)
|
3281
|
-
}
|
3282
|
-
),
|
3334
|
+
label: formatMessage({
|
3335
|
+
id: "content-manager.bulk-publish.edit",
|
3336
|
+
defaultMessage: "Edit"
|
3337
|
+
}),
|
3283
3338
|
target: "_blank",
|
3284
3339
|
marginLeft: "auto",
|
3285
3340
|
variant: "ghost",
|
@@ -3453,8 +3508,7 @@ const PublishAction = ({ documents, model }) => {
|
|
3453
3508
|
const refetchList = () => {
|
3454
3509
|
contentManagerApi.util.invalidateTags([{ type: "Document", id: `${model}_LIST` }]);
|
3455
3510
|
};
|
3456
|
-
if (!showPublishButton)
|
3457
|
-
return null;
|
3511
|
+
if (!showPublishButton) return null;
|
3458
3512
|
return {
|
3459
3513
|
actionType: "publish",
|
3460
3514
|
variant: "tertiary",
|
@@ -3522,8 +3576,7 @@ const DeleteAction = ({ documents, model }) => {
|
|
3522
3576
|
selectRow([]);
|
3523
3577
|
}
|
3524
3578
|
};
|
3525
|
-
if (!hasDeletePermission)
|
3526
|
-
return null;
|
3579
|
+
if (!hasDeletePermission) return null;
|
3527
3580
|
return {
|
3528
3581
|
variant: "danger-light",
|
3529
3582
|
label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
|
@@ -3572,8 +3625,7 @@ const UnpublishAction = ({ documents, model }) => {
|
|
3572
3625
|
}
|
3573
3626
|
};
|
3574
3627
|
const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published" || entry.status === "modified");
|
3575
|
-
if (!showUnpublishButton)
|
3576
|
-
return null;
|
3628
|
+
if (!showUnpublishButton) return null;
|
3577
3629
|
return {
|
3578
3630
|
variant: "tertiary",
|
3579
3631
|
label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
|
@@ -3678,7 +3730,7 @@ const TableActions = ({ document }) => {
|
|
3678
3730
|
DescriptionComponentRenderer,
|
3679
3731
|
{
|
3680
3732
|
props,
|
3681
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions().filter((action) => action.name !== "PublishAction"),
|
3733
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("table-row").filter((action) => action.name !== "PublishAction"),
|
3682
3734
|
children: (actions2) => {
|
3683
3735
|
const tableRowActions = actions2.filter((action) => {
|
3684
3736
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -3737,6 +3789,7 @@ const EditAction = ({ documentId }) => {
|
|
3737
3789
|
};
|
3738
3790
|
};
|
3739
3791
|
EditAction.type = "edit";
|
3792
|
+
EditAction.position = "table-row";
|
3740
3793
|
const StyledPencil = styled(Pencil)`
|
3741
3794
|
path {
|
3742
3795
|
fill: currentColor;
|
@@ -3813,6 +3866,7 @@ const CloneAction = ({ model, documentId }) => {
|
|
3813
3866
|
};
|
3814
3867
|
};
|
3815
3868
|
CloneAction.type = "clone";
|
3869
|
+
CloneAction.position = "table-row";
|
3816
3870
|
const StyledDuplicate = styled(Duplicate)`
|
3817
3871
|
path {
|
3818
3872
|
fill: currentColor;
|
@@ -3899,7 +3953,14 @@ class ContentManagerPlugin {
|
|
3899
3953
|
addDocumentHeaderAction: this.addDocumentHeaderAction.bind(this),
|
3900
3954
|
addEditViewSidePanel: this.addEditViewSidePanel.bind(this),
|
3901
3955
|
getBulkActions: () => this.bulkActions,
|
3902
|
-
getDocumentActions: () =>
|
3956
|
+
getDocumentActions: (position) => {
|
3957
|
+
if (position) {
|
3958
|
+
return this.documentActions.filter(
|
3959
|
+
(action) => action.position == void 0 || [action.position].flat().includes(position)
|
3960
|
+
);
|
3961
|
+
}
|
3962
|
+
return this.documentActions;
|
3963
|
+
},
|
3903
3964
|
getEditViewSidePanels: () => this.editViewSidePanels,
|
3904
3965
|
getHeaderActions: () => this.headerActions
|
3905
3966
|
}
|
@@ -3909,10 +3970,8 @@ class ContentManagerPlugin {
|
|
3909
3970
|
const getPrintableType = (value) => {
|
3910
3971
|
const nativeType = typeof value;
|
3911
3972
|
if (nativeType === "object") {
|
3912
|
-
if (value === null)
|
3913
|
-
|
3914
|
-
if (Array.isArray(value))
|
3915
|
-
return "array";
|
3973
|
+
if (value === null) return "null";
|
3974
|
+
if (Array.isArray(value)) return "array";
|
3916
3975
|
if (value instanceof Object && value.constructor.name !== "Object") {
|
3917
3976
|
return value.constructor.name;
|
3918
3977
|
}
|
@@ -3923,17 +3982,27 @@ const HistoryAction = ({ model, document }) => {
|
|
3923
3982
|
const { formatMessage } = useIntl();
|
3924
3983
|
const [{ query }] = useQueryParams();
|
3925
3984
|
const navigate = useNavigate();
|
3985
|
+
const { trackUsage } = useTracking();
|
3986
|
+
const { pathname } = useLocation();
|
3926
3987
|
const pluginsQueryParams = stringify({ plugins: query.plugins }, { encode: false });
|
3927
3988
|
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
3928
3989
|
return null;
|
3929
3990
|
}
|
3991
|
+
const handleOnClick = () => {
|
3992
|
+
const destination = { pathname: "history", search: pluginsQueryParams };
|
3993
|
+
trackUsage("willNavigate", {
|
3994
|
+
from: pathname,
|
3995
|
+
to: `${pathname}/${destination.pathname}`
|
3996
|
+
});
|
3997
|
+
navigate(destination);
|
3998
|
+
};
|
3930
3999
|
return {
|
3931
4000
|
icon: /* @__PURE__ */ jsx(ClockCounterClockwise, {}),
|
3932
4001
|
label: formatMessage({
|
3933
4002
|
id: "content-manager.history.document-action",
|
3934
4003
|
defaultMessage: "Content History"
|
3935
4004
|
}),
|
3936
|
-
onClick:
|
4005
|
+
onClick: handleOnClick,
|
3937
4006
|
disabled: (
|
3938
4007
|
/**
|
3939
4008
|
* The user is creating a new document.
|
@@ -3955,6 +4024,7 @@ const HistoryAction = ({ model, document }) => {
|
|
3955
4024
|
};
|
3956
4025
|
};
|
3957
4026
|
HistoryAction.type = "history";
|
4027
|
+
HistoryAction.position = "header";
|
3958
4028
|
const historyAdmin = {
|
3959
4029
|
bootstrap(app) {
|
3960
4030
|
const { addDocumentAction } = app.getPlugin("content-manager").apis;
|
@@ -4001,13 +4071,86 @@ const { setInitialData } = actions;
|
|
4001
4071
|
const reducer = combineReducers({
|
4002
4072
|
app: reducer$1
|
4003
4073
|
});
|
4004
|
-
const
|
4074
|
+
const previewApi = contentManagerApi.injectEndpoints({
|
4075
|
+
endpoints: (builder) => ({
|
4076
|
+
getPreviewUrl: builder.query({
|
4077
|
+
query({ query, params }) {
|
4078
|
+
return {
|
4079
|
+
url: `/content-manager/preview/url/${params.contentType}`,
|
4080
|
+
method: "GET",
|
4081
|
+
config: {
|
4082
|
+
params: query
|
4083
|
+
}
|
4084
|
+
};
|
4085
|
+
}
|
4086
|
+
})
|
4087
|
+
})
|
4088
|
+
});
|
4089
|
+
const { useGetPreviewUrlQuery } = previewApi;
|
4090
|
+
const ConditionalTooltip = ({ isShown, label, children }) => {
|
4091
|
+
if (isShown) {
|
4092
|
+
return /* @__PURE__ */ jsx(Tooltip, { label, children });
|
4093
|
+
}
|
4094
|
+
return children;
|
4095
|
+
};
|
4096
|
+
const PreviewSidePanel = ({ model, documentId, document }) => {
|
4097
|
+
const { formatMessage } = useIntl();
|
4098
|
+
const { trackUsage } = useTracking();
|
4099
|
+
const { pathname } = useLocation();
|
4100
|
+
const [{ query }] = useQueryParams();
|
4101
|
+
const isModified = useForm("PreviewSidePanel", (state) => state.modified);
|
4102
|
+
const { data, error } = useGetPreviewUrlQuery({
|
4103
|
+
params: {
|
4104
|
+
contentType: model
|
4105
|
+
},
|
4106
|
+
query: {
|
4107
|
+
documentId,
|
4108
|
+
locale: document?.locale,
|
4109
|
+
status: document?.status
|
4110
|
+
}
|
4111
|
+
});
|
4112
|
+
if (!data?.data?.url || error) {
|
4113
|
+
return null;
|
4114
|
+
}
|
4115
|
+
const trackNavigation = () => {
|
4116
|
+
const destinationPathname = pathname.replace(/\/$/, "") + "/preview";
|
4117
|
+
trackUsage("willNavigate", { from: pathname, to: destinationPathname });
|
4118
|
+
};
|
4119
|
+
return {
|
4120
|
+
title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
|
4121
|
+
content: /* @__PURE__ */ jsx(
|
4122
|
+
ConditionalTooltip,
|
4123
|
+
{
|
4124
|
+
label: formatMessage({
|
4125
|
+
id: "content-manager.preview.panel.button-disabled-tooltip",
|
4126
|
+
defaultMessage: "Please save to open the preview"
|
4127
|
+
}),
|
4128
|
+
isShown: isModified,
|
4129
|
+
children: /* @__PURE__ */ jsx(Box, { cursor: "not-allowed", width: "100%", children: /* @__PURE__ */ jsx(
|
4130
|
+
Button,
|
4131
|
+
{
|
4132
|
+
variant: "tertiary",
|
4133
|
+
tag: Link,
|
4134
|
+
to: { pathname: "preview", search: stringify(query, { encode: false }) },
|
4135
|
+
onClick: trackNavigation,
|
4136
|
+
width: "100%",
|
4137
|
+
disabled: isModified,
|
4138
|
+
pointerEvents: isModified ? "none" : void 0,
|
4139
|
+
tabIndex: isModified ? -1 : void 0,
|
4140
|
+
children: formatMessage({
|
4141
|
+
id: "content-manager.preview.panel.button",
|
4142
|
+
defaultMessage: "Open preview"
|
4143
|
+
})
|
4144
|
+
}
|
4145
|
+
) })
|
4146
|
+
}
|
4147
|
+
)
|
4148
|
+
};
|
4149
|
+
};
|
4005
4150
|
const previewAdmin = {
|
4006
4151
|
bootstrap(app) {
|
4007
|
-
|
4008
|
-
|
4009
|
-
}
|
4010
|
-
console.log("Bootstrapping preview admin");
|
4152
|
+
const contentManagerPluginApis = app.getPlugin("content-manager").apis;
|
4153
|
+
contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
|
4011
4154
|
}
|
4012
4155
|
};
|
4013
4156
|
const index = {
|
@@ -4029,7 +4172,7 @@ const index = {
|
|
4029
4172
|
app.router.addRoute({
|
4030
4173
|
path: "content-manager/*",
|
4031
4174
|
lazy: async () => {
|
4032
|
-
const { Layout } = await import("./layout-
|
4175
|
+
const { Layout } = await import("./layout-DY_D9MGA.mjs");
|
4033
4176
|
return {
|
4034
4177
|
Component: Layout
|
4035
4178
|
};
|
@@ -4049,7 +4192,7 @@ const index = {
|
|
4049
4192
|
async registerTrads({ locales }) {
|
4050
4193
|
const importedTrads = await Promise.all(
|
4051
4194
|
locales.map((locale) => {
|
4052
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-
|
4195
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-Dtk_ot79.mjs"), "./translations/es.json": () => import("./es-D34tqjMw.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr--pg5jUbt.mjs"), "./translations/gu.json": () => import("./gu-CNpaMDpH.mjs"), "./translations/hi.json": () => import("./hi-Dwvd04m3.mjs"), "./translations/hu.json": () => import("./hu-CeYvaaO0.mjs"), "./translations/id.json": () => import("./id-BtwA9WJT.mjs"), "./translations/it.json": () => import("./it-BrVPqaf1.mjs"), "./translations/ja.json": () => import("./ja-BHqhDq4V.mjs"), "./translations/ko.json": () => import("./ko-HVQRlfUI.mjs"), "./translations/ml.json": () => import("./ml-BihZwQit.mjs"), "./translations/ms.json": () => import("./ms-m_WjyWx7.mjs"), "./translations/nl.json": () => import("./nl-D4R9gHx5.mjs"), "./translations/pl.json": () => import("./pl-sbx9mSt_.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-C71iDxnh.mjs"), "./translations/pt.json": () => import("./pt-BsaFvS8-.mjs"), "./translations/ru.json": () => import("./ru-BE6A4Exp.mjs"), "./translations/sa.json": () => import("./sa-Dag0k-Z8.mjs"), "./translations/sk.json": () => import("./sk-BFg-R8qJ.mjs"), "./translations/sv.json": () => import("./sv-CUnfWGsh.mjs"), "./translations/th.json": () => import("./th-BqbI8lIT.mjs"), "./translations/tr.json": () => import("./tr-CgeK3wJM.mjs"), "./translations/uk.json": () => import("./uk-CR-zDhAY.mjs"), "./translations/vi.json": () => import("./vi-DUXIk_fw.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BPQcRIyH.mjs"), "./translations/zh.json": () => import("./zh-BWZspA60.mjs") }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
|
4053
4196
|
return {
|
4054
4197
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
4055
4198
|
locale
|
@@ -4076,9 +4219,10 @@ export {
|
|
4076
4219
|
HOOKS as H,
|
4077
4220
|
InjectionZone as I,
|
4078
4221
|
useDocument as J,
|
4079
|
-
|
4080
|
-
|
4081
|
-
|
4222
|
+
useGetPreviewUrlQuery as K,
|
4223
|
+
index as L,
|
4224
|
+
useContentManagerContext as M,
|
4225
|
+
useDocumentActions as N,
|
4082
4226
|
Panels as P,
|
4083
4227
|
RelativeTime as R,
|
4084
4228
|
SINGLE_TYPES as S,
|
@@ -4110,4 +4254,4 @@ export {
|
|
4110
4254
|
capitalise as y,
|
4111
4255
|
useUpdateContentTypeConfigurationMutation as z
|
4112
4256
|
};
|
4113
|
-
//# sourceMappingURL=index-
|
4257
|
+
//# sourceMappingURL=index-C2SagWVW.mjs.map
|