@strapi/content-manager 0.0.0-experimental.c72b48da735f44a3ccafb7a6dc9ba5213f3844db → 0.0.0-experimental.cad2fba5593c9ceddfc264fcecd9313a7f866d1a

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 (455) hide show
  1. package/dist/admin/components/ComponentIcon.js +3 -0
  2. package/dist/admin/components/ComponentIcon.js.map +1 -1
  3. package/dist/admin/components/ComponentIcon.mjs +3 -0
  4. package/dist/admin/components/ComponentIcon.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/EditFieldForm.js +1 -1
  6. package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs +1 -1
  8. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Fields.js +304 -205
  10. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  11. package/dist/admin/components/ConfigurationForm/Fields.mjs +309 -211
  12. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  13. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  14. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  15. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  16. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  22. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  23. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  24. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  25. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  26. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  27. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  28. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  29. package/dist/admin/components/LeftMenu.js +94 -50
  30. package/dist/admin/components/LeftMenu.js.map +1 -1
  31. package/dist/admin/components/LeftMenu.mjs +97 -53
  32. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  33. package/dist/admin/components/RelativeTime.js.map +1 -1
  34. package/dist/admin/components/RelativeTime.mjs.map +1 -1
  35. package/dist/admin/components/Widgets.js +287 -11
  36. package/dist/admin/components/Widgets.js.map +1 -1
  37. package/dist/admin/components/Widgets.mjs +270 -14
  38. package/dist/admin/components/Widgets.mjs.map +1 -1
  39. package/dist/admin/content-manager.js.map +1 -1
  40. package/dist/admin/content-manager.mjs.map +1 -1
  41. package/dist/admin/history/components/HistoryAction.js.map +1 -1
  42. package/dist/admin/history/components/HistoryAction.mjs.map +1 -1
  43. package/dist/admin/history/components/VersionContent.js +24 -3
  44. package/dist/admin/history/components/VersionContent.js.map +1 -1
  45. package/dist/admin/history/components/VersionContent.mjs +25 -4
  46. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  47. package/dist/admin/history/components/VersionHeader.js +7 -0
  48. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  49. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  50. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  51. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  52. package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
  53. package/dist/admin/history/components/VersionsList.js +1 -1
  54. package/dist/admin/history/components/VersionsList.js.map +1 -1
  55. package/dist/admin/history/components/VersionsList.mjs +1 -1
  56. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  57. package/dist/admin/history/pages/History.js +7 -7
  58. package/dist/admin/history/pages/History.js.map +1 -1
  59. package/dist/admin/history/pages/History.mjs +7 -7
  60. package/dist/admin/history/pages/History.mjs.map +1 -1
  61. package/dist/admin/history/services/historyVersion.js.map +1 -1
  62. package/dist/admin/history/services/historyVersion.mjs.map +1 -1
  63. package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
  64. package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
  65. package/dist/admin/hooks/useDocumentActions.js +31 -11
  66. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  67. package/dist/admin/hooks/useDocumentActions.mjs +32 -12
  68. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  69. package/dist/admin/index.js +47 -8
  70. package/dist/admin/index.js.map +1 -1
  71. package/dist/admin/index.mjs +47 -9
  72. package/dist/admin/index.mjs.map +1 -1
  73. package/dist/admin/layout.js +28 -33
  74. package/dist/admin/layout.js.map +1 -1
  75. package/dist/admin/layout.mjs +29 -15
  76. package/dist/admin/layout.mjs.map +1 -1
  77. package/dist/admin/pages/EditView/EditViewPage.js +98 -77
  78. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  79. package/dist/admin/pages/EditView/EditViewPage.mjs +100 -79
  80. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  81. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  82. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  83. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  84. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  85. package/dist/admin/pages/EditView/components/DocumentActions.js +109 -73
  86. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  87. package/dist/admin/pages/EditView/components/DocumentActions.mjs +111 -75
  88. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  89. package/dist/admin/pages/EditView/components/DocumentStatus.js.map +1 -1
  90. package/dist/admin/pages/EditView/components/DocumentStatus.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  92. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
  94. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
  96. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js.map +1 -1
  98. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  100. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  102. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
  104. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
  106. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  108. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  110. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +2 -2
  112. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +2 -2
  114. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
  116. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
  118. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
  120. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  122. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  124. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +15 -3
  126. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +16 -4
  128. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  130. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  132. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +22 -8
  134. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +24 -10
  136. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  138. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +2 -0
  140. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +2 -0
  142. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  143. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +160 -107
  144. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  145. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +163 -110
  146. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  147. package/dist/admin/pages/EditView/components/FormInputs/UID.js +6 -3
  148. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  149. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +6 -3
  150. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  151. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  152. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  153. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  154. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  155. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +2 -2
  156. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  157. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +2 -2
  158. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  159. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  160. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
  161. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  162. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  163. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  164. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  165. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js.map +1 -1
  166. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs.map +1 -1
  167. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js.map +1 -1
  168. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs.map +1 -1
  169. package/dist/admin/pages/EditView/components/FormLayout.js +58 -33
  170. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  171. package/dist/admin/pages/EditView/components/FormLayout.mjs +59 -33
  172. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  173. package/dist/admin/pages/EditView/components/Header.js +92 -27
  174. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  175. package/dist/admin/pages/EditView/components/Header.mjs +94 -29
  176. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  177. package/dist/admin/pages/EditView/components/InputRenderer.js +39 -24
  178. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  179. package/dist/admin/pages/EditView/components/InputRenderer.mjs +39 -24
  180. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  181. package/dist/admin/pages/EditView/utils/data.js +128 -0
  182. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  183. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  184. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  185. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  186. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  187. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  188. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  189. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  190. package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
  191. package/dist/admin/pages/ListConfiguration/components/Header.js.map +1 -1
  192. package/dist/admin/pages/ListConfiguration/components/Header.mjs.map +1 -1
  193. package/dist/admin/pages/ListView/ListViewPage.js +225 -132
  194. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  195. package/dist/admin/pages/ListView/ListViewPage.mjs +227 -134
  196. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  197. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -1
  198. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -1
  199. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  200. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  201. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  202. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  203. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
  204. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  205. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
  206. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  207. package/dist/admin/pages/ListView/components/Filters.js +8 -2
  208. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  209. package/dist/admin/pages/ListView/components/Filters.mjs +8 -2
  210. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  211. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  212. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  213. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  214. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  215. package/dist/admin/pages/ListView/components/TableCells/Media.js.map +1 -1
  216. package/dist/admin/pages/ListView/components/TableCells/Media.mjs.map +1 -1
  217. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
  218. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  219. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
  220. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  221. package/dist/admin/preview/components/InputPopover.js +189 -0
  222. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  223. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  224. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  225. package/dist/admin/preview/components/PreviewHeader.js +0 -1
  226. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  227. package/dist/admin/preview/components/PreviewHeader.mjs +0 -1
  228. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  229. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  230. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  231. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  232. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  233. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  234. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  235. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  236. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  237. package/dist/admin/preview/pages/Preview.js +178 -74
  238. package/dist/admin/preview/pages/Preview.js.map +1 -1
  239. package/dist/admin/preview/pages/Preview.mjs +180 -76
  240. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  241. package/dist/admin/preview/services/preview.js.map +1 -1
  242. package/dist/admin/preview/services/preview.mjs.map +1 -1
  243. package/dist/admin/preview/utils/constants.js +56 -0
  244. package/dist/admin/preview/utils/constants.js.map +1 -0
  245. package/dist/admin/preview/utils/constants.mjs +52 -0
  246. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  247. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  248. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  249. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  250. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  251. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  252. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  253. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  254. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  255. package/dist/admin/preview/utils/previewScript.js +534 -0
  256. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  257. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  258. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  259. package/dist/admin/router.js.map +1 -1
  260. package/dist/admin/router.mjs.map +1 -1
  261. package/dist/admin/services/api.js +5 -1
  262. package/dist/admin/services/api.js.map +1 -1
  263. package/dist/admin/services/api.mjs +5 -1
  264. package/dist/admin/services/api.mjs.map +1 -1
  265. package/dist/admin/services/documents.js +59 -17
  266. package/dist/admin/services/documents.js.map +1 -1
  267. package/dist/admin/services/documents.mjs +59 -17
  268. package/dist/admin/services/documents.mjs.map +1 -1
  269. package/dist/admin/services/homepage.js.map +1 -1
  270. package/dist/admin/services/homepage.mjs.map +1 -1
  271. package/dist/admin/services/relations.js.map +1 -1
  272. package/dist/admin/services/relations.mjs.map +1 -1
  273. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  274. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  275. package/dist/admin/src/components/Widgets.d.ts +8 -3
  276. package/dist/admin/src/exports.d.ts +1 -0
  277. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  278. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  279. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  280. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
  281. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  282. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -10
  283. package/dist/admin/src/pages/EditView/components/Header.d.ts +15 -0
  284. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  285. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  286. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  287. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  288. package/dist/admin/src/preview/pages/Preview.d.ts +12 -0
  289. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  290. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  291. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  292. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  293. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  294. package/dist/admin/src/services/api.d.ts +1 -1
  295. package/dist/admin/src/services/components.d.ts +2 -2
  296. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  297. package/dist/admin/src/services/documents.d.ts +23 -17
  298. package/dist/admin/src/services/homepage.d.ts +1 -1
  299. package/dist/admin/src/services/init.d.ts +1 -1
  300. package/dist/admin/src/services/relations.d.ts +2 -2
  301. package/dist/admin/src/services/uid.d.ts +3 -3
  302. package/dist/admin/src/utils/api.d.ts +1 -1
  303. package/dist/admin/src/utils/validation.d.ts +1 -0
  304. package/dist/admin/translations/en.json.js +13 -0
  305. package/dist/admin/translations/en.json.js.map +1 -1
  306. package/dist/admin/translations/en.json.mjs +13 -0
  307. package/dist/admin/translations/en.json.mjs.map +1 -1
  308. package/dist/admin/translations/es.json.js +6 -2
  309. package/dist/admin/translations/es.json.js.map +1 -1
  310. package/dist/admin/translations/es.json.mjs +6 -2
  311. package/dist/admin/translations/es.json.mjs.map +1 -1
  312. package/dist/admin/translations/fr.json.js +12 -3
  313. package/dist/admin/translations/fr.json.js.map +1 -1
  314. package/dist/admin/translations/fr.json.mjs +12 -3
  315. package/dist/admin/translations/fr.json.mjs.map +1 -1
  316. package/dist/admin/utils/api.js +1 -1
  317. package/dist/admin/utils/api.js.map +1 -1
  318. package/dist/admin/utils/api.mjs +1 -1
  319. package/dist/admin/utils/api.mjs.map +1 -1
  320. package/dist/admin/utils/translations.js.map +1 -1
  321. package/dist/admin/utils/translations.mjs.map +1 -1
  322. package/dist/admin/utils/urls.js.map +1 -1
  323. package/dist/admin/utils/urls.mjs.map +1 -1
  324. package/dist/admin/utils/users.js.map +1 -1
  325. package/dist/admin/utils/users.mjs.map +1 -1
  326. package/dist/admin/utils/validation.js +19 -7
  327. package/dist/admin/utils/validation.js.map +1 -1
  328. package/dist/admin/utils/validation.mjs +19 -7
  329. package/dist/admin/utils/validation.mjs.map +1 -1
  330. package/dist/server/controllers/collection-types.js +2 -1
  331. package/dist/server/controllers/collection-types.js.map +1 -1
  332. package/dist/server/controllers/collection-types.mjs +2 -1
  333. package/dist/server/controllers/collection-types.mjs.map +1 -1
  334. package/dist/server/controllers/content-types.js +11 -1
  335. package/dist/server/controllers/content-types.js.map +1 -1
  336. package/dist/server/controllers/content-types.mjs +11 -1
  337. package/dist/server/controllers/content-types.mjs.map +1 -1
  338. package/dist/server/controllers/relations.js +8 -6
  339. package/dist/server/controllers/relations.js.map +1 -1
  340. package/dist/server/controllers/relations.mjs +8 -6
  341. package/dist/server/controllers/relations.mjs.map +1 -1
  342. package/dist/server/controllers/single-types.js +3 -1
  343. package/dist/server/controllers/single-types.js.map +1 -1
  344. package/dist/server/controllers/single-types.mjs +3 -1
  345. package/dist/server/controllers/single-types.mjs.map +1 -1
  346. package/dist/server/controllers/validation/dimensions.js.map +1 -1
  347. package/dist/server/controllers/validation/dimensions.mjs.map +1 -1
  348. package/dist/server/controllers/validation/index.js +14 -2
  349. package/dist/server/controllers/validation/index.js.map +1 -1
  350. package/dist/server/controllers/validation/index.mjs +14 -2
  351. package/dist/server/controllers/validation/index.mjs.map +1 -1
  352. package/dist/server/history/services/lifecycles.js +23 -19
  353. package/dist/server/history/services/lifecycles.js.map +1 -1
  354. package/dist/server/history/services/lifecycles.mjs +23 -19
  355. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  356. package/dist/server/history/utils.js.map +1 -1
  357. package/dist/server/history/utils.mjs.map +1 -1
  358. package/dist/server/homepage/controllers/homepage.js +5 -0
  359. package/dist/server/homepage/controllers/homepage.js.map +1 -1
  360. package/dist/server/homepage/controllers/homepage.mjs +5 -0
  361. package/dist/server/homepage/controllers/homepage.mjs.map +1 -1
  362. package/dist/server/homepage/routes/homepage.js +11 -0
  363. package/dist/server/homepage/routes/homepage.js.map +1 -1
  364. package/dist/server/homepage/routes/homepage.mjs +11 -0
  365. package/dist/server/homepage/routes/homepage.mjs.map +1 -1
  366. package/dist/server/homepage/services/homepage.js +86 -46
  367. package/dist/server/homepage/services/homepage.js.map +1 -1
  368. package/dist/server/homepage/services/homepage.mjs +86 -46
  369. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  370. package/dist/server/middlewares/routing.js.map +1 -1
  371. package/dist/server/middlewares/routing.mjs.map +1 -1
  372. package/dist/server/preview/services/preview-config.js +11 -32
  373. package/dist/server/preview/services/preview-config.js.map +1 -1
  374. package/dist/server/preview/services/preview-config.mjs +12 -33
  375. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  376. package/dist/server/preview/services/preview.js +4 -0
  377. package/dist/server/preview/services/preview.js.map +1 -1
  378. package/dist/server/preview/services/preview.mjs +4 -0
  379. package/dist/server/preview/services/preview.mjs.map +1 -1
  380. package/dist/server/preview/utils.js.map +1 -1
  381. package/dist/server/preview/utils.mjs.map +1 -1
  382. package/dist/server/services/configuration.js.map +1 -1
  383. package/dist/server/services/configuration.mjs.map +1 -1
  384. package/dist/server/services/data-mapper.js +4 -1
  385. package/dist/server/services/data-mapper.js.map +1 -1
  386. package/dist/server/services/data-mapper.mjs +4 -1
  387. package/dist/server/services/data-mapper.mjs.map +1 -1
  388. package/dist/server/services/document-manager.js +8 -1
  389. package/dist/server/services/document-manager.js.map +1 -1
  390. package/dist/server/services/document-manager.mjs +8 -1
  391. package/dist/server/services/document-manager.mjs.map +1 -1
  392. package/dist/server/services/document-metadata.js +26 -2
  393. package/dist/server/services/document-metadata.js.map +1 -1
  394. package/dist/server/services/document-metadata.mjs +26 -2
  395. package/dist/server/services/document-metadata.mjs.map +1 -1
  396. package/dist/server/services/field-sizes.js.map +1 -1
  397. package/dist/server/services/field-sizes.mjs.map +1 -1
  398. package/dist/server/services/uid.js.map +1 -1
  399. package/dist/server/services/uid.mjs.map +1 -1
  400. package/dist/server/services/utils/configuration/attributes.js +1 -1
  401. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  402. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  403. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  404. package/dist/server/services/utils/configuration/layouts.js +1 -1
  405. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  406. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  407. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  408. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  409. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  410. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  411. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  412. package/dist/server/services/utils/populate.js +11 -0
  413. package/dist/server/services/utils/populate.js.map +1 -1
  414. package/dist/server/services/utils/populate.mjs +11 -0
  415. package/dist/server/services/utils/populate.mjs.map +1 -1
  416. package/dist/server/services/utils/store.js.map +1 -1
  417. package/dist/server/services/utils/store.mjs.map +1 -1
  418. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  419. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  420. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  421. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  422. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  423. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  424. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  425. package/dist/server/src/homepage/controllers/homepage.d.ts +2 -1
  426. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
  427. package/dist/server/src/homepage/index.d.ts +7 -0
  428. package/dist/server/src/homepage/index.d.ts.map +1 -1
  429. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -1
  430. package/dist/server/src/homepage/services/homepage.d.ts +4 -1
  431. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  432. package/dist/server/src/homepage/services/index.d.ts +7 -0
  433. package/dist/server/src/homepage/services/index.d.ts.map +1 -1
  434. package/dist/server/src/index.d.ts +8 -0
  435. package/dist/server/src/index.d.ts.map +1 -1
  436. package/dist/server/src/preview/services/index.d.ts +1 -0
  437. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  438. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  439. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  440. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  441. package/dist/server/src/preview/utils.d.ts +1 -0
  442. package/dist/server/src/preview/utils.d.ts.map +1 -1
  443. package/dist/server/src/services/data-mapper.d.ts +1 -0
  444. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  445. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  446. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  447. package/dist/server/src/services/index.d.ts +8 -0
  448. package/dist/server/src/services/index.d.ts.map +1 -1
  449. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  450. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  451. package/dist/shared/contracts/collection-types.d.ts +0 -1
  452. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  453. package/dist/shared/contracts/homepage.d.ts +13 -0
  454. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  455. package/package.json +11 -9
