@strapi/content-manager 0.0.0-next.8f63e1055db761e0213cb6610f80c55658196ae1 → 0.0.0-next.926e9af9369b89a571145e3c8fa1ce6bfd6cc0ab

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 (160) 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-Cmm0LJof.js → ComponentConfigurationPage-DMxUlNOo.js} +4 -5
  4. package/dist/_chunks/{ComponentConfigurationPage-Cmm0LJof.js.map → ComponentConfigurationPage-DMxUlNOo.js.map} +1 -1
  5. package/dist/_chunks/{ComponentConfigurationPage-FQd019My.mjs → ComponentConfigurationPage-baEkO-OV.mjs} +3 -3
  6. package/dist/_chunks/{ComponentConfigurationPage-FQd019My.mjs.map → ComponentConfigurationPage-baEkO-OV.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-CseHna9y.js → EditConfigurationPage-CXxV7mKn.js} +4 -5
  11. package/dist/_chunks/{EditConfigurationPage-CseHna9y.js.map → EditConfigurationPage-CXxV7mKn.js.map} +1 -1
  12. package/dist/_chunks/{EditConfigurationPage-BUJqRuRq.mjs → EditConfigurationPage-YR8-4VCS.mjs} +3 -3
  13. package/dist/_chunks/{EditConfigurationPage-BUJqRuRq.mjs.map → EditConfigurationPage-YR8-4VCS.mjs.map} +1 -1
  14. package/dist/_chunks/{EditViewPage-BhjvFXZr.js → EditViewPage-BfR6jAR6.js} +22 -78
  15. package/dist/_chunks/EditViewPage-BfR6jAR6.js.map +1 -0
  16. package/dist/_chunks/{EditViewPage-BB9VeS-u.mjs → EditViewPage-DFF7c27p.mjs} +19 -74
  17. package/dist/_chunks/EditViewPage-DFF7c27p.mjs.map +1 -0
  18. package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +1 -1
  19. package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +1 -1
  20. package/dist/_chunks/{Form-DH5m7r5s.js → Form-CjcMRP5A.js} +5 -6
  21. package/dist/_chunks/{Form-DH5m7r5s.js.map → Form-CjcMRP5A.js.map} +1 -1
  22. package/dist/_chunks/{Form-B5b7zgoL.mjs → Form-MSOSfGGN.mjs} +3 -3
  23. package/dist/_chunks/{Form-B5b7zgoL.mjs.map → Form-MSOSfGGN.mjs.map} +1 -1
  24. package/dist/_chunks/{History-CNO4Db6U.js → History-BgZ7gVuF.js} +48 -72
  25. package/dist/_chunks/History-BgZ7gVuF.js.map +1 -0
  26. package/dist/_chunks/{History-Dhy0xF0L.mjs → History-WOQNVho-.mjs} +37 -60
  27. package/dist/_chunks/History-WOQNVho-.mjs.map +1 -0
  28. package/dist/_chunks/{Field-CWi7XMCa.mjs → Input-BkKwZ6Qt.mjs} +1245 -1243
  29. package/dist/_chunks/Input-BkKwZ6Qt.mjs.map +1 -0
  30. package/dist/_chunks/{Field-B03STsf9.js → Input-BwOibhc3.js} +1331 -1329
  31. package/dist/_chunks/Input-BwOibhc3.js.map +1 -0
  32. package/dist/_chunks/{ListConfigurationPage-C_FCilGf.mjs → ListConfigurationPage-BeXfr6uW.mjs} +6 -5
  33. package/dist/_chunks/ListConfigurationPage-BeXfr6uW.mjs.map +1 -0
  34. package/dist/_chunks/{ListConfigurationPage-DE7NESsr.js → ListConfigurationPage-DnJ3nbwL.js} +6 -6
  35. package/dist/_chunks/ListConfigurationPage-DnJ3nbwL.js.map +1 -0
  36. package/dist/_chunks/{ListViewPage-C7p0PteR.js → ListViewPage-CJFDudKl.js} +61 -58
  37. package/dist/_chunks/ListViewPage-CJFDudKl.js.map +1 -0
  38. package/dist/_chunks/{ListViewPage-B6Ut2BH0.mjs → ListViewPage-VK2v44Q1.mjs} +55 -51
  39. package/dist/_chunks/ListViewPage-VK2v44Q1.mjs.map +1 -0
  40. package/dist/_chunks/{NoContentTypePage-rR7QwWP5.mjs → NoContentTypePage-T8ttty6K.mjs} +2 -2
  41. package/dist/_chunks/{NoContentTypePage-rR7QwWP5.mjs.map → NoContentTypePage-T8ttty6K.mjs.map} +1 -1
  42. package/dist/_chunks/{NoContentTypePage-BN-8niig.js → NoContentTypePage-en2PwWgI.js} +2 -2
  43. package/dist/_chunks/{NoContentTypePage-BN-8niig.js.map → NoContentTypePage-en2PwWgI.js.map} +1 -1
  44. package/dist/_chunks/{NoPermissionsPage-Bw3b0OQm.js → NoPermissionsPage-CcjILry3.js} +2 -2
  45. package/dist/_chunks/{NoPermissionsPage-Bw3b0OQm.js.map → NoPermissionsPage-CcjILry3.js.map} +1 -1
  46. package/dist/_chunks/{NoPermissionsPage-CGUgxmce.mjs → NoPermissionsPage-CokBHhhy.mjs} +2 -2
  47. package/dist/_chunks/{NoPermissionsPage-CGUgxmce.mjs.map → NoPermissionsPage-CokBHhhy.mjs.map} +1 -1
  48. package/dist/_chunks/{Preview-_gomrUna.mjs → Preview-BF81YhRj.mjs} +75 -76
  49. package/dist/_chunks/Preview-BF81YhRj.mjs.map +1 -0
  50. package/dist/_chunks/{Preview-CICG4cRf.js → Preview-DgzAuzWQ.js} +74 -76
  51. package/dist/_chunks/Preview-DgzAuzWQ.js.map +1 -0
  52. package/dist/_chunks/{Relations-uyLoal2t.js → Relations-1O-JcM4t.js} +7 -10
  53. package/dist/_chunks/{Relations-uyLoal2t.js.map → Relations-1O-JcM4t.js.map} +1 -1
  54. package/dist/_chunks/{Relations-BEvinUkU.mjs → Relations-BncdhGCd.mjs} +6 -8
  55. package/dist/_chunks/{Relations-BEvinUkU.mjs.map → Relations-BncdhGCd.mjs.map} +1 -1
  56. package/dist/_chunks/{en-D_BMf0hT.mjs → en-BZaUty0m.mjs} +12 -3
  57. package/dist/_chunks/{en-D_BMf0hT.mjs.map → en-BZaUty0m.mjs.map} +1 -1
  58. package/dist/_chunks/{en-CHOp_xJv.js → en-CzCnBk4S.js} +12 -3
  59. package/dist/_chunks/{en-CHOp_xJv.js.map → en-CzCnBk4S.js.map} +1 -1
  60. package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
  61. package/dist/_chunks/{index-BagcPV6I.mjs → index-DiluOUp6.mjs} +462 -226
  62. package/dist/_chunks/index-DiluOUp6.mjs.map +1 -0
  63. package/dist/_chunks/{index-D_AvCmmG.js → index-EXJvmn4t.js} +445 -210
  64. package/dist/_chunks/index-EXJvmn4t.js.map +1 -0
  65. package/dist/_chunks/{layout-Dk0odfYR.js → layout-4TbKVax8.js} +5 -6
  66. package/dist/_chunks/{layout-Dk0odfYR.js.map → layout-4TbKVax8.js.map} +1 -1
  67. package/dist/_chunks/{layout-DKEX3X49.mjs → layout-mSwsYzxv.mjs} +4 -4
  68. package/dist/_chunks/{layout-DKEX3X49.mjs.map → layout-mSwsYzxv.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-DDoMdwk6.mjs → relations--YOvQBqv.mjs} +2 -2
  72. package/dist/_chunks/{relations-DDoMdwk6.mjs.map → relations--YOvQBqv.mjs.map} +1 -1
  73. package/dist/_chunks/{relations-C312DwGU.js → relations-Ai6Izh7h.js} +2 -2
  74. package/dist/_chunks/{relations-C312DwGU.js.map → relations-Ai6Izh7h.js.map} +1 -1
  75. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
  76. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
  77. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
  78. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
  79. package/dist/_chunks/{useDebounce-DmuSJIF3.mjs → usePrev-CZGy2Vjf.mjs} +11 -11
  80. package/dist/_chunks/usePrev-CZGy2Vjf.mjs.map +1 -0
  81. package/dist/_chunks/{useDebounce-CtcjDB3L.js → usePrev-D5J_2fEu.js} +8 -8
  82. package/dist/_chunks/usePrev-D5J_2fEu.js.map +1 -0
  83. package/dist/admin/index.js +2 -1
  84. package/dist/admin/index.js.map +1 -1
  85. package/dist/admin/index.mjs +6 -5
  86. package/dist/admin/src/content-manager.d.ts +3 -2
  87. package/dist/admin/src/exports.d.ts +1 -0
  88. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  89. package/dist/admin/src/hooks/useDocument.d.ts +19 -2
  90. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
  91. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +3 -3
  92. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
  93. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
  94. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
  95. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +4 -1
  96. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +4 -1
  97. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +27 -0
  98. package/dist/admin/src/pages/EditView/utils/data.d.ts +1 -0
  99. package/dist/admin/src/preview/pages/Preview.d.ts +1 -1
  100. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  101. package/dist/admin/src/router.d.ts +1 -1
  102. package/dist/admin/src/services/api.d.ts +1 -1
  103. package/dist/admin/src/services/components.d.ts +2 -2
  104. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  105. package/dist/admin/src/services/documents.d.ts +16 -19
  106. package/dist/admin/src/services/init.d.ts +1 -1
  107. package/dist/admin/src/services/relations.d.ts +2 -2
  108. package/dist/admin/src/services/uid.d.ts +3 -3
  109. package/dist/server/index.js +230 -187
  110. package/dist/server/index.js.map +1 -1
  111. package/dist/server/index.mjs +231 -187
  112. package/dist/server/index.mjs.map +1 -1
  113. package/dist/server/src/controllers/utils/metadata.d.ts +1 -0
  114. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  115. package/dist/server/src/history/controllers/history-version.d.ts +1 -1
  116. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  117. package/dist/server/src/history/services/history.d.ts +3 -3
  118. package/dist/server/src/history/services/history.d.ts.map +1 -1
  119. package/dist/server/src/history/services/utils.d.ts +6 -10
  120. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  121. package/dist/server/src/index.d.ts +3 -2
  122. package/dist/server/src/index.d.ts.map +1 -1
  123. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -1
  124. package/dist/server/src/preview/index.d.ts.map +1 -1
  125. package/dist/server/src/preview/services/index.d.ts +1 -0
  126. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  127. package/dist/server/src/preview/services/preview-config.d.ts +2 -0
  128. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  129. package/dist/server/src/preview/utils.d.ts +1 -0
  130. package/dist/server/src/preview/utils.d.ts.map +1 -1
  131. package/dist/server/src/register.d.ts.map +1 -1
  132. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  133. package/dist/server/src/services/document-metadata.d.ts +4 -2
  134. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  135. package/dist/server/src/services/index.d.ts +3 -2
  136. package/dist/server/src/services/index.d.ts.map +1 -1
  137. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  138. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  139. package/dist/server/src/services/utils/populate.d.ts +2 -2
  140. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  141. package/package.json +12 -11
  142. package/dist/_chunks/EditViewPage-BB9VeS-u.mjs.map +0 -1
  143. package/dist/_chunks/EditViewPage-BhjvFXZr.js.map +0 -1
  144. package/dist/_chunks/Field-B03STsf9.js.map +0 -1
  145. package/dist/_chunks/Field-CWi7XMCa.mjs.map +0 -1
  146. package/dist/_chunks/History-CNO4Db6U.js.map +0 -1
  147. package/dist/_chunks/History-Dhy0xF0L.mjs.map +0 -1
  148. package/dist/_chunks/ListConfigurationPage-C_FCilGf.mjs.map +0 -1
  149. package/dist/_chunks/ListConfigurationPage-DE7NESsr.js.map +0 -1
  150. package/dist/_chunks/ListViewPage-B6Ut2BH0.mjs.map +0 -1
  151. package/dist/_chunks/ListViewPage-C7p0PteR.js.map +0 -1
  152. package/dist/_chunks/Preview-CICG4cRf.js.map +0 -1
  153. package/dist/_chunks/Preview-_gomrUna.mjs.map +0 -1
  154. package/dist/_chunks/index-BagcPV6I.mjs.map +0 -1
  155. package/dist/_chunks/index-D_AvCmmG.js.map +0 -1
  156. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +0 -1
  157. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +0 -1
  158. package/dist/admin/src/preview/constants.d.ts +0 -1
  159. package/dist/server/src/preview/constants.d.ts +0 -2
  160. package/dist/server/src/preview/constants.d.ts.map +0 -1
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const React = require("react");
5
4
  const strapiAdmin = require("@strapi/admin/strapi-admin");
