@strapi/content-manager 0.0.0-experimental.a53a4b1c8f7981a689823cdd719105671e1c6392 → 0.0.0-experimental.a9a5a36dd73072c19eadeff5f387e8286b2a4d22

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 (87) hide show
  1. package/LICENSE +18 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-DmwmiFQy.mjs → ComponentConfigurationPage-B1bIXVuX.mjs} +3 -3
  3. package/dist/_chunks/{ComponentConfigurationPage-DmwmiFQy.mjs.map → ComponentConfigurationPage-B1bIXVuX.mjs.map} +1 -1
  4. package/dist/_chunks/{ComponentConfigurationPage-C-49MccQ.js → ComponentConfigurationPage-Bqgx7Mes.js} +3 -3
  5. package/dist/_chunks/{ComponentConfigurationPage-C-49MccQ.js.map → ComponentConfigurationPage-Bqgx7Mes.js.map} +1 -1
  6. package/dist/_chunks/{EditConfigurationPage-DjFJw56M.js → EditConfigurationPage-BFEwvdMW.js} +3 -3
  7. package/dist/_chunks/{EditConfigurationPage-DjFJw56M.js.map → EditConfigurationPage-BFEwvdMW.js.map} +1 -1
  8. package/dist/_chunks/{EditConfigurationPage-JT3E7NZy.mjs → EditConfigurationPage-ZO0vOO8q.mjs} +3 -3
  9. package/dist/_chunks/{EditConfigurationPage-JT3E7NZy.mjs.map → EditConfigurationPage-ZO0vOO8q.mjs.map} +1 -1
  10. package/dist/_chunks/{EditViewPage-zT3fBr4Y.js → EditViewPage-DA95Ha6J.js} +3 -3
  11. package/dist/_chunks/{EditViewPage-zT3fBr4Y.js.map → EditViewPage-DA95Ha6J.js.map} +1 -1
  12. package/dist/_chunks/{EditViewPage-CPj61RMh.mjs → EditViewPage-DlLEyUL6.mjs} +3 -3
  13. package/dist/_chunks/{EditViewPage-CPj61RMh.mjs.map → EditViewPage-DlLEyUL6.mjs.map} +1 -1
  14. package/dist/_chunks/{Field-Boxf9Ajp.js → Field-CnK8dO8N.js} +74 -49
  15. package/dist/_chunks/Field-CnK8dO8N.js.map +1 -0
  16. package/dist/_chunks/{Field-dha5VnIQ.mjs → Field-Dq7bDnuh.mjs} +74 -49
  17. package/dist/_chunks/Field-Dq7bDnuh.mjs.map +1 -0
  18. package/dist/_chunks/{Form-DHrru2AV.mjs → Form-B_JE0dbz.mjs} +2 -2
  19. package/dist/_chunks/{Form-DHrru2AV.mjs.map → Form-B_JE0dbz.mjs.map} +1 -1
  20. package/dist/_chunks/{Form-y5g1SRsh.js → Form-BpiR4piS.js} +2 -2
  21. package/dist/_chunks/{Form-y5g1SRsh.js.map → Form-BpiR4piS.js.map} +1 -1
  22. package/dist/_chunks/{History-Bru_KoeP.mjs → History-CBNGU7a-.mjs} +27 -12
  23. package/dist/_chunks/History-CBNGU7a-.mjs.map +1 -0
  24. package/dist/_chunks/{History-CqN6K7SX.js → History-DdIstl8b.js} +27 -12
  25. package/dist/_chunks/History-DdIstl8b.js.map +1 -0
  26. package/dist/_chunks/{ListConfigurationPage-D8wGABj0.mjs → ListConfigurationPage-5dr4qpue.mjs} +8 -6
  27. package/dist/_chunks/ListConfigurationPage-5dr4qpue.mjs.map +1 -0
  28. package/dist/_chunks/{ListConfigurationPage-R_p-SbHZ.js → ListConfigurationPage-DkKRparB.js} +8 -6
  29. package/dist/_chunks/ListConfigurationPage-DkKRparB.js.map +1 -0
  30. package/dist/_chunks/{ListViewPage-SID6TRb9.mjs → ListViewPage-DecLrYV6.mjs} +15 -6
  31. package/dist/_chunks/ListViewPage-DecLrYV6.mjs.map +1 -0
  32. package/dist/_chunks/{ListViewPage-pEw_zug9.js → ListViewPage-wE0lXqoD.js} +15 -6
  33. package/dist/_chunks/ListViewPage-wE0lXqoD.js.map +1 -0
  34. package/dist/_chunks/{NoContentTypePage-CJ7UXwrQ.mjs → NoContentTypePage-CiIcfYsd.mjs} +2 -2
  35. package/dist/_chunks/{NoContentTypePage-CJ7UXwrQ.mjs.map → NoContentTypePage-CiIcfYsd.mjs.map} +1 -1
  36. package/dist/_chunks/{NoContentTypePage-C5dcQojD.js → NoContentTypePage-DEKR6tf9.js} +2 -2
  37. package/dist/_chunks/{NoContentTypePage-C5dcQojD.js.map → NoContentTypePage-DEKR6tf9.js.map} +1 -1
  38. package/dist/_chunks/{NoPermissionsPage-B7syEq5E.mjs → NoPermissionsPage-CM5UD8ee.mjs} +2 -2
  39. package/dist/_chunks/{NoPermissionsPage-B7syEq5E.mjs.map → NoPermissionsPage-CM5UD8ee.mjs.map} +1 -1
  40. package/dist/_chunks/{NoPermissionsPage-BtPrImPP.js → NoPermissionsPage-DmNfF2Bb.js} +2 -2
  41. package/dist/_chunks/{NoPermissionsPage-BtPrImPP.js.map → NoPermissionsPage-DmNfF2Bb.js.map} +1 -1
  42. package/dist/_chunks/{Relations-B9Crnhnn.mjs → Relations-Dqz0C1fz.mjs} +3 -3
  43. package/dist/_chunks/Relations-Dqz0C1fz.mjs.map +1 -0
  44. package/dist/_chunks/{Relations-DjTQ5kGB.js → Relations-L0xYRoSQ.js} +3 -3
  45. package/dist/_chunks/Relations-L0xYRoSQ.js.map +1 -0
  46. package/dist/_chunks/{en-Ux26r5pl.mjs → en-BrCTWlZv.mjs} +5 -4
  47. package/dist/_chunks/{en-Ux26r5pl.mjs.map → en-BrCTWlZv.mjs.map} +1 -1
  48. package/dist/_chunks/{en-fbKQxLGn.js → en-uOUIxfcQ.js} +5 -4
  49. package/dist/_chunks/{en-fbKQxLGn.js.map → en-uOUIxfcQ.js.map} +1 -1
  50. package/dist/_chunks/{index-DJXJw9V5.mjs → index-BSn97i8U.mjs} +246 -118
  51. package/dist/_chunks/index-BSn97i8U.mjs.map +1 -0
  52. package/dist/_chunks/{index-DVPWZkbS.js → index-DyvUPg1a.js} +244 -116
  53. package/dist/_chunks/index-DyvUPg1a.js.map +1 -0
  54. package/dist/_chunks/{layout-Bau7ZfLV.mjs → layout-DPaHUusj.mjs} +6 -6
  55. package/dist/_chunks/layout-DPaHUusj.mjs.map +1 -0
  56. package/dist/_chunks/{layout-Dm6fbiQj.js → layout-TPqF2oJ5.js} +6 -6
  57. package/dist/_chunks/layout-TPqF2oJ5.js.map +1 -0
  58. package/dist/_chunks/{relations-CKnpRgrN.js → relations-BWYS9gkn.js} +2 -2
  59. package/dist/_chunks/{relations-CKnpRgrN.js.map → relations-BWYS9gkn.js.map} +1 -1
  60. package/dist/_chunks/{relations-BH_kBSJ0.mjs → relations-Ck7-ecDT.mjs} +2 -2
  61. package/dist/_chunks/{relations-BH_kBSJ0.mjs.map → relations-Ck7-ecDT.mjs.map} +1 -1
  62. package/dist/admin/index.js +1 -1
  63. package/dist/admin/index.mjs +1 -1
  64. package/dist/admin/src/history/index.d.ts +3 -0
  65. package/dist/admin/src/index.d.ts +1 -0
  66. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -0
  67. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +20 -0
  68. package/dist/server/index.js +4 -0
  69. package/dist/server/index.js.map +1 -1
  70. package/dist/server/index.mjs +4 -0
  71. package/dist/server/index.mjs.map +1 -1
  72. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  73. package/package.json +6 -6
  74. package/dist/_chunks/Field-Boxf9Ajp.js.map +0 -1
  75. package/dist/_chunks/Field-dha5VnIQ.mjs.map +0 -1
  76. package/dist/_chunks/History-Bru_KoeP.mjs.map +0 -1
  77. package/dist/_chunks/History-CqN6K7SX.js.map +0 -1
  78. package/dist/_chunks/ListConfigurationPage-D8wGABj0.mjs.map +0 -1
  79. package/dist/_chunks/ListConfigurationPage-R_p-SbHZ.js.map +0 -1
  80. package/dist/_chunks/ListViewPage-SID6TRb9.mjs.map +0 -1
  81. package/dist/_chunks/ListViewPage-pEw_zug9.js.map +0 -1
  82. package/dist/_chunks/Relations-B9Crnhnn.mjs.map +0 -1
  83. package/dist/_chunks/Relations-DjTQ5kGB.js.map +0 -1
  84. package/dist/_chunks/index-DJXJw9V5.mjs.map +0 -1
  85. package/dist/_chunks/index-DVPWZkbS.js.map +0 -1
  86. package/dist/_chunks/layout-Bau7ZfLV.mjs.map +0 -1
  87. package/dist/_chunks/layout-Dm6fbiQj.js.map +0 -1
