@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
@@ -7,16 +7,15 @@ const designSystem = require("@strapi/design-system");
|
|
7
7
|
const mapValues = require("lodash/fp/mapValues");
|
8
8
|
const reactIntl = require("react-intl");
|
9
9
|
const reactRouterDom = require("react-router-dom");
|
10
|
+
const styledComponents = require("styled-components");
|
10
11
|
const yup = require("yup");
|
12
|
+
const qs = require("qs");
|
11
13
|
const pipe = require("lodash/fp/pipe");
|
12
14
|
const dateFns = require("date-fns");
|
13
|
-
const styledComponents = require("styled-components");
|
14
|
-
const qs = require("qs");
|
15
15
|
const toolkit = require("@reduxjs/toolkit");
|
16
16
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
17
17
|
function _interopNamespace(e) {
|
18
|
-
if (e && e.__esModule)
|
19
|
-
return e;
|
18
|
+
if (e && e.__esModule) return e;
|
20
19
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
21
20
|
if (e) {
|
22
21
|
for (const k in e) {
|
@@ -36,13 +35,20 @@ const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
|
36
35
|
const mapValues__default = /* @__PURE__ */ _interopDefault(mapValues);
|
37
36
|
const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
38
37
|
const pipe__default = /* @__PURE__ */ _interopDefault(pipe);
|
39
|
-
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
38
|
+
const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
|
40
39
|
const v = glob[path];
|
41
40
|
if (v) {
|
42
41
|
return typeof v === "function" ? v() : Promise.resolve(v);
|
43
42
|
}
|
44
43
|
return new Promise((_, reject) => {
|
45
|
-
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
44
|
+
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
45
|
+
reject.bind(
|
46
|
+
null,
|
47
|
+
new Error(
|
48
|
+
"Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
|
49
|
+
)
|
50
|
+
)
|
51
|
+
);
|
46
52
|
});
|
47
53
|
};
|
48
54
|
const PLUGIN_ID = "content-manager";
|
@@ -190,7 +196,8 @@ const contentManagerApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
190
196
|
"InitialData",
|
191
197
|
"HistoryVersion",
|
192
198
|
"Relations",
|
193
|
-
"UidAvailability"
|
199
|
+
"UidAvailability",
|
200
|
+
"RecentDocumentList"
|
194
201
|
]
|
195
202
|
});
|
196
203
|
const documentApi = contentManagerApi.injectEndpoints({
|
@@ -208,7 +215,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
208
215
|
if (error) {
|
209
216
|
return [];
|
210
217
|
}
|
211
|
-
return [{ type: "Document", id: `${model}_LIST` }];
|
218
|
+
return [{ type: "Document", id: `${model}_LIST` }, "RecentDocumentList"];
|
212
219
|
}
|
213
220
|
}),
|
214
221
|
cloneDocument: builder.mutation({
|
@@ -222,7 +229,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
222
229
|
}),
|
223
230
|
invalidatesTags: (_result, _error, { model }) => [
|
224
231
|
{ type: "Document", id: `${model}_LIST` },
|
225
|
-
{ type: "UidAvailability", id: model }
|
232
|
+
{ type: "UidAvailability", id: model },
|
233
|
+
"RecentDocumentList"
|
226
234
|
]
|
227
235
|
}),
|
228
236
|
/**
|
@@ -241,8 +249,21 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
241
249
|
invalidatesTags: (result, _error, { model }) => [
|
242
250
|
{ type: "Document", id: `${model}_LIST` },
|
243
251
|
"Relations",
|
244
|
-
{ type: "UidAvailability", id: model }
|
245
|
-
|
252
|
+
{ type: "UidAvailability", id: model },
|
253
|
+
"RecentDocumentList"
|
254
|
+
],
|
255
|
+
transformResponse: (response, meta, arg) => {
|
256
|
+
if (!("data" in response) && arg.model === "plugin::users-permissions.user") {
|
257
|
+
return {
|
258
|
+
data: response,
|
259
|
+
meta: {
|
260
|
+
availableStatus: [],
|
261
|
+
availableLocales: []
|
262
|
+
}
|
263
|
+
};
|
264
|
+
}
|
265
|
+
return response;
|
266
|
+
}
|
246
267
|
}),
|
247
268
|
deleteDocument: builder.mutation({
|
248
269
|
query: ({ collectionType, model, documentId, params }) => ({
|
@@ -253,7 +274,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
253
274
|
}
|
254
275
|
}),
|
255
276
|
invalidatesTags: (_result, _error, { collectionType, model }) => [
|
256
|
-
{ type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model }
|
277
|
+
{ type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },
|
278
|
+
"RecentDocumentList"
|
257
279
|
]
|
258
280
|
}),
|
259
281
|
deleteManyDocuments: builder.mutation({
|
@@ -265,7 +287,10 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
265
287
|
params
|
266
288
|
}
|
267
289
|
}),
|
268
|
-
invalidatesTags: (_res, _error, { model }) => [
|
290
|
+
invalidatesTags: (_res, _error, { model }) => [
|
291
|
+
{ type: "Document", id: `${model}_LIST` },
|
292
|
+
"RecentDocumentList"
|
293
|
+
]
|
269
294
|
}),
|
270
295
|
discardDocument: builder.mutation({
|
271
296
|
query: ({ collectionType, model, documentId, params }) => ({
|
@@ -283,7 +308,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
283
308
|
},
|
284
309
|
{ type: "Document", id: `${model}_LIST` },
|
285
310
|
"Relations",
|
286
|
-
{ type: "UidAvailability", id: model }
|
311
|
+
{ type: "UidAvailability", id: model },
|
312
|
+
"RecentDocumentList"
|
287
313
|
];
|
288
314
|
}
|
289
315
|
}),
|
@@ -296,7 +322,7 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
296
322
|
url: `/content-manager/collection-types/${model}`,
|
297
323
|
method: "GET",
|
298
324
|
config: {
|
299
|
-
params
|
325
|
+
params: qs.stringify(params, { encode: true })
|
300
326
|
}
|
301
327
|
}),
|
302
328
|
providesTags: (result, _error, arg) => {
|
@@ -378,7 +404,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
378
404
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
379
405
|
},
|
380
406
|
{ type: "Document", id: `${model}_LIST` },
|
381
|
-
"Relations"
|
407
|
+
"Relations",
|
408
|
+
"RecentDocumentList"
|
382
409
|
];
|
383
410
|
}
|
384
411
|
}),
|
@@ -409,7 +436,9 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
409
436
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
410
437
|
},
|
411
438
|
"Relations",
|
412
|
-
{ type: "UidAvailability", id: model }
|
439
|
+
{ type: "UidAvailability", id: model },
|
440
|
+
"RecentDocumentList",
|
441
|
+
"RecentDocumentList"
|
413
442
|
];
|
414
443
|
},
|
415
444
|
async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {
|
@@ -439,7 +468,8 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
439
468
|
{
|
440
469
|
type: "Document",
|
441
470
|
id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
|
442
|
-
}
|
471
|
+
},
|
472
|
+
"RecentDocumentList"
|
443
473
|
];
|
444
474
|
}
|
445
475
|
}),
|
@@ -452,7 +482,10 @@ const documentApi = contentManagerApi.injectEndpoints({
|
|
452
482
|
params
|
453
483
|
}
|
454
484
|
}),
|
455
|
-
invalidatesTags: (_res, _error, { model, documentIds }) =>
|
485
|
+
invalidatesTags: (_res, _error, { model, documentIds }) => [
|
486
|
+
...documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` })),
|
487
|
+
"RecentDocumentList"
|
488
|
+
]
|
456
489
|
})
|
457
490
|
})
|
458
491
|
});
|
@@ -475,8 +508,7 @@ const {
|
|
475
508
|
useUnpublishManyDocumentsMutation
|
476
509
|
} = documentApi;
|
477
510
|
const buildValidParams = (query) => {
|
478
|
-
if (!query)
|
479
|
-
return query;
|
511
|
+
if (!query) return query;
|
480
512
|
const { plugins: _, ...validQueryParams } = {
|
481
513
|
...query,
|
482
514
|
...Object.values(query?.plugins ?? {}).reduce(
|
@@ -484,9 +516,6 @@ const buildValidParams = (query) => {
|
|
484
516
|
{}
|
485
517
|
)
|
486
518
|
};
|
487
|
-
if ("_q" in validQueryParams) {
|
488
|
-
validQueryParams._q = encodeURIComponent(validQueryParams._q);
|
489
|
-
}
|
490
519
|
return validQueryParams;
|
491
520
|
};
|
492
521
|
const isBaseQueryError = (error) => {
|
@@ -1686,7 +1715,7 @@ const useDocumentActions = () => {
|
|
1686
1715
|
};
|
1687
1716
|
};
|
1688
1717
|
const ProtectedHistoryPage = React__namespace.lazy(
|
1689
|
-
() => Promise.resolve().then(() => require("./History-
|
1718
|
+
() => Promise.resolve().then(() => require("./History-wjcK4L0C.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
|
1690
1719
|
);
|
1691
1720
|
const routes$2 = [
|
1692
1721
|
{
|
@@ -1699,7 +1728,7 @@ const routes$2 = [
|
|
1699
1728
|
}
|
1700
1729
|
];
|
1701
1730
|
const ProtectedPreviewPage = React__namespace.lazy(
|
1702
|
-
() => Promise.resolve().then(() => require("./Preview-
|
1731
|
+
() => Promise.resolve().then(() => require("./Preview-DaOihysv.js")).then((mod) => ({ default: mod.ProtectedPreviewPage }))
|
1703
1732
|
);
|
1704
1733
|
const routes$1 = [
|
1705
1734
|
{
|
@@ -1712,31 +1741,31 @@ const routes$1 = [
|
|
1712
1741
|
}
|
1713
1742
|
];
|
1714
1743
|
const ProtectedEditViewPage = React.lazy(
|
1715
|
-
() => Promise.resolve().then(() => require("./EditViewPage-
|
1744
|
+
() => Promise.resolve().then(() => require("./EditViewPage-B-kExt8C.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
|
1716
1745
|
);
|
1717
1746
|
const ProtectedListViewPage = React.lazy(
|
1718
|
-
() => Promise.resolve().then(() => require("./ListViewPage-
|
1747
|
+
() => Promise.resolve().then(() => require("./ListViewPage-D5NY9183.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
|
1719
1748
|
);
|
1720
1749
|
const ProtectedListConfiguration = React.lazy(
|
1721
|
-
() => Promise.resolve().then(() => require("./ListConfigurationPage-
|
1750
|
+
() => Promise.resolve().then(() => require("./ListConfigurationPage-CRbxIC3J.js")).then((mod) => ({
|
1722
1751
|
default: mod.ProtectedListConfiguration
|
1723
1752
|
}))
|
1724
1753
|
);
|
1725
1754
|
const ProtectedEditConfigurationPage = React.lazy(
|
1726
|
-
() => Promise.resolve().then(() => require("./EditConfigurationPage-
|
1755
|
+
() => Promise.resolve().then(() => require("./EditConfigurationPage-RQkymxCy.js")).then((mod) => ({
|
1727
1756
|
default: mod.ProtectedEditConfigurationPage
|
1728
1757
|
}))
|
1729
1758
|
);
|
1730
1759
|
const ProtectedComponentConfigurationPage = React.lazy(
|
1731
|
-
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-
|
1760
|
+
() => Promise.resolve().then(() => require("./ComponentConfigurationPage-BLWQy8ru.js")).then((mod) => ({
|
1732
1761
|
default: mod.ProtectedComponentConfigurationPage
|
1733
1762
|
}))
|
1734
1763
|
);
|
1735
1764
|
const NoPermissions = React.lazy(
|
1736
|
-
() => Promise.resolve().then(() => require("./NoPermissionsPage-
|
1765
|
+
() => Promise.resolve().then(() => require("./NoPermissionsPage-C5jwn70o.js")).then((mod) => ({ default: mod.NoPermissions }))
|
1737
1766
|
);
|
1738
1767
|
const NoContentType = React.lazy(
|
1739
|
-
() => Promise.resolve().then(() => require("./NoContentTypePage-
|
1768
|
+
() => Promise.resolve().then(() => require("./NoContentTypePage-BgQVE_Qb.js")).then((mod) => ({ default: mod.NoContentType }))
|
1740
1769
|
);
|
1741
1770
|
const CollectionTypePages = () => {
|
1742
1771
|
const { collectionType } = reactRouterDom.useParams();
|
@@ -1881,6 +1910,11 @@ const DocumentActionButton = (action) => {
|
|
1881
1910
|
) : null
|
1882
1911
|
] });
|
1883
1912
|
};
|
1913
|
+
const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
|
1914
|
+
&:hover {
|
1915
|
+
background: ${({ theme, isVariantDanger, isDisabled }) => isVariantDanger && !isDisabled ? theme.colors.danger100 : "neutral"};
|
1916
|
+
}
|
1917
|
+
`;
|
1884
1918
|
const DocumentActionsMenu = ({
|
1885
1919
|
actions: actions2,
|
1886
1920
|
children,
|
@@ -1939,11 +1973,13 @@ const DocumentActionsMenu = ({
|
|
1939
1973
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Content, { maxHeight: void 0, popoverPlacement: "bottom-end", children: [
|
1940
1974
|
actions2.map((action) => {
|
1941
1975
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
1942
|
-
|
1976
|
+
MenuItem,
|
1943
1977
|
{
|
1944
1978
|
disabled: action.disabled,
|
1945
1979
|
onSelect: handleClick(action),
|
1946
1980
|
display: "block",
|
1981
|
+
isVariantDanger: action.variant === "danger",
|
1982
|
+
isDisabled: action.disabled,
|
1947
1983
|
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
1948
1984
|
designSystem.Flex,
|
1949
1985
|
{
|
@@ -2099,6 +2135,7 @@ const PublishAction$1 = ({
|
|
2099
2135
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
2100
2136
|
const isListView = reactRouterDom.useMatch(LIST_PATH) !== null;
|
2101
2137
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2138
|
+
const { id } = reactRouterDom.useParams();
|
2102
2139
|
const { formatMessage } = reactIntl.useIntl();
|
2103
2140
|
const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
|
2104
2141
|
const { publish } = useDocumentActions();
|
@@ -2201,10 +2238,12 @@ const PublishAction$1 = ({
|
|
2201
2238
|
transformData(formValues)
|
2202
2239
|
);
|
2203
2240
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2204
|
-
|
2205
|
-
|
2206
|
-
|
2207
|
-
|
2241
|
+
if (id === "create") {
|
2242
|
+
navigate({
|
2243
|
+
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
2244
|
+
search: rawQuery
|
2245
|
+
});
|
2246
|
+
}
|
2208
2247
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2209
2248
|
setErrors(formatValidationErrors(res.error));
|
2210
2249
|
}
|
@@ -2257,6 +2296,7 @@ const PublishAction$1 = ({
|
|
2257
2296
|
};
|
2258
2297
|
};
|
2259
2298
|
PublishAction$1.type = "publish";
|
2299
|
+
PublishAction$1.position = "panel";
|
2260
2300
|
const UpdateAction = ({
|
2261
2301
|
activeTab,
|
2262
2302
|
documentId,
|
@@ -2279,96 +2319,134 @@ const UpdateAction = ({
|
|
2279
2319
|
const validate = strapiAdmin.useForm("UpdateAction", (state) => state.validate);
|
2280
2320
|
const setErrors = strapiAdmin.useForm("UpdateAction", (state) => state.setErrors);
|
2281
2321
|
const resetForm = strapiAdmin.useForm("PublishAction", ({ resetForm: resetForm2 }) => resetForm2);
|
2282
|
-
|
2283
|
-
|
2284
|
-
|
2285
|
-
|
2286
|
-
|
2287
|
-
|
2288
|
-
|
2289
|
-
|
2290
|
-
|
2291
|
-
|
2292
|
-
|
2293
|
-
|
2294
|
-
|
2295
|
-
|
2296
|
-
|
2297
|
-
|
2298
|
-
status: "draft"
|
2322
|
+
const handleUpdate = React__namespace.useCallback(async () => {
|
2323
|
+
setSubmitting(true);
|
2324
|
+
try {
|
2325
|
+
if (!modified) {
|
2326
|
+
return;
|
2327
|
+
}
|
2328
|
+
const { errors } = await validate(true, {
|
2329
|
+
status: "draft"
|
2330
|
+
});
|
2331
|
+
if (errors) {
|
2332
|
+
toggleNotification({
|
2333
|
+
type: "danger",
|
2334
|
+
message: formatMessage({
|
2335
|
+
id: "content-manager.validation.error",
|
2336
|
+
defaultMessage: "There are validation errors in your document. Please fix them before saving."
|
2337
|
+
})
|
2299
2338
|
});
|
2300
|
-
|
2301
|
-
|
2302
|
-
|
2303
|
-
|
2304
|
-
|
2305
|
-
|
2306
|
-
|
2307
|
-
|
2308
|
-
|
2309
|
-
|
2310
|
-
|
2311
|
-
|
2312
|
-
|
2313
|
-
model,
|
2314
|
-
documentId: cloneMatch.params.origin,
|
2315
|
-
params
|
2316
|
-
},
|
2317
|
-
transformData(document)
|
2318
|
-
);
|
2319
|
-
if ("data" in res) {
|
2320
|
-
navigate(
|
2321
|
-
{
|
2322
|
-
pathname: `../${res.data.documentId}`,
|
2323
|
-
search: rawQuery
|
2324
|
-
},
|
2325
|
-
{ relative: "path" }
|
2326
|
-
);
|
2327
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2328
|
-
setErrors(formatValidationErrors(res.error));
|
2329
|
-
}
|
2330
|
-
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2331
|
-
const res = await update(
|
2339
|
+
return;
|
2340
|
+
}
|
2341
|
+
if (isCloning) {
|
2342
|
+
const res = await clone(
|
2343
|
+
{
|
2344
|
+
model,
|
2345
|
+
documentId: cloneMatch.params.origin,
|
2346
|
+
params
|
2347
|
+
},
|
2348
|
+
transformData(document)
|
2349
|
+
);
|
2350
|
+
if ("data" in res) {
|
2351
|
+
navigate(
|
2332
2352
|
{
|
2333
|
-
|
2334
|
-
|
2335
|
-
documentId,
|
2336
|
-
params
|
2353
|
+
pathname: `../${res.data.documentId}`,
|
2354
|
+
search: rawQuery
|
2337
2355
|
},
|
2338
|
-
|
2356
|
+
{ relative: "path" }
|
2339
2357
|
);
|
2340
|
-
|
2341
|
-
|
2342
|
-
|
2343
|
-
|
2344
|
-
|
2358
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2359
|
+
setErrors(formatValidationErrors(res.error));
|
2360
|
+
}
|
2361
|
+
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2362
|
+
const res = await update(
|
2363
|
+
{
|
2364
|
+
collectionType,
|
2365
|
+
model,
|
2366
|
+
documentId,
|
2367
|
+
params
|
2368
|
+
},
|
2369
|
+
transformData(document)
|
2370
|
+
);
|
2371
|
+
if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2372
|
+
setErrors(formatValidationErrors(res.error));
|
2345
2373
|
} else {
|
2346
|
-
|
2374
|
+
resetForm();
|
2375
|
+
}
|
2376
|
+
} else {
|
2377
|
+
const res = await create(
|
2378
|
+
{
|
2379
|
+
model,
|
2380
|
+
params
|
2381
|
+
},
|
2382
|
+
transformData(document)
|
2383
|
+
);
|
2384
|
+
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2385
|
+
navigate(
|
2347
2386
|
{
|
2348
|
-
|
2349
|
-
|
2387
|
+
pathname: `../${res.data.documentId}`,
|
2388
|
+
search: rawQuery
|
2350
2389
|
},
|
2351
|
-
|
2390
|
+
{ replace: true, relative: "path" }
|
2352
2391
|
);
|
2353
|
-
|
2354
|
-
|
2355
|
-
{
|
2356
|
-
pathname: `../${res.data.documentId}`,
|
2357
|
-
search: rawQuery
|
2358
|
-
},
|
2359
|
-
{ replace: true, relative: "path" }
|
2360
|
-
);
|
2361
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2362
|
-
setErrors(formatValidationErrors(res.error));
|
2363
|
-
}
|
2392
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2393
|
+
setErrors(formatValidationErrors(res.error));
|
2364
2394
|
}
|
2365
|
-
} finally {
|
2366
|
-
setSubmitting(false);
|
2367
2395
|
}
|
2396
|
+
} finally {
|
2397
|
+
setSubmitting(false);
|
2368
2398
|
}
|
2399
|
+
}, [
|
2400
|
+
clone,
|
2401
|
+
cloneMatch?.params.origin,
|
2402
|
+
collectionType,
|
2403
|
+
create,
|
2404
|
+
document,
|
2405
|
+
documentId,
|
2406
|
+
formatMessage,
|
2407
|
+
formatValidationErrors,
|
2408
|
+
isCloning,
|
2409
|
+
model,
|
2410
|
+
modified,
|
2411
|
+
navigate,
|
2412
|
+
params,
|
2413
|
+
rawQuery,
|
2414
|
+
resetForm,
|
2415
|
+
setErrors,
|
2416
|
+
setSubmitting,
|
2417
|
+
toggleNotification,
|
2418
|
+
update,
|
2419
|
+
validate
|
2420
|
+
]);
|
2421
|
+
React__namespace.useEffect(() => {
|
2422
|
+
const handleKeyDown = (e) => {
|
2423
|
+
if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
|
2424
|
+
e.preventDefault();
|
2425
|
+
handleUpdate();
|
2426
|
+
}
|
2427
|
+
};
|
2428
|
+
window.addEventListener("keydown", handleKeyDown);
|
2429
|
+
return () => {
|
2430
|
+
window.removeEventListener("keydown", handleKeyDown);
|
2431
|
+
};
|
2432
|
+
}, [handleUpdate]);
|
2433
|
+
return {
|
2434
|
+
/**
|
2435
|
+
* Disabled when:
|
2436
|
+
* - the form is submitting
|
2437
|
+
* - the document is not modified & we're not cloning (you can save a clone entity straight away)
|
2438
|
+
* - the active tab is the published tab
|
2439
|
+
*/
|
2440
|
+
disabled: isSubmitting || !modified && !isCloning || activeTab === "published",
|
2441
|
+
label: formatMessage({
|
2442
|
+
id: "global.save",
|
2443
|
+
defaultMessage: "Save"
|
2444
|
+
}),
|
2445
|
+
onClick: handleUpdate
|
2369
2446
|
};
|
2370
2447
|
};
|
2371
2448
|
UpdateAction.type = "update";
|
2449
|
+
UpdateAction.position = "panel";
|
2372
2450
|
const UNPUBLISH_DRAFT_OPTIONS = {
|
2373
2451
|
KEEP: "keep",
|
2374
2452
|
DISCARD: "discard"
|
@@ -2491,6 +2569,7 @@ const UnpublishAction$1 = ({
|
|
2491
2569
|
};
|
2492
2570
|
};
|
2493
2571
|
UnpublishAction$1.type = "unpublish";
|
2572
|
+
UnpublishAction$1.position = "panel";
|
2494
2573
|
const DiscardAction = ({
|
2495
2574
|
activeTab,
|
2496
2575
|
documentId,
|
@@ -2541,6 +2620,7 @@ const DiscardAction = ({
|
|
2541
2620
|
};
|
2542
2621
|
};
|
2543
2622
|
DiscardAction.type = "discard";
|
2623
|
+
DiscardAction.position = "panel";
|
2544
2624
|
const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
|
2545
2625
|
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
2546
2626
|
const RelativeTime = React__namespace.forwardRef(
|
@@ -2660,7 +2740,7 @@ const HeaderToolbar = () => {
|
|
2660
2740
|
meta: isCloning ? void 0 : meta,
|
2661
2741
|
collectionType
|
2662
2742
|
},
|
2663
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
2743
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("header"),
|
2664
2744
|
children: (actions2) => {
|
2665
2745
|
const headerActions = actions2.filter((action) => {
|
2666
2746
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -2868,6 +2948,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
|
|
2868
2948
|
};
|
2869
2949
|
};
|
2870
2950
|
ConfigureTheViewAction.type = "configure-the-view";
|
2951
|
+
ConfigureTheViewAction.position = "header";
|
2871
2952
|
const EditTheModelAction = ({ model }) => {
|
2872
2953
|
const navigate = reactRouterDom.useNavigate();
|
2873
2954
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2884,6 +2965,7 @@ const EditTheModelAction = ({ model }) => {
|
|
2884
2965
|
};
|
2885
2966
|
};
|
2886
2967
|
EditTheModelAction.type = "edit-the-model";
|
2968
|
+
EditTheModelAction.position = "header";
|
2887
2969
|
const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
2888
2970
|
const navigate = reactRouterDom.useNavigate();
|
2889
2971
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2957,6 +3039,7 @@ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
|
2957
3039
|
};
|
2958
3040
|
};
|
2959
3041
|
DeleteAction$1.type = "delete";
|
3042
|
+
DeleteAction$1.position = ["header", "table-row"];
|
2960
3043
|
const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
|
2961
3044
|
const Panels = () => {
|
2962
3045
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
@@ -3019,7 +3102,7 @@ const ActionsPanelContent = () => {
|
|
3019
3102
|
strapiAdmin.DescriptionComponentRenderer,
|
3020
3103
|
{
|
3021
3104
|
props,
|
3022
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
3105
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("panel"),
|
3023
3106
|
children: (actions2) => /* @__PURE__ */ jsxRuntime.jsx(DocumentActions, { actions: actions2 })
|
3024
3107
|
}
|
3025
3108
|
),
|
@@ -3473,8 +3556,7 @@ const PublishAction = ({ documents, model }) => {
|
|
3473
3556
|
const refetchList = () => {
|
3474
3557
|
contentManagerApi.util.invalidateTags([{ type: "Document", id: `${model}_LIST` }]);
|
3475
3558
|
};
|
3476
|
-
if (!showPublishButton)
|
3477
|
-
return null;
|
3559
|
+
if (!showPublishButton) return null;
|
3478
3560
|
return {
|
3479
3561
|
actionType: "publish",
|
3480
3562
|
variant: "tertiary",
|
@@ -3542,8 +3624,7 @@ const DeleteAction = ({ documents, model }) => {
|
|
3542
3624
|
selectRow([]);
|
3543
3625
|
}
|
3544
3626
|
};
|
3545
|
-
if (!hasDeletePermission)
|
3546
|
-
return null;
|
3627
|
+
if (!hasDeletePermission) return null;
|
3547
3628
|
return {
|
3548
3629
|
variant: "danger-light",
|
3549
3630
|
label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
|
@@ -3592,8 +3673,7 @@ const UnpublishAction = ({ documents, model }) => {
|
|
3592
3673
|
}
|
3593
3674
|
};
|
3594
3675
|
const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published" || entry.status === "modified");
|
3595
|
-
if (!showUnpublishButton)
|
3596
|
-
return null;
|
3676
|
+
if (!showUnpublishButton) return null;
|
3597
3677
|
return {
|
3598
3678
|
variant: "tertiary",
|
3599
3679
|
label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
|
@@ -3698,7 +3778,7 @@ const TableActions = ({ document }) => {
|
|
3698
3778
|
strapiAdmin.DescriptionComponentRenderer,
|
3699
3779
|
{
|
3700
3780
|
props,
|
3701
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions().filter((action) => action.name !== "PublishAction"),
|
3781
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("table-row").filter((action) => action.name !== "PublishAction"),
|
3702
3782
|
children: (actions2) => {
|
3703
3783
|
const tableRowActions = actions2.filter((action) => {
|
3704
3784
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -3757,6 +3837,7 @@ const EditAction = ({ documentId }) => {
|
|
3757
3837
|
};
|
3758
3838
|
};
|
3759
3839
|
EditAction.type = "edit";
|
3840
|
+
EditAction.position = "table-row";
|
3760
3841
|
const StyledPencil = styledComponents.styled(Icons.Pencil)`
|
3761
3842
|
path {
|
3762
3843
|
fill: currentColor;
|
@@ -3833,6 +3914,7 @@ const CloneAction = ({ model, documentId }) => {
|
|
3833
3914
|
};
|
3834
3915
|
};
|
3835
3916
|
CloneAction.type = "clone";
|
3917
|
+
CloneAction.position = "table-row";
|
3836
3918
|
const StyledDuplicate = styledComponents.styled(Icons.Duplicate)`
|
3837
3919
|
path {
|
3838
3920
|
fill: currentColor;
|
@@ -3919,7 +4001,14 @@ class ContentManagerPlugin {
|
|
3919
4001
|
addDocumentHeaderAction: this.addDocumentHeaderAction.bind(this),
|
3920
4002
|
addEditViewSidePanel: this.addEditViewSidePanel.bind(this),
|
3921
4003
|
getBulkActions: () => this.bulkActions,
|
3922
|
-
getDocumentActions: () =>
|
4004
|
+
getDocumentActions: (position) => {
|
4005
|
+
if (position) {
|
4006
|
+
return this.documentActions.filter(
|
4007
|
+
(action) => action.position == void 0 || [action.position].flat().includes(position)
|
4008
|
+
);
|
4009
|
+
}
|
4010
|
+
return this.documentActions;
|
4011
|
+
},
|
3923
4012
|
getEditViewSidePanels: () => this.editViewSidePanels,
|
3924
4013
|
getHeaderActions: () => this.headerActions
|
3925
4014
|
}
|
@@ -3929,10 +4018,8 @@ class ContentManagerPlugin {
|
|
3929
4018
|
const getPrintableType = (value) => {
|
3930
4019
|
const nativeType = typeof value;
|
3931
4020
|
if (nativeType === "object") {
|
3932
|
-
if (value === null)
|
3933
|
-
|
3934
|
-
if (Array.isArray(value))
|
3935
|
-
return "array";
|
4021
|
+
if (value === null) return "null";
|
4022
|
+
if (Array.isArray(value)) return "array";
|
3936
4023
|
if (value instanceof Object && value.constructor.name !== "Object") {
|
3937
4024
|
return value.constructor.name;
|
3938
4025
|
}
|
@@ -3943,17 +4030,27 @@ const HistoryAction = ({ model, document }) => {
|
|
3943
4030
|
const { formatMessage } = reactIntl.useIntl();
|
3944
4031
|
const [{ query }] = strapiAdmin.useQueryParams();
|
3945
4032
|
const navigate = reactRouterDom.useNavigate();
|
4033
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
4034
|
+
const { pathname } = reactRouterDom.useLocation();
|
3946
4035
|
const pluginsQueryParams = qs.stringify({ plugins: query.plugins }, { encode: false });
|
3947
4036
|
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
3948
4037
|
return null;
|
3949
4038
|
}
|
4039
|
+
const handleOnClick = () => {
|
4040
|
+
const destination = { pathname: "history", search: pluginsQueryParams };
|
4041
|
+
trackUsage("willNavigate", {
|
4042
|
+
from: pathname,
|
4043
|
+
to: `${pathname}/${destination.pathname}`
|
4044
|
+
});
|
4045
|
+
navigate(destination);
|
4046
|
+
};
|
3950
4047
|
return {
|
3951
4048
|
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ClockCounterClockwise, {}),
|
3952
4049
|
label: formatMessage({
|
3953
4050
|
id: "content-manager.history.document-action",
|
3954
4051
|
defaultMessage: "Content History"
|
3955
4052
|
}),
|
3956
|
-
onClick:
|
4053
|
+
onClick: handleOnClick,
|
3957
4054
|
disabled: (
|
3958
4055
|
/**
|
3959
4056
|
* The user is creating a new document.
|
@@ -3975,6 +4072,7 @@ const HistoryAction = ({ model, document }) => {
|
|
3975
4072
|
};
|
3976
4073
|
};
|
3977
4074
|
HistoryAction.type = "history";
|
4075
|
+
HistoryAction.position = "header";
|
3978
4076
|
const historyAdmin = {
|
3979
4077
|
bootstrap(app) {
|
3980
4078
|
const { addDocumentAction } = app.getPlugin("content-manager").apis;
|
@@ -4037,10 +4135,18 @@ const previewApi = contentManagerApi.injectEndpoints({
|
|
4037
4135
|
})
|
4038
4136
|
});
|
4039
4137
|
const { useGetPreviewUrlQuery } = previewApi;
|
4138
|
+
const ConditionalTooltip = ({ isShown, label, children }) => {
|
4139
|
+
if (isShown) {
|
4140
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { label, children });
|
4141
|
+
}
|
4142
|
+
return children;
|
4143
|
+
};
|
4040
4144
|
const PreviewSidePanel = ({ model, documentId, document }) => {
|
4041
4145
|
const { formatMessage } = reactIntl.useIntl();
|
4042
4146
|
const { trackUsage } = strapiAdmin.useTracking();
|
4147
|
+
const { pathname } = reactRouterDom.useLocation();
|
4043
4148
|
const [{ query }] = strapiAdmin.useQueryParams();
|
4149
|
+
const isModified = strapiAdmin.useForm("PreviewSidePanel", (state) => state.modified);
|
4044
4150
|
const { data, error } = useGetPreviewUrlQuery({
|
4045
4151
|
params: {
|
4046
4152
|
contentType: model
|
@@ -4054,33 +4160,43 @@ const PreviewSidePanel = ({ model, documentId, document }) => {
|
|
4054
4160
|
if (!data?.data?.url || error) {
|
4055
4161
|
return null;
|
4056
4162
|
}
|
4057
|
-
const
|
4058
|
-
|
4163
|
+
const trackNavigation = () => {
|
4164
|
+
const destinationPathname = pathname.replace(/\/$/, "") + "/preview";
|
4165
|
+
trackUsage("willNavigate", { from: pathname, to: destinationPathname });
|
4059
4166
|
};
|
4060
4167
|
return {
|
4061
4168
|
title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
|
4062
|
-
content: /* @__PURE__ */ jsxRuntime.jsx(
|
4063
|
-
|
4169
|
+
content: /* @__PURE__ */ jsxRuntime.jsx(
|
4170
|
+
ConditionalTooltip,
|
4064
4171
|
{
|
4065
|
-
|
4066
|
-
|
4067
|
-
|
4068
|
-
|
4069
|
-
|
4070
|
-
children:
|
4071
|
-
|
4072
|
-
|
4073
|
-
|
4172
|
+
label: formatMessage({
|
4173
|
+
id: "content-manager.preview.panel.button-disabled-tooltip",
|
4174
|
+
defaultMessage: "Please save to open the preview"
|
4175
|
+
}),
|
4176
|
+
isShown: isModified,
|
4177
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { cursor: "not-allowed", width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
|
4178
|
+
designSystem.Button,
|
4179
|
+
{
|
4180
|
+
variant: "tertiary",
|
4181
|
+
tag: reactRouterDom.Link,
|
4182
|
+
to: { pathname: "preview", search: qs.stringify(query, { encode: false }) },
|
4183
|
+
onClick: trackNavigation,
|
4184
|
+
width: "100%",
|
4185
|
+
disabled: isModified,
|
4186
|
+
pointerEvents: isModified ? "none" : void 0,
|
4187
|
+
tabIndex: isModified ? -1 : void 0,
|
4188
|
+
children: formatMessage({
|
4189
|
+
id: "content-manager.preview.panel.button",
|
4190
|
+
defaultMessage: "Open preview"
|
4191
|
+
})
|
4192
|
+
}
|
4193
|
+
) })
|
4074
4194
|
}
|
4075
|
-
)
|
4195
|
+
)
|
4076
4196
|
};
|
4077
4197
|
};
|
4078
|
-
const FEATURE_ID = "preview";
|
4079
4198
|
const previewAdmin = {
|
4080
4199
|
bootstrap(app) {
|
4081
|
-
if (!window.strapi.future.isEnabled(FEATURE_ID)) {
|
4082
|
-
return;
|
4083
|
-
}
|
4084
4200
|
const contentManagerPluginApis = app.getPlugin("content-manager").apis;
|
4085
4201
|
contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
|
4086
4202
|
}
|
@@ -4104,7 +4220,7 @@ const index = {
|
|
4104
4220
|
app.router.addRoute({
|
4105
4221
|
path: "content-manager/*",
|
4106
4222
|
lazy: async () => {
|
4107
|
-
const { Layout } = await Promise.resolve().then(() => require("./layout-
|
4223
|
+
const { Layout } = await Promise.resolve().then(() => require("./layout-BW80JSCd.js"));
|
4108
4224
|
return {
|
4109
4225
|
Component: Layout
|
4110
4226
|
};
|
@@ -4124,7 +4240,7 @@ const index = {
|
|
4124
4240
|
async registerTrads({ locales }) {
|
4125
4241
|
const importedTrads = await Promise.all(
|
4126
4242
|
locales.map((locale) => {
|
4127
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-
|
4243
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-BzQmavmK.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-9K52xZIr.js")), "./translations/eu.json": () => Promise.resolve().then(() => require("./eu-VDH-3ovk.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-B2Kyv8Z9.js")), "./translations/gu.json": () => Promise.resolve().then(() => require("./gu-BRmF601H.js")), "./translations/hi.json": () => Promise.resolve().then(() => require("./hi-CCJBptSq.js")), "./translations/hu.json": () => Promise.resolve().then(() => require("./hu-sNV_yLYy.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-B5Ser98A.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-DkBIs7vD.js")), "./translations/ja.json": () => Promise.resolve().then(() => require("./ja-7sfIbjxE.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-woFZPmLk.js")), "./translations/ml.json": () => Promise.resolve().then(() => require("./ml-C2W8N8k1.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-BuFotyP_.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-bbEOHChV.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-uzwG-hk7.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-BiOz37D9.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-CeXQuq50.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BT3ybNny.js")), "./translations/sa.json": () => Promise.resolve().then(() => require("./sa-CcvkYInH.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-CvY09Xjv.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-MYDuzgvT.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-D9_GfAjc.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-D9UH-O_R.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-C8EiqJY7.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-CJlYDheJ.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-9kOncHGw.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CQQfszqR.js")) }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
|
4128
4244
|
return {
|
4129
4245
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
4130
4246
|
locale
|
@@ -4184,4 +4300,4 @@ exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuer
|
|
4184
4300
|
exports.useGetInitialDataQuery = useGetInitialDataQuery;
|
4185
4301
|
exports.useGetPreviewUrlQuery = useGetPreviewUrlQuery;
|
4186
4302
|
exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
|
4187
|
-
//# sourceMappingURL=index-
|
4303
|
+
//# sourceMappingURL=index-Ca7YWlAA.js.map
|