@strapi/content-manager 0.0.0-experimental.5788c38836be65c0321a2dcadbdf44f04b798e8a → 0.0.0-experimental.5a34dd1236f692f16e40784fcca5c11e0e55dc5a

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/dist/_chunks/{ComponentConfigurationPage-B42mQr1K.js → ComponentConfigurationPage-CQDCxI8x.js} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-B42mQr1K.js.map → ComponentConfigurationPage-CQDCxI8x.js.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-D1YuKq8j.mjs → ComponentConfigurationPage-jmWwucg_.mjs} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-D1YuKq8j.mjs.map → ComponentConfigurationPage-jmWwucg_.mjs.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-NC89F29V.js → EditConfigurationPage-Ce4bIm4n.js} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-NC89F29V.js.map → EditConfigurationPage-Ce4bIm4n.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-C9yiwgI_.mjs → EditConfigurationPage-W07CEdm2.mjs} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-C9yiwgI_.mjs.map → EditConfigurationPage-W07CEdm2.mjs.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-DYDpe5Wi.js → EditViewPage-CqHMM0P0.js} +3 -3
  10. package/dist/_chunks/EditViewPage-CqHMM0P0.js.map +1 -0
  11. package/dist/_chunks/{EditViewPage-k8UcfVwt.mjs → EditViewPage-al5OO1NR.mjs} +3 -3
  12. package/dist/_chunks/EditViewPage-al5OO1NR.mjs.map +1 -0
  13. package/dist/_chunks/{Field-Crhugun2.js → Field-DSOUlTCm.js} +11 -7
  14. package/dist/_chunks/Field-DSOUlTCm.js.map +1 -0
  15. package/dist/_chunks/{Field-BLL5lknV.mjs → Field-EeG6NQ7x.mjs} +11 -7
  16. package/dist/_chunks/Field-EeG6NQ7x.mjs.map +1 -0
  17. package/dist/_chunks/{Form-UHu2eOuG.mjs → Form-BAo9ANb_.mjs} +3 -3
  18. package/dist/_chunks/Form-BAo9ANb_.mjs.map +1 -0
  19. package/dist/_chunks/{Form-DUU19g6M.js → Form-DAEfHKzm.js} +3 -3
  20. package/dist/_chunks/Form-DAEfHKzm.js.map +1 -0
  21. package/dist/_chunks/{History-CpxkZXS3.mjs → History-BpLIu67W.mjs} +24 -11
  22. package/dist/_chunks/History-BpLIu67W.mjs.map +1 -0
  23. package/dist/_chunks/{History-CyA8tvJZ.js → History-CTFvy6XH.js} +23 -10
  24. package/dist/_chunks/History-CTFvy6XH.js.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-pJV7aG2V.js → ListConfigurationPage-CDzlMBz_.js} +2 -2
  26. package/dist/_chunks/{ListConfigurationPage-pJV7aG2V.js.map → ListConfigurationPage-CDzlMBz_.js.map} +1 -1
  27. package/dist/_chunks/{ListConfigurationPage-OUwV8QF1.mjs → ListConfigurationPage-DOqj5f8Y.mjs} +2 -2
  28. package/dist/_chunks/{ListConfigurationPage-OUwV8QF1.mjs.map → ListConfigurationPage-DOqj5f8Y.mjs.map} +1 -1
  29. package/dist/_chunks/{ListViewPage-BOnhCGkE.mjs → ListViewPage-BbXYNI0v.mjs} +3 -3
  30. package/dist/_chunks/{ListViewPage-BOnhCGkE.mjs.map → ListViewPage-BbXYNI0v.mjs.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-BIT0M8VG.js → ListViewPage-D0fpPYKp.js} +3 -3
  32. package/dist/_chunks/{ListViewPage-BIT0M8VG.js.map → ListViewPage-D0fpPYKp.js.map} +1 -1
  33. package/dist/_chunks/{NoContentTypePage-uIBsBUmH.js → NoContentTypePage-DTzkSAV5.js} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-uIBsBUmH.js.map → NoContentTypePage-DTzkSAV5.js.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-CwjlHGTn.mjs → NoContentTypePage-w2Q0VVOT.mjs} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-CwjlHGTn.mjs.map → NoContentTypePage-w2Q0VVOT.mjs.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-C8wkEaOF.js → NoPermissionsPage-BoI2rU68.js} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-C8wkEaOF.js.map → NoPermissionsPage-BoI2rU68.js.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-CcWbyT_z.mjs → NoPermissionsPage-Km0Vk5Wp.mjs} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-CcWbyT_z.mjs.map → NoPermissionsPage-Km0Vk5Wp.mjs.map} +1 -1
  41. package/dist/_chunks/{Relations-wIdWJnA9.mjs → Relations-C_bpmSuQ.mjs} +22 -9
  42. package/dist/_chunks/Relations-C_bpmSuQ.mjs.map +1 -0
  43. package/dist/_chunks/{Relations-CwRu_eZv.js → Relations-D6Nz5ksc.js} +22 -9
  44. package/dist/_chunks/Relations-D6Nz5ksc.js.map +1 -0
  45. package/dist/_chunks/{index-BO-T2BdP.js → index-BsMu2oVP.js} +52 -25
  46. package/dist/_chunks/index-BsMu2oVP.js.map +1 -0
  47. package/dist/_chunks/{index-BQ8DxaCa.mjs → index-DcQ6xogO.mjs} +52 -26
  48. package/dist/_chunks/index-DcQ6xogO.mjs.map +1 -0
  49. package/dist/_chunks/{layout-BTB1_M8g.js → layout-B4aCAdTt.js} +3 -3
  50. package/dist/_chunks/{layout-BTB1_M8g.js.map → layout-B4aCAdTt.js.map} +1 -1
  51. package/dist/_chunks/{layout-N63eyE5E.mjs → layout-BavJ6v4B.mjs} +3 -3
  52. package/dist/_chunks/{layout-N63eyE5E.mjs.map → layout-BavJ6v4B.mjs.map} +1 -1
  53. package/dist/_chunks/{relations-Bh9r0CVE.mjs → relations-DMG453Od.mjs} +2 -2
  54. package/dist/_chunks/{relations-Bh9r0CVE.mjs.map → relations-DMG453Od.mjs.map} +1 -1
  55. package/dist/_chunks/{relations-C9AQuM2z.js → relations-Lrm9nz_m.js} +2 -2
  56. package/dist/_chunks/{relations-C9AQuM2z.js.map → relations-Lrm9nz_m.js.map} +1 -1
  57. package/dist/admin/index.js +1 -1
  58. package/dist/admin/index.mjs +1 -1
  59. package/dist/server/index.js +46 -15
  60. package/dist/server/index.js.map +1 -1
  61. package/dist/server/index.mjs +46 -15
  62. package/dist/server/index.mjs.map +1 -1
  63. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  64. package/dist/server/src/controllers/utils/metadata.d.ts +15 -1
  65. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  66. package/dist/server/src/history/services/history.d.ts.map +1 -1
  67. package/dist/server/src/index.d.ts +4 -4
  68. package/dist/server/src/services/document-metadata.d.ts +8 -8
  69. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  70. package/dist/server/src/services/index.d.ts +4 -4
  71. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  72. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  73. package/dist/server/src/utils/index.d.ts +2 -0
  74. package/dist/server/src/utils/index.d.ts.map +1 -1
  75. package/package.json +7 -7
  76. package/dist/_chunks/EditViewPage-DYDpe5Wi.js.map +0 -1
  77. package/dist/_chunks/EditViewPage-k8UcfVwt.mjs.map +0 -1
  78. package/dist/_chunks/Field-BLL5lknV.mjs.map +0 -1
  79. package/dist/_chunks/Field-Crhugun2.js.map +0 -1
  80. package/dist/_chunks/Form-DUU19g6M.js.map +0 -1
  81. package/dist/_chunks/Form-UHu2eOuG.mjs.map +0 -1
  82. package/dist/_chunks/History-CpxkZXS3.mjs.map +0 -1
  83. package/dist/_chunks/History-CyA8tvJZ.js.map +0 -1
  84. package/dist/_chunks/Relations-CwRu_eZv.js.map +0 -1
  85. package/dist/_chunks/Relations-wIdWJnA9.mjs.map +0 -1
  86. package/dist/_chunks/index-BO-T2BdP.js.map +0 -1
  87. package/dist/_chunks/index-BQ8DxaCa.mjs.map +0 -1
