@strapi/content-manager 0.0.0-experimental.af7e4e2471a04cc7f17b8ed3474530810efc02bc → 0.0.0-experimental.b0240412a007bea5d73c29b17c8ce04802fca919
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-_EzKh4uq.js → ComponentConfigurationPage-BLWQy8ru.js} +4 -5
- package/dist/_chunks/{ComponentConfigurationPage-_EzKh4uq.js.map → ComponentConfigurationPage-BLWQy8ru.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-aeNlfgi9.mjs → ComponentConfigurationPage-CtIa3aa2.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-aeNlfgi9.mjs.map → ComponentConfigurationPage-CtIa3aa2.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-DBVSBjCB.mjs → EditConfigurationPage-DsPR2DVk.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-DBVSBjCB.mjs.map → EditConfigurationPage-DsPR2DVk.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-DaK5-ltL.js → EditConfigurationPage-RQkymxCy.js} +4 -5
- package/dist/_chunks/{EditConfigurationPage-DaK5-ltL.js.map → EditConfigurationPage-RQkymxCy.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-C3qKSunQ.js → EditViewPage-B-kExt8C.js} +4 -5
- package/dist/_chunks/{EditViewPage-C3qKSunQ.js.map → EditViewPage-B-kExt8C.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-BeRi9xCR.mjs → EditViewPage-BPyVuPfM.mjs} +3 -3
- package/dist/_chunks/{EditViewPage-BeRi9xCR.mjs.map → EditViewPage-BPyVuPfM.mjs.map} +1 -1
- package/dist/_chunks/{Field-BwLr5b0V.js → Field-DPIsQRre.js} +155 -120
- package/dist/_chunks/Field-DPIsQRre.js.map +1 -0
- package/dist/_chunks/{Field-CfbMEZLv.mjs → Field-Dltnt1km.mjs} +153 -118
- package/dist/_chunks/Field-Dltnt1km.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-BSInvgp4.js → Form-BFi4MXMT.js} +5 -6
- package/dist/_chunks/{Form-BSInvgp4.js.map → Form-BFi4MXMT.js.map} +1 -1
- package/dist/_chunks/{Form-Br-9I4vG.mjs → Form-C1IcWm1u.mjs} +3 -3
- package/dist/_chunks/{Form-Br-9I4vG.mjs.map → Form-C1IcWm1u.mjs.map} +1 -1
- package/dist/_chunks/{History-BQ721fHN.mjs → History-04ChQ4pl.mjs} +36 -10
- package/dist/_chunks/History-04ChQ4pl.mjs.map +1 -0
- package/dist/_chunks/{History-BHH0axCz.js → History-wjcK4L0C.js} +36 -11
- package/dist/_chunks/History-wjcK4L0C.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-BVtVADtP.mjs → ListConfigurationPage-BYqPYLSU.mjs} +3 -3
- package/dist/_chunks/{ListConfigurationPage-BVtVADtP.mjs.map → ListConfigurationPage-BYqPYLSU.mjs.map} +1 -1
- package/dist/_chunks/{ListConfigurationPage-B7VtZkjG.js → ListConfigurationPage-CRbxIC3J.js} +4 -5
- package/dist/_chunks/{ListConfigurationPage-B7VtZkjG.js.map → ListConfigurationPage-CRbxIC3J.js.map} +1 -1
- package/dist/_chunks/{ListViewPage-C4UCZKeD.js → ListViewPage-D5NY9183.js} +51 -51
- package/dist/_chunks/ListViewPage-D5NY9183.js.map +1 -0
- package/dist/_chunks/{ListViewPage-Dq7nBEKD.mjs → ListViewPage-FU2LBuhl.mjs} +50 -49
- package/dist/_chunks/ListViewPage-FU2LBuhl.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-YNlmMHbx.js → NoContentTypePage-BgQVE_Qb.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-YNlmMHbx.js.map → NoContentTypePage-BgQVE_Qb.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-CQlgc_9h.mjs → NoContentTypePage-DCKUkwb8.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-CQlgc_9h.mjs.map → NoContentTypePage-DCKUkwb8.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CERDW9_P.js → NoPermissionsPage-C5jwn70o.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CERDW9_P.js.map → NoPermissionsPage-C5jwn70o.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CT2YbxJK.mjs → NoPermissionsPage-jqve7C8l.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CT2YbxJK.mjs.map → NoPermissionsPage-jqve7C8l.mjs.map} +1 -1
- package/dist/_chunks/{Preview-GZFXtAgo.mjs → Preview-BMYN548c.mjs} +51 -13
- package/dist/_chunks/Preview-BMYN548c.mjs.map +1 -0
- package/dist/_chunks/{Preview-D9FlX2H8.js → Preview-DaOihysv.js} +50 -13
- package/dist/_chunks/Preview-DaOihysv.js.map +1 -0
- package/dist/_chunks/{Relations-CcJBqH7I.js → Relations-CTGM7Hv5.js} +7 -10
- package/dist/_chunks/{Relations-CcJBqH7I.js.map → Relations-CTGM7Hv5.js.map} +1 -1
- package/dist/_chunks/{Relations-49C4HPsL.mjs → Relations-gscPkxjF.mjs} +6 -8
- package/dist/_chunks/{Relations-49C4HPsL.mjs.map → Relations-gscPkxjF.mjs.map} +1 -1
- package/dist/_chunks/{en-DTWPCdTS.js → en-BzQmavmK.js} +9 -3
- package/dist/_chunks/{en-DTWPCdTS.js.map → en-BzQmavmK.js.map} +1 -1
- package/dist/_chunks/{en-CfIXaZf9.mjs → en-CSxLmrh1.mjs} +9 -3
- package/dist/_chunks/{en-CfIXaZf9.mjs.map → en-CSxLmrh1.mjs.map} +1 -1
- package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
- package/dist/_chunks/{index-DUjGm1xz.js → index-Ca7YWlAA.js} +266 -150
- package/dist/_chunks/index-Ca7YWlAA.js.map +1 -0
- package/dist/_chunks/{index-CP5EOEiH.mjs → index-DqasUQ6Q.mjs} +266 -149
- package/dist/_chunks/index-DqasUQ6Q.mjs.map +1 -0
- package/dist/_chunks/{layout-zHc8BsKI.js → layout-BW80JSCd.js} +5 -6
- package/dist/_chunks/{layout-zHc8BsKI.js.map → layout-BW80JSCd.js.map} +1 -1
- package/dist/_chunks/{layout-B3LdnMTA.mjs → layout-W3clJSCy.mjs} +4 -4
- package/dist/_chunks/{layout-B3LdnMTA.mjs.map → layout-W3clJSCy.mjs.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-DnT2jc-S.mjs → relations-BlDkoeWh.mjs} +2 -2
- package/dist/_chunks/{relations-DnT2jc-S.mjs.map → relations-BlDkoeWh.mjs.map} +1 -1
- package/dist/_chunks/{relations-DrsZXRl-.js → relations-C9Usz9k5.js} +2 -2
- package/dist/_chunks/{relations-DrsZXRl-.js.map → relations-C9Usz9k5.js.map} +1 -1
- 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 +2 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +2 -1
- package/dist/admin/src/content-manager.d.ts +3 -2
- package/dist/admin/src/exports.d.ts +1 -0
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +1 -1
- 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/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +4 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +4 -1
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +16 -19
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/server/index.js +230 -187
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +231 -187
- 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/controllers/history-version.d.ts +1 -1
- package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
- package/dist/server/src/history/services/history.d.ts +3 -3
- package/dist/server/src/history/services/history.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts +6 -10
- 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/validation/preview.d.ts.map +1 -1
- package/dist/server/src/preview/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/index.d.ts +1 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -1
- package/dist/server/src/preview/services/preview-config.d.ts +2 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
- package/dist/server/src/preview/utils.d.ts +1 -0
- 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-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/package.json +12 -11
- package/dist/_chunks/Field-BwLr5b0V.js.map +0 -1
- package/dist/_chunks/Field-CfbMEZLv.mjs.map +0 -1
- package/dist/_chunks/History-BHH0axCz.js.map +0 -1
- package/dist/_chunks/History-BQ721fHN.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-C4UCZKeD.js.map +0 -1
- package/dist/_chunks/ListViewPage-Dq7nBEKD.mjs.map +0 -1
- package/dist/_chunks/Preview-D9FlX2H8.js.map +0 -1
- package/dist/_chunks/Preview-GZFXtAgo.mjs.map +0 -1
- package/dist/_chunks/index-CP5EOEiH.mjs.map +0 -1
- package/dist/_chunks/index-DUjGm1xz.js.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";
|
@@ -168,7 +175,8 @@ const contentManagerApi = adminApi.enhanceEndpoints({
|
|
168
175
|
"InitialData",
|
169
176
|
"HistoryVersion",
|
170
177
|
"Relations",
|
171
|
-
"UidAvailability"
|
178
|
+
"UidAvailability",
|
179
|
+
"RecentDocumentList"
|
172
180
|
]
|
173
181
|
});
|
174
182
|
const documentApi = contentManagerApi.injectEndpoints({
|
@@ -186,7 +194,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
186
194
|
if (error) {
|
187
195
|
return [];
|
188
196
|
}
|
189
|
-
return [{ type: "Document", id: `${model}_LIST` }];
|
197
|
+
return [{ type: "Document", id: `${model}_LIST` }, "RecentDocumentList"];
|
190
198
|
}
|
191
199
|
}),
|
192
200
|
cloneDocument: builder.mutation({
|
@@ -200,7 +208,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
200
208
|
}),
|
201
209
|
invalidatesTags: (_result, _error, { model }) => [
|
202
210
|
{ type: "Document", id: `${model}_LIST` },
|
203
|
-
{ type: "UidAvailability", id: model }
|
211
|
+
{ type: "UidAvailability", id: model },
|
212
|
+
"RecentDocumentList"
|
204
213
|
]
|
205
214
|
}),
|
206
215
|
/**
|
@@ -219,8 +228,21 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
219
228
|
invalidatesTags: (result, _error, { model }) => [
|
220
229
|
{ type: "Document", id: `${model}_LIST` },
|
221
230
|
"Relations",
|
222
|
-
{ type: "UidAvailability", id: model }
|
223
|
-
|
231
|
+
{ type: "UidAvailability", id: model },
|
232
|
+
"RecentDocumentList"
|
233
|
+
],
|
234
|
+
transformResponse: (response, meta, arg) => {
|
235
|
+
if (!("data" in response) && arg.model === "plugin::users-permissions.user") {
|
236
|
+
return {
|
237
|
+
data: response,
|
238
|
+
meta: {
|
239
|
+
availableStatus: [],
|
240
|
+
availableLocales: []
|
241
|
+
}
|
242
|
+
};
|
243
|
+
}
|
244
|
+
return response;
|
245
|
+
}
|
224
246
|
}),
|
225
247
|
deleteDocument: builder.mutation({
|
226
248
|
query: ({ collectionType, model, documentId, params }) => ({
|
@@ -231,7 +253,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
231
253
|
}
|
232
254
|
}),
|
233
255
|
invalidatesTags: (_result, _error, { collectionType, model }) => [
|
234
|
-
{ type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model }
|
256
|
+
{ type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },
|
257
|
+
"RecentDocumentList"
|
235
258
|
]
|
236
259
|
}),
|
237
260
|
deleteManyDocuments: builder.mutation({
|
@@ -243,7 +266,10 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
243
266
|
params
|
244
267
|
}
|
245
268
|
}),
|
246
|
-
invalidatesTags: (_res, _error, { model }) => [
|
269
|
+
invalidatesTags: (_res, _error, { model }) => [
|
270
|
+
{ type: "Document", id: `${model}_LIST` },
|
271
|
+
"RecentDocumentList"
|
272
|
+
]
|
247
273
|
}),
|
248
274
|
discardDocument: builder.mutation({
|
249
275
|
query: ({ collectionType, model, documentId, params }) => ({
|
@@ -261,7 +287,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
261
287
|
},
|
262
288
|
{ type: "Document", id: `${model}_LIST` },
|
263
289
|
"Relations",
|
264
|
-
{ type: "UidAvailability", id: model }
|
290
|
+
{ type: "UidAvailability", id: model },
|
291
|
+
"RecentDocumentList"
|
265
292
|
];
|
266
293
|
}
|
267
294
|
}),
|
@@ -274,7 +301,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
274
301
|
url: `/content-manager/collection-types/${model}`,
|
275
302
|
method: "GET",
|
276
303
|
config: {
|
277
|
-
params
|
304
|
+
params: stringify(params, { encode: true })
|
278
305
|
}
|
279
306
|
}),
|
280
307
|
providesTags: (result, _error, arg) => {
|
@@ -356,7 +383,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
356
383
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
357
384
|
},
|
358
385
|
{ type: "Document", id: `${model}_LIST` },
|
359
|
-
"Relations"
|
386
|
+
"Relations",
|
387
|
+
"RecentDocumentList"
|
360
388
|
];
|
361
389
|
}
|
362
390
|
}),
|
@@ -387,7 +415,9 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
387
415
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
388
416
|
},
|
389
417
|
"Relations",
|
390
|
-
{ type: "UidAvailability", id: model }
|
418
|
+
{ type: "UidAvailability", id: model },
|
419
|
+
"RecentDocumentList",
|
420
|
+
"RecentDocumentList"
|
391
421
|
];
|
392
422
|
},
|
393
423
|
async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {
|
@@ -417,7 +447,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
417
447
|
{
|
418
448
|
type: "Document",
|
419
449
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
420
|
-
}
|
450
|
+
},
|
451
|
+
"RecentDocumentList"
|
421
452
|
];
|
422
453
|
}
|
423
454
|
}),
|
@@ -430,7 +461,10 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
430
461
|
params
|
431
462
|
}
|
432
463
|
}),
|
433
|
-
invalidatesTags: (_res, _error, { model, documentIds }) =>
|
464
|
+
invalidatesTags: (_res, _error, { model, documentIds }) => [
|
465
|
+
...documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` })),
|
466
|
+
"RecentDocumentList"
|
467
|
+
]
|
434
468
|
})
|
435
469
|
})
|
436
470
|
});
|
@@ -453,8 +487,7 @@ const {
|
|
453
487
|
useUnpublishManyDocumentsMutation
|
454
488
|
} = documentApi;
|
455
489
|
const buildValidParams = (query) => {
|
456
|
-
if (!query)
|
457
|
-
return query;
|
490
|
+
if (!query) return query;
|
458
491
|
const { plugins: _, ...validQueryParams } = {
|
459
492
|
...query,
|
460
493
|
...Object.values(query?.plugins ?? {}).reduce(
|
@@ -462,9 +495,6 @@ const buildValidParams = (query) => {
|
|
462
495
|
{}
|
463
496
|
)
|
464
497
|
};
|
465
|
-
if ("_q" in validQueryParams) {
|
466
|
-
validQueryParams._q = encodeURIComponent(validQueryParams._q);
|
467
|
-
}
|
468
498
|
return validQueryParams;
|
469
499
|
};
|
470
500
|
const isBaseQueryError = (error) => {
|
@@ -1664,7 +1694,7 @@ const useDocumentActions = () => {
|
|
1664
1694
|
};
|
1665
1695
|
};
|
1666
1696
|
const ProtectedHistoryPage = React.lazy(
|
1667
|
-
() => import("./History-
|
1697
|
+
() => import("./History-04ChQ4pl.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
|
1668
1698
|
);
|
1669
1699
|
const routes$2 = [
|
1670
1700
|
{
|
@@ -1677,7 +1707,7 @@ const routes$2 = [
|
|
1677
1707
|
}
|
1678
1708
|
];
|
1679
1709
|
const ProtectedPreviewPage = React.lazy(
|
1680
|
-
() => import("./Preview-
|
1710
|
+
() => import("./Preview-BMYN548c.mjs").then((mod) => ({ default: mod.ProtectedPreviewPage }))
|
1681
1711
|
);
|
1682
1712
|
const routes$1 = [
|
1683
1713
|
{
|
@@ -1690,31 +1720,31 @@ const routes$1 = [
|
|
1690
1720
|
}
|
1691
1721
|
];
|
1692
1722
|
const ProtectedEditViewPage = lazy(
|
1693
|
-
() => import("./EditViewPage-
|
1723
|
+
() => import("./EditViewPage-BPyVuPfM.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
|
1694
1724
|
);
|
1695
1725
|
const ProtectedListViewPage = lazy(
|
1696
|
-
() => import("./ListViewPage-
|
1726
|
+
() => import("./ListViewPage-FU2LBuhl.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
|
1697
1727
|
);
|
1698
1728
|
const ProtectedListConfiguration = lazy(
|
1699
|
-
() => import("./ListConfigurationPage-
|
1729
|
+
() => import("./ListConfigurationPage-BYqPYLSU.mjs").then((mod) => ({
|
1700
1730
|
default: mod.ProtectedListConfiguration
|
1701
1731
|
}))
|
1702
1732
|
);
|
1703
1733
|
const ProtectedEditConfigurationPage = lazy(
|
1704
|
-
() => import("./EditConfigurationPage-
|
1734
|
+
() => import("./EditConfigurationPage-DsPR2DVk.mjs").then((mod) => ({
|
1705
1735
|
default: mod.ProtectedEditConfigurationPage
|
1706
1736
|
}))
|
1707
1737
|
);
|
1708
1738
|
const ProtectedComponentConfigurationPage = lazy(
|
1709
|
-
() => import("./ComponentConfigurationPage-
|
1739
|
+
() => import("./ComponentConfigurationPage-CtIa3aa2.mjs").then((mod) => ({
|
1710
1740
|
default: mod.ProtectedComponentConfigurationPage
|
1711
1741
|
}))
|
1712
1742
|
);
|
1713
1743
|
const NoPermissions = lazy(
|
1714
|
-
() => import("./NoPermissionsPage-
|
1744
|
+
() => import("./NoPermissionsPage-jqve7C8l.mjs").then((mod) => ({ default: mod.NoPermissions }))
|
1715
1745
|
);
|
1716
1746
|
const NoContentType = lazy(
|
1717
|
-
() => import("./NoContentTypePage-
|
1747
|
+
() => import("./NoContentTypePage-DCKUkwb8.mjs").then((mod) => ({ default: mod.NoContentType }))
|
1718
1748
|
);
|
1719
1749
|
const CollectionTypePages = () => {
|
1720
1750
|
const { collectionType } = useParams();
|
@@ -1859,6 +1889,11 @@ const DocumentActionButton = (action) => {
|
|
1859
1889
|
) : null
|
1860
1890
|
] });
|
1861
1891
|
};
|
1892
|
+
const MenuItem = styled(Menu.Item)`
|
1893
|
+
&:hover {
|
1894
|
+
background: ${({ theme, isVariantDanger, isDisabled }) => isVariantDanger && !isDisabled ? theme.colors.danger100 : "neutral"};
|
1895
|
+
}
|
1896
|
+
`;
|
1862
1897
|
const DocumentActionsMenu = ({
|
1863
1898
|
actions: actions2,
|
1864
1899
|
children,
|
@@ -1917,11 +1952,13 @@ const DocumentActionsMenu = ({
|
|
1917
1952
|
/* @__PURE__ */ jsxs(Menu.Content, { maxHeight: void 0, popoverPlacement: "bottom-end", children: [
|
1918
1953
|
actions2.map((action) => {
|
1919
1954
|
return /* @__PURE__ */ jsx(
|
1920
|
-
|
1955
|
+
MenuItem,
|
1921
1956
|
{
|
1922
1957
|
disabled: action.disabled,
|
1923
1958
|
onSelect: handleClick(action),
|
1924
1959
|
display: "block",
|
1960
|
+
isVariantDanger: action.variant === "danger",
|
1961
|
+
isDisabled: action.disabled,
|
1925
1962
|
children: /* @__PURE__ */ jsx(Flex, { justifyContent: "space-between", gap: 4, children: /* @__PURE__ */ jsxs(
|
1926
1963
|
Flex,
|
1927
1964
|
{
|
@@ -2077,6 +2114,7 @@ const PublishAction$1 = ({
|
|
2077
2114
|
const { _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler();
|
2078
2115
|
const isListView = useMatch(LIST_PATH) !== null;
|
2079
2116
|
const isCloning = useMatch(CLONE_PATH) !== null;
|
2117
|
+
const { id } = useParams();
|
2080
2118
|
const { formatMessage } = useIntl();
|
2081
2119
|
const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
|
2082
2120
|
const { publish } = useDocumentActions();
|
@@ -2179,10 +2217,12 @@ const PublishAction$1 = ({
|
|
2179
2217
|
transformData(formValues)
|
2180
2218
|
);
|
2181
2219
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2185
|
-
|
2220
|
+
if (id === "create") {
|
2221
|
+
navigate({
|
2222
|
+
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
2223
|
+
search: rawQuery
|
2224
|
+
});
|
2225
|
+
}
|
2186
2226
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2187
2227
|
setErrors(formatValidationErrors(res.error));
|
2188
2228
|
}
|
@@ -2235,6 +2275,7 @@ const PublishAction$1 = ({
|
|
2235
2275
|
};
|
2236
2276
|
};
|
2237
2277
|
PublishAction$1.type = "publish";
|
2278
|
+
PublishAction$1.position = "panel";
|
2238
2279
|
const UpdateAction = ({
|
2239
2280
|
activeTab,
|
2240
2281
|
documentId,
|
@@ -2257,96 +2298,134 @@ const UpdateAction = ({
|
|
2257
2298
|
const validate = useForm("UpdateAction", (state) => state.validate);
|
2258
2299
|
const setErrors = useForm("UpdateAction", (state) => state.setErrors);
|
2259
2300
|
const resetForm = useForm("PublishAction", ({ resetForm: resetForm2 }) => resetForm2);
|
2260
|
-
|
2261
|
-
|
2262
|
-
|
2263
|
-
|
2264
|
-
|
2265
|
-
|
2266
|
-
|
2267
|
-
|
2268
|
-
|
2269
|
-
|
2270
|
-
|
2271
|
-
|
2272
|
-
|
2273
|
-
|
2274
|
-
|
2275
|
-
|
2276
|
-
status: "draft"
|
2301
|
+
const handleUpdate = React.useCallback(async () => {
|
2302
|
+
setSubmitting(true);
|
2303
|
+
try {
|
2304
|
+
if (!modified) {
|
2305
|
+
return;
|
2306
|
+
}
|
2307
|
+
const { errors } = await validate(true, {
|
2308
|
+
status: "draft"
|
2309
|
+
});
|
2310
|
+
if (errors) {
|
2311
|
+
toggleNotification({
|
2312
|
+
type: "danger",
|
2313
|
+
message: formatMessage({
|
2314
|
+
id: "content-manager.validation.error",
|
2315
|
+
defaultMessage: "There are validation errors in your document. Please fix them before saving."
|
2316
|
+
})
|
2277
2317
|
});
|
2278
|
-
|
2279
|
-
|
2280
|
-
|
2281
|
-
|
2282
|
-
|
2283
|
-
|
2284
|
-
|
2285
|
-
|
2286
|
-
|
2287
|
-
|
2288
|
-
|
2289
|
-
|
2290
|
-
|
2291
|
-
model,
|
2292
|
-
documentId: cloneMatch.params.origin,
|
2293
|
-
params
|
2294
|
-
},
|
2295
|
-
transformData(document)
|
2296
|
-
);
|
2297
|
-
if ("data" in res) {
|
2298
|
-
navigate(
|
2299
|
-
{
|
2300
|
-
pathname: `../${res.data.documentId}`,
|
2301
|
-
search: rawQuery
|
2302
|
-
},
|
2303
|
-
{ relative: "path" }
|
2304
|
-
);
|
2305
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2306
|
-
setErrors(formatValidationErrors(res.error));
|
2307
|
-
}
|
2308
|
-
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2309
|
-
const res = await update(
|
2318
|
+
return;
|
2319
|
+
}
|
2320
|
+
if (isCloning) {
|
2321
|
+
const res = await clone(
|
2322
|
+
{
|
2323
|
+
model,
|
2324
|
+
documentId: cloneMatch.params.origin,
|
2325
|
+
params
|
2326
|
+
},
|
2327
|
+
transformData(document)
|
2328
|
+
);
|
2329
|
+
if ("data" in res) {
|
2330
|
+
navigate(
|
2310
2331
|
{
|
2311
|
-
|
2312
|
-
|
2313
|
-
documentId,
|
2314
|
-
params
|
2332
|
+
pathname: `../${res.data.documentId}`,
|
2333
|
+
search: rawQuery
|
2315
2334
|
},
|
2316
|
-
|
2335
|
+
{ relative: "path" }
|
2317
2336
|
);
|
2318
|
-
|
2319
|
-
|
2320
|
-
|
2321
|
-
|
2322
|
-
|
2337
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2338
|
+
setErrors(formatValidationErrors(res.error));
|
2339
|
+
}
|
2340
|
+
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2341
|
+
const res = await update(
|
2342
|
+
{
|
2343
|
+
collectionType,
|
2344
|
+
model,
|
2345
|
+
documentId,
|
2346
|
+
params
|
2347
|
+
},
|
2348
|
+
transformData(document)
|
2349
|
+
);
|
2350
|
+
if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2351
|
+
setErrors(formatValidationErrors(res.error));
|
2323
2352
|
} else {
|
2324
|
-
|
2353
|
+
resetForm();
|
2354
|
+
}
|
2355
|
+
} else {
|
2356
|
+
const res = await create(
|
2357
|
+
{
|
2358
|
+
model,
|
2359
|
+
params
|
2360
|
+
},
|
2361
|
+
transformData(document)
|
2362
|
+
);
|
2363
|
+
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2364
|
+
navigate(
|
2325
2365
|
{
|
2326
|
-
|
2327
|
-
|
2366
|
+
pathname: `../${res.data.documentId}`,
|
2367
|
+
search: rawQuery
|
2328
2368
|
},
|
2329
|
-
|
2369
|
+
{ replace: true, relative: "path" }
|
2330
2370
|
);
|
2331
|
-
|
2332
|
-
|
2333
|
-
{
|
2334
|
-
pathname: `../${res.data.documentId}`,
|
2335
|
-
search: rawQuery
|
2336
|
-
},
|
2337
|
-
{ replace: true, relative: "path" }
|
2338
|
-
);
|
2339
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2340
|
-
setErrors(formatValidationErrors(res.error));
|
2341
|
-
}
|
2371
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2372
|
+
setErrors(formatValidationErrors(res.error));
|
2342
2373
|
}
|
2343
|
-
} finally {
|
2344
|
-
setSubmitting(false);
|
2345
2374
|
}
|
2375
|
+
} finally {
|
2376
|
+
setSubmitting(false);
|
2346
2377
|
}
|
2378
|
+
}, [
|
2379
|
+
clone,
|
2380
|
+
cloneMatch?.params.origin,
|
2381
|
+
collectionType,
|
2382
|
+
create,
|
2383
|
+
document,
|
2384
|
+
documentId,
|
2385
|
+
formatMessage,
|
2386
|
+
formatValidationErrors,
|
2387
|
+
isCloning,
|
2388
|
+
model,
|
2389
|
+
modified,
|
2390
|
+
navigate,
|
2391
|
+
params,
|
2392
|
+
rawQuery,
|
2393
|
+
resetForm,
|
2394
|
+
setErrors,
|
2395
|
+
setSubmitting,
|
2396
|
+
toggleNotification,
|
2397
|
+
update,
|
2398
|
+
validate
|
2399
|
+
]);
|
2400
|
+
React.useEffect(() => {
|
2401
|
+
const handleKeyDown = (e) => {
|
2402
|
+
if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
|
2403
|
+
e.preventDefault();
|
2404
|
+
handleUpdate();
|
2405
|
+
}
|
2406
|
+
};
|
2407
|
+
window.addEventListener("keydown", handleKeyDown);
|
2408
|
+
return () => {
|
2409
|
+
window.removeEventListener("keydown", handleKeyDown);
|
2410
|
+
};
|
2411
|
+
}, [handleUpdate]);
|
2412
|
+
return {
|
2413
|
+
/**
|
2414
|
+
* Disabled when:
|
2415
|
+
* - the form is submitting
|
2416
|
+
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
2417
|
+
* - the active tab is the published tab
|
2418
|
+
*/
|
2419
|
+
disabled: isSubmitting || !modified && !isCloning || activeTab === "published",
|
2420
|
+
label: formatMessage({
|
2421
|
+
id: "global.save",
|
2422
|
+
defaultMessage: "Save"
|
2423
|
+
}),
|
2424
|
+
onClick: handleUpdate
|
2347
2425
|
};
|
2348
2426
|
};
|
2349
2427
|
UpdateAction.type = "update";
|
2428
|
+
UpdateAction.position = "panel";
|
2350
2429
|
const UNPUBLISH_DRAFT_OPTIONS = {
|
2351
2430
|
KEEP: "keep",
|
2352
2431
|
DISCARD: "discard"
|
@@ -2469,6 +2548,7 @@ const UnpublishAction$1 = ({
|
|
2469
2548
|
};
|
2470
2549
|
};
|
2471
2550
|
UnpublishAction$1.type = "unpublish";
|
2551
|
+
UnpublishAction$1.position = "panel";
|
2472
2552
|
const DiscardAction = ({
|
2473
2553
|
activeTab,
|
2474
2554
|
documentId,
|
@@ -2519,6 +2599,7 @@ const DiscardAction = ({
|
|
2519
2599
|
};
|
2520
2600
|
};
|
2521
2601
|
DiscardAction.type = "discard";
|
2602
|
+
DiscardAction.position = "panel";
|
2522
2603
|
const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
|
2523
2604
|
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
2524
2605
|
const RelativeTime = React.forwardRef(
|
@@ -2638,7 +2719,7 @@ const HeaderToolbar = () => {
|
|
2638
2719
|
meta: isCloning ? void 0 : meta,
|
2639
2720
|
collectionType
|
2640
2721
|
},
|
2641
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
2722
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("header"),
|
2642
2723
|
children: (actions2) => {
|
2643
2724
|
const headerActions = actions2.filter((action) => {
|
2644
2725
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -2846,6 +2927,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
|
|
2846
2927
|
};
|
2847
2928
|
};
|
2848
2929
|
ConfigureTheViewAction.type = "configure-the-view";
|
2930
|
+
ConfigureTheViewAction.position = "header";
|
2849
2931
|
const EditTheModelAction = ({ model }) => {
|
2850
2932
|
const navigate = useNavigate();
|
2851
2933
|
const { formatMessage } = useIntl();
|
@@ -2862,6 +2944,7 @@ const EditTheModelAction = ({ model }) => {
|
|
2862
2944
|
};
|
2863
2945
|
};
|
2864
2946
|
EditTheModelAction.type = "edit-the-model";
|
2947
|
+
EditTheModelAction.position = "header";
|
2865
2948
|
const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
2866
2949
|
const navigate = useNavigate();
|
2867
2950
|
const { formatMessage } = useIntl();
|
@@ -2935,6 +3018,7 @@ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
|
2935
3018
|
};
|
2936
3019
|
};
|
2937
3020
|
DeleteAction$1.type = "delete";
|
3021
|
+
DeleteAction$1.position = ["header", "table-row"];
|
2938
3022
|
const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
|
2939
3023
|
const Panels = () => {
|
2940
3024
|
const isCloning = useMatch(CLONE_PATH) !== null;
|
@@ -2997,7 +3081,7 @@ const ActionsPanelContent = () => {
|
|
2997
3081
|
DescriptionComponentRenderer,
|
2998
3082
|
{
|
2999
3083
|
props,
|
3000
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
3084
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("panel"),
|
3001
3085
|
children: (actions2) => /* @__PURE__ */ jsx(DocumentActions, { actions: actions2 })
|
3002
3086
|
}
|
3003
3087
|
),
|
@@ -3451,8 +3535,7 @@ const PublishAction = ({ documents, model }) => {
|
|
3451
3535
|
const refetchList = () => {
|
3452
3536
|
contentManagerApi.util.invalidateTags([{ type: "Document", id: `${model}_LIST` }]);
|
3453
3537
|
};
|
3454
|
-
if (!showPublishButton)
|
3455
|
-
return null;
|
3538
|
+
if (!showPublishButton) return null;
|
3456
3539
|
return {
|
3457
3540
|
actionType: "publish",
|
3458
3541
|
variant: "tertiary",
|
@@ -3520,8 +3603,7 @@ const DeleteAction = ({ documents, model }) => {
|
|
3520
3603
|
selectRow([]);
|
3521
3604
|
}
|
3522
3605
|
};
|
3523
|
-
if (!hasDeletePermission)
|
3524
|
-
return null;
|
3606
|
+
if (!hasDeletePermission) return null;
|
3525
3607
|
return {
|
3526
3608
|
variant: "danger-light",
|
3527
3609
|
label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
|
@@ -3570,8 +3652,7 @@ const UnpublishAction = ({ documents, model }) => {
|
|
3570
3652
|
}
|
3571
3653
|
};
|
3572
3654
|
const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published" || entry.status === "modified");
|
3573
|
-
if (!showUnpublishButton)
|
3574
|
-
return null;
|
3655
|
+
if (!showUnpublishButton) return null;
|
3575
3656
|
return {
|
3576
3657
|
variant: "tertiary",
|
3577
3658
|
label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
|
@@ -3676,7 +3757,7 @@ const TableActions = ({ document }) => {
|
|
3676
3757
|
DescriptionComponentRenderer,
|
3677
3758
|
{
|
3678
3759
|
props,
|
3679
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions().filter((action) => action.name !== "PublishAction"),
|
3760
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("table-row").filter((action) => action.name !== "PublishAction"),
|
3680
3761
|
children: (actions2) => {
|
3681
3762
|
const tableRowActions = actions2.filter((action) => {
|
3682
3763
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -3735,6 +3816,7 @@ const EditAction = ({ documentId }) => {
|
|
3735
3816
|
};
|
3736
3817
|
};
|
3737
3818
|
EditAction.type = "edit";
|
3819
|
+
EditAction.position = "table-row";
|
3738
3820
|
const StyledPencil = styled(Pencil)`
|
3739
3821
|
path {
|
3740
3822
|
fill: currentColor;
|
@@ -3811,6 +3893,7 @@ const CloneAction = ({ model, documentId }) => {
|
|
3811
3893
|
};
|
3812
3894
|
};
|
3813
3895
|
CloneAction.type = "clone";
|
3896
|
+
CloneAction.position = "table-row";
|
3814
3897
|
const StyledDuplicate = styled(Duplicate)`
|
3815
3898
|
path {
|
3816
3899
|
fill: currentColor;
|
@@ -3897,7 +3980,14 @@ class ContentManagerPlugin {
|
|
3897
3980
|
addDocumentHeaderAction: this.addDocumentHeaderAction.bind(this),
|
3898
3981
|
addEditViewSidePanel: this.addEditViewSidePanel.bind(this),
|
3899
3982
|
getBulkActions: () => this.bulkActions,
|
3900
|
-
getDocumentActions: () =>
|
3983
|
+
getDocumentActions: (position) => {
|
3984
|
+
if (position) {
|
3985
|
+
return this.documentActions.filter(
|
3986
|
+
(action) => action.position == void 0 || [action.position].flat().includes(position)
|
3987
|
+
);
|
3988
|
+
}
|
3989
|
+
return this.documentActions;
|
3990
|
+
},
|
3901
3991
|
getEditViewSidePanels: () => this.editViewSidePanels,
|
3902
3992
|
getHeaderActions: () => this.headerActions
|
3903
3993
|
}
|
@@ -3907,10 +3997,8 @@ class ContentManagerPlugin {
|
|
3907
3997
|
const getPrintableType = (value) => {
|
3908
3998
|
const nativeType = typeof value;
|
3909
3999
|
if (nativeType === "object") {
|
3910
|
-
if (value === null)
|
3911
|
-
|
3912
|
-
if (Array.isArray(value))
|
3913
|
-
return "array";
|
4000
|
+
if (value === null) return "null";
|
4001
|
+
if (Array.isArray(value)) return "array";
|
3914
4002
|
if (value instanceof Object && value.constructor.name !== "Object") {
|
3915
4003
|
return value.constructor.name;
|
3916
4004
|
}
|
@@ -3921,17 +4009,27 @@ const HistoryAction = ({ model, document }) => {
|
|
3921
4009
|
const { formatMessage } = useIntl();
|
3922
4010
|
const [{ query }] = useQueryParams();
|
3923
4011
|
const navigate = useNavigate();
|
4012
|
+
const { trackUsage } = useTracking();
|
4013
|
+
const { pathname } = useLocation();
|
3924
4014
|
const pluginsQueryParams = stringify({ plugins: query.plugins }, { encode: false });
|
3925
4015
|
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
3926
4016
|
return null;
|
3927
4017
|
}
|
4018
|
+
const handleOnClick = () => {
|
4019
|
+
const destination = { pathname: "history", search: pluginsQueryParams };
|
4020
|
+
trackUsage("willNavigate", {
|
4021
|
+
from: pathname,
|
4022
|
+
to: `${pathname}/${destination.pathname}`
|
4023
|
+
});
|
4024
|
+
navigate(destination);
|
4025
|
+
};
|
3928
4026
|
return {
|
3929
4027
|
icon: /* @__PURE__ */ jsx(ClockCounterClockwise, {}),
|
3930
4028
|
label: formatMessage({
|
3931
4029
|
id: "content-manager.history.document-action",
|
3932
4030
|
defaultMessage: "Content History"
|
3933
4031
|
}),
|
3934
|
-
onClick:
|
4032
|
+
onClick: handleOnClick,
|
3935
4033
|
disabled: (
|
3936
4034
|
/**
|
3937
4035
|
* The user is creating a new document.
|
@@ -3953,6 +4051,7 @@ const HistoryAction = ({ model, document }) => {
|
|
3953
4051
|
};
|
3954
4052
|
};
|
3955
4053
|
HistoryAction.type = "history";
|
4054
|
+
HistoryAction.position = "header";
|
3956
4055
|
const historyAdmin = {
|
3957
4056
|
bootstrap(app) {
|
3958
4057
|
const { addDocumentAction } = app.getPlugin("content-manager").apis;
|
@@ -4015,10 +4114,18 @@ const previewApi = contentManagerApi.injectEndpoints({
|
|
4015
4114
|
})
|
4016
4115
|
});
|
4017
4116
|
const { useGetPreviewUrlQuery } = previewApi;
|
4117
|
+
const ConditionalTooltip = ({ isShown, label, children }) => {
|
4118
|
+
if (isShown) {
|
4119
|
+
return /* @__PURE__ */ jsx(Tooltip, { label, children });
|
4120
|
+
}
|
4121
|
+
return children;
|
4122
|
+
};
|
4018
4123
|
const PreviewSidePanel = ({ model, documentId, document }) => {
|
4019
4124
|
const { formatMessage } = useIntl();
|
4020
4125
|
const { trackUsage } = useTracking();
|
4126
|
+
const { pathname } = useLocation();
|
4021
4127
|
const [{ query }] = useQueryParams();
|
4128
|
+
const isModified = useForm("PreviewSidePanel", (state) => state.modified);
|
4022
4129
|
const { data, error } = useGetPreviewUrlQuery({
|
4023
4130
|
params: {
|
4024
4131
|
contentType: model
|
@@ -4032,33 +4139,43 @@ const PreviewSidePanel = ({ model, documentId, document }) => {
|
|
4032
4139
|
if (!data?.data?.url || error) {
|
4033
4140
|
return null;
|
4034
4141
|
}
|
4035
|
-
const
|
4036
|
-
|
4142
|
+
const trackNavigation = () => {
|
4143
|
+
const destinationPathname = pathname.replace(/\/$/, "") + "/preview";
|
4144
|
+
trackUsage("willNavigate", { from: pathname, to: destinationPathname });
|
4037
4145
|
};
|
4038
4146
|
return {
|
4039
4147
|
title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
|
4040
|
-
content: /* @__PURE__ */ jsx(
|
4041
|
-
|
4148
|
+
content: /* @__PURE__ */ jsx(
|
4149
|
+
ConditionalTooltip,
|
4042
4150
|
{
|
4043
|
-
|
4044
|
-
|
4045
|
-
|
4046
|
-
|
4047
|
-
|
4048
|
-
children:
|
4049
|
-
|
4050
|
-
|
4051
|
-
|
4151
|
+
label: formatMessage({
|
4152
|
+
id: "content-manager.preview.panel.button-disabled-tooltip",
|
4153
|
+
defaultMessage: "Please save to open the preview"
|
4154
|
+
}),
|
4155
|
+
isShown: isModified,
|
4156
|
+
children: /* @__PURE__ */ jsx(Box, { cursor: "not-allowed", width: "100%", children: /* @__PURE__ */ jsx(
|
4157
|
+
Button,
|
4158
|
+
{
|
4159
|
+
variant: "tertiary",
|
4160
|
+
tag: Link,
|
4161
|
+
to: { pathname: "preview", search: stringify(query, { encode: false }) },
|
4162
|
+
onClick: trackNavigation,
|
4163
|
+
width: "100%",
|
4164
|
+
disabled: isModified,
|
4165
|
+
pointerEvents: isModified ? "none" : void 0,
|
4166
|
+
tabIndex: isModified ? -1 : void 0,
|
4167
|
+
children: formatMessage({
|
4168
|
+
id: "content-manager.preview.panel.button",
|
4169
|
+
defaultMessage: "Open preview"
|
4170
|
+
})
|
4171
|
+
}
|
4172
|
+
) })
|
4052
4173
|
}
|
4053
|
-
)
|
4174
|
+
)
|
4054
4175
|
};
|
4055
4176
|
};
|
4056
|
-
const FEATURE_ID = "preview";
|
4057
4177
|
const previewAdmin = {
|
4058
4178
|
bootstrap(app) {
|
4059
|
-
if (!window.strapi.future.isEnabled(FEATURE_ID)) {
|
4060
|
-
return;
|
4061
|
-
}
|
4062
4179
|
const contentManagerPluginApis = app.getPlugin("content-manager").apis;
|
4063
4180
|
contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
|
4064
4181
|
}
|
@@ -4082,7 +4199,7 @@ const index = {
|
|
4082
4199
|
app.router.addRoute({
|
4083
4200
|
path: "content-manager/*",
|
4084
4201
|
lazy: async () => {
|
4085
|
-
const { Layout } = await import("./layout-
|
4202
|
+
const { Layout } = await import("./layout-W3clJSCy.mjs");
|
4086
4203
|
return {
|
4087
4204
|
Component: Layout
|
4088
4205
|
};
|
@@ -4102,7 +4219,7 @@ const index = {
|
|
4102
4219
|
async registerTrads({ locales }) {
|
4103
4220
|
const importedTrads = await Promise.all(
|
4104
4221
|
locales.map((locale) => {
|
4105
|
-
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-
|
4222
|
+
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-CSxLmrh1.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 }) => {
|
4106
4223
|
return {
|
4107
4224
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
4108
4225
|
locale
|
@@ -4164,4 +4281,4 @@ export {
|
|
4164
4281
|
capitalise as y,
|
4165
4282
|
useUpdateContentTypeConfigurationMutation as z
|
4166
4283
|
};
|
4167
|
-
//# sourceMappingURL=index-
|
4284
|
+
//# sourceMappingURL=index-DqasUQ6Q.mjs.map
|