@strapi/content-manager 0.0.0-experimental.35644b9b8cc9cb7d3104ab14464d2de4f1bd19ed → 0.0.0-experimental.36f6fd69b4f935991d26f27957949ec71f187528

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 (259) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +300 -204
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +304 -209
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/LeftMenu.js +34 -30
  6. package/dist/admin/components/LeftMenu.js.map +1 -1
  7. package/dist/admin/components/LeftMenu.mjs +36 -32
  8. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  9. package/dist/admin/history/components/VersionContent.js +24 -3
  10. package/dist/admin/history/components/VersionContent.js.map +1 -1
  11. package/dist/admin/history/components/VersionContent.mjs +25 -4
  12. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  13. package/dist/admin/history/components/VersionHeader.js +6 -0
  14. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  15. package/dist/admin/history/components/VersionHeader.mjs +7 -1
  16. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  17. package/dist/admin/hooks/useDocumentActions.js +7 -3
  18. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  19. package/dist/admin/hooks/useDocumentActions.mjs +7 -3
  20. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  21. package/dist/admin/index.js +1 -3
  22. package/dist/admin/index.js.map +1 -1
  23. package/dist/admin/pages/EditView/EditViewPage.js +92 -75
  24. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  25. package/dist/admin/pages/EditView/EditViewPage.mjs +93 -76
  26. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  27. package/dist/admin/pages/EditView/components/DocumentActions.js +115 -88
  28. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  29. package/dist/admin/pages/EditView/components/DocumentActions.mjs +116 -89
  30. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  32. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  34. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
  36. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
  38. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  40. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  42. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  44. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  46. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +15 -2
  48. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +16 -3
  50. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +18 -5
  52. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +20 -7
  54. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +118 -101
  56. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +118 -101
  58. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +155 -99
  60. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +158 -102
  62. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
  64. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
  66. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  68. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  70. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  72. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  74. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormLayout.js +47 -27
  76. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormLayout.mjs +47 -27
  78. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/utils/data.js +103 -0
  80. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  81. package/dist/admin/pages/EditView/utils/data.mjs +103 -1
  82. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  83. package/dist/admin/pages/ListView/ListViewPage.js +77 -0
  84. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  85. package/dist/admin/pages/ListView/ListViewPage.mjs +78 -1
  86. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  87. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  88. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  89. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  90. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  91. package/dist/admin/pages/ListView/components/Filters.js +1 -0
  92. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  93. package/dist/admin/pages/ListView/components/Filters.mjs +1 -0
  94. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  95. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  96. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  97. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  98. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  99. package/dist/admin/services/documents.js +2 -2
  100. package/dist/admin/services/documents.js.map +1 -1
  101. package/dist/admin/services/documents.mjs +2 -2
  102. package/dist/admin/services/documents.mjs.map +1 -1
  103. package/dist/admin/services/homepage.js +9 -5
  104. package/dist/admin/services/homepage.js.map +1 -1
  105. package/dist/admin/services/homepage.mjs +9 -5
  106. package/dist/admin/services/homepage.mjs.map +1 -1
  107. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  108. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  109. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +3 -0
  110. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  111. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -8
  112. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  113. package/dist/admin/src/services/documents.d.ts +7 -1
  114. package/dist/admin/src/utils/validation.d.ts +1 -0
  115. package/dist/admin/translations/en.json.js +1 -0
  116. package/dist/admin/translations/en.json.js.map +1 -1
  117. package/dist/admin/translations/en.json.mjs +1 -0
  118. package/dist/admin/translations/en.json.mjs.map +1 -1
  119. package/dist/admin/translations/fr.json.js +6 -1
  120. package/dist/admin/translations/fr.json.js.map +1 -1
  121. package/dist/admin/translations/fr.json.mjs +6 -1
  122. package/dist/admin/translations/fr.json.mjs.map +1 -1
  123. package/dist/admin/translations/ru.json.js +235 -226
  124. package/dist/admin/translations/ru.json.js.map +1 -1
  125. package/dist/admin/translations/ru.json.mjs +230 -226
  126. package/dist/admin/translations/ru.json.mjs.map +1 -1
  127. package/dist/admin/utils/validation.js +17 -6
  128. package/dist/admin/utils/validation.js.map +1 -1
  129. package/dist/admin/utils/validation.mjs +17 -6
  130. package/dist/admin/utils/validation.mjs.map +1 -1
  131. package/dist/server/controllers/content-types.js +11 -1
  132. package/dist/server/controllers/content-types.js.map +1 -1
  133. package/dist/server/controllers/content-types.mjs +11 -1
  134. package/dist/server/controllers/content-types.mjs.map +1 -1
  135. package/dist/server/controllers/index.js +3 -1
  136. package/dist/server/controllers/index.js.map +1 -1
  137. package/dist/server/controllers/index.mjs +3 -1
  138. package/dist/server/controllers/index.mjs.map +1 -1
  139. package/dist/server/controllers/relations.js +2 -2
  140. package/dist/server/controllers/relations.js.map +1 -1
  141. package/dist/server/controllers/relations.mjs +2 -2
  142. package/dist/server/controllers/relations.mjs.map +1 -1
  143. package/dist/server/controllers/validation/index.js +14 -2
  144. package/dist/server/controllers/validation/index.js.map +1 -1
  145. package/dist/server/controllers/validation/index.mjs +14 -2
  146. package/dist/server/controllers/validation/index.mjs.map +1 -1
  147. package/dist/server/history/services/lifecycles.js +3 -0
  148. package/dist/server/history/services/lifecycles.js.map +1 -1
  149. package/dist/server/history/services/lifecycles.mjs +3 -0
  150. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  151. package/dist/server/homepage/controllers/homepage.js +57 -0
  152. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  153. package/dist/server/homepage/controllers/homepage.mjs +36 -0
  154. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  155. package/dist/server/homepage/controllers/index.js +10 -0
  156. package/dist/server/homepage/controllers/index.js.map +1 -0
  157. package/dist/server/homepage/controllers/index.mjs +8 -0
  158. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  159. package/dist/server/homepage/index.js +14 -0
  160. package/dist/server/homepage/index.js.map +1 -0
  161. package/dist/server/homepage/index.mjs +12 -0
  162. package/dist/server/homepage/index.mjs.map +1 -0
  163. package/dist/server/homepage/routes/homepage.js +25 -0
  164. package/dist/server/homepage/routes/homepage.js.map +1 -0
  165. package/dist/server/homepage/routes/homepage.mjs +23 -0
  166. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  167. package/dist/server/homepage/routes/index.js +13 -0
  168. package/dist/server/homepage/routes/index.js.map +1 -0
  169. package/dist/server/homepage/routes/index.mjs +11 -0
  170. package/dist/server/homepage/routes/index.mjs.map +1 -0
  171. package/dist/server/homepage/services/homepage.js +157 -0
  172. package/dist/server/homepage/services/homepage.js.map +1 -0
  173. package/dist/server/homepage/services/homepage.mjs +155 -0
  174. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  175. package/dist/server/homepage/services/index.js +10 -0
  176. package/dist/server/homepage/services/index.js.map +1 -0
  177. package/dist/server/homepage/services/index.mjs +8 -0
  178. package/dist/server/homepage/services/index.mjs.map +1 -0
  179. package/dist/server/preview/services/preview.js +0 -1
  180. package/dist/server/preview/services/preview.js.map +1 -1
  181. package/dist/server/preview/services/preview.mjs +0 -1
  182. package/dist/server/preview/services/preview.mjs.map +1 -1
  183. package/dist/server/routes/index.js +3 -1
  184. package/dist/server/routes/index.js.map +1 -1
  185. package/dist/server/routes/index.mjs +3 -1
  186. package/dist/server/routes/index.mjs.map +1 -1
  187. package/dist/server/services/data-mapper.js +4 -1
  188. package/dist/server/services/data-mapper.js.map +1 -1
  189. package/dist/server/services/data-mapper.mjs +4 -1
  190. package/dist/server/services/data-mapper.mjs.map +1 -1
  191. package/dist/server/services/document-manager.js +8 -1
  192. package/dist/server/services/document-manager.js.map +1 -1
  193. package/dist/server/services/document-manager.mjs +8 -1
  194. package/dist/server/services/document-manager.mjs.map +1 -1
  195. package/dist/server/services/document-metadata.js +3 -1
  196. package/dist/server/services/document-metadata.js.map +1 -1
  197. package/dist/server/services/document-metadata.mjs +3 -1
  198. package/dist/server/services/document-metadata.mjs.map +1 -1
  199. package/dist/server/services/index.js +3 -1
  200. package/dist/server/services/index.js.map +1 -1
  201. package/dist/server/services/index.mjs +3 -1
  202. package/dist/server/services/index.mjs.map +1 -1
  203. package/dist/server/services/utils/configuration/attributes.js +1 -1
  204. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  205. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  206. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  207. package/dist/server/services/utils/configuration/layouts.js +1 -1
  208. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  209. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  210. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  211. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  212. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  213. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  214. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  215. package/dist/server/services/utils/populate.js +11 -0
  216. package/dist/server/services/utils/populate.js.map +1 -1
  217. package/dist/server/services/utils/populate.mjs +11 -0
  218. package/dist/server/services/utils/populate.mjs.map +1 -1
  219. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  220. package/dist/server/src/controllers/index.d.ts.map +1 -1
  221. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  222. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  223. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  224. package/dist/server/src/homepage/controllers/homepage.d.ts +7 -0
  225. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  226. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  227. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  228. package/dist/server/src/homepage/index.d.ts +16 -0
  229. package/dist/server/src/homepage/index.d.ts.map +1 -0
  230. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  231. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  232. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  233. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  234. package/dist/server/src/{services → homepage/services}/homepage.d.ts +1 -1
  235. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  236. package/dist/server/src/homepage/services/index.d.ts +9 -0
  237. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  238. package/dist/server/src/index.d.ts +8 -0
  239. package/dist/server/src/index.d.ts.map +1 -1
  240. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  241. package/dist/server/src/routes/index.d.ts +1 -0
  242. package/dist/server/src/routes/index.d.ts.map +1 -1
  243. package/dist/server/src/services/data-mapper.d.ts +1 -0
  244. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  245. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  246. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  247. package/dist/server/src/services/index.d.ts +7 -0
  248. package/dist/server/src/services/index.d.ts.map +1 -1
  249. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  250. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  251. package/dist/shared/contracts/collection-types.d.ts +0 -1
  252. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  253. package/package.json +11 -8
  254. package/dist/admin/src/utils/mergeObject.d.ts +0 -11
  255. package/dist/admin/utils/mergeObject.js +0 -90
  256. package/dist/admin/utils/mergeObject.js.map +0 -1
  257. package/dist/admin/utils/mergeObject.mjs +0 -87
  258. package/dist/admin/utils/mergeObject.mjs.map +0 -1
  259. package/dist/server/src/services/homepage.d.ts.map +0 -1
