@strapi/content-manager 0.0.0-next.bb6ff32f5168f3e380d3d9acba90a9d53bfcfb89 → 0.0.0-next.bffd3c1819cd08304e7d270e88b4973e9fcbc183

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 (162) 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-DqB7veg_.mjs → ComponentConfigurationPage-9_4yUE9L.mjs} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-DqB7veg_.mjs.map → ComponentConfigurationPage-9_4yUE9L.mjs.map} +1 -1
  5. package/dist/_chunks/{ComponentConfigurationPage-Bmwd-G2q.js → ComponentConfigurationPage-DBSh-kET.js} +4 -5
  6. package/dist/_chunks/{ComponentConfigurationPage-Bmwd-G2q.js.map → ComponentConfigurationPage-DBSh-kET.js.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-DmruXqgR.js → EditConfigurationPage-Bl_U2JgH.js} +4 -5
  11. package/dist/_chunks/{EditConfigurationPage-DmruXqgR.js.map → EditConfigurationPage-Bl_U2JgH.js.map} +1 -1
  12. package/dist/_chunks/{EditConfigurationPage-CDLVqqay.mjs → EditConfigurationPage-COe6hjPC.mjs} +3 -3
  13. package/dist/_chunks/{EditConfigurationPage-CDLVqqay.mjs.map → EditConfigurationPage-COe6hjPC.mjs.map} +1 -1
  14. package/dist/_chunks/{EditViewPage-0zrWXtMz.js → EditViewPage-D4yFJET6.js} +14 -78
  15. package/dist/_chunks/EditViewPage-D4yFJET6.js.map +1 -0
  16. package/dist/_chunks/{EditViewPage-BgcbLW7w.mjs → EditViewPage-DrmVmYN0.mjs} +11 -74
  17. package/dist/_chunks/EditViewPage-DrmVmYN0.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-CIDoAFoD.js → Form-C4rSaGsz.js} +5 -6
  21. package/dist/_chunks/{Form-CIDoAFoD.js.map → Form-C4rSaGsz.js.map} +1 -1
  22. package/dist/_chunks/{Form-WNWgTBtb.mjs → Form-DamaxNpG.mjs} +3 -3
  23. package/dist/_chunks/{Form-WNWgTBtb.mjs.map → Form-DamaxNpG.mjs.map} +1 -1
  24. package/dist/_chunks/{History-DEZDHwP0.mjs → History-D1PreDSY.mjs} +36 -10
  25. package/dist/_chunks/History-D1PreDSY.mjs.map +1 -0
  26. package/dist/_chunks/{History-BNvm2TK2.js → History-DTm8UCCQ.js} +47 -22
  27. package/dist/_chunks/History-DTm8UCCQ.js.map +1 -0
  28. package/dist/_chunks/{Field-BV7ZYdqe.js → Input-B7sapvBG.js} +1331 -1329
  29. package/dist/_chunks/Input-B7sapvBG.js.map +1 -0
  30. package/dist/_chunks/{Field-fTjqtEem.mjs → Input-CZ1YvjHR.mjs} +1245 -1243
  31. package/dist/_chunks/Input-CZ1YvjHR.mjs.map +1 -0
  32. package/dist/_chunks/{ListConfigurationPage-Ddz3G-It.mjs → ListConfigurationPage-Bbi32isk.mjs} +6 -5
  33. package/dist/_chunks/ListConfigurationPage-Bbi32isk.mjs.map +1 -0
  34. package/dist/_chunks/{ListConfigurationPage-B3FZwPHp.js → ListConfigurationPage-ysFMjKI3.js} +6 -6
  35. package/dist/_chunks/ListConfigurationPage-ysFMjKI3.js.map +1 -0
  36. package/dist/_chunks/{ListViewPage-BsLdw25U.mjs → ListViewPage-Bud_jBDQ.mjs} +55 -51
  37. package/dist/_chunks/ListViewPage-Bud_jBDQ.mjs.map +1 -0
  38. package/dist/_chunks/{ListViewPage-BEilNylQ.js → ListViewPage-DTuuxU3n.js} +61 -58
  39. package/dist/_chunks/ListViewPage-DTuuxU3n.js.map +1 -0
  40. package/dist/_chunks/{NoContentTypePage-BD2C-IMr.js → NoContentTypePage-CL7VVeYs.js} +2 -2
  41. package/dist/_chunks/{NoContentTypePage-BD2C-IMr.js.map → NoContentTypePage-CL7VVeYs.js.map} +1 -1
  42. package/dist/_chunks/{NoContentTypePage-D0jXEWKM.mjs → NoContentTypePage-DVhkugsf.mjs} +2 -2
  43. package/dist/_chunks/{NoContentTypePage-D0jXEWKM.mjs.map → NoContentTypePage-DVhkugsf.mjs.map} +1 -1
  44. package/dist/_chunks/{NoPermissionsPage-CIPqlrQq.mjs → NoPermissionsPage-CMdM-dCo.mjs} +2 -2
  45. package/dist/_chunks/{NoPermissionsPage-CIPqlrQq.mjs.map → NoPermissionsPage-CMdM-dCo.mjs.map} +1 -1
  46. package/dist/_chunks/{NoPermissionsPage-yNOvz9XO.js → NoPermissionsPage-v7I599vC.js} +2 -2
  47. package/dist/_chunks/{NoPermissionsPage-yNOvz9XO.js.map → NoPermissionsPage-v7I599vC.js.map} +1 -1
  48. package/dist/_chunks/{Preview-ot2fh0yZ.mjs → Preview-BNuU0SuQ.mjs} +74 -24
  49. package/dist/_chunks/Preview-BNuU0SuQ.mjs.map +1 -0
  50. package/dist/_chunks/{Preview-1cqLecKr.js → Preview-Cxq-uI6D.js} +73 -24
  51. package/dist/_chunks/Preview-Cxq-uI6D.js.map +1 -0
  52. package/dist/_chunks/{Relations-CfdwHP-0.mjs → Relations-C2Ahkrdg.mjs} +6 -8
  53. package/dist/_chunks/{Relations-CfdwHP-0.mjs.map → Relations-C2Ahkrdg.mjs.map} +1 -1
  54. package/dist/_chunks/{Relations-C3U9SKEb.js → Relations-CWS79QQn.js} +7 -10
  55. package/dist/_chunks/{Relations-C3U9SKEb.js.map → Relations-CWS79QQn.js.map} +1 -1
  56. package/dist/_chunks/{en-CHOp_xJv.js → en-BR48D_RH.js} +13 -3
  57. package/dist/_chunks/{en-CHOp_xJv.js.map → en-BR48D_RH.js.map} +1 -1
  58. package/dist/_chunks/{en-D_BMf0hT.mjs → en-D65uIF6Y.mjs} +13 -3
  59. package/dist/_chunks/{en-D_BMf0hT.mjs.map → en-D65uIF6Y.mjs.map} +1 -1
  60. package/dist/_chunks/{fr-B2Kyv8Z9.js → fr-C43IbhA_.js} +4 -1
  61. package/dist/_chunks/{fr-B2Kyv8Z9.js.map → fr-C43IbhA_.js.map} +1 -1
  62. package/dist/_chunks/{fr--pg5jUbt.mjs → fr-DBseuRuB.mjs} +4 -1
  63. package/dist/_chunks/{fr--pg5jUbt.mjs.map → fr-DBseuRuB.mjs.map} +1 -1
  64. package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
  65. package/dist/_chunks/{index-Cg4RLIAw.js → index-DQsvBb_N.js} +518 -207
  66. package/dist/_chunks/index-DQsvBb_N.js.map +1 -0
  67. package/dist/_chunks/{index-BzUT1l9A.mjs → index-ZKrsjv-2.mjs} +536 -224
  68. package/dist/_chunks/index-ZKrsjv-2.mjs.map +1 -0
  69. package/dist/_chunks/{layout-Cj_1EKbm.js → layout-Cl0NhlQB.js} +5 -6
  70. package/dist/_chunks/{layout-Cj_1EKbm.js.map → layout-Cl0NhlQB.js.map} +1 -1
  71. package/dist/_chunks/{layout-C0QEDBAh.mjs → layout-fQk1rMk9.mjs} +4 -4
  72. package/dist/_chunks/{layout-C0QEDBAh.mjs.map → layout-fQk1rMk9.mjs.map} +1 -1
  73. package/dist/_chunks/objects-BcXOv6_9.js.map +1 -1
  74. package/dist/_chunks/objects-D6yBsdmx.mjs.map +1 -1
  75. package/dist/_chunks/{relations-hDOgJy2R.js → relations-BRfBxVbX.js} +2 -2
  76. package/dist/_chunks/{relations-hDOgJy2R.js.map → relations-BRfBxVbX.js.map} +1 -1
  77. package/dist/_chunks/{relations-CgPG3AwU.mjs → relations-BakOFl_1.mjs} +2 -2
  78. package/dist/_chunks/{relations-CgPG3AwU.mjs.map → relations-BakOFl_1.mjs.map} +1 -1
  79. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
  80. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
  81. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
  82. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
  83. package/dist/_chunks/{useDebounce-DmuSJIF3.mjs → usePrev-CZGy2Vjf.mjs} +11 -11
  84. package/dist/_chunks/usePrev-CZGy2Vjf.mjs.map +1 -0
  85. package/dist/_chunks/{useDebounce-CtcjDB3L.js → usePrev-D5J_2fEu.js} +8 -8
  86. package/dist/_chunks/usePrev-D5J_2fEu.js.map +1 -0
  87. package/dist/admin/index.js +2 -1
  88. package/dist/admin/index.js.map +1 -1
  89. package/dist/admin/index.mjs +6 -5
  90. package/dist/admin/src/content-manager.d.ts +3 -2
  91. package/dist/admin/src/exports.d.ts +1 -0
  92. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  93. package/dist/admin/src/hooks/useDocument.d.ts +19 -2
  94. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
  95. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +1 -1
  96. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
  97. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
  98. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
  99. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +4 -1
  100. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +4 -1
  101. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +27 -0
  102. package/dist/admin/src/pages/EditView/utils/data.d.ts +1 -0
  103. package/dist/admin/src/preview/pages/Preview.d.ts +1 -1
  104. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  105. package/dist/admin/src/services/api.d.ts +1 -1
  106. package/dist/admin/src/services/components.d.ts +2 -2
  107. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  108. package/dist/admin/src/services/documents.d.ts +16 -19
  109. package/dist/admin/src/services/init.d.ts +1 -1
  110. package/dist/admin/src/services/relations.d.ts +2 -2
  111. package/dist/admin/src/services/uid.d.ts +3 -3
  112. package/dist/server/index.js +230 -187
  113. package/dist/server/index.js.map +1 -1
  114. package/dist/server/index.mjs +231 -187
  115. package/dist/server/index.mjs.map +1 -1
  116. package/dist/server/src/controllers/utils/metadata.d.ts +1 -0
  117. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  118. package/dist/server/src/history/controllers/history-version.d.ts +1 -1
  119. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  120. package/dist/server/src/history/services/history.d.ts +3 -3
  121. package/dist/server/src/history/services/history.d.ts.map +1 -1
  122. package/dist/server/src/history/services/utils.d.ts +6 -10
  123. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  124. package/dist/server/src/index.d.ts +3 -2
  125. package/dist/server/src/index.d.ts.map +1 -1
  126. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -1
  127. package/dist/server/src/preview/index.d.ts.map +1 -1
  128. package/dist/server/src/preview/services/index.d.ts +1 -0
  129. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  130. package/dist/server/src/preview/services/preview-config.d.ts +2 -0
  131. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  132. package/dist/server/src/preview/utils.d.ts +1 -0
  133. package/dist/server/src/preview/utils.d.ts.map +1 -1
  134. package/dist/server/src/register.d.ts.map +1 -1
  135. package/dist/server/src/services/document-metadata.d.ts +4 -2
  136. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  137. package/dist/server/src/services/index.d.ts +3 -2
  138. package/dist/server/src/services/index.d.ts.map +1 -1
  139. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  140. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  141. package/dist/server/src/services/utils/populate.d.ts +2 -2
  142. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  143. package/package.json +12 -11
  144. package/dist/_chunks/EditViewPage-0zrWXtMz.js.map +0 -1
  145. package/dist/_chunks/EditViewPage-BgcbLW7w.mjs.map +0 -1
  146. package/dist/_chunks/Field-BV7ZYdqe.js.map +0 -1
  147. package/dist/_chunks/Field-fTjqtEem.mjs.map +0 -1
  148. package/dist/_chunks/History-BNvm2TK2.js.map +0 -1
  149. package/dist/_chunks/History-DEZDHwP0.mjs.map +0 -1
  150. package/dist/_chunks/ListConfigurationPage-B3FZwPHp.js.map +0 -1
  151. package/dist/_chunks/ListConfigurationPage-Ddz3G-It.mjs.map +0 -1
  152. package/dist/_chunks/ListViewPage-BEilNylQ.js.map +0 -1
  153. package/dist/_chunks/ListViewPage-BsLdw25U.mjs.map +0 -1
  154. package/dist/_chunks/Preview-1cqLecKr.js.map +0 -1
  155. package/dist/_chunks/Preview-ot2fh0yZ.mjs.map +0 -1
  156. package/dist/_chunks/index-BzUT1l9A.mjs.map +0 -1
  157. package/dist/_chunks/index-Cg4RLIAw.js.map +0 -1
  158. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +0 -1
  159. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +0 -1
  160. package/dist/admin/src/preview/constants.d.ts +0 -1
  161. package/dist/server/src/preview/constants.d.ts +0 -2
  162. 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-Cg4RLIAw.js");
