@strapi/content-manager 0.0.0-next.d65d44102fd32871728c0d74ec4f2519b7cc0a16 → 0.0.0-next.dad3c50630ca4fd9eccdcbe549ee632fc572e23d

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 (136) hide show
  1. package/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +1 -1
  2. package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-UduDBv3m.js → ComponentConfigurationPage-BLWQy8ru.js} +4 -5
  4. package/dist/_chunks/{ComponentConfigurationPage-UduDBv3m.js.map → ComponentConfigurationPage-BLWQy8ru.js.map} +1 -1
  5. package/dist/_chunks/{ComponentConfigurationPage-DhWA-JzT.mjs → ComponentConfigurationPage-CtIa3aa2.mjs} +3 -3
  6. package/dist/_chunks/{ComponentConfigurationPage-DhWA-JzT.mjs.map → ComponentConfigurationPage-CtIa3aa2.mjs.map} +1 -1
  7. package/dist/_chunks/{ComponentIcon-BXdiCGQp.js → ComponentIcon-CRbtQEUV.js} +2 -3
  8. package/dist/_chunks/{ComponentIcon-BXdiCGQp.js.map → ComponentIcon-CRbtQEUV.js.map} +1 -1
  9. package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -1
  10. package/dist/_chunks/{EditConfigurationPage-5tmx_7Hp.mjs → EditConfigurationPage-DsPR2DVk.mjs} +3 -3
  11. package/dist/_chunks/{EditConfigurationPage-5tmx_7Hp.mjs.map → EditConfigurationPage-DsPR2DVk.mjs.map} +1 -1
  12. package/dist/_chunks/{EditConfigurationPage-Cp9UzUfs.js → EditConfigurationPage-RQkymxCy.js} +4 -5
  13. package/dist/_chunks/{EditConfigurationPage-Cp9UzUfs.js.map → EditConfigurationPage-RQkymxCy.js.map} +1 -1
  14. package/dist/_chunks/{EditViewPage-C7l2Emuj.js → EditViewPage-B-kExt8C.js} +4 -5
  15. package/dist/_chunks/{EditViewPage-C7l2Emuj.js.map → EditViewPage-B-kExt8C.js.map} +1 -1
  16. package/dist/_chunks/{EditViewPage-BKoISUOu.mjs → EditViewPage-BPyVuPfM.mjs} +3 -3
  17. package/dist/_chunks/{EditViewPage-BKoISUOu.mjs.map → EditViewPage-BPyVuPfM.mjs.map} +1 -1
  18. package/dist/_chunks/{Field-BPSJpDfE.js → Field-DPIsQRre.js} +139 -103
  19. package/dist/_chunks/Field-DPIsQRre.js.map +1 -0
  20. package/dist/_chunks/{Field-BZxzYf1x.mjs → Field-Dltnt1km.mjs} +136 -100
  21. package/dist/_chunks/Field-Dltnt1km.mjs.map +1 -0
  22. package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +1 -1
  23. package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +1 -1
  24. package/dist/_chunks/{Form-DLkqDd2G.js → Form-BFi4MXMT.js} +5 -6
  25. package/dist/_chunks/{Form-DLkqDd2G.js.map → Form-BFi4MXMT.js.map} +1 -1
  26. package/dist/_chunks/{Form-8qyOU6YG.mjs → Form-C1IcWm1u.mjs} +3 -3
  27. package/dist/_chunks/{Form-8qyOU6YG.mjs.map → Form-C1IcWm1u.mjs.map} +1 -1
  28. package/dist/_chunks/{History-N_kRb1Yr.mjs → History-04ChQ4pl.mjs} +32 -8
  29. package/dist/_chunks/History-04ChQ4pl.mjs.map +1 -0
  30. package/dist/_chunks/{History-DYMicybF.js → History-wjcK4L0C.js} +33 -10
  31. package/dist/_chunks/History-wjcK4L0C.js.map +1 -0
  32. package/dist/_chunks/{ListConfigurationPage-BM3qVxug.mjs → ListConfigurationPage-BYqPYLSU.mjs} +3 -3
  33. package/dist/_chunks/{ListConfigurationPage-BM3qVxug.mjs.map → ListConfigurationPage-BYqPYLSU.mjs.map} +1 -1
  34. package/dist/_chunks/{ListConfigurationPage-rUF9iGWq.js → ListConfigurationPage-CRbxIC3J.js} +4 -5
  35. package/dist/_chunks/{ListConfigurationPage-rUF9iGWq.js.map → ListConfigurationPage-CRbxIC3J.js.map} +1 -1
  36. package/dist/_chunks/{ListViewPage-BSLzd7cZ.js → ListViewPage-D5NY9183.js} +4 -5
  37. package/dist/_chunks/{ListViewPage-BSLzd7cZ.js.map → ListViewPage-D5NY9183.js.map} +1 -1
  38. package/dist/_chunks/{ListViewPage-CWilGbZb.mjs → ListViewPage-FU2LBuhl.mjs} +3 -3
  39. package/dist/_chunks/{ListViewPage-CWilGbZb.mjs.map → ListViewPage-FU2LBuhl.mjs.map} +1 -1
  40. package/dist/_chunks/{NoContentTypePage-CQccVhIX.js → NoContentTypePage-BgQVE_Qb.js} +2 -2
  41. package/dist/_chunks/{NoContentTypePage-CQccVhIX.js.map → NoContentTypePage-BgQVE_Qb.js.map} +1 -1
  42. package/dist/_chunks/{NoContentTypePage-VWYlePwI.mjs → NoContentTypePage-DCKUkwb8.mjs} +2 -2
  43. package/dist/_chunks/{NoContentTypePage-VWYlePwI.mjs.map → NoContentTypePage-DCKUkwb8.mjs.map} +1 -1
  44. package/dist/_chunks/{NoPermissionsPage-Af32Gg2m.js → NoPermissionsPage-C5jwn70o.js} +2 -2
  45. package/dist/_chunks/{NoPermissionsPage-Af32Gg2m.js.map → NoPermissionsPage-C5jwn70o.js.map} +1 -1
  46. package/dist/_chunks/{NoPermissionsPage-CS2tCmfr.mjs → NoPermissionsPage-jqve7C8l.mjs} +2 -2
  47. package/dist/_chunks/{NoPermissionsPage-CS2tCmfr.mjs.map → NoPermissionsPage-jqve7C8l.mjs.map} +1 -1
  48. package/dist/_chunks/{Preview-kPkuZbBJ.mjs → Preview-BMYN548c.mjs} +33 -11
  49. package/dist/_chunks/Preview-BMYN548c.mjs.map +1 -0
  50. package/dist/_chunks/{Preview-D4KzuJFL.js → Preview-DaOihysv.js} +33 -12
  51. package/dist/_chunks/Preview-DaOihysv.js.map +1 -0
  52. package/dist/_chunks/{Relations-D_Ki5aVM.js → Relations-CTGM7Hv5.js} +7 -10
  53. package/dist/_chunks/{Relations-D_Ki5aVM.js.map → Relations-CTGM7Hv5.js.map} +1 -1
  54. package/dist/_chunks/{Relations-5k27Rh54.mjs → Relations-gscPkxjF.mjs} +6 -8
  55. package/dist/_chunks/{Relations-5k27Rh54.mjs.map → Relations-gscPkxjF.mjs.map} +1 -1
  56. package/dist/_chunks/{en-BK8Xyl5I.js → en-BzQmavmK.js} +7 -2
  57. package/dist/_chunks/{en-BK8Xyl5I.js.map → en-BzQmavmK.js.map} +1 -1
  58. package/dist/_chunks/{en-Dtk_ot79.mjs → en-CSxLmrh1.mjs} +7 -2
  59. package/dist/_chunks/{en-Dtk_ot79.mjs.map → en-CSxLmrh1.mjs.map} +1 -1
  60. package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
  61. package/dist/_chunks/{index-DwOsF7wF.js → index-Ca7YWlAA.js} +207 -128
  62. package/dist/_chunks/index-Ca7YWlAA.js.map +1 -0
  63. package/dist/_chunks/{index-BLPa8Dq-.mjs → index-DqasUQ6Q.mjs} +206 -126
  64. package/dist/_chunks/index-DqasUQ6Q.mjs.map +1 -0
  65. package/dist/_chunks/{layout-CN2bFL9V.js → layout-BW80JSCd.js} +5 -6
  66. package/dist/_chunks/{layout-CN2bFL9V.js.map → layout-BW80JSCd.js.map} +1 -1
  67. package/dist/_chunks/{layout-2Si0j0jO.mjs → layout-W3clJSCy.mjs} +4 -4
  68. package/dist/_chunks/{layout-2Si0j0jO.mjs.map → layout-W3clJSCy.mjs.map} +1 -1
  69. package/dist/_chunks/objects-BcXOv6_9.js.map +1 -1
  70. package/dist/_chunks/objects-D6yBsdmx.mjs.map +1 -1
  71. package/dist/_chunks/{relations-CAxDjUJF.mjs → relations-BlDkoeWh.mjs} +2 -2
  72. package/dist/_chunks/{relations-CAxDjUJF.mjs.map → relations-BlDkoeWh.mjs.map} +1 -1
  73. package/dist/_chunks/{relations-B0E0XUY7.js → relations-C9Usz9k5.js} +2 -2
  74. package/dist/_chunks/{relations-B0E0XUY7.js.map → relations-C9Usz9k5.js.map} +1 -1
  75. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -1
  76. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -1
  77. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
  78. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
  79. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
  80. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
  81. package/dist/admin/index.js +2 -1
  82. package/dist/admin/index.js.map +1 -1
  83. package/dist/admin/index.mjs +2 -1
  84. package/dist/admin/src/content-manager.d.ts +3 -2
  85. package/dist/admin/src/exports.d.ts +1 -0
  86. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  87. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
  88. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +1 -1
  89. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
  90. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
  91. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
  92. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +4 -1
  93. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +4 -1
  94. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  95. package/dist/admin/src/services/api.d.ts +1 -1
  96. package/dist/admin/src/services/components.d.ts +2 -2
  97. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  98. package/dist/admin/src/services/documents.d.ts +16 -16
  99. package/dist/admin/src/services/init.d.ts +1 -1
  100. package/dist/admin/src/services/relations.d.ts +2 -2
  101. package/dist/admin/src/services/uid.d.ts +3 -3
  102. package/dist/server/index.js +174 -178
  103. package/dist/server/index.js.map +1 -1
  104. package/dist/server/index.mjs +174 -177
  105. package/dist/server/index.mjs.map +1 -1
  106. package/dist/server/src/controllers/utils/metadata.d.ts +1 -0
  107. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  108. package/dist/server/src/history/controllers/history-version.d.ts +1 -1
  109. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  110. package/dist/server/src/history/services/history.d.ts +3 -3
  111. package/dist/server/src/history/services/history.d.ts.map +1 -1
  112. package/dist/server/src/history/services/utils.d.ts +6 -10
  113. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  114. package/dist/server/src/index.d.ts +3 -2
  115. package/dist/server/src/index.d.ts.map +1 -1
  116. package/dist/server/src/preview/index.d.ts.map +1 -1
  117. package/dist/server/src/services/document-metadata.d.ts +4 -2
  118. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  119. package/dist/server/src/services/index.d.ts +3 -2
  120. package/dist/server/src/services/index.d.ts.map +1 -1
  121. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  122. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  123. package/dist/server/src/services/utils/populate.d.ts +2 -2
  124. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  125. package/package.json +9 -7
  126. package/dist/_chunks/Field-BPSJpDfE.js.map +0 -1
  127. package/dist/_chunks/Field-BZxzYf1x.mjs.map +0 -1
  128. package/dist/_chunks/History-DYMicybF.js.map +0 -1
  129. package/dist/_chunks/History-N_kRb1Yr.mjs.map +0 -1
  130. package/dist/_chunks/Preview-D4KzuJFL.js.map +0 -1
  131. package/dist/_chunks/Preview-kPkuZbBJ.mjs.map +0 -1
  132. package/dist/_chunks/index-BLPa8Dq-.mjs.map +0 -1
  133. package/dist/_chunks/index-DwOsF7wF.js.map +0 -1
  134. package/dist/admin/src/preview/constants.d.ts +0 -1
  135. package/dist/server/src/preview/constants.d.ts +0 -2
  136. package/dist/server/src/preview/constants.d.ts.map +0 -1