@@ -6,9 +6,11 @@ var strapiAdmin = require('@strapi/admin/strapi-admin');
6
6
  var designSystem = require('@strapi/design-system');
7
7
  var Icons = require('@strapi/icons');
8
8
  var mapValues = require('lodash/fp/mapValues');
9
+ var get = require('lodash/get');
10
+ var merge = require('lodash/merge');
11
+ var set = require('lodash/set');
9
12
  var reactIntl = require('react-intl');
10
13
  var reactRouterDom = require('react-router-dom');
11
- var styledComponents = require('styled-components');
12
14
  var attributes = require('../../../constants/attributes.js');
13
15
  var collections = require('../../../constants/collections.js');
14
16
  var DocumentRBAC = require('../../../features/DocumentRBAC.js');
@@ -19,8 +21,8 @@ var Preview = require('../../../preview/pages/Preview.js');
19
21
  var router = require('../../../router.js');
20
22
  var documents = require('../../../services/documents.js');
21
23
  var api = require('../../../utils/api.js');
22
- var mergeObject = require('../../../utils/mergeObject.js');
23
24
  var translations = require('../../../utils/translations.js');
25
+ var data = require('../utils/data.js');
24
26
  var RelationModal = require('./FormInputs/Relations/RelationModal.js');
25
27
 