@@ -170,6 +170,7 @@ const en = {
170
170
  "error.record.update": "An error occurred during record update.",
171
171
  "error.records.count": "An error occurred during count records fetch.",
172
172
  "error.records.fetch": "An error occurred during records fetch.",
173
+ "error.records.fetch-draft-relatons": "An error occurred while fetching draft relations on this document.",
173
174
  "error.schema.generation": "An error occurred during schema generation.",
174
175
  "error.validation.json": "This is not a JSON",
175
176
  "error.validation.max": "The value is too high (max: {max}).",
@@ -224,13 +225,13 @@ const en = {
224
225
  "popUpWarning.bodyMessage.contentType.publish.all": "Are you sure you want to publish these entries?",
225
226
  "popUpWarning.bodyMessage.contentType.unpublish.all": "Are you sure you want to unpublish these entries?",
226
227
  "popUpWarning.warning.has-draft-relations.title": "Confirmation",
228
+ "popUpWarning.warning.has-draft-relations.message": "This entry is related to {count, plural, one {# draft entry} other {# draft entries}}. Publishing it could leave broken links in your app.",
229
+ "popUpwarning.warning.has-draft-relations.button-confirm": "Yes, publish",
230
+ "popUpwarning.warning.bulk-has-draft-relations.message": "<b>{count} {count, plural, one { relation } other { relations } } out of {entities} { entities, plural, one { entry } other { entries } } {count, plural, one { is } other { are } }</b> not published yet and might lead to unexpected behavior. ",
227
231
  "popUpWarning.warning.publish-question": "Do you still want to publish?",
228
232
  "popUpWarning.warning.unpublish": "If you don't publish this content, it will automatically turn into a Draft.",
229
233
  "popUpWarning.warning.unpublish-question": "Are you sure you don't want to publish it?",
230
234
  "popUpWarning.warning.updateAllSettings": "This will modify all your settings",
231
- "popUpwarning.warning.has-draft-relations.button-confirm": "Yes, publish",
232
- "popUpwarning.warning.has-draft-relations.message": "<b>{count, plural, one { relation is } other { relations are } }</b> not published yet and might lead to unexpected behavior.",
233
- "popUpwarning.warning.bulk-has-draft-relations.message": "<b>{count} {count, plural, one { relation } other { relations } } out of {entities} { entities, plural, one { entry } other { entries } } {count, plural, one { is } other { are } }</b> not published yet and might lead to unexpected behavior. ",
234
235
  "popover.display-relations.label": "Display relations",
235
236
  "relation.add": "Add relation",
236
237
  "relation.disconnect": "Remove",
@@ -288,4 +289,4 @@ export {
288
289
  models,
289
290
  pageNotFound
290
291
  };
291
- //# sourceMappingURL=en-Ux26r5pl.mjs.map
292
+ //# sourceMappingURL=en-BrCTWlZv.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"en-Ux26r5pl.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en-BrCTWlZv.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -172,6 +172,7 @@ const en = {
172
172
  "error.record.update": "An error occurred during record update.",
173
173
  "error.records.count": "An error occurred during count records fetch.",
174
174
  "error.records.fetch": "An error occurred during records fetch.",
175
+ "error.records.fetch-draft-relatons": "An error occurred while fetching draft relations on this document.",
175
176
  "error.schema.generation": "An error occurred during schema generation.",
176
177
  "error.validation.json": "This is not a JSON",
177
178
  "error.validation.max": "The value is too high (max: {max}).",
@@ -226,13 +227,13 @@ const en = {
226
227
  "popUpWarning.bodyMessage.contentType.publish.all": "Are you sure you want to publish these entries?",
227
228
  "popUpWarning.bodyMessage.contentType.unpublish.all": "Are you sure you want to unpublish these entries?",
228
229
  "popUpWarning.warning.has-draft-relations.title": "Confirmation",
230
+ "popUpWarning.warning.has-draft-relations.message": "This entry is related to {count, plural, one {# draft entry} other {# draft entries}}. Publishing it could leave broken links in your app.",
231
+ "popUpwarning.warning.has-draft-relations.button-confirm": "Yes, publish",
232
+ "popUpwarning.warning.bulk-has-draft-relations.message": "<b>{count} {count, plural, one { relation } other { relations } } out of {entities} { entities, plural, one { entry } other { entries } } {count, plural, one { is } other { are } }</b> not published yet and might lead to unexpected behavior. ",
229
233
  "popUpWarning.warning.publish-question": "Do you still want to publish?",
230
234
  "popUpWarning.warning.unpublish": "If you don't publish this content, it will automatically turn into a Draft.",
231
235
  "popUpWarning.warning.unpublish-question": "Are you sure you don't want to publish it?",
232
236
  "popUpWarning.warning.updateAllSettings": "This will modify all your settings",
233
- "popUpwarning.warning.has-draft-relations.button-confirm": "Yes, publish",
234
- "popUpwarning.warning.has-draft-relations.message": "<b>{count, plural, one { relation is } other { relations are } }</b> not published yet and might lead to unexpected behavior.",
235
- "popUpwarning.warning.bulk-has-draft-relations.message": "<b>{count} {count, plural, one { relation } other { relations } } out of {entities} { entities, plural, one { entry } other { entries } } {count, plural, one { is } other { are } }</b> not published yet and might lead to unexpected behavior. ",
236
237
  "popover.display-relations.label": "Display relations",
237
238
  "relation.add": "Add relation",
238
239
  "relation.disconnect": "Remove",
@@ -288,4 +289,4 @@ exports.default = en;
288
289
  exports.groups = groups;
289
290
  exports.models = models;
290
291
  exports.pageNotFound = pageNotFound;
291
- //# sourceMappingURL=en-fbKQxLGn.js.map
292
+ //# sourceMappingURL=en-uOUIxfcQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"en-fbKQxLGn.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en-uOUIxfcQ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,17 +1,17 @@
1
- import { ClockCounterClockwise, CrossCircle, More, WarningCircle, ListPlus, Pencil, Trash, Check, CheckCircle, ArrowsCounterClockwise, ChevronRight, Duplicate, Feather } from "@strapi/icons";
1
+ import { CrossCircle, More, WarningCircle, ListPlus, Pencil, Trash, Check, CheckCircle, ArrowsCounterClockwise, ChevronRight, Duplicate, ClockCounterClockwise, Feather } from "@strapi/icons";
2
2
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
3
- import { useStrapiApp, useQueryParams, createContext, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler, getYupValidationErrors, useTracking, useForm, BackButton, DescriptionComponentRenderer, useTable, Table } from "@strapi/admin/strapi-admin";
4
- import { stringify } from "qs";
5
- import { useIntl } from "react-intl";
6
- import { useNavigate, useParams, Navigate, useMatch, useLocation, Link, NavLink } from "react-router-dom";
3
+ import { useStrapiApp, createContext, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler, getYupValidationErrors, useQueryParams, useTracking, useForm, BackButton, DescriptionComponentRenderer, useTable, Table } from "@strapi/admin/strapi-admin";
7
4
  import * as React from "react";
8
5
  import { lazy } from "react";
9
6
  import { Button, Menu, VisuallyHidden, Flex, Box, Typography, Dialog, Modal, Radio, Status, SingleSelect, SingleSelectOption, Loader, IconButton, Tooltip, LinkButton } from "@strapi/design-system";
7
+ import { useIntl } from "react-intl";
8
+ import { useParams, Navigate, useNavigate, useMatch, useLocation, Link, NavLink } from "react-router-dom";
10
9
  import { styled } from "styled-components";
11
10
  import * as yup from "yup";
12
11
  import { ValidationError } from "yup";
13
12
  import pipe from "lodash/fp/pipe";
14
13
  import { intervalToDuration, isPast } from "date-fns";
14
+ import { stringify } from "qs";
15
15
  import { createSlice, combineReducers } from "@reduxjs/toolkit";
16
16
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
17
17
  const v = glob[path];
@@ -49,42 +49,6 @@ const useInjectionZone = (area) => {
49
49
  const [page, position] = area.split(".");
50
50
  return contentManagerPlugin.getInjectedComponents(page, position);
51
51
  };
52
- const HistoryAction = ({ model, document }) => {
53
- const { formatMessage } = useIntl();
54
- const [{ query }] = useQueryParams();
55
- const navigate = useNavigate();
56
- const pluginsQueryParams = stringify({ plugins: query.plugins }, { encode: false });
57
- if (!window.strapi.features.isEnabled("cms-content-history")) {
58
- return null;
59
- }
60
- return {
61
- icon: /* @__PURE__ */ jsx(ClockCounterClockwise, {}),
62
- label: formatMessage({
63
- id: "content-manager.history.document-action",
64
- defaultMessage: "Content History"
65
- }),
66
- onClick: () => navigate({ pathname: "history", search: pluginsQueryParams }),
67
- disabled: (
68
- /**
69
- * The user is creating a new document.
70
- * It hasn't been saved yet, so there's no history to go to
71
- */
72
- !document || /**
73
- * The document has been created but the current dimension has never been saved.
74
- * For example, the user is creating a new locale in an existing document,
75
- * so there's no history for the document in that locale
76
- */
77
- !document.id || /**
78
- * History is only available for content types created by the user.
79
- * These have the `api::` prefix, as opposed to the ones created by Strapi or plugins,
80
- * which start with `admin::` or `plugin::`
81
- */
82
- !model.startsWith("api::")
83
- ),
84
- position: "header"
85
- };
86
- };
87
- HistoryAction.type = "history";
88
52
  const ID = "id";
89
53
  const CREATED_BY_ATTRIBUTE_NAME = "createdBy";
90
54
  const UPDATED_BY_ATTRIBUTE_NAME = "updatedBy";
@@ -600,11 +564,11 @@ const createAttributeSchema = (attribute) => {
600
564
  }
601
565
  };
602
566
  const addRequiredValidation = (attribute) => (schema) => {
603
- if (attribute.required) {
604
- return schema.required({
605
- id: translatedErrors.required.id,
606
- defaultMessage: "This field is required."
607
- });
567
+ if ((attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone") && attribute.required && "min" in schema) {
568
+ return schema.min(1, translatedErrors.required);
569
+ }
570
+ if (attribute.required && attribute.type !== "relation") {
571
+ return schema.required(translatedErrors.required);
608
572
  }
609
573
  return schema?.nullable ? schema.nullable() : (
610
574
  // In some cases '.nullable' will not be available on the schema.
@@ -638,6 +602,28 @@ const addMaxLengthValidation = (attribute) => (schema) => {
638
602
  const addMinValidation = (attribute) => (schema) => {
639
603
  if ("min" in attribute) {
640
604
  const min = toInteger(attribute.min);
605
+ if (attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone") {
606
+ if (!attribute.required && "test" in schema && min) {
607
+ return schema.test(
608
+ "custom-min",
609
+ {
610
+ ...translatedErrors.min,
611
+ values: {
612
+ min: attribute.min
613
+ }
614
+ },
615
+ (value) => {
616
+ if (!value) {
617
+ return true;
618
+ }
619
+ if (Array.isArray(value) && value.length === 0) {
620
+ return true;
621
+ }
622
+ return value.length >= min;
623
+ }
624
+ );
625
+ }
626
+ }
641
627
  if ("min" in schema && min) {
642
628
  return schema.min(min, {
643
629
  ...translatedErrors.min,
@@ -764,7 +750,10 @@ const useDocument = (args, opts) => {
764
750
  isLoading: isLoadingDocument,
765
751
  isFetching: isFetchingDocument,
766
752
  error
767
- } = useGetDocumentQuery(args, opts);
753
+ } = useGetDocumentQuery(args, {
754
+ ...opts,
755
+ skip: !args.documentId && args.collectionType !== SINGLE_TYPES || opts?.skip
756
+ });
768
757
  const { components, schema, isLoading: isLoadingSchema } = useContentTypeSchema(args.model);
769
758
  React.useEffect(() => {
770
759
  if (error) {
@@ -1266,7 +1255,7 @@ const useDocumentActions = () => {
1266
1255
  };
1267
1256
  };
1268
1257
  const ProtectedHistoryPage = lazy(
1269
- () => import("./History-Bru_KoeP.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1258
+ () => import("./History-CBNGU7a-.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1270
1259
  );
1271
1260
  const routes$1 = [
1272
1261
  {
@@ -1279,31 +1268,31 @@ const routes$1 = [
1279
1268
  }
1280
1269
  ];
1281
1270
  const ProtectedEditViewPage = lazy(
1282
- () => import("./EditViewPage-CPj61RMh.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1271
+ () => import("./EditViewPage-DlLEyUL6.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1283
1272
  );
1284
1273
  const ProtectedListViewPage = lazy(
1285
- () => import("./ListViewPage-SID6TRb9.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1274
+ () => import("./ListViewPage-DecLrYV6.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1286
1275
  );
1287
1276
  const ProtectedListConfiguration = lazy(
1288
- () => import("./ListConfigurationPage-D8wGABj0.mjs").then((mod) => ({
1277
+ () => import("./ListConfigurationPage-5dr4qpue.mjs").then((mod) => ({
1289
1278
  default: mod.ProtectedListConfiguration
1290
1279
  }))
1291
1280
  );
1292
1281
  const ProtectedEditConfigurationPage = lazy(
1293
- () => import("./EditConfigurationPage-JT3E7NZy.mjs").then((mod) => ({
1282
+ () => import("./EditConfigurationPage-ZO0vOO8q.mjs").then((mod) => ({
1294
1283
  default: mod.ProtectedEditConfigurationPage
1295
1284
  }))
1296
1285
  );
1297
1286
  const ProtectedComponentConfigurationPage = lazy(
1298
- () => import("./ComponentConfigurationPage-DmwmiFQy.mjs").then((mod) => ({
1287
+ () => import("./ComponentConfigurationPage-B1bIXVuX.mjs").then((mod) => ({
1299
1288
  default: mod.ProtectedComponentConfigurationPage
1300
1289
  }))
1301
1290
  );
1302
1291
  const NoPermissions = lazy(
1303
- () => import("./NoPermissionsPage-B7syEq5E.mjs").then((mod) => ({ default: mod.NoPermissions }))
1292
+ () => import("./NoPermissionsPage-CM5UD8ee.mjs").then((mod) => ({ default: mod.NoPermissions }))
1304
1293
  );
1305
1294
  const NoContentType = lazy(
1306
- () => import("./NoContentTypePage-CJ7UXwrQ.mjs").then((mod) => ({ default: mod.NoContentType }))
1295
+ () => import("./NoContentTypePage-CiIcfYsd.mjs").then((mod) => ({ default: mod.NoContentType }))
1307
1296
  );
1308
1297
  const CollectionTypePages = () => {
1309
1298
  const { collectionType } = useParams();
@@ -1430,7 +1419,7 @@ const DocumentActionButton = (action) => {
1430
1419
  DocumentActionConfirmDialog,
1431
1420
  {
1432
1421
  ...action.dialog,
1433
- variant: action.variant,
1422
+ variant: action.dialog?.variant ?? action.variant,
1434
1423
  isOpen: dialogId === action.id,
1435
1424
  onClose: handleClose
1436
1425
  }
@@ -1636,8 +1625,8 @@ const DocumentActionModal = ({
1636
1625
  };
1637
1626
  return /* @__PURE__ */ jsx(Modal.Root, { open: isOpen, onOpenChange: handleClose, children: /* @__PURE__ */ jsxs(Modal.Content, { children: [
1638
1627
  /* @__PURE__ */ jsx(Modal.Header, { children: /* @__PURE__ */ jsx(Modal.Title, { children: title }) }),
1639
- typeof Content === "function" ? /* @__PURE__ */ jsx(Content, { onClose: handleClose }) : /* @__PURE__ */ jsx(Modal.Body, { children: Content }),
1640
- typeof Footer === "function" ? /* @__PURE__ */ jsx(Footer, { onClose: handleClose }) : Footer
1628
+ /* @__PURE__ */ jsx(Modal.Body, { children: typeof Content === "function" ? /* @__PURE__ */ jsx(Content, { onClose: handleClose }) : Content }),
1629
+ /* @__PURE__ */ jsx(Modal.Footer, { children: typeof Footer === "function" ? /* @__PURE__ */ jsx(Footer, { onClose: handleClose }) : Footer })
1641
1630
  ] }) });
1642
1631
  };
1643
1632
  const PublishAction$1 = ({
@@ -1659,6 +1648,12 @@ const PublishAction$1 = ({
1659
1648
  ({ canPublish: canPublish2, canCreate: canCreate2, canUpdate: canUpdate2 }) => ({ canPublish: canPublish2, canCreate: canCreate2, canUpdate: canUpdate2 })
1660
1649
  );
1661
1650
  const { publish } = useDocumentActions();
1651
+ const [
1652
+ countDraftRelations,
1653
+ { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }
1654
+ ] = useLazyGetDraftRelationCountQuery();
1655
+ const [localCountOfDraftRelations, setLocalCountOfDraftRelations] = React.useState(0);
1656
+ const [serverCountOfDraftRelations, setServerCountOfDraftRelations] = React.useState(0);
1662
1657
  const [{ query, rawQuery }] = useQueryParams();
1663
1658
  const params = React.useMemo(() => buildValidParams(query), [query]);
1664
1659
  const modified = useForm("PublishAction", ({ modified: modified2 }) => modified2);
@@ -1667,10 +1662,101 @@ const PublishAction$1 = ({
1667
1662
  const validate = useForm("PublishAction", (state) => state.validate);
1668
1663
  const setErrors = useForm("PublishAction", (state) => state.setErrors);
1669
1664
  const formValues = useForm("PublishAction", ({ values }) => values);
1665
+ React.useEffect(() => {
1666
+ if (isErrorDraftRelations) {
1667
+ toggleNotification({
1668
+ type: "danger",
1669
+ message: formatMessage({
1670
+ id: getTranslation("error.records.fetch-draft-relatons"),
1671
+ defaultMessage: "An error occurred while fetching draft relations on this document."
1672
+ })
1673
+ });
1674
+ }
1675
+ }, [isErrorDraftRelations, toggleNotification, formatMessage]);
1676
+ React.useEffect(() => {
1677
+ const localDraftRelations = /* @__PURE__ */ new Set();
1678
+ const extractDraftRelations = (data) => {
1679
+ const relations = data.connect || [];
1680
+ relations.forEach((relation) => {
1681
+ if (relation.status === "draft") {
1682
+ localDraftRelations.add(relation.id);
1683
+ }
1684
+ });
1685
+ };
1686
+ const traverseAndExtract = (data) => {
1687
+ Object.entries(data).forEach(([key, value]) => {
1688
+ if (key === "connect" && Array.isArray(value)) {
1689
+ extractDraftRelations({ connect: value });
1690
+ } else if (typeof value === "object" && value !== null) {
1691
+ traverseAndExtract(value);
1692
+ }
1693
+ });
1694
+ };
1695
+ if (!documentId || modified) {
1696
+ traverseAndExtract(formValues);
1697
+ setLocalCountOfDraftRelations(localDraftRelations.size);
1698
+ }
1699
+ }, [documentId, modified, formValues, setLocalCountOfDraftRelations]);
1700
+ React.useEffect(() => {
1701
+ if (documentId) {
1702
+ const fetchDraftRelationsCount = async () => {
1703
+ const { data, error } = await countDraftRelations({
1704
+ collectionType,
1705
+ model,
1706
+ documentId,
1707
+ params
1708
+ });
1709
+ if (error) {
1710
+ throw error;
1711
+ }
1712
+ if (data) {
1713
+ setServerCountOfDraftRelations(data.data);
1714
+ }
1715
+ };
1716
+ fetchDraftRelationsCount();
1717
+ }
1718
+ }, [documentId, countDraftRelations, collectionType, model, params]);
1670
1719
  const isDocumentPublished = (document?.[PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc) => doc[PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== "modified";
1671
1720
  if (!schema?.options?.draftAndPublish) {
1672
1721
  return null;
1673
1722
  }
1723
+ const performPublish = async () => {
1724
+ setSubmitting(true);
1725
+ try {
1726
+ const { errors } = await validate();
1727
+ if (errors) {
1728
+ toggleNotification({
1729
+ type: "danger",
1730
+ message: formatMessage({
1731
+ id: "content-manager.validation.error",
1732
+ defaultMessage: "There are validation errors in your document. Please fix them before saving."
1733
+ })
1734
+ });
1735
+ return;
1736
+ }
1737
+ const res = await publish(
1738
+ {
1739
+ collectionType,
1740
+ model,
1741
+ documentId,
1742
+ params
1743
+ },
1744
+ formValues
1745
+ );
1746
+ if ("data" in res && collectionType !== SINGLE_TYPES) {
1747
+ navigate({
1748
+ pathname: `../${collectionType}/${model}/${res.data.documentId}`,
1749
+ search: rawQuery
1750
+ });
1751
+ } else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
1752
+ setErrors(formatValidationErrors(res.error));
1753
+ }
1754
+ } finally {
1755
+ setSubmitting(false);
1756
+ }
1757
+ };
1758
+ const totalDraftRelations = localCountOfDraftRelations + serverCountOfDraftRelations;
1759
+ const hasDraftRelations = totalDraftRelations > 0;
1674
1760
  return {
1675
1761
  /**
1676
1762
  * Disabled when:
@@ -1683,46 +1769,38 @@ const PublishAction$1 = ({
1683
1769
  * - the user doesn't have the permission to create a new document
1684
1770
  * - the user doesn't have the permission to update the document
1685
1771
  */
1686
- disabled: isCloning || isSubmitting || activeTab === "published" || !modified && isDocumentPublished || !modified && !document?.documentId || !canPublish || Boolean(!document?.documentId && !canCreate || document?.documentId && !canUpdate),
1772
+ disabled: isCloning || isSubmitting || isLoadingDraftRelations || activeTab === "published" || !modified && isDocumentPublished || !modified && !document?.documentId || !canPublish || Boolean(!document?.documentId && !canCreate || document?.documentId && !canUpdate),
1687
1773
  label: formatMessage({
1688
1774
  id: "app.utils.publish",
1689
1775
  defaultMessage: "Publish"
1690
1776
  }),
1691
1777
  onClick: async () => {
1692
- setSubmitting(true);
1693
- try {
1694
- const { errors } = await validate();
1695
- if (errors) {
1696
- toggleNotification({
1697
- type: "danger",
1698
- message: formatMessage({
1699
- id: "content-manager.validation.error",
1700
- defaultMessage: "There are validation errors in your document. Please fix them before saving."
1701
- })
1702
- });
1703
- return;
1704
- }
1705
- const res = await publish(
1706
- {
1707
- collectionType,
1708
- model,
1709
- documentId,
1710
- params
1711
- },
1712
- formValues
1713
- );
1714
- if ("data" in res && collectionType !== SINGLE_TYPES) {
1715
- navigate({
1716
- pathname: `../${collectionType}/${model}/${res.data.documentId}`,
1717
- search: rawQuery
1718
- });
1719
- } else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
1720
- setErrors(formatValidationErrors(res.error));
1778
+ if (hasDraftRelations) {
1779
+ return;
1780
+ }
1781
+ await performPublish();
1782
+ },
1783
+ dialog: hasDraftRelations ? {
1784
+ type: "dialog",
1785
+ variant: "danger",
1786
+ footer: null,
1787
+ title: formatMessage({
1788
+ id: getTranslation(`popUpwarning.warning.bulk-has-draft-relations.title`),
1789
+ defaultMessage: "Confirmation"
1790
+ }),
1791
+ content: formatMessage(
1792
+ {
1793
+ id: getTranslation(`popUpwarning.warning.bulk-has-draft-relations.message`),
1794
+ defaultMessage: "This entry is related to {count, plural, one {# draft entry} other {# draft entries}}. Publishing it could leave broken links in your app."
1795
+ },
1796
+ {
1797
+ count: totalDraftRelations
1721
1798
  }
1722
- } finally {
1723
- setSubmitting(false);
1799
+ ),
1800
+ onConfirm: async () => {
1801
+ await performPublish();
1724
1802
  }
1725
- }
1803
+ } : void 0
1726
1804
  };
1727
1805
  };
1728
1806
  PublishAction$1.type = "publish";
@@ -1821,10 +1899,13 @@ const UpdateAction = ({
1821
1899
  document
1822
1900
  );
1823
1901
  if ("data" in res && collectionType !== SINGLE_TYPES) {
1824
- navigate({
1825
- pathname: `../${collectionType}/${model}/${res.data.documentId}`,
1826
- search: rawQuery
1827
- });
1902
+ navigate(
1903
+ {
1904
+ pathname: `../${collectionType}/${model}/${res.data.documentId}`,
1905
+ search: rawQuery
1906
+ },
1907
+ { replace: true }
1908
+ );
1828
1909
  } else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
1829
1910
  setErrors(formatValidationErrors(res.error));
1830
1911
  }
@@ -2070,23 +2151,13 @@ const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
2070
2151
  id: "content-manager.containers.edit.title.new",
2071
2152
  defaultMessage: "Create an entry"
2072
2153
  }) : documentTitle;
2073
- return /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "flex-start", paddingTop: 8, paddingBottom: 4, gap: 3, children: [
2154
+ return /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "flex-start", paddingTop: 6, paddingBottom: 4, gap: 2, children: [
2074
2155
  /* @__PURE__ */ jsx(BackButton, {}),
2075
- /* @__PURE__ */ jsxs(
2076
- Flex,
2077
- {
2078
- width: "100%",
2079
- justifyContent: "space-between",
2080
- paddingTop: 1,
2081
- gap: "80px",
2082
- alignItems: "flex-start",
2083
- children: [
2084
- /* @__PURE__ */ jsx(Typography, { variant: "alpha", tag: "h1", children: title }),
2085
- /* @__PURE__ */ jsx(HeaderToolbar, {})
2086
- ]
2087
- }
2088
- ),
2089
- status ? /* @__PURE__ */ jsx(DocumentStatus, { status: isCloning ? "draft" : status }) : null
2156
+ /* @__PURE__ */ jsxs(Flex, { width: "100%", justifyContent: "space-between", gap: "80px", alignItems: "flex-start", children: [
2157
+ /* @__PURE__ */ jsx(Typography, { variant: "alpha", tag: "h1", children: title }),
2158
+ /* @__PURE__ */ jsx(HeaderToolbar, {})
2159
+ ] }),
2160
+ status ? /* @__PURE__ */ jsx(Box, { marginTop: 1, children: /* @__PURE__ */ jsx(DocumentStatus, { status: isCloning ? "draft" : status }) }) : null
2090
2161
  ] });
2091
2162
  };
2092
2163
  const HeaderToolbar = () => {
@@ -2777,7 +2848,7 @@ const ConfirmBulkActionDialog = ({
2777
2848
  endAction
2778
2849
  }) => {
2779
2850
  const { formatMessage } = useIntl();
2780
- return /* @__PURE__ */ jsx(Dialog.Root, { onOpenChange: onToggleDialog, open: isOpen, children: /* @__PURE__ */ jsxs(Dialog.Content, { children: [
2851
+ return /* @__PURE__ */ jsx(Dialog.Root, { open: isOpen, children: /* @__PURE__ */ jsxs(Dialog.Content, { children: [
2781
2852
  /* @__PURE__ */ jsx(Dialog.Header, { children: formatMessage({
2782
2853
  id: "app.components.ConfirmDialog.title",
2783
2854
  defaultMessage: "Confirmation"
@@ -2898,7 +2969,14 @@ const formatErrorMessages = (errors, parentKey, formatMessage) => {
2898
2969
  )
2899
2970
  );
2900
2971
  } else {
2901
- messages.push(...formatErrorMessages(value, currentKey, formatMessage));
2972
+ messages.push(
2973
+ ...formatErrorMessages(
2974
+ // @ts-expect-error TODO: check why value is not compatible with FormErrors
2975
+ value,
2976
+ currentKey,
2977
+ formatMessage
2978
+ )
2979
+ );
2902
2980
  }
2903
2981
  } else {
2904
2982
  messages.push(
@@ -3561,8 +3639,7 @@ class ContentManagerPlugin {
3561
3639
  documentActions = [
3562
3640
  ...DEFAULT_ACTIONS,
3563
3641
  ...DEFAULT_TABLE_ROW_ACTIONS,
3564
- ...DEFAULT_HEADER_ACTIONS,
3565
- HistoryAction
3642
+ ...DEFAULT_HEADER_ACTIONS
3566
3643
  ];
3567
3644
  editViewSidePanels = [ActionsPanel];
3568
3645
  headerActions = [];
@@ -3651,6 +3728,52 @@ const getPrintableType = (value) => {
3651
3728
  }
3652
3729
  return nativeType;
3653
3730
  };
3731
+ const HistoryAction = ({ model, document }) => {
3732
+ const { formatMessage } = useIntl();
3733
+ const [{ query }] = useQueryParams();
3734
+ const navigate = useNavigate();
3735
+ const pluginsQueryParams = stringify({ plugins: query.plugins }, { encode: false });
3736
+ if (!window.strapi.features.isEnabled("cms-content-history")) {
3737
+ return null;
3738
+ }
3739
+ return {
3740
+ icon: /* @__PURE__ */ jsx(ClockCounterClockwise, {}),
3741
+ label: formatMessage({
3742
+ id: "content-manager.history.document-action",
3743
+ defaultMessage: "Content History"
3744
+ }),
3745
+ onClick: () => navigate({ pathname: "history", search: pluginsQueryParams }),
3746
+ disabled: (
3747
+ /**
3748
+ * The user is creating a new document.
3749
+ * It hasn't been saved yet, so there's no history to go to
3750
+ */
3751
+ !document || /**
3752
+ * The document has been created but the current dimension has never been saved.
3753
+ * For example, the user is creating a new locale in an existing document,
3754
+ * so there's no history for the document in that locale
3755
+ */
3756
+ !document.id || /**
3757
+ * History is only available for content types created by the user.
3758
+ * These have the `api::` prefix, as opposed to the ones created by Strapi or plugins,
3759
+ * which start with `admin::` or `plugin::`
3760
+ */
3761
+ !model.startsWith("api::")
3762
+ ),
3763
+ position: "header"
3764
+ };
3765
+ };
3766
+ HistoryAction.type = "history";
3767
+ const historyAdmin = {
3768
+ bootstrap(app) {
3769
+ const { addDocumentAction } = app.getPlugin("content-manager").apis;
3770
+ addDocumentAction((actions2) => {
3771
+ const indexOfDeleteAction = actions2.findIndex((action) => action.type === "delete");
3772
+ actions2.splice(indexOfDeleteAction, 0, HistoryAction);
3773
+ return actions2;
3774
+ });
3775
+ }
3776
+ };
3654
3777
  const initialState = {
3655
3778
  collectionTypeLinks: [],
3656
3779
  components: [],
@@ -3706,7 +3829,7 @@ const index = {
3706
3829
  app.router.addRoute({
3707
3830
  path: "content-manager/*",
3708
3831
  lazy: async () => {
3709
- const { Layout } = await import("./layout-Bau7ZfLV.mjs");
3832
+ const { Layout } = await import("./layout-DPaHUusj.mjs");
3710
3833
  return {
3711
3834
  Component: Layout
3712
3835
  };
@@ -3715,10 +3838,15 @@ const index = {
3715
3838
  });
3716
3839
  app.registerPlugin(cm.config);
3717
3840
  },
3841
+ bootstrap(app) {
3842
+ if (typeof historyAdmin.bootstrap === "function") {
3843
+ historyAdmin.bootstrap(app);
3844
+ }
3845
+ },
3718
3846
  async registerTrads({ locales }) {
3719
3847
  const importedTrads = await Promise.all(
3720
3848
  locales.map((locale) => {
3721
- 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-Ux26r5pl.mjs"), "./translations/es.json": () => import("./es-CeXiYflN.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr-CD9VFbPM.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-CtsUxOvk.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 }) => {
3849
+ 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-BrCTWlZv.mjs"), "./translations/es.json": () => import("./es-CeXiYflN.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr-CD9VFbPM.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-CtsUxOvk.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 }) => {
3722
3850
  return {
3723
3851
  data: prefixPluginTranslations(data, PLUGIN_ID),
3724
3852
  locale
@@ -3777,4 +3905,4 @@ export {
3777
3905
  useUpdateContentTypeConfigurationMutation as y,
3778
3906
  extractContentTypeComponents as z
3779
3907
  };
3780
- //# sourceMappingURL=index-DJXJw9V5.mjs.map
3908
+ //# sourceMappingURL=index-BSn97i8U.mjs.map