@@ -1 +1 @@
1
- {"version":3,"file":"EditViewPage.mjs","sources":["../../../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useRBAC,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc, type UseDocument } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const doc = useDoc();\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = doc;\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues || hasError) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{getTitle(mainField)}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n {({ resetForm }) => (\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={getTitle(mainField)}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <FormLayout layout={layout} document={doc} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} document={doc} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <Blocker\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n onProceed={resetForm}\n />\n </>\n )}\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["EditViewPage","location","useLocation","query","status","setQuery","useQueryParams","formatMessage","useIntl","toggleNotification","useNotification","doc","useDoc","document","meta","isLoading","isLoadingDocument","schema","components","collectionType","id","model","hasError","getTitle","getInitialFormValues","hasDraftAndPublished","options","draftAndPublish","useOnce","state","type","message","error","timeout","isLoadingActionsRBAC","useDocumentRBAC","isSingleType","SINGLE_TYPES","isCreatingDocument","isLoadingLayout","edit","layout","settings","mainField","useDocumentLayout","isLazyLoading","useLazyComponents","initialValues","documentId","_jsx","Page","Loading","Error","handleTabChange","validateSync","values","yupSchema","createYupSchema","attributes","abortEarly","_jsxs","Main","paddingLeft","paddingRight","Title","Form","disabled","method","validate","initialErrors","forceValidation","resetForm","_Fragment","Header","isCreating","getDocumentStatus","undefined","title","Tabs","Root","variant","value","onValueChange","List","aria-label","getTranslation","defaultMessage","StatusTab","availableStatus","length","Grid","paddingTop","gap","Item","col","s","direction","alignItems","Content","FormLayout","Panels","Blocker","onProceed","styled","Trigger","docStatus","statuses","find","publishedAt","ProtectedEditViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","map","action","subject","Protect","DocumentRBAC"],"mappings":"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"}
1
+ {"version":3,"file":"EditViewPage.mjs","sources":["../../../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Form,\n useRBAC,\n useNotification,\n useQueryParams,\n tours,\n RESPONSIVE_DEFAULT_SPACING,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs, Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc, type UseDocument } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { Blocker } from './components/Blocker';\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\nimport { handleInvisibleAttributes } from './utils/data';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const doc = useDoc();\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = doc;\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n const pageTitle = getTitle(mainField);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues || hasError) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={RESPONSIVE_DEFAULT_SPACING} paddingRight={RESPONSIVE_DEFAULT_SPACING}>\n <Page.Title>{pageTitle}</Page.Title>\n {isSingleType && (\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n )}\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n // removes hidden fields from the validation\n // this is necessary because the yup schema doesn't know about the visibility conditions\n // and we don't want to validate fields that are not visible\n const { data: cleanedValues, removedAttributes } = handleInvisibleAttributes(values, {\n schema,\n initialValues,\n components,\n });\n\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n removedAttributes,\n ...options,\n });\n\n return yupSchema.validate(cleanedValues, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={pageTitle}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root\n paddingTop={{\n initial: 2,\n medium: 4,\n large: 8,\n }}\n gap={4}\n >\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <tours.contentManager.Fields>\n <Box />\n </tours.contentManager.Fields>\n <FormLayout layout={layout} document={doc} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} document={doc} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <Blocker />\n </>\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["EditViewPage","location","useLocation","query","status","setQuery","useQueryParams","formatMessage","useIntl","toggleNotification","useNotification","doc","useDoc","document","meta","isLoading","isLoadingDocument","schema","components","collectionType","id","model","hasError","getTitle","getInitialFormValues","hasDraftAndPublished","options","draftAndPublish","useOnce","state","type","message","error","timeout","isLoadingActionsRBAC","useDocumentRBAC","isSingleType","SINGLE_TYPES","isCreatingDocument","isLoadingLayout","edit","layout","settings","mainField","useDocumentLayout","pageTitle","isLazyLoading","useLazyComponents","initialValues","documentId","_jsx","Page","Loading","Error","handleTabChange","validateSync","values","yupSchema","createYupSchema","attributes","abortEarly","_jsxs","Main","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","Title","tours","contentManager","Introduction","Box","Form","disabled","method","validate","data","cleanedValues","removedAttributes","handleInvisibleAttributes","initialErrors","forceValidation","_Fragment","Header","isCreating","getDocumentStatus","undefined","title","Tabs","Root","variant","value","onValueChange","List","aria-label","getTranslation","defaultMessage","StatusTab","availableStatus","length","Grid","paddingTop","initial","medium","large","gap","Item","col","s","direction","alignItems","Content","Fields","FormLayout","Panels","Blocker","styled","Trigger","docStatus","statuses","find","publishedAt","ProtectedEditViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","map","action","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
5
+
6
+ // Needs to be wrapped in a component to have access to the form context via a hook.
7
+ /**
8
+ * Prevents users from leaving the page with unsaved form changes
9
+ */ const Blocker = ()=>{
10
+ const resetForm = strapiAdmin.useForm('Blocker', (state)=>state.resetForm);
11
+ // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284
12
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Blocker, {
13
+ onProceed: resetForm
14
+ });
15
+ };
16
+
17
+ exports.Blocker = Blocker;
18
+ //# sourceMappingURL=Blocker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Blocker.js","sources":["../../../../../admin/src/pages/EditView/components/Blocker.tsx"],"sourcesContent":["// Needs to be wrapped in a component to have access to the form context via a hook.\n\nimport { Blocker as BaseBlocker, useForm } from '@strapi/admin/strapi-admin';\n\n/**\n * Prevents users from leaving the page with unsaved form changes\n */\nconst Blocker = () => {\n const resetForm = useForm('Blocker', (state) => state.resetForm);\n\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n return <BaseBlocker onProceed={resetForm} />;\n};\n\nexport { Blocker };\n"],"names":["Blocker","resetForm","useForm","state","_jsx","BaseBlocker","onProceed"],"mappings":";;;;;AAAA;AAIA;;AAEC,UACKA,OAAU,GAAA,IAAA;AACd,IAAA,MAAMC,YAAYC,mBAAQ,CAAA,SAAA,EAAW,CAACC,KAAAA,GAAUA,MAAMF,SAAS,CAAA;;AAG/D,IAAA,qBAAOG,cAACC,CAAAA,mBAAAA,EAAAA;QAAYC,SAAWL,EAAAA;;AACjC;;;;"}
@@ -0,0 +1,16 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useForm, Blocker as Blocker$1 } from '@strapi/admin/strapi-admin';
3
+
4
+ // Needs to be wrapped in a component to have access to the form context via a hook.
5
+ /**
6
+ * Prevents users from leaving the page with unsaved form changes
7
+ */ const Blocker = ()=>{
8
+ const resetForm = useForm('Blocker', (state)=>state.resetForm);
9
+ // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284
10
+ return /*#__PURE__*/ jsx(Blocker$1, {
11
+ onProceed: resetForm
12
+ });
13
+ };
14
+
15
+ export { Blocker };
16
+ //# sourceMappingURL=Blocker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Blocker.mjs","sources":["../../../../../admin/src/pages/EditView/components/Blocker.tsx"],"sourcesContent":["// Needs to be wrapped in a component to have access to the form context via a hook.\n\nimport { Blocker as BaseBlocker, useForm } from '@strapi/admin/strapi-admin';\n\n/**\n * Prevents users from leaving the page with unsaved form changes\n */\nconst Blocker = () => {\n const resetForm = useForm('Blocker', (state) => state.resetForm);\n\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n return <BaseBlocker onProceed={resetForm} />;\n};\n\nexport { Blocker };\n"],"names":["Blocker","resetForm","useForm","state","_jsx","BaseBlocker","onProceed"],"mappings":";;;AAAA;AAIA;;AAEC,UACKA,OAAU,GAAA,IAAA;AACd,IAAA,MAAMC,YAAYC,OAAQ,CAAA,SAAA,EAAW,CAACC,KAAAA,GAAUA,MAAMF,SAAS,CAAA;;AAG/D,IAAA,qBAAOG,GAACC,CAAAA,SAAAA,EAAAA;QAAYC,SAAWL,EAAAA;;AACjC;;;;"}
@@ -11,7 +11,6 @@ var merge = require('lodash/merge');
11
11
  var set = require('lodash/set');
12
12
  var reactIntl = require('react-intl');
13
13
  var reactRouterDom = require('react-router-dom');
14
- var styledComponents = require('styled-components');
15
14
  var attributes = require('../../../constants/attributes.js');
16
15
  var collections = require('../../../constants/collections.js');
17
16
  var DocumentRBAC = require('../../../features/DocumentRBAC.js');
@@ -23,6 +22,7 @@ var router = require('../../../router.js');
23
22
  var documents = require('../../../services/documents.js');
24
23
  var api = require('../../../utils/api.js');
25
24
  var translations = require('../../../utils/translations.js');
25
+ var data = require('../utils/data.js');
26
26
  var RelationModal = require('./FormInputs/Relations/RelationModal.js');
27
27
 
28
28
  function _interopNamespaceDefault(e) {
@@ -96,23 +96,33 @@ const DocumentActions = ({ actions })=>{
96
96
  alignItems: "stretch",
97
97
  width: "100%",
98
98
  children: [
99
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
100
- gap: 2,
101
- children: [
102
- /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
103
- ...primaryAction,
104
- variant: primaryAction.variant || 'default'
105
- }),
106
- restActions.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionsMenu, {
107
- actions: restActions,
108
- label: formatMessage({
109
- id: 'content-manager.containers.edit.panels.default.more-actions',
110
- defaultMessage: 'More document actions'
111
- })
112
- }) : null
113
- ]
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
+ })
114
119
  }),
