@strapi/content-manager 0.0.0-next.39bf1ab0d2e327b0a192d2f5adcb4182de865411 → 0.0.0-next.3a1d87a9c3b1d4d89f741c6ecd7f501230fd8d76

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.
Files changed (130) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-DYq8aqos.js → ComponentConfigurationPage-DMxUlNOo.js} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-DYq8aqos.js.map → ComponentConfigurationPage-DMxUlNOo.js.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-CzVt9QCC.mjs → ComponentConfigurationPage-baEkO-OV.mjs} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-CzVt9QCC.mjs.map → ComponentConfigurationPage-baEkO-OV.mjs.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-C9IATpr0.js → EditConfigurationPage-CXxV7mKn.js} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-C9IATpr0.js.map → EditConfigurationPage-CXxV7mKn.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-CLDwrUv5.mjs → EditConfigurationPage-YR8-4VCS.mjs} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-CLDwrUv5.mjs.map → EditConfigurationPage-YR8-4VCS.mjs.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-Ch-uBvbv.js → EditViewPage-BfR6jAR6.js} +13 -76
  10. package/dist/_chunks/EditViewPage-BfR6jAR6.js.map +1 -0
  11. package/dist/_chunks/{EditViewPage-DtKM7Jgw.mjs → EditViewPage-DFF7c27p.mjs} +11 -74
  12. package/dist/_chunks/EditViewPage-DFF7c27p.mjs.map +1 -0
  13. package/dist/_chunks/{Form-C3kjKrPw.js → Form-CjcMRP5A.js} +2 -2
  14. package/dist/_chunks/{Form-C3kjKrPw.js.map → Form-CjcMRP5A.js.map} +1 -1
  15. package/dist/_chunks/{Form-BB5i9Pxl.mjs → Form-MSOSfGGN.mjs} +2 -2
  16. package/dist/_chunks/{Form-BB5i9Pxl.mjs.map → Form-MSOSfGGN.mjs.map} +1 -1
  17. package/dist/_chunks/{History-AwrK0-SA.js → History-BgZ7gVuF.js} +43 -19
  18. package/dist/_chunks/History-BgZ7gVuF.js.map +1 -0
  19. package/dist/_chunks/{History-Cw2Q7OQL.mjs → History-WOQNVho-.mjs} +32 -8
  20. package/dist/_chunks/History-WOQNVho-.mjs.map +1 -0
  21. package/dist/_chunks/{Field-Bn1jgMeF.mjs → Input-BkKwZ6Qt.mjs} +1215 -1193
  22. package/dist/_chunks/Input-BkKwZ6Qt.mjs.map +1 -0
  23. package/dist/_chunks/{Field-B9ADaInZ.js → Input-BwOibhc3.js} +1297 -1274
  24. package/dist/_chunks/Input-BwOibhc3.js.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-B47JIu1e.mjs → ListConfigurationPage-BeXfr6uW.mjs} +2 -2
  26. package/dist/_chunks/{ListConfigurationPage-B47JIu1e.mjs.map → ListConfigurationPage-BeXfr6uW.mjs.map} +1 -1
  27. package/dist/_chunks/{ListConfigurationPage-CNTJ0DBm.js → ListConfigurationPage-DnJ3nbwL.js} +2 -2
  28. package/dist/_chunks/{ListConfigurationPage-CNTJ0DBm.js.map → ListConfigurationPage-DnJ3nbwL.js.map} +1 -1
  29. package/dist/_chunks/{ListViewPage-Be_UEBar.js → ListViewPage-CJFDudKl.js} +13 -10
  30. package/dist/_chunks/{ListViewPage-Be_UEBar.js.map → ListViewPage-CJFDudKl.js.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-DuvjX6ra.mjs → ListViewPage-VK2v44Q1.mjs} +8 -5
  32. package/dist/_chunks/{ListViewPage-DuvjX6ra.mjs.map → ListViewPage-VK2v44Q1.mjs.map} +1 -1
  33. package/dist/_chunks/{NoContentTypePage-C6M-Q0Tv.mjs → NoContentTypePage-T8ttty6K.mjs} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-C6M-Q0Tv.mjs.map → NoContentTypePage-T8ttty6K.mjs.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-B1J0KUCO.js → NoContentTypePage-en2PwWgI.js} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-B1J0KUCO.js.map → NoContentTypePage-en2PwWgI.js.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-CN34TlEE.js → NoPermissionsPage-CcjILry3.js} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-CN34TlEE.js.map → NoPermissionsPage-CcjILry3.js.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-CAi3zCAD.mjs → NoPermissionsPage-CokBHhhy.mjs} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-CAi3zCAD.mjs.map → NoPermissionsPage-CokBHhhy.mjs.map} +1 -1
  41. package/dist/_chunks/{Preview-BrBRcL10.mjs → Preview-BF81YhRj.mjs} +10 -16
  42. package/dist/_chunks/Preview-BF81YhRj.mjs.map +1 -0
  43. package/dist/_chunks/{Preview-DOqm5jcJ.js → Preview-DgzAuzWQ.js} +10 -16
  44. package/dist/_chunks/Preview-DgzAuzWQ.js.map +1 -0
  45. package/dist/_chunks/{Relations-xtKZHtTN.js → Relations-1O-JcM4t.js} +3 -3
  46. package/dist/_chunks/{Relations-xtKZHtTN.js.map → Relations-1O-JcM4t.js.map} +1 -1
  47. package/dist/_chunks/{Relations-_K-HYOiM.mjs → Relations-BncdhGCd.mjs} +3 -3
  48. package/dist/_chunks/{Relations-_K-HYOiM.mjs.map → Relations-BncdhGCd.mjs.map} +1 -1
  49. package/dist/_chunks/{en-Dtk_ot79.mjs → en-BZaUty0m.mjs} +8 -2
  50. package/dist/_chunks/{en-Dtk_ot79.mjs.map → en-BZaUty0m.mjs.map} +1 -1
  51. package/dist/_chunks/{en-BK8Xyl5I.js → en-CzCnBk4S.js} +8 -2
  52. package/dist/_chunks/{en-BK8Xyl5I.js.map → en-CzCnBk4S.js.map} +1 -1
  53. package/dist/_chunks/{index-tETMKK2G.mjs → index-DiluOUp6.mjs} +214 -52
  54. package/dist/_chunks/index-DiluOUp6.mjs.map +1 -0
  55. package/dist/_chunks/{index-BlX-OdHL.js → index-EXJvmn4t.js} +197 -35
  56. package/dist/_chunks/index-EXJvmn4t.js.map +1 -0
  57. package/dist/_chunks/{layout-D8Sz3KxF.js → layout-4TbKVax8.js} +3 -3
  58. package/dist/_chunks/{layout-D8Sz3KxF.js.map → layout-4TbKVax8.js.map} +1 -1
  59. package/dist/_chunks/{layout-BaQBaz56.mjs → layout-mSwsYzxv.mjs} +3 -3
  60. package/dist/_chunks/{layout-BaQBaz56.mjs.map → layout-mSwsYzxv.mjs.map} +1 -1
  61. package/dist/_chunks/{relations-CsfmCqOU.mjs → relations--YOvQBqv.mjs} +2 -2
  62. package/dist/_chunks/{relations-CsfmCqOU.mjs.map → relations--YOvQBqv.mjs.map} +1 -1
  63. package/dist/_chunks/{relations-CAbbX8Sa.js → relations-Ai6Izh7h.js} +2 -2
  64. package/dist/_chunks/{relations-CAbbX8Sa.js.map → relations-Ai6Izh7h.js.map} +1 -1
  65. package/dist/_chunks/{useDebounce-DmuSJIF3.mjs → usePrev-CZGy2Vjf.mjs} +11 -11
  66. package/dist/_chunks/usePrev-CZGy2Vjf.mjs.map +1 -0
  67. package/dist/_chunks/{useDebounce-CtcjDB3L.js → usePrev-D5J_2fEu.js} +8 -8
  68. package/dist/_chunks/usePrev-D5J_2fEu.js.map +1 -0
  69. package/dist/admin/index.js +2 -1
  70. package/dist/admin/index.js.map +1 -1
  71. package/dist/admin/index.mjs +6 -5
  72. package/dist/admin/src/exports.d.ts +1 -0
  73. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  74. package/dist/admin/src/hooks/useDocument.d.ts +19 -2
  75. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +1 -1
  76. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
  77. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
  78. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
  79. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +4 -1
  80. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +4 -1
  81. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +27 -0
  82. package/dist/admin/src/pages/EditView/utils/data.d.ts +1 -0
  83. package/dist/admin/src/preview/pages/Preview.d.ts +1 -1
  84. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  85. package/dist/admin/src/services/api.d.ts +1 -1
  86. package/dist/admin/src/services/components.d.ts +2 -2
  87. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  88. package/dist/admin/src/services/documents.d.ts +16 -16
  89. package/dist/admin/src/services/init.d.ts +1 -1
  90. package/dist/admin/src/services/relations.d.ts +2 -2
  91. package/dist/admin/src/services/uid.d.ts +3 -3
  92. package/dist/server/index.js +156 -142
  93. package/dist/server/index.js.map +1 -1
  94. package/dist/server/index.mjs +157 -143
  95. package/dist/server/index.mjs.map +1 -1
  96. package/dist/server/src/controllers/utils/metadata.d.ts +1 -0
  97. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  98. package/dist/server/src/history/controllers/history-version.d.ts +1 -1
  99. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  100. package/dist/server/src/history/services/history.d.ts +3 -3
  101. package/dist/server/src/history/services/history.d.ts.map +1 -1
  102. package/dist/server/src/history/services/utils.d.ts +6 -10
  103. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  104. package/dist/server/src/index.d.ts +3 -2
  105. package/dist/server/src/index.d.ts.map +1 -1
  106. package/dist/server/src/preview/index.d.ts.map +1 -1
  107. package/dist/server/src/services/document-metadata.d.ts +4 -2
  108. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  109. package/dist/server/src/services/index.d.ts +3 -2
  110. package/dist/server/src/services/index.d.ts.map +1 -1
  111. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  112. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  113. package/dist/server/src/services/utils/populate.d.ts +2 -2
  114. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  115. package/package.json +8 -7
  116. package/dist/_chunks/EditViewPage-Ch-uBvbv.js.map +0 -1
  117. package/dist/_chunks/EditViewPage-DtKM7Jgw.mjs.map +0 -1
  118. package/dist/_chunks/Field-B9ADaInZ.js.map +0 -1
  119. package/dist/_chunks/Field-Bn1jgMeF.mjs.map +0 -1
  120. package/dist/_chunks/History-AwrK0-SA.js.map +0 -1
  121. package/dist/_chunks/History-Cw2Q7OQL.mjs.map +0 -1
  122. package/dist/_chunks/Preview-BrBRcL10.mjs.map +0 -1
  123. package/dist/_chunks/Preview-DOqm5jcJ.js.map +0 -1
  124. package/dist/_chunks/index-BlX-OdHL.js.map +0 -1
  125. package/dist/_chunks/index-tETMKK2G.mjs.map +0 -1
  126. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +0 -1
  127. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +0 -1
  128. package/dist/admin/src/preview/constants.d.ts +0 -1
  129. package/dist/server/src/preview/constants.d.ts +0 -2
  130. package/dist/server/src/preview/constants.d.ts.map +0 -1
