@strapi/content-manager 0.0.0-experimental.e9303c99ae3c28b4b8421ab6971efae0748dd599 → 0.0.0-experimental.e99215433ba1d6e5497350812df274f426dbdba3

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 (397) hide show
  1. package/dist/admin/components/ConfigurationForm/EditFieldForm.js +1 -1
  2. package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs +1 -1
  4. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/Fields.js +304 -205
  6. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/Fields.mjs +309 -211
  8. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  10. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  11. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  12. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  13. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  14. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  15. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  16. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  22. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  23. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  24. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  25. package/dist/admin/components/LeftMenu.js +94 -50
  26. package/dist/admin/components/LeftMenu.js.map +1 -1
  27. package/dist/admin/components/LeftMenu.mjs +97 -53
  28. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  29. package/dist/admin/components/Widgets.js +287 -11
  30. package/dist/admin/components/Widgets.js.map +1 -1
  31. package/dist/admin/components/Widgets.mjs +270 -14
  32. package/dist/admin/components/Widgets.mjs.map +1 -1
  33. package/dist/admin/history/components/VersionContent.js +24 -3
  34. package/dist/admin/history/components/VersionContent.js.map +1 -1
  35. package/dist/admin/history/components/VersionContent.mjs +25 -4
  36. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  37. package/dist/admin/history/components/VersionHeader.js +7 -0
  38. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  39. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  40. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  41. package/dist/admin/history/components/VersionsList.js +1 -1
  42. package/dist/admin/history/components/VersionsList.js.map +1 -1
  43. package/dist/admin/history/components/VersionsList.mjs +1 -1
  44. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  45. package/dist/admin/history/pages/History.js +7 -7
  46. package/dist/admin/history/pages/History.js.map +1 -1
  47. package/dist/admin/history/pages/History.mjs +7 -7
  48. package/dist/admin/history/pages/History.mjs.map +1 -1
  49. package/dist/admin/hooks/useDocumentActions.js +12 -7
  50. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  51. package/dist/admin/hooks/useDocumentActions.mjs +13 -8
  52. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  53. package/dist/admin/hooks/useDocumentContext.js.map +1 -1
  54. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -1
  55. package/dist/admin/index.js +48 -11
  56. package/dist/admin/index.js.map +1 -1
  57. package/dist/admin/index.mjs +47 -9
  58. package/dist/admin/index.mjs.map +1 -1
  59. package/dist/admin/layout.js +28 -33
  60. package/dist/admin/layout.js.map +1 -1
  61. package/dist/admin/layout.mjs +29 -15
  62. package/dist/admin/layout.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/EditViewPage.js +98 -77
  64. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  65. package/dist/admin/pages/EditView/EditViewPage.mjs +100 -79
  66. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  67. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  68. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  69. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  70. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  71. package/dist/admin/pages/EditView/components/DocumentActions.js +310 -91
  72. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/DocumentActions.mjs +314 -95
  74. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
  76. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
  78. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  80. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  82. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
  84. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
  86. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  88. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  90. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +2 -2
  92. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +2 -2
  94. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
  96. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
  98. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  100. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  102. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +17 -3
  104. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +18 -4
  106. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  108. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  110. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +22 -8
  112. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +24 -10
  114. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +129 -55
  116. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +129 -55
  118. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +126 -34
  120. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +130 -38
  122. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/UID.js +6 -3
  124. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +6 -3
  126. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  128. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  130. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +2 -2
  132. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +2 -2
  134. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  136. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  138. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  140. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  142. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  143. package/dist/admin/pages/EditView/components/Header.js +85 -25
  144. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  145. package/dist/admin/pages/EditView/components/Header.mjs +87 -27
  146. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  147. package/dist/admin/pages/EditView/components/InputRenderer.js +20 -7
  148. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  149. package/dist/admin/pages/EditView/components/InputRenderer.mjs +20 -7
  150. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  151. package/dist/admin/pages/EditView/utils/data.js +128 -0
  152. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  153. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  154. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  155. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  156. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  157. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  158. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  159. package/dist/admin/pages/ListView/ListViewPage.js +227 -132
  160. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  161. package/dist/admin/pages/ListView/ListViewPage.mjs +229 -134
  162. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  163. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  164. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  165. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  166. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  167. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
  168. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  169. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
  170. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  171. package/dist/admin/pages/ListView/components/Filters.js +8 -2
  172. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  173. package/dist/admin/pages/ListView/components/Filters.mjs +8 -2
  174. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  175. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  176. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  177. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  178. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  179. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
  180. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  181. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
  182. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  183. package/dist/admin/preview/components/InputPopover.js +189 -0
  184. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  185. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  186. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  187. package/dist/admin/preview/components/PreviewHeader.js +0 -1
  188. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  189. package/dist/admin/preview/components/PreviewHeader.mjs +0 -1
  190. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  191. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  192. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  193. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  194. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  195. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  196. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  197. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  198. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  199. package/dist/admin/preview/pages/Preview.js +178 -74
  200. package/dist/admin/preview/pages/Preview.js.map +1 -1
  201. package/dist/admin/preview/pages/Preview.mjs +180 -76
  202. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  203. package/dist/admin/preview/utils/constants.js +56 -0
  204. package/dist/admin/preview/utils/constants.js.map +1 -0
  205. package/dist/admin/preview/utils/constants.mjs +52 -0
  206. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  207. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  208. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  209. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  210. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  211. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  212. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  213. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  214. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  215. package/dist/admin/preview/utils/previewScript.js +534 -0
  216. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  217. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  218. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  219. package/dist/admin/services/api.js +4 -1
  220. package/dist/admin/services/api.js.map +1 -1
  221. package/dist/admin/services/api.mjs +4 -1
  222. package/dist/admin/services/api.mjs.map +1 -1
  223. package/dist/admin/services/documents.js +51 -17
  224. package/dist/admin/services/documents.js.map +1 -1
  225. package/dist/admin/services/documents.mjs +51 -17
  226. package/dist/admin/services/documents.mjs.map +1 -1
  227. package/dist/admin/services/homepage.js +8 -4
  228. package/dist/admin/services/homepage.js.map +1 -1
  229. package/dist/admin/services/homepage.mjs +8 -4
  230. package/dist/admin/services/homepage.mjs.map +1 -1
  231. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  232. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  233. package/dist/admin/src/components/Widgets.d.ts +8 -3
  234. package/dist/admin/src/exports.d.ts +1 -0
  235. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  236. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  237. package/dist/admin/src/hooks/useDocumentContext.d.ts +1 -1
  238. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  239. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
  240. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +26 -5
  241. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  242. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  243. package/dist/admin/src/pages/EditView/components/Header.d.ts +4 -0
  244. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  245. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  246. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  247. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  248. package/dist/admin/src/preview/pages/Preview.d.ts +12 -0
  249. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  250. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  251. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  252. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  253. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  254. package/dist/admin/src/services/api.d.ts +1 -1
  255. package/dist/admin/src/services/components.d.ts +2 -2
  256. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  257. package/dist/admin/src/services/documents.d.ts +23 -17
  258. package/dist/admin/src/services/homepage.d.ts +1 -1
  259. package/dist/admin/src/services/init.d.ts +1 -1
  260. package/dist/admin/src/services/relations.d.ts +2 -2
  261. package/dist/admin/src/services/uid.d.ts +3 -3
  262. package/dist/admin/src/utils/api.d.ts +1 -1
  263. package/dist/admin/src/utils/validation.d.ts +1 -0
  264. package/dist/admin/translations/en.json.js +15 -1
  265. package/dist/admin/translations/en.json.js.map +1 -1
  266. package/dist/admin/translations/en.json.mjs +15 -1
  267. package/dist/admin/translations/en.json.mjs.map +1 -1
  268. package/dist/admin/translations/es.json.js +6 -2
  269. package/dist/admin/translations/es.json.js.map +1 -1
  270. package/dist/admin/translations/es.json.mjs +6 -2
  271. package/dist/admin/translations/es.json.mjs.map +1 -1
  272. package/dist/admin/translations/fr.json.js +11 -2
  273. package/dist/admin/translations/fr.json.js.map +1 -1
  274. package/dist/admin/translations/fr.json.mjs +11 -2
  275. package/dist/admin/translations/fr.json.mjs.map +1 -1
  276. package/dist/admin/translations/ru.json.js +235 -226
  277. package/dist/admin/translations/ru.json.js.map +1 -1
  278. package/dist/admin/translations/ru.json.mjs +230 -226
  279. package/dist/admin/translations/ru.json.mjs.map +1 -1
  280. package/dist/admin/utils/api.js +1 -1
  281. package/dist/admin/utils/api.js.map +1 -1
  282. package/dist/admin/utils/api.mjs +1 -1
  283. package/dist/admin/utils/api.mjs.map +1 -1
  284. package/dist/admin/utils/validation.js +19 -7
  285. package/dist/admin/utils/validation.js.map +1 -1
  286. package/dist/admin/utils/validation.mjs +19 -7
  287. package/dist/admin/utils/validation.mjs.map +1 -1
  288. package/dist/server/controllers/collection-types.js +22 -2
  289. package/dist/server/controllers/collection-types.js.map +1 -1
  290. package/dist/server/controllers/collection-types.mjs +22 -2
  291. package/dist/server/controllers/collection-types.mjs.map +1 -1
  292. package/dist/server/controllers/content-types.js +11 -1
  293. package/dist/server/controllers/content-types.js.map +1 -1
  294. package/dist/server/controllers/content-types.mjs +11 -1
  295. package/dist/server/controllers/content-types.mjs.map +1 -1
  296. package/dist/server/controllers/relations.js +8 -6
  297. package/dist/server/controllers/relations.js.map +1 -1
  298. package/dist/server/controllers/relations.mjs +8 -6
  299. package/dist/server/controllers/relations.mjs.map +1 -1
  300. package/dist/server/controllers/single-types.js +9 -0
  301. package/dist/server/controllers/single-types.js.map +1 -1
  302. package/dist/server/controllers/single-types.mjs +9 -0
  303. package/dist/server/controllers/single-types.mjs.map +1 -1
  304. package/dist/server/controllers/validation/index.js +14 -2
  305. package/dist/server/controllers/validation/index.js.map +1 -1
  306. package/dist/server/controllers/validation/index.mjs +14 -2
  307. package/dist/server/controllers/validation/index.mjs.map +1 -1
  308. package/dist/server/history/services/lifecycles.js +23 -19
  309. package/dist/server/history/services/lifecycles.js.map +1 -1
  310. package/dist/server/history/services/lifecycles.mjs +23 -19
  311. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  312. package/dist/server/homepage/controllers/homepage.js +5 -0
  313. package/dist/server/homepage/controllers/homepage.js.map +1 -1
  314. package/dist/server/homepage/controllers/homepage.mjs +5 -0
  315. package/dist/server/homepage/controllers/homepage.mjs.map +1 -1
  316. package/dist/server/homepage/routes/homepage.js +11 -0
  317. package/dist/server/homepage/routes/homepage.js.map +1 -1
  318. package/dist/server/homepage/routes/homepage.mjs +11 -0
  319. package/dist/server/homepage/routes/homepage.mjs.map +1 -1
  320. package/dist/server/homepage/services/homepage.js +86 -46
  321. package/dist/server/homepage/services/homepage.js.map +1 -1
  322. package/dist/server/homepage/services/homepage.mjs +86 -46
  323. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  324. package/dist/server/preview/services/preview-config.js +11 -32
  325. package/dist/server/preview/services/preview-config.js.map +1 -1
  326. package/dist/server/preview/services/preview-config.mjs +12 -33
  327. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  328. package/dist/server/preview/services/preview.js +4 -0
  329. package/dist/server/preview/services/preview.js.map +1 -1
  330. package/dist/server/preview/services/preview.mjs +4 -0
  331. package/dist/server/preview/services/preview.mjs.map +1 -1
  332. package/dist/server/services/data-mapper.js +4 -1
  333. package/dist/server/services/data-mapper.js.map +1 -1
  334. package/dist/server/services/data-mapper.mjs +4 -1
  335. package/dist/server/services/data-mapper.mjs.map +1 -1
  336. package/dist/server/services/document-manager.js +8 -1
  337. package/dist/server/services/document-manager.js.map +1 -1
  338. package/dist/server/services/document-manager.mjs +8 -1
  339. package/dist/server/services/document-manager.mjs.map +1 -1
  340. package/dist/server/services/document-metadata.js +3 -1
  341. package/dist/server/services/document-metadata.js.map +1 -1
  342. package/dist/server/services/document-metadata.mjs +3 -1
  343. package/dist/server/services/document-metadata.mjs.map +1 -1
  344. package/dist/server/services/utils/configuration/attributes.js +1 -1
  345. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  346. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  347. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  348. package/dist/server/services/utils/configuration/layouts.js +1 -1
  349. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  350. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  351. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  352. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  353. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  354. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  355. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  356. package/dist/server/services/utils/populate.js +11 -0
  357. package/dist/server/services/utils/populate.js.map +1 -1
  358. package/dist/server/services/utils/populate.mjs +11 -0
  359. package/dist/server/services/utils/populate.mjs.map +1 -1
  360. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  361. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  362. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  363. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  364. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  365. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  366. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  367. package/dist/server/src/homepage/controllers/homepage.d.ts +2 -1
  368. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
  369. package/dist/server/src/homepage/index.d.ts +7 -0
  370. package/dist/server/src/homepage/index.d.ts.map +1 -1
  371. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -1
  372. package/dist/server/src/homepage/services/homepage.d.ts +4 -1
  373. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  374. package/dist/server/src/homepage/services/index.d.ts +7 -0
  375. package/dist/server/src/homepage/services/index.d.ts.map +1 -1
  376. package/dist/server/src/index.d.ts +8 -0
  377. package/dist/server/src/index.d.ts.map +1 -1
  378. package/dist/server/src/preview/services/index.d.ts +1 -0
  379. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  380. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  381. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  382. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  383. package/dist/server/src/preview/utils.d.ts +1 -0
  384. package/dist/server/src/preview/utils.d.ts.map +1 -1
  385. package/dist/server/src/services/data-mapper.d.ts +1 -0
  386. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  387. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  388. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  389. package/dist/server/src/services/index.d.ts +8 -0
  390. package/dist/server/src/services/index.d.ts.map +1 -1
  391. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  392. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  393. package/dist/shared/contracts/collection-types.d.ts +0 -1
  394. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  395. package/dist/shared/contracts/homepage.d.ts +13 -0
  396. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  397. package/package.json +11 -9
