@strapi/content-manager 0.0.0-next.ce5699024a72ea224891438d5bbe39f904ec6774 → 0.0.0-next.ce8ed0c8aa03361c3009f41af96f742be028ffd9

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 (519) 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 +437 -0
  36. package/dist/admin/components/Widgets.js.map +1 -0
  37. package/dist/admin/components/Widgets.mjs +414 -0
  38. package/dist/admin/components/Widgets.mjs.map +1 -0
  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 +8 -16
  58. package/dist/admin/history/pages/History.js.map +1 -1
  59. package/dist/admin/history/pages/History.mjs +8 -16
  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 +43 -12
  66. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  67. package/dist/admin/hooks/useDocumentActions.mjs +44 -13
  68. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  69. package/dist/admin/hooks/useDocumentContext.js +57 -0
  70. package/dist/admin/hooks/useDocumentContext.js.map +1 -0
  71. package/dist/admin/hooks/useDocumentContext.mjs +36 -0
  72. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
  73. package/dist/admin/index.js +81 -5
  74. package/dist/admin/index.js.map +1 -1
  75. package/dist/admin/index.mjs +80 -3
  76. package/dist/admin/index.mjs.map +1 -1
  77. package/dist/admin/layout.js +28 -33
  78. package/dist/admin/layout.js.map +1 -1
  79. package/dist/admin/layout.mjs +29 -15
  80. package/dist/admin/layout.mjs.map +1 -1
  81. package/dist/admin/pages/EditView/EditViewPage.js +101 -88
  82. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  83. package/dist/admin/pages/EditView/EditViewPage.mjs +103 -90
  84. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  85. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  86. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  87. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  88. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  89. package/dist/admin/pages/EditView/components/DocumentActions.js +335 -123
  90. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  91. package/dist/admin/pages/EditView/components/DocumentActions.mjs +342 -130
  92. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  93. package/dist/admin/pages/EditView/components/DocumentStatus.js.map +1 -1
  94. package/dist/admin/pages/EditView/components/DocumentStatus.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  96. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
  98. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
  100. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js.map +1 -1
  102. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  104. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  106. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
  108. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
  110. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  112. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  114. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  116. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  118. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
  120. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
  122. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
  124. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
  126. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
  128. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +14 -3
  130. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +15 -4
  132. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +19 -5
  134. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +20 -6
  136. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  138. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  140. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +27 -24
  142. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  143. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +29 -26
  144. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  145. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
  146. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  147. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
  148. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  149. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +508 -345
  150. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  151. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +508 -347
  152. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  153. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +180 -70
  154. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  155. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +184 -74
  156. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  157. package/dist/admin/pages/EditView/components/FormInputs/UID.js +13 -10
  158. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  159. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +13 -10
  160. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  161. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  162. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  163. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  164. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  165. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  166. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  167. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  168. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  169. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  170. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
  171. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  172. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  173. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  174. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  175. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js.map +1 -1
  176. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs.map +1 -1
  177. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js.map +1 -1
  178. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs.map +1 -1
  179. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  180. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  181. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  182. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  183. package/dist/admin/pages/EditView/components/Header.js +92 -27
  184. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  185. package/dist/admin/pages/EditView/components/Header.mjs +94 -29
  186. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  187. package/dist/admin/pages/EditView/components/InputRenderer.js +35 -28
  188. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  189. package/dist/admin/pages/EditView/components/InputRenderer.mjs +35 -28
  190. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  191. package/dist/admin/pages/EditView/utils/data.js +128 -0
  192. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  193. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  194. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  195. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  196. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  197. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  198. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  199. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  200. package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
  201. package/dist/admin/pages/ListConfiguration/components/Header.js.map +1 -1
  202. package/dist/admin/pages/ListConfiguration/components/Header.mjs.map +1 -1
  203. package/dist/admin/pages/ListView/ListViewPage.js +225 -132
  204. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  205. package/dist/admin/pages/ListView/ListViewPage.mjs +227 -134
  206. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  207. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -1
  208. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -1
  209. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  210. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  211. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  212. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  213. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
  214. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  215. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
  216. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  217. package/dist/admin/pages/ListView/components/Filters.js +8 -2
  218. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  219. package/dist/admin/pages/ListView/components/Filters.mjs +8 -2
  220. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  221. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  222. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  223. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  224. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  225. package/dist/admin/pages/ListView/components/TableCells/Media.js.map +1 -1
  226. package/dist/admin/pages/ListView/components/TableCells/Media.mjs.map +1 -1
  227. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
  228. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  229. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
  230. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  231. package/dist/admin/preview/components/InputPopover.js +189 -0
  232. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  233. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  234. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  235. package/dist/admin/preview/components/PreviewHeader.js +2 -6
  236. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  237. package/dist/admin/preview/components/PreviewHeader.mjs +2 -6
  238. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  239. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  240. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  241. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  242. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  243. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  244. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  245. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  246. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  247. package/dist/admin/preview/pages/Preview.js +180 -84
  248. package/dist/admin/preview/pages/Preview.js.map +1 -1
  249. package/dist/admin/preview/pages/Preview.mjs +182 -86
  250. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  251. package/dist/admin/preview/services/preview.js.map +1 -1
  252. package/dist/admin/preview/services/preview.mjs.map +1 -1
  253. package/dist/admin/preview/utils/constants.js +56 -0
  254. package/dist/admin/preview/utils/constants.js.map +1 -0
  255. package/dist/admin/preview/utils/constants.mjs +52 -0
  256. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  257. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  258. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  259. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  260. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  261. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  262. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  263. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  264. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  265. package/dist/admin/preview/utils/previewScript.js +534 -0
  266. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  267. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  268. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  269. package/dist/admin/router.js.map +1 -1
  270. package/dist/admin/router.mjs.map +1 -1
  271. package/dist/admin/services/api.js +5 -1
  272. package/dist/admin/services/api.js.map +1 -1
  273. package/dist/admin/services/api.mjs +5 -1
  274. package/dist/admin/services/api.mjs.map +1 -1
  275. package/dist/admin/services/documents.js +59 -17
  276. package/dist/admin/services/documents.js.map +1 -1
  277. package/dist/admin/services/documents.mjs +59 -17
  278. package/dist/admin/services/documents.mjs.map +1 -1
  279. package/dist/admin/services/homepage.js +30 -0
  280. package/dist/admin/services/homepage.js.map +1 -0
  281. package/dist/admin/services/homepage.mjs +28 -0
  282. package/dist/admin/services/homepage.mjs.map +1 -0
  283. package/dist/admin/services/relations.js.map +1 -1
  284. package/dist/admin/services/relations.mjs.map +1 -1
  285. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  286. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  287. package/dist/admin/src/components/Widgets.d.ts +8 -0
  288. package/dist/admin/src/content-manager.d.ts +0 -3
  289. package/dist/admin/src/exports.d.ts +1 -0
  290. package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
  291. package/dist/admin/src/history/pages/History.d.ts +1 -1
  292. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  293. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  294. package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
  295. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  296. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  297. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
  298. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
  299. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  300. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
  301. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
  302. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  303. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  304. package/dist/admin/src/pages/EditView/components/Header.d.ts +15 -0
  305. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -2
  306. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  307. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  308. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  309. package/dist/admin/src/preview/pages/Preview.d.ts +14 -1
  310. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  311. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  312. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  313. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  314. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  315. package/dist/admin/src/services/api.d.ts +1 -1
  316. package/dist/admin/src/services/components.d.ts +2 -2
  317. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  318. package/dist/admin/src/services/documents.d.ts +23 -17
  319. package/dist/admin/src/services/homepage.d.ts +5 -0
  320. package/dist/admin/src/services/init.d.ts +1 -1
  321. package/dist/admin/src/services/relations.d.ts +2 -2
  322. package/dist/admin/src/services/uid.d.ts +3 -3
  323. package/dist/admin/src/utils/api.d.ts +1 -1
  324. package/dist/admin/src/utils/validation.d.ts +1 -0
  325. package/dist/admin/translations/en.json.js +15 -1
  326. package/dist/admin/translations/en.json.js.map +1 -1
  327. package/dist/admin/translations/en.json.mjs +15 -1
  328. package/dist/admin/translations/en.json.mjs.map +1 -1
  329. package/dist/admin/translations/es.json.js +6 -2
  330. package/dist/admin/translations/es.json.js.map +1 -1
  331. package/dist/admin/translations/es.json.mjs +6 -2
  332. package/dist/admin/translations/es.json.mjs.map +1 -1
  333. package/dist/admin/translations/fr.json.js +12 -3
  334. package/dist/admin/translations/fr.json.js.map +1 -1
  335. package/dist/admin/translations/fr.json.mjs +12 -3
  336. package/dist/admin/translations/fr.json.mjs.map +1 -1
  337. package/dist/admin/translations/ru.json.js +235 -226
  338. package/dist/admin/translations/ru.json.js.map +1 -1
  339. package/dist/admin/translations/ru.json.mjs +230 -226
  340. package/dist/admin/translations/ru.json.mjs.map +1 -1
  341. package/dist/admin/utils/api.js +1 -1
  342. package/dist/admin/utils/api.js.map +1 -1
  343. package/dist/admin/utils/api.mjs +1 -1
  344. package/dist/admin/utils/api.mjs.map +1 -1
  345. package/dist/admin/utils/translations.js.map +1 -1
  346. package/dist/admin/utils/translations.mjs.map +1 -1
  347. package/dist/admin/utils/urls.js.map +1 -1
  348. package/dist/admin/utils/urls.mjs.map +1 -1
  349. package/dist/admin/utils/users.js.map +1 -1
  350. package/dist/admin/utils/users.mjs.map +1 -1
  351. package/dist/admin/utils/validation.js +19 -7
  352. package/dist/admin/utils/validation.js.map +1 -1
  353. package/dist/admin/utils/validation.mjs +19 -7
  354. package/dist/admin/utils/validation.mjs.map +1 -1
  355. package/dist/server/controllers/collection-types.js +2 -1
  356. package/dist/server/controllers/collection-types.js.map +1 -1
  357. package/dist/server/controllers/collection-types.mjs +2 -1
  358. package/dist/server/controllers/collection-types.mjs.map +1 -1
  359. package/dist/server/controllers/content-types.js +11 -1
  360. package/dist/server/controllers/content-types.js.map +1 -1
  361. package/dist/server/controllers/content-types.mjs +11 -1
  362. package/dist/server/controllers/content-types.mjs.map +1 -1
  363. package/dist/server/controllers/index.js +3 -1
  364. package/dist/server/controllers/index.js.map +1 -1
  365. package/dist/server/controllers/index.mjs +3 -1
  366. package/dist/server/controllers/index.mjs.map +1 -1
  367. package/dist/server/controllers/relations.js +8 -6
  368. package/dist/server/controllers/relations.js.map +1 -1
  369. package/dist/server/controllers/relations.mjs +8 -6
  370. package/dist/server/controllers/relations.mjs.map +1 -1
  371. package/dist/server/controllers/single-types.js.map +1 -1
  372. package/dist/server/controllers/single-types.mjs.map +1 -1
  373. package/dist/server/controllers/validation/dimensions.js.map +1 -1
  374. package/dist/server/controllers/validation/dimensions.mjs.map +1 -1
  375. package/dist/server/controllers/validation/index.js +14 -2
  376. package/dist/server/controllers/validation/index.js.map +1 -1
  377. package/dist/server/controllers/validation/index.mjs +14 -2
  378. package/dist/server/controllers/validation/index.mjs.map +1 -1
  379. package/dist/server/history/services/lifecycles.js +23 -19
  380. package/dist/server/history/services/lifecycles.js.map +1 -1
  381. package/dist/server/history/services/lifecycles.mjs +23 -19
  382. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  383. package/dist/server/history/utils.js.map +1 -1
  384. package/dist/server/history/utils.mjs.map +1 -1
  385. package/dist/server/homepage/controllers/homepage.js +62 -0
  386. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  387. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  388. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  389. package/dist/server/homepage/controllers/index.js +10 -0
  390. package/dist/server/homepage/controllers/index.js.map +1 -0
  391. package/dist/server/homepage/controllers/index.mjs +8 -0
  392. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  393. package/dist/server/homepage/index.js +14 -0
  394. package/dist/server/homepage/index.js.map +1 -0
  395. package/dist/server/homepage/index.mjs +12 -0
  396. package/dist/server/homepage/index.mjs.map +1 -0
  397. package/dist/server/homepage/routes/homepage.js +36 -0
  398. package/dist/server/homepage/routes/homepage.js.map +1 -0
  399. package/dist/server/homepage/routes/homepage.mjs +34 -0
  400. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  401. package/dist/server/homepage/routes/index.js +13 -0
  402. package/dist/server/homepage/routes/index.js.map +1 -0
  403. package/dist/server/homepage/routes/index.mjs +11 -0
  404. package/dist/server/homepage/routes/index.mjs.map +1 -0
  405. package/dist/server/homepage/services/homepage.js +197 -0
  406. package/dist/server/homepage/services/homepage.js.map +1 -0
  407. package/dist/server/homepage/services/homepage.mjs +195 -0
  408. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  409. package/dist/server/homepage/services/index.js +10 -0
  410. package/dist/server/homepage/services/index.js.map +1 -0
  411. package/dist/server/homepage/services/index.mjs +8 -0
  412. package/dist/server/homepage/services/index.mjs.map +1 -0
  413. package/dist/server/middlewares/routing.js.map +1 -1
  414. package/dist/server/middlewares/routing.mjs.map +1 -1
  415. package/dist/server/preview/services/preview-config.js +11 -32
  416. package/dist/server/preview/services/preview-config.js.map +1 -1
  417. package/dist/server/preview/services/preview-config.mjs +12 -33
  418. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  419. package/dist/server/preview/services/preview.js +4 -1
  420. package/dist/server/preview/services/preview.js.map +1 -1
  421. package/dist/server/preview/services/preview.mjs +4 -1
  422. package/dist/server/preview/services/preview.mjs.map +1 -1
  423. package/dist/server/preview/utils.js.map +1 -1
  424. package/dist/server/preview/utils.mjs.map +1 -1
  425. package/dist/server/routes/index.js +3 -1
  426. package/dist/server/routes/index.js.map +1 -1
  427. package/dist/server/routes/index.mjs +3 -1
  428. package/dist/server/routes/index.mjs.map +1 -1
  429. package/dist/server/services/configuration.js.map +1 -1
  430. package/dist/server/services/configuration.mjs.map +1 -1
  431. package/dist/server/services/data-mapper.js +4 -1
  432. package/dist/server/services/data-mapper.js.map +1 -1
  433. package/dist/server/services/data-mapper.mjs +4 -1
  434. package/dist/server/services/data-mapper.mjs.map +1 -1
  435. package/dist/server/services/document-manager.js +8 -1
  436. package/dist/server/services/document-manager.js.map +1 -1
  437. package/dist/server/services/document-manager.mjs +8 -1
  438. package/dist/server/services/document-manager.mjs.map +1 -1
  439. package/dist/server/services/document-metadata.js +26 -2
  440. package/dist/server/services/document-metadata.js.map +1 -1
  441. package/dist/server/services/document-metadata.mjs +26 -2
  442. package/dist/server/services/document-metadata.mjs.map +1 -1
  443. package/dist/server/services/field-sizes.js.map +1 -1
  444. package/dist/server/services/field-sizes.mjs.map +1 -1
  445. package/dist/server/services/index.js +3 -1
  446. package/dist/server/services/index.js.map +1 -1
  447. package/dist/server/services/index.mjs +3 -1
  448. package/dist/server/services/index.mjs.map +1 -1
  449. package/dist/server/services/uid.js.map +1 -1
  450. package/dist/server/services/uid.mjs.map +1 -1
  451. package/dist/server/services/utils/configuration/attributes.js +1 -1
  452. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  453. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  454. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  455. package/dist/server/services/utils/configuration/layouts.js +1 -1
  456. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  457. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  458. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  459. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  460. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  461. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  462. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  463. package/dist/server/services/utils/populate.js +11 -0
  464. package/dist/server/services/utils/populate.js.map +1 -1
  465. package/dist/server/services/utils/populate.mjs +11 -0
  466. package/dist/server/services/utils/populate.mjs.map +1 -1
  467. package/dist/server/services/utils/store.js.map +1 -1
  468. package/dist/server/services/utils/store.mjs.map +1 -1
  469. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  470. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  471. package/dist/server/src/controllers/index.d.ts.map +1 -1
  472. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  473. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  474. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  475. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  476. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  477. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  478. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  479. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  480. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  481. package/dist/server/src/homepage/index.d.ts +23 -0
  482. package/dist/server/src/homepage/index.d.ts.map +1 -0
  483. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  484. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  485. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  486. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  487. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  488. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  489. package/dist/server/src/homepage/services/index.d.ts +16 -0
  490. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  491. package/dist/server/src/index.d.ts +15 -0
  492. package/dist/server/src/index.d.ts.map +1 -1
  493. package/dist/server/src/preview/services/index.d.ts +1 -0
  494. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  495. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  496. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  497. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  498. package/dist/server/src/preview/utils.d.ts +1 -0
  499. package/dist/server/src/preview/utils.d.ts.map +1 -1
  500. package/dist/server/src/routes/index.d.ts +1 -0
  501. package/dist/server/src/routes/index.d.ts.map +1 -1
  502. package/dist/server/src/services/data-mapper.d.ts +1 -0
  503. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  504. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  505. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  506. package/dist/server/src/services/index.d.ts +14 -0
  507. package/dist/server/src/services/index.d.ts.map +1 -1
  508. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  509. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  510. package/dist/shared/contracts/collection-types.d.ts +0 -1
  511. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  512. package/dist/shared/contracts/homepage.d.ts +38 -0
  513. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  514. package/package.json +12 -10
  515. package/dist/admin/features/DocumentContext.js +0 -71
  516. package/dist/admin/features/DocumentContext.js.map +0 -1
  517. package/dist/admin/features/DocumentContext.mjs +0 -49
  518. package/dist/admin/features/DocumentContext.mjs.map +0 -1
  519. package/dist/admin/src/features/DocumentContext.d.ts +0 -53