115
- 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, {
116
126
  ...secondaryAction,
117
127
  variant: secondaryAction.variant || 'secondary'
118
128
  }) : null
@@ -174,11 +184,6 @@ const DocumentActionButton = (action)=>{
174
184
  ]
175
185
  });
176
186
  };
177
- const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
178
- &:hover {
179
- background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
180
- }
181
- `;
182
187
  const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
183
188
  const [isOpen, setIsOpen] = React__namespace.useState(false);
184
189
  const [dialogId, setDialogId] = React__namespace.useState(null);
@@ -240,27 +245,19 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
240
245
  popoverPlacement: "bottom-end",
241
246
  children: [
242
247
  actions.map((action)=>{
243
- return /*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
248
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
244
249
  disabled: action.disabled,
245
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),
246
251
  display: "block",
247
- isVariantDanger: action.variant === 'danger',
248
- isDisabled: action.disabled,
252
+ variant: action.variant === 'danger' ? action.variant : 'default',
253
+ startIcon: action.icon,
249
254
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
250
255
  justifyContent: "space-between",
251
256
  gap: 4,
252
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
253
- color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
257
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
254
258
  gap: 2,
255
259
  tag: "span",
256
- children: [
257
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
258
- tag: "span",
259
- color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
260
- children: action.icon
261
- }),
262
- action.label
263
- ]
260
+ children: action.label
264
261
  })
265
262
  })
266
263
  }, action.id);
@@ -288,30 +285,6 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
288
285
  ]
289
286
  });
290
287
  };
291
- const convertActionVariantToColor = (variant = 'secondary')=>{
292
- switch(variant){
293
- case 'danger':
294
- return 'danger600';
295
- case 'secondary':
296
- return undefined;
297
- case 'success':
298
- return 'success600';
299
- default:
300
- return 'primary600';
301
- }
302
- };
303
- const convertActionVariantToIconColor = (variant = 'secondary')=>{
304
- switch(variant){
305
- case 'danger':
306
- return 'danger600';
307
- case 'secondary':
308
- return 'neutral500';
309
- case 'success':
310
- return 'success600';
311
- default:
312
- return 'primary600';
313
- }
314
- };
315
288
  const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
316
289
  const { formatMessage } = reactIntl.useIntl();
317
290
  const handleClose = async ()=>{
@@ -417,7 +390,10 @@ const transformData = (data)=>{
417
390
  const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
418
391
  const { id } = reactRouterDom.useParams();
419
392
  const { formatMessage } = reactIntl.useIntl();
420
- const canPublish = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish })=>canPublish);
393
+ const { canPublish, canReadFields } = DocumentRBAC.useDocumentRBAC('PublishAction', ({ canPublish, canReadFields })=>({
394
+ canPublish,
395
+ canReadFields
396
+ }));
421
397
  const { publish, isLoading } = useDocumentActions.useDocumentActions();
422
398
  const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
423
399
  const [countDraftRelations, { isLoading: isLoadingDraftRelations, isError: isErrorDraftRelations }] = documents.useGetDraftRelationCountQuery();
@@ -430,7 +406,9 @@ const transformData = (data)=>{
430
406
  const validate = strapiAdmin.useForm('PublishAction', (state)=>state.validate);
431
407
  const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
432
408
  const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
409
+ const initialValues = strapiAdmin.useForm('PublishAction', ({ initialValues })=>initialValues);
433
410
  const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
411
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('PublishAction');
434
412
  // need to discriminate if the publish is coming from a relation modal or in the edit view
435
413
  const relationContext = RelationModal.useRelationModal('PublishAction', ()=>true, false);
436
414
  const fromRelationModal = relationContext != undefined;
@@ -439,6 +417,7 @@ const transformData = (data)=>{
439
417
  const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
440
418
  const documentHistory = RelationModal.useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
441
419
  const rootDocumentMeta = RelationModal.useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
420
+ const dispatchGuidedTour = strapiAdmin.useGuidedTour('PublishAction', (s)=>s.dispatch);
442
421
  const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
443
422
  const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
444
423
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
@@ -546,24 +525,55 @@ const transformData = (data)=>{
546
525
  status: 'published'
547
526
  });
548
527
  if (errors) {
549
- toggleNotification({
550
- type: 'danger',
551
- message: formatMessage({
552
- id: 'content-manager.validation.error',
553
- defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
554
- })
528
+ const hasUnreadableRequiredField = Object.keys(schema.attributes).some((fieldName)=>{
529
+ const attribute = schema.attributes[fieldName];
530
+ // For components, check if any of the component fields are readable
531
+ if (attribute.type === 'component') {
532
+ const componentFields = (canReadFields ?? []).filter((field)=>field.startsWith(`${fieldName}.`));
533
+ return componentFields.length === 0;
534
+ }
535
+ // For regular fields, check if the field itself is readable
536
+ return attribute?.required && !(canReadFields ?? []).includes(fieldName);
555
537
  });
538
+ if (hasUnreadableRequiredField) {
539
+ toggleNotification({
540
+ type: 'danger',
541
+ message: formatMessage({
542
+ id: 'content-manager.validation.error.unreadable-required-field',
543
+ defaultMessage: 'Your current permissions prevent access to certain required fields. Please request access from an administrator to proceed.'
544
+ })
545
+ });
546
+ } else {
547
+ toggleNotification({
548
+ type: 'danger',
549
+ message: formatMessage({
550
+ id: 'content-manager.validation.error',
551
+ defaultMessage: 'There are validation errors in your document. Please fix them before saving.'
552
+ })
553
+ });
554
+ }
556
555
  return;
557
556
  }
557
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(formValues), {
558
+ schema,
559
+ initialValues,
560
+ components
561
+ });
558
562
  const res = await publish({
559
563
  collectionType,
560
564
  model,
561
565
  documentId,
562
566
  params: currentDocumentMeta.params
563
- }, transformData(formValues));
564
- // Reset form if successful
567
+ }, data$1);
568
+ // Reset form with current values as new initial values (clears errors/submitting and sets modified to false)
565
569
  if ('data' in res) {
566
- resetForm();
570
+ resetForm(formValues);
571
+ dispatchGuidedTour({
572
+ type: 'set_completed_actions',
573
+ payload: [
574
+ strapiAdmin.GUIDED_TOUR_REQUIRED_ACTIONS.contentManager.createContent
575
+ ]
576
+ });
567
577
  }
568
578
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
569
579
  /**
@@ -687,6 +697,7 @@ PublishAction.position = [
687
697
  'relation-modal'
688
698
  ];
689
699
  const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
700
+ const dispatchGuidedTour = strapiAdmin.useGuidedTour('UpdateAction', (s)=>s.dispatch);
690
701
  const navigate = reactRouterDom.useNavigate();
691
702
  const { toggleNotification } = strapiAdmin.useNotification();
692
703
  const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
@@ -694,12 +705,14 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
694
705
  const isCloning = cloneMatch !== null;
695
706
  const { formatMessage } = reactIntl.useIntl();
696
707
  const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
708
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('UpdateAction');
697
709
  const [{ rawQuery }] = strapiAdmin.useQueryParams();
698
710
  const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
699
711
  const { getInitialFormValues } = useDocument.useDoc();
700
712
  const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
701
713
  const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
702
714
  const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
715
+ const initialValues = strapiAdmin.useForm('UpdateAction', ({ initialValues })=>initialValues);
703
716
  const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
704
717
  const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
705
718
  const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
@@ -707,6 +720,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
707
720
  const dispatch = RelationModal.useRelationModal('UpdateAction', (state)=>state.dispatch);
708
721
  // need to discriminate if the update is coming from a relation modal or in the edit view
709
722
  const relationContext = RelationModal.useRelationModal('UpdateAction', ()=>true, false);
723
+ const relationalModalSchema = RelationModal.useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
710
724
  const fieldToConnect = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
711
725
  const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
712
726
  const documentHistory = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
@@ -724,6 +738,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
724
738
  }, {
725
739
  skip: !parentDocumentMetaToUpdate
726
740
  });
741
+ const { schema } = useDocument.useDoc();
727
742
  const handleUpdate = React__namespace.useCallback(async ()=>{
728
743
  setSubmitting(true);
729
744
  try {
@@ -760,22 +775,32 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
760
775
  setErrors(formatValidationErrors(res.error));
761
776
  }
762
777
  } else if (documentId || collectionType === collections.SINGLE_TYPES) {
778
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
779
+ schema: fromRelationModal ? relationalModalSchema : schema,
780
+ initialValues,
781
+ components
782
+ });
763
783
  const res = await update({
764
784
  collectionType,
765
785
  model,
766
786
  documentId,
767
787
  params: currentDocumentMeta.params
768
- }, transformData(document));
788
+ }, data$1);
769
789
  if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
770
790
  setErrors(formatValidationErrors(res.error));
771
791
  } else {
772
- resetForm();
792
+ resetForm(document);
773
793
  }
774
794
  } else {
795
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
796
+ schema: fromRelationModal ? relationalModalSchema : schema,
797
+ initialValues,
798
+ components
799
+ });
775
800
  const res = await create({
776
801
  model,
777
802
  params: currentDocumentMeta.params
778
- }, transformData(document));
803
+ }, data$1);
779
804
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
780
805
  if (fromRelationModal) {
781
806
  const createdRelation = {
@@ -840,6 +865,12 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
840
865
  }
841
866
  }
842
867
  } finally{
868
+ dispatchGuidedTour({
869
+ type: 'set_completed_actions',
870
+ payload: [
871
+ strapiAdmin.GUIDED_TOUR_REQUIRED_ACTIONS.contentManager.createContent
872
+ ]
873
+ });
843
874
  setSubmitting(false);
844
875
  if (onPreview) {
845
876
  onPreview();
@@ -876,7 +907,12 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
876
907
  fieldToConnectUID,
877
908
  updateDocumentMutation,
878
909
  formatAPIError,
879
- onPreview
910
+ onPreview,
911
+ initialValues,
912
+ schema,
913
+ components,
914
+ relationalModalSchema,
915
+ dispatchGuidedTour
880
916
  ]);
881
917
  // Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
882
918
  React__namespace.useEffect(()=>{