6
5
  const designSystem = require("@strapi/design-system");
7
6
  const reactIntl = require("react-intl");
8
7
  const reactRouterDom = require("react-router-dom");
9
8
  const styledComponents = require("styled-components");
10
- const index = require("./index-D_AvCmmG.js");
11
- const Field = require("./Field-B03STsf9.js");
9
+ const index = require("./index-EXJvmn4t.js");
10
+ const Input = require("./Input-BwOibhc3.js");
11
+ const React = require("react");
12
12
  function _interopNamespace(e) {
13
- if (e && e.__esModule)
14
- return e;
13
+ if (e && e.__esModule) return e;
15
14
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
16
15
  if (e) {
17
16
  for (const k in e) {
@@ -30,59 +29,6 @@ function _interopNamespace(e) {
30
29
  const React__namespace = /* @__PURE__ */ _interopNamespace(React);
31
30
  const useOnce = (effect) => React__namespace.useEffect(effect, emptyDeps);
32
31
  const emptyDeps = [];
33
- const FormLayout = ({ layout }) => {
34
- const { formatMessage } = reactIntl.useIntl();
35
- const { model } = index.useDoc();
36
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((panel, index2) => {
37
- if (panel.some((row) => row.some((field) => field.type === "dynamiczone"))) {
38
- const [row] = panel;
39
- const [field] = row;
40
- const fieldWithTranslatedLabel = {
41
- ...field,
42
- label: formatMessage({
43
- id: `content-manager.content-types.${model}.${field.name}`,
44
- defaultMessage: field.label
45
- })
46
- };
47
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, s: 12, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(Field.MemoizedInputRenderer, { ...fieldWithTranslatedLabel }) }) }, field.name);
48
- }
49
- return /* @__PURE__ */ jsxRuntime.jsx(
50
- designSystem.Box,
51
- {
52
- hasRadius: true,
53
- background: "neutral0",
54
- shadow: "tableShadow",
55
- paddingLeft: 6,
56
- paddingRight: 6,
57
- paddingTop: 6,
58
- paddingBottom: 6,
59
- borderColor: "neutral150",
60
- children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: panel.map((row, gridRowIndex) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
61
- const fieldWithTranslatedLabel = {
62
- ...field,
63
- label: formatMessage({
64
- id: `content-manager.content-types.${model}.${field.name}`,
65
- defaultMessage: field.label
66
- })
67
- };
68
- return /* @__PURE__ */ jsxRuntime.jsx(
69
- designSystem.Grid.Item,
70
- {
71
- col: size,
72
- s: 12,
73
- xs: 12,
74
- direction: "column",
75
- alignItems: "stretch",
76
- children: /* @__PURE__ */ jsxRuntime.jsx(Field.MemoizedInputRenderer, { ...fieldWithTranslatedLabel })
77
- },
78
- field.name
79
- );
80
- }) }, gridRowIndex)) })
81
- },
82
- index2
83
- );
84
- }) });
85
- };
86
32
  const EditViewPage = () => {
87
33
  const location = reactRouterDom.useLocation();
88
34
  const [
@@ -104,7 +50,9 @@ const EditViewPage = () => {
104
50
  collectionType,
105
51
  id,
106
52
  model,
107
- hasError
53
+ hasError,
54
+ getTitle,
55
+ getInitialFormValues
108
56
  } = index.useDoc();
109
57
  const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;
110
58
  useOnce(() => {
@@ -126,15 +74,9 @@ const EditViewPage = () => {
126
74
  settings: { mainField }
127
75
  }
128
76
  } = index.useDocumentLayout(model);
129
- const { isLazyLoading } = Field.useLazyComponents([]);
77
+ const { isLazyLoading } = Input.useLazyComponents([]);
130
78
  const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;
131
- const initialValues = React__namespace.useMemo(() => {
132
- if (!document && !isCreatingDocument && !isSingleType || !schema) {
133
- return void 0;
134
- }
135
- const form = document?.id ? document : Field.createDefaultForm(schema, components);
136
- return Field.transformDocument(schema, components)(form);
137
- }, [document, isCreatingDocument, isSingleType, schema, components]);
79
+ const initialValues = getInitialFormValues(isCreatingDocument);
138
80
  if (hasError) {
139
81
  return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Error, {});
140
82
  }
@@ -149,14 +91,15 @@ const EditViewPage = () => {
149
91
  setQuery({ status: status2 }, "push", true);
150
92
  }
151
93
  };
152
- let documentTitle = "Untitled";
153
- if (mainField !== "id" && document?.[mainField]) {
154
- documentTitle = document[mainField];
155
- } else if (isSingleType && schema?.info.displayName) {
156
- documentTitle = schema.info.displayName;
157
- }
94
+ const validateSync = (values, options) => {
95
+ const yupSchema = index.createYupSchema(schema?.attributes, components, {
96
+ status,
97
+ ...options
98
+ });
99
+ return yupSchema.validateSync(values, { abortEarly: false });
100
+ };
158
101
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { paddingLeft: 10, paddingRight: 10, children: [
159
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Title, { children: documentTitle }),
102
+ /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Title, { children: getTitle(mainField) }),
160
103
  /* @__PURE__ */ jsxRuntime.jsx(
161
104
  strapiAdmin.Form,
162
105
  {
@@ -170,13 +113,14 @@ const EditViewPage = () => {
170
113
  });
171
114
  return yupSchema.validate(values, { abortEarly: false });
172
115
  },
116
+ initialErrors: location?.state?.forceValidation ? validateSync(initialValues, {}) : {},
173
117
  children: ({ resetForm }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
174
118
  /* @__PURE__ */ jsxRuntime.jsx(
175
119
  index.Header,
176
120
  {
177
121
  isCreating: isCreatingDocument,
178
122
  status: hasDraftAndPublished ? getDocumentStatus(document, meta) : void 0,
179
- title: documentTitle
123
+ title: getTitle(mainField)
180
124
  }
181
125
  ),
182
126
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.Root, { variant: "simple", value: status, onValueChange: handleTabChange, children: [
@@ -208,8 +152,8 @@ const EditViewPage = () => {
208
152
  ),
209
153
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { paddingTop: 8, gap: 4, children: [
210
154
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Item, { col: 9, s: 12, direction: "column", alignItems: "stretch", children: [
211
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "draft", children: /* @__PURE__ */ jsxRuntime.jsx(FormLayout, { layout }) }),
212
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "published", children: /* @__PURE__ */ jsxRuntime.jsx(FormLayout, { layout }) })
155
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "draft", children: /* @__PURE__ */ jsxRuntime.jsx(Input.FormLayout, { layout }) }),
156
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "published", children: /* @__PURE__ */ jsxRuntime.jsx(Input.FormLayout, { layout }) })
213
157
  ] }),