26
28
  function _interopNamespaceDefault(e) {
@@ -42,6 +44,38 @@ function _interopNamespaceDefault(e) {
42
44
 
43
45
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
44
46
 
47
+ const connectRelationToParent = (parentDataToUpdate, fieldToConnect, data, fieldToConnectUID)=>{
48
+ /*
49
+ * Check if the fieldToConnect is already present in the parentDataToUpdate.
50
+ * This happens in particular when in the parentDocument you have created
51
+ * a new component without saving.
52
+ */ const isFieldPresent = !!get(parentDataToUpdate, fieldToConnect);
53
+ const fieldToConnectPath = isFieldPresent ? fieldToConnect : fieldToConnect.split('.').slice(0, -1).join('.');
54
+ const fieldToConnectValue = isFieldPresent ? {
55
+ connect: [
56
+ {
57
+ id: data.documentId,
58
+ documentId: data.documentId,
59
+ locale: data.locale
60
+ }
61
+ ]
62
+ } : {
63
+ [fieldToConnect.split('.').pop()]: {
64
+ connect: [
65
+ {
66
+ id: data.documentId,
67
+ documentId: data.documentId,
68
+ locale: data.locale
69
+ }
70
+ ],
71
+ disconnect: []
72
+ },
73
+ // In case the object was not present you need to pass the componentUID of the parent document
74
+ __component: fieldToConnectUID
75
+ };
76
+ const objectToConnect = set({}, fieldToConnectPath, fieldToConnectValue);
77
+ return merge(parentDataToUpdate, objectToConnect);
78
+ };
45
79
  const DocumentActions = ({ actions })=>{
46
80
  const { formatMessage } = reactIntl.useIntl();
47
81
  const [primaryAction, secondaryAction, ...restActions] = actions.filter((action)=>{
@@ -140,11 +174,6 @@ const DocumentActionButton = (action)=>{
140
174
  ]
141
175
  });
142
176
  };
143
- const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
144
- &:hover {
145
- background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
146
- }
147
- `;
148
177
  const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
149
178
  const [isOpen, setIsOpen] = React__namespace.useState(false);
150
179
  const [dialogId, setDialogId] = React__namespace.useState(null);
@@ -206,27 +235,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
206
235
  popoverPlacement: "bottom-end",
207
236
  children: [
208
237
  actions.map((action)=>{
209
- return /*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
238
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
210
239
  disabled: action.disabled,
211
240
  /* @ts-expect-error – TODO: this is an error in the DS where it is most likely a synthetic event, not regular. */ onSelect: handleClick(action),
212
241
  display: "block",
213
- isVariantDanger: action.variant === 'danger',
214
- isDisabled: action.disabled,
242
+ variant: action.variant === 'danger' ? action.variant : 'default',
243
+ startIcon: action.icon,
215
244
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
216
245
  justifyContent: "space-between",
217
246
  gap: 4,
218
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
219
- color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
247
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
220
248
  gap: 2,
221
249
  tag: "span",
222
- children: [
223
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
224
- tag: "span",
225
- color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
226
- children: action.icon
227
- }),
228
- action.label
229
- ]
250
+ children: action.label
230
251
  })
231
252
  })
232
253
  }, action.id);
@@ -254,30 +275,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
254
275
  ]
255
276
  });
256
277
  };
257
- const convertActionVariantToColor = (variant = 'secondary')=>{
258
- switch(variant){
259
- case 'danger':
260
- return 'danger600';
261
- case 'secondary':
262
- return undefined;
263
- case 'success':
264
- return 'success600';
265
- default:
266
- return 'primary600';
267
- }
268
- };
269
- const convertActionVariantToIconColor = (variant = 'secondary')=>{
270
- switch(variant){
271
- case 'danger':
272
- return 'danger600';
273
- case 'secondary':
274
- return 'neutral500';
275
- case 'success':
276
- return 'success600';
277
- default:
278
- return 'primary600';
279
- }
280
- };
281
278
  const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
282
279
  const { formatMessage } = reactIntl.useIntl();
283
280
  const handleClose = async ()=>{
@@ -383,7 +380,10 @@ const transformData = (data)=>{
383
380
  const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
384
381
  const { id } = reactRouterDom.useParams();
385
382
  const { formatMessage } = reactIntl.useIntl();
386
- const canPublish = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish })=>canPublish);
383
+ const { canPublish, canReadFields } = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
384
+ canPublish,
385
+ canReadFields
386
+ }));
387
387
  const { publish, isLoading } = useDocumentActions.useDocumentActions();
388
388
  const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
389
389
  const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = documents.useGetDraftRelationCountQuery();
@@ -397,11 +397,13 @@ const transformData = (data)=>{
397
397
  const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
398
398
  const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
399
399
  const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
400
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('PublishAction');
400
401
  // need to discriminate if the publish is coming from a relation modal or in the edit view
401
402
  const relationContext = RelationModal.useRelationModal('PublishAction', ()=>true, false);
402
403
  const fromRelationModal = relationContext != undefined;
403
404
  const dispatch = RelationModal.useRelationModal('PublishAction', (state)=>state.dispatch);
404
405
  const fieldToConnect = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnect, false);
406
+ const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
405
407
  const documentHistory = RelationModal.useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
406
408
  const rootDocumentMeta = RelationModal.useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
407
409
  const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
@@ -499,6 +501,7 @@ const transformData = (data)=>{
499
501
  }, {
500
502
  skip: !parentDocumentMetaToUpdate
501
503
  });
504
+ const { getInitialFormValues } = useDocument.useDoc();
502
505
  const isDocumentPublished = (document?.[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc)=>doc[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== 'modified';
503
506
  if (!schema?.options?.draftAndPublish) {
504
507
  return null;
@@ -510,21 +513,39 @@ const transformData = (data)=>{
510
513
  status: 'published'
511
514
  });
512
515
  if (errors) {
513
- toggleNotification({
514
- type: 'danger',
515
- message: formatMessage({
516
- id: 'content-manager.validation.error',
517
- defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
518
- })
516
+ const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
517
+ const attribute = schema.attributes[fieldName];
518
+ return attribute?.required && !(canReadFields ?? []).includes(fieldName);
519
519
  });
520
+ if (hasUnreadableRequiredField) {
521
+ toggleNotification({
522
+ type: 'danger',
523
+ message: formatMessage({
524
+ id: 'content-manager.validation.error.unreadable-required-field',
525
+ defaultMessage: 'Your current permissions prevent access to certain required fields. Please request access from an administrator to proceed.'
526
+ })
527
+ });
528
+ } else {
529
+ toggleNotification({
530
+ type: 'danger',
531
+ message: formatMessage({
532
+ id: 'content-manager.validation.error',
533
+ defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
534
+ })
535
+ });
536
+ }
520
537
  return;
521
538
  }
539
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(formValues), {
540
+ schema,
541
+ components
542
+ });
522
543
  const res = await publish({
523
544
  collectionType,
524
545
  model,
525
546
  documentId,
526
547
  params: currentDocumentMeta.params
527
- }, transformData(formValues));
548
+ }, data$1);
528
549
  // Reset form if successful
529
550
  if ('data' in res) {
530
551
  resetForm();
@@ -544,30 +565,21 @@ const transformData = (data)=>{
544
565
  model,
545
566
  params: currentDocumentMeta.params
546
567
  };
547
- // Update, if needed, the parent relation with the newly published document
548
- // check if in history we have the parent relation otherwise use the rootDocument
549
- if (fieldToConnect && documentHistory && parentDocumentMetaToUpdate.documentId) {
550
- const parentDataToUpdate = parentDocumentData.getInitialFormValues();
568
+ /*
569
+ * Update, if needed, the parent relation with the newly published document.
570
+ * Check if in history we have the parent relation otherwise use the
571
+ * rootDocument
572
+ */ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
573
+ const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
551
574
  const metaDocumentToUpdate = documentHistory.at(-2) ?? rootDocumentMeta;
552
- const objectToConnect = mergeObject.stringToObject(fieldToConnect, {
553
- connect: [
554
- {
555
- id: res.data.documentId,
556
- documentId: res.data.documentId,
557
- locale: res.data.locale
558
- }
559
- ]
560
- });
561
- const dataToUpdate = mergeObject.deepMerge(parentDataToUpdate, objectToConnect);
575
+ const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
562
576
  try {
563
577
  const updateRes = await updateDocumentMutation({
564
578
  collectionType: metaDocumentToUpdate.collectionType,
565
579
  model: metaDocumentToUpdate.model,
566
- documentId: metaDocumentToUpdate.documentId,
580
+ documentId: metaDocumentToUpdate.collectionType !== collections.SINGLE_TYPES ? metaDocumentToUpdate.documentId : undefined,
567
581
  params: metaDocumentToUpdate.params,
568
- data: {
569
- ...dataToUpdate
570
- }
582
+ data: dataToUpdate
571
583
  });
572
584
  if ('error' in updateRes) {
573
585
  toggleNotification({
@@ -667,11 +679,14 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
667
679
  const isCloning = cloneMatch !== null;
668
680
  const { formatMessage } = reactIntl.useIntl();
669
681
  const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
682
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('UpdateAction');
670
683
  const [{ rawQuery }] = strapiAdmin.useQueryParams();
671
684
  const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
685
+ const { getInitialFormValues } = useDocument.useDoc();
672
686
  const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
673
687
  const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
674
688
  const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
689
+ const initialValues = strapiAdmin.useForm('UpdateAction', ({ initialValues })=>initialValues);
675
690
  const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
676
691
  const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
677
692
  const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
@@ -679,7 +694,9 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
679
694
  const dispatch = RelationModal.useRelationModal('UpdateAction', (state)=>state.dispatch);
680
695
  // need to discriminate if the update is coming from a relation modal or in the edit view
681
696
  const relationContext = RelationModal.useRelationModal('UpdateAction', ()=>true, false);
697
+ const relationalModalSchema = RelationModal.useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
682
698
  const fieldToConnect = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
699
+ const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
683
700
  const documentHistory = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
684
701
  const rootDocumentMeta = RelationModal.useRelationModal('UpdateAction', (state)=>state.rootDocumentMeta);
685
702
  const fromRelationModal = relationContext != undefined;
@@ -695,6 +712,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
695
712
  }, {
696
713
  skip: !parentDocumentMetaToUpdate
697
714
  });
715
+ const { schema } = useDocument.useDoc();
698
716
  const handleUpdate = React__namespace.useCallback(async ()=>{
699
717
  setSubmitting(true);
700
718
  try {
@@ -731,22 +749,32 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
731
749
  setErrors(formatValidationErrors(res.error));
732
750
  }
733
751
  } else if (documentId || collectionType === collections.SINGLE_TYPES) {
752
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
753
+ schema: fromRelationModal ? relationalModalSchema : schema,
754
+ initialValues,
755
+ components
756
+ });
734
757
  const res = await update({
735
758
  collectionType,
736
759
  model,
737
760
  documentId,
738
761
  params: currentDocumentMeta.params
739
- }, transformData(document));
762
+ }, data$1);
740
763
  if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
741
764
  setErrors(formatValidationErrors(res.error));
742
765
  } else {
743
766
  resetForm();
744
767
  }
745
768
  } else {
769
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
770
+ schema: fromRelationModal ? relationalModalSchema : schema,
771
+ initialValues,
772
+ components
773
+ });
746
774
  const res = await create({
747
775
  model,
748
776
  params: currentDocumentMeta.params
749
- }, transformData(document));
777
+ }, data$1);
750
778
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
751
779
  if (fromRelationModal) {
752
780
  const createdRelation = {
@@ -755,25 +783,18 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
755
783
  model,
756
784
  params: currentDocumentMeta.params
757
785
  };
758
- // Update, if needed, the parent relation with the newly published document
759
- // check if in history we have the parent relation otherwise use the rootDocument
760
- if (fieldToConnect && documentHistory && parentDocumentMetaToUpdate.documentId) {
761
- const parentDataToUpdate = parentDocumentData.getInitialFormValues();
762
- const objectToConnect = mergeObject.stringToObject(fieldToConnect, {
763
- connect: [
764
- {
765
- id: res.data.documentId,
766
- documentId: res.data.documentId,
767
- locale: res.data.locale
768
- }
769
- ]
770
- });
771
- const dataToUpdate = mergeObject.deepMerge(parentDataToUpdate, objectToConnect);
786
+ /*
787
+ * Update, if needed, the parent relation with the newly published document.
788
+ * Check if in history we have the parent relation otherwise use the
789
+ * rootDocument
790
+ */ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
791
+ const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
792
+ const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
772
793
  try {
773
794
  const updateRes = await updateDocumentMutation({
774
795
  collectionType: parentDocumentMetaToUpdate.collectionType,
775
796
  model: parentDocumentMetaToUpdate.model,
776
- documentId: parentDocumentMetaToUpdate.documentId,
797
+ documentId: parentDocumentMetaToUpdate.collectionType !== collections.SINGLE_TYPES ? parentDocumentMetaToUpdate.documentId : undefined,
777
798
  params: parentDocumentMetaToUpdate.params,
778
799
  data: {
779
800
  ...dataToUpdate
@@ -849,10 +870,16 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
849
870
  documentHistory,
850
871
  parentDocumentMetaToUpdate,
851
872
  dispatch,
873
+ getInitialFormValues,
852
874
  parentDocumentData,
875
+ fieldToConnectUID,
853
876
  updateDocumentMutation,
854
877
  formatAPIError,
855
- onPreview
878
+ onPreview,
879
+ initialValues,
880
+ schema,
881
+ components,
882
+ relationalModalSchema
856
883
  ]);
857
884
  // Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
858
885
  React__namespace.useEffect(()=>{