@@ -10,14 +10,19 @@ var reactRouterDom = require('react-router-dom');
10
10
  var styledComponents = require('styled-components');
11
11
  var collections = require('../../../../../constants/collections.js');
12
12
  var plugin = require('../../../../../constants/plugin.js');
13
- var DocumentContext = require('../../../../../features/DocumentContext.js');
14
- var DocumentRBAC = require('../../../../../features/DocumentRBAC.js');
15
- var useDocumentLayout = require('../../../../../hooks/useDocumentLayout.js');
13
+ var api = require('../../../../../utils/api.js');
14
+ require('date-fns');
15
+ var DocumentStatus = require('../../DocumentStatus.js');
16
+ var useDocument = require('../../../../../hooks/useDocument.js');
17
+ require('@strapi/admin/strapi-admin/ee');
18
+ require('../../../../../preview/pages/Preview.js');
16
19
  var documents = require('../../../../../services/documents.js');
20
+ var useDocumentLayout = require('../../../../../hooks/useDocumentLayout.js');
21
+ var DocumentRBAC = require('../../../../../features/DocumentRBAC.js');
17
22
  var validation = require('../../../../../utils/validation.js');
18
23
  var DocumentActions = require('../../DocumentActions.js');
19
- var DocumentStatus = require('../../DocumentStatus.js');
20
24
  var FormLayout = require('../../FormLayout.js');