@@ -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');
@@ -20,6 +22,8 @@ var router = require('../../../router.js');
20
22
  var documents = require('../../../services/documents.js');
21
23
  var api = require('../../../utils/api.js');
22
24
  var translations = require('../../../utils/translations.js');
25
+ var data = require('../utils/data.js');
26
+ var RelationModal = require('./FormInputs/Relations/RelationModal.js');
23
27
 
24
28
  function _interopNamespaceDefault(e) {
25
29
  var n = Object.create(null);
@@ -40,6 +44,38 @@ function _interopNamespaceDefault(e) {
40
44
 
41
45
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
42
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
+ };
43
79
  const DocumentActions = ({ actions })=>{
44
80
  const { formatMessage } = reactIntl.useIntl();
45
81
  const [primaryAction, secondaryAction, ...restActions] = actions.filter((action)=>{
@@ -60,23 +96,33 @@ const DocumentActions = ({ actions })=>{
60
96
  alignItems: "stretch",
61
97
  width: "100%",
62
98
  children: [
63
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
64
- gap: 2,
65
- children: [
66
- /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
67
- ...primaryAction,
68
- variant: primaryAction.variant || 'default'
69
- }),
70
- restActions.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionsMenu, {
71
- actions: restActions,
72
- label: formatMessage({
73
- id: 'content-manager.containers.edit.panels.default.more-actions',
74
- defaultMessage: 'More document actions'
75
- })
76
- }) : null
77
- ]
99
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentManager.Publish, {
100
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
101
+ gap: 2,
102
+ children: [
103
+ primaryAction.label === 'Publish' ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
104
+ ...primaryAction,
105
+ variant: primaryAction.variant || 'default'
106
+ }) : /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
107
+ ...primaryAction,
108
+ variant: primaryAction.variant || 'default'
109
+ }),
110
+ restActions.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionsMenu, {
111
+ actions: restActions,
112
+ label: formatMessage({
113
+ id: 'content-manager.containers.edit.panels.default.more-actions',
114
+ defaultMessage: 'More document actions'
115
+ })
116
+ }) : null
117
+ ]
118
+ })
78
119
  }),
