@strapi/content-manager 0.0.0-next.3dfa46a688dac778822b4cb229acfc1ce41e71ed → 0.0.0-next.3e666b1ad96ac2e82634e548e10ea7c7797a7474

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 (308) 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/components/Widgets.js +161 -0
  10. package/dist/admin/components/Widgets.js.map +1 -0
  11. package/dist/admin/components/Widgets.mjs +158 -0
  12. package/dist/admin/components/Widgets.mjs.map +1 -0
  13. package/dist/admin/content-manager.js.map +1 -1
  14. package/dist/admin/content-manager.mjs.map +1 -1
  15. package/dist/admin/history/components/VersionContent.js +24 -3
  16. package/dist/admin/history/components/VersionContent.js.map +1 -1
  17. package/dist/admin/history/components/VersionContent.mjs +25 -4
  18. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  19. package/dist/admin/history/components/VersionHeader.js +6 -0
  20. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  21. package/dist/admin/history/components/VersionHeader.mjs +7 -1
  22. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  23. package/dist/admin/history/pages/History.js +1 -9
  24. package/dist/admin/history/pages/History.js.map +1 -1
  25. package/dist/admin/history/pages/History.mjs +1 -9
  26. package/dist/admin/history/pages/History.mjs.map +1 -1
  27. package/dist/admin/hooks/useDocumentActions.js +20 -5
  28. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  29. package/dist/admin/hooks/useDocumentActions.mjs +20 -5
  30. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  31. package/dist/admin/hooks/useDocumentContext.js +57 -0
  32. package/dist/admin/hooks/useDocumentContext.js.map +1 -0
  33. package/dist/admin/hooks/useDocumentContext.mjs +36 -0
  34. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
  35. package/dist/admin/index.js +42 -5
  36. package/dist/admin/index.js.map +1 -1
  37. package/dist/admin/index.mjs +42 -3
  38. package/dist/admin/index.mjs.map +1 -1
  39. package/dist/admin/pages/EditView/EditViewPage.js +100 -91
  40. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  41. package/dist/admin/pages/EditView/EditViewPage.mjs +102 -93
  42. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/DocumentActions.js +288 -104
  44. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/DocumentActions.mjs +294 -110
  46. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  48. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  50. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
  52. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
  54. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  56. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  58. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  60. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  62. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
  64. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
  66. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +14 -3
  68. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +15 -4
  70. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +17 -4
  72. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +18 -5
  74. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +23 -21
  76. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +25 -23
  78. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
  80. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
  82. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +506 -345
  84. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +506 -347
  86. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +174 -68
  88. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +178 -72
  90. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/UID.js +11 -9
  92. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +11 -9
  94. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  96. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  98. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  100. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  102. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  104. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  106. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormLayout.js +47 -27
  108. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormLayout.mjs +47 -27
  110. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -10
  112. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/InputRenderer.mjs +3 -10
  114. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/utils/data.js +103 -0
  116. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  117. package/dist/admin/pages/EditView/utils/data.mjs +103 -1
  118. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  119. package/dist/admin/pages/ListView/ListViewPage.js +77 -0
  120. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  121. package/dist/admin/pages/ListView/ListViewPage.mjs +78 -1
  122. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  123. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  124. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  125. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  126. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  127. package/dist/admin/pages/ListView/components/Filters.js +1 -0
  128. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  129. package/dist/admin/pages/ListView/components/Filters.mjs +1 -0
  130. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  131. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  132. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  133. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  134. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  135. package/dist/admin/preview/components/PreviewHeader.js +3 -6
  136. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  137. package/dist/admin/preview/components/PreviewHeader.mjs +3 -6
  138. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  139. package/dist/admin/preview/pages/Preview.js +94 -102
  140. package/dist/admin/preview/pages/Preview.js.map +1 -1
  141. package/dist/admin/preview/pages/Preview.mjs +94 -102
  142. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  143. package/dist/admin/services/documents.js +2 -2
  144. package/dist/admin/services/documents.js.map +1 -1
  145. package/dist/admin/services/documents.mjs +2 -2
  146. package/dist/admin/services/documents.mjs.map +1 -1
  147. package/dist/admin/services/homepage.js +30 -0
  148. package/dist/admin/services/homepage.js.map +1 -0
  149. package/dist/admin/services/homepage.mjs +28 -0
  150. package/dist/admin/services/homepage.mjs.map +1 -0
  151. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  152. package/dist/admin/src/components/Widgets.d.ts +3 -0
  153. package/dist/admin/src/content-manager.d.ts +0 -3
  154. package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
  155. package/dist/admin/src/history/pages/History.d.ts +1 -1
  156. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  157. package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
  158. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  159. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
  160. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  161. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
  162. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
  163. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  164. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -8
  165. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  166. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  167. package/dist/admin/src/preview/pages/Preview.d.ts +2 -1
  168. package/dist/admin/src/services/documents.d.ts +7 -1
  169. package/dist/admin/src/services/homepage.d.ts +5 -0
  170. package/dist/admin/src/utils/validation.d.ts +1 -0
  171. package/dist/admin/translations/en.json.js +3 -1
  172. package/dist/admin/translations/en.json.js.map +1 -1
  173. package/dist/admin/translations/en.json.mjs +3 -1
  174. package/dist/admin/translations/en.json.mjs.map +1 -1
  175. package/dist/admin/translations/ru.json.js +235 -226
  176. package/dist/admin/translations/ru.json.js.map +1 -1
  177. package/dist/admin/translations/ru.json.mjs +230 -226
  178. package/dist/admin/translations/ru.json.mjs.map +1 -1
  179. package/dist/admin/utils/validation.js +17 -6
  180. package/dist/admin/utils/validation.js.map +1 -1
  181. package/dist/admin/utils/validation.mjs +17 -6
  182. package/dist/admin/utils/validation.mjs.map +1 -1
  183. package/dist/server/controllers/content-types.js +11 -1
  184. package/dist/server/controllers/content-types.js.map +1 -1
  185. package/dist/server/controllers/content-types.mjs +11 -1
  186. package/dist/server/controllers/content-types.mjs.map +1 -1
  187. package/dist/server/controllers/index.js +3 -1
  188. package/dist/server/controllers/index.js.map +1 -1
  189. package/dist/server/controllers/index.mjs +3 -1
  190. package/dist/server/controllers/index.mjs.map +1 -1
  191. package/dist/server/controllers/validation/index.js +14 -2
  192. package/dist/server/controllers/validation/index.js.map +1 -1
  193. package/dist/server/controllers/validation/index.mjs +14 -2
  194. package/dist/server/controllers/validation/index.mjs.map +1 -1
  195. package/dist/server/history/services/lifecycles.js +3 -0
  196. package/dist/server/history/services/lifecycles.js.map +1 -1
  197. package/dist/server/history/services/lifecycles.mjs +3 -0
  198. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  199. package/dist/server/homepage/controllers/homepage.js +57 -0
  200. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  201. package/dist/server/homepage/controllers/homepage.mjs +36 -0
  202. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  203. package/dist/server/homepage/controllers/index.js +10 -0
  204. package/dist/server/homepage/controllers/index.js.map +1 -0
  205. package/dist/server/homepage/controllers/index.mjs +8 -0
  206. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  207. package/dist/server/homepage/index.js +14 -0
  208. package/dist/server/homepage/index.js.map +1 -0
  209. package/dist/server/homepage/index.mjs +12 -0
  210. package/dist/server/homepage/index.mjs.map +1 -0
  211. package/dist/server/homepage/routes/homepage.js +25 -0
  212. package/dist/server/homepage/routes/homepage.js.map +1 -0
  213. package/dist/server/homepage/routes/homepage.mjs +23 -0
  214. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  215. package/dist/server/homepage/routes/index.js +13 -0
  216. package/dist/server/homepage/routes/index.js.map +1 -0
  217. package/dist/server/homepage/routes/index.mjs +11 -0
  218. package/dist/server/homepage/routes/index.mjs.map +1 -0
  219. package/dist/server/homepage/services/homepage.js +157 -0
  220. package/dist/server/homepage/services/homepage.js.map +1 -0
  221. package/dist/server/homepage/services/homepage.mjs +155 -0
  222. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  223. package/dist/server/homepage/services/index.js +10 -0
  224. package/dist/server/homepage/services/index.js.map +1 -0
  225. package/dist/server/homepage/services/index.mjs +8 -0
  226. package/dist/server/homepage/services/index.mjs.map +1 -0
  227. package/dist/server/preview/services/preview.js +0 -1
  228. package/dist/server/preview/services/preview.js.map +1 -1
  229. package/dist/server/preview/services/preview.mjs +0 -1
  230. package/dist/server/preview/services/preview.mjs.map +1 -1
  231. package/dist/server/routes/index.js +3 -1
  232. package/dist/server/routes/index.js.map +1 -1
  233. package/dist/server/routes/index.mjs +3 -1
  234. package/dist/server/routes/index.mjs.map +1 -1
  235. package/dist/server/services/data-mapper.js +4 -1
  236. package/dist/server/services/data-mapper.js.map +1 -1
  237. package/dist/server/services/data-mapper.mjs +4 -1
  238. package/dist/server/services/data-mapper.mjs.map +1 -1
  239. package/dist/server/services/document-manager.js +8 -1
  240. package/dist/server/services/document-manager.js.map +1 -1
  241. package/dist/server/services/document-manager.mjs +8 -1
  242. package/dist/server/services/document-manager.mjs.map +1 -1
  243. package/dist/server/services/document-metadata.js +3 -1
  244. package/dist/server/services/document-metadata.js.map +1 -1
  245. package/dist/server/services/document-metadata.mjs +3 -1
  246. package/dist/server/services/document-metadata.mjs.map +1 -1
  247. package/dist/server/services/index.js +3 -1
  248. package/dist/server/services/index.js.map +1 -1
  249. package/dist/server/services/index.mjs +3 -1
  250. package/dist/server/services/index.mjs.map +1 -1
  251. package/dist/server/services/utils/configuration/attributes.js +1 -1
  252. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  253. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  254. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  255. package/dist/server/services/utils/configuration/layouts.js +1 -1
  256. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  257. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  258. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  259. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  260. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  261. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  262. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  263. package/dist/server/services/utils/populate.js +11 -0
  264. package/dist/server/services/utils/populate.js.map +1 -1
  265. package/dist/server/services/utils/populate.mjs +11 -0
  266. package/dist/server/services/utils/populate.mjs.map +1 -1
  267. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  268. package/dist/server/src/controllers/index.d.ts.map +1 -1
  269. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  270. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  271. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  272. package/dist/server/src/homepage/controllers/homepage.d.ts +7 -0
  273. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  274. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  275. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  276. package/dist/server/src/homepage/index.d.ts +16 -0
  277. package/dist/server/src/homepage/index.d.ts.map +1 -0
  278. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  279. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  280. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  281. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  282. package/dist/server/src/homepage/services/homepage.d.ts +11 -0
  283. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  284. package/dist/server/src/homepage/services/index.d.ts +9 -0
  285. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  286. package/dist/server/src/index.d.ts +8 -0
  287. package/dist/server/src/index.d.ts.map +1 -1
  288. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  289. package/dist/server/src/routes/index.d.ts +1 -0
  290. package/dist/server/src/routes/index.d.ts.map +1 -1
  291. package/dist/server/src/services/data-mapper.d.ts +1 -0
  292. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  293. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  294. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  295. package/dist/server/src/services/index.d.ts +7 -0
  296. package/dist/server/src/services/index.d.ts.map +1 -1
  297. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  298. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  299. package/dist/shared/contracts/collection-types.d.ts +0 -1
  300. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  301. package/dist/shared/contracts/homepage.d.ts +25 -0
  302. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  303. package/package.json +12 -9
  304. package/dist/admin/features/DocumentContext.js +0 -71
  305. package/dist/admin/features/DocumentContext.js.map +0 -1
  306. package/dist/admin/features/DocumentContext.mjs +0 -49
  307. package/dist/admin/features/DocumentContext.mjs.map +0 -1
  308. package/dist/admin/src/features/DocumentContext.d.ts +0 -53