25
+ var ComponentContext = require('../ComponentContext.js');
21
26
 
22
27
  function _interopNamespaceDefault(e) {
23
28
  var n = Object.create(null);
@@ -43,271 +48,432 @@ function getCollectionType(url) {
43
48
  const match = url.match(regex);
44
49
  return match ? match[1] : undefined;
45
50
  }
46
- const CustomModalContent = styledComponents.styled(designSystem.Modal.Content)`
51
+ const StyledModalContent = styledComponents.styled(designSystem.Modal.Content)`
47
52
  width: 90%;
48
53
  max-width: 100%;
49
54
  height: 90%;
50
55
  max-height: 100%;
51
56
  `;
52
- const [RelationModalProvider, useRelationModal] = strapiAdmin.createContext('RelationModal', {
53
- parentModified: false,
54
- depth: 0
55
- });
56
- const RelationModalForm = ({ relation, triggerButtonLabel })=>{
57
+ const getFullPageUrl = (currentDocumentMeta)=>{
58
+ const isSingleType = currentDocumentMeta.collectionType === collections.SINGLE_TYPES;
59
+ const queryParams = currentDocumentMeta.params?.locale ? `?plugins[i18n][locale]=${currentDocumentMeta.params.locale}` : '';
60
+ return `/content-manager/${currentDocumentMeta.collectionType}/${currentDocumentMeta.model}${isSingleType ? '' : '/' + currentDocumentMeta.documentId}${queryParams}`;
61
+ };
62
+ function reducer(state, action) {
63
+ switch(action.type){
64
+ case 'GO_TO_RELATION':
65
+ if (state.hasUnsavedChanges && !action.payload.shouldBypassConfirmation) {
66
+ return {
67
+ ...state,
68
+ confirmDialogIntent: action.payload.document,
69
+ fieldToConnect: action.payload.fieldToConnect,
70
+ fieldToConnectUID: action.payload.fieldToConnectUID
71
+ };
72
+ }
73
+ const lastItemDocumentHistory = state.documentHistory.at(-1);
74
+ const hasToResetDocumentHistory = lastItemDocumentHistory && !lastItemDocumentHistory.documentId;
75
+ return {
76
+ ...state,
77
+ // Reset document history if the last item has documentId undefined
78
+ documentHistory: hasToResetDocumentHistory ? [
79
+ action.payload.document
80
+ ] : [
81
+ ...state.documentHistory,
82
+ action.payload.document
83
+ ],
84
+ confirmDialogIntent: null,
85
+ isModalOpen: true,
86
+ fieldToConnect: hasToResetDocumentHistory ? undefined : action.payload.fieldToConnect,
87
+ fieldToConnectUID: hasToResetDocumentHistory ? undefined : action.payload.fieldToConnectUID
88
+ };
89
+ case 'GO_BACK':
90
+ if (state.hasUnsavedChanges && !action.payload.shouldBypassConfirmation) {
91
+ return {
92
+ ...state,
93
+ confirmDialogIntent: 'back'
94
+ };
95
+ }
96
+ return {
97
+ ...state,
98
+ documentHistory: state.documentHistory.slice(0, -1),
99
+ confirmDialogIntent: null
100
+ };
101
+ case 'GO_FULL_PAGE':
102
+ if (state.hasUnsavedChanges) {
103
+ return {
104
+ ...state,
105
+ confirmDialogIntent: 'navigate'
106
+ };
107
+ }
108
+ return {
109
+ ...state,
110
+ documentHistory: [],
111
+ hasUnsavedChanges: false,
112
+ isModalOpen: false,
113
+ confirmDialogIntent: null
114
+ };
115
+ case 'GO_TO_CREATED_RELATION':
116
+ return {
117
+ ...state,
118
+ // Reset document history if the last item has documentId undefined
119
+ documentHistory: state.documentHistory ? [
120
+ ...state.documentHistory.slice(0, -1),
121
+ action.payload.document
122
+ ] : [
123
+ action.payload.document
124
+ ],
125
+ confirmDialogIntent: null,
126
+ isModalOpen: true,
127
+ fieldToConnect: undefined,
128
+ fieldToConnectUID: undefined
129
+ };
130
+ case 'CANCEL_CONFIRM_DIALOG':
131
+ return {
132
+ ...state,
133
+ confirmDialogIntent: null
134
+ };
135
+ case 'CLOSE_MODAL':
136
+ if (state.hasUnsavedChanges && !action.payload.shouldBypassConfirmation) {
137
+ return {
138
+ ...state,
139
+ confirmDialogIntent: 'close'
140
+ };
141
+ }
142
+ return {
143
+ ...state,
144
+ documentHistory: [],
145
+ confirmDialogIntent: null,
146
+ hasUnsavedChanges: false,
147
+ isModalOpen: false
148
+ };
149
+ case 'SET_HAS_UNSAVED_CHANGES':
150
+ return {
151
+ ...state,
152
+ hasUnsavedChanges: action.payload.hasUnsavedChanges
153
+ };
154
+ default:
155
+ return state;
156
+ }
157
+ }
158
+ const [RelationModalProvider, useRelationModal] = strapiAdmin.createContext('RelationModal');
159
+ function isRenderProp(children) {
160
+ return typeof children === 'function';
161
+ }
162
+ const RootRelationRenderer = (props)=>{
163
+ const { children } = props;
164
+ const [state, dispatch] = React__namespace.useReducer(reducer, {
165
+ documentHistory: [],
166
+ confirmDialogIntent: null,
167
+ isModalOpen: false,
168
+ hasUnsavedChanges: false,
169
+ fieldToConnect: undefined
170
+ });
171
+ const rootDocument = useDocument.useDoc();
172
+ const [{ query }] = strapiAdmin.useQueryParams();
173
+ const params = React__namespace.useMemo(()=>api.buildValidParams(query ?? {}), [
174
+ query
175
+ ]);
176
+ const rootDocumentMeta = {
177
+ documentId: rootDocument.document?.documentId || '',
178
+ model: rootDocument.model,
179
+ collectionType: rootDocument.collectionType,
180
+ params
181
+ };
182
+ const currentDocumentMeta = state.documentHistory.at(-1) ?? rootDocumentMeta;
183
+ const currentDocument = useDocument.useDocument(currentDocumentMeta);
184
+ // TODO: check if we can remove the single type check
185
+ const isSingleType = currentDocumentMeta.collectionType === collections.SINGLE_TYPES;
186
+ const isCreating = !currentDocumentMeta.documentId && !isSingleType;
187
+ /**
188
+ * There is no parent relation, so the relation modal doesn't exist. Create it and set up all the
189
+ * pieces that will be used by potential child relations: the context, header, form, and footer.
190
+ */ return /*#__PURE__*/ jsxRuntime.jsx(RelationModalProvider, {
191
+ state: state,
192
+ dispatch: dispatch,
193
+ rootDocumentMeta: rootDocumentMeta,
194
+ currentDocumentMeta: currentDocumentMeta,
195
+ currentDocument: currentDocument,
196
+ isCreating: isCreating,
197
+ children: /*#__PURE__*/ jsxRuntime.jsx(RelationModal, {
198
+ children: isRenderProp(children) ? children({
199
+ dispatch
200
+ }) : props.relation && /*#__PURE__*/ jsxRuntime.jsx(RelationModalTrigger, {
201
+ relation: props.relation,
202
+ children: children
203
+ })
204
+ })
205
+ });
206
+ };
207
+ const NestedRelationRenderer = (props)=>{
208
+ const { children } = props;
209
+ const dispatch = useRelationModal('NestedRelation', (state)=>state.dispatch);
210
+ return isRenderProp(children) ? children({
211
+ dispatch
212
+ }) : props.relation && /*#__PURE__*/ jsxRuntime.jsx(RelationModalTrigger, {
213
+ relation: props.relation,
214
+ children: children
215
+ }); /* This is the trigger that will be rendered in the parent relation */
216
+ };
217
+ /**
218
+ * Component responsible for rendering its children wrapped in a modal, form and context if needed
219
+ */ const RelationModalRenderer = (props)=>{
220
+ // We're in a nested relation if the relation modal context is not undefined
221
+ const isNested = useRelationModal('RelationContextWrapper', (state)=>state != undefined, false);
222
+ return isNested ? /*#__PURE__*/ jsxRuntime.jsx(NestedRelationRenderer, {
223
+ ...props
224
+ }) : /*#__PURE__*/ jsxRuntime.jsx(RootRelationRenderer, {
225
+ ...props
226
+ });
227
+ };
228
+ /* -------------------------------------------------------------------------------------------------
229
+ * RelationModal
230
+ * -----------------------------------------------------------------------------------------------*/ const generateCreateUrl = (currentDocumentMeta)=>{
231
+ return `/content-manager/${currentDocumentMeta.collectionType}/${currentDocumentMeta.model}/create${currentDocumentMeta.params?.locale ? `?plugins[i18n][locale]=${currentDocumentMeta.params.locale}` : ''}`;
232
+ };
233
+ const RelationModal = ({ children })=>{
234
+ const { formatMessage } = reactIntl.useIntl();
235
+ const navigate = reactRouterDom.useNavigate();
236
+ const state = useRelationModal('RelationModalForm', (state)=>state.state);
237
+ const dispatch = useRelationModal('RelationModalForm', (state)=>state.dispatch);
238
+ const currentDocumentMeta = useRelationModal('RelationModalForm', (state)=>state.currentDocumentMeta);
239
+ const currentDocument = useRelationModal('RelationModalForm', (state)=>state.currentDocument);
240
+ const isCreating = useRelationModal('RelationModalForm', (state)=>state.isCreating);
241
+ /*
242
+ * We must wrap the modal window with Component Provider with reset values
243
+ * to avoid inheriting id and uid from the root document and having weird
244
+ * behaviors with simple relationships..
245
+ */ return /*#__PURE__*/ jsxRuntime.jsx(ComponentContext.ComponentProvider, {
246
+ id: undefined,
247
+ level: -1,
248
+ uid: undefined,
249
+ type: undefined,
250
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Root, {
251
+ open: state.isModalOpen,
252
+ onOpenChange: (open)=>{
253
+ if (!open) {
254
+ dispatch({
255
+ type: 'CLOSE_MODAL',
256
+ payload: {
257
+ shouldBypassConfirmation: false
258
+ }
259
+ });
260
+ }
261
+ },
262
+ children: [
263
+ children,
264
+ /*#__PURE__*/ jsxRuntime.jsxs(StyledModalContent, {
265
+ children: [
266
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Header, {
267
+ gap: 2,
268
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
269
+ justifyContent: "space-between",
270
+ alignItems: "center",
271
+ width: "100%",
272
+ children: [
273
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
274
+ gap: 2,
275
+ children: [
276
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
277
+ withTooltip: false,
278
+ label: formatMessage({
279
+ id: 'global.back',
280
+ defaultMessage: 'Back'
281
+ }),
282
+ variant: "ghost",
283
+ disabled: state.documentHistory.length < 2,
284
+ onClick: ()=>{
285
+ dispatch({
286
+ type: 'GO_BACK',
287
+ payload: {
288
+ shouldBypassConfirmation: false
289
+ }
290
+ });
291
+ },
292
+ marginRight: 1,
293
+ children: /*#__PURE__*/ jsxRuntime.jsx(Icons.ArrowLeft, {})
294
+ }),
295
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
296
+ tag: "span",
297
+ fontWeight: 600,
298
+ children: isCreating ? formatMessage({
299
+ id: 'content-manager.relation.create',
300
+ defaultMessage: 'Create a relation'
301
+ }) : formatMessage({
302
+ id: 'content-manager.components.RelationInputModal.modal-title',
303
+ defaultMessage: 'Edit a relation'
304
+ })
305
+ })
306
+ ]
307
+ }),
308
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
309
+ onClick: ()=>{
310
+ dispatch({
311
+ type: 'GO_FULL_PAGE'
312
+ });
313
+ if (!state.hasUnsavedChanges) {
314
+ if (isCreating) {
315
+ navigate(generateCreateUrl(currentDocumentMeta));
316
+ } else {
317
+ navigate(getFullPageUrl(currentDocumentMeta));
318
+ }
319
+ }
320
+ },
321
+ variant: "tertiary",
322
+ label: formatMessage({
323
+ id: 'content-manager.components.RelationInputModal.button-fullpage',
324
+ defaultMessage: 'Go to entry'
325
+ }),
326
+ children: /*#__PURE__*/ jsxRuntime.jsx(Icons.ArrowsOut, {})
327
+ })
328
+ ]
329
+ })
330
+ }),
331
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Body, {
332
+ children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Form, {
333
+ method: isCreating ? 'POST' : 'PUT',
334
+ initialValues: currentDocument.getInitialFormValues(isCreating),
335
+ validate: (values, options)=>{
336
+ const yupSchema = validation.createYupSchema(currentDocument.schema?.attributes, currentDocument.components, {
337
+ status: currentDocument.document?.status,
338
+ ...options
339
+ });
340
+ return yupSchema.validate(values, {
341
+ abortEarly: false
342
+ });
343
+ },
344
+ children: /*#__PURE__*/ jsxRuntime.jsx(RelationModalBody, {})
345
+ })
346
+ })
347
+ ]
348
+ })
349
+ ]
350
+ })
351
+ });
352
+ };
353
+ /**
354
+ * All the main content (not header and footer) of the relation modal, plus the confirmation dialog.
355
+ * Will be wrapped in a Modal.Body by the RelationModal component.
356
+ * Cannot be moved directly inside RelationModal because it needs access to the context via hooks.
357
+ */ const RelationModalBody = ()=>{
57
358
  const navigate = reactRouterDom.useNavigate();
58
359
  const { pathname, search } = reactRouterDom.useLocation();
59
360
  const { formatMessage } = reactIntl.useIntl();
60
361
  const [triggerRefetchDocument] = documents.useLazyGetDocumentQuery();
61
- const currentDocument = DocumentContext.useDocumentContext('RelationModalForm', (state)=>state.document);
62
- const rootDocumentMeta = DocumentContext.useDocumentContext('RelationModalForm', (state)=>state.rootDocumentMeta);
63
- const currentDocumentMeta = DocumentContext.useDocumentContext('RelationModalForm', (state)=>state.meta);
64
- const changeDocument = DocumentContext.useDocumentContext('RelationModalForm', (state)=>state.changeDocument);
65
- const documentHistory = DocumentContext.useDocumentContext('RelationModalForm', (state)=>state.documentHistory);
66
- const setDocumentHistory = DocumentContext.useDocumentContext('RelationModalForm', (state)=>state.setDocumentHistory);
67
- const [isConfirmationOpen, setIsConfirmationOpen] = React__namespace.useState(false);
68
- const [actionPosition, setActionPosition] = React__namespace.useState('cancel');
69
- const [isModalOpen, setIsModalOpen] = React__namespace.useState(false);
70
- // NOTE: Not sure about this relation modal context, maybe we should move this to DocumentContext?
71
- // Get parent modal context if it exists
72
- const parentContext = useRelationModal('RelationModalForm', (state)=>state);
73
- // Get depth of nested modals
74
- const depth = parentContext ? parentContext.depth + 1 : 0;
75
- // Check if this is a nested modal
76
- const isNested = depth > 0;
77
- const addDocumentToHistory = (document)=>setDocumentHistory((prev)=>[
78
- ...prev,
79
- document
80
- ]);
81
- const getPreviousDocument = ()=>{
82
- if (documentHistory.length === 0) return undefined;
83
- const lastDocument = documentHistory[documentHistory.length - 1];
84
- return lastDocument;
85
- };
86
- const removeLastDocumentFromHistory = ()=>{
87
- setDocumentHistory((prev)=>[
88
- ...prev
89
- ].slice(0, prev.length - 1));
90
- };
91
- const handleToggleModal = ()=>{
92
- if (isModalOpen) {
93
- setIsModalOpen(false);
94
- const document = {
95
- collectionType: rootDocumentMeta.collectionType,
96
- model: rootDocumentMeta.model,
97
- documentId: rootDocumentMeta.documentId
98
- };
99
- // Change back to the root document
100
- changeDocument(document);
101
- // Reset the document history
102
- setDocumentHistory([]);
103
- // Reset action position
104
- setActionPosition('cancel');
105
- // Read from cache or refetch root document
106
- triggerRefetchDocument(document, // Favor the cache
362
+ const state = useRelationModal('RelationModalForm', (state)=>state.state);
363
+ const dispatch = useRelationModal('RelationModalForm', (state)=>state.dispatch);
364
+ const rootDocumentMeta = useRelationModal('RelationModalForm', (state)=>state.rootDocumentMeta);
365
+ const currentDocumentMeta = useRelationModal('RelationModalForm', (state)=>state.currentDocumentMeta);
366
+ const isCreating = useRelationModal('RelationModalForm', (state)=>state.isCreating);
367
+ /**
368
+ * One-way sync the modified state from the form to the modal state.
369
+ * It is needed because we need to consume state from the form context in order to lift it up
370
+ * into the modal context. It is not possible otherwise because the modal needs the form state,
371
+ * but it must be a parent of the form.
372
+ */ const modified = strapiAdmin.useForm('FormWatcher', (state)=>state.modified);
373
+ const isSubmitting = strapiAdmin.useForm('FormWatcher', (state)=>state.isSubmitting);
374
+ const hasUnsavedChanges = modified && !isSubmitting;
375
+ React__namespace.useEffect(()=>{
376
+ dispatch({
377
+ type: 'SET_HAS_UNSAVED_CHANGES',
378
+ payload: {
379
+ hasUnsavedChanges
380
+ }
381
+ });
382
+ }, [
383
+ hasUnsavedChanges,
384
+ dispatch
385
+ ]);
386
+ const handleCloseModal = (shouldBypassConfirmation)=>{
387
+ dispatch({
388
+ type: 'CLOSE_MODAL',
389
+ payload: {
390
+ shouldBypassConfirmation
391
+ }
392
+ });
393
+ {
394
+ // TODO: check if we can avoid this by relying on RTK invalidatesTags.
395
+ // If so we can delete this function and dispatch the events directly
396
+ triggerRefetchDocument(// TODO check if params should be removed (as they were before)
397
+ rootDocumentMeta, // Favor the cache
107
398
  true);
108
- } else {
109
- changeDocument(relation);
110
- setIsModalOpen(true);
111
399
  }
112
400
  };
113
- const getFullPageLink = ()=>{
114
- const isSingleType = currentDocumentMeta.collectionType === collections.SINGLE_TYPES;
115
- const queryParams = currentDocumentMeta.params?.locale ? `?plugins[i18n][locale]=${currentDocumentMeta.params.locale}` : '';
116
- return `/content-manager/${currentDocumentMeta.collectionType}/${currentDocumentMeta.model}${isSingleType ? '' : '/' + currentDocumentMeta.documentId}${queryParams}`;
117
- };
118
401
  const handleRedirection = ()=>{
119
402
  const editViewUrl = `${pathname}${search}`;
120
- const isRootDocumentUrl = editViewUrl.includes(getFullPageLink());
403
+ const fullPageUrl = getFullPageUrl(currentDocumentMeta);
404
+ const isRootDocumentUrl = editViewUrl.includes(fullPageUrl);
121
405
  if (isRootDocumentUrl) {
122
- handleToggleModal();
406
+ handleCloseModal(true);
123
407
  } else {
124
- navigate(getFullPageLink());
408
+ if (isCreating) {
409
+ navigate(generateCreateUrl(currentDocumentMeta));
410
+ } else {
411
+ navigate(fullPageUrl);
412
+ }
125
413
  }
126
414
  };
127
415
  const handleConfirm = ()=>{
128
- if (actionPosition === 'navigate') {
129
- handleRedirection();
130
- } else if (actionPosition === 'back') {
131
- const previousRelation = getPreviousDocument();
132
- if (previousRelation) {
133
- removeLastDocumentFromHistory();
134
- changeDocument(previousRelation);
135
- }
136
- } else {
137
- // Add current relation to history before opening a new one in case we are opening a new one
138
- if (currentDocumentMeta && Object.keys(currentDocumentMeta).length > 0) {
139
- addDocumentToHistory(currentDocumentMeta);
140
- }
141
- handleToggleModal();
416
+ if (state.confirmDialogIntent === null) {
417
+ return;
142
418
  }
143
- };
144
- return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Form, {
145
- method: "PUT",
146
- initialValues: currentDocument.getInitialFormValues(),
147
- validate: (values, options)=>{
148
- const yupSchema = validation.createYupSchema(currentDocument.schema?.attributes, currentDocument.components, {
149
- status: currentDocument.document?.status,
150
- ...options
419
+ if (state.confirmDialogIntent === 'navigate') {
420
+ handleRedirection();
421
+ } else if (state.confirmDialogIntent === 'back') {
422
+ dispatch({
423
+ type: 'GO_BACK',
424
+ payload: {
425
+ shouldBypassConfirmation: true
426
+ }
151
427
  });
152
- return yupSchema.validate(values, {
153
- abortEarly: false
428
+ } else if (state.confirmDialogIntent === 'close') {
429
+ handleCloseModal(true);
430
+ } else if ('documentId' in state.confirmDialogIntent) {
431
+ dispatch({
432
+ type: 'GO_TO_RELATION',
433
+ payload: {
434
+ document: state.confirmDialogIntent,
435
+ shouldBypassConfirmation: true
436
+ }
154
437
  });
155
- },
156
- children: ({ modified, isSubmitting, resetForm })=>{
157
- // We don't count the root document, so history starts after 1
158
- const hasHistory = documentHistory.length > 1;
159
- return /*#__PURE__*/ jsxRuntime.jsxs(RelationModalProvider, {
160
- parentModified: modified,
161
- depth: depth,
162
- children: [
163
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Root, {
164
- open: isModalOpen,
165
- onOpenChange: ()=>{
166
- if (isModalOpen) {
167
- if (modified && !isSubmitting) {
168
- setIsConfirmationOpen(true);
169
- } else {
170
- handleToggleModal();
171
- }
172
- }
173
- },
174
- children: [
175
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Trigger, {
176
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tooltip, {
177
- description: triggerButtonLabel,
178
- children: /*#__PURE__*/ jsxRuntime.jsx(CustomTextButton, {
179
- onClick: ()=>{
180
- // Check if parent modal has unsaved changes
181
- if (isNested && parentContext.parentModified) {
182
- setIsConfirmationOpen(true);
183
- // Return early to avoid opening the modal
184
- return;
185
- } else {
186
- if (modified && !isSubmitting) {
187
- setIsConfirmationOpen(true);
188
- } else {
189
- // Add current relation to history before opening a new one
190
- if (currentDocumentMeta && Object.keys(currentDocumentMeta).length > 0) {
191
- addDocumentToHistory(currentDocumentMeta);
192
- }
193
- handleToggleModal();
194
- }
195
- if (!isModalOpen) {
196
- setIsModalOpen(true);
197
- }
198
- }
199
- },
200
- width: "100%",
201
- children: triggerButtonLabel
202
- })
203
- })
204
- }),
205
- /*#__PURE__*/ jsxRuntime.jsxs(CustomModalContent, {
206
- children: [
207
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Header, {
208
- gap: 2,
209
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
210
- justifyContent: "space-between",
211
- alignItems: "center",
212
- width: "100%",
213
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
214
- gap: 2,
215
- children: [
216
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
217
- withTooltip: false,
218
- label: "Back",
219
- variant: "ghost",
220
- disabled: !hasHistory,
221
- onClick: ()=>{
222
- setActionPosition('back');
223
- if (modified && !isSubmitting) {
224
- setIsConfirmationOpen(true);
225
- } else {
226
- const previousRelation = getPreviousDocument();
227
- if (previousRelation) {
228
- removeLastDocumentFromHistory();
229
- changeDocument(previousRelation);
230
- }
231
- }
232
- },
233
- marginRight: 1,
234
- children: /*#__PURE__*/ jsxRuntime.jsx(Icons.ArrowLeft, {})
235
- }),
236
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
237
- tag: "span",
238
- fontWeight: 600,
239
- children: formatMessage({
240
- id: 'content-manager.components.RelationInputModal.modal-title',
241
- defaultMessage: 'Edit a relation'
242
- })
243
- })
244
- ]
245
- })
246
- })
247
- }),
248
- /*#__PURE__*/ jsxRuntime.jsx(RelationModalBody, {
249
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
250
- onClick: ()=>{
251
- setActionPosition('navigate');
252
- if (modified && !isSubmitting) {
253
- setIsConfirmationOpen(true);
254
- } else {
255
- navigate(getFullPageLink());
256
- }
257
- },
258
- variant: "tertiary",
259
- label: formatMessage({
260
- id: 'content-manager.components.RelationInputModal.button-fullpage',
261
- defaultMessage: 'Go to entry'
262
- }),
263
- children: /*#__PURE__*/ jsxRuntime.jsx(Icons.ArrowsOut, {})
264
- })
265
- }),
266
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Footer, {
267
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
268
- onClick: ()=>{
269
- if (modified && !isSubmitting) {
270
- setIsConfirmationOpen(true);
271
- } else {
272
- handleToggleModal();
273
- }
274
- },
275
- variant: "tertiary",
276
- children: formatMessage({
277
- id: 'app.components.Button.cancel',
278
- defaultMessage: 'Cancel'
279
- })
280
- })
281
- })
282
- ]
283
- })
284
- ]
285
- }),
286
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Dialog.Root, {
287
- open: isConfirmationOpen,
288
- onOpenChange: setIsConfirmationOpen,
289
- children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, {
290
- onConfirm: ()=>{
291
- handleConfirm();
292
- setIsConfirmationOpen(false);
293
- resetForm();
294
- },
295
- onCancel: ()=>{
296
- setIsConfirmationOpen(false);
297
- },
298
- variant: "danger",
299
- children: formatMessage({
300
- id: 'content-manager.components.RelationInputModal.confirmation-message',
301
- defaultMessage: 'Some changes were not saved. Are you sure you want to close this relation? All changes that were not saved will be lost.'
302
- })
303
- })
438
+ }
439
+ };
440
+ return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
441
+ children: [
442
+ /*#__PURE__*/ jsxRuntime.jsx(RelationModalForm, {}),
443
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Dialog.Root, {
444
+ open: state.confirmDialogIntent != null,
445
+ children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, {
446
+ onConfirm: ()=>handleConfirm(),
447
+ onCancel: ()=>dispatch({
448
+ type: 'CANCEL_CONFIRM_DIALOG'
449
+ }),
450
+ variant: "danger",
451
+ children: formatMessage({
452
+ id: 'content-manager.components.RelationInputModal.confirmation-message',
453
+ defaultMessage: 'Some changes were not saved. Are you sure you want to close this relation? All changes that were not saved will be lost.'
304
454
  })
305
- ]
455
+ })
456
+ })
457
+ ]
458
+ });
459
+ };
460
+ const RelationModalTrigger = ({ children, relation })=>{
461
+ const dispatch = useRelationModal('ModalTrigger', (state)=>state.dispatch);
462
+ return /*#__PURE__*/ jsxRuntime.jsx(StyledTextButton, {
463
+ onClick: ()=>{
464
+ dispatch({
465
+ type: 'GO_TO_RELATION',
466
+ payload: {
467
+ document: relation,
468
+ shouldBypassConfirmation: false
469
+ }
306
470
  });
307
- }
471
+ },
472
+ children: children
308
473
  });
309
474
  };
310
- const CustomTextButton = styledComponents.styled(designSystem.TextButton)`
475
+ const StyledTextButton = styledComponents.styled(designSystem.TextButton)`
476
+ max-width: 100%;
311
477
  & > span {
312
478
  font-size: ${({ theme })=>theme.fontSizes[2]};
313
479
  width: inherit;
@@ -316,20 +482,23 @@ const CustomTextButton = styledComponents.styled(designSystem.TextButton)`
316
482
  text-overflow: ellipsis;
317
483
  }