79
- secondaryAction ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
120
+ secondaryAction ? secondaryAction.label === 'Publish' ? /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentManager.Publish, {
121
+ children: /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
122
+ ...secondaryAction,
123
+ variant: secondaryAction.variant || 'secondary'
124
+ })
125
+ }) : /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
80
126
  ...secondaryAction,
81
127
  variant: secondaryAction.variant || 'secondary'
82
128
  }) : null
@@ -138,11 +184,6 @@ const DocumentActionButton = (action)=>{
138
184
  ]
139
185
  });
140
186
  };
141
- const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
142
- &:hover {
143
- background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
144
- }
145
- `;
146
187
  const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
147
188
  const [isOpen, setIsOpen] = React__namespace.useState(false);
148
189
  const [dialogId, setDialogId] = React__namespace.useState(null);
@@ -204,27 +245,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
204
245
  popoverPlacement: "bottom-end",
205
246
  children: [
206
247
  actions.map((action)=>{
207
- return /*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
248
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
208
249
  disabled: action.disabled,
209
250
  /* @ts-expect-error – TODO: this is an error in the DS where it is most likely a synthetic event, not regular. */ onSelect: handleClick(action),
210
251
  display: "block",
211
- isVariantDanger: action.variant === 'danger',
212
- isDisabled: action.disabled,
252
+ variant: action.variant === 'danger' ? action.variant : 'default',
253
+ startIcon: action.icon,
213
254
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
214
255
  justifyContent: "space-between",
215
256
  gap: 4,
216
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
217
- color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
257
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
218
258
  gap: 2,
219
259
  tag: "span",
220
- children: [
221
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
222
- tag: "span",
223
- color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
224
- children: action.icon
225
- }),
226
- action.label
227
- ]
260
+ children: action.label
228
261
  })
229
262
  })
230
263
  }, action.id);
@@ -252,30 +285,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
252
285
  ]
253
286
  });
254
287
  };
255
- const convertActionVariantToColor = (variant = 'secondary')=>{
256
- switch(variant){
257
- case 'danger':
258
- return 'danger600';
259
- case 'secondary':
260
- return undefined;
261
- case 'success':
262
- return 'success600';
263
- default:
264
- return 'primary600';
265
- }
266
- };
267
- const convertActionVariantToIconColor = (variant = 'secondary')=>{
268
- switch(variant){
269
- case 'danger':
270
- return 'danger600';
271
- case 'secondary':
272
- return 'neutral500';
273
- case 'success':
274
- return 'success600';
275
- default:
276
- return 'primary600';
277
- }
278
- };
279
288
  const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
280
289
  const { formatMessage } = reactIntl.useIntl();
281
290
  const handleClose = async ()=>{
@@ -381,7 +390,10 @@ const transformData = (data)=>{
381
390
  const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
382
391
  const { id } = reactRouterDom.useParams();
383
392
  const { formatMessage } = reactIntl.useIntl();
384
- const canPublish = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish })=>canPublish);
393
+ const { canPublish, canReadFields } = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
394
+ canPublish,
395
+ canReadFields
396
+ }));
385
397
  const { publish, isLoading } = useDocumentActions.useDocumentActions();
386
398
  const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
387
399
  const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = documents.useGetDraftRelationCountQuery();
@@ -395,7 +407,19 @@ const transformData = (data)=>{
395
407
  const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
396
408
  const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
397
409
  const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
410
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('PublishAction');
411
+ // need to discriminate if the publish is coming from a relation modal or in the edit view
412
+ const relationContext = RelationModal.useRelationModal('PublishAction', ()=>true, false);
413
+ const fromRelationModal = relationContext != undefined;
414
+ const dispatch = RelationModal.useRelationModal('PublishAction', (state)=>state.dispatch);
415
+ const fieldToConnect = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnect, false);
416
+ const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
417
+ const documentHistory = RelationModal.useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
418
+ const rootDocumentMeta = RelationModal.useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
419
+ const dispatchGuidedTour = strapiAdmin.useGuidedTour('PublishAction', (s)=>s.dispatch);
398
420
  const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
421
+ const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
422
+ const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
399
423
  const idToPublish = currentDocumentMeta.documentId || id;
400
424
  React__namespace.useEffect(()=>{
401
425
  if (isErrorDraftRelations) {
@@ -479,6 +503,16 @@ const transformData = (data)=>{
479
503
  model,
480
504
  currentDocumentMeta.params
481
505
  ]);
506
+ const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
507
+ const parentDocumentData = useDocument.useDocument({
508
+ documentId: parentDocumentMetaToUpdate?.documentId,
509
+ model: parentDocumentMetaToUpdate?.model,
510
+ collectionType: parentDocumentMetaToUpdate?.collectionType,
511
+ params: parentDocumentMetaToUpdate?.params
512
+ }, {
513
+ skip: !parentDocumentMetaToUpdate
514
+ });
515
+ const { getInitialFormValues } = useDocument.useDoc();
482
516
  const isDocumentPublished = (document?.[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc)=>doc[attributes.PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== 'modified';
483
517
  if (!schema?.options?.draftAndPublish) {
484
518
  return null;
@@ -490,33 +524,111 @@ const transformData = (data)=>{
490
524
  status: 'published'
491
525
  });
492
526
  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
- })
527
+ const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
528
+ const attribute = schema.attributes[fieldName];
529
+ // For components, check if any of the component fields are readable
530
+ if (attribute.type === 'component') {
531
+ const componentFields = (canReadFields ?? []).filter((field)=>field.startsWith(`${fieldName}.`));
532
+ return componentFields.length === 0;
533
+ }
534
+ // For regular fields, check if the field itself is readable
535
+ return attribute?.required && !(canReadFields ?? []).includes(fieldName);
499
536
  });
537
+ if (hasUnreadableRequiredField) {
538
+ toggleNotification({
539
+ type: 'danger',
540
+ message: formatMessage({
541
+ id: 'content-manager.validation.error.unreadable-required-field',
542
+ defaultMessage: 'Your current permissions prevent access to certain required fields. Please request access from an administrator to proceed.'
543
+ })
544
+ });
545
+ } else {
546
+ toggleNotification({
547
+ type: 'danger',
548
+ message: formatMessage({
549
+ id: 'content-manager.validation.error',
550
+ defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
551
+ })
552
+ });
553
+ }
500
554
  return;
501
555
  }
556
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(formValues), {
557
+ schema,
558
+ components
559
+ });
502
560
  const res = await publish({
503
561
  collectionType,
504
562
  model,
505
563
  documentId,
506
564
  params: currentDocumentMeta.params
507
- }, transformData(formValues));
565
+ }, data$1);
508
566
  // Reset form if successful
509
567
  if ('data' in res) {
510
568
  resetForm();
569
+ dispatchGuidedTour({
570
+ type: 'set_completed_actions',
571
+ payload: [
572
+ strapiAdmin.GUIDED_TOUR_REQUIRED_ACTIONS.contentManager.createContent
573
+ ]
574
+ });
511
575
  }
512
576
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
513
577
  /**
514
578
  * TODO: refactor the router so we can just do `../${res.data.documentId}` instead of this.
515
- */ if (idToPublish === 'create') {
579
+ */ if (idToPublish === 'create' && !fromRelationModal) {
516
580
  navigate({
517
581
  pathname: `../${collectionType}/${model}/${res.data.documentId}`,
518
582
  search: rawQuery
519
583
  });
584
+ } else if (fromRelationModal) {
585
+ const newRelation = {
586
+ documentId: res.data.documentId,
587
+ collectionType,
588
+ model,
589
+ params: currentDocumentMeta.params
590
+ };
591
+ /*
592
+ * Update, if needed, the parent relation with the newly published document.
593
+ * Check if in history we have the parent relation otherwise use the
594
+ * rootDocument
595
+ */ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
596
+ const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
597
+ const metaDocumentToUpdate = documentHistory.at(-2) ?? rootDocumentMeta;
598
+ const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
599
+ try {
600
+ const updateRes = await updateDocumentMutation({
601
+ collectionType: metaDocumentToUpdate.collectionType,
602
+ model: metaDocumentToUpdate.model,
603
+ documentId: metaDocumentToUpdate.collectionType !== collections.SINGLE_TYPES ? metaDocumentToUpdate.documentId : undefined,
604
+ params: metaDocumentToUpdate.params,
605
+ data: dataToUpdate
606
+ });
607
+ if ('error' in updateRes) {
608
+ toggleNotification({
609
+ type: 'danger',
610
+ message: formatAPIError(updateRes.error)
611
+ });
612
+ return;
613
+ }
614
+ } catch (err) {
615
+ toggleNotification({
616
+ type: 'danger',
617
+ message: formatMessage({
618
+ id: 'notification.error',
619
+ defaultMessage: 'An error occurred'
620
+ })
621
+ });
622
+ throw err;
623
+ }
624
+ }
625
+ dispatch({
626
+ type: 'GO_TO_CREATED_RELATION',
627
+ payload: {
628
+ document: newRelation,
629
+ shouldBypassConfirmation: true
630
+ }
631
+ });
520
632
  }
521
633
  } else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
522
634
  setErrors(formatValidationErrors(res.error));
@@ -583,6 +695,7 @@ PublishAction.position = [
583
695
  'relation-modal'
584
696
  ];
585
697
  const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
698
+ const dispatchGuidedTour = strapiAdmin.useGuidedTour('UpdateAction', (s)=>s.dispatch);
586
699
  const navigate = reactRouterDom.useNavigate();
587
700
  const { toggleNotification } = strapiAdmin.useNotification();
588
701
  const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
@@ -590,16 +703,40 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
590
703
  const isCloning = cloneMatch !== null;
591
704
  const { formatMessage } = reactIntl.useIntl();
592
705
  const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
706
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('UpdateAction');
593
707
  const [{ rawQuery }] = strapiAdmin.useQueryParams();
594
708
  const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
709
+ const { getInitialFormValues } = useDocument.useDoc();
595
710
  const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
596
711
  const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
597
712
  const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
713
+ const initialValues = strapiAdmin.useForm('UpdateAction', ({ initialValues })=>initialValues);
598
714
  const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
599
715
  const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
600
716
  const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
601
- const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
717
+ const resetForm = strapiAdmin.useForm('UpdateAction', ({ resetForm })=>resetForm);
718
+ const dispatch = RelationModal.useRelationModal('UpdateAction', (state)=>state.dispatch);
719
+ // need to discriminate if the update is coming from a relation modal or in the edit view
720
+ const relationContext = RelationModal.useRelationModal('UpdateAction', ()=>true, false);
721
+ const relationalModalSchema = RelationModal.useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
722
+ const fieldToConnect = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
723
+ const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
724
+ const documentHistory = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
725
+ const rootDocumentMeta = RelationModal.useRelationModal('UpdateAction', (state)=>state.rootDocumentMeta);
726
+ const fromRelationModal = relationContext != undefined;
602
727
  const { currentDocumentMeta } = useDocumentContext.useDocumentContext('UpdateAction');
728
+ const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
729
+ const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
730
+ const parentDocumentMetaToUpdate = documentHistory?.at(-2) ?? rootDocumentMeta;
731
+ const parentDocumentData = useDocument.useDocument({
732
+ documentId: parentDocumentMetaToUpdate?.documentId,
733
+ model: parentDocumentMetaToUpdate?.model,
734
+ collectionType: parentDocumentMetaToUpdate?.collectionType,
735
+ params: parentDocumentMetaToUpdate?.params
736
+ }, {
737
+ skip: !parentDocumentMetaToUpdate
738
+ });
739
+ const { schema } = useDocument.useDoc();
603
740
  const handleUpdate = React__namespace.useCallback(async ()=>{
604
741
  setSubmitting(true);
605
742
  try {
@@ -636,62 +773,144 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
636
773
  setErrors(formatValidationErrors(res.error));
637
774
  }
638
775
  } else if (documentId || collectionType === collections.SINGLE_TYPES) {
776
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
777
+ schema: fromRelationModal ? relationalModalSchema : schema,
778
+ initialValues,
779
+ components
780
+ });
639
781
  const res = await update({
640
782
  collectionType,
641
783
  model,
642
784
  documentId,
643
785
  params: currentDocumentMeta.params
644
- }, transformData(document));
786
+ }, data$1);
645
787
  if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
646
788
  setErrors(formatValidationErrors(res.error));
647
789
  } else {
648
790
  resetForm();
649
791
  }
650
792
  } else {
793
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
794
+ schema: fromRelationModal ? relationalModalSchema : schema,
795
+ initialValues,
796
+ components
797
+ });
651
798
  const res = await create({
652
799
  model,
653
800
  params: currentDocumentMeta.params
654
- }, transformData(document));
801
+ }, data$1);
655
802
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
656
- navigate({
657
- pathname: `../${res.data.documentId}`,
658
- search: rawQuery
659
- }, {
660
- replace: true,
661
- relative: 'path'
662
- });
803
+ if (fromRelationModal) {
804
+ const createdRelation = {
805
+ documentId: res.data.documentId,
806
+ collectionType,
807
+ model,
808
+ params: currentDocumentMeta.params
809
+ };
810
+ /*
811
+ * Update, if needed, the parent relation with the newly published document.
812
+ * Check if in history we have the parent relation otherwise use the
813
+ * rootDocument
814
+ */ if (fieldToConnect && documentHistory && (parentDocumentMetaToUpdate.documentId || parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES)) {
815
+ const parentDataToUpdate = parentDocumentMetaToUpdate.collectionType === collections.SINGLE_TYPES ? getInitialFormValues() : parentDocumentData.getInitialFormValues();
816
+ const dataToUpdate = connectRelationToParent(parentDataToUpdate, fieldToConnect, res.data, fieldToConnectUID);
817
+ try {
818
+ const updateRes = await updateDocumentMutation({
819
+ collectionType: parentDocumentMetaToUpdate.collectionType,
820
+ model: parentDocumentMetaToUpdate.model,
821
+ documentId: parentDocumentMetaToUpdate.collectionType !== collections.SINGLE_TYPES ? parentDocumentMetaToUpdate.documentId : undefined,
822
+ params: parentDocumentMetaToUpdate.params,
823
+ data: {
824
+ ...dataToUpdate
825
+ }
826
+ });
827
+ if ('error' in updateRes) {
828
+ toggleNotification({
829
+ type: 'danger',
830
+ message: formatAPIError(updateRes.error)
831
+ });
832
+ return;
833
+ }
834
+ } catch (err) {
835
+ toggleNotification({
836
+ type: 'danger',
837
+ message: formatMessage({
838
+ id: 'notification.error',
839
+ defaultMessage: 'An error occurred'
840
+ })
841
+ });
842
+ throw err;
843
+ }
844
+ }
845
+ dispatch({
846
+ type: 'GO_TO_CREATED_RELATION',
847
+ payload: {
848
+ document: createdRelation,
849
+ shouldBypassConfirmation: true
850
+ }
851
+ });
852
+ } else {
853
+ navigate({
854
+ pathname: `../${res.data.documentId}`,
855
+ search: rawQuery
856
+ }, {
857
+ replace: true,
858
+ relative: 'path'
859
+ });
860
+ }
663
861
  } else if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
664
862
  setErrors(formatValidationErrors(res.error));
665
863
  }
666
864
  }
667
865
  } finally{
866
+ dispatchGuidedTour({
867
+ type: 'set_completed_actions',
868
+ payload: [
869
+ strapiAdmin.GUIDED_TOUR_REQUIRED_ACTIONS.contentManager.createContent
870
+ ]
871
+ });
668
872
  setSubmitting(false);
669
873
  if (onPreview) {
670
874
  onPreview();
671
875
  }
672
876
  }
673
877
  }, [
878
+ setSubmitting,
879
+ modified,
880
+ validate,
881
+ isCloning,
882
+ documentId,
883
+ collectionType,
884
+ toggleNotification,
885
+ formatMessage,
674
886
  clone,
887
+ model,
675
888
  cloneMatch?.params.origin,
676
- collectionType,
677
- create,
678
889
  currentDocumentMeta.params,
679
890
  document,
680
- documentId,
681
- formatMessage,
682
- formatValidationErrors,
683
- isCloning,
684
- model,
685
- modified,
686
891
  navigate,
687
892
  rawQuery,
688
- resetForm,
689
893
  setErrors,
690
- setSubmitting,
691
- toggleNotification,
894
+ formatValidationErrors,
692
895
  update,
693
- validate,
694
- onPreview
896
+ resetForm,
897
+ create,
898
+ fromRelationModal,
899
+ fieldToConnect,
900
+ documentHistory,
901
+ parentDocumentMetaToUpdate,
902
+ dispatch,
903
+ getInitialFormValues,
904
+ parentDocumentData,
905
+ fieldToConnectUID,
906
+ updateDocumentMutation,
907
+ formatAPIError,
908
+ onPreview,
909
+ initialValues,
910
+ schema,
911
+ components,
912
+ relationalModalSchema,
913
+ dispatchGuidedTour
695
914
  ]);
696
915
  // Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
697
916
  React__namespace.useEffect(()=>{