@strapi/content-manager 0.0.0-next.e21fe90bf2ab9906267ea6e6ca620bdcc729906c → 0.0.0-next.e326c69a49373b420f6566c30aca26f4b6274c6a

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 (407) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +304 -205
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +309 -211
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  6. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  8. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  9. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  10. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  11. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  12. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  13. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  14. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  15. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  16. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/LeftMenu.js +92 -48
  22. package/dist/admin/components/LeftMenu.js.map +1 -1
  23. package/dist/admin/components/LeftMenu.mjs +95 -51
  24. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  25. package/dist/admin/components/Widgets.js +269 -9
  26. package/dist/admin/components/Widgets.js.map +1 -1
  27. package/dist/admin/components/Widgets.mjs +252 -12
  28. package/dist/admin/components/Widgets.mjs.map +1 -1
  29. package/dist/admin/history/components/VersionContent.js +24 -3
  30. package/dist/admin/history/components/VersionContent.js.map +1 -1
  31. package/dist/admin/history/components/VersionContent.mjs +25 -4
  32. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  33. package/dist/admin/history/components/VersionHeader.js +7 -0
  34. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  35. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  36. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  37. package/dist/admin/history/components/VersionsList.js +1 -1
  38. package/dist/admin/history/components/VersionsList.js.map +1 -1
  39. package/dist/admin/history/components/VersionsList.mjs +1 -1
  40. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  41. package/dist/admin/history/pages/History.js +7 -7
  42. package/dist/admin/history/pages/History.js.map +1 -1
  43. package/dist/admin/history/pages/History.mjs +7 -7
  44. package/dist/admin/history/pages/History.mjs.map +1 -1
  45. package/dist/admin/hooks/useDocumentActions.js +12 -7
  46. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  47. package/dist/admin/hooks/useDocumentActions.mjs +13 -8
  48. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  49. package/dist/admin/hooks/useDocumentContext.js.map +1 -1
  50. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -1
  51. package/dist/admin/index.js +48 -11
  52. package/dist/admin/index.js.map +1 -1
  53. package/dist/admin/index.mjs +47 -9
  54. package/dist/admin/index.mjs.map +1 -1
  55. package/dist/admin/layout.js +28 -33
  56. package/dist/admin/layout.js.map +1 -1
  57. package/dist/admin/layout.mjs +29 -15
  58. package/dist/admin/layout.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/EditViewPage.js +98 -77
  60. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  61. package/dist/admin/pages/EditView/EditViewPage.mjs +100 -79
  62. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  64. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  65. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  66. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  67. package/dist/admin/pages/EditView/components/DocumentActions.js +304 -91
  68. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/DocumentActions.mjs +308 -95
  70. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  72. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  74. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
  76. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
  78. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  80. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  82. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  84. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  86. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  88. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  90. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +17 -3
  92. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +18 -4
  94. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  96. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  98. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +20 -6
  100. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +22 -8
  102. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +129 -55
  104. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +129 -55
  106. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +126 -34
  108. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +130 -38
  110. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
  112. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
  114. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  116. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  118. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  120. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  122. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  124. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  126. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  128. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  130. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  131. package/dist/admin/pages/EditView/components/Header.js +22 -7
  132. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  133. package/dist/admin/pages/EditView/components/Header.mjs +23 -8
  134. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  135. package/dist/admin/pages/EditView/components/InputRenderer.js +20 -7
  136. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  137. package/dist/admin/pages/EditView/components/InputRenderer.mjs +20 -7
  138. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  139. package/dist/admin/pages/EditView/utils/data.js +128 -0
  140. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  141. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  142. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  143. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  144. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  145. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  146. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  147. package/dist/admin/pages/ListView/ListViewPage.js +227 -132
  148. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  149. package/dist/admin/pages/ListView/ListViewPage.mjs +229 -134
  150. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  151. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  152. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  153. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  154. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  155. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
  156. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  157. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
  158. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  159. package/dist/admin/pages/ListView/components/Filters.js +4 -1
  160. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  161. package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
  162. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  163. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  164. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  165. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  166. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  167. package/dist/admin/preview/components/InputPopover.js +189 -0
  168. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  169. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  170. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  171. package/dist/admin/preview/components/PreviewHeader.js +1 -2
  172. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  173. package/dist/admin/preview/components/PreviewHeader.mjs +1 -2
  174. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  175. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  176. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  177. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  178. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  179. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  180. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  181. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  182. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  183. package/dist/admin/preview/pages/Preview.js +178 -74
  184. package/dist/admin/preview/pages/Preview.js.map +1 -1
  185. package/dist/admin/preview/pages/Preview.mjs +180 -76
  186. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  187. package/dist/admin/preview/utils/constants.js +56 -0
  188. package/dist/admin/preview/utils/constants.js.map +1 -0
  189. package/dist/admin/preview/utils/constants.mjs +52 -0
  190. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  191. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  192. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  193. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  194. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  195. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  196. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  197. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  198. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  199. package/dist/admin/preview/utils/previewScript.js +534 -0
  200. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  201. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  202. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  203. package/dist/admin/services/api.js +4 -1
  204. package/dist/admin/services/api.js.map +1 -1
  205. package/dist/admin/services/api.mjs +4 -1
  206. package/dist/admin/services/api.mjs.map +1 -1
  207. package/dist/admin/services/documents.js +42 -16
  208. package/dist/admin/services/documents.js.map +1 -1
  209. package/dist/admin/services/documents.mjs +42 -16
  210. package/dist/admin/services/documents.mjs.map +1 -1
  211. package/dist/admin/services/homepage.js +9 -5
  212. package/dist/admin/services/homepage.js.map +1 -1
  213. package/dist/admin/services/homepage.mjs +9 -5
  214. package/dist/admin/services/homepage.mjs.map +1 -1
  215. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  216. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  217. package/dist/admin/src/components/Widgets.d.ts +2 -1
  218. package/dist/admin/src/exports.d.ts +1 -0
  219. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  220. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  221. package/dist/admin/src/hooks/useDocumentContext.d.ts +1 -1
  222. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  223. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  224. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +26 -5
  225. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  226. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  227. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  228. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  229. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  230. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  231. package/dist/admin/src/preview/pages/Preview.d.ts +12 -0
  232. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  233. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  234. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  235. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  236. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  237. package/dist/admin/src/services/api.d.ts +1 -1
  238. package/dist/admin/src/services/components.d.ts +2 -2
  239. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  240. package/dist/admin/src/services/documents.d.ts +23 -17
  241. package/dist/admin/src/services/homepage.d.ts +1 -1
  242. package/dist/admin/src/services/init.d.ts +1 -1
  243. package/dist/admin/src/services/relations.d.ts +2 -2
  244. package/dist/admin/src/services/uid.d.ts +3 -3
  245. package/dist/admin/src/utils/api.d.ts +1 -1
  246. package/dist/admin/src/utils/validation.d.ts +1 -0
  247. package/dist/admin/translations/en.json.js +15 -1
  248. package/dist/admin/translations/en.json.js.map +1 -1
  249. package/dist/admin/translations/en.json.mjs +15 -1
  250. package/dist/admin/translations/en.json.mjs.map +1 -1
  251. package/dist/admin/translations/es.json.js +6 -2
  252. package/dist/admin/translations/es.json.js.map +1 -1
  253. package/dist/admin/translations/es.json.mjs +6 -2
  254. package/dist/admin/translations/es.json.mjs.map +1 -1
  255. package/dist/admin/translations/fr.json.js +11 -2
  256. package/dist/admin/translations/fr.json.js.map +1 -1
  257. package/dist/admin/translations/fr.json.mjs +11 -2
  258. package/dist/admin/translations/fr.json.mjs.map +1 -1
  259. package/dist/admin/translations/ru.json.js +235 -226
  260. package/dist/admin/translations/ru.json.js.map +1 -1
  261. package/dist/admin/translations/ru.json.mjs +230 -226
  262. package/dist/admin/translations/ru.json.mjs.map +1 -1
  263. package/dist/admin/utils/api.js +1 -1
  264. package/dist/admin/utils/api.js.map +1 -1
  265. package/dist/admin/utils/api.mjs +1 -1
  266. package/dist/admin/utils/api.mjs.map +1 -1
  267. package/dist/admin/utils/validation.js +19 -7
  268. package/dist/admin/utils/validation.js.map +1 -1
  269. package/dist/admin/utils/validation.mjs +19 -7
  270. package/dist/admin/utils/validation.mjs.map +1 -1
  271. package/dist/server/controllers/content-types.js +11 -1
  272. package/dist/server/controllers/content-types.js.map +1 -1
  273. package/dist/server/controllers/content-types.mjs +11 -1
  274. package/dist/server/controllers/content-types.mjs.map +1 -1
  275. package/dist/server/controllers/index.js +3 -1
  276. package/dist/server/controllers/index.js.map +1 -1
  277. package/dist/server/controllers/index.mjs +3 -1
  278. package/dist/server/controllers/index.mjs.map +1 -1
  279. package/dist/server/controllers/relations.js +2 -2
  280. package/dist/server/controllers/relations.js.map +1 -1
  281. package/dist/server/controllers/relations.mjs +2 -2
  282. package/dist/server/controllers/relations.mjs.map +1 -1
  283. package/dist/server/controllers/validation/index.js +14 -2
  284. package/dist/server/controllers/validation/index.js.map +1 -1
  285. package/dist/server/controllers/validation/index.mjs +14 -2
  286. package/dist/server/controllers/validation/index.mjs.map +1 -1
  287. package/dist/server/history/services/lifecycles.js +23 -19
  288. package/dist/server/history/services/lifecycles.js.map +1 -1
  289. package/dist/server/history/services/lifecycles.mjs +23 -19
  290. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  291. package/dist/server/homepage/controllers/homepage.js +62 -0
  292. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  293. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  294. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  295. package/dist/server/homepage/controllers/index.js +10 -0
  296. package/dist/server/homepage/controllers/index.js.map +1 -0
  297. package/dist/server/homepage/controllers/index.mjs +8 -0
  298. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  299. package/dist/server/homepage/index.js +14 -0
  300. package/dist/server/homepage/index.js.map +1 -0
  301. package/dist/server/homepage/index.mjs +12 -0
  302. package/dist/server/homepage/index.mjs.map +1 -0
  303. package/dist/server/homepage/routes/homepage.js +36 -0
  304. package/dist/server/homepage/routes/homepage.js.map +1 -0
  305. package/dist/server/homepage/routes/homepage.mjs +34 -0
  306. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  307. package/dist/server/homepage/routes/index.js +13 -0
  308. package/dist/server/homepage/routes/index.js.map +1 -0
  309. package/dist/server/homepage/routes/index.mjs +11 -0
  310. package/dist/server/homepage/routes/index.mjs.map +1 -0
  311. package/dist/server/homepage/services/homepage.js +197 -0
  312. package/dist/server/homepage/services/homepage.js.map +1 -0
  313. package/dist/server/homepage/services/homepage.mjs +195 -0
  314. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  315. package/dist/server/homepage/services/index.js +10 -0
  316. package/dist/server/homepage/services/index.js.map +1 -0
  317. package/dist/server/homepage/services/index.mjs +8 -0
  318. package/dist/server/homepage/services/index.mjs.map +1 -0
  319. package/dist/server/preview/services/preview-config.js +5 -1
  320. package/dist/server/preview/services/preview-config.js.map +1 -1
  321. package/dist/server/preview/services/preview-config.mjs +5 -1
  322. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  323. package/dist/server/preview/services/preview.js +4 -1
  324. package/dist/server/preview/services/preview.js.map +1 -1
  325. package/dist/server/preview/services/preview.mjs +4 -1
  326. package/dist/server/preview/services/preview.mjs.map +1 -1
  327. package/dist/server/routes/index.js +3 -1
  328. package/dist/server/routes/index.js.map +1 -1
  329. package/dist/server/routes/index.mjs +3 -1
  330. package/dist/server/routes/index.mjs.map +1 -1
  331. package/dist/server/services/data-mapper.js +4 -1
  332. package/dist/server/services/data-mapper.js.map +1 -1
  333. package/dist/server/services/data-mapper.mjs +4 -1
  334. package/dist/server/services/data-mapper.mjs.map +1 -1
  335. package/dist/server/services/document-manager.js +8 -1
  336. package/dist/server/services/document-manager.js.map +1 -1
  337. package/dist/server/services/document-manager.mjs +8 -1
  338. package/dist/server/services/document-manager.mjs.map +1 -1
  339. package/dist/server/services/document-metadata.js +3 -1
  340. package/dist/server/services/document-metadata.js.map +1 -1
  341. package/dist/server/services/document-metadata.mjs +3 -1
  342. package/dist/server/services/document-metadata.mjs.map +1 -1
  343. package/dist/server/services/index.js +3 -1
  344. package/dist/server/services/index.js.map +1 -1
  345. package/dist/server/services/index.mjs +3 -1
  346. package/dist/server/services/index.mjs.map +1 -1
  347. package/dist/server/services/utils/configuration/attributes.js +1 -1
  348. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  349. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  350. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  351. package/dist/server/services/utils/configuration/layouts.js +1 -1
  352. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  353. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  354. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  355. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  356. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  357. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  358. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  359. package/dist/server/services/utils/populate.js +11 -0
  360. package/dist/server/services/utils/populate.js.map +1 -1
  361. package/dist/server/services/utils/populate.mjs +11 -0
  362. package/dist/server/services/utils/populate.mjs.map +1 -1
  363. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  364. package/dist/server/src/controllers/index.d.ts.map +1 -1
  365. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  366. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  367. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  368. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  369. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  370. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  371. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  372. package/dist/server/src/homepage/index.d.ts +23 -0
  373. package/dist/server/src/homepage/index.d.ts.map +1 -0
  374. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  375. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  376. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  377. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  378. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  379. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  380. package/dist/server/src/homepage/services/index.d.ts +16 -0
  381. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  382. package/dist/server/src/index.d.ts +15 -0
  383. package/dist/server/src/index.d.ts.map +1 -1
  384. package/dist/server/src/preview/services/index.d.ts +1 -0
  385. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  386. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  387. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  388. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  389. package/dist/server/src/preview/utils.d.ts +1 -0
  390. package/dist/server/src/preview/utils.d.ts.map +1 -1
  391. package/dist/server/src/routes/index.d.ts +1 -0
  392. package/dist/server/src/routes/index.d.ts.map +1 -1
  393. package/dist/server/src/services/data-mapper.d.ts +1 -0
  394. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  395. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  396. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  397. package/dist/server/src/services/index.d.ts +14 -0
  398. package/dist/server/src/services/index.d.ts.map +1 -1
  399. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  400. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  401. package/dist/shared/contracts/collection-types.d.ts +0 -1
  402. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  403. package/dist/shared/contracts/homepage.d.ts +13 -0
  404. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  405. package/package.json +11 -9
  406. package/dist/server/src/services/homepage.d.ts +0 -11
  407. package/dist/server/src/services/homepage.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.mjs","sources":["../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport {\n useCollator,\n useFilter,\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { parse, stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useContentTypeSchema } from '../hooks/useContentTypeSchema';\nimport { useTypedSelector } from '../modules/hooks';\nimport { getTranslation } from '../utils/translations';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\nconst SubNavLinkCustom = styled(SubNavLink)`\n div {\n width: inherit;\n span:nth-child(2) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: inherit;\n }\n }\n`;\n\nconst LeftMenu = () => {\n const [search, setSearch] = React.useState('');\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n const { formatMessage, locale } = useIntl();\n\n const collectionTypeLinks = useTypedSelector(\n (state) => state['content-manager'].app.collectionTypeLinks\n );\n\n const singleTypeLinks = useTypedSelector((state) => state['content-manager'].app.singleTypeLinks);\n const { schemas } = useContentTypeSchema();\n\n const { startsWith } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const menu = React.useMemo(\n () =>\n [\n {\n id: 'collectionTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.collection-types'),\n defaultMessage: 'Collection Types',\n }),\n searchable: true,\n links: collectionTypeLinks,\n },\n {\n id: 'singleTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.single-types'),\n defaultMessage: 'Single Types',\n }),\n searchable: true,\n links: singleTypeLinks,\n },\n ].map((section) => ({\n ...section,\n links: section.links\n /**\n * Filter by the search value\n */\n .filter((link) => startsWith(link.title, search))\n /**\n * Sort correctly using the language\n */\n .sort((a, b) => formatter.compare(a.title, b.title))\n /**\n * Apply the formated strings to the links from react-intl\n */\n .map((link) => {\n return {\n ...link,\n title: formatMessage({ id: link.title, defaultMessage: link.title }),\n };\n }),\n })),\n [collectionTypeLinks, search, singleTypeLinks, startsWith, formatMessage, formatter]\n );\n\n const handleClear = () => {\n setSearch('');\n };\n\n const handleChangeSearch = ({ target: { value } }: { target: { value: string } }) => {\n setSearch(value);\n };\n\n const label = formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content Manager',\n });\n\n const getPluginsParamsForLink = (link: ContentManagerLink) => {\n const schema = schemas.find((schema) => schema.uid === link.uid);\n const isI18nEnabled = Boolean((schema?.pluginOptions?.i18n as any)?.localized);\n\n // The search params have the i18n plugin\n if (query.plugins && 'i18n' in query.plugins) {\n // Prepare removal of i18n from the plugins search params\n const { i18n, ...restPlugins } = query.plugins;\n\n // i18n is not enabled, remove it from the plugins search params\n if (!isI18nEnabled) {\n return restPlugins;\n }\n\n // i18n is enabled, put the plugins search params back together\n return { i18n, ...restPlugins };\n }\n\n return query.plugins;\n };\n\n return (\n <SubNav aria-label={label}>\n <SubNavHeader\n label={label}\n searchable\n value={search}\n onChange={handleChangeSearch}\n onClear={handleClear}\n searchLabel={formatMessage({\n id: 'content-manager.components.LeftMenu.Search.label',\n defaultMessage: 'Search for a content type',\n })}\n />\n <SubNavSections>\n {menu.map((section) => {\n return (\n <SubNavSection\n key={section.id}\n label={section.title}\n badgeLabel={section.links.length.toString()}\n >\n {section.links.map((link) => {\n return (\n <SubNavLinkCustom\n tag={NavLink}\n key={link.uid}\n to={{\n pathname: link.to,\n search: stringify({\n ...parse(link.search ?? ''),\n plugins: getPluginsParamsForLink(link),\n }),\n }}\n width=\"100%\"\n >\n {link.title}\n </SubNavLinkCustom>\n );\n })}\n </SubNavSection>\n );\n })}\n </SubNavSections>\n </SubNav>\n );\n};\n\nexport { LeftMenu };\n"],"names":["SubNavLinkCustom","styled","SubNavLink","LeftMenu","search","setSearch","React","useState","query","useQueryParams","formatMessage","locale","useIntl","collectionTypeLinks","useTypedSelector","state","app","singleTypeLinks","schemas","useContentTypeSchema","startsWith","useFilter","sensitivity","formatter","useCollator","menu","useMemo","id","title","getTranslation","defaultMessage","searchable","links","map","section","filter","link","sort","a","b","compare","handleClear","handleChangeSearch","target","value","label","getPluginsParamsForLink","schema","find","uid","isI18nEnabled","Boolean","pluginOptions","i18n","localized","plugins","restPlugins","_jsxs","SubNav","aria-label","_jsx","SubNavHeader","onChange","onClear","searchLabel","SubNavSections","SubNavSection","badgeLabel","length","toString","tag","NavLink","to","pathname","stringify","parse","width"],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.mjs","sources":["../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams, SubNav } from '@strapi/admin/strapi-admin';\nimport {\n Flex,\n Searchbar,\n useCollator,\n useFilter,\n Divider,\n ScrollArea,\n Loader,\n} from '@strapi/design-system';\nimport { parse, stringify } from 'qs';\nimport { useIntl } from 'react-intl';\n\nimport { useContentManagerInitData } from '../hooks/useContentManagerInitData';\nimport { useContentTypeSchema } from '../hooks/useContentTypeSchema';\nimport { useTypedSelector } from '../modules/hooks';\nimport { getTranslation } from '../utils/translations';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\n\nconst LeftMenu = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const [search, setSearch] = React.useState('');\n const [{ query }] = useQueryParams<{ plugins?: object }>();\n const { formatMessage, locale } = useIntl();\n\n // Initialize Content Manager data to ensure links are available\n const { isLoading } = useContentManagerInitData();\n\n const collectionTypeLinks = useTypedSelector(\n (state) => state['content-manager'].app.collectionTypeLinks\n );\n\n const singleTypeLinks = useTypedSelector((state) => state['content-manager'].app.singleTypeLinks);\n const { schemas } = useContentTypeSchema();\n\n const { startsWith } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const menu = React.useMemo(\n () =>\n [\n {\n id: 'collectionTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.collection-types'),\n defaultMessage: 'Collection Types',\n }),\n searchable: true,\n links: collectionTypeLinks,\n },\n {\n id: 'singleTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.single-types'),\n defaultMessage: 'Single Types',\n }),\n searchable: true,\n links: singleTypeLinks,\n },\n ].map((section) => ({\n ...section,\n links: section.links\n /**\n * Filter by the search value\n */\n .filter((link) => startsWith(link.title, search.trim()))\n /**\n * Sort correctly using the language\n */\n .sort((a, b) => formatter.compare(a.title, b.title))\n /**\n * Apply the formated strings to the links from react-intl\n */\n .map((link) => {\n return {\n ...link,\n title: formatMessage({ id: link.title, defaultMessage: link.title }),\n };\n }),\n })),\n [collectionTypeLinks, search, singleTypeLinks, startsWith, formatMessage, formatter]\n );\n\n const handleClear = () => {\n setSearch('');\n };\n\n const handleChangeSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(event.target.value);\n };\n\n const label = formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content Manager',\n });\n\n const getPluginsParamsForLink = (link: ContentManagerLink) => {\n const schema = schemas.find((schema) => schema.uid === link.uid);\n const isI18nEnabled = Boolean((schema?.pluginOptions?.i18n as any)?.localized);\n\n // The search params have the i18n plugin\n if (query.plugins && 'i18n' in query.plugins) {\n // Prepare removal of i18n from the plugins search params\n const { i18n, ...restPlugins } = query.plugins;\n\n // i18n is not enabled, remove it from the plugins search params\n if (!isI18nEnabled) {\n return restPlugins;\n }\n\n // i18n is enabled, put the plugins search params back together\n return { i18n, ...restPlugins };\n }\n\n return query.plugins;\n };\n\n // Show loading state while data is being fetched\n if (isLoading) {\n return (\n <SubNav.Main aria-label={label}>\n <SubNav.Header label={label} />\n <Divider />\n <Flex padding={4} justifyContent=\"center\">\n <Loader />\n </Flex>\n </SubNav.Main>\n );\n }\n\n return (\n <SubNav.Main aria-label={label}>\n {!isFullPage && (\n <>\n <SubNav.Header label={label} />\n <Divider />\n </>\n )}\n <ScrollArea>\n {isFullPage && <SubNav.Header label={label} />}\n <Flex\n paddingLeft={{\n initial: 4,\n large: 5,\n }}\n paddingRight={{\n initial: 4,\n large: 5,\n }}\n paddingTop={\n isFullPage\n ? 0\n : {\n initial: 4,\n large: 5,\n }\n }\n paddingBottom={0}\n gap={3}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Searchbar\n value={search}\n onChange={handleChangeSearch}\n onClear={handleClear}\n placeholder={formatMessage({\n id: 'search.placeholder',\n defaultMessage: 'Search',\n })}\n size=\"S\"\n // eslint-disable-next-line react/no-children-prop\n children={undefined}\n name={'search_contentType'}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n />\n </Flex>\n <SubNav.Sections>\n {menu.map((section) => {\n return (\n <SubNav.Section\n key={section.id}\n label={section.title}\n badgeLabel={section.links.length.toString()}\n >\n {section.links.map((link) => {\n return (\n <SubNav.Link\n key={link.uid}\n to={{\n pathname: link.to,\n search: stringify({\n ...parse(link.search ?? ''),\n plugins: getPluginsParamsForLink(link),\n }),\n }}\n label={link.title}\n />\n );\n })}\n </SubNav.Section>\n );\n })}\n </SubNav.Sections>\n </ScrollArea>\n </SubNav.Main>\n );\n};\n\nexport { LeftMenu };\n"],"names":["LeftMenu","isFullPage","search","setSearch","React","useState","query","useQueryParams","formatMessage","locale","useIntl","isLoading","useContentManagerInitData","collectionTypeLinks","useTypedSelector","state","app","singleTypeLinks","schemas","useContentTypeSchema","startsWith","useFilter","sensitivity","formatter","useCollator","menu","useMemo","id","title","getTranslation","defaultMessage","searchable","links","map","section","filter","link","trim","sort","a","b","compare","handleClear","handleChangeSearch","event","target","value","label","getPluginsParamsForLink","schema","find","uid","isI18nEnabled","Boolean","pluginOptions","i18n","localized","plugins","restPlugins","_jsxs","SubNav","Main","aria-label","_jsx","Header","Divider","Flex","padding","justifyContent","Loader","_Fragment","ScrollArea","paddingLeft","initial","large","paddingRight","paddingTop","paddingBottom","gap","direction","alignItems","Searchbar","onChange","onClear","placeholder","size","children","undefined","name","clearLabel","Sections","Section","badgeLabel","length","toString","Link","to","pathname","stringify","parse"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
4
5
  var strapiAdmin = require('@strapi/admin/strapi-admin');
5
6
  var designSystem = require('@strapi/design-system');
6
7
  var Icons = require('@strapi/icons');
@@ -11,15 +12,33 @@ var DocumentStatus = require('../pages/EditView/components/DocumentStatus.js');
11
12
  var homepage = require('../services/homepage.js');
12
13
  var RelativeTime = require('./RelativeTime.js');
13
14
 
14
- const CellTypography = styledComponents.styled(designSystem.Typography).attrs({
15
- maxWidth: '14.4rem',
16
- display: 'block'
17
- })`
15
+ function _interopNamespaceDefault(e) {
16
+ var n = Object.create(null);
17
+ if (e) {
18
+ Object.keys(e).forEach(function (k) {
19
+ if (k !== 'default') {
20
+ var d = Object.getOwnPropertyDescriptor(e, k);
21
+ Object.defineProperty(n, k, d.get ? d : {
22
+ enumerable: true,
23
+ get: function () { return e[k]; }
24
+ });
25
+ }
26
+ });
27
+ }
28
+ n.default = e;
29
+ return Object.freeze(n);
30
+ }
31
+
32
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
33
+
34
+ const CellTypography = styledComponents.styled(designSystem.Typography)`
35
+ display: block;
36
+ max-width: 14.4rem;
18
37
  overflow: hidden;
19
38
  text-overflow: ellipsis;
20
39
  white-space: nowrap;
21
40
  `;
22
- const RecentDocumentsTable = ({ documents })=>{
41
+ const RecentDocumentsTable = ({ documents, type })=>{
23
42
  const { formatMessage } = reactIntl.useIntl();
24
43
  const { trackUsage } = strapiAdmin.useTracking();
25
44
  const navigate = reactRouterDom.useNavigate();
@@ -30,7 +49,9 @@ const RecentDocumentsTable = ({ documents })=>{
30
49
  return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;
31
50
  };
32
51
  const handleRowClick = (document)=>()=>{
33
- trackUsage('willEditEntryFromHome');
52
+ trackUsage('willEditEntryFromHome', {
53
+ entryType: type
54
+ });
34
55
  const link = getEditViewLink(document);
35
56
  navigate(link);
36
57
  };
@@ -90,7 +111,9 @@ const RecentDocumentsTable = ({ documents })=>{
90
111
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
91
112
  tag: reactRouterDom.Link,
92
113
  to: getEditViewLink(document),
93
- onClick: ()=>trackUsage('willEditEntryFromHome'),
114
+ onClick: ()=>trackUsage('willEditEntryFromHome', {
115
+ type
116
+ }),
94
117
  label: formatMessage({
95
118
  id: 'content-manager.actions.edit.label',
96
119
  defaultMessage: 'Edit'
@@ -127,7 +150,8 @@ const RecentDocumentsTable = ({ documents })=>{
127
150
  });
128
151
  }
129
152
  return /*#__PURE__*/ jsxRuntime.jsx(RecentDocumentsTable, {
130
- documents: data
153
+ documents: data,
154
+ type: "edited"
131
155
  });
132
156
  };
133
157
  /* -------------------------------------------------------------------------------------------------
@@ -152,10 +176,246 @@ const RecentDocumentsTable = ({ documents })=>{
152
176
  });
153
177
  }
154
178
  return /*#__PURE__*/ jsxRuntime.jsx(RecentDocumentsTable, {
155
- documents: data
179
+ documents: data,
180
+ type: "published"
181
+ });
182
+ };
183
+ /* -------------------------------------------------------------------------------------------------
184
+ * ChartEntriesWidget
185
+ * -----------------------------------------------------------------------------------------------*/ const RADIUS = 80;
186
+ const STROKE = 10;
187
+ const CIRCUMFERENCE = 2 * Math.PI * (RADIUS - STROKE / 2);
188
+ const ArcChart = styledComponents.styled.circle`
189
+ stroke: ${({ theme, $arcColor })=>theme.colors[$arcColor]};
190
+ `;
191
+ const TextChart = styledComponents.styled.tspan`
192
+ text-transform: lowercase;
193
+ fill: ${({ theme, $textColor })=>theme.colors[$textColor]};
194
+ `;
195
+ const KeyChartItem = styledComponents.styled(designSystem.Flex)`
196
+ width: 100%;
197
+
198
+ ${({ theme })=>theme.breakpoints.small} {
199
+ width: auto;
200
+ }
201
+ `;
202
+ const DonutChartSVG = ({ data })=>{
203
+ const { locale } = reactIntl.useIntl();
204
+ const { formatMessage } = reactIntl.useIntl();
205
+ const total = data.reduce((acc, curr)=>acc + curr.count, 0);
206
+ const [tooltip, setTooltip] = React__namespace.useState({
207
+ visible: false,
208
+ x: 0,
209
+ y: 0,
210
+ value: null
211
+ });
212
+ let cumulativePercent = 0;
213
+ const handleMouseOver = (e, value)=>{
214
+ setTooltip({
215
+ visible: true,
216
+ x: e.clientX,
217
+ y: e.clientY,
218
+ value
219
+ });
220
+ };
221
+ const handleMouseOut = ()=>{
222
+ setTooltip((t)=>({
223
+ ...t,
224
+ visible: false
225
+ }));
226
+ };
227
+ const handleFocus = (e, value)=>{
228
+ setTooltip({
229
+ visible: true,
230
+ x: e.currentTarget.getBoundingClientRect().width / 2 + e.currentTarget.getBoundingClientRect().left,
231
+ y: e.currentTarget.getBoundingClientRect().height + e.currentTarget.getBoundingClientRect().top,
232
+ value
233
+ });
234
+ };
235
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
236
+ direction: "column",
237
+ gap: 6,
238
+ margin: "auto",
239
+ children: [
240
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
241
+ width: RADIUS * 2,
242
+ height: RADIUS * 2,
243
+ viewBox: `0 0 ${RADIUS * 2} ${RADIUS * 2}`,
244
+ style: {
245
+ position: 'relative',
246
+ zIndex: 1
247
+ },
248
+ children: [
249
+ /*#__PURE__*/ jsxRuntime.jsx("g", {
250
+ transform: `rotate(-90 ${RADIUS} ${RADIUS})`,
251
+ children: data.map((value)=>{
252
+ const percent = value.count / total * 100;
253
+ const arcLength = percent / 100 * CIRCUMFERENCE;
254
+ const dashArray = `${arcLength} ${CIRCUMFERENCE - arcLength}`;
255
+ const dashOffset = CIRCUMFERENCE * (1 - cumulativePercent / 100);
256
+ const el = /*#__PURE__*/ jsxRuntime.jsx(ArcChart, {
257
+ cx: RADIUS,
258
+ cy: RADIUS,
259
+ r: RADIUS - STROKE / 2,
260
+ fill: "none",
261
+ strokeWidth: STROKE,
262
+ strokeDasharray: dashArray,
263
+ strokeDashoffset: dashOffset,
264
+ style: {
265
+ transition: 'stroke-dashoffset 0.3s',
266
+ cursor: 'pointer'
267
+ },
268
+ tabIndex: 0,
269
+ "aria-describedby": tooltip.visible ? 'chart-tooltip' : undefined,
270
+ onFocus: (e)=>handleFocus(e, value),
271
+ onBlur: handleMouseOut,
272
+ onMouseMove: (e)=>handleMouseOver(e, value),
273
+ onMouseLeave: handleMouseOut,
274
+ $arcColor: value.color
275
+ }, value.label);
276
+ cumulativePercent += percent;
277
+ return el;
278
+ })
279
+ }),
280
+ /*#__PURE__*/ jsxRuntime.jsxs("text", {
281
+ x: RADIUS,
282
+ y: RADIUS,
283
+ textAnchor: "middle",
284
+ fontSize: "2.4rem",
285
+ fontWeight: "bold",
286
+ children: [
287
+ /*#__PURE__*/ jsxRuntime.jsx(TextChart, {
288
+ x: RADIUS,
289
+ dy: "0",
290
+ $textColor: "neutral800",
291
+ children: new Intl.NumberFormat(locale, {
292
+ notation: 'compact',
293
+ maximumFractionDigits: 1
294
+ }).format(total)
295
+ }),
296
+ /*#__PURE__*/ jsxRuntime.jsx(TextChart, {
297
+ x: RADIUS,
298
+ dy: "1.4em",
299
+ fontSize: "1.4rem",
300
+ fontWeight: "normal",
301
+ $textColor: "neutral600",
302
+ children: formatMessage({
303
+ id: 'content-manager.widget.chart-entries.count.label',
304
+ defaultMessage: '{count, plural, =0 {entries} one {entry} other {entries}}'
305
+ }, {
306
+ count: total
307
+ })
308
+ })
309
+ ]
310
+ })
311
+ ]
312
+ }),
313
+ tooltip.visible && tooltip.value && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Portal, {
314
+ style: {
315
+ position: 'fixed',
316
+ left: 16,
317
+ top: 16,
318
+ zIndex: 2,
319
+ transform: `translate(${tooltip.x}px, ${tooltip.y}px)`
320
+ },
321
+ "data-testid": "entries-chart-tooltip",
322
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
323
+ background: "neutral900",
324
+ padding: 2,
325
+ borderRadius: 1,
326
+ textAlign: "center",
327
+ role: "tooltip",
328
+ "aria-live": "polite",
329
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
330
+ textColor: "neutral0",
331
+ children: formatMessage({
332
+ id: 'content-manager.widget.chart-entries.tooltip',
333
+ defaultMessage: '{count} items'
334
+ }, {
335
+ count: tooltip.value.count,
336
+ label: tooltip.value.label
337
+ })
338
+ })
339
+ })
340
+ }),
341
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
342
+ gap: 4,
343
+ wrap: "wrap",
344
+ children: data.map((value)=>value.count > 0 && /*#__PURE__*/ jsxRuntime.jsxs(KeyChartItem, {
345
+ gap: 1,
346
+ children: [
347
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
348
+ background: value.color,
349
+ padding: 2,
350
+ borderRadius: 1
351
+ }),
352
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
353
+ variant: "pi",
354
+ children: value.label
355
+ })
356
+ ]
357
+ }, value.label))
358
+ })
359
+ ]
360
+ });
361
+ };
362
+ const ChartEntriesWidget = ()=>{
363
+ const { formatMessage } = reactIntl.useIntl();
364
+ const { data: countDocuments, isLoading, error } = strapiAdmin.useGetCountDocumentsQuery();
365
+ if (isLoading) {
366
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
367
+ }
368
+ if (error) {
369
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Error, {});
370
+ }
371
+ const { draft, published, modified } = countDocuments ?? {
372
+ draft: 0,
373
+ published: 0,
374
+ modified: 0
375
+ };
376
+ const total = draft + published + modified;
377
+ if (!total) {
378
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.NoData, {
379
+ children: formatMessage({
380
+ id: 'content-manager.widget.last-published.no-data',
381
+ defaultMessage: 'No published entries'
382
+ })
383
+ });
384
+ }
385
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
386
+ minHeight: "100%",
387
+ children: /*#__PURE__*/ jsxRuntime.jsx(DonutChartSVG, {
388
+ data: [
389
+ {
390
+ label: formatMessage({
391
+ id: 'content-manager.containers.List.draft',
392
+ defaultMessage: 'Draft'
393
+ }),
394
+ count: draft,
395
+ color: 'secondary500'
396
+ },
397
+ {
398
+ label: formatMessage({
399
+ id: 'content-manager.containers.List.modified',
400
+ defaultMessage: 'Modified'
401
+ }),
402
+ count: modified,
403
+ color: 'alternative500'
404
+ },
405
+ {
406
+ label: formatMessage({
407
+ id: 'content-manager.containers.List.published',
408
+ defaultMessage: 'Published'
409
+ }),
410
+ count: published,
411
+ color: 'success500'
412
+ }
413
+ ]
414
+ })
156
415
  });
157
416
  };
158
417
 
418
+ exports.ChartEntriesWidget = ChartEntriesWidget;
159
419
  exports.LastEditedWidget = LastEditedWidget;
160
420
  exports.LastPublishedWidget = LastPublishedWidget;
161
421
  //# sourceMappingURL=Widgets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Widgets.js","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import { Widget, useTracking } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography).attrs({ maxWidth: '14.4rem', display: 'block' })`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({ documents }: { documents: RecentDocument[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome');\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\nexport { LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","attrs","maxWidth","display","RecentDocumentsTable","documents","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget"],"mappings":"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"}
1
+ {"version":3,"file":"Widgets.js","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Widget, useTracking, useGetCountDocumentsQuery } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Tr,\n Typography,\n Portal,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography)`\n display: block;\n max-width: 14.4rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({\n documents,\n type,\n}: {\n documents: RecentDocument[];\n type: 'edited' | 'published';\n}) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome', {\n entryType: type,\n });\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome', { type })}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} type=\"edited\" />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} type=\"published\" />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ChartEntriesWidget\n * -----------------------------------------------------------------------------------------------*/\nconst RADIUS = 80;\nconst STROKE = 10;\nconst CIRCUMFERENCE = 2 * Math.PI * (RADIUS - STROKE / 2);\n\ntype ThemeColor = keyof DefaultTheme['colors'];\n\nconst ArcChart = styled.circle<{ $arcColor: ThemeColor }>`\n stroke: ${({ theme, $arcColor }) => theme.colors[$arcColor]};\n`;\n\nconst TextChart = styled.tspan<{ $textColor: ThemeColor }>`\n text-transform: lowercase;\n fill: ${({ theme, $textColor }) => theme.colors[$textColor]};\n`;\n\nconst KeyChartItem = styled(Flex)`\n width: 100%;\n\n ${({ theme }) => theme.breakpoints.small} {\n width: auto;\n }\n`;\n\ninterface ChartData {\n label: string;\n count: number;\n color: ThemeColor;\n}\n\nconst DonutChartSVG = ({ data }: { data: ChartData[] }) => {\n const { locale } = useIntl();\n const { formatMessage } = useIntl();\n const total = data.reduce((acc, curr) => acc + curr.count, 0);\n const [tooltip, setTooltip] = React.useState<{\n visible: boolean;\n x: number;\n y: number;\n value: ChartData | null;\n isTouch?: boolean;\n }>({ visible: false, x: 0, y: 0, value: null });\n\n let cumulativePercent = 0;\n\n const handleMouseOver = (e: React.MouseEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x: e.clientX,\n y: e.clientY,\n value,\n });\n };\n const handleMouseOut = () => {\n setTooltip((t) => ({ ...t, visible: false }));\n };\n\n const handleFocus = (e: React.FocusEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x:\n e.currentTarget.getBoundingClientRect().width / 2 +\n e.currentTarget.getBoundingClientRect().left,\n y:\n e.currentTarget.getBoundingClientRect().height +\n e.currentTarget.getBoundingClientRect().top,\n value,\n });\n };\n\n return (\n <Flex direction=\"column\" gap={6} margin=\"auto\">\n <svg\n width={RADIUS * 2}\n height={RADIUS * 2}\n viewBox={`0 0 ${RADIUS * 2} ${RADIUS * 2}`}\n style={{ position: 'relative', zIndex: 1 }}\n >\n <g transform={`rotate(-90 ${RADIUS} ${RADIUS})`}>\n {data.map((value) => {\n const percent = (value.count / total) * 100;\n const arcLength = (percent / 100) * CIRCUMFERENCE;\n const dashArray = `${arcLength} ${CIRCUMFERENCE - arcLength}`;\n const dashOffset = CIRCUMFERENCE * (1 - cumulativePercent / 100);\n const el = (\n <ArcChart\n key={value.label}\n cx={RADIUS}\n cy={RADIUS}\n r={RADIUS - STROKE / 2}\n fill=\"none\"\n strokeWidth={STROKE}\n strokeDasharray={dashArray}\n strokeDashoffset={dashOffset}\n style={{ transition: 'stroke-dashoffset 0.3s', cursor: 'pointer' }}\n tabIndex={0}\n aria-describedby={tooltip.visible ? 'chart-tooltip' : undefined}\n onFocus={(e) => handleFocus(e, value)}\n onBlur={handleMouseOut}\n onMouseMove={(e) => handleMouseOver(e, value)}\n onMouseLeave={handleMouseOut}\n $arcColor={value.color}\n />\n );\n cumulativePercent += percent;\n return el;\n })}\n </g>\n <text x={RADIUS} y={RADIUS} textAnchor=\"middle\" fontSize=\"2.4rem\" fontWeight=\"bold\">\n <TextChart x={RADIUS} dy=\"0\" $textColor=\"neutral800\">\n {new Intl.NumberFormat(locale, {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(total)}\n </TextChart>\n <TextChart\n x={RADIUS}\n dy=\"1.4em\"\n fontSize=\"1.4rem\"\n fontWeight=\"normal\"\n $textColor=\"neutral600\"\n >\n {formatMessage(\n {\n id: 'content-manager.widget.chart-entries.count.label',\n defaultMessage: '{count, plural, =0 {entries} one {entry} other {entries}}',\n },\n { count: total }\n )}\n </TextChart>\n </text>\n </svg>\n {tooltip.visible && tooltip.value && (\n <Portal\n style={{\n position: 'fixed',\n left: 16,\n top: 16,\n zIndex: 2,\n transform: `translate(${tooltip.x}px, ${tooltip.y}px)`,\n }}\n data-testid=\"entries-chart-tooltip\"\n >\n <Box\n background=\"neutral900\"\n padding={2}\n borderRadius={1}\n textAlign=\"center\"\n role=\"tooltip\"\n aria-live=\"polite\"\n >\n <Typography textColor=\"neutral0\">\n {formatMessage(\n {\n id: 'content-manager.widget.chart-entries.tooltip',\n defaultMessage: '{count} items',\n },\n {\n count: tooltip.value.count,\n label: tooltip.value.label,\n }\n )}\n </Typography>\n </Box>\n </Portal>\n )}\n <Flex gap={4} wrap=\"wrap\">\n {data.map(\n (value) =>\n value.count > 0 && (\n <KeyChartItem gap={1} key={value.label}>\n <Box background={value.color} padding={2} borderRadius={1} />\n <Typography variant=\"pi\">{value.label}</Typography>\n </KeyChartItem>\n )\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst ChartEntriesWidget = () => {\n const { formatMessage } = useIntl();\n const { data: countDocuments, isLoading, error } = useGetCountDocumentsQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error) {\n return <Widget.Error />;\n }\n\n const { draft, published, modified } = countDocuments ?? {\n draft: 0,\n published: 0,\n modified: 0,\n };\n\n const total = draft + published + modified;\n\n if (!total) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return (\n <Flex minHeight=\"100%\">\n <DonutChartSVG\n data={[\n {\n label: formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'Draft',\n }),\n count: draft,\n color: 'secondary500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.modified',\n defaultMessage: 'Modified',\n }),\n count: modified,\n color: 'alternative500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'Published',\n }),\n count: published,\n color: 'success500',\n },\n ]}\n />\n </Flex>\n );\n};\n\nexport { ChartEntriesWidget, LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","RecentDocumentsTable","documents","type","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","entryType","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","display","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget","RADIUS","STROKE","CIRCUMFERENCE","Math","PI","ArcChart","circle","theme","$arcColor","colors","TextChart","tspan","$textColor","KeyChartItem","Flex","breakpoints","small","DonutChartSVG","total","reduce","acc","curr","count","tooltip","setTooltip","React","useState","visible","x","y","value","cumulativePercent","handleMouseOver","clientX","clientY","handleMouseOut","t","handleFocus","currentTarget","getBoundingClientRect","width","left","height","top","direction","gap","margin","svg","viewBox","style","position","zIndex","g","transform","percent","arcLength","dashArray","dashOffset","el","cx","cy","r","fill","strokeWidth","strokeDasharray","strokeDashoffset","transition","tabIndex","aria-describedby","undefined","onFocus","onBlur","onMouseMove","onMouseLeave","color","text","textAnchor","fontSize","fontWeight","dy","Intl","NumberFormat","notation","maximumFractionDigits","format","Portal","data-testid","background","padding","borderRadius","textAlign","role","aria-live","wrap","ChartEntriesWidget","countDocuments","useGetCountDocumentsQuery","draft","published","modified","minHeight"],"mappings":"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"}