@@ -14,13 +14,20 @@ import { stringify } from "qs";
14
14
  import pipe from "lodash/fp/pipe";
15
15
  import { intervalToDuration, isPast } from "date-fns";
16
16
  import { createSlice, combineReducers } from "@reduxjs/toolkit";
17
- const __variableDynamicImportRuntimeHelper = (glob, path) => {
17
+ const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
18
18
  const v = glob[path];
19
19
  if (v) {
20
20
  return typeof v === "function" ? v() : Promise.resolve(v);
21
21
  }
22
22
  return new Promise((_, reject) => {
23
- (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
23
+ (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
24
+ reject.bind(
25
+ null,
26
+ new Error(
27
+ "Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
28
+ )
29
+ )
30
+ );
24
31
  });
25
32
  };
26
33
  const PLUGIN_ID = "content-manager";
@@ -168,7 +175,8 @@ const contentManagerApi = adminApi.enhanceEndpoints({
168
175
  "InitialData",
169
176
  "HistoryVersion",
170
177
  "Relations",
171
- "UidAvailability"
178
+ "UidAvailability",
179
+ "RecentDocumentList"
172
180
  ]
173
181
  });
174
182
  const documentApi = contentManagerApi.injectEndpoints({
@@ -186,7 +194,7 @@ const documentApi = contentManagerApi.injectEndpoints({
186
194
  if (error) {
187
195
  return [];
188
196
  }
189
- return [{ type: "Document", id: `${model}_LIST` }];
197
+ return [{ type: "Document", id: `${model}_LIST` }, "RecentDocumentList"];
190
198
  }
191
199
  }),
192
200
  cloneDocument: builder.mutation({
@@ -200,7 +208,8 @@ const documentApi = contentManagerApi.injectEndpoints({
200
208
  }),
201
209
  invalidatesTags: (_result, _error, { model }) => [
202
210
  { type: "Document", id: `${model}_LIST` },
203
- { type: "UidAvailability", id: model }
211
+ { type: "UidAvailability", id: model },
212
+ "RecentDocumentList"
204
213
  ]
205
214
  }),
206
215
  /**
@@ -219,8 +228,21 @@ const documentApi = contentManagerApi.injectEndpoints({
219
228
  invalidatesTags: (result, _error, { model }) => [
220
229
  { type: "Document", id: `${model}_LIST` },
221
230
  "Relations",
222
- { type: "UidAvailability", id: model }
223
- ]
231
+ { type: "UidAvailability", id: model },
232
+ "RecentDocumentList"
233
+ ],
234
+ transformResponse: (response, meta, arg) => {
235
+ if (!("data" in response) && arg.model === "plugin::users-permissions.user") {
236
+ return {
237
+ data: response,
238
+ meta: {
239
+ availableStatus: [],
240
+ availableLocales: []
241
+ }
242
+ };
243
+ }
244
+ return response;
245
+ }
224
246
  }),
225
247
  deleteDocument: builder.mutation({
226
248
  query: ({ collectionType, model, documentId, params }) => ({
@@ -231,7 +253,8 @@ const documentApi = contentManagerApi.injectEndpoints({
231
253
  }
232
254
  }),
233
255
  invalidatesTags: (_result, _error, { collectionType, model }) => [
234
- { type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model }
256
+ { type: "Document", id: collectionType !== SINGLE_TYPES ? `${model}_LIST` : model },
257
+ "RecentDocumentList"
235
258
  ]
236
259
  }),
237
260
  deleteManyDocuments: builder.mutation({
@@ -243,7 +266,10 @@ const documentApi = contentManagerApi.injectEndpoints({
243
266
  params
244
267
  }
245
268
  }),
246
- invalidatesTags: (_res, _error, { model }) => [{ type: "Document", id: `${model}_LIST` }]
269
+ invalidatesTags: (_res, _error, { model }) => [
270
+ { type: "Document", id: `${model}_LIST` },
271
+ "RecentDocumentList"
272
+ ]
247
273
  }),
248
274
  discardDocument: builder.mutation({
249
275
  query: ({ collectionType, model, documentId, params }) => ({
@@ -261,7 +287,8 @@ const documentApi = contentManagerApi.injectEndpoints({
261
287
  },
262
288
  { type: "Document", id: `${model}_LIST` },
263
289
  "Relations",
264
- { type: "UidAvailability", id: model }
290
+ { type: "UidAvailability", id: model },
291
+ "RecentDocumentList"
265
292
  ];
266
293
  }
267
294
  }),
@@ -356,7 +383,8 @@ const documentApi = contentManagerApi.injectEndpoints({
356
383
  id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
357
384
  },
358
385
  { type: "Document", id: `${model}_LIST` },
359
- "Relations"
386
+ "Relations",
387
+ "RecentDocumentList"
360
388
  ];
361
389
  }
362
390
  }),
@@ -387,7 +415,9 @@ const documentApi = contentManagerApi.injectEndpoints({
387
415
  id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
388
416
  },
389
417
  "Relations",
390
- { type: "UidAvailability", id: model }
418
+ { type: "UidAvailability", id: model },
419
+ "RecentDocumentList",
420
+ "RecentDocumentList"
391
421
  ];
392
422
  },
393
423
  async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {
@@ -417,7 +447,8 @@ const documentApi = contentManagerApi.injectEndpoints({
417
447
  {
418
448
  type: "Document",
419
449
  id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
420
- }
450
+ },
451
+ "RecentDocumentList"
421
452
  ];
422
453
  }
423
454
  }),
@@ -430,7 +461,10 @@ const documentApi = contentManagerApi.injectEndpoints({
430
461
  params
431
462
  }
432
463
  }),
433
- invalidatesTags: (_res, _error, { model, documentIds }) => documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` }))
464
+ invalidatesTags: (_res, _error, { model, documentIds }) => [
465
+ ...documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` })),
466
+ "RecentDocumentList"
467
+ ]
434
468
  })
435
469
  })
436
470
  });
@@ -453,8 +487,7 @@ const {
453
487
  useUnpublishManyDocumentsMutation
454
488
  } = documentApi;
455
489
  const buildValidParams = (query) => {
456
- if (!query)
457
- return query;
490
+ if (!query) return query;
458
491
  const { plugins: _, ...validQueryParams } = {
459
492
  ...query,
460
493
  ...Object.values(query?.plugins ?? {}).reduce(
@@ -1661,7 +1694,7 @@ const useDocumentActions = () => {
1661
1694
  };
1662
1695
  };
1663
1696
  const ProtectedHistoryPage = React.lazy(
1664
- () => import("./History-N_kRb1Yr.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1697
+ () => import("./History-04ChQ4pl.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1665
1698
  );
1666
1699
  const routes$2 = [
1667
1700
  {
@@ -1674,7 +1707,7 @@ const routes$2 = [
1674
1707
  }
1675
1708
  ];
1676
1709
  const ProtectedPreviewPage = React.lazy(
1677
- () => import("./Preview-kPkuZbBJ.mjs").then((mod) => ({ default: mod.ProtectedPreviewPage }))
1710
+ () => import("./Preview-BMYN548c.mjs").then((mod) => ({ default: mod.ProtectedPreviewPage }))
1678
1711
  );
1679
1712
  const routes$1 = [
1680
1713
  {
@@ -1687,31 +1720,31 @@ const routes$1 = [
1687
1720
  }
1688
1721
  ];
1689
1722
  const ProtectedEditViewPage = lazy(
1690
- () => import("./EditViewPage-BKoISUOu.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1723
+ () => import("./EditViewPage-BPyVuPfM.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1691
1724
  );
1692
1725
  const ProtectedListViewPage = lazy(
1693
- () => import("./ListViewPage-CWilGbZb.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1726
+ () => import("./ListViewPage-FU2LBuhl.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1694
1727
  );
1695
1728
  const ProtectedListConfiguration = lazy(
1696
- () => import("./ListConfigurationPage-BM3qVxug.mjs").then((mod) => ({
1729
+ () => import("./ListConfigurationPage-BYqPYLSU.mjs").then((mod) => ({
1697
1730
  default: mod.ProtectedListConfiguration
1698
1731
  }))
1699
1732
  );
1700
1733
  const ProtectedEditConfigurationPage = lazy(
1701
- () => import("./EditConfigurationPage-5tmx_7Hp.mjs").then((mod) => ({
1734
+ () => import("./EditConfigurationPage-DsPR2DVk.mjs").then((mod) => ({
1702
1735
  default: mod.ProtectedEditConfigurationPage
1703
1736
  }))
1704
1737
  );
1705
1738
  const ProtectedComponentConfigurationPage = lazy(
1706
- () => import("./ComponentConfigurationPage-DhWA-JzT.mjs").then((mod) => ({
1739
+ () => import("./ComponentConfigurationPage-CtIa3aa2.mjs").then((mod) => ({
1707
1740
  default: mod.ProtectedComponentConfigurationPage
1708
1741
  }))
1709
1742
  );
1710
1743
  const NoPermissions = lazy(
1711
- () => import("./NoPermissionsPage-CS2tCmfr.mjs").then((mod) => ({ default: mod.NoPermissions }))
1744
+ () => import("./NoPermissionsPage-jqve7C8l.mjs").then((mod) => ({ default: mod.NoPermissions }))
1712
1745
  );
1713
1746
  const NoContentType = lazy(
1714
- () => import("./NoContentTypePage-VWYlePwI.mjs").then((mod) => ({ default: mod.NoContentType }))
1747
+ () => import("./NoContentTypePage-DCKUkwb8.mjs").then((mod) => ({ default: mod.NoContentType }))
1715
1748
  );
1716
1749
  const CollectionTypePages = () => {
1717
1750
  const { collectionType } = useParams();
@@ -2242,6 +2275,7 @@ const PublishAction$1 = ({
2242
2275
  };
2243
2276
  };
2244
2277
  PublishAction$1.type = "publish";
2278
+ PublishAction$1.position = "panel";
2245
2279
  const UpdateAction = ({
2246
2280
  activeTab,
2247
2281
  documentId,
@@ -2264,6 +2298,117 @@ const UpdateAction = ({
2264
2298
  const validate = useForm("UpdateAction", (state) => state.validate);
2265
2299
  const setErrors = useForm("UpdateAction", (state) => state.setErrors);
2266
2300
  const resetForm = useForm("PublishAction", ({ resetForm: resetForm2 }) => resetForm2);
2301
+ const handleUpdate = React.useCallback(async () => {
2302
+ setSubmitting(true);
2303
+ try {
2304
+ if (!modified) {
2305
+ return;
2306
+ }
2307
+ const { errors } = await validate(true, {
2308
+ status: "draft"
2309
+ });
2310
+ if (errors) {
2311
+ toggleNotification({
2312
+ type: "danger",
2313
+ message: formatMessage({
2314
+ id: "content-manager.validation.error",
2315
+ defaultMessage: "There are validation errors in your document. Please fix them before saving."
2316
+ })
2317
+ });
2318
+ return;
2319
+ }
2320
+ if (isCloning) {
2321
+ const res = await clone(
2322
+ {
2323
+ model,
2324
+ documentId: cloneMatch.params.origin,
2325
+ params
2326
+ },
2327
+ transformData(document)
2328
+ );
2329
+ if ("data" in res) {
2330
+ navigate(
2331
+ {
2332
+ pathname: `../${res.data.documentId}`,
2333
+ search: rawQuery
2334
+ },
2335
+ { relative: "path" }
2336
+ );
2337
+ } else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
2338
+ setErrors(formatValidationErrors(res.error));
2339
+ }
2340
+ } else if (documentId || collectionType === SINGLE_TYPES) {
2341
+ const res = await update(
2342
+ {
2343
+ collectionType,
2344
+ model,
2345
+ documentId,
2346
+ params
2347
+ },
2348
+ transformData(document)
2349
+ );
2350
+ if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
2351
+ setErrors(formatValidationErrors(res.error));
2352
+ } else {
2353
+ resetForm();
2354
+ }
2355
+ } else {
2356
+ const res = await create(
2357
+ {
2358
+ model,
2359
+ params
2360
+ },
2361
+ transformData(document)
2362
+ );
2363
+ if ("data" in res && collectionType !== SINGLE_TYPES) {
2364
+ navigate(
2365
+ {
2366
+ pathname: `../${res.data.documentId}`,
2367
+ search: rawQuery
2368
+ },
2369
+ { replace: true, relative: "path" }
2370
+ );
2371
+ } else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
2372
+ setErrors(formatValidationErrors(res.error));
2373
+ }
2374
+ }
2375
+ } finally {
2376
+ setSubmitting(false);
2377
+ }
2378
+ }, [
2379
+ clone,
2380
+ cloneMatch?.params.origin,
2381
+ collectionType,
2382
+ create,
2383
+ document,
2384
+ documentId,
2385
+ formatMessage,
2386
+ formatValidationErrors,
2387
+ isCloning,
2388
+ model,
2389
+ modified,
2390
+ navigate,
2391
+ params,
2392
+ rawQuery,
2393
+ resetForm,
2394
+ setErrors,
2395
+ setSubmitting,
2396
+ toggleNotification,
2397
+ update,
2398
+ validate
2399
+ ]);
2400
+ React.useEffect(() => {
2401
+ const handleKeyDown = (e) => {
2402
+ if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) {
2403
+ e.preventDefault();
2404
+ handleUpdate();
2405
+ }
2406
+ };
2407
+ window.addEventListener("keydown", handleKeyDown);
2408
+ return () => {
2409
+ window.removeEventListener("keydown", handleKeyDown);
2410
+ };
2411
+ }, [handleUpdate]);
2267
2412
  return {
2268
2413
  /**
2269
2414
  * Disabled when:
@@ -2276,84 +2421,11 @@ const UpdateAction = ({
2276
2421
  id: "global.save",
2277
2422
  defaultMessage: "Save"
2278
2423
  }),
2279
- onClick: async () => {
2280
- setSubmitting(true);
2281
- try {
2282
- const { errors } = await validate(true, {
2283
- status: "draft"
2284
- });
2285
- if (errors) {
2286
- toggleNotification({
2287
- type: "danger",
2288
- message: formatMessage({
2289
- id: "content-manager.validation.error",
2290
- defaultMessage: "There are validation errors in your document. Please fix them before saving."
2291
- })
2292
- });
2293
- return;
2294
- }
2295
- if (isCloning) {
2296
- const res = await clone(
2297
- {
2298
- model,
2299
- documentId: cloneMatch.params.origin,
2300
- params
2301
- },
2302
- transformData(document)
2303
- );
2304
- if ("data" in res) {
2305
- navigate(
2306
- {
2307
- pathname: `../${res.data.documentId}`,
2308
- search: rawQuery
2309
- },
2310
- { relative: "path" }
2311
- );
2312
- } else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
2313
- setErrors(formatValidationErrors(res.error));
2314
- }
2315
- } else if (documentId || collectionType === SINGLE_TYPES) {
2316
- const res = await update(
2317
- {
2318
- collectionType,
2319
- model,
2320
- documentId,
2321
- params
2322
- },
2323
- transformData(document)
2324
- );
2325
- if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
2326
- setErrors(formatValidationErrors(res.error));
2327
- } else {
2328
- resetForm();
2329
- }
2330
- } else {
2331
- const res = await create(
2332
- {
2333
- model,
2334
- params
2335
- },
2336
- transformData(document)
2337
- );
2338
- if ("data" in res && collectionType !== SINGLE_TYPES) {
2339
- navigate(
2340
- {
2341
- pathname: `../${res.data.documentId}`,
2342
- search: rawQuery
2343
- },
2344
- { replace: true, relative: "path" }
2345
- );
2346
- } else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
2347
- setErrors(formatValidationErrors(res.error));
2348
- }
2349
- }
2350
- } finally {
2351
- setSubmitting(false);
2352
- }
2353
- }
2424
+ onClick: handleUpdate
2354
2425
  };
2355
2426
  };
2356
2427
  UpdateAction.type = "update";
2428
+ UpdateAction.position = "panel";
2357
2429
  const UNPUBLISH_DRAFT_OPTIONS = {
2358
2430
  KEEP: "keep",
2359
2431
  DISCARD: "discard"
@@ -2476,6 +2548,7 @@ const UnpublishAction$1 = ({
2476
2548
  };
2477
2549
  };
2478
2550
  UnpublishAction$1.type = "unpublish";
2551
+ UnpublishAction$1.position = "panel";
2479
2552
  const DiscardAction = ({
2480
2553
  activeTab,
2481
2554
  documentId,
@@ -2526,6 +2599,7 @@ const DiscardAction = ({
2526
2599
  };
2527
2600
  };
2528
2601
  DiscardAction.type = "discard";
2602
+ DiscardAction.position = "panel";
2529
2603
  const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
2530
2604
  const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
2531
2605
  const RelativeTime = React.forwardRef(
@@ -2645,7 +2719,7 @@ const HeaderToolbar = () => {
2645
2719
  meta: isCloning ? void 0 : meta,
2646
2720
  collectionType
2647
2721
  },
2648
- descriptions: plugins["content-manager"].apis.getDocumentActions(),
2722
+ descriptions: plugins["content-manager"].apis.getDocumentActions("header"),
2649
2723
  children: (actions2) => {
2650
2724
  const headerActions = actions2.filter((action) => {
2651
2725
  const positions = Array.isArray(action.position) ? action.position : [action.position];
@@ -2853,6 +2927,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
2853
2927
  };
2854
2928
  };
2855
2929
  ConfigureTheViewAction.type = "configure-the-view";
2930
+ ConfigureTheViewAction.position = "header";
2856
2931
  const EditTheModelAction = ({ model }) => {
2857
2932
  const navigate = useNavigate();
2858
2933
  const { formatMessage } = useIntl();
@@ -2869,6 +2944,7 @@ const EditTheModelAction = ({ model }) => {
2869
2944
  };
2870
2945
  };
2871
2946
  EditTheModelAction.type = "edit-the-model";
2947
+ EditTheModelAction.position = "header";
2872
2948
  const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
2873
2949
  const navigate = useNavigate();
2874
2950
  const { formatMessage } = useIntl();
@@ -2942,6 +3018,7 @@ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
2942
3018
  };
2943
3019
  };
2944
3020
  DeleteAction$1.type = "delete";
3021
+ DeleteAction$1.position = ["header", "table-row"];
2945
3022
  const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
2946
3023
  const Panels = () => {
2947
3024
  const isCloning = useMatch(CLONE_PATH) !== null;
@@ -3004,7 +3081,7 @@ const ActionsPanelContent = () => {
3004
3081
  DescriptionComponentRenderer,
3005
3082
  {
3006
3083
  props,
3007
- descriptions: plugins["content-manager"].apis.getDocumentActions(),
3084
+ descriptions: plugins["content-manager"].apis.getDocumentActions("panel"),
3008
3085
  children: (actions2) => /* @__PURE__ */ jsx(DocumentActions, { actions: actions2 })
3009
3086
  }
