@strapi/content-manager 0.0.0-experimental.c23f51fc41b3ef5de081f427d07e87af93cdcb2c → 0.0.0-experimental.c2b08ee20b017fc174cccf35c56c39438b0237b0

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