@@ -10,8 +10,9 @@ import { useParams, useNavigate, Navigate, useMatch, useLocation, Link, NavLink
10
10
  import { styled } from "styled-components";
11
11
  import * as yup from "yup";
12
12
  import { ValidationError } from "yup";
13
- import { stringify } from "qs";
13
+ import { generateNKeysBetween } from "fractional-indexing";
14
14
  import pipe from "lodash/fp/pipe";
15
+ import { stringify } from "qs";
15
16
  import { intervalToDuration, isPast } from "date-fns";
16
17
  import { createSlice, combineReducers } from "@reduxjs/toolkit";
17
18
  const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
@@ -166,6 +167,113 @@ const extractAndDedupeFields = (permissions = []) => permissions.flatMap((permis
166
167
  (field, index2, arr) => arr.indexOf(field) === index2 && typeof field === "string"
167
168
  );
168
169
  const removeNumericalStrings = (arr) => arr.filter((item) => isNaN(Number(item)));
170
+ const BLOCK_LIST_ATTRIBUTE_KEYS = ["__component", "__temp_key__"];
171
+ const traverseData = (predicate, transform) => (schema, components = {}) => (data = {}) => {
172
+ const traverse = (datum, attributes) => {
173
+ return Object.entries(datum).reduce((acc, [key, value]) => {
174
+ const attribute = attributes[key];
175
+ if (BLOCK_LIST_ATTRIBUTE_KEYS.includes(key) || value === null || value === void 0) {
176
+ acc[key] = value;
177
+ return acc;
178
+ }
179
+ if (attribute.type === "component") {
180
+ if (attribute.repeatable) {
181
+ const componentValue = predicate(attribute, value) ? transform(value, attribute) : value;
182
+ acc[key] = componentValue.map(
183
+ (componentData) => traverse(componentData, components[attribute.component]?.attributes ?? {})
184
+ );
185
+ } else {
186
+ const componentValue = predicate(attribute, value) ? transform(value, attribute) : value;
187
+ acc[key] = traverse(componentValue, components[attribute.component]?.attributes ?? {});
188
+ }
189
+ } else if (attribute.type === "dynamiczone") {
190
+ const dynamicZoneValue = predicate(attribute, value) ? transform(value, attribute) : value;
191
+ acc[key] = dynamicZoneValue.map(
192
+ (componentData) => traverse(componentData, components[componentData.__component]?.attributes ?? {})
193
+ );
194
+ } else if (predicate(attribute, value)) {
195
+ acc[key] = transform(value, attribute);
196
+ } else {
197
+ acc[key] = value;
198
+ }
199
+ return acc;
200
+ }, {});
201
+ };
202
+ return traverse(data, schema.attributes);
203
+ };
204
+ const removeProhibitedFields = (prohibitedFields) => traverseData(
205
+ (attribute) => prohibitedFields.includes(attribute.type),
206
+ () => ""
207
+ );
208
+ const prepareRelations = traverseData(
209
+ (attribute) => attribute.type === "relation",
210
+ () => ({
211
+ connect: [],
212
+ disconnect: []
213
+ })
214
+ );
215
+ const prepareTempKeys = traverseData(
216
+ (attribute) => attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone",
217
+ (data) => {
218
+ if (Array.isArray(data) && data.length > 0) {
219
+ const keys = generateNKeysBetween(void 0, void 0, data.length);
220
+ return data.map((datum, index2) => ({
221
+ ...datum,
222
+ __temp_key__: keys[index2]
223
+ }));
224
+ }
225
+ return data;
226
+ }
227
+ );
228
+ const removeFieldsThatDontExistOnSchema = (schema) => (data) => {
229
+ const schemaKeys = Object.keys(schema.attributes);
230
+ const dataKeys = Object.keys(data);
231
+ const keysToRemove = dataKeys.filter((key) => !schemaKeys.includes(key));
232
+ const revisedData = [...keysToRemove, ...DOCUMENT_META_FIELDS].reduce((acc, key) => {
233
+ delete acc[key];
234
+ return acc;
235
+ }, structuredClone(data));
236
+ return revisedData;
237
+ };
238
+ const removeNullValues = (data) => {
239
+ return Object.entries(data).reduce((acc, [key, value]) => {
240
+ if (value === null) {
241
+ return acc;
242
+ }
243
+ acc[key] = value;
244
+ return acc;
245
+ }, {});
246
+ };
247
+ const transformDocument = (schema, components = {}) => (document) => {
248
+ const transformations = pipe(
249
+ removeFieldsThatDontExistOnSchema(schema),
250
+ removeProhibitedFields(["password"])(schema, components),
251
+ removeNullValues,
252
+ prepareRelations(schema, components),
253
+ prepareTempKeys(schema, components)
254
+ );
255
+ return transformations(document);
256
+ };
257
+ const createDefaultForm = (contentType, components = {}) => {
258
+ const traverseSchema = (attributes) => {
259
+ return Object.entries(attributes).reduce((acc, [key, attribute]) => {
260
+ if ("default" in attribute) {
261
+ acc[key] = attribute.default;
262
+ } else if (attribute.type === "component" && attribute.required) {
263
+ const defaultComponentForm = traverseSchema(components[attribute.component].attributes);
264
+ if (attribute.repeatable) {
265
+ acc[key] = attribute.min ? [...Array(attribute.min).fill(defaultComponentForm)] : [];
266
+ } else {
267
+ acc[key] = defaultComponentForm;
268
+ }
269
+ } else if (attribute.type === "dynamiczone" && attribute.required) {
270
+ acc[key] = [];
271
+ }
272
+ return acc;
273
+ }, {});
274
+ };
275
+ return traverseSchema(contentType.attributes);
276
+ };
169
277
  const contentManagerApi = adminApi.enhanceEndpoints({
170
278
  addTagTypes: [
171
279
  "ComponentConfiguration",
@@ -175,7 +283,8 @@ const contentManagerApi = adminApi.enhanceEndpoints({
175
283
  "InitialData",
176
284
  "HistoryVersion",
177
285
  "Relations",
178
- "UidAvailability"
286
+ "UidAvailability",
287
+ "RecentDocumentList"
179
288
  ]
180
289
  });
181
290
  const documentApi = contentManagerApi.injectEndpoints({
@@ -193,7 +302,7 @@ const documentApi = contentManagerApi.injectEndpoints({
193
302
  if (error) {
194
303
  return [];
195
304
  }
196
- return [{ type: "Document", id: `${model}_LIST` }];
305
+ return [{ type: "Document", id: `${model}_LIST` }, "RecentDocumentList"];
197
306
  }
198
307
  }),
199
308
  cloneDocument: builder.mutation({
@@ -207,7 +316,8 @@ const documentApi = contentManagerApi.injectEndpoints({
207
316
  }),
208
317
  invalidatesTags: (_result, _error, { model }) => [
209
318
  { type: "Document", id: `${model}_LIST` },
210
- { type: "UidAvailability", id: model }
319
+ { type: "UidAvailability", id: model },
320
+ "RecentDocumentList"
211
321
  ]
212
322
  }),
213
323
  /**
@@ -226,8 +336,21 @@ const documentApi = contentManagerApi.injectEndpoints({
226
336
  invalidatesTags: (result, _error, { model }) => [
227
337
  { type: "Document", id: `${model}_LIST` },
228
338
  "Relations",
229
- { type: "UidAvailability", id: model }
230
- ]
339
+ { type: "UidAvailability", id: model },
340
+ "RecentDocumentList"
341
+ ],
342
+ transformResponse: (response, meta, arg) => {
343
+ if (!("data" in response) && arg.model === "plugin::users-permissions.user") {
344
+ return {
345
+ data: response,
346
+ meta: {
347
+ availableStatus: [],
348
+ availableLocales: []
349
+ }
350
+ };
351
+ }
352
+ return response;
353
+ }
231
354
  }),
232
355
  deleteDocument: builder.mutation({
233
356
  query: ({ collectionType, model, documentId, params }) => ({
@@ -238,7 +361,8 @@ const documentApi = contentManagerApi.injectEndpoints({
238
361
  }
239
362
  }),
240
363
  invalidatesTags: (_result, _error, { collectionType, model }) => [
241
- { type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model }
364
+ { type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },
365
+ "RecentDocumentList"
242
366
  ]
243
367
  }),
244
368
  deleteManyDocuments: builder.mutation({
@@ -250,7 +374,10 @@ const documentApi = contentManagerApi.injectEndpoints({
250
374
  params
251
375
  }
252
376
  }),
253
- invalidatesTags: (_res, _error, { model }) => [{ type: "Document", id: `${model}_LIST` }]
377
+ invalidatesTags: (_res, _error, { model }) => [
378
+ { type: "Document", id: `${model}_LIST` },
379
+ "RecentDocumentList"
380
+ ]
254
381
  }),
255
382
  discardDocument: builder.mutation({
256
383
  query: ({ collectionType, model, documentId, params }) => ({
@@ -268,7 +395,8 @@ const documentApi = contentManagerApi.injectEndpoints({
268
395
  },
269
396
  { type: "Document", id: `${model}_LIST` },
270
397
  "Relations",
271
- { type: "UidAvailability", id: model }
398
+ { type: "UidAvailability", id: model },
399
+ "RecentDocumentList"
272
400
  ];
273
401
  }
274
402
  }),
@@ -363,7 +491,8 @@ const documentApi = contentManagerApi.injectEndpoints({
363
491
  id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
364
492
  },
365
493
  { type: "Document", id: `${model}_LIST` },
366
- "Relations"
494
+ "Relations",
495
+ "RecentDocumentList"
367
496
  ];
368
497
  }
369
498
  }),
@@ -394,7 +523,9 @@ const documentApi = contentManagerApi.injectEndpoints({
394
523
  id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
395
524
  },
396
525
  "Relations",
397
- { type: "UidAvailability", id: model }
526
+ { type: "UidAvailability", id: model },
527
+ "RecentDocumentList",
528
+ "RecentDocumentList"
398
529
  ];
399
530
  },
400
531
  async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {
@@ -424,7 +555,8 @@ const documentApi = contentManagerApi.injectEndpoints({
424
555
  {
425
556
  type: "Document",
426
557
  id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
427
- }
558
+ },
559
+ "RecentDocumentList"
428
560
  ];
429
561
  }
430
562
  }),
@@ -437,7 +569,10 @@ const documentApi = contentManagerApi.injectEndpoints({
437
569
  params
438
570
  }
439
571
  }),
440
- invalidatesTags: (_res, _error, { model, documentIds }) => documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` }))
572
+ invalidatesTags: (_res, _error, { model, documentIds }) => [
573
+ ...documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` })),
574
+ "RecentDocumentList"
575
+ ]
441
576
  })
442
577
  })
443
578
  });
@@ -1108,6 +1243,7 @@ const convertListLayoutToFieldLayouts = (columns, attributes = {}, metadatas, co
1108
1243
  const useDocument = (args, opts) => {
1109
1244
  const { toggleNotification } = useNotification();
1110
1245
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
1246
+ const { formatMessage } = useIntl();
1111
1247
  const {
1112
1248
  currentData: data,
1113
1249
  isLoading: isLoadingDocument,
@@ -1117,12 +1253,27 @@ const useDocument = (args, opts) => {
1117
1253
  ...opts,
1118
1254
  skip: !args.documentId && args.collectionType !== SINGLE_TYPES || opts?.skip
1119
1255
  });
1256
+ const document = data?.data;
1257
+ const meta = data?.meta;
1120
1258
  const {
1121
1259
  components,
1122
1260
  schema,
1123
1261
  schemas,
1124
1262
  isLoading: isLoadingSchema
1125
1263
  } = useContentTypeSchema(args.model);
1264
+ const isSingleType = schema?.kind === "singleType";
1265
+ const getTitle = (mainField) => {
1266
+ if (mainField !== "id" && document?.[mainField]) {
1267
+ return document[mainField];
1268
+ }
1269
+ if (isSingleType && schema?.info.displayName) {
1270
+ return schema.info.displayName;
1271
+ }
1272
+ return formatMessage({
1273
+ id: "content-manager.containers.untitled",
1274
+ defaultMessage: "Untitled"
1275
+ });
1276
+ };
1126
1277
  React.useEffect(() => {
1127
1278
  if (error) {
1128
1279
  toggleNotification({
@@ -1138,14 +1289,14 @@ const useDocument = (args, opts) => {
1138
1289
  return createYupSchema(schema.attributes, components);
1139
1290
  }, [schema, components]);
1140
1291
  const validate = React.useCallback(
1141
- (document) => {
1292
+ (document2) => {
1142
1293
  if (!validationSchema) {
1143
1294
  throw new Error(
1144
1295
  "There is no validation schema generated, this is likely due to the schema not being loaded yet."
1145
1296
  );
1146
1297
  }
1147
1298
  try {
1148
- validationSchema.validateSync(document, { abortEarly: false, strict: true });
1299
+ validationSchema.validateSync(document2, { abortEarly: false, strict: true });
1149
1300
  return null;
1150
1301
  } catch (error2) {
1151
1302
  if (error2 instanceof ValidationError) {
@@ -1156,17 +1307,29 @@ const useDocument = (args, opts) => {
1156
1307
  },
1157
1308
  [validationSchema]
1158
1309
  );
1310
+ const getInitialFormValues = React.useCallback(
1311
+ (isCreatingDocument = false) => {
1312
+ if (!document && !isCreatingDocument && !isSingleType || !schema) {
1313
+ return void 0;
1314
+ }
1315
+ const form = document?.id ? document : createDefaultForm(schema, components);
1316
+ return transformDocument(schema, components)(form);
1317
+ },
1318
+ [document, isSingleType, schema, components]
1319
+ );
1159
1320
  const isLoading = isLoadingDocument || isFetchingDocument || isLoadingSchema;
1160
1321
  const hasError = !!error;
1161
1322
  return {
1162
1323
  components,
1163
- document: data?.data,
1164
- meta: data?.meta,
1324
+ document,
1325
+ meta,
1165
1326
  isLoading,
1166
1327
  hasError,
1167
1328
  schema,
1168
1329
  schemas,
1169
- validate
1330
+ validate,
1331
+ getTitle,
1332
+ getInitialFormValues
1170
1333
  };
1171
1334
  };
1172
1335
  const useDoc = () => {
@@ -1667,7 +1830,7 @@ const useDocumentActions = () => {
1667
1830
  };
1668
1831
  };
1669
1832
  const ProtectedHistoryPage = React.lazy(
1670
- () => import("./History-Cw2Q7OQL.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1833
+ () => import("./History-WOQNVho-.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1671
1834
  );
1672
1835
  const routes$2 = [
1673
1836
  {
@@ -1680,7 +1843,7 @@ const routes$2 = [
1680
1843
  }
1681
1844
  ];
1682
1845
  const ProtectedPreviewPage = React.lazy(
1683
- () => import("./Preview-BrBRcL10.mjs").then((mod) => ({ default: mod.ProtectedPreviewPage }))
1846
+ () => import("./Preview-BF81YhRj.mjs").then((mod) => ({ default: mod.ProtectedPreviewPage }))
1684
1847
  );
1685
1848
  const routes$1 = [
1686
1849
  {
@@ -1693,31 +1856,31 @@ const routes$1 = [
1693
1856
  }
1694
1857
  ];
1695
1858
  const ProtectedEditViewPage = lazy(
1696
- () => import("./EditViewPage-DtKM7Jgw.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1859
+ () => import("./EditViewPage-DFF7c27p.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1697
1860
  );
1698
1861
  const ProtectedListViewPage = lazy(
1699
- () => import("./ListViewPage-DuvjX6ra.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1862
+ () => import("./ListViewPage-VK2v44Q1.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1700
1863
  );
1701
1864
  const ProtectedListConfiguration = lazy(
1702
- () => import("./ListConfigurationPage-B47JIu1e.mjs").then((mod) => ({
1865
+ () => import("./ListConfigurationPage-BeXfr6uW.mjs").then((mod) => ({
1703
1866
  default: mod.ProtectedListConfiguration
1704
1867
  }))
1705
1868
  );
1706
1869
  const ProtectedEditConfigurationPage = lazy(
1707
- () => import("./EditConfigurationPage-CLDwrUv5.mjs").then((mod) => ({
1870
+ () => import("./EditConfigurationPage-YR8-4VCS.mjs").then((mod) => ({
1708
1871
  default: mod.ProtectedEditConfigurationPage
1709
1872
  }))
1710
1873
  );
1711
1874
  const ProtectedComponentConfigurationPage = lazy(
1712
- () => import("./ComponentConfigurationPage-CzVt9QCC.mjs").then((mod) => ({
1875
+ () => import("./ComponentConfigurationPage-baEkO-OV.mjs").then((mod) => ({
1713
1876
  default: mod.ProtectedComponentConfigurationPage
1714
1877
  }))
1715
1878
  );
1716
1879
  const NoPermissions = lazy(
1717
- () => import("./NoPermissionsPage-CAi3zCAD.mjs").then((mod) => ({ default: mod.NoPermissions }))
1880
+ () => import("./NoPermissionsPage-CokBHhhy.mjs").then((mod) => ({ default: mod.NoPermissions }))
1718
1881
  );
1719
1882
  const NoContentType = lazy(
1720
- () => import("./NoContentTypePage-C6M-Q0Tv.mjs").then((mod) => ({ default: mod.NoContentType }))
1883
+ () => import("./NoContentTypePage-T8ttty6K.mjs").then((mod) => ({ default: mod.NoContentType }))
1721
1884
  );
1722
1885
  const CollectionTypePages = () => {
1723
1886
  const { collectionType } = useParams();
@@ -4147,12 +4310,8 @@ const PreviewSidePanel = ({ model, documentId, document }) => {
4147
4310
  )
4148
4311
  };
4149
4312
  };
4150
- const FEATURE_ID = "preview";
4151
4313
  const previewAdmin = {
4152
4314
  bootstrap(app) {
4153
- if (!window.strapi.future.isEnabled(FEATURE_ID)) {
4154
- return;
4155
- }
4156
4315
  const contentManagerPluginApis = app.getPlugin("content-manager").apis;
4157
4316
  contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
4158
4317
  }
@@ -4176,7 +4335,7 @@ const index = {
4176
4335
  app.router.addRoute({
4177
4336
  path: "content-manager/*",
4178
4337
  lazy: async () => {
4179
- const { Layout } = await import("./layout-BaQBaz56.mjs");
4338
+ const { Layout } = await import("./layout-mSwsYzxv.mjs");
4180
4339
  return {
4181
4340
  Component: Layout
4182
4341
  };
@@ -4196,7 +4355,7 @@ const index = {
4196
4355
  async registerTrads({ locales }) {
4197
4356
  const importedTrads = await Promise.all(
4198
4357
  locales.map((locale) => {
4199
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-Dtk_ot79.mjs"), "./translations/es.json": () => import("./es-D34tqjMw.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr--pg5jUbt.mjs"), "./translations/gu.json": () => import("./gu-CNpaMDpH.mjs"), "./translations/hi.json": () => import("./hi-Dwvd04m3.mjs"), "./translations/hu.json": () => import("./hu-CeYvaaO0.mjs"), "./translations/id.json": () => import("./id-BtwA9WJT.mjs"), "./translations/it.json": () => import("./it-BrVPqaf1.mjs"), "./translations/ja.json": () => import("./ja-BHqhDq4V.mjs"), "./translations/ko.json": () => import("./ko-HVQRlfUI.mjs"), "./translations/ml.json": () => import("./ml-BihZwQit.mjs"), "./translations/ms.json": () => import("./ms-m_WjyWx7.mjs"), "./translations/nl.json": () => import("./nl-D4R9gHx5.mjs"), "./translations/pl.json": () => import("./pl-sbx9mSt_.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-C71iDxnh.mjs"), "./translations/pt.json": () => import("./pt-BsaFvS8-.mjs"), "./translations/ru.json": () => import("./ru-BE6A4Exp.mjs"), "./translations/sa.json": () => import("./sa-Dag0k-Z8.mjs"), "./translations/sk.json": () => import("./sk-BFg-R8qJ.mjs"), "./translations/sv.json": () => import("./sv-CUnfWGsh.mjs"), "./translations/th.json": () => import("./th-BqbI8lIT.mjs"), "./translations/tr.json": () => import("./tr-CgeK3wJM.mjs"), "./translations/uk.json": () => import("./uk-CR-zDhAY.mjs"), "./translations/vi.json": () => import("./vi-DUXIk_fw.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BPQcRIyH.mjs"), "./translations/zh.json": () => import("./zh-BWZspA60.mjs") }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
4358
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-BZaUty0m.mjs"), "./translations/es.json": () => import("./es-D34tqjMw.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr--pg5jUbt.mjs"), "./translations/gu.json": () => import("./gu-CNpaMDpH.mjs"), "./translations/hi.json": () => import("./hi-Dwvd04m3.mjs"), "./translations/hu.json": () => import("./hu-CeYvaaO0.mjs"), "./translations/id.json": () => import("./id-BtwA9WJT.mjs"), "./translations/it.json": () => import("./it-BrVPqaf1.mjs"), "./translations/ja.json": () => import("./ja-BHqhDq4V.mjs"), "./translations/ko.json": () => import("./ko-HVQRlfUI.mjs"), "./translations/ml.json": () => import("./ml-BihZwQit.mjs"), "./translations/ms.json": () => import("./ms-m_WjyWx7.mjs"), "./translations/nl.json": () => import("./nl-D4R9gHx5.mjs"), "./translations/pl.json": () => import("./pl-sbx9mSt_.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-C71iDxnh.mjs"), "./translations/pt.json": () => import("./pt-BsaFvS8-.mjs"), "./translations/ru.json": () => import("./ru-BE6A4Exp.mjs"), "./translations/sa.json": () => import("./sa-Dag0k-Z8.mjs"), "./translations/sk.json": () => import("./sk-BFg-R8qJ.mjs"), "./translations/sv.json": () => import("./sv-CUnfWGsh.mjs"), "./translations/th.json": () => import("./th-BqbI8lIT.mjs"), "./translations/tr.json": () => import("./tr-CgeK3wJM.mjs"), "./translations/uk.json": () => import("./uk-CR-zDhAY.mjs"), "./translations/vi.json": () => import("./vi-DUXIk_fw.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BPQcRIyH.mjs"), "./translations/zh.json": () => import("./zh-BWZspA60.mjs") }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
4200
4359
  return {
4201
4360
  data: prefixPluginTranslations(data, PLUGIN_ID),
4202
4361
  locale
@@ -4213,24 +4372,27 @@ const index = {
4213
4372
  }
4214
4373
  };
4215
4374
  export {
4216
- ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD as A,
4375
+ useUpdateContentTypeConfigurationMutation as A,
4217
4376
  BulkActionsRenderer as B,
4218
4377
  COLLECTION_TYPES as C,
4219
4378
  DocumentStatus as D,
4220
- extractContentTypeComponents as E,
4221
- DEFAULT_SETTINGS as F,
4222
- convertEditLayoutToFieldLayouts as G,
4379
+ ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD as E,
4380
+ extractContentTypeComponents as F,
4381
+ DEFAULT_SETTINGS as G,
4223
4382
  HOOKS as H,
4224
4383
  InjectionZone as I,
4225
- useDocument as J,
4226
- useGetPreviewUrlQuery as K,
4227
- index as L,
4228
- useContentManagerContext as M,
4229
- useDocumentActions as N,
4384
+ convertEditLayoutToFieldLayouts as J,
4385
+ removeFieldsThatDontExistOnSchema as K,
4386
+ prepareTempKeys as L,
4387
+ useDocument as M,
4388
+ useGetPreviewUrlQuery as N,
4389
+ index as O,
4230
4390
  Panels as P,
4391
+ useContentManagerContext as Q,
4231
4392
  RelativeTime as R,
4232
4393
  SINGLE_TYPES as S,
4233
4394
  TableActions as T,
4395
+ useDocumentActions as U,
4234
4396
  useGetInitialDataQuery as a,
4235
4397
  useGetAllContentTypeSettingsQuery as b,
4236
4398
  useDoc as c,
@@ -4243,19 +4405,19 @@ export {
4243
4405
  Header as j,
4244
4406
  PERMISSIONS as k,
4245
4407
  DocumentRBAC as l,
4246
- DOCUMENT_META_FIELDS as m,
4247
- CLONE_PATH as n,
4248
- useDocLayout as o,
4408
+ useDocLayout as m,
4409
+ createDefaultForm as n,
4410
+ CLONE_PATH as o,
4249
4411
  useGetContentTypeConfigurationQuery as p,
4250
4412
  CREATOR_FIELDS as q,
4251
4413
  getMainField as r,
4252
4414
  setInitialData as s,
4253
- getDisplayName as t,
4415
+ transformDocument as t,
4254
4416
  useContentTypeSchema as u,
4255
- checkIfAttributeIsDisplayable as v,
4256
- useGetAllDocumentsQuery as w,
4257
- convertListLayoutToFieldLayouts as x,
4258
- capitalise as y,
4259
- useUpdateContentTypeConfigurationMutation as z
4417
+ getDisplayName as v,
4418
+ checkIfAttributeIsDisplayable as w,
4419
+ useGetAllDocumentsQuery as x,
4420
+ convertListLayoutToFieldLayouts as y,
4421
+ capitalise as z
4260
4422
  };
4261
- //# sourceMappingURL=index-tETMKK2G.mjs.map
4423
+ //# sourceMappingURL=index-DiluOUp6.mjs.map