214
158
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, s: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(index.Panels, {}) })
215
159
  ] })
@@ -262,4 +206,4 @@ const ProtectedEditViewPage = () => {
262
206
  exports.EditViewPage = EditViewPage;
263
207
  exports.ProtectedEditViewPage = ProtectedEditViewPage;
264
208
  exports.getDocumentStatus = getDocumentStatus;
265
- //# sourceMappingURL=EditViewPage-BhjvFXZr.js.map
209
+ //# sourceMappingURL=EditViewPage-BfR6jAR6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditViewPage-BfR6jAR6.js","sources":["../../admin/src/hooks/useOnce.ts","../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\nexport const useOnce = (effect: React.EffectCallback) => React.useEffect(effect, emptyDeps);\n\nconst emptyDeps: React.DependencyList = [];\n","import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useRBAC,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDoc } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\nimport { transformDocument } from './utils/data';\nimport { createDefaultForm } from './utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = useDoc();\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (hasError) {\n return <Page.Error />;\n }\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{getTitle(mainField)}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n {({ resetForm }) => (\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={getTitle(mainField)}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <Blocker\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n onProceed={resetForm}\n />\n </>\n )}\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["React","useLocation","useQueryParams","useIntl","useNotification","useDoc","useDocumentRBAC","SINGLE_TYPES","useDocumentLayout","useLazyComponents","jsx","Page","status","createYupSchema","jsxs","Main","Form","Fragment","Header","Tabs","getTranslation","Grid","FormLayout","Panels","Blocker","styled","useParams","useRBAC","PERMISSIONS","permissions","DocumentRBAC"],"mappings":"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"}
@@ -1,67 +1,14 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import * as React from "react";
3
2
  import { useQueryParams, useNotification, Page, Form, Blocker, useRBAC } from "@strapi/admin/strapi-admin";
4
- import { Flex, Grid, Box, Main, Tabs } from "@strapi/design-system";
3
+ import { Main, Tabs, Grid } from "@strapi/design-system";
5
4
  import { useIntl } from "react-intl";
6
5
  import { useLocation, useParams } from "react-router-dom";
7
6
  import { styled } from "styled-components";
8
- import { c as useDoc, f as useDocumentRBAC, h as useDocumentLayout, i as createYupSchema, j as Header, g as getTranslation, P as Panels, k as PERMISSIONS, l as DocumentRBAC, S as SINGLE_TYPES } from "./index-BagcPV6I.mjs";
9
- import { M as MemoizedInputRenderer, u as useLazyComponents, c as createDefaultForm, t as transformDocument } from "./Field-CWi7XMCa.mjs";
7
+ import { c as useDoc, f as useDocumentRBAC, h as useDocumentLayout, i as createYupSchema, j as Header, g as getTranslation, P as Panels, k as PERMISSIONS, l as DocumentRBAC, S as SINGLE_TYPES } from "./index-DiluOUp6.mjs";
8
+ import { u as useLazyComponents, F as FormLayout } from "./Input-BkKwZ6Qt.mjs";
9
+ import * as React from "react";
10
10
  const useOnce = (effect) => React.useEffect(effect, emptyDeps);
11
11
  const emptyDeps = [];
12
- const FormLayout = ({ layout }) => {
13
- const { formatMessage } = useIntl();
14
- const { model } = useDoc();
15
- return /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((panel, index) => {
16
- if (panel.some((row) => row.some((field) => field.type === "dynamiczone"))) {
17
- const [row] = panel;
18
- const [field] = row;
19
- const fieldWithTranslatedLabel = {
20
- ...field,
21
- label: formatMessage({
22
- id: `content-manager.content-types.${model}.${field.name}`,
23
- defaultMessage: field.label
24
- })
25
- };
26
- return /* @__PURE__ */ jsx(Grid.Root, { gap: 4, children: /* @__PURE__ */ jsx(Grid.Item, { col: 12, s: 12, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...fieldWithTranslatedLabel }) }) }, field.name);
27
- }
28
- return /* @__PURE__ */ jsx(
29
- Box,
30
- {
31
- hasRadius: true,
32
- background: "neutral0",
33
- shadow: "tableShadow",
34
- paddingLeft: 6,
35
- paddingRight: 6,
36
- paddingTop: 6,
37
- paddingBottom: 6,
38
- borderColor: "neutral150",
39
- children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: panel.map((row, gridRowIndex) => /* @__PURE__ */ jsx(Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
40
- const fieldWithTranslatedLabel = {
41
- ...field,
42
- label: formatMessage({
43
- id: `content-manager.content-types.${model}.${field.name}`,
44
- defaultMessage: field.label
45
- })
46
- };
47
- return /* @__PURE__ */ jsx(
48
- Grid.Item,
49
- {
50
- col: size,
51
- s: 12,
52
- xs: 12,
53
- direction: "column",
54
- alignItems: "stretch",
55
- children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...fieldWithTranslatedLabel })
56
- },
57
- field.name
58
- );
59
- }) }, gridRowIndex)) })
60
- },
61
- index
62
- );
63
- }) });
64
- };
65
12
  const EditViewPage = () => {
66
13
  const location = useLocation();
67
14
  const [
@@ -83,7 +30,9 @@ const EditViewPage = () => {
83
30
  collectionType,
84
31
  id,
85
32
  model,
86
- hasError
33
+ hasError,
34
+ getTitle,
35
+ getInitialFormValues
87
36
  } = useDoc();
88
37
  const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;
89
38
  useOnce(() => {
@@ -107,13 +56,7 @@ const EditViewPage = () => {
107
56
  } = useDocumentLayout(model);
108
57
  const { isLazyLoading } = useLazyComponents([]);
109
58
  const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;
110
- const initialValues = React.useMemo(() => {
111
- if (!document && !isCreatingDocument && !isSingleType || !schema) {
112
- return void 0;
113
- }
114
- const form = document?.id ? document : createDefaultForm(schema, components);
115
- return transformDocument(schema, components)(form);
116
- }, [document, isCreatingDocument, isSingleType, schema, components]);
59
+ const initialValues = getInitialFormValues(isCreatingDocument);
117
60
  if (hasError) {
118
61
  return /* @__PURE__ */ jsx(Page.Error, {});
119
62
  }
@@ -128,14 +71,15 @@ const EditViewPage = () => {
128
71
  setQuery({ status: status2 }, "push", true);
129
72
  }
130
73
  };
131
- let documentTitle = "Untitled";
132
- if (mainField !== "id" && document?.[mainField]) {
133
- documentTitle = document[mainField];
134
- } else if (isSingleType && schema?.info.displayName) {
135
- documentTitle = schema.info.displayName;
136
- }
74
+ const validateSync = (values, options) => {
75
+ const yupSchema = createYupSchema(schema?.attributes, components, {
76
+ status,
77
+ ...options
78
+ });
79
+ return yupSchema.validateSync(values, { abortEarly: false });
80
+ };
137
81
  return /* @__PURE__ */ jsxs(Main, { paddingLeft: 10, paddingRight: 10, children: [
138
- /* @__PURE__ */ jsx(Page.Title, { children: documentTitle }),
82
+ /* @__PURE__ */ jsx(Page.Title, { children: getTitle(mainField) }),
139
83
  /* @__PURE__ */ jsx(
140
84
  Form,
141
85
  {
@@ -149,13 +93,14 @@ const EditViewPage = () => {
149
93
  });
150
94
  return yupSchema.validate(values, { abortEarly: false });
151
95
  },
96
+ initialErrors: location?.state?.forceValidation ? validateSync(initialValues, {}) : {},
152
97
  children: ({ resetForm }) => /* @__PURE__ */ jsxs(Fragment, { children: [
153
98
  /* @__PURE__ */ jsx(
154
99
  Header,
155
100
  {
156
101
  isCreating: isCreatingDocument,
157
102
  status: hasDraftAndPublished ? getDocumentStatus(document, meta) : void 0,
158
- title: documentTitle
103
+ title: getTitle(mainField)
159
104
  }
160
105
  ),
161
106
  /* @__PURE__ */ jsxs(Tabs.Root, { variant: "simple", value: status, onValueChange: handleTabChange, children: [
@@ -243,4 +188,4 @@ export {
243
188
  ProtectedEditViewPage,
244
189
  getDocumentStatus
245
190
  };
246
- //# sourceMappingURL=EditViewPage-BB9VeS-u.mjs.map
191
+ //# sourceMappingURL=EditViewPage-DFF7c27p.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditViewPage-DFF7c27p.mjs","sources":["../../admin/src/hooks/useOnce.ts","../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\nexport const useOnce = (effect: React.EffectCallback) => React.useEffect(effect, emptyDeps);\n\nconst emptyDeps: React.DependencyList = [];\n","import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useRBAC,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDoc } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\nimport { transformDocument } from './utils/data';\nimport { createDefaultForm } from './utils/forms';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = useDoc();\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (hasError) {\n return <Page.Error />;\n }\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{getTitle(mainField)}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n {({ resetForm }) => (\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={getTitle(mainField)}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <Blocker\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n onProceed={resetForm}\n />\n </>\n )}\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["status","permissions"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldTypeIcon-CMlNO8PE.mjs","sources":["../../admin/src/components/FieldTypeIcon.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport {\n BlocksField,\n BooleanField,\n ComponentField,\n DateField,\n DynamicZoneField,\n EmailField,\n EnumerationField,\n JsonField,\n MediaField,\n NumberField,\n PasswordField,\n RelationField,\n TextField,\n UidField,\n} from '@strapi/icons/symbols';\n\nimport type { Schema } from '@strapi/types';\n\nconst iconByTypes: Record<Schema.Attribute.Kind, React.ReactElement> = {\n biginteger: <NumberField />,\n boolean: <BooleanField />,\n date: <DateField />,\n datetime: <DateField />,\n decimal: <NumberField />,\n email: <EmailField />,\n enumeration: <EnumerationField />,\n float: <NumberField />,\n integer: <NumberField />,\n media: <MediaField />,\n password: <PasswordField />,\n relation: <RelationField />,\n string: <TextField />,\n text: <TextField />,\n richtext: <TextField />,\n time: <DateField />,\n timestamp: <DateField />,\n json: <JsonField />,\n uid: <UidField />,\n component: <ComponentField />,\n dynamiczone: <DynamicZoneField />,\n blocks: <BlocksField />,\n};\n\ninterface FieldTypeIconProps {\n type?: keyof typeof iconByTypes;\n customFieldUid?: string;\n}\n\nconst FieldTypeIcon = ({ type, customFieldUid }: FieldTypeIconProps) => {\n const getCustomField = useStrapiApp('FieldTypeIcon', (state) => state.customFields.get);\n\n if (!type) {\n return null;\n }\n\n let Compo = iconByTypes[type];\n\n if (customFieldUid) {\n const customField = getCustomField(customFieldUid);\n const CustomFieldIcon = customField?.icon;\n\n if (CustomFieldIcon) {\n Compo = (\n <Box marginRight={3} width={7} height={6}>\n <CustomFieldIcon />\n </Box>\n );\n }\n }\n\n if (!iconByTypes[type]) {\n return null;\n }\n\n return Compo;\n};\n\nexport { FieldTypeIcon };\n"],"names":[],"mappings":";;;;AAuBA,MAAM,cAAiE;AAAA,EACrE,gCAAa,aAAY,EAAA;AAAA,EACzB,6BAAU,cAAa,EAAA;AAAA,EACvB,0BAAO,WAAU,EAAA;AAAA,EACjB,8BAAW,WAAU,EAAA;AAAA,EACrB,6BAAU,aAAY,EAAA;AAAA,EACtB,2BAAQ,YAAW,EAAA;AAAA,EACnB,iCAAc,kBAAiB,EAAA;AAAA,EAC/B,2BAAQ,aAAY,EAAA;AAAA,EACpB,6BAAU,aAAY,EAAA;AAAA,EACtB,2BAAQ,YAAW,EAAA;AAAA,EACnB,8BAAW,eAAc,EAAA;AAAA,EACzB,8BAAW,eAAc,EAAA;AAAA,EACzB,4BAAS,WAAU,EAAA;AAAA,EACnB,0BAAO,WAAU,EAAA;AAAA,EACjB,8BAAW,WAAU,EAAA;AAAA,EACrB,0BAAO,WAAU,EAAA;AAAA,EACjB,+BAAY,WAAU,EAAA;AAAA,EACtB,0BAAO,WAAU,EAAA;AAAA,EACjB,yBAAM,UAAS,EAAA;AAAA,EACf,+BAAY,gBAAe,EAAA;AAAA,EAC3B,iCAAc,kBAAiB,EAAA;AAAA,EAC/B,4BAAS,aAAY,EAAA;AACvB;AAOA,MAAM,gBAAgB,CAAC,EAAE,MAAM,qBAAyC;AACtE,QAAM,iBAAiB,aAAa,iBAAiB,CAAC,UAAU,MAAM,aAAa,GAAG;AAEtF,MAAI,CAAC,MAAM;AACF,WAAA;AAAA,EACT;AAEI,MAAA,QAAQ,YAAY,IAAI;AAE5B,MAAI,gBAAgB;AACZ,UAAA,cAAc,eAAe,cAAc;AACjD,UAAM,kBAAkB,aAAa;AAErC,QAAI,iBAAiB;AAEjB,cAAA,oBAAC,KAAI,EAAA,aAAa,GAAG,OAAO,GAAG,QAAQ,GACrC,UAAC,oBAAA,iBAAA,CAAA,CAAgB,EACnB,CAAA;AAAA,IAEJ;AAAA,EACF;AAEI,MAAA,CAAC,YAAY,IAAI,GAAG;AACf,WAAA;AAAA,EACT;AAEO,SAAA;AACT;"}
1
+ {"version":3,"file":"FieldTypeIcon-CMlNO8PE.mjs","sources":["../../admin/src/components/FieldTypeIcon.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport {\n BlocksField,\n BooleanField,\n ComponentField,\n DateField,\n DynamicZoneField,\n EmailField,\n EnumerationField,\n JsonField,\n MediaField,\n NumberField,\n PasswordField,\n RelationField,\n TextField,\n UidField,\n} from '@strapi/icons/symbols';\n\nimport type { Schema } from '@strapi/types';\n\nconst iconByTypes: Record<Schema.Attribute.Kind, React.ReactElement> = {\n biginteger: <NumberField />,\n boolean: <BooleanField />,\n date: <DateField />,\n datetime: <DateField />,\n decimal: <NumberField />,\n email: <EmailField />,\n enumeration: <EnumerationField />,\n float: <NumberField />,\n integer: <NumberField />,\n media: <MediaField />,\n password: <PasswordField />,\n relation: <RelationField />,\n string: <TextField />,\n text: <TextField />,\n richtext: <TextField />,\n time: <DateField />,\n timestamp: <DateField />,\n json: <JsonField />,\n uid: <UidField />,\n component: <ComponentField />,\n dynamiczone: <DynamicZoneField />,\n blocks: <BlocksField />,\n};\n\ninterface FieldTypeIconProps {\n type?: keyof typeof iconByTypes;\n customFieldUid?: string;\n}\n\nconst FieldTypeIcon = ({ type, customFieldUid }: FieldTypeIconProps) => {\n const getCustomField = useStrapiApp('FieldTypeIcon', (state) => state.customFields.get);\n\n if (!type) {\n return null;\n }\n\n let Compo = iconByTypes[type];\n\n if (customFieldUid) {\n const customField = getCustomField(customFieldUid);\n const CustomFieldIcon = customField?.icon;\n\n if (CustomFieldIcon) {\n Compo = (\n <Box marginRight={3} width={7} height={6}>\n <CustomFieldIcon />\n </Box>\n );\n }\n }\n\n if (!iconByTypes[type]) {\n return null;\n }\n\n return Compo;\n};\n\nexport { FieldTypeIcon };\n"],"names":[],"mappings":";;;;AAuBA,MAAM,cAAiE;AAAA,EACrE,gCAAa,aAAY,EAAA;AAAA,EACzB,6BAAU,cAAa,EAAA;AAAA,EACvB,0BAAO,WAAU,EAAA;AAAA,EACjB,8BAAW,WAAU,EAAA;AAAA,EACrB,6BAAU,aAAY,EAAA;AAAA,EACtB,2BAAQ,YAAW,EAAA;AAAA,EACnB,iCAAc,kBAAiB,EAAA;AAAA,EAC/B,2BAAQ,aAAY,EAAA;AAAA,EACpB,6BAAU,aAAY,EAAA;AAAA,EACtB,2BAAQ,YAAW,EAAA;AAAA,EACnB,8BAAW,eAAc,EAAA;AAAA,EACzB,8BAAW,eAAc,EAAA;AAAA,EACzB,4BAAS,WAAU,EAAA;AAAA,EACnB,0BAAO,WAAU,EAAA;AAAA,EACjB,8BAAW,WAAU,EAAA;AAAA,EACrB,0BAAO,WAAU,EAAA;AAAA,EACjB,+BAAY,WAAU,EAAA;AAAA,EACtB,0BAAO,WAAU,EAAA;AAAA,EACjB,yBAAM,UAAS,EAAA;AAAA,EACf,+BAAY,gBAAe,EAAA;AAAA,EAC3B,iCAAc,kBAAiB,EAAA;AAAA,EAC/B,4BAAS,aAAY,CAAA,CAAA;AACvB;AAOA,MAAM,gBAAgB,CAAC,EAAE,MAAM,qBAAyC;AACtE,QAAM,iBAAiB,aAAa,iBAAiB,CAAC,UAAU,MAAM,aAAa,GAAG;AAEtF,MAAI,CAAC,MAAM;AACF,WAAA;AAAA,EAAA;AAGL,MAAA,QAAQ,YAAY,IAAI;AAE5B,MAAI,gBAAgB;AACZ,UAAA,cAAc,eAAe,cAAc;AACjD,UAAM,kBAAkB,aAAa;AAErC,QAAI,iBAAiB;AAEjB,cAAA,oBAAC,KAAI,EAAA,aAAa,GAAG,OAAO,GAAG,QAAQ,GACrC,UAAC,oBAAA,iBAAA,CAAA,CAAgB,EACnB,CAAA;AAAA,IAAA;AAAA,EAEJ;AAGE,MAAA,CAAC,YAAY,IAAI,GAAG;AACf,WAAA;AAAA,EAAA;AAGF,SAAA;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldTypeIcon-Dnwq_IRF.js","sources":["../../admin/src/components/FieldTypeIcon.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport {\n BlocksField,\n BooleanField,\n ComponentField,\n DateField,\n DynamicZoneField,\n EmailField,\n EnumerationField,\n JsonField,\n MediaField,\n NumberField,\n PasswordField,\n RelationField,\n TextField,\n UidField,\n} from '@strapi/icons/symbols';\n\nimport type { Schema } from '@strapi/types';\n\nconst iconByTypes: Record<Schema.Attribute.Kind, React.ReactElement> = {\n biginteger: <NumberField />,\n boolean: <BooleanField />,\n date: <DateField />,\n datetime: <DateField />,\n decimal: <NumberField />,\n email: <EmailField />,\n enumeration: <EnumerationField />,\n float: <NumberField />,\n integer: <NumberField />,\n media: <MediaField />,\n password: <PasswordField />,\n relation: <RelationField />,\n string: <TextField />,\n text: <TextField />,\n richtext: <TextField />,\n time: <DateField />,\n timestamp: <DateField />,\n json: <JsonField />,\n uid: <UidField />,\n component: <ComponentField />,\n dynamiczone: <DynamicZoneField />,\n blocks: <BlocksField />,\n};\n\ninterface FieldTypeIconProps {\n type?: keyof typeof iconByTypes;\n customFieldUid?: string;\n}\n\nconst FieldTypeIcon = ({ type, customFieldUid }: FieldTypeIconProps) => {\n const getCustomField = useStrapiApp('FieldTypeIcon', (state) => state.customFields.get);\n\n if (!type) {\n return null;\n }\n\n let Compo = iconByTypes[type];\n\n if (customFieldUid) {\n const customField = getCustomField(customFieldUid);\n const CustomFieldIcon = customField?.icon;\n\n if (CustomFieldIcon) {\n Compo = (\n <Box marginRight={3} width={7} height={6}>\n <CustomFieldIcon />\n </Box>\n );\n }\n }\n\n if (!iconByTypes[type]) {\n return null;\n }\n\n return Compo;\n};\n\nexport { FieldTypeIcon };\n"],"names":["NumberField","BooleanField","DateField","EmailField","EnumerationField","MediaField","PasswordField","RelationField","TextField","JsonField","UidField","ComponentField","DynamicZoneField","BlocksField","useStrapiApp","jsx","Box"],"mappings":";;;;;AAuBA,MAAM,cAAiE;AAAA,EACrE,2CAAaA,QAAY,aAAA,EAAA;AAAA,EACzB,wCAAUC,QAAa,cAAA,EAAA;AAAA,EACvB,qCAAOC,QAAU,WAAA,EAAA;AAAA,EACjB,yCAAWA,QAAU,WAAA,EAAA;AAAA,EACrB,wCAAUF,QAAY,aAAA,EAAA;AAAA,EACtB,sCAAQG,QAAW,YAAA,EAAA;AAAA,EACnB,4CAAcC,QAAiB,kBAAA,EAAA;AAAA,EAC/B,sCAAQJ,QAAY,aAAA,EAAA;AAAA,EACpB,wCAAUA,QAAY,aAAA,EAAA;AAAA,EACtB,sCAAQK,QAAW,YAAA,EAAA;AAAA,EACnB,yCAAWC,QAAc,eAAA,EAAA;AAAA,EACzB,yCAAWC,QAAc,eAAA,EAAA;AAAA,EACzB,uCAASC,QAAU,WAAA,EAAA;AAAA,EACnB,qCAAOA,QAAU,WAAA,EAAA;AAAA,EACjB,yCAAWA,QAAU,WAAA,EAAA;AAAA,EACrB,qCAAON,QAAU,WAAA,EAAA;AAAA,EACjB,0CAAYA,QAAU,WAAA,EAAA;AAAA,EACtB,qCAAOO,QAAU,WAAA,EAAA;AAAA,EACjB,oCAAMC,QAAS,UAAA,EAAA;AAAA,EACf,0CAAYC,QAAe,gBAAA,EAAA;AAAA,EAC3B,4CAAcC,QAAiB,kBAAA,EAAA;AAAA,EAC/B,uCAASC,QAAY,aAAA,EAAA;AACvB;AAOA,MAAM,gBAAgB,CAAC,EAAE,MAAM,qBAAyC;AACtE,QAAM,iBAAiBC,YAAa,aAAA,iBAAiB,CAAC,UAAU,MAAM,aAAa,GAAG;AAEtF,MAAI,CAAC,MAAM;AACF,WAAA;AAAA,EACT;AAEI,MAAA,QAAQ,YAAY,IAAI;AAE5B,MAAI,gBAAgB;AACZ,UAAA,cAAc,eAAe,cAAc;AACjD,UAAM,kBAAkB,aAAa;AAErC,QAAI,iBAAiB;AAEjB,cAAAC,2BAAA,IAACC,aAAI,KAAA,EAAA,aAAa,GAAG,OAAO,GAAG,QAAQ,GACrC,UAACD,2BAAAA,IAAA,iBAAA,CAAA,CAAgB,EACnB,CAAA;AAAA,IAEJ;AAAA,EACF;AAEI,MAAA,CAAC,YAAY,IAAI,GAAG;AACf,WAAA;AAAA,EACT;AAEO,SAAA;AACT;;"}
1
+ {"version":3,"file":"FieldTypeIcon-Dnwq_IRF.js","sources":["../../admin/src/components/FieldTypeIcon.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport {\n BlocksField,\n BooleanField,\n ComponentField,\n DateField,\n DynamicZoneField,\n EmailField,\n EnumerationField,\n JsonField,\n MediaField,\n NumberField,\n PasswordField,\n RelationField,\n TextField,\n UidField,\n} from '@strapi/icons/symbols';\n\nimport type { Schema } from '@strapi/types';\n\nconst iconByTypes: Record<Schema.Attribute.Kind, React.ReactElement> = {\n biginteger: <NumberField />,\n boolean: <BooleanField />,\n date: <DateField />,\n datetime: <DateField />,\n decimal: <NumberField />,\n email: <EmailField />,\n enumeration: <EnumerationField />,\n float: <NumberField />,\n integer: <NumberField />,\n media: <MediaField />,\n password: <PasswordField />,\n relation: <RelationField />,\n string: <TextField />,\n text: <TextField />,\n richtext: <TextField />,\n time: <DateField />,\n timestamp: <DateField />,\n json: <JsonField />,\n uid: <UidField />,\n component: <ComponentField />,\n dynamiczone: <DynamicZoneField />,\n blocks: <BlocksField />,\n};\n\ninterface FieldTypeIconProps {\n type?: keyof typeof iconByTypes;\n customFieldUid?: string;\n}\n\nconst FieldTypeIcon = ({ type, customFieldUid }: FieldTypeIconProps) => {\n const getCustomField = useStrapiApp('FieldTypeIcon', (state) => state.customFields.get);\n\n if (!type) {\n return null;\n }\n\n let Compo = iconByTypes[type];\n\n if (customFieldUid) {\n const customField = getCustomField(customFieldUid);\n const CustomFieldIcon = customField?.icon;\n\n if (CustomFieldIcon) {\n Compo = (\n <Box marginRight={3} width={7} height={6}>\n <CustomFieldIcon />\n </Box>\n );\n }\n }\n\n if (!iconByTypes[type]) {\n return null;\n }\n\n return Compo;\n};\n\nexport { FieldTypeIcon };\n"],"names":["NumberField","BooleanField","DateField","EmailField","EnumerationField","MediaField","PasswordField","RelationField","TextField","JsonField","UidField","ComponentField","DynamicZoneField","BlocksField","useStrapiApp","jsx","Box"],"mappings":";;;;;AAuBA,MAAM,cAAiE;AAAA,EACrE,2CAAaA,QAAY,aAAA,EAAA;AAAA,EACzB,wCAAUC,QAAa,cAAA,EAAA;AAAA,EACvB,qCAAOC,QAAU,WAAA,EAAA;AAAA,EACjB,yCAAWA,QAAU,WAAA,EAAA;AAAA,EACrB,wCAAUF,QAAY,aAAA,EAAA;AAAA,EACtB,sCAAQG,QAAW,YAAA,EAAA;AAAA,EACnB,4CAAcC,QAAiB,kBAAA,EAAA;AAAA,EAC/B,sCAAQJ,QAAY,aAAA,EAAA;AAAA,EACpB,wCAAUA,QAAY,aAAA,EAAA;AAAA,EACtB,sCAAQK,QAAW,YAAA,EAAA;AAAA,EACnB,yCAAWC,QAAc,eAAA,EAAA;AAAA,EACzB,yCAAWC,QAAc,eAAA,EAAA;AAAA,EACzB,uCAASC,QAAU,WAAA,EAAA;AAAA,EACnB,qCAAOA,QAAU,WAAA,EAAA;AAAA,EACjB,yCAAWA,QAAU,WAAA,EAAA;AAAA,EACrB,qCAAON,QAAU,WAAA,EAAA;AAAA,EACjB,0CAAYA,QAAU,WAAA,EAAA;AAAA,EACtB,qCAAOO,QAAU,WAAA,EAAA;AAAA,EACjB,oCAAMC,QAAS,UAAA,EAAA;AAAA,EACf,0CAAYC,QAAe,gBAAA,EAAA;AAAA,EAC3B,4CAAcC,QAAiB,kBAAA,EAAA;AAAA,EAC/B,uCAASC,QAAAA,aAAY,CAAA,CAAA;AACvB;AAOA,MAAM,gBAAgB,CAAC,EAAE,MAAM,qBAAyC;AACtE,QAAM,iBAAiBC,YAAAA,aAAa,iBAAiB,CAAC,UAAU,MAAM,aAAa,GAAG;AAEtF,MAAI,CAAC,MAAM;AACF,WAAA;AAAA,EAAA;AAGL,MAAA,QAAQ,YAAY,IAAI;AAE5B,MAAI,gBAAgB;AACZ,UAAA,cAAc,eAAe,cAAc;AACjD,UAAM,kBAAkB,aAAa;AAErC,QAAI,iBAAiB;AAEjB,cAAAC,2BAAA,IAACC,aAAI,KAAA,EAAA,aAAa,GAAG,OAAO,GAAG,QAAQ,GACrC,UAACD,2BAAAA,IAAA,iBAAA,CAAA,CAAgB,EACnB,CAAA;AAAA,IAAA;AAAA,EAEJ;AAGE,MAAA,CAAC,YAAY,IAAI,GAAG;AACf,WAAA;AAAA,EAAA;AAGF,SAAA;AACT;;"}
@@ -6,19 +6,18 @@ const designSystem = require("@strapi/design-system");
6
6
  const fractionalIndexing = require("fractional-indexing");
7
7
  const pipe = require("lodash/fp/pipe");
8
8
  const reactIntl = require("react-intl");
9
- const index = require("./index-D_AvCmmG.js");
9
+ const index = require("./index-EXJvmn4t.js");
10
10
  const Icons = require("@strapi/icons");
11
11
  const reactDndHtml5Backend = require("react-dnd-html5-backend");
12
12
  const reactRouterDom = require("react-router-dom");
13
13
  const styledComponents = require("styled-components");
14
- const useDragAndDrop = require("./useDragAndDrop-J0TUUbR6.js");
15
- const ComponentIcon = require("./ComponentIcon-BXdiCGQp.js");
14
+ const useDragAndDrop = require("./useDragAndDrop-BMtgCYzL.js");
15
+ const ComponentIcon = require("./ComponentIcon-CRbtQEUV.js");
16
16
  const yup = require("yup");
17
17
  const FieldTypeIcon = require("./FieldTypeIcon-Dnwq_IRF.js");
18
18
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
19
19
  function _interopNamespace(e) {
20
- if (e && e.__esModule)
21
- return e;
20
+ if (e && e.__esModule) return e;
22
21
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
23
22
  if (e) {
24
23
  for (const k in e) {
@@ -776,4 +775,4 @@ const Header = ({ name }) => {
776
775
  };
777
776
  exports.ConfigurationForm = ConfigurationForm;
778
777
  exports.TEMP_FIELD_NAME = TEMP_FIELD_NAME;
779
- //# sourceMappingURL=Form-DH5m7r5s.js.map
778
+ //# sourceMappingURL=Form-CjcMRP5A.js.map