@@ -6,19 +6,24 @@ 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
- var DocumentContext = require('../../../features/DocumentContext.js');
15
16
  var DocumentRBAC = require('../../../features/DocumentRBAC.js');
16
17
  var useDocument = require('../../../hooks/useDocument.js');
17
18
  var useDocumentActions = require('../../../hooks/useDocumentActions.js');
19
+ var useDocumentContext = require('../../../hooks/useDocumentContext.js');
20
+ var Preview = require('../../../preview/pages/Preview.js');
18
21
  var router = require('../../../router.js');
19
22
  var documents = require('../../../services/documents.js');
20
23
  var api = require('../../../utils/api.js');
21
24
  var translations = require('../../../utils/translations.js');
25
+ var data = require('../utils/data.js');
26
+ var RelationModal = require('./FormInputs/Relations/RelationModal.js');
22
27
 
23
28
  function _interopNamespaceDefault(e) {
24
29
  var n = Object.create(null);
@@ -39,6 +44,38 @@ function _interopNamespaceDefault(e) {
39
44
 
40
45
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
41
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
+ };
42
79
  const DocumentActions = ({ actions })=>{
43
80
  const { formatMessage } = reactIntl.useIntl();
44
81
  const [primaryAction, secondaryAction, ...restActions] = actions.filter((action)=>{
@@ -137,11 +174,6 @@ const DocumentActionButton = (action)=>{
137
174
  ]
138
175
  });
139
176
  };
140
- const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
141
- &:hover {
142
- background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
143
- }
144
- `;
145
177
  const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
146
178
  const [isOpen, setIsOpen] = React__namespace.useState(false);
147
179
  const [dialogId, setDialogId] = React__namespace.useState(null);
@@ -203,27 +235,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
203
235
  popoverPlacement: "bottom-end",
204
236
  children: [
205
237
  actions.map((action)=>{
206
- return /*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
238
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
207
239
  disabled: action.disabled,
208
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),
209
241
  display: "block",
210
- isVariantDanger: action.variant === 'danger',
211
- isDisabled: action.disabled,
242
+ variant: action.variant === 'danger' ? action.variant : 'default',
243
+ startIcon: action.icon,
212
244
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
213
245
  justifyContent: "space-between",
214
246
  gap: 4,
215
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
216
- color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
247
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
217
248
  gap: 2,
218
249
  tag: "span",
219
- children: [
220
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
221
- tag: "span",
222
- color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
223
- children: action.icon
224
- }),
225
- action.label
226
- ]
250
+ children: action.label
227
251
  })
228
252
  })
229
253
  }, action.id);
@@ -251,30 +275,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
251
275
  ]
252
276
  });
253
277
  };
254
- const convertActionVariantToColor = (variant = 'secondary')=>{
255
- switch(variant){
256
- case 'danger':
257
- return 'danger600';
258
- case 'secondary':
259
- return undefined;
260
- case 'success':
261
- return 'success600';
262
- default:
263
- return 'primary600';
264
- }
265
- };
266
- const convertActionVariantToIconColor = (variant = 'secondary')=>{
267
- switch(variant){
268
- case 'danger':
269
- return 'danger600';
270
- case 'secondary':
271
- return 'neutral500';
272
- case 'success':
273
- return 'success600';
274
- default:
275
- return 'primary600';
276
- }
277
- };
278
278
  const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
279
279
  const { formatMessage } = reactIntl.useIntl();
280
280
  const handleClose = async ()=>{
@@ -371,8 +371,8 @@ const transformData = (data)=>{
371
371
  };
372
372
  /* -------------------------------------------------------------------------------------------------
373
373
  * DocumentActionComponents
374
- * -----------------------------------------------------------------------------------------------*/ const PublishAction = ({ activeTab, documentId, model, collectionType, meta, document, onPreview, fromPreview = false, fromRelationModal = false })=>{
375
- const schema = DocumentContext.useDocumentContext('PublishAction', (state)=>state.document.schema);
374
+ * -----------------------------------------------------------------------------------------------*/ const PublishAction = ({ activeTab, documentId, model, collectionType, meta, document })=>{
375
+ const { currentDocument: { schema } } = useDocumentContext.useDocumentContext('PublishAction');
376
376
  const navigate = reactRouterDom.useNavigate();
377
377
  const { toggleNotification } = strapiAdmin.useNotification();
378
378
  const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
@@ -380,23 +380,36 @@ const transformData = (data)=>{
380
380
  const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
381
381
  const { id } = reactRouterDom.useParams();
382
382
  const { formatMessage } = reactIntl.useIntl();
383
- const canPublish = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish })=>canPublish);
384
- const { publish, isLoading } = useDocumentActions.useDocumentActions(fromPreview, fromRelationModal);
383
+ const { canPublish, canReadFields } = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
384
+ canPublish,
385
+ canReadFields
386
+ }));
387
+ const { publish, isLoading } = useDocumentActions.useDocumentActions();
388
+ const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
385
389
  const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = documents.useGetDraftRelationCountQuery();
386
390
  const [localCountOfDraftRelations, setLocalCountOfDraftRelations] = React__namespace.useState(0);
387
391
  const [serverCountOfDraftRelations, setServerCountOfDraftRelations] = React__namespace.useState(0);
388
- const [{ query, rawQuery }] = strapiAdmin.useQueryParams();
389
- const params = React__namespace.useMemo(()=>api.buildValidParams(query), [
390
- query
391
- ]);
392
+ const [{ rawQuery }] = strapiAdmin.useQueryParams();
392
393
  const modified = strapiAdmin.useForm('PublishAction', ({ modified })=>modified);
393
394
  const setSubmitting = strapiAdmin.useForm('PublishAction', ({ setSubmitting })=>setSubmitting);
394
395
  const isSubmitting = strapiAdmin.useForm('PublishAction', ({ isSubmitting })=>isSubmitting);
395
396
  const validate = strapiAdmin.useForm('PublishAction', (state)=>state.validate);
396
397
  const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
397
398
  const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
398
- const rootDocumentMeta = DocumentContext.useDocumentContext('PublishAction', (state)=>state.rootDocumentMeta);
399
- const currentDocumentMeta = DocumentContext.useDocumentContext('PublishAction', (state)=>state.meta);
399
+ const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
400
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('PublishAction');
401
+ // need to discriminate if the publish is coming from a relation modal or in the edit view
402
+ const relationContext = RelationModal.useRelationModal('PublishAction', ()=>true, false);
403
+ const fromRelationModal = relationContext != undefined;
404
+ const dispatch = RelationModal.useRelationModal('PublishAction', (state)=>state.dispatch);
405
+ const fieldToConnect = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnect, false);
406
+ const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
407
+ const documentHistory = RelationModal.useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
408
+ const rootDocumentMeta = RelationModal.useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
409
+ const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
410
+ const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
411
+ const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
412
+ const idToPublish = currentDocumentMeta.documentId || id;
400
413
  React__namespace.useEffect(()=>{
401
414
  if (isErrorDraftRelations) {
402
415
  toggleNotification({
@@ -460,7 +473,7 @@ const transformData = (data)=>{
460
473
  collectionType,
461
474
  model,
462
475
  documentId,
463
- params
476
+ params: currentDocumentMeta.params
464
477
  });
465
478
  if (error) {
466
479
  throw error;
@@ -477,8 +490,18 @@ const transformData = (data)=>{
477
490
  countDraftRelations,
478
491
  collectionType,
479
492
  model,
480
- params
493
+ currentDocumentMeta.params
481
494
  ]);
495
+ const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
496
+ const parentDocumentData = useDocument.useDocument({
497
+ documentId: parentDocumentMetaToUpdate?.documentId,
498
+ model: parentDocumentMetaToUpdate?.model,
499
+ collectionType: parentDocumentMetaToUpdate?.collectionType,
500
+ params: parentDocumentMetaToUpdate?.params
501
+ }, {
502
+ skip: !parentDocumentMetaToUpdate
503
+ });
504
+ const { getInitialFormValues } = useDocument.useDoc();
482
505
  const isDocumentPublished = (document?.[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc)=>doc[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== 'modified';
483
506
  if (!schema?.options?.draftAndPublish) {
484
507
  return null;
@@ -490,30 +513,99 @@ const transformData = (data)=>{
490
513
  status: 'published'
491
514
  });
492
515
  if (errors) {
493
- toggleNotification({
494
- type: 'danger',
495
- message: formatMessage({
496
- id: 'content-manager.validation.error',
497
- defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
498
- })
516
+ const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
517
+ const attribute = schema.attributes[fieldName];
518
+ return attribute?.required && !(canReadFields ?? []).includes(fieldName);
499
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
+ }
500
537
  return;
501
538
  }
502
- const isPublishingRelation = rootDocumentMeta.documentId !== currentDocumentMeta.documentId;
539
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(formValues), {
540
+ schema,
541
+ components
542
+ });
503
543
  const res = await publish({
504
544
  collectionType,
505
545
  model,
506
546
  documentId,
507
- params: isPublishingRelation ? currentDocumentMeta.params : params
508
- }, transformData(formValues));
547
+ params: currentDocumentMeta.params
548
+ }, data$1);
549
+ // Reset form if successful
550
+ if ('data' in res) {
551
+ resetForm();
552
+ }
509
553
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
510
554
  /**
511
555
  * TODO: refactor the router so we can just do `../${res.data.documentId}` instead of this.
512
- */ if (id === 'create') {
556
+ */ if (idToPublish === 'create' && !fromRelationModal) {
513
557
  navigate({
514
558
  pathname: `../${collectionType}/${model}/${res.data.documentId}`,
515
559
  search: rawQuery
516
560
  });
561
+ } else if (fromRelationModal) {
562
+ const newRelation = {
563
+ documentId: res.data.documentId,
564
+ collectionType,
565
+ model,
566
+ params: currentDocumentMeta.params
567
+ };
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();
574
+ const metaDocumentToUpdate = documentHistory.at(-2) ?? rootDocumentMeta;
575
+ const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
576
+ try {
577
+ const updateRes = await updateDocumentMutation({
578
+ collectionType: metaDocumentToUpdate.collectionType,
579
+ model: metaDocumentToUpdate.model,
580
+ documentId: metaDocumentToUpdate.collectionType !== collections.SINGLE_TYPES ? metaDocumentToUpdate.documentId : undefined,
581
+ params: metaDocumentToUpdate.params,
582
+ data: dataToUpdate
583
+ });
584
+ if ('error' in updateRes) {
585
+ toggleNotification({
586
+ type: 'danger',
587
+ message: formatAPIError(updateRes.error)
588
+ });
589
+ return;
590
+ }
591
+ } catch (err) {
592
+ toggleNotification({
593
+ type: 'danger',
594
+ message: formatMessage({
595
+ id: 'notification.error',
596
+ defaultMessage: 'An error occurred'
597
+ })
598
+ });
599
+ throw err;
600
+ }
601
+ }
602
+ dispatch({
603
+ type: 'GO_TO_CREATED_RELATION',
604
+ payload: {
605
+ document: newRelation,
606
+ shouldBypassConfirmation: true
607
+ }
608
+ });
517
609
  }
518
610
  } else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
519
611
  setErrors(formatValidationErrors(res.error));
@@ -579,27 +671,48 @@ PublishAction.position = [
579
671
  'preview',
580
672
  'relation-modal'
581
673
  ];
582
- const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview, fromPreview = false, fromRelationModal = false })=>{
674
+ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
583
675
  const navigate = reactRouterDom.useNavigate();
584
676
  const { toggleNotification } = strapiAdmin.useNotification();
585
677
  const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
586
678
  const cloneMatch = reactRouterDom.useMatch(router.CLONE_PATH);
587
679
  const isCloning = cloneMatch !== null;
588
680
  const { formatMessage } = reactIntl.useIntl();
589
- const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions(fromPreview, fromRelationModal);
590
- const [{ query, rawQuery }] = strapiAdmin.useQueryParams();
591
- const params = React__namespace.useMemo(()=>api.buildValidParams(query), [
592
- query
593
- ]);
681
+ const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
682
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('UpdateAction');
683
+ const [{ rawQuery }] = strapiAdmin.useQueryParams();
684
+ const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
685
+ const { getInitialFormValues } = useDocument.useDoc();
594
686
  const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
595
687
  const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
596
688
  const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
689
+ const initialValues = strapiAdmin.useForm('UpdateAction', ({ initialValues })=>initialValues);
597
690
  const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
598
691
  const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
599
692
  const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
600
- const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
601
- const rootDocumentMeta = DocumentContext.useDocumentContext('UpdateAction', (state)=>state.rootDocumentMeta);
602
- const currentDocumentMeta = DocumentContext.useDocumentContext('UpdateAction', (state)=>state.meta);
693
+ const resetForm = strapiAdmin.useForm('UpdateAction', ({ resetForm })=>resetForm);
694
+ const dispatch = RelationModal.useRelationModal('UpdateAction', (state)=>state.dispatch);
695
+ // need to discriminate if the update is coming from a relation modal or in the edit view
696
+ const relationContext = RelationModal.useRelationModal('UpdateAction', ()=>true, false);
697
+ const relationalModalSchema = RelationModal.useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
698
+ const fieldToConnect = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
699
+ const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
700
+ const documentHistory = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
701
+ const rootDocumentMeta = RelationModal.useRelationModal('UpdateAction', (state)=>state.rootDocumentMeta);
702
+ const fromRelationModal = relationContext != undefined;
703
+ const { currentDocumentMeta } = useDocumentContext.useDocumentContext('UpdateAction');
704
+ const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
705
+ const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
706
+ const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
707
+ const parentDocumentData = useDocument.useDocument({
708
+ documentId: parentDocumentMetaToUpdate?.documentId,
709
+ model: parentDocumentMetaToUpdate?.model,
710
+ collectionType: parentDocumentMetaToUpdate?.collectionType,
711
+ params: parentDocumentMetaToUpdate?.params
712
+ }, {
713
+ skip: !parentDocumentMetaToUpdate
714
+ });
715
+ const { schema } = useDocument.useDoc();
603
716
  const handleUpdate = React__namespace.useCallback(async ()=>{
604
717
  setSubmitting(true);
605
718
  try {
@@ -623,7 +736,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
623
736
  const res = await clone({
624
737
  model,
625
738
  documentId: cloneMatch.params.origin,
626
- params
739
+ params: currentDocumentMeta.params
627
740
  }, transformData(document));
628
741
  if ('data' in res) {
629
742
  navigate({
@@ -636,31 +749,91 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
636
749
  setErrors(formatValidationErrors(res.error));
637
750
  }
638
751
  } else if (documentId || collectionType === collections.SINGLE_TYPES) {
639
- const isEditingRelation = rootDocumentMeta.documentId !== currentDocumentMeta.documentId;
752
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
753
+ schema: fromRelationModal ? relationalModalSchema : schema,
754
+ initialValues,
755
+ components
756
+ });
640
757
  const res = await update({
641
758
  collectionType,
642
759
  model,
643
760
  documentId,
644
- params: isEditingRelation ? currentDocumentMeta.params : params
645
- }, transformData(document));
761
+ params: currentDocumentMeta.params
762
+ }, data$1);
646
763
  if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
647
764
  setErrors(formatValidationErrors(res.error));
648
765
  } else {
649
766
  resetForm();
650
767
  }
651
768
  } else {
769
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
770
+ schema: fromRelationModal ? relationalModalSchema : schema,
771
+ initialValues,
772
+ components
773
+ });
652
774
  const res = await create({
653
775
  model,
654
- params
655
- }, transformData(document));
776
+ params: currentDocumentMeta.params
777
+ }, data$1);
656
778
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
657
- navigate({
658
- pathname: `../${res.data.documentId}`,
659
- search: rawQuery
660
- }, {
661
- replace: true,
662
- relative: 'path'
663
- });
779
+ if (fromRelationModal) {
780
+ const createdRelation = {
781
+ documentId: res.data.documentId,
782
+ collectionType,
783
+ model,
784
+ params: currentDocumentMeta.params
785
+ };
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);
793
+ try {
794
+ const updateRes = await updateDocumentMutation({
795
+ collectionType: parentDocumentMetaToUpdate.collectionType,
796
+ model: parentDocumentMetaToUpdate.model,
797
+ documentId: parentDocumentMetaToUpdate.collectionType !== collections.SINGLE_TYPES ? parentDocumentMetaToUpdate.documentId : undefined,
798
+ params: parentDocumentMetaToUpdate.params,
799
+ data: {
800
+ ...dataToUpdate
801
+ }
802
+ });
803
+ if ('error' in updateRes) {
804
+ toggleNotification({
805
+ type: 'danger',
806
+ message: formatAPIError(updateRes.error)
807
+ });
808
+ return;
809
+ }
810
+ } catch (err) {
811
+ toggleNotification({
812
+ type: 'danger',
813
+ message: formatMessage({
814
+ id: 'notification.error',
815
+ defaultMessage: 'An error occurred'
816
+ })
817
+ });
818
+ throw err;
819
+ }
820
+ }
821
+ dispatch({
822
+ type: 'GO_TO_CREATED_RELATION',
823
+ payload: {
824
+ document: createdRelation,
825
+ shouldBypassConfirmation: true
826
+ }
827
+ });
828
+ } else {
829
+ navigate({
830
+ pathname: `../${res.data.documentId}`,
831
+ search: rawQuery
832
+ }, {
833
+ replace: true,
834
+ relative: 'path'
835
+ });
836
+ }
664
837
  } else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
665
838
  setErrors(formatValidationErrors(res.error));
666
839
  }
@@ -672,30 +845,41 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType, onPreview,
672
845
  }
673
846
  }
674
847
  }, [
848
+ setSubmitting,
849
+ modified,
850
+ validate,
851
+ isCloning,
852
+ documentId,
853
+ collectionType,
854
+ toggleNotification,
855
+ formatMessage,
675
856
  clone,
857
+ model,
676
858
  cloneMatch?.params.origin,
677
- collectionType,
678
- create,
679
- currentDocumentMeta.documentId,
680
859
  currentDocumentMeta.params,
681
860
  document,
682
- documentId,
683
- formatMessage,
684
- formatValidationErrors,
685
- isCloning,
686
- model,
687
- modified,
688
861
  navigate,
689
- onPreview,
690
- params,
691
862
  rawQuery,
692
- resetForm,
693
- rootDocumentMeta.documentId,
694
863
  setErrors,
695
- setSubmitting,
696
- toggleNotification,
864
+ formatValidationErrors,
697
865
  update,
698
- validate
866
+ resetForm,
867
+ create,
868
+ fromRelationModal,
869
+ fieldToConnect,
870
+ documentHistory,
871
+ parentDocumentMetaToUpdate,
872
+ dispatch,
873
+ getInitialFormValues,
874
+ parentDocumentData,
875
+ fieldToConnectUID,
876
+ updateDocumentMutation,
877
+ formatAPIError,
878
+ onPreview,
879
+ initialValues,
880
+ schema,
881
+ components,
882
+ relationalModalSchema
699
883
  ]);
700
884
  // Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
701
885
  React__namespace.useEffect(()=>{