11
- const Field = require("./Field-BV7ZYdqe.js");
9
+ const index = require("./index-DQsvBb_N.js");
10
+ const Input = require("./Input-B7sapvBG.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,12 +91,6 @@ 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
- }
158
94
  const validateSync = (values, options) => {
159
95
  const yupSchema = index.createYupSchema(schema?.attributes, components, {
160
96
  status,
@@ -163,7 +99,7 @@ const EditViewPage = () => {
163
99
  return yupSchema.validateSync(values, { abortEarly: false });
164
100
  };
165
101
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { paddingLeft: 10, paddingRight: 10, children: [
166
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Title, { children: documentTitle }),
102
+ /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Title, { children: getTitle(mainField) }),
167
103
  /* @__PURE__ */ jsxRuntime.jsx(
168
104
  strapiAdmin.Form,
169
105
  {
@@ -184,7 +120,7 @@ const EditViewPage = () => {
184
120
  {
185
121
  isCreating: isCreatingDocument,
186
122
  status: hasDraftAndPublished ? getDocumentStatus(document, meta) : void 0,
187
- title: documentTitle
123
+ title: getTitle(mainField)
188
124
  }
189
125
  ),
190
126
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.Root, { variant: "simple", value: status, onValueChange: handleTabChange, children: [
@@ -216,8 +152,8 @@ const EditViewPage = () => {
216
152
  ),
217
153
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { paddingTop: 8, gap: 4, children: [
218
154
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Item, { col: 9, s: 12, direction: "column", alignItems: "stretch", children: [
219
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "draft", children: /* @__PURE__ */ jsxRuntime.jsx(FormLayout, { layout }) }),
220
- /* @__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 }) })
221
157
  ] }),
222
158
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, s: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(index.Panels, {}) })
223
159
  ] })
@@ -270,4 +206,4 @@ const ProtectedEditViewPage = () => {
270
206
  exports.EditViewPage = EditViewPage;
271
207
  exports.ProtectedEditViewPage = ProtectedEditViewPage;
272
208
  exports.getDocumentStatus = getDocumentStatus;
273
- //# sourceMappingURL=EditViewPage-0zrWXtMz.js.map
209
+ //# sourceMappingURL=EditViewPage-D4yFJET6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditViewPage-D4yFJET6.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-BzUT1l9A.mjs";
9
- import { M as MemoizedInputRenderer, u as useLazyComponents, c as createDefaultForm, t as transformDocument } from "./Field-fTjqtEem.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-ZKrsjv-2.mjs";
8
+ import { u as useLazyComponents, F as FormLayout } from "./Input-CZ1YvjHR.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,12 +71,6 @@ 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
- }
137
74
  const validateSync = (values, options) => {
138
75
  const yupSchema = createYupSchema(schema?.attributes, components, {
139
76
  status,
@@ -142,7 +79,7 @@ const EditViewPage = () => {
142
79
  return yupSchema.validateSync(values, { abortEarly: false });
143
80
  };
144
81
  return /* @__PURE__ */ jsxs(Main, { paddingLeft: 10, paddingRight: 10, children: [
145
- /* @__PURE__ */ jsx(Page.Title, { children: documentTitle }),
82
+ /* @__PURE__ */ jsx(Page.Title, { children: getTitle(mainField) }),
146
83
  /* @__PURE__ */ jsx(
147
84
  Form,
148
85
  {
@@ -163,7 +100,7 @@ const EditViewPage = () => {
163
100
  {
164
101
  isCreating: isCreatingDocument,
165
102
  status: hasDraftAndPublished ? getDocumentStatus(document, meta) : void 0,
166
- title: documentTitle
103
+ title: getTitle(mainField)
167
104
  }
168
105
  ),
169
106
  /* @__PURE__ */ jsxs(Tabs.Root, { variant: "simple", value: status, onValueChange: handleTabChange, children: [
@@ -251,4 +188,4 @@ export {
251
188
  ProtectedEditViewPage,
252
189
  getDocumentStatus
253
190
  };
254
- //# sourceMappingURL=EditViewPage-BgcbLW7w.mjs.map
191
+ //# sourceMappingURL=EditViewPage-DrmVmYN0.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditViewPage-DrmVmYN0.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-Cg4RLIAw.js");
9
+ const index = require("./index-DQsvBb_N.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-CIDoAFoD.js.map
778
+ //# sourceMappingURL=Form-C4rSaGsz.js.map