@@ -1,9 +1,10 @@
1
1
  import { More, Cross, WarningCircle, ListPlus, Pencil, Trash, Check, CrossCircle, CheckCircle, ArrowsCounterClockwise, ChevronRight, Duplicate, ClockCounterClockwise, Feather } from "@strapi/icons";
2
2
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
3
- import { useStrapiApp, createContext, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler, useQueryParams, getYupValidationErrors, useForm, useTracking, useGuidedTour, BackButton, DescriptionComponentRenderer, useTable, Table } from "@strapi/admin/strapi-admin";
3
+ import { useStrapiApp, createContext, useQueryParams, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler, getYupValidationErrors, useForm, useTracking, useGuidedTour, BackButton, DescriptionComponentRenderer, useTable, Table } from "@strapi/admin/strapi-admin";
4
4
  import * as React from "react";
5
5
  import { lazy } from "react";
6
6
  import { Button, Menu, VisuallyHidden, Flex, Typography, Dialog, Modal, Radio, Status, Box, SingleSelect, SingleSelectOption, IconButton, Loader, Tooltip, LinkButton } from "@strapi/design-system";
7
+ import mapValues from "lodash/fp/mapValues";
7
8
  import { useIntl } from "react-intl";
8
9
  import { useParams, useNavigate, Navigate, useMatch, useLocation, Link, NavLink } from "react-router-dom";