318
484
  `;
319
- const RelationModalBody = ({ children })=>{
485
+ /**
486
+ * The mini edit view for a relation that is displayed inside a modal.
487
+ * It's complete with its header, document actions and form layout.
488
+ */ const RelationModalForm = ()=>{
320
489
  const { formatMessage } = reactIntl.useIntl();
321
- const documentMeta = DocumentContext.useDocumentContext('RelationModalBody', (state)=>state.meta);
322
- const documentResponse = DocumentContext.useDocumentContext('RelationModalBody', (state)=>state.document);
323
- const onPreview = DocumentContext.useDocumentContext('RelationModalBody', (state)=>state.onPreview);
324
- const documentLayoutResponse = useDocumentLayout.useDocumentLayout(documentMeta.model);
325
- const plugins = strapiAdmin.useStrapiApp('RelationModalBody', (state)=>state.plugins);
326
- const initialValues = documentResponse.getInitialFormValues();
490
+ const currentDocumentMeta = useRelationModal('RelationModalForm', (state)=>state.currentDocumentMeta);
491
+ const isCreating = useRelationModal('RelationModalForm', (state)=>state.isCreating);
492
+ const currentDocument = useRelationModal('RelationModalForm', (state)=>state.currentDocument);
493
+ const documentLayoutResponse = useDocumentLayout.useDocumentLayout(currentDocumentMeta.model);
494
+ const plugins = strapiAdmin.useStrapiApp('RelationModalForm', (state)=>state.plugins);
495
+ const initialValues = isCreating ? currentDocument.getInitialFormValues(isCreating) : currentDocument.getInitialFormValues();
327
496
  const { permissions = [], isLoading: isLoadingPermissions, error } = strapiAdmin.useRBAC(plugin.PERMISSIONS.map((action)=>({
328
497
  action,
329
- subject: documentMeta.model
498
+ subject: currentDocumentMeta.model
330
499
  })));
331
- const isLoading = isLoadingPermissions || documentLayoutResponse.isLoading || documentResponse.isLoading;
332
- if (isLoading && !documentResponse.document?.documentId) {
500
+ const isLoading = isLoadingPermissions || documentLayoutResponse.isLoading || currentDocument.isLoading;
501
+ if (isLoading && !currentDocument.document?.documentId) {
333
502
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {
334
503
  small: true,
335
504
  children: formatMessage({
@@ -338,7 +507,7 @@ const RelationModalBody = ({ children })=>{
338
507
  })
339
508
  });
340
509
  }
341
- if (error || !documentMeta.model || documentLayoutResponse.error || !documentResponse.document || !documentResponse.meta || !documentResponse.schema || !initialValues) {
510
+ if (error || !currentDocumentMeta.model || documentLayoutResponse.error || !isCreating && !currentDocument.document || !isCreating && !currentDocument.meta || !currentDocument.schema || !initialValues) {
342
511
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
343
512
  alignItems: "center",
344
513
  height: "100%",
@@ -354,107 +523,101 @@ const RelationModalBody = ({ children })=>{
354
523
  })
355
524
  });
356
525
  }
357
- const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);
358
- const hasDraftAndPublished = documentResponse.schema?.options?.draftAndPublish ?? false;
526
+ const documentTitle = currentDocument.getTitle(documentLayoutResponse.edit.settings.mainField);
527
+ const hasDraftAndPublished = currentDocument.schema?.options?.draftAndPublish ?? false;
359
528
  const props = {
360
529
  activeTab: 'draft',
361
- collectionType: documentMeta.collectionType,
362
- model: documentMeta.model,
363
- documentId: documentMeta.documentId,
364
- document: documentResponse.document,
365
- meta: documentResponse.meta,
366
- onPreview,
367
- fromRelationModal: true,
368
- fromPreview: onPreview !== undefined
530
+ collectionType: currentDocumentMeta.collectionType,
531
+ model: currentDocumentMeta.model,
532
+ documentId: currentDocumentMeta.documentId,
533
+ document: currentDocument.document,
534
+ meta: currentDocument.meta
369
535
  };
370
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Body, {
371
- children: /*#__PURE__*/ jsxRuntime.jsxs(DocumentRBAC.DocumentRBAC, {
372
- permissions: permissions,
373
- model: documentMeta.model,
374
- children: [
375
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
376
- alignItems: "flex-start",
377
- direction: "column",
378
- gap: 2,
379
- children: [
380
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
381
- width: "100%",
382
- justifyContent: "space-between",
383
- gap: 2,
384
- children: [
385
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
386
- tag: "h2",
387
- variant: "alpha",
388
- children: documentTitle
389
- }),
390
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
391
- gap: 2,
392
- children: [
393
- children,
394
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.DescriptionComponentRenderer, {
395
- props: props,
396
- descriptions: plugins['content-manager'].apis.getDocumentActions('relation-modal'),
397
- children: (actions)=>{
398
- const filteredActions = actions.filter((action)=>{
399
- return [
400
- action.position
401
- ].flat().includes('relation-modal');
402
- });
403
- const [primaryAction, secondaryAction] = filteredActions;
404
- if (!primaryAction && !secondaryAction) return null;
405
- // Both actions are available when draft and publish enabled
406
- if (primaryAction && secondaryAction) {
407
- return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
408
- children: [
409
- /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionButton, {
410
- ...secondaryAction,
411
- variant: secondaryAction.variant || 'secondary'
412
- }),
413
- /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionButton, {
414
- ...primaryAction,
415
- variant: primaryAction.variant || 'default'
416
- })
417
- ]
418
- });
419
- }
420
- // Otherwise we just have the save action
421
- return /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionButton, {
422
- ...primaryAction,
423
- variant: primaryAction.variant || 'secondary'
424
- });
425
- }
426
- })
427
- ]
536
+ return /*#__PURE__*/ jsxRuntime.jsxs(DocumentRBAC.DocumentRBAC, {
537
+ permissions: permissions,
538
+ model: currentDocumentMeta.model,
539
+ children: [
540
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
541
+ alignItems: "flex-start",
542
+ direction: "column",
543
+ gap: 2,
544
+ children: [
545
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
546
+ width: "100%",
547
+ justifyContent: "space-between",
548
+ gap: 2,
549
+ children: [
550
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
551
+ tag: "h2",
552
+ variant: "alpha",
553
+ children: documentTitle
554
+ }),
555
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
556
+ gap: 2,
557
+ children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.DescriptionComponentRenderer, {
558
+ props: props,
559
+ descriptions: plugins['content-manager'].apis.getDocumentActions('relation-modal'),
560
+ children: (actions)=>{
561
+ const filteredActions = actions.filter((action)=>{
562
+ return [
563
+ action.position
564
+ ].flat().includes('relation-modal');
565
+ });
566
+ const [primaryAction, secondaryAction] = filteredActions;
567
+ if (!primaryAction && !secondaryAction) return null;
568
+ // Both actions are available when draft and publish enabled
569
+ if (primaryAction && secondaryAction) {
570
+ return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
571
+ children: [
572
+ /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionButton, {
573
+ ...secondaryAction,
574
+ variant: secondaryAction.variant || 'secondary'
575
+ }),
576
+ /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionButton, {
577
+ ...primaryAction,
578
+ variant: primaryAction.variant || 'default'
579
+ })
580
+ ]
581
+ });
582
+ }
583
+ // Otherwise we just have the save action
584
+ return /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionButton, {
585
+ ...primaryAction,
586
+ variant: primaryAction.variant || 'secondary'
587
+ });
588
+ }
428
589
  })
429
- ]
430
- }),
431
- hasDraftAndPublished ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
432
- children: /*#__PURE__*/ jsxRuntime.jsx(DocumentStatus.DocumentStatus, {
433
- status: documentResponse.document?.status
434
590
  })
435
- }) : null
436
- ]
437
- }),
438
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
439
- flex: 1,
440
- overflow: "auto",
441
- alignItems: "stretch",
442
- paddingTop: 7,
443
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
444
- overflow: "auto",
445
- flex: 1,
446
- children: /*#__PURE__*/ jsxRuntime.jsx(FormLayout.FormLayout, {
447
- layout: documentLayoutResponse.edit.layout,
448
- document: documentResponse,
449
- hasBackground: false
591
+ ]
592
+ }),
593
+ hasDraftAndPublished ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
594
+ children: /*#__PURE__*/ jsxRuntime.jsx(DocumentStatus.DocumentStatus, {
595
+ status: currentDocument.document?.status
450
596
  })
597
+ }) : null
598
+ ]
599
+ }),
600
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
601
+ flex: 1,
602
+ overflow: "auto",
603
+ alignItems: "stretch",
604
+ paddingTop: 7,
605
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
606
+ overflow: "auto",
607
+ flex: 1,
608
+ children: /*#__PURE__*/ jsxRuntime.jsx(FormLayout.FormLayout, {
609
+ layout: documentLayoutResponse.edit.layout,
610
+ document: currentDocument,
611
+ hasBackground: false
451
612
  })
452
613
  })
453
- ]
454
- })
614
+ })
615
+ ]
455
616
  });
456
617
  };
457
618
 
458
- exports.RelationModalForm = RelationModalForm;
619
+ exports.RelationModalRenderer = RelationModalRenderer;
459
620
  exports.getCollectionType = getCollectionType;
621
+ exports.reducer = reducer;
622
+ exports.useRelationModal = useRelationModal;
460
623
  //# sourceMappingURL=RelationModal.js.map