3010
3087
  ),
@@ -3458,8 +3535,7 @@ const PublishAction = ({ documents, model }) => {
3458
3535
  const refetchList = () => {
3459
3536
  contentManagerApi.util.invalidateTags([{ type: "Document", id: `${model}_LIST` }]);
3460
3537
  };
3461
- if (!showPublishButton)
3462
- return null;
3538
+ if (!showPublishButton) return null;
3463
3539
  return {
3464
3540
  actionType: "publish",
3465
3541
  variant: "tertiary",
@@ -3527,8 +3603,7 @@ const DeleteAction = ({ documents, model }) => {
3527
3603
  selectRow([]);
3528
3604
  }
3529
3605
  };
3530
- if (!hasDeletePermission)
3531
- return null;
3606
+ if (!hasDeletePermission) return null;
3532
3607
  return {
3533
3608
  variant: "danger-light",
3534
3609
  label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
@@ -3577,8 +3652,7 @@ const UnpublishAction = ({ documents, model }) => {
3577
3652
  }
3578
3653
  };
3579
3654
  const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published" || entry.status === "modified");
3580
- if (!showUnpublishButton)
3581
- return null;
3655
+ if (!showUnpublishButton) return null;
3582
3656
  return {
3583
3657
  variant: "tertiary",
3584
3658
  label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
@@ -3683,7 +3757,7 @@ const TableActions = ({ document }) => {
3683
3757
  DescriptionComponentRenderer,
3684
3758
  {
3685
3759
  props,
3686
- descriptions: plugins["content-manager"].apis.getDocumentActions().filter((action) => action.name !== "PublishAction"),
3760
+ descriptions: plugins["content-manager"].apis.getDocumentActions("table-row").filter((action) => action.name !== "PublishAction"),
3687
3761
  children: (actions2) => {
3688
3762
  const tableRowActions = actions2.filter((action) => {
3689
3763
  const positions = Array.isArray(action.position) ? action.position : [action.position];
@@ -3742,6 +3816,7 @@ const EditAction = ({ documentId }) => {
3742
3816
  };
3743
3817
  };
3744
3818
  EditAction.type = "edit";
3819
+ EditAction.position = "table-row";
3745
3820
  const StyledPencil = styled(Pencil)`
3746
3821
  path {
3747
3822
  fill: currentColor;
@@ -3818,6 +3893,7 @@ const CloneAction = ({ model, documentId }) => {
3818
3893
  };
3819
3894
  };
3820
3895
  CloneAction.type = "clone";
3896
+ CloneAction.position = "table-row";
3821
3897
  const StyledDuplicate = styled(Duplicate)`
3822
3898
  path {
3823
3899
  fill: currentColor;
@@ -3904,7 +3980,14 @@ class ContentManagerPlugin {
3904
3980
  addDocumentHeaderAction: this.addDocumentHeaderAction.bind(this),
3905
3981
  addEditViewSidePanel: this.addEditViewSidePanel.bind(this),
3906
3982
  getBulkActions: () => this.bulkActions,
3907
- getDocumentActions: () => this.documentActions,
3983
+ getDocumentActions: (position) => {
3984
+ if (position) {
3985
+ return this.documentActions.filter(
3986
+ (action) => action.position == void 0 || [action.position].flat().includes(position)
3987
+ );
3988
+ }
3989
+ return this.documentActions;
3990
+ },
3908
3991
  getEditViewSidePanels: () => this.editViewSidePanels,
3909
3992
  getHeaderActions: () => this.headerActions
3910
3993
  }
@@ -3914,10 +3997,8 @@ class ContentManagerPlugin {
3914
3997
  const getPrintableType = (value) => {
3915
3998
  const nativeType = typeof value;
3916
3999
  if (nativeType === "object") {
3917
- if (value === null)
3918
- return "null";
3919
- if (Array.isArray(value))
3920
- return "array";
4000
+ if (value === null) return "null";
4001
+ if (Array.isArray(value)) return "array";
3921
4002
  if (value instanceof Object && value.constructor.name !== "Object") {
3922
4003
  return value.constructor.name;
3923
4004
  }
@@ -3970,6 +4051,7 @@ const HistoryAction = ({ model, document }) => {
3970
4051
  };
3971
4052
  };
3972
4053
  HistoryAction.type = "history";
4054
+ HistoryAction.position = "header";
3973
4055
  const historyAdmin = {
3974
4056
  bootstrap(app) {
3975
4057
  const { addDocumentAction } = app.getPlugin("content-manager").apis;
@@ -4063,7 +4145,7 @@ const PreviewSidePanel = ({ model, documentId, document }) => {
4063
4145
  };
4064
4146
  return {
4065
4147
  title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
4066
- content: /* @__PURE__ */ jsx(Flex, { gap: 2, width: "100%", children: /* @__PURE__ */ jsx(
4148
+ content: /* @__PURE__ */ jsx(
4067
4149
  ConditionalTooltip,
4068
4150
  {
4069
4151
  label: formatMessage({
@@ -4071,31 +4153,29 @@ const PreviewSidePanel = ({ model, documentId, document }) => {
4071
4153
  defaultMessage: "Please save to open the preview"
4072
4154
  }),
4073
4155
  isShown: isModified,
4074
- children: /* @__PURE__ */ jsx(
4156
+ children: /* @__PURE__ */ jsx(Box, { cursor: "not-allowed", width: "100%", children: /* @__PURE__ */ jsx(
4075
4157
  Button,
4076
4158
  {
4077
4159
  variant: "tertiary",
4078
4160
  tag: Link,
4079
4161
  to: { pathname: "preview", search: stringify(query, { encode: false }) },
4080
4162
  onClick: trackNavigation,
4081
- flex: "auto",
4163
+ width: "100%",
4082
4164
  disabled: isModified,
4165
+ pointerEvents: isModified ? "none" : void 0,
4166
+ tabIndex: isModified ? -1 : void 0,
4083
4167
  children: formatMessage({
4084
4168
  id: "content-manager.preview.panel.button",
4085
4169
  defaultMessage: "Open preview"
4086
4170
  })
4087
4171
  }
4088
- )
4172
+ ) })
4089
4173
  }
4090
- ) })
4174
+ )
4091
4175
  };
4092
4176
  };
4093
- const FEATURE_ID = "preview";
4094
4177
  const previewAdmin = {
4095
4178
  bootstrap(app) {
4096
- if (!window.strapi.future.isEnabled(FEATURE_ID)) {
4097
- return;
4098
- }
4099
4179
  const contentManagerPluginApis = app.getPlugin("content-manager").apis;
4100
4180
  contentManagerPluginApis.addEditViewSidePanel([PreviewSidePanel]);
4101
4181
  }
@@ -4119,7 +4199,7 @@ const index = {
4119
4199
  app.router.addRoute({
4120
4200
  path: "content-manager/*",
4121
4201
  lazy: async () => {
4122
- const { Layout } = await import("./layout-2Si0j0jO.mjs");
4202
+ const { Layout } = await import("./layout-W3clJSCy.mjs");
4123
4203
  return {
4124
4204
  Component: Layout
4125
4205
  };
@@ -4139,7 +4219,7 @@ const index = {
4139
4219
  async registerTrads({ locales }) {
4140
4220
  const importedTrads = await Promise.all(
4141
4221
  locales.map((locale) => {
4142
- 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`).then(({ default: data }) => {
4222
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-CSxLmrh1.mjs"), "./translations/es.json": () => import("./es-D34tqjMw.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr--pg5jUbt.mjs"), "./translations/gu.json": () => import("./gu-CNpaMDpH.mjs"), "./translations/hi.json": () => import("./hi-Dwvd04m3.mjs"), "./translations/hu.json": () => import("./hu-CeYvaaO0.mjs"), "./translations/id.json": () => import("./id-BtwA9WJT.mjs"), "./translations/it.json": () => import("./it-BrVPqaf1.mjs"), "./translations/ja.json": () => import("./ja-BHqhDq4V.mjs"), "./translations/ko.json": () => import("./ko-HVQRlfUI.mjs"), "./translations/ml.json": () => import("./ml-BihZwQit.mjs"), "./translations/ms.json": () => import("./ms-m_WjyWx7.mjs"), "./translations/nl.json": () => import("./nl-D4R9gHx5.mjs"), "./translations/pl.json": () => import("./pl-sbx9mSt_.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-C71iDxnh.mjs"), "./translations/pt.json": () => import("./pt-BsaFvS8-.mjs"), "./translations/ru.json": () => import("./ru-BE6A4Exp.mjs"), "./translations/sa.json": () => import("./sa-Dag0k-Z8.mjs"), "./translations/sk.json": () => import("./sk-BFg-R8qJ.mjs"), "./translations/sv.json": () => import("./sv-CUnfWGsh.mjs"), "./translations/th.json": () => import("./th-BqbI8lIT.mjs"), "./translations/tr.json": () => import("./tr-CgeK3wJM.mjs"), "./translations/uk.json": () => import("./uk-CR-zDhAY.mjs"), "./translations/vi.json": () => import("./vi-DUXIk_fw.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BPQcRIyH.mjs"), "./translations/zh.json": () => import("./zh-BWZspA60.mjs") }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
4143
4223
  return {
4144
4224
  data: prefixPluginTranslations(data, PLUGIN_ID),
4145
4225
  locale
@@ -4201,4 +4281,4 @@ export {
4201
4281
  capitalise as y,
4202
4282
  useUpdateContentTypeConfigurationMutation as z
4203
4283
  };
4204
- //# sourceMappingURL=index-BLPa8Dq-.mjs.map
4284
+ //# sourceMappingURL=index-DqasUQ6Q.mjs.map