9
10
  import * as yup from "yup";
@@ -100,6 +101,7 @@ const DocumentRBAC = ({ children, permissions }) => {
100
101
  if (!slug) {
101
102
  throw new Error("Cannot find the slug param in the URL");
102
103
  }
104
+ const [{ rawQuery }] = useQueryParams();
103
105
  const userPermissions = useAuth("DocumentRBAC", (state) => state.permissions);
104
106
  const contentTypePermissions = React.useMemo(() => {
105
107
  const contentTypePermissions2 = userPermissions.filter(
@@ -110,7 +112,14 @@ const DocumentRBAC = ({ children, permissions }) => {
110
112
  return { ...acc, [action]: [permission] };
111
113
  }, {});
112
114
  }, [slug, userPermissions]);
113
- const { isLoading, allowedActions } = useRBAC(contentTypePermissions, permissions ?? void 0);
115
+ const { isLoading, allowedActions } = useRBAC(
116
+ contentTypePermissions,
117
+ permissions ?? void 0,
118
+ // TODO: useRBAC context should be typed and built differently
119
+ // We are passing raw query as context to the hook so that it can
120
+ // rely on the locale provided from DocumentRBAC for its permission calculations.
121
+ rawQuery
122
+ );
114
123
  const canCreateFields = !isLoading && allowedActions.canCreate ? extractAndDedupeFields(contentTypePermissions.create) : [];
115
124
  const canReadFields = !isLoading && allowedActions.canRead ? extractAndDedupeFields(contentTypePermissions.read) : [];
116
125
  const canUpdateFields = !isLoading && allowedActions.canUpdate ? extractAndDedupeFields(contentTypePermissions.update) : [];
@@ -461,12 +470,15 @@ const buildValidParams = (query) => {
461
470
  const isBaseQueryError = (error) => {
462
471
  return error.name !== void 0;
463
472
  };
464
- const arrayValidator = (options) => ({
473
+ const arrayValidator = (attribute, options) => ({
465
474
  message: translatedErrors.required,
466
475
  test(value) {
467
476
  if (options.status === "draft") {
468
477
  return true;
469
478
  }
479
+ if (!attribute.required) {
480
+ return true;
481
+ }
470
482
  if (!value) {
471
483
  return false;
472
484
  }
@@ -500,7 +512,7 @@ const createYupSchema = (attributes = {}, components = {}, options = { status: n
500
512
  ...acc,
501
513
  [name]: transformSchema(
502
514
  yup.array().of(createModelSchema(attributes3).nullable(false))
503
- ).test(arrayValidator(options))
515
+ ).test(arrayValidator(attribute, options))
504
516
  };
505
517
  } else {
506
518
  return {
@@ -527,7 +539,7 @@ const createYupSchema = (attributes = {}, components = {}, options = { status: n
527
539
  }
528
540
  )
529
541
  )
530
- ).test(arrayValidator(options))
542
+ ).test(arrayValidator(attribute, options))
531
543
  };
532
544
  case "relation":
533
545
  return {
@@ -1163,16 +1175,18 @@ const useDoc = () => {
1163
1175
  if (!slug) {
1164
1176
  throw new Error("Could not find model in url params");
1165
1177
  }
1178
+ const document = useDocument(
1179
+ { documentId: origin || id, model: slug, collectionType, params },
1180
+ {
1181
+ skip: id === "create" || !origin && !id && collectionType !== SINGLE_TYPES
1182
+ }
1183
+ );
1184
+ const returnId = origin || id === "create" ? void 0 : id;
1166
1185
  return {
1167
1186
  collectionType,
1168
1187
  model: slug,
1169
- id: origin || id === "create" ? void 0 : id,
1170
- ...useDocument(
1171
- { documentId: origin || id, model: slug, collectionType, params },
1172
- {
1173
- skip: id === "create" || !origin && !id && collectionType !== SINGLE_TYPES
1174
- }
1175
- )
1188
+ id: returnId,
1189
+ ...document
1176
1190
  };
1177
1191
  };
1178
1192
  const useContentManagerContext = () => {
@@ -1652,7 +1666,7 @@ const useDocumentActions = () => {
1652
1666
  };
1653
1667
  };
1654
1668
  const ProtectedHistoryPage = lazy(
1655
- () => import("./History-CpxkZXS3.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1669
+ () => import("./History-BpLIu67W.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1656
1670
  );
1657
1671
  const routes$1 = [
1658
1672
  {
@@ -1665,31 +1679,31 @@ const routes$1 = [
1665
1679
  }
1666
1680
  ];
1667
1681
  const ProtectedEditViewPage = lazy(
1668
- () => import("./EditViewPage-k8UcfVwt.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1682
+ () => import("./EditViewPage-al5OO1NR.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1669
1683
  );
1670
1684
  const ProtectedListViewPage = lazy(
1671
- () => import("./ListViewPage-BOnhCGkE.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1685
+ () => import("./ListViewPage-BbXYNI0v.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1672
1686
  );
1673
1687
  const ProtectedListConfiguration = lazy(
1674
- () => import("./ListConfigurationPage-OUwV8QF1.mjs").then((mod) => ({
1688
+ () => import("./ListConfigurationPage-DOqj5f8Y.mjs").then((mod) => ({
1675
1689
  default: mod.ProtectedListConfiguration
1676
1690
  }))
1677
1691
  );
1678
1692
  const ProtectedEditConfigurationPage = lazy(
1679
- () => import("./EditConfigurationPage-C9yiwgI_.mjs").then((mod) => ({
1693
+ () => import("./EditConfigurationPage-W07CEdm2.mjs").then((mod) => ({
1680
1694
  default: mod.ProtectedEditConfigurationPage
1681
1695
  }))
1682
1696
  );
1683
1697
  const ProtectedComponentConfigurationPage = lazy(
1684
- () => import("./ComponentConfigurationPage-D1YuKq8j.mjs").then((mod) => ({
1698
+ () => import("./ComponentConfigurationPage-jmWwucg_.mjs").then((mod) => ({
1685
1699
  default: mod.ProtectedComponentConfigurationPage
1686
1700
  }))
1687
1701
  );
1688
1702
  const NoPermissions = lazy(
1689
- () => import("./NoPermissionsPage-CcWbyT_z.mjs").then((mod) => ({ default: mod.NoPermissions }))
1703
+ () => import("./NoPermissionsPage-Km0Vk5Wp.mjs").then((mod) => ({ default: mod.NoPermissions }))
1690
1704
  );
1691
1705
  const NoContentType = lazy(
1692
- () => import("./NoContentTypePage-CwjlHGTn.mjs").then((mod) => ({ default: mod.NoContentType }))
1706
+ () => import("./NoContentTypePage-w2Q0VVOT.mjs").then((mod) => ({ default: mod.NoContentType }))
1693
1707
  );
1694
1708
  const CollectionTypePages = () => {
1695
1709
  const { collectionType } = useParams();
@@ -2043,6 +2057,18 @@ const DocumentActionModal = ({
2043
2057
  typeof Footer === "function" ? /* @__PURE__ */ jsx(Footer, { onClose: handleClose }) : Footer
2044
2058
  ] }) });
2045
2059
  };
2060
+ const transformData = (data) => {
2061
+ if (Array.isArray(data)) {
2062
+ return data.map(transformData);
2063
+ }
2064
+ if (typeof data === "object" && data !== null) {
2065
+ if ("apiData" in data) {
2066
+ return data.apiData;
2067
+ }
2068
+ return mapValues(transformData)(data);
2069
+ }
2070
+ return data;
2071
+ };
2046
2072
  const PublishAction$1 = ({
2047
2073
  activeTab,
2048
2074
  documentId,
@@ -2156,7 +2182,7 @@ const PublishAction$1 = ({
2156
2182
  documentId,
2157
2183
  params
2158
2184
  },
2159
- formValues
2185
+ transformData(formValues)
2160
2186
  );
2161
2187
  if ("data" in res && collectionType !== SINGLE_TYPES) {
2162
2188
  navigate({
@@ -2272,7 +2298,7 @@ const UpdateAction = ({
2272
2298
  documentId: cloneMatch.params.origin,
2273
2299
  params
2274
2300
  },
2275
- document
2301
+ transformData(document)
2276
2302
  );
2277
2303
  if ("data" in res) {
2278
2304
  navigate(
@@ -2293,7 +2319,7 @@ const UpdateAction = ({
2293
2319
  documentId,
2294
2320
  params
2295
2321
  },
2296
- document
2322
+ transformData(document)
2297
2323
  );
2298
2324
  if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
2299
2325
  setErrors(formatValidationErrors(res.error));
@@ -2306,7 +2332,7 @@ const UpdateAction = ({
2306
2332
  model,
2307
2333
  params
2308
2334
  },
2309
- document
2335
+ transformData(document)
2310
2336
  );
2311
2337
  if ("data" in res && collectionType !== SINGLE_TYPES) {
2312
2338
  navigate(
@@ -3996,7 +4022,7 @@ const index = {
3996
4022
  app.router.addRoute({
3997
4023
  path: "content-manager/*",
3998
4024
  lazy: async () => {
3999
- const { Layout } = await import("./layout-N63eyE5E.mjs");
4025
+ const { Layout } = await import("./layout-BavJ6v4B.mjs");
4000
4026
  return {
4001
4027
  Component: Layout
4002
4028
  };
@@ -4074,4 +4100,4 @@ export {
4074
4100
  capitalise as y,
4075
4101
  useUpdateContentTypeConfigurationMutation as z
4076
4102
  };
4077
- //# sourceMappingURL=index-BQ8DxaCa.mjs.map
4103
+ //# sourceMappingURL=index-DcQ6xogO.mjs.map