@strapi/content-manager 0.0.0-next.f6dca5adf05ef6bed9605a1535999ab0bbbf063e → 0.0.0-next.fc1775f7731f8999840e56e298a216b9a6c5c4ad
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--MCP7Aew.js → ComponentConfigurationPage-BLWQy8ru.js} +4 -5
- package/dist/_chunks/{ComponentConfigurationPage--MCP7Aew.js.map → ComponentConfigurationPage-BLWQy8ru.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-DT41asyM.mjs → ComponentConfigurationPage-CtIa3aa2.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-DT41asyM.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-DznPxn9p.mjs → EditConfigurationPage-DsPR2DVk.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-DznPxn9p.mjs.map → EditConfigurationPage-DsPR2DVk.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-qgnNvv_u.js → EditConfigurationPage-RQkymxCy.js} +4 -5
- package/dist/_chunks/{EditConfigurationPage-qgnNvv_u.js.map → EditConfigurationPage-RQkymxCy.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-Bb4S7p8c.js → EditViewPage-B-kExt8C.js} +36 -8
- package/dist/_chunks/EditViewPage-B-kExt8C.js.map +1 -0
- package/dist/_chunks/{EditViewPage-B_k7z288.mjs → EditViewPage-BPyVuPfM.mjs} +35 -6
- package/dist/_chunks/EditViewPage-BPyVuPfM.mjs.map +1 -0
- package/dist/_chunks/{Field-ByR1mllE.js → Field-DPIsQRre.js} +177 -122
- package/dist/_chunks/Field-DPIsQRre.js.map +1 -0
- package/dist/_chunks/{Field-DmwbE0TL.mjs → Field-Dltnt1km.mjs} +175 -120
- 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-BpeyAyS1.js → Form-BFi4MXMT.js} +5 -6
- package/dist/_chunks/{Form-BpeyAyS1.js.map → Form-BFi4MXMT.js.map} +1 -1
- package/dist/_chunks/{Form-Dvt5eouJ.mjs → Form-C1IcWm1u.mjs} +3 -3
- package/dist/_chunks/{Form-Dvt5eouJ.mjs.map → Form-C1IcWm1u.mjs.map} +1 -1
- package/dist/_chunks/{History-CAERKpYl.mjs → History-04ChQ4pl.mjs} +37 -60
- package/dist/_chunks/History-04ChQ4pl.mjs.map +1 -0
- package/dist/_chunks/{History-d-IgDGPl.js → History-wjcK4L0C.js} +37 -61
- package/dist/_chunks/History-wjcK4L0C.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-CVVT45M8.mjs → ListConfigurationPage-BYqPYLSU.mjs} +6 -5
- package/dist/_chunks/ListConfigurationPage-BYqPYLSU.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DSX98CYb.js → ListConfigurationPage-CRbxIC3J.js} +6 -6
- package/dist/_chunks/ListConfigurationPage-CRbxIC3J.js.map +1 -0
- package/dist/_chunks/{ListViewPage-C9gPPp-V.js → ListViewPage-D5NY9183.js} +64 -53
- package/dist/_chunks/ListViewPage-D5NY9183.js.map +1 -0
- package/dist/_chunks/{ListViewPage-Q4g6kHDl.mjs → ListViewPage-FU2LBuhl.mjs} +63 -51
- package/dist/_chunks/ListViewPage-FU2LBuhl.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-D09gppmy.js → NoContentTypePage-BgQVE_Qb.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-D09gppmy.js.map → NoContentTypePage-BgQVE_Qb.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-BY4YRGs0.mjs → NoContentTypePage-DCKUkwb8.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-BY4YRGs0.mjs.map → NoContentTypePage-DCKUkwb8.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-32WgThJG.js → NoPermissionsPage-C5jwn70o.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-32WgThJG.js.map → NoPermissionsPage-C5jwn70o.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CyM16RKL.mjs → NoPermissionsPage-jqve7C8l.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CyM16RKL.mjs.map → NoPermissionsPage-jqve7C8l.mjs.map} +1 -1
- package/dist/_chunks/{Preview-C2WFq4S8.mjs → Preview-BMYN548c.mjs} +100 -73
- package/dist/_chunks/Preview-BMYN548c.mjs.map +1 -0
- package/dist/_chunks/{Preview-PpV3g9wJ.js → Preview-DaOihysv.js} +98 -72
- package/dist/_chunks/Preview-DaOihysv.js.map +1 -0
- package/dist/_chunks/{Relations-mWaebC5t.js → Relations-CTGM7Hv5.js} +7 -10
- package/dist/_chunks/{Relations-mWaebC5t.js.map → Relations-CTGM7Hv5.js.map} +1 -1
- package/dist/_chunks/{Relations-B_Yn9xGB.mjs → Relations-gscPkxjF.mjs} +6 -8
- package/dist/_chunks/{Relations-B_Yn9xGB.mjs.map → Relations-gscPkxjF.mjs.map} +1 -1
- package/dist/_chunks/{en-CHOp_xJv.js → en-BzQmavmK.js} +11 -3
- package/dist/_chunks/{en-CHOp_xJv.js.map → en-BzQmavmK.js.map} +1 -1
- package/dist/_chunks/{en-D_BMf0hT.mjs → en-CSxLmrh1.mjs} +11 -3
- package/dist/_chunks/{en-D_BMf0hT.mjs.map → en-CSxLmrh1.mjs.map} +1 -1
- package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
- package/dist/_chunks/{index-iun2i4xv.js → index-Ca7YWlAA.js} +300 -204
- package/dist/_chunks/index-Ca7YWlAA.js.map +1 -0
- package/dist/_chunks/{index-CbytGVdz.mjs → index-DqasUQ6Q.mjs} +300 -203
- package/dist/_chunks/index-DqasUQ6Q.mjs.map +1 -0
- package/dist/_chunks/{layout-CkaP4K5_.js → layout-BW80JSCd.js} +5 -6
- package/dist/_chunks/{layout-CkaP4K5_.js.map → layout-BW80JSCd.js.map} +1 -1
- package/dist/_chunks/{layout-Btu_cMRF.mjs → layout-W3clJSCy.mjs} +4 -4
- package/dist/_chunks/{layout-Btu_cMRF.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-Cn5re8ia.mjs → relations-BlDkoeWh.mjs} +2 -2
- package/dist/_chunks/{relations-Cn5re8ia.mjs.map → relations-BlDkoeWh.mjs.map} +1 -1
- package/dist/_chunks/{relations-O_v9g0v_.js → relations-C9Usz9k5.js} +2 -2
- package/dist/_chunks/{relations-O_v9g0v_.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 +3 -3
- 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/components/PreviewContent.d.ts +2 -0
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/router.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-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts +4 -2
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +3 -2
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
- package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
- package/dist/server/src/services/utils/populate.d.ts +2 -2
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/package.json +12 -11
- package/dist/_chunks/EditViewPage-B_k7z288.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-Bb4S7p8c.js.map +0 -1
- package/dist/_chunks/Field-ByR1mllE.js.map +0 -1
- package/dist/_chunks/Field-DmwbE0TL.mjs.map +0 -1
- package/dist/_chunks/History-CAERKpYl.mjs.map +0 -1
- package/dist/_chunks/History-d-IgDGPl.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-CVVT45M8.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DSX98CYb.js.map +0 -1
- package/dist/_chunks/ListViewPage-C9gPPp-V.js.map +0 -1
- package/dist/_chunks/ListViewPage-Q4g6kHDl.mjs.map +0 -1
- package/dist/_chunks/Preview-C2WFq4S8.mjs.map +0 -1
- package/dist/_chunks/Preview-PpV3g9wJ.js.map +0 -1
- package/dist/_chunks/index-CbytGVdz.mjs.map +0 -1
- package/dist/_chunks/index-iun2i4xv.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();
|
@@ -1748,7 +1777,7 @@ const CollectionTypePages = () => {
|
|
1748
1777
|
const CLONE_RELATIVE_PATH = ":collectionType/:slug/clone/:origin";
|
1749
1778
|
const CLONE_PATH = `/content-manager/${CLONE_RELATIVE_PATH}`;
|
1750
1779
|
const LIST_RELATIVE_PATH = ":collectionType/:slug";
|
1751
|
-
const LIST_PATH = `/content-manager
|
1780
|
+
const LIST_PATH = `/content-manager/collection-types/:slug`;
|
1752
1781
|
const routes = [
|
1753
1782
|
{
|
1754
1783
|
path: LIST_RELATIVE_PATH,
|
@@ -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,48 +1973,32 @@ 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",
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
1956
|
-
|
1957
|
-
|
1958
|
-
|
1959
|
-
|
1960
|
-
|
1961
|
-
|
1962
|
-
|
1963
|
-
|
1964
|
-
|
1965
|
-
|
1966
|
-
|
1967
|
-
|
1968
|
-
designSystem.Flex,
|
1969
|
-
{
|
1970
|
-
alignItems: "center",
|
1971
|
-
background: "alternative100",
|
1972
|
-
borderStyle: "solid",
|
1973
|
-
borderColor: "alternative200",
|
1974
|
-
borderWidth: "1px",
|
1975
|
-
height: 5,
|
1976
|
-
paddingLeft: 2,
|
1977
|
-
paddingRight: 2,
|
1978
|
-
hasRadius: true,
|
1979
|
-
color: "alternative600",
|
1980
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", fontWeight: "bold", lineHeight: 1, children: formatMessage({ id: "global.new", defaultMessage: "New" }) })
|
1981
|
-
}
|
1982
|
-
)
|
1983
|
-
] })
|
1981
|
+
isVariantDanger: action.variant === "danger",
|
1982
|
+
isDisabled: action.disabled,
|
1983
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
1984
|
+
designSystem.Flex,
|
1985
|
+
{
|
1986
|
+
color: !action.disabled ? convertActionVariantToColor(action.variant) : "inherit",
|
1987
|
+
gap: 2,
|
1988
|
+
tag: "span",
|
1989
|
+
children: [
|
1990
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
1991
|
+
designSystem.Flex,
|
1992
|
+
{
|
1993
|
+
tag: "span",
|
1994
|
+
color: !action.disabled ? convertActionVariantToIconColor(action.variant) : "inherit",
|
1995
|
+
children: action.icon
|
1996
|
+
}
|
1997
|
+
),
|
1998
|
+
action.label
|
1999
|
+
]
|
2000
|
+
}
|
2001
|
+
) })
|
1984
2002
|
},
|
1985
2003
|
action.id
|
1986
2004
|
);
|
@@ -2117,6 +2135,7 @@ const PublishAction$1 = ({
|
|
2117
2135
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
2118
2136
|
const isListView = reactRouterDom.useMatch(LIST_PATH) !== null;
|
2119
2137
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2138
|
+
const { id } = reactRouterDom.useParams();
|
2120
2139
|
const { formatMessage } = reactIntl.useIntl();
|
2121
2140
|
const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
|
2122
2141
|
const { publish } = useDocumentActions();
|
@@ -2219,10 +2238,12 @@ const PublishAction$1 = ({
|
|
2219
2238
|
transformData(formValues)
|
2220
2239
|
);
|
2221
2240
|
if ("data" in res && collectionType !== SINGLE_TYPES) {
|
2222
|
-
|
2223
|
-
|
2224
|
-
|
2225
|
-
|
2241
|
+
if (id === "create") {
|
2242
|
+
navigate({
|
2243
|
+
pathname: `../${collectionType}/${model}/${res.data.documentId}`,
|
2244
|
+
search: rawQuery
|
2245
|
+
});
|
2246
|
+
}
|
2226
2247
|
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2227
2248
|
setErrors(formatValidationErrors(res.error));
|
2228
2249
|
}
|
@@ -2275,6 +2296,7 @@ const PublishAction$1 = ({
|
|
2275
2296
|
};
|
2276
2297
|
};
|
2277
2298
|
PublishAction$1.type = "publish";
|
2299
|
+
PublishAction$1.position = "panel";
|
2278
2300
|
const UpdateAction = ({
|
2279
2301
|
activeTab,
|
2280
2302
|
documentId,
|
@@ -2297,96 +2319,134 @@ const UpdateAction = ({
|
|
2297
2319
|
const validate = strapiAdmin.useForm("UpdateAction", (state) => state.validate);
|
2298
2320
|
const setErrors = strapiAdmin.useForm("UpdateAction", (state) => state.setErrors);
|
2299
2321
|
const resetForm = strapiAdmin.useForm("PublishAction", ({ resetForm: resetForm2 }) => resetForm2);
|
2300
|
-
|
2301
|
-
|
2302
|
-
|
2303
|
-
|
2304
|
-
|
2305
|
-
|
2306
|
-
|
2307
|
-
|
2308
|
-
|
2309
|
-
|
2310
|
-
|
2311
|
-
|
2312
|
-
|
2313
|
-
|
2314
|
-
|
2315
|
-
|
2316
|
-
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
|
+
})
|
2317
2338
|
});
|
2318
|
-
|
2319
|
-
|
2320
|
-
|
2321
|
-
|
2322
|
-
|
2323
|
-
|
2324
|
-
|
2325
|
-
|
2326
|
-
|
2327
|
-
|
2328
|
-
|
2329
|
-
|
2330
|
-
|
2331
|
-
model,
|
2332
|
-
documentId: cloneMatch.params.origin,
|
2333
|
-
params
|
2334
|
-
},
|
2335
|
-
transformData(document)
|
2336
|
-
);
|
2337
|
-
if ("data" in res) {
|
2338
|
-
navigate(
|
2339
|
-
{
|
2340
|
-
pathname: `../${res.data.documentId}`,
|
2341
|
-
search: rawQuery
|
2342
|
-
},
|
2343
|
-
{ relative: "path" }
|
2344
|
-
);
|
2345
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2346
|
-
setErrors(formatValidationErrors(res.error));
|
2347
|
-
}
|
2348
|
-
} else if (documentId || collectionType === SINGLE_TYPES) {
|
2349
|
-
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(
|
2350
2352
|
{
|
2351
|
-
|
2352
|
-
|
2353
|
-
documentId,
|
2354
|
-
params
|
2353
|
+
pathname: `../${res.data.documentId}`,
|
2354
|
+
search: rawQuery
|
2355
2355
|
},
|
2356
|
-
|
2356
|
+
{ relative: "path" }
|
2357
2357
|
);
|
2358
|
-
|
2359
|
-
|
2360
|
-
|
2361
|
-
|
2362
|
-
|
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));
|
2363
2373
|
} else {
|
2364
|
-
|
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(
|
2365
2386
|
{
|
2366
|
-
|
2367
|
-
|
2387
|
+
pathname: `../${res.data.documentId}`,
|
2388
|
+
search: rawQuery
|
2368
2389
|
},
|
2369
|
-
|
2390
|
+
{ replace: true, relative: "path" }
|
2370
2391
|
);
|
2371
|
-
|
2372
|
-
|
2373
|
-
{
|
2374
|
-
pathname: `../${res.data.documentId}`,
|
2375
|
-
search: rawQuery
|
2376
|
-
},
|
2377
|
-
{ replace: true, relative: "path" }
|
2378
|
-
);
|
2379
|
-
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2380
|
-
setErrors(formatValidationErrors(res.error));
|
2381
|
-
}
|
2392
|
+
} else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
2393
|
+
setErrors(formatValidationErrors(res.error));
|
2382
2394
|
}
|
2383
|
-
} finally {
|
2384
|
-
setSubmitting(false);
|
2385
2395
|
}
|
2396
|
+
} finally {
|
2397
|
+
setSubmitting(false);
|
2386
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
|
2387
2446
|
};
|
2388
2447
|
};
|
2389
2448
|
UpdateAction.type = "update";
|
2449
|
+
UpdateAction.position = "panel";
|
2390
2450
|
const UNPUBLISH_DRAFT_OPTIONS = {
|
2391
2451
|
KEEP: "keep",
|
2392
2452
|
DISCARD: "discard"
|
@@ -2509,6 +2569,7 @@ const UnpublishAction$1 = ({
|
|
2509
2569
|
};
|
2510
2570
|
};
|
2511
2571
|
UnpublishAction$1.type = "unpublish";
|
2572
|
+
UnpublishAction$1.position = "panel";
|
2512
2573
|
const DiscardAction = ({
|
2513
2574
|
activeTab,
|
2514
2575
|
documentId,
|
@@ -2559,6 +2620,7 @@ const DiscardAction = ({
|
|
2559
2620
|
};
|
2560
2621
|
};
|
2561
2622
|
DiscardAction.type = "discard";
|
2623
|
+
DiscardAction.position = "panel";
|
2562
2624
|
const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
|
2563
2625
|
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
2564
2626
|
const RelativeTime = React__namespace.forwardRef(
|
@@ -2571,7 +2633,7 @@ const RelativeTime = React__namespace.forwardRef(
|
|
2571
2633
|
});
|
2572
2634
|
const unit = intervals.find((intervalUnit) => {
|
2573
2635
|
return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);
|
2574
|
-
});
|
2636
|
+
}) ?? "seconds";
|
2575
2637
|
const relativeTime = dateFns.isPast(timestamp) ? -interval[unit] : interval[unit];
|
2576
2638
|
const customInterval = customIntervals.find(
|
2577
2639
|
(custom) => interval[custom.unit] < custom.threshold
|
@@ -2605,10 +2667,10 @@ const getDisplayName = ({
|
|
2605
2667
|
return email ?? "";
|
2606
2668
|
};
|
2607
2669
|
const capitalise = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
2608
|
-
const DocumentStatus = ({ status = "draft", ...restProps }) => {
|
2670
|
+
const DocumentStatus = ({ status = "draft", size = "S", ...restProps }) => {
|
2609
2671
|
const statusVariant = status === "draft" ? "secondary" : status === "published" ? "success" : "alternative";
|
2610
2672
|
const { formatMessage } = reactIntl.useIntl();
|
2611
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps,
|
2673
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps, size, variant: statusVariant, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: formatMessage({
|
2612
2674
|
id: `content-manager.containers.List.${status}`,
|
2613
2675
|
defaultMessage: capitalise(status)
|
2614
2676
|
}) }) });
|
@@ -2616,12 +2678,18 @@ const DocumentStatus = ({ status = "draft", ...restProps }) => {
|
|
2616
2678
|
const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
|
2617
2679
|
const { formatMessage } = reactIntl.useIntl();
|
2618
2680
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
2681
|
+
const params = reactRouterDom.useParams();
|
2619
2682
|
const title = isCreating ? formatMessage({
|
2620
2683
|
id: "content-manager.containers.edit.title.new",
|
2621
2684
|
defaultMessage: "Create an entry"
|
2622
2685
|
}) : documentTitle;
|
2623
2686
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "flex-start", paddingTop: 6, paddingBottom: 4, gap: 2, children: [
|
2624
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
2687
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
2688
|
+
strapiAdmin.BackButton,
|
2689
|
+
{
|
2690
|
+
fallback: params.collectionType === SINGLE_TYPES ? void 0 : `../${COLLECTION_TYPES}/${params.slug}`
|
2691
|
+
}
|
2692
|
+
),
|
2625
2693
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { width: "100%", justifyContent: "space-between", gap: "80px", alignItems: "flex-start", children: [
|
2626
2694
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: title }),
|
2627
2695
|
/* @__PURE__ */ jsxRuntime.jsx(HeaderToolbar, {})
|
@@ -2672,7 +2740,7 @@ const HeaderToolbar = () => {
|
|
2672
2740
|
meta: isCloning ? void 0 : meta,
|
2673
2741
|
collectionType
|
2674
2742
|
},
|
2675
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
2743
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("header"),
|
2676
2744
|
children: (actions2) => {
|
2677
2745
|
const headerActions = actions2.filter((action) => {
|
2678
2746
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -2880,6 +2948,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
|
|
2880
2948
|
};
|
2881
2949
|
};
|
2882
2950
|
ConfigureTheViewAction.type = "configure-the-view";
|
2951
|
+
ConfigureTheViewAction.position = "header";
|
2883
2952
|
const EditTheModelAction = ({ model }) => {
|
2884
2953
|
const navigate = reactRouterDom.useNavigate();
|
2885
2954
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2896,6 +2965,7 @@ const EditTheModelAction = ({ model }) => {
|
|
2896
2965
|
};
|
2897
2966
|
};
|
2898
2967
|
EditTheModelAction.type = "edit-the-model";
|
2968
|
+
EditTheModelAction.position = "header";
|
2899
2969
|
const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
2900
2970
|
const navigate = reactRouterDom.useNavigate();
|
2901
2971
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -2969,6 +3039,7 @@ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
|
|
2969
3039
|
};
|
2970
3040
|
};
|
2971
3041
|
DeleteAction$1.type = "delete";
|
3042
|
+
DeleteAction$1.position = ["header", "table-row"];
|
2972
3043
|
const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
|
2973
3044
|
const Panels = () => {
|
2974
3045
|
const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
|
@@ -3031,7 +3102,7 @@ const ActionsPanelContent = () => {
|
|
3031
3102
|
strapiAdmin.DescriptionComponentRenderer,
|
3032
3103
|
{
|
3033
3104
|
props,
|
3034
|
-
descriptions: plugins["content-manager"].apis.getDocumentActions(),
|
3105
|
+
descriptions: plugins["content-manager"].apis.getDocumentActions("panel"),
|
3035
3106
|
children: (actions2) => /* @__PURE__ */ jsxRuntime.jsx(DocumentActions, { actions: actions2 })
|
3036
3107
|
}
|
3037
3108
|
),
|
@@ -3308,18 +3379,10 @@ const SelectedEntriesTableContent = ({
|
|
3308
3379
|
search: row.locale && `?plugins[i18n][locale]=${row.locale}`
|
3309
3380
|
},
|
3310
3381
|
state: { from: pathname },
|
3311
|
-
label: formatMessage(
|
3312
|
-
|
3313
|
-
|
3314
|
-
|
3315
|
-
{
|
3316
|
-
id: "content-manager.components.ListViewHelperPluginTable.row-line",
|
3317
|
-
defaultMessage: "item line {number}"
|
3318
|
-
},
|
3319
|
-
{ number: index2 + 1 }
|
3320
|
-
)
|
3321
|
-
}
|
3322
|
-
),
|
3382
|
+
label: formatMessage({
|
3383
|
+
id: "content-manager.bulk-publish.edit",
|
3384
|
+
defaultMessage: "Edit"
|
3385
|
+
}),
|
3323
3386
|
target: "_blank",
|
3324
3387
|
marginLeft: "auto",
|
3325
3388
|
variant: "ghost",
|
@@ -3493,8 +3556,7 @@ const PublishAction = ({ documents, model }) => {
|
|
3493
3556
|
const refetchList = () => {
|
3494
3557
|
contentManagerApi.util.invalidateTags([{ type: "Document", id: `${model}_LIST` }]);
|
3495
3558
|
};
|
3496
|
-
if (!showPublishButton)
|
3497
|
-
return null;
|
3559
|
+
if (!showPublishButton) return null;
|
3498
3560
|
return {
|
3499
3561
|
actionType: "publish",
|
3500
3562
|
variant: "tertiary",
|
@@ -3562,8 +3624,7 @@ const DeleteAction = ({ documents, model }) => {
|
|
3562
3624
|
selectRow([]);
|
3563
3625
|
}
|
3564
3626
|
};
|
3565
|
-
if (!hasDeletePermission)
|
3566
|
-
return null;
|
3627
|
+
if (!hasDeletePermission) return null;
|
3567
3628
|
return {
|
3568
3629
|
variant: "danger-light",
|
3569
3630
|
label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
|
@@ -3612,8 +3673,7 @@ const UnpublishAction = ({ documents, model }) => {
|
|
3612
3673
|
}
|
3613
3674
|
};
|
3614
3675
|
const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published" || entry.status === "modified");
|
3615
|
-
if (!showUnpublishButton)
|
3616
|
-
return null;
|
3676
|
+
if (!showUnpublishButton) return null;
|
3617
3677
|
return {
|
3618
3678
|
variant: "tertiary",
|
3619
3679
|
label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
|
@@ -3718,7 +3778,7 @@ const TableActions = ({ document }) => {
|
|
3718
3778
|
strapiAdmin.DescriptionComponentRenderer,
|
3719
3779
|
{
|
3720
3780
|
props,
|
3721
|
-
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"),
|
3722
3782
|
children: (actions2) => {
|
3723
3783
|
const tableRowActions = actions2.filter((action) => {
|
3724
3784
|
const positions = Array.isArray(action.position) ? action.position : [action.position];
|
@@ -3777,6 +3837,7 @@ const EditAction = ({ documentId }) => {
|
|
3777
3837
|
};
|
3778
3838
|
};
|
3779
3839
|
EditAction.type = "edit";
|
3840
|
+
EditAction.position = "table-row";
|
3780
3841
|
const StyledPencil = styledComponents.styled(Icons.Pencil)`
|
3781
3842
|
path {
|
3782
3843
|
fill: currentColor;
|
@@ -3853,6 +3914,7 @@ const CloneAction = ({ model, documentId }) => {
|
|
3853
3914
|
};
|
3854
3915
|
};
|
3855
3916
|
CloneAction.type = "clone";
|
3917
|
+
CloneAction.position = "table-row";
|
3856
3918
|
const StyledDuplicate = styledComponents.styled(Icons.Duplicate)`
|
3857
3919
|
path {
|
3858
3920
|
fill: currentColor;
|
@@ -3939,7 +4001,14 @@ class ContentManagerPlugin {
|
|
3939
4001
|
addDocumentHeaderAction: this.addDocumentHeaderAction.bind(this),
|
3940
4002
|
addEditViewSidePanel: this.addEditViewSidePanel.bind(this),
|
3941
4003
|
getBulkActions: () => this.bulkActions,
|
3942
|
-
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
|
+
},
|
3943
4012
|
getEditViewSidePanels: () => this.editViewSidePanels,
|
3944
4013
|
getHeaderActions: () => this.headerActions
|
3945
4014
|
}
|
@@ -3949,10 +4018,8 @@ class ContentManagerPlugin {
|
|
3949
4018
|
const getPrintableType = (value) => {
|
3950
4019
|
const nativeType = typeof value;
|
3951
4020
|
if (nativeType === "object") {
|
3952
|
-
if (value === null)
|
3953
|
-
|
3954
|
-
if (Array.isArray(value))
|
3955
|
-
return "array";
|
4021
|
+
if (value === null) return "null";
|
4022
|
+
if (Array.isArray(value)) return "array";
|
3956
4023
|
if (value instanceof Object && value.constructor.name !== "Object") {
|
3957
4024
|
return value.constructor.name;
|
3958
4025
|
}
|
@@ -3963,17 +4030,27 @@ const HistoryAction = ({ model, document }) => {
|
|
3963
4030
|
const { formatMessage } = reactIntl.useIntl();
|
3964
4031
|
const [{ query }] = strapiAdmin.useQueryParams();
|
3965
4032
|
const navigate = reactRouterDom.useNavigate();
|
4033
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
4034
|
+
const { pathname } = reactRouterDom.useLocation();
|
3966
4035
|
const pluginsQueryParams = qs.stringify({ plugins: query.plugins }, { encode: false });
|
3967
4036
|
if (!window.strapi.features.isEnabled("cms-content-history")) {
|
3968
4037
|
return null;
|
3969
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
|
+
};
|
3970
4047
|
return {
|
3971
4048
|
icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ClockCounterClockwise, {}),
|
3972
4049
|
label: formatMessage({
|
3973
4050
|
id: "content-manager.history.document-action",
|
3974
4051
|
defaultMessage: "Content History"
|
3975
4052
|
}),
|
3976
|
-
onClick:
|
4053
|
+
onClick: handleOnClick,
|
3977
4054
|
disabled: (
|
3978
4055
|
/**
|
3979
4056
|
* The user is creating a new document.
|
@@ -3995,6 +4072,7 @@ const HistoryAction = ({ model, document }) => {
|
|
3995
4072
|
};
|
3996
4073
|
};
|
3997
4074
|
HistoryAction.type = "history";
|
4075
|
+
HistoryAction.position = "header";
|
3998
4076
|
const historyAdmin = {
|
3999
4077
|
bootstrap(app) {
|
4000
4078
|
const { addDocumentAction } = app.getPlugin("content-manager").apis;
|
@@ -4057,10 +4135,18 @@ const previewApi = contentManagerApi.injectEndpoints({
|
|
4057
4135
|
})
|
4058
4136
|
});
|
4059
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
|
+
};
|
4060
4144
|
const PreviewSidePanel = ({ model, documentId, document }) => {
|
4061
4145
|
const { formatMessage } = reactIntl.useIntl();
|
4062
4146
|
const { trackUsage } = strapiAdmin.useTracking();
|
4147
|
+
const { pathname } = reactRouterDom.useLocation();
|
4063
4148
|
const [{ query }] = strapiAdmin.useQueryParams();
|
4149
|
+
const isModified = strapiAdmin.useForm("PreviewSidePanel", (state) => state.modified);
|
4064
4150
|
const { data, error } = useGetPreviewUrlQuery({
|
4065
4151
|
params: {
|
4066
4152
|
contentType: model
|
@@ -4074,33 +4160,43 @@ const PreviewSidePanel = ({ model, documentId, document }) => {
|
|
4074
4160
|
if (!data?.data?.url || error) {
|
4075
4161
|
return null;
|
4076
4162
|
}
|
4077
|
-
const
|
4078
|
-
|
4163
|
+
const trackNavigation = () => {
|
4164
|
+
const destinationPathname = pathname.replace(/\/$/, "") + "/preview";
|
4165
|
+
trackUsage("willNavigate", { from: pathname, to: destinationPathname });
|
4079
4166
|
};
|
4080
4167
|
return {
|
4081
4168
|
title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
|
4082
|
-
content: /* @__PURE__ */ jsxRuntime.jsx(
|
4083
|
-
|
4169
|
+
content: /* @__PURE__ */ jsxRuntime.jsx(
|
4170
|
+
ConditionalTooltip,
|
4084
4171
|
{
|
4085
|
-
|
4086
|
-
|
4087
|
-
|
4088
|
-
|
4089
|
-
|
4090
|
-
children:
|
4091
|
-
|
4092
|
-
|
4093
|
-
|
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
|
+
) })
|
4094
4194
|
}
|
4095
|
-
)
|
4195
|
+
)
|
4096
4196
|
};
|
4097
4197
|
};
|
4098
|
-
const FEATURE_ID = "preview";
|
4099
4198
|
const previewAdmin = {
|
4100
4199
|
bootstrap(app) {
|
4101
|
-
if (!window.strapi.future.isEnabled(FEATURE_ID)) {
|
4102
|
-
return;
|
4103
|
-
}
|
4104
4200
|
const contentManagerPluginApis = app.getPlugin("content-manager").apis;
|
4105
4201
|
contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
|
4106
4202
|
}
|
@@ -4124,7 +4220,7 @@ const index = {
|
|
4124
4220
|
app.router.addRoute({
|
4125
4221
|
path: "content-manager/*",
|
4126
4222
|
lazy: async () => {
|
4127
|
-
const { Layout } = await Promise.resolve().then(() => require("./layout-
|
4223
|
+
const { Layout } = await Promise.resolve().then(() => require("./layout-BW80JSCd.js"));
|
4128
4224
|
return {
|
4129
4225
|
Component: Layout
|
4130
4226
|
};
|
@@ -4144,7 +4240,7 @@ const index = {
|
|
4144
4240
|
async registerTrads({ locales }) {
|
4145
4241
|
const importedTrads = await Promise.all(
|
4146
4242
|
locales.map((locale) => {
|
4147
|
-
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 }) => {
|
4148
4244
|
return {
|
4149
4245
|
data: prefixPluginTranslations(data, PLUGIN_ID),
|
4150
4246
|
locale
|
@@ -4204,4 +4300,4 @@ exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuer
|
|
4204
4300
|
exports.useGetInitialDataQuery = useGetInitialDataQuery;
|
4205
4301
|
exports.useGetPreviewUrlQuery = useGetPreviewUrlQuery;
|
4206
4302
|
exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
|
4207
|
-
//# sourceMappingURL=index-
|
4303
|
+
//# sourceMappingURL=index-Ca7